CaesarCM fonts
 Jan 1993

This directory contains:

 (1)    Three "tm" font metrics that bear the characteristic mark of
an "extended cm font" as required by CaesarCM.

 tmr10.tfm 
 tmti10.tfm 
 tmsl10.tfm

They match the "tm" fonts of Daniel Taupin, posted on ftp
rsovax.ups.circe.fr  [130.84.128.100]. For use see
CaesarTeaser.doc, and CaesarCM.doc. One such marked .tfm is needed
per extended cm font installed.  A recipe for preparation of 
further marked .tfm's is described below.

 (2)    Three files giving a complete specification of the dodo
font, which may be needed to work around driver problems on low
resolution printers.

 dodo.tfm 
 dodo.pl 
 dodo.pk

The last serves for all resolutions since since the font consists of
a single blank character of zero dimensions!  This is not an
(extended) cm font and a fortiori not a marked one.  See
CaesarCM.bugs for instructions.

     Beware that the ".tfm" and ".pk". files mentioned are binary files.
They can be moved by ftp in binary mode.  Type: 

      binary <carriage return>

at the ftp prompt.      

     They may well be posted in a coded seven bit ASCII form known as
uu.  The uu encoding is available on unix, Mac, PC,
and some other operating systems.




  _________________________________________

Extracted from CaesarCM.doc April 1992
by L. Siebenmann



                   Appendix  EXTENDED CM FONTS




      By a CM extension class we will mean a subset E of the accented
characters of the range 128--255 of the Cork norm.

      By a (partially) extended CM TeX font "belonging to" class E will be
meant one extending the Computer Modern norm for alphabetical fonts in the
range 0--127, and in agreement with the Cork norm for the subset E of the
range 128--255.

      In practice it is reasonably clear what "extending the Computer
Modern norm" means. It is perfectly clear when, in the range 0-127, your
font coincides in all respects (including name) with one of Knuths CM
fonts. But note that cmr, cmti, and cmtt differ slightly; for example cmti
has a pound sign where cmr has a dollar. The Cork norm of 1990 eliminates
such variations.

      The CM fonts of Knuth, the "TM" fonts of Taupin, and the
virtual fonts of J. Zlatu\v ska are naturally of extended CM type.

      Unfortunately there exist incompatible extensions of "CM"
fonts, notably the numerous adaptations of Adobe Postscript fonts
used by Textures on the Macintosh.  (Many other TeX's use raw
PostScript encoding, which makes these fonts "non-CM" even in the
range 0-127; Caesar does not deal with them at all.)  Such
noncompatible extensions can be regarded by CaesarCM as 
simply CM fonts (ie as extended CM fonts of class E where E is
the empty set). The extra characters do no harm, but they cannot
be exploited by the smart accents mechanism of CaesarCM.

      For an extended CM font to be useful to CaesarCM, an
extension class E to which it belongs must somehow be made known
to CaesarCM, which is then prepared to use the ready-made
accented characters that belong to E.

      Remember then that an extended CM font of class E
may have some (other) accented characters contradicting the 
Cork norm; CaesarCM just ignores the latter.

      Each new class must be  made known to CaesarCM.tex by
adding suitable data.  Currently, just three classes are known to
CaesarCM.tex, namely 

 --- a class CM, the "trivial" class of Computer Modern for
which E is empty,

 --- a class for TM fonts which (roughly) has E the set of
accented characters in the segment 192-255 of the Cork norm.

 --- a class AD, the Adobe type one font distribution
reencoded to extended CM, August 1992 with N. Jungers.
Coincident with TM in Aug 1992, but hopefully to become
somewhat larger. 

      Other classes can be added with help from a TeX 
programmer.  

      Since for each font, CaesarCM needs to have a specified and
known extension class E, we have to provide means to specify it.

     1)  By default the assigned class will be empty, as for CM
fonts, but this can be changed to TM (say) by the command
\let\CaesarDefaultClass\CaesarClassTM.

     2)  The .tfm file may carry external or internal markings that
cause CaesarCM.tex to conclude automatically that the font belongs
to a certain class.  See the following appendix for details.

     3)  The class can be (re)assigned by command at any time by

      \skewchar<font>=\CaesarClass<class>

where the current possibilities for <class> are CM and TM.  For
example with Plain TeX,

      \skewchar\tenrm=\CaesarClassTM

