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 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=\CaesarClass where the current possibilities for 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 (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 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