diff options
Diffstat (limited to 'dviware/crudetype/version3/noscheme.add')
-rw-r--r-- | dviware/crudetype/version3/noscheme.add | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/dviware/crudetype/version3/noscheme.add b/dviware/crudetype/version3/noscheme.add new file mode 100644 index 0000000000..6d9c98e30e --- /dev/null +++ b/dviware/crudetype/version3/noscheme.add @@ -0,0 +1,88 @@ +% 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. + +@<Define Lineprinter codes@>= + 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) ; |