assigns class TM to \tenrm.  (Currently, \CaesarClassCM gives -10
and \CaesarClassTM gives -20 but these numerical values may be
ephemeral.) Such an explicit assignment takes priority over an
internal marking as in (2) above.

      There may be several font commands, say \tenrm and \myrm that
refer to the same font cmr10; happily the above class change applies to
all at once --- they are indeed the same font.


                   Appendix  MARKING EXTENDED CM FONTS


      CaesarCM uses the notion of a

                  "marked and extended"

CM (metric) font.  The marking serves to automatically specify an
extension class to which the font belongs.  Note that the marking
can always be replaced (or overruled) by an explicit class
assignment as in (3) above.  Marking is thus an optional extra
convenience. 

 *** External marking by name prefixes.

       CaesarCM automatically recognises the following two-letter
".tfm" file name prefixes:

        cm, CM, dm, DM, tm, TM

If one of these prefixes occurs it tests whether <eaccute>
(at Cork position "E9) has positive width.  If so it
assigns class TM. (A standard CM font of course fails this test.)

        This is a test of last resort that applies only if
other tests would say nothing (ie give the default class).

        Norbert Schwartz and Daniel Taupin have recommended accent
management based entirely on prefix tests. (See the June 1992 GUT
forum proceedings including some macros of Schwartz.) CaesarCM makes
prefixes one of many useful tests; its use of \skewchar as the basic
prose font class identifier allows this diversity.


 *** Internal marking.

       All fonts distributed with CaesarCM are internally
marked to assure that their behavior under CaesarCM is (normally)
independant of the name assigned.

      The internal marking used is very strange; so it is well to
explain first why mundane solutions seem to fail.

      Font name alone was not an acceptable criterion for CaesarCM
since from the outset extended fonts under standard CM names were used.
This is was natural to seek marking devices that are name-independant.

      Other sorts of software, tend to use headers.  Indeed, most
data structures include headers. The .tfm format (which originated at
Xerox Park) is no exception. Unfortunately TeX seems to heed little
of this information and passes none on to the TeX programmer.

      One can readily store accessible information in extra font
dimensions (see TeXbook page 433). Unfortunately, when one consults a
nonexistant font dimension, an error message is produced.

      Here is the primary `mark' used by Caesar (version 2)

(*) --- (small) positive depth for the ASCII character "5E, the hat
accent.  

      This indicates that the class is not CM.  It also indicates
that fontdimension 8 is present, which then leads to further information
on the class.

      The hat is a character which, under normal typographic variation,
will retain depth exactly 0, since its geometric "bounding box" is far
above the base line. This information cannot be tampered with by other
macro packages. Seemingly, it is reliable inasmuch as every alphabetical
font (including PostScript type) that is likely to be encountered in
prose will have hat in this position.

     You can test whether a .tfm file satisfies condition (*) by
installing it as indicated in the main text, selecting the font in
question, and then using the line

     {\catcode`\^=11\setbox0=\hbox{^^5e}\showthe\dp0}

     While only one font class is in use (the class of TM),
no other information is needed.  However other classes
will be distinguished later on by special values of 
various fontdimensions. For example, it is expected that

(**) --- a small negative value for fontdimension 8 will indicate
that the font class is TM (or AD).

     When other indications are needed the above rules will be
extended.  Contact the author if the need arises.

     Postings of extended computer modern fonts will hopefully be
accompanied by .tfm files that provide the above marking. If
you find that this is not the case, you can use the command 

       \skewcharacter\myfont=\CaesarFontClass<classtag>

Alternatively, here is a way to mark a given .tfm file as being
of class TM. Use a conversion .tfm <--> .pl, as provided in a
metafont installation, to be able to edit the .tfm file in its
readable ASCII .pl form. Then change the .pl version by addition of
a line

       (CHARDP R 0.0001)

to the entry for the character number hex "5E = octal '136. This
makes the depth .001 pt.  (Negative depths are rejected by Knuth's
PLtoTF program.)

     As for (**) you add a line of the form

       (PARAMETER D 8 R -0.0001)

after the line 

       (EXTRASPACE R ???????)

specifying fontdimension 7. 

     Since you can expect to need just a few fonts to obtain adequate
hyphenation this "hacker's approach" should be adequate. 




L. Siebenmann
  <lcs@matups.matups.fr>