summaryrefslogtreecommitdiff
path: root/dviware/crudetype/version3/noscheme.add
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/crudetype/version3/noscheme.add')
-rw-r--r--dviware/crudetype/version3/noscheme.add88
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) ;