% NOSCHEME.ADD % @* Missing coding schemes. This file goes with \.{Crudetype} version 2. It allows \.{Crudetype} to handle \.{TFM} files with no coding schemes. It stinks -- but much less than before. To use this, append it to CRUDETYPE.WEB. The font files that come on tapes from Stanford contain a piece of data called a `coding scheme'. Essentially, this tells you what letter to expect to find in each cell of the font table, if you ignore topological differences of slant, blackness etc. Each table in Appendix F of the \TeX book gives a different scheme; and there are a few more schemes in fonts in common use. Unfortunately, some font designers have been producing fonts with this information lacking. It is not actually illegal to omit the coding scheme because the specification for \.{TFM} files describes the coding scheme as optional. But in my opinion this is a very bad and slovenly practice. If a site cannot provide file space for every conceivable font, they will probably want to save space by some form of font-substitution. The coding scheme is an essential tool for trying to decide whether Font A is an acceptable substitute for B. You need one line for each type face you expect to use. The first argument is the name of the font, usually with size digits omitted. A name with the size digits present will take precedence, e.g. {\tt CMR5} over {\tt CMR}. The second argument is the number of the corresponding coding scheme. So this is essentially just a list of all the font names I happen to have seen in one particular distriibution. This code will of course fail if somebody starts distributing font files of the same names with different schemes. To use this file, it must be appended to the regular CRUDETYPE.WEB. My reasons for not incorporating this code in all versions are: 1: I believe that Stanford have now definitely decided to include coding schemes in all font tapes and 2: I believe that using the scheme as recorded in the TFM file is much safer than relying on a conjectured map from font names to schemes which might change. This map has changed in the past: for example all CMR fonts used to be scheme 3. @= be_string('CMTEX' ); set_scheme(1 ) ; @# be_string('CMTT' ); set_scheme(2 ) ; be_string('CMSLTT' ); set_scheme(2 ) ; be_string('CMCSC' ); set_scheme(2 ) ; be_string('CMTCSC' ); set_scheme(2 ) ; be_string('CMITT' ); set_scheme(2 ) ; @# be_string('CMB' ); set_scheme(3 ) ; be_string('CMBX' ); set_scheme(3 ) ; be_string('CMBXSL' ); set_scheme(3 ) ; be_string('CMBXTI' ); set_scheme(3 ) ; be_string('CMDUNH' ); set_scheme(3 ) ; be_string('CMFF' ); set_scheme(3 ) ; be_string('CMFI' ); set_scheme(3 ) ; be_string('CMFIB' ); set_scheme(3 ) ; be_string('CMINCH' ); set_scheme(3 ) ; be_string('CMR' ); set_scheme(3 ) ; be_string('CMSL' ); set_scheme(3 ) ; be_string('CMSS' ); set_scheme(3 ) ; be_string('CMSSBX' ); set_scheme(3 ) ; be_string('CMSSDC' ); set_scheme(3 ) ; be_string('CMSSI' ); set_scheme(3 ) ; be_string('CMSSQ' ); set_scheme(3 ) ; be_string('CMSSQI' ); set_scheme(3 ) ; be_string('CMTI' ); set_scheme(3 ) ; be_string('CMU' ); set_scheme(3 ) ; be_string('CMVTT' ); set_scheme(3 ) ; @# be_string('CMCSC10' ); set_scheme(4 ) ; {dont ask me why, I didnt design the font} be_string('CMR5' ); set_scheme(4 ) ; be_string('CMR5' ); set_scheme(4 ) ; @# be_string('LOGO' ); set_scheme(5 ) ; be_string('LOGOBF' ); set_scheme(5 ) ; be_string('LOGOSL' ); set_scheme(5 ) ; @# be_string('CMMI' ); set_scheme(6 ) ; be_string('CMMIB' ); set_scheme(6 ) ; @# be_string('CMBSY' ); set_scheme(7 ) ; be_string('CMSY' ); set_scheme(7 ) ; @# be_string('CMEX' ); set_scheme(8 ) ; @# be_string('LASY' ); set_scheme(9 ) ; be_string('LASYB' ); set_scheme(9 ) ; @# be_string('CIRCLE' ); set_scheme(10) ; be_string('CIRCLEW' ); set_scheme(10) ;