Home
Karl Berry Olaf Weber http://tug.org/web2c
Contents
1. 00 36 leestr DSUto D Cran erue Aro Ibl 35 il4 ti tCcx lolo 4 er RUD EV 20 112 t1 t6Xx u vul d REENEREE TK ER ee 20 Info format arenon epe aed Seg dps 18 initial form enabling 00 8 initial Metafont 0 eee eee eee eee eee 25 initial MetaPost cece eee eee ee eee 33 initial programs 2 421 px DUE IR ERG Bee SS 10 Initial siete cod ankle ee selene caleba ag aan 16 initializations lengthy 00 10 input filenames 0 cece cece eee e eee 12 install bases Make target sess 4 install fmts Make target esses 4 install formats Make target 4 install mems Make target ssss 4 installation tens Debe ner ER pee 2 interaction between TCX files and 8bit 21 interaction Mode cece eee eee ee eee 8 international characters seesssss 19 introduction v3 2 4 side 9 vp EIER AS 1 IP cl eie e DIEI MERE NOD LESSE 22 IPC DEBUG 1e e RR S 4 22 Index kerning table in TFM files 49 keyboard character code translating 21 Knuth Donald E 0 eee eee 1 29 KPATHSEA DEBUG pra cei pos 2 seca ed ed Me eda 8 KRN Droperty oce sveteniles nt mier meets ees 49 L label fonts xe pU ERI qune ep de S 28 LABEL property RR t EDEET 4 49 language support in TRX 02000 18 languages hyphenation rule
2. 0000 39 DVI opcodes showing 0e eee eee 40 DVITutiliti szo got steeds RD E eR 39 AVA COPY uo esee pRakN RVCPL I ERE REOS 39 dVAtonp use speret xou P NIU 33 dvitype DVI validation lesse 39 dvitype output example ssssseees 40 dvityp Webu scree ERG pA PRU epe xs 39 dx horizontal escapement 45 47 dy vertical escapement 20000 47 dynamic array allocation 5 dynamic Metafont mode definitions with smode A apeNiszdaquueakd esibekd4 ke E req be UE 26 dynamic packing variable 45 E e response at error prompt 12 escirc imflex oi es sepe rb wake ob Rn 19 QA e vis ure ea iate bre ue n a e OR e DE dou EIUS 23 Ole oo credi EIER RICE EC Ere 30 BG fonts svete cie messis xi ter P RERUM pi 14 24 editing of bitmap fonts 51 editor invoked at error ee eee eee eee 12 eight bit characters in filenames 13 SMpty COXE cys cu husks Aah Bee IMPR TD 20 endian dependencies 000 eee eens 11 eoc GF command cece eee eee 47 BEplainac2esve ez la e REDI Ie 18 OPS Pei ses is Sete SEE VER Meagan neta rust he A prts 27 errors editor invoked at 12 escapement horizontal suse 45 AT escapement vertical 0 eee ee ee AT etex for MetaPost labels 31 executables shared initial
3. 44 10 5 GFtype Plain text transliteration of generic fonts 46 10 6 TFtoPL TEX font metric to property list conversion 48 10 7 PLtoTF Property list to TEX font metric conversion 50 10 8 VFtoVP Virtual font to virtual property lists 50 10 9 VPtoVF Virtual property lists to virtual font 51 10 10 Font utilities available elsewhere ssseeessesess 51 Appendix A Legalisms 52 Appendix B References 53 Chapter 1 Introduction 1 1 Introduction This manual corresponds to version 2014 of Web2c released in May 2014 Web2c is the name of a TFX implementation originally for Unix but now also running under DOS Amiga and other operating systems By TEX implementation we mean all of the standard programs developed by the Stanford T X project directed by Donald E Knuth Metafont DVItype GFtoDVI BibTEX Tangle etc as well as TEX itself Other programs are also included DVIcopy written by Peter Breitenlohner MetaPost and its utilities derived from Metafont by John Hobby etc General strategy Web2c works as its name implies by translating the WEB source in which TEX is written into C source code Its output is not self contained however it makes extensive use of many macros and functions in a library the web2c 1lib directory in the sources Therefore it will not work without change on an arbitrary WEB
4. In unrestricted mode the argument is simply passed straight to system unaltered In restricted mode ASCII double quote characters should always be used in the argument to write18 where quoting of arguments is needed as in the example above This is to achieve some measure of system independence On Unix systems these are replaced with single quote characters to avoid insecure further expansion Care is also taken on Windows to avoid additional expansions from e g Mismatched quotation marks in the command string result in a diagnostic message in the log file no execution is performed After quotation processing if the first word delimited by a space or tab of the command is in the list specified by the shell escape commands configuration value the command is executed Otherwise it is not In any case a message is written to the log file The shell escape commands value is a comma separated list of words Whitespace is significant and typically should not be present The default definition looks like this but with more commands included Shell escape commands bibtex dvips epstopdf tex pdflgX and lua TEX support reading via input and openin and writing via openout from pipes if the first character is The following command is then treated exactly the same as the argument to Nwritei18 In these engines the primitive variable pdfshellescape is set to 0 if shell escapes are disabled 1 if t
5. eee eee aes 39 40 parse first life Aten Aaa eer AG 8 progname string cesses 8 11 TeCOLdeP iiss d encievteup e e 44e ip enl PET 8 cshell escape cxvibeel vM IEEE 16 zshell restricted 2l o m RR ie 16 show opCcOdes been ege vPlIN Eins 40 SSUIICU 1094 oe ei ie lene 3T cetylezmftfile6 huis egies ete aes 30 ST aaa g the Cate lhe wy dd mt tek pale E RATIOS 33 SECTS i d esu Lh etie en tit 34 tex texprogram sesseeee eee 33 translate file tcxfile s 9 BbrofBbciosesegeseudeg bu Cited REC EE 33 zunderline s dg vem p yv r pr RUNE 36 Ouppercase ado use esa Pia ates sas kas 36 E T 3T used for output sinire eens ne eee ee eee 9 Dp ASA CRM RS NEAR A 24 aux cross reference files 34 PN DAS Ole Mind oder ewes ote ne Rieke Fine ean een 25 bbl bibliography files seere 34 bib bibliography databases 34 b1g BibTEX log file 0 0 2 34 PMG ecto in bie et een S wend el tube 16 Hf loilemduenexebetsbUevenPbOSen pua y tok bus 24 Hpollcs4bewsnswitentbn Lesern er thee ale 31 mps files and PDF 0 32 nnn PostScript figures 000 31 nnngf generic fonts 0 0000 24 tcx character translation files 9 19 Index SO Kes c muc Ar Mr m freier td 14 ztfmoutp to sP ezreeseks ey v p ae deed bes 24 31 Xdefaults o Reeve 27 eKYOSOurCeS wes tace ahs cies gw eae eas ae 2
6. lt This pixel s upper left corner is at 3 0 in METAFONT coordinates Explanation 2033 2043 4 The byte position in the file where each GF command starts beginning of char 75 The character code in decimal 3 lt m lt 60 0 n 56 The character s bitmap lies between 3 and 60 inclusive horizontally and be tween 0 and 56 inclusive vertically m is a column position and n is a row position Thus 3 is the left side bearing The right side bearing is the hori zontal escapement given below minus the maximum m initially n 56 paint 0 24 12 20 The first row of pixels 0 white pixels 24 black pixels 12 white pixels etc newrow 0 n 55 paint 24 12 20 The second row of pixels with zero leading white pixels on the row 3 eoc The end of the main character definition Here is the GF postamble information that GF type outputs at the end Character 75 dx 4259840 65 width 815562 64 57289 loc 2033 Explanation dx The device dependent width in scaled pixels i e units of horizontal pixels times 2716 The 65 is simply the same number rounded If the vertical escapement is nonzero it would appear here as a dy value width The device independent TFM width of this character It is 2724 times the ratio of the true width to the font s design size The 64 57289 is the same number converted to pixels loc The byte position in
7. The names of the bib and bst files are specified in the aux file as well via the bibliography and bibliographystyle La TEX macros BibTEX searches for bib files using the BIBINPUTS and TEXBIB paths and for bst files using BSTINPUTS see Section Supported file formats in Kpathsea It does no path searching for aux files The program accepts the following options as well as the standard help and version see Section 3 2 Common options page 7 terse Suppress the program banner and progress reports normally output min crossrefs n If at least n 2 by default bibliography entries refer to another entry e via their crossref field include e in the bbl file even if it was not explicitly referenced in the aux file For example e might be a conference proceedings as a whole with the cross referencing entries being individual articles published in the proceedings In some circumstances you may want to avoid these automatic inclusions altogether to do this make n a sufficiently large number See also btxdoc tex Basic ETEXable documentation for general BibTEX users btxhak tex IXTEXable documentation for style designers btxdoc bib BibTEX database file for the two above documents xampl bib Example database file with all the standard entry types ftp ftp math utah edu pub tex bib A very large bib and bst collection including references for all the standard TEX books and a complete bib
8. a b fails input a b ok This quoting mechanism comes into play after TEX has tokenized and expanded the input So multiple spaces and tabs may be seen as a single space active characters such fp as are expanded first and so on See below On the other hand various C library routines and Unix itself use the null byte character code zero ASCII NUL to terminate strings So filenames in Web2c cannot contain nulls even though TEX itself does not treat NUL specially In addition some older Unix variants do not allow eight bit characters codes 128 255 in filenames For maximal portability of your document across systems use only the characters a z 0 9 and and restrict your filenames to at most eight characters not including the extension and at most a three character extension Do not use anything but sim ple filenames since directory separators vary among systems instead add the necessary directories to the appropriate search path Finally the present Web2c implementation does and expansion on name unlike Knuth s original implementation and older versions of Web2c Thus input jsmith foo bar will dereference the environment variable or Kpathsea config file value foo and read that file extended with bar in user jsmith s home directory You can also use braces as in foo bar if you want to follow the variable name with a lette
9. 20 2043 newrow 0 n 55 paint 24 12 20 2047 newrow O n 54 paint 24 12 20 2051 newrow 0 n 53 paint 24 12 20 2055 newrow 7 n 52 paint 10 21 13 2059 newrow 8 n 51 paint 8 23 9 n 5 paint 8 23 11 n 4 paint 10 22 12 n 3 paint 24 11 22 n 2 paint 24 11 22 n 1 paint 24 11 22 n 0 paint 24 11 22 2249 newrow 2253 newrow 2257 newrow 2261 newrow 2265 newrow 2269 newrow 2273 eoc Oooou o Chapter 10 Font utilities 4T lt This pixel s lower left corner is at 3 57 in METAFONT coordinates DR K K K K FK FK FK FK K K K 2K oko FK FK FK 2K 3K K K OK FKK KK KK 2 FK FK FK K K K K K K K K K K FKK K kK K 2 2K FK FK FK K K K KK FK FK 2K 2K KK K K FKK Kk kK 2K 2 FK FK FK K K K K K K K K K K FKK K KK 2 2K FK FK 3K K K K K ok FK KK KK 3K K K K FKK KK kK 2K K FK FK FK K 2K K K K K K K K K DKK K KK 2 FK FK FK FK K K K 2K K FK FK 2K KK xx K K FKK KK KK 2K 2K FK FK K 2K K K K K K K K K OK OK Kk kK K OK K K K FKK kK kK kK 2 OK OK FK K K K K KK KK kK K K K KKK kk K K K K XXX KK K K KKK K K 2 2K OK K K K FKK kK kK K K OK K K KKK KK K FK OK K K K K KKK KK ook FK FK FK K K K K KK KK KK xx K K FKK K KK 2K 2K 2 FK FK FK K K K K K K K K K K K KKK KK ook FK 2g K K K K K FK FK 2K 2K KK K K FKK KKK 2K 2K 2 K FK FK K K K K K K K K K KK KKK KK 2 2K FK FK FK K K K K K FK KK 2K 2K 3K K K K FKK K KK K K 2 FK FK FK K K K K K K K K K K K KKK kK K 2 2K FK FK FK K K K KK FK FK 2K 2K KK K K FKK K KK 2K 2K K FK FK FK K K K K K K K K K KK
10. 9 25 11 13 7 27 7 16 7 28 4 18 7 28 2 20 7 27 14 9 24 12 5 2 23 43 21 Explanation 955 The byte position in the file where this character starts Flag byte Dynamic packing variable Related to the packing for this character see the source code Character The character code in decimal Packet length The total length of this character definition in bytes TFM width The device independent TFM width of this character It is 2724 times the ratio of the true width to the font s design size dx The device dependent width in scaled pixels i e units of horizontal pixels times 2716 Height Width The bitmap height and width in pixels X offset Y offset Horizontal and vertical offset from the upper left pixel to the reference origin pixel for this character in pixels right and down are positive The reference pixel is the pixel that occupies the unit square in Metafont the Metafont ref erence point is the lower left hand corner of this pixel Put another way the x offset is the negative of the left side bearing the right side bearing is the horizontal escapement minus the bitmap width plus the x offset Chapter 10 Font utilities 46 2 23 16 Finally run lengths of black pixels alternate with parenthesized run lengths of white pixels and brackets indicate a repeated row 10 5 GFtype Plain text transliteration of g
11. If tfmname is not specified vfname without a trailing vf is used If vplfile extended with vpl if necessary is not specified the property list file is written to standard output The property list file can be converted back to VF and TFM format by the companion program VFtoVP see the next section The program accepts the following option as well as the standard verbose help and version see Section 3 2 Common options page 7 charcode format type Output character codes in the PL file according to type either octal or ascii Default is ascii for letters and digits octal for all other characters Exception if the font s coding scheme starts with TeX math sy or TeX math ex all character codes are output in octal In ascii format character codes that correspond to graphic characters except for left and right parentheses are output as a C followed by the single character C K for example In octal format character codes are output as the letter 0 followed by octal digits as in 0 113 for K octal format is useful for symbol and other non alphabetic fonts where using ASCII characters for the character codes is merely confusing Chapter 10 Font utilities 51 10 9 VPtoVF Virtual property lists to virtual font VPtoVF translates a virtual property list file as output by VFtoVP for example to virtual font VF see Section
12. METERM ig duit adine tata UEM we Cake BS 27 METMAC COX steiere eas wets RDENPEUR Be ees 29 micro typography esses 23 mktexmf disabling ee eee ee eee 24 mktextfM disabling cece eee eee 14 nltex si bebesc4 ee y weed ie hs eee NU DES 18 MLIEX enabling eeeeeeeeeeeee 15 mode needed to run Metafont 24 mode def 3 ot ice hdi thas Sees ee pru 26 Mode Setups iie ee fL pei 34 C RBEEPRUR totes 26 modes file needed for Metafont 26 modes mf recommended modes file 26 Morgan Tim 2 2 EL ea eh ee thee ee es 1 Mortis Bobs scents senso lt cea PEEL EST 1 MBEDIT oncle eb RICAM RA C DUbEUCURESMS 12 npgraph psosxuneewskeU RS SUEDE Que 31 mpman pg 5o ce hk eet pelos tes 31 NposSt scere e eee Sahat ee oce 2 na 31 mpost reason for name change 2 pout esans oi M ee cec ier mer Len dog eie tue 31 Nproof texo cc sib elibem Sen ako oe ey 32 mptrap Make target eee eee eee eee 4 Mptrap teste cise ies ones REPETI ER RON 4 mptrap readme i 2221 idle hoe shed bial dee 4 MPX files converting from DVI files 33 Multi lingual TEX 00 00 00000 02022 18 N N tildes escono etait et ioe TE TE 19 new graphics support for Metafont 27 newrow GF command eee eee eee 47 Index DneXt corsobnensens gsemieu a ROC REC EYR cetera eth 27 NO XLIWIN os yee At ehh te aay hens eee nese 2
13. Mathematical Society Providence RI USA 2nd revised edition 1990 Index Index define options sees 3 expansion in filenames 004 13 76 4 amp magic number 2 eee eee ee eee eee 11 starting a filename 0 000 7 starts option Hames serseri rug eee eee ee eee eee 7 starts option names 00 ic disable dump share configure option 11 disable mf nowin 000000 27 senable epsfwin i peel i Ie ila Galea a 27 scenable hp2627win l bito iD 27 enable ipc configure option 15 enable mftalkwin lesse 27 enable next ss en nd cag Op ds nA 27 enable regiswin nd ne md 27 enable suntoolswin 000 27 enable tektronixwin 00 27 enable unitermwin 000 27 help common option 0000 7 verbose common option 0006 7 version common option 0006 7 with editor cmd eee eee eee 12 with mf x toolkit kit 0000 27 zcWith X lees eee ete Sas wad whee ase 27 SObLtseoz ierat pba tive asa etos MERE NET AT 9 Sbasesbase cle evene DU USS DEN ES 11 base dumpname csse 8 change chfile i clesie IR D REEL 29 charcode format type s s 48 50 D compiler options 0 eee eee eee eee 3 disable writei18 es
14. TEX system understands Computer Modern or other Metafont fonts you can also use PostScript fonts with TEX of course MetaPost generated PostScript figures which do use Computer Modern fonts for labels cannot be directly previewed or printed Instead you must include them in a TeX document and run the resulting DVI file through Dvips to arrange for the downloading of the required fonts see Section Fonts in figures in Dvips To help with this the MetaPost distribution provides a small TEX file mproof tex which is typically called as tex mproof mp output files dvips mproof o The resulting file mproof ps can then be printed or previewed To generate EPSF files set the internal MetaPost variable prologues positive To make the output files self contained use only standard PostScript fonts MetaPost reads the same psfonts map file as Dvips to determine PostScript fonts that need to be downloaded see Section psfonts map in Dvips It is posible for pdf TEX to read MetaPost output directly this is in contrast to general EPSF files which have to be converted for use with PDF output The easiest way is to name the MetaPost output files with the mps extension Then the TEX includegraphics command for example will be able to read them even when outputting PDF MetaPost can write output files via the write primitive this opens a security hole See Section 4 1 tex invocation page 14 The program accepts the following
15. analogous they are not interchangeable TEX cannot read a Metafont memory dump for example Here is a list of filename extensions with references to examples of creating memory dumps TEX fmt See Section 4 2 Initial TEX page 16 Metafont base See Section 5 2 Initial Metafont page 25 When making memory dumps the programs read environment variables and configura tion files for path searching and other values as usual If you are making a new installation and have environment variables pointing to an old one for example you will probably run into difficulties Chapter 3 Commonalities 11 3 5 2 2 Determining the memory dump to use The virgin form see Section 3 5 1 Initial and virgin page 10 of each program always reads a memory dump before processing normal source input All three programs determine the memory dump to use in the same way 1 If the first non option command line argument begins with amp the program uses the remainder of that argument as the memory dump name For example running tex amp super reads super fmt The backslash protects the amp against interpretation by the shell 2 If the fmt resp base option is specified its value is used 3 If the progname option is specified its value is used 4 If the first line of the main input file which must be specified on the command line not in response to is 4 amp dump and dump is an
16. and virgin 10 exit status of shell escape 22 expanded plain format 204 18 extensions to TEX 2 0 eee eee eee 23 extra mem b t oe rrise dron EEE eee eee Hes 5 F FACE property si oc essai ky MERERI EAE an 49 FAMILY property 2 5 rana she eie ERES Y 49 Ferguson Michael 00 0000 18 Index file formats for fonts 0 0 ee eee eee ee 43 file recorder ir red SAD poe at art Ba ated 8 filename conventions in input files 12 filenames starting with 00 7 first line of the main input file 9 fixed point arithmetic 0 ee eee 4 EIXPT a clie SS et ae Saletan ea he te 4 Hag Dyte esene e dle IPRC ERR 45 floating point arithmetic lesse 4 floating point values 0c eee eee eee eee 11 fmt file determining 004 11 imt fles ev a Peon ee Er EEN SEN SENERE ho SE 16 fm files Shanmng ciue eee a Beg neds 11 fmts Make target 0 0 eee eee een eee 4 font llases crc ce espe AEE eee eS ww Y 9 font character code translating 21 font design az ceo ticle kiya beast Bee pea 24 font downloading for MetaPost labels 32 font file formats ccc ee eee 43 f nt proofs esere rere mes ey Leeds nee ee bg 28 font utilities nc Eee ead cistaiees pre 43 font utilities non Web2c 220s 51 fon
17. comment string Use string as the DVI file comment Ordinarily this comment records the date and time of the TEX run but if you are doing regression testing you may not want the DVI file to have this spurious difference This is also taken from the environment variable and config file value output comment shell escape no shell escape shell restricted Enable or disable or enable with restrictions the write18 shell command feature for external executing shell commands See Section 4 5 Shell escapes page 21 enable write18 disable write18 Synonyms for shell escape and no shell escape for compatibility with MikTpx MiKTEX also accepts both pairs of options See Section 4 5 Shell escapes page 21 src specials src specials string This option makes TEX output specific source information using special commands in the DVI file These special track the current file name and line number Using the first form of this option the special commands are inserted au tomatically In the second form of the option string is a comma separated list of the following values cr display hbox math par parend vbox You can use this list to specify where you want TEX to output such commands For example src specials cr math will output source information every line and every math formula These commands can be
18. dvitype option dvifile dvi DVItype does not read any bitmap files but it does read TFM files for fonts referenced in dvifile The usual places are searched see Section Supported file formats in Kpathsea To see all the relevant paths set the environment variable KPATHSEA_DEBUG to 1 before running the program Chapter 9 DVI utilities 40 Output goes to standard output The program accepts the following options as well as the standard help and version see Section 3 2 Common options page 7 dpi real Do pixel movement calculations at real pixels per inch default 300 0 magnification integer Override existing magnification in indvi with integer 1000 specifies no magni fication This is equivalent to setting TgX s mag parameter max pages n Process n pages default is one million output level n Verbosity level of output from 0 to 4 default 4 e 0 Global document information only e 1 Most DVI commands included and typeset characters summarized e 2 Character and movement commands explicitly included 1 2 e 3 DVI stack and current position calculations included 4 Same information as level 3 but DVItype does random positioning in the file reading the DVI postamble first page start page spec Start at the first page matching page spec which is one or more signed inte gers separated by periods corresponding to TEX s countO 9 parameters at
19. e Editing of bitmap fonts Xbfe from the GNU font utilities mentioned below the X BDF editing programs available from ftp ftp x org R5contrib xfed tar Z and ftp ftp x org R5contrib xfedor tar Z and finally if your fonts have only 128 characters you can use the old gftopxl pxtoch and chtopx programs from ftp ftp tug org tex web e Editing of outline fonts FontForge fontforge sourceforge net This is a very elab orate program with support for many outline formats Type 1 OpenType TrueType and many advanced font editing features e PK bitmaps from PostScript outline fonts gsftopk from the xdvi distribution Al ternatively ps2pk from CTAN fonts utilities ps2pk e PostScript Type 1 font format conversion i e between PFA and PFB formats http www lcdf org type e Scanned image conversion the aging GNU font utilities convert type specimen images to Metafont PostScript etc http www gnu org software fontutils e Tracing bitmaps to fitted outlines Autotrace http autotrace sourceforge net Potrace http potrace sourceforge net For Metafont fonts either of the two programs mftrace http www xs4all nl hanwen mftrace or textrace http textrace sourceforge net make the job easier e Virtual font creation CTAN fonts utilities fontinst Appendix A Legalisms 52 Appendix A Legalisms In general each file has its own copyright notice stating the copying permissions for that file Follow
20. existing memory dump of the appropriate type dump is used The first line of the main input file can also specify which character translation file is to be used amp translate file tcxfile see Section 4 4 2 TCX files page 19 These two roles can be combined amp dump translate file tcxfile If this is done the name of the dump must be given first 5 Otherwise the program uses the program invocation name most commonly tex resp mf For example if latex is a link to tex and the user runs latex foo latex fmt will be used 3 5 2 3 Hardware and memory dumps By default memory dump files are generally sharable between architectures of different types specifically on machines of different endianness see Section Byte order in GNU C Library This is a feature of the Web2c implementation and is not true of all TEX implementations If you specify disable dump share to configure however memory dumps will be endian dependent The reason to do this is speed To achieve endian independence the reading of memory dumps on LittleEndian architectures such as PC s and DEC architectures is somewhat slowed all the multibyte values have to be swapped Usually this is not noticeable and the advantage of being able to share memory dumps across all platforms at a site far outweighs the speed loss But if you re installing Web2c for use on LittleEndian machines only perhaps on a PC being used only by you you may wish
21. if a Metafont update is issued mf ini input plain input modes dump Chapter 5 Metafont Creating typeface families 26 The quotes prevent interpretation of the backslashes from the shell Then install the resulting plain base in basedir usr local share texmf web2c by default and link mf base to it For an explanation of the additional modes mf file see Section 5 3 Modes page 26 This file has no counterpart in TEX or MetaPost In the past it was sometimes useful to create a base file cmmf base a k a cm base with the Computer Modern macros also included in the base file Nowadays however the additional time required to read cmbase mf is exceedingly small usually not enough to be worth the administrative hassle of updating the cmmf base file when you install a new version of modes mf People actually working on a typeface may still find it worthwhile to create their own base file of course 5 3 Modes Device definitions for Metafont Running Metafont and creating Metafont base files requires information that TEX and MetaPost do not mode definitions which specify device characteristics so Metafont can properly rasterize the shapes When making a base file a file containing modes for locally available devices should be input after plain mf One commonly used file is ftp ftp tug org tex modes mf it includes all known definitions If however for some reason you have decreased the memory avai
22. modes mf see page 269 of The Metafontbook Chapter 5 Metafont Creating typeface families 27 5 4 Online Metafont graphics The Web2c implementation of Metafont can do online graphics with a number of devices See the Metafont manual for more information about how to draw on your screen By default no graphics support is enabled Metafont examines the MFTERM environment variable or config file value at runtime or the TERM environment variable if MFTERM is not set to determine the device support to use Naturally only the devices for which support has been compiled in can be selected Here is a table of the possibilities showing the MFTERM value and the corresponding configure option s in parentheses epsf enable epsfwin Pseudo window server for Encapsulated PostScript see web2c window epsf c This device produces an EPS file containing the graphics which would be displayed online on other devices The name of the EPS file defaults to metafont eps but can be changed by setting the MFEPSF environment variable to the new filename Contributed by Mathias Herberts hp2627 enable hp2627win HP2627a color graphics terminals mftalk enable mftalkwin Generic window server see web2c window mftalk c JJ next enable next NeXT window system This requires a separate program called DrawingServant available separately See the web2c window next c regis enable regiswin Regis terminals
23. options available in the Web2c implementation For a complete description of the Metafont language see The Metafontbook see Appendix B References page 53 Metafont processes its command line and determines its memory dump base file in a way exactly analogous to MetaPost and TEX see Section 4 1 tex invocation page 14 and see Section 3 5 2 Memory dumps page 10 Synopses mf option mfname mf mf commands mf option first line mf option amp base args Most commonly a Metafont invocation looks like this mf mode mode mag magnification input mfname The single quotes avoid unwanted interpretation by the shell Metafont searches the usual places for the main input file mfname see Section Sup ported file formats in Kpathsea extending mfname with mf if necessary To see all the relevant paths set the environment variable KPATHSEA_DEBUG to 1 before running the program By default Metafont runs an external program named mktexmf to create any nonexistent Metafont source files you input You can disable this at configure time or run time see Section mktex configuration in Kpathsea This is mostly for the sake of the EC fonts which can be generated at any size Metafont writes the main GF output to the file basemfname nnngf where nnn is the font resolution in pixels per inch and basemfname is the basename of mfname or mfput if no input file was specified A GF file cont
24. program Availability All of Web2c is freely available free both in the sense of no cost free ice cream and of having the source code to modify and or redistribute free speech See Section unixtex ftp in Kpathsea for the practical details of how to obtain Web2c Different parts of the Web2c distribution have different licensing terms however re flecting the different circumstances of their creation consult each source file for exact de tails The main practical implication for redistributors of Web2c is that the executables are covered by the GNU General Public License and therefore anyone who gets a binary distribution must also get the sources as explained by the terms of the GPL see Section Copying in Kpathsea The GPL covers the Web2c executables including tex because the Free Software Foundation sponsored the initial development of the Kpathsea library that Web2c uses The basic source files from Stanford however have their own copyright terms or are in the public domain and are not covered by the GPL History Tomas Rokicki originated the TpEX to C system in 1987 working from the first change files for TEX under Unix which were done primarily by Howard Trickey and Pavel Curtis Tim Morgan then took over development and maintenance for a number of years the name changed to Web to C somewhere in there In 1990 Karl Berry became the maintainer He made many changes to the original sources and started using the s
25. putting them after an option 4 By convention non option arguments if specified generally define the name of an input file as documented for each program If a particular option with a value is given more than once it is the last value that counts For example the following command line specifies the options foo bar and verbose gives the value baz to the abc option and the value xyz to the quux option and specifies the filename myfile foo bar verb abc baz quux karl quux xyz myfile 3 2 Common options All of these programs accept the standard GNU help and version options and several programs accept verbose Rather than writing identical descriptions for every program they are described here help Print a usage message listing basic usage and all available options to standard output then exit successfully verbose Print progress reports to standard output version Print the version number to standard output then exit successfully TEX Metafont and MetaPost have a number of additional options in common file line error no file line error Change or do not change the way error messages are printed The alternate style looks like error messages from many compilers and is easier to parse for some editors that invoke TEX This option used to be called file line error style Chapter 3 Comm
26. sequence names Approximately 10 000 control sequences can be stored in the main hash table if you have a large book with numerous cross references this might not be enough and thus you will want to set hash extra Of course ideally all arrays would be dynamically expanded as necessary so the only limiting factor would be the amount of swap space available Unfortunately implementing Chapter 2 Installation 6 this is extremely difficult as the fixed size of arrays is assumed in many places throughout the source code These runtime limits are a practical compromise between the compile time limits in previous versions and truly dynamic arrays On the other hand the Web2c BibTEX implementation does do dynamic reallocation of some arrays Chapter 3 Commonalities T 3 Commonalities Many aspects of the TEX system are the same among more than one program so we describe all those pieces together here 3 1 Option conventions To provide a clean and consistent behavior we chose to have all these programs use the GNU function getopt long only to parse command lines However we do use in a restricted mode where all the options have to come before the rest of the arguments As a result you can e use or to start an option name e use any unambiguous abbreviation for an option name e separate option names and values with either or one or more spaces e use filenames that would otherwise look like options by
27. terminated filenames 12 width device independent 45 47 width in pixels 532 dfs ead Uses adel piita 45 word processor NOt ee cece cece eee nee 14 writing memory dumps 0 10 X X bitmap fonts i Ri bebe ee i 51 X class name for Metafont 27 x offset i Slate pL S SET RE SES GREENS Shay nete 45 AX TesOU CeS unlsekenRlLA eds ke oh RR Re tg 27 X toolkits and Metafont rer 27 xanmpl Dibicessesnesesees ense re UR PEG aper 34 xbfe bitmap font editor 51 XelpX icesssenic n eweitebib ei TepQ 48b 23 xfed bitmap font editor 51 xfedor bitmap font editor 51 IIb liest IRRlcv M EPE TR IIS ae 27 Mb supporta eres eaves iol ieee ag vases ie 27 y A CET 27 XU SUDDOEPUZL ele Rha aer S ae EETA E aog 27 XU OE ince en EL RFS RENSE seen ee ARE ER 27 Y Vi Olset e ENE EE E GARE Ww eee aes 45
28. the plain text property list files and let PLtoTF take care of creating the binary TFM equivalent than to output TFM files directly Synopsis pltotf option plfile pl tfmfile tfm If tfmfile extended with tfm if necessary is not specified the TFM file is written to the basename of plfile tfm e g pltotf wherever cmri10 pl creates cmri0 tfm Since TFM files are binary writing to standard output by default is undesirable 6 The only options are verbose help and version see Section 3 2 Common options page 7 For an example of property list format see the previous section 10 8 VFtoVP Virtual font to virtual property lists VFtoVP translates a virtual font metric VF see Section Virtual fonts in Dvips file and its accompanying TEX font metric TFM see Section Metric files in Dvips file as output by VPtoVF for example to virtual property list format a list of parenthesized items describing the virtual font that humans can edit or read This program is mostly used by people debugging virtual font utilities Synopsis vftovp option vfname vf tfmname tfm vplfile vp111 The fonts vfname and tfmname extended with vf and tfm if necessary are searched for in the usual places see Section Supported file formats in Kpathsea To see all the relevant paths set the environment variable KPATHSEA_DEBUG to 1 before running the program
29. time and date in memory dumps 11 title font iicosszceneiite ber ec Rn idee 28 toolkits Xs esse des eos rede RUSSES IUS OUS 27 torture tests 220 wets he dea a EIN v 4 translation file for TEX specifying 9 translation from WEB to C 0006 1 trap Make target 0 0 cece eee eee eee 4 tr p test Pee had oR ERAN SRN ER eee eS 4 irapman tex csb2 nek Leek POs OR Ld es 4 Trickey Howard cece eee eee eee ee 1 trip Make target 0 0 cece 4 trip testues zu lx ea 4 d BE eds x ARCU Eh oa eee 4 iripman tex o20 bv teks Oo aS Lea 4 triptrap Make target 0 00 eee eee eee 4 Troff and MetaPost cece eee 32 Trof WEB for sane negh ince pinn gei 36 Trojan horses and TEX programs 14 TUGboat bibliography sseessesss 34 Type 1 conversion 0 00 cee eee eee eee 51 type design personal sees 26 type programs DVI ee eee eee eee 39 type programs GF side ss roig oer o ENDEN 46 type programs PK cece eee eee eee 44 type programs pool ee eee e eee eee 37 typeface families 0 cece eee eee ee eee 24 typeface specimen sheets 0 2 eee ee 51 typesetting iis vues tga eee lca MV 14 U UniCode s tiiecat coe iw we aren ee east Xu 23 Index Unicodenput ccs coe waa ea aces ee 15 Uncterfm gluislenie ftecghge1ds4e45 detente Rete 27 unsrt bS
30. to get maximum speed TEXnically even without disable dump share sharing of fmt files cannot be guar anteed to work Floating point values are always written in native format and hence will generally not be readable across platforms Fortunately TEX uses floating point only to represent glue ratios and all common formats plain ATEX AMSTEX do not do any glue setting at fmt creation time Metafont does not use floating point in any dumped value at all Incidentally different memory dump files will never compare equal byte for byte because the program always dumps the current date and time So don t be alarmed by just a few bytes difference If you don t know what endianness your machine is and you re curious here is a little C program to tell you The configure script contains a similar program This is from the Chapter 3 Commonalities 12 book C A Reference Manual by Samuel P Harbison and Guy L Steele Jr see Appendix B References page 53 main 1 Are we little or big endian From Harbison amp Steele union 1 long 1 char c sizeof long u u l 1 if u c 0 1 printf LittleEndian n else if u c sizeof long 1 1 printf BigEndian n else printf unknownEndian exit u c sizeof long 1 1 3 5 3 Editor invocation TEX Metafont and MetaPost all by default stop and ask for user intervention at an error If the input came from a file and the
31. used with the appropriate DVI viewer and text editor to switch from the current position in the editor to the same position in the viewer and back from the viewer to the editor This option works by inserting special commands into the token stream and thus in principle these additional tokens can be recovered or seen by the tricky enough macros If you run across a case let us know because this counts as a bug However such bugs are very hard to fix requiring significant changes to TEX so please don t count on it Redefining special will not affect the functioning of this option The commands inserted into the token stream are hard coded to always use the special primitive TEX does not pass the trip test when this option is enabled 4 2 Initial TEX The initial form of TEX is invoked by tex ini It does lengthy initializations avoided by the virgin vir form so as to be capable of dumping fmt files see Section 3 5 2 Chapter 4 TEX Typesetting 17 Memory dumps page 10 For a detailed comparison of virgin and initial forms see Section 3 5 1 Initial and virgin page 10 For a list of options and other information see Section 4 1 tex invocation page 14 Unlike Metafont and MetaPost many format files are commonly used with TEX The standard one implementing the features described in the TpEXbook is plain fmt also known as tex fmt again see Section 3 5 2 Memory d
32. user responds with e or E the program invokes an editor Specifying with editor cmd to configure sets the default editor command string to cmd The environment variables configuration values TEXEDIT MFEDIT and MPEDIT respectively override this If with editor is not specified the default is vi d s on Unix and an invocation of the TEX works editor on Windows See texmf cnf for the precise values In this string d is replaced by the line number of the error and s is replaced by the name of the current input file 3 5 4 Ninput filenames TEX Metafont and MetaPost source programs can all read other source files with the input TEX and input MF and MP primitives input name in TeX The file name can always be terminated with whitespace for Metafont and MetaPost the statement terminator also works TEX and other macro packages provide other interfaces to input that allow different notation here we are concerned only with the primitive operation As of Web2c version 7 5 3 double quote characters can be used to include spaces or other special cases In typical use the characters surround the entire filename input filename with spaces Chapter 3 Commonalities 13 Technically the quote characters can be used inside the name and can enclose any characters as in input filename with spaces One more point In ATEX the quotes are needed inside the braces thus Minput
33. 0 x 0 y 0 z 0 hh 0 vv 370 118 right4 12265425 146 h 0 12265425 12265425 hh 777 123 fntdef1 23 243 cmbxi0 145 fntnum23 194 current font is cmbx10 146 setchar65 h 12265425 569796 12835221 hh 813 147 w3 251220 150 h 12835221 251220 13086441 hh 829 151 setchar83 h 13086441 418700 13505141 hh 856 164 setchar82 h 17448202 565245 18013447 hh 1142 165 x0 62805 152 h 18013447 62805 17950642 hh 1138 166 setchar89 h 17950642 569796 18520438 hh 1174 A SHORT STORY 167 pop 142 level 1 h 0 v 5841296 w 0 x 0 y 0 z 0 hh 0 vv 370 550 pop 142 level 0 h 0 v 42152922 w 0 x 0 y 0 z 0 hh 0 vv 2670 551 down3 1572864 159 v 42152922 1572864 43725786 vv 2770 555 push 141 level 0 h 0 v 43725786 w 0 x 0 y 0 z 0 hh 0 vv 2770 556 right4 15229091 146 h 0 15229091 15229091 hh 965 561 setchar49 h 15229091 327681 15556772 hh 986 1 562 pop 142 level 0 h 0 v 43725786 w 0 x 0 y 0 z 0 hh 0 vv 2770 563 eop 140 Explanation e The DVItype options are recorded at the beginning followed by global information about the document including fonts used e Each DVI command is preceded by its byte position in the file 42 87 Chapter 9 DVI utilities 42 and because of the show opcodes followed by its decimal opcode value in braces 141 142 e The level lines record information about th
34. 02 18 PLAY LOM os a pe TEA te sine teehee enue tet TS 28 58 Gruft Billy5Goat ves ee ee oo eee eta hee 4 BSECOPK soe cian adintea calcd wee VA RR M EE 51 H Harbison Samuel P 0 eee ee eee 11 hardware and memory dumps 11 hash table increasing size of 5 hash Ext Laces pe Ae ese ward Xd GG devant 5 headerbyte information 49 height in pixels 0 esee 45 help online 22cDeReerelivwQHpReRener ipe t 7 Henry Patrick pepe 1 Herberts Mathias ec eee eee eee 27 hex character codes in TCX files 20 histOby ue bens sar reata TEE e EE ES 1 Hobby Johne entere e px ET sins eme 1 horizontal escapement eeeesess 45 AT TOOT non ew nuns cit eed ER 27 human languages supported in TEX 18 human readable text converting DVI to 39 human readable text converting GF to 46 human readable text converting PK to 44 human readable text converting TFM to 48 human readable text converting VF to 50 hypertextes siae erani aea AREA flyde 23 hyphenation and languages suse 18 hyphenation patterns creating 21 I ice CREAMS cos reed n e aaa eaa ees oc tee 1 identifier case 1 eee eee eee eens 36 identifier collisions ee eee eee eee 37 identifier length 2 00222 e eee 36 identifiers with underlines
35. 2 2 Compile time options In addition to the configure options listed in the previous section there are a few things that can be affected at compile time with C definitions rather than with configure Using any of these is unusual To specify extra compiler flags Dname in this case the simplest thing to do is make XCFLAGS ccoptions You can also set the CFLAGS environment variable before running configure See Section configure environment in Kpathsea Anyway here are the possibilities Chapter 2 Installation 4 DFIXPT DNO MF ASM Use the original WEB fixed point routines for Metafont and MetaPost arith metic calculations regarding fractions By default assembly language routines are used on x86 hardware with GNU C unless NO MF ASW is defined and floating point routines are used otherwise DIPC DEBUG Report on various interprocess communication activities See Section 4 6 IPC and TEX page 22 2 3 Additional targets Web2c has several Make targets besides the standard ones You can invoke these either in the top level directory of the source distribution the one containing kpathsea and web2c or in the web2c directory c sources Make only the C files translated from the Web sources presumably because you want to take them to a non Unix machine formats install formats Make or install all the memory dumps see Section 3 5 2 Memory dumps page 10 B
36. 49 CHARIC property ver ta er eta leew teas 49 CHARWD property 0 0 eee cece eee eee 49 chtopxcci nerit lie e aati est ieee 51 class name for Metafont 000 27 Cm bas Gawd ie AE ar hae fe 26 cmbase mf DL ESS Le SMADDER fg es 26 ombase mftaie cll re ET ETET 30 cmmf base not recommended 26 color in VHoMP er ln eee eee 33 comments in TCX files 0 20005 20 comments MFT control 29 common options eeee ee ee eee ee jf comr onalitles 2222395 0p pRRIRV Sea x were 7 compilation essc nessis un Fe ecu vue desea Pewee ve 2 compile time options 2 3 Computer Modern fonts and Troff 32 Computer Modern macros 005 26 Computer Modern Typefaces production of 30 configuration A retenir en PAR D REY RS 2 configuration file reading 9 configuration file values 000 5 configuration compile time 2 configure with enable options 2 CONTENTS SX eco don Rei LED YR RS 37 control sequence names space for 5 conventions for options esee ls conversion DVI to plain text 39 conversion GF to PK 0 eee eee eee 44 conversion GF to plain text 46 conversion PK to GF eee eee eee 44 conversion PK to plain text 0 44 conversion property list to TFM 50 conversion pr
37. 5 6 MFT Prettyprinting Metafont source MFT translates a Metafont program into a TEX document suitable for typesetting with the aid of TEX macros defined in the file mftmac tex Synopsis mft option mfname mf MFT searches the usual places for mfname see Section Supported file formats in Kpathsea To see all the relevant paths set the environment variable KPATHSEA_DEBUG to 1 before running the program The output goes to the basename of mfname extended with tex e g mft wherever foo mf creates foo tex Line breaks in the input are carried over into the output moreover blank spaces at the beginning of a line are converted to quads of indentation in the output Thus you have full control over the indentation and line breaks Each line of input is translated independently of the others Further control is allowed via Metafont comments e Metafont comments following a single should be valid TeX input But Metafont material can be included within vertical bars in a comment this will be translated by MFT as if it were regular Metafont code For example a comment like x2r is the tip of the bowl will be translated into the TEX x_ 2r is the ie the x2r is treated as an identifier e 4 4 indicates that the remainder of an input line should be copied verbatim to the output This is typically used to introduce additional TEX material at the beginning or an MFT job e g code to m
38. 51 PostScript Type 1 font conversion 51 PostScript and font scaling suse 43 potracedlc s ebbe We oe Lg 51 predefined macros and memory dumps 10 prettyprinting Metafont source 29 prettyprinting WEB programs 3T primitives new seeeeeeeeeee I 23 printable characters specifying 20 printer characteristics for Metafont 26 production use ccc eee eects 10 program name determines memory dump 11 program names special 8 15 prologues l e gb do E um Sr us 33 prologues and EPSF output 32 proof mode ell Gus te A Ee 24 proof sheets of fonts 0 ec eee eee eee 28 property list format eee eee eee 48 property list converting TFM to 48 property list converting VF to virtual 50 PSP kits sree ditt emet som usse eme 51 psfonts map read by MetaPost 32 PXL files explained 0 00 eee eee 43 pxto6ch heen eis Teen GN ee wn RE eens oe ETT 51 R Raichle Bernd 22 c cece eee eee 18 reading additional 0 cece eee eee 1 readonly directory running TEX in 9 reallocation of arrays 00 0 002s 5 redefined character substitutions 19 reference pixel sc eee ee eee eee eee 45 references e Leib RIAM b pie PETERS E 53 POPS sete tach s
39. 7 notation avoiding 000 20 Mbibliography scdcibe eve avin pda E Ree d 34 bibliographystyle sse 34 charsubdef and MLTEX sssssseu 18 Ncountn colleieljelbbiibeceln Ad e Rv 39 40 font and dynamic generation 14 fontditiens cesi rer ainsi I hiv 49 immediate write1l8 eee ee eee 21 input filenames 0 cece eee eee eee 12 input and pipes 0 eee eee eee 22 NMA 5 years a asst ad eme e hte t oe TR 39 40 openin and pipes 0 eee eee ee eee 22 openout and security ee eee eee 14 openout and pipes 0 eee eee ee eee 22 output routine and write 22 pdfshellescape ccc ai oe eee 22 NSELE ue osse dmi e n reden Satay tica 13 tracingcharsubdef and MLTEX 19 tracinglostchars and MLIPX 19 write18 shell escape extension 21 expansion in filenames 04 13 2 S LEDES SEES ERE ERE ERR REE cU ERE 24 8 S pit cleanse EDS e eA 9 8 bit clean output specifying 9 8 bit characters us vif eer ARS TER 19 A abb wbsSt ovi Rub vea e E Telus 35 accented character 0 00 cece eee e eee eee 19 accents hyphenating words with 18 acknowledgements eee eee eee eee eens 1 acm bstislo lv cea ee a ee eee Be 35 Ada WEB for 00 HI ISA eee eee e
40. 7 non Unix system compiling on 4 non windows capable Metafont 27 NUL not allowed in filenames 13 O octal character codes in TCX files 20 offset for overflow labels 2000 28 online Metafont graphics 27 opcodes showing DVI sssseeeesss 40 optical font scaling 0 00088 43 option conventions lees 7 Os sr be ner tee ead ran eden E dets 45 output directory specifying 8 9 output file location sseeeeeeeseeee 9 output files written by TEX programs 14 output comment for DVI files 16 overflow label offset cece eee eee 28 P packet length cuc ae pashan RETI 45 page Starting 2 e exIbReLcirdRRew aves 39 40 parsing the first line 00 08 8 Pascal creating from WEB 36 Pat Peni wok poses ella T DPI ER 21 path searching 2 eE eee eee eee 9 path searching debugging 8 POE 245x644 cR s 23 PDF and mps files 0 0 04 32 POET RX ai 252 X ere ides Shand vete rides Cer 23 permissions legal 0 00 cee eee eee eee 52 PFA and PFB conversion 20 6 51 pfaedit renacer anande ls mats wad tees 51 PiCTEX increasing memory for 5 pipes reading and writing 22 pixelh ight ei ee
41. MFT style file typically contains only MFT directives as described above The default style file is named plain mft which defines this properly for programs using plain Metafont The MFT files is searched along the MFTINPUTS path see Section Supported file formats in Kpathsea Other examples of MFT style files are cmbase mft which defines formatting rules for the macros defined in cm base and e mft which was used in the production of Knuth s Volume E Computer Modern Typefaces Using an appropriate MFT style file it is also possible to configure MFT for typesetting MetaPost sources However MFT does not search the usual places for MetaPost input files If you use eight bit characters in the input file they are passed on verbatim to the TEX output file it is up to you to configure TEX to print these properly Chapter 6 MetaPost Creating technical illustrations 31 6 MetaPost Creating technical illustrations MetaPost is a picture drawing language similar to Metafont see Chapter 5 Metafont page 24 but instead of outputting bitmaps in a font it outputs PostScript commands It s primarily intended for creating technical illustrations MetaPost also provides for arbitrary integration of text and graphics in a natural way using any typesetter TEX and Troff are both supported and a number of other subsidiary programs described below 6 1 mpost invocation MetaPost installed as mpost reads a series of pictures specified
42. S 22 space terminated filenames 12 Splderweb iuiil GvgwnblAsckdP ve tyes AREAS 36 Stallman Richard 0 0 eee eee eee eee 1 Starting Pagers ce ule desi ee Leake 39 40 Steele Jr Guy Dirt Ree bale ee oe 11 stopping at the first error 2045 8 Strategy overall 2nleendveki f dE RES 1 string numbers displaying 37 string pool writing 0 00 36 string representation liess 38 style design for BIBTEX 0 0 34 style hles eee EDER edP I Eds 30 substitutions of font glyphs 18 SUD eiaa dee Sees mne P GU eens es Sa ei 27 SuncgfxcC losen Rip boa etie clas ons 27 Suntolss Mea siwigi ease SER TEENS ES SE SEES SEES Phe 27 SUNVIEW ribs ILIA ERUEURIHPPNRRES 27 swap space as array limit essssse 5 swapping bytes cece eens 11 syntax of TCX files igs hedde End 20 system C library function 21 system command 2 22 1 ipRI nite eee tious 21 T T1 encoding and ISO input 20 Tachikawa Elizabeth 00 cece sees 44 Langl ccs ier ei aa kee ea hee 36 targets additional Make 04 4 TCX character translation files 19 plc asa ret le leh aces baal aa rese ES 27 TEKtrOnixe sreo Aine sitet aad age alev andes 27 Tektronix 4014 2 0 27 TERM 2 vnqen esoru tee eee eth rese trend 27 terminator for file
43. Virtual fonts in Dvips and TEX font metric TFM see Section Metric files in Dvips files It s much easier for both programs and humans to create the plain text property list files and let VPtoVF take care of creating the binary VF and TFM equivalents than to output them directly Synopsis vptovf option vplfile vpl vffile vf tfmfile tfm If vf le extended with vf if necessary is not specified the VF output is written to the basename of vplfile vf similarly for tfmfile For example vptovf wherever ptmr vpl creates ptmr vf and ptmr tfm 6 The only options are verbose help and version see Section 3 2 Common options page 7 10 10 Font utilities available elsewhere The Web2c complement of font utilities merely implements a few basic conversions Many other more sophisticated font utilities exist most are in CTAN fonts utilities for CTAN info see Section unixtex ftp in Kpathsea Here are some of the most commonly requested items e AFM Adobe font metric to TFM conversion see Section Invoking afm2tfm in Dvips and CTAN fonts utilities afmtopl e BDF the X bitmap format conversion ftp ftp tug org tex bdf tar gz e Creating fonts using MetaPost MetaTypel ftp bop eps gda pl pub metatypel1 This is used to create the excellent Latin Modern font family CTAN fonts 1m which extends Computer Modern to a vast repertoire of scripts
44. Web2c for version 2014 May 2014 Karl Berry Olaf Weber http tug org web2c This file documents the installation and use of the programs in Web2c an implementation of Donald Knuth s TeX system Copyright c 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2007 2008 2009 Karl Berry amp Olaf Weber Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies Permission is granted to copy and distribute modified versions of this manual under the con ditions for verbatim copying provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one Permission is granted to copy and distribute translations of this manual into another lan guage under the above conditions for modified versions except that this permission notice may be stated in a translation Table of Contents 1 Introduction osa eene eR ated Re tenta 1 2 Install 3tEOEE sni ae tere le bet nahi ue etn 2 2 1 configure options sss nennen 2 2 2 Compile time options ssseseeesse n 3 2 3 Additional targets cesses eee 4 2 4 Trip trap and mptrap Torture tests usuusu 00 eee eee eee 4 2 9 Runtime options acarie cited Sete Pe NEED a PRU nece 5 3 Commonalities iceeisss sh eem Rh 7 3 1 Option conventions ssseseeeee hn 7 3 2 Commr Option Sene sa
45. Window System display see xdvi 1 TEX also reads TFM files for any fonts you load in your document with the font prim itive By default it runs an external program named mktextfm to create any nonexistent TFM files You can disable this at configure time or runtime see Section mktex config uration in Kpathsea This is enabled mostly for the sake of the EC fonts which can be generated at any size TEX can write output files via the openout primitive this opens a security hole vulner able to Trojan horse attack an unwitting user could run a TEX program that overwrites say rhosts MetaPost has a write primitive with similar implications To alleviate Chapter 4 TEX Typesetting 15 this and similar problems the functions kpathsea out name ok and kpathsea in name ok from the Kpathse library see Section Calling sequence in Kpathsea are used to determine if a given filename is acceptable to be opened for output or input depending on the setting of the configuration variables openout any and openin any a for any the default for openin any r for restricted or p for paranoid the default for openout any In any case all Nopenout filenames are recorded in the log file except those opened on the first line of input which is processed when the log file has not yet been opened The program accepts the following options as well as the standard help and version see Se
46. X when you dump a format Then when you subsequently invoke TEX and read that fmt file the MLTEX features described below will be enabled Generally you use special macro files to create an MLTEX fmt file The sections below describe the two new primitives that MLTEX defines Aside from these MLTEX is completely compatible with standard TEX 4 4 1 1 Ncharsubdef Character substitutions The most important primitive MLTEX adds is Ncharsubdef used in a way reminiscent of chardef charsubdef composite accent base Each of composite accent and base are font glyph numbers expressed in the usual TEX syntax e symbolically 145 for octal 65 for hex 101 for decimal MLTEX s Ncharsubdef declares how to construct an accented character glyph not nec essarily existing in the current font using two character glyphs that do exist Thus it defines whether a character glyph code either typed as a single character or using the char primitive will be mapped to a font glyph or to an accent glyph construction Chapter 4 TEX Typesetting 19 For example if you assume glyph code 138 decimal for an e circumflex 6 and you are using the Computer Modern fonts which have the circumflex accent in position 18 and lowercase e in the usual ASCII position 101 decimal you would use charsubdef as follows Ncharsubdef 138 18 101 For the plain TEX format to make use of this substitution you have to redefine the circumflex a
47. ains bitmaps of the actual character shapes Usually GF files are converted immediately to PK files with GFtoPK see Section 10 2 gftopk invocation page 44 since PK files contain equivalent information but are more compact Metafont output in GF format rather than PK for only historical reasons Metafont also usually writes a metric file in TFM format to basemfname tfm A TFM file contains character dimensions kerns and ligatures and spacing parameters TEX reads only this tfm file not the GF file The mode in the example command above is a name referring to a device definition see Section 5 3 Modes page 26 for example localfont or 1jfour These device definitions Chapter 5 Metafont Creating typeface families 25 must generally be precompiled into the base file If you leave this out the default is proof mode as stated in The Metafontbook in which Metafont outputs at a resolution of 2602 dpi this is usually not what you want The remedy is simply to assign a different mode localfont for example The magnification assignment in the example command above is a magnification factor for example if the device is 600 dpi and you specify mag 7 2 Metafont will produce output at 1200 dpi Very often the magnification is an expression such as magstep 5 corresponding to a TEX magstep which are factors of 1 2 2 After running Metafont you can use the font in a TEX document as usual For example font myfont ne
48. aps not the absolute latest version among other things latex The most widely used format The current release is named TEX 2e new versions are released approximately every six months with patches issued as needed The old release was called IATEX 2 09 and is no longer maintained or supported I4TEX attempts to provide generic markup instructions such as emphasize instead of specific typesetting instructions such as use the 10pt Computer Modern italic font The IXTEX home page http www latex project org context ConTpXt is an independent macro package which has a basic document struc turing approach similar to IATEX It also supports creating interactive PDF files and has integrated MetaPost support among many other interesting features The Con TEXt home page http www pragma ade com amstex The official typesetting system of the American Mathematical Society Like IATEX it encourages generic markup commands The AMS also provides many IXTEX package for authors who prefer IATEX Taken together they are used Chapter 4 TEX Typesetting 18 to produce nearly all AMS publications e g Mathematical Reviews The AMSTEX home page http www ams org tex texinfo The documentation system developed and maintained by the Free Software Foundation for their software manuals It can be automatically converted into plain text a machine readable on line format called info HTML etc The Texinfo home page h
49. aracter codes are output in octal In ascii format character codes that correspond to graphic characters except for left and right parentheses are output as a C followed by the single character C K for example In octal format character codes are output as the letter 0 followed by octal digits as in 0 113 for K octal format is useful for symbol and other non alphabetic fonts where using ASCII characters for the character codes is merely confusing As an example of the output here is the abridged property list translation of cmr O tfm FAMILY CMR FACE 0 352 CODINGSCHEME TEX TEXT DESIGNSIZE R 10 0 COMMENT DESIGNSIZE IS IN POINTS COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE CHECKSUM 0 11374260171 FONTDIMEN SLANT R 0 0 SPACE R 0 333334 STRETCH R 0 166667 SHRINK R 0 111112 XHEIGHT R 0 430555 QUAD R 1 000003 EXTRASPACE R 0 111112 LIGTABLE Chapter 10 Font utilities 49 LABEL C f LIG C i 0 14 LIG C f 0 13 LIG C 1 0 15 KRN O 47 R 0 077779 KRN O 77 R 0 077779 KRN O 41 R 0 077779 KRN 0 51 R 0 077779 KRN O 135 R 0 077779 STOP CHARACTER C f CHARWD R 0 305557 CHARHT R 0 694445 CHARIC R 0 077779 COMMENT LIG C i O 14 LIG C f 0 13 LIG C 1 0 15 KRN 0 47 R 0 077779 KRN O 77 R 0 077779 As you can see the general format is a list of parenthesized properties nested where necessary
50. arch path See Section 3 4 Output file location page 9 parse first line no parse first line Check or disable checking whether the first line of the main input file starts with Z amp and parse it if it does This line can be used specify the format and or a TCX file progname string Set program and memory dump name to string This may affect the search paths and other values used see Section Config files in Kpathsea Using this option is equivalent to making a link named string to the binary and then invoking the binary under that name See Section 3 5 2 Memory dumps page 10 recorder Enable the filename recorder This makes the program save a list of the opened files into a file with by default extension f1s For Aleph this option is always on and the file has extension ofl Chapter 3 Commonalities 9 Ordinarily the f1s file is written to the same location as the log file for example respecting output directory if it is given see Section 3 4 Output file location page 9 However if TEX processing is done on the command line or in response to the prompt the f1s might be written to the current directory or include an integer the current pid as in texput1234 fls You can use jobname to explicitly set the basename translate file tcxfile Use tcxfile to define which characters are printable and translations between the internal and exter
51. ccent macro M in such a way that if its argument is character e the expansion Nchari 38 is used instead of accent18 e Similar Ncharsubdef declaration and macro redefinitions have to be done for all other accented characters To disable a previous Ncharsubdef c redefine c as a pair of zeros For example charsubdef 7 3212 00 disable N tilde Octal 7321 is the ISO Latin 1 value for the Spanish N tilde charsubdef commands should only be given once Although in principle you can use Ncharsubdef at any time the result is unspecified If Ncharsubdef declarations are changed usually either incorrect character dimensions will be used or MLTEX will output missing character warnings The substitution of a Ncharsubdef is used by TEX when appending the character node to the current horizontal list to compute the width of a horizontal box when the box gets packed and when building the Naccent construction at Nshipout time In summary the substitution is accessed often so changing it is not desirable nor generally useful 4 4 1 2 Ntracingcharsubdef Substitution diagnostics To help diagnose problems with charsubdef MLTEX provides a new primitive parameter tracingcharsubdef If positive every use of charsubdef will be reported This can help track down when a character is redefined In addition if the TEX parameter tracinglostchars is 100 or more the character substitutions actually performed at Nshipout time will be reco
52. ction 3 2 Common options page 7 enc no f ile line error fmt fmtname halt on error ini interaction string ipc ipc start jobname string kpathsea debug number no parse first line output directory progname string recorder translate file tcxfile 8bit These options are common to TEX Metafont and MetaPost See Section 3 2 Common options page 7 enc Enable encTRX extensions such as mubyte This can be used to support Unicode UTF 8 input encoding See http www olsak net enctex html ipc ipc start With either option TEX writes its DVI output to a socket as well as to the usual dvi file With ipc start TEX also opens a server program at the other end to read the output See Section 4 6 IPC and TEX page 22 These options are available only if the enable ipc option was specified to configure during installation of Web2c mktex filetype no mktex filetype Turn on or off the mktex script associated with filetype For T X proper filetype can only be tex and tfm but for pdf TEX and lua TEX it can also be pk mltex If we are INITEX see Section 3 5 1 Initial and virgin page 10 enable MLTEX extensions such as charsubdef Implicitly set if the program name is mltex See Section 4 4 1 MLTEX page 18 Chapter 4 TEX Typesetting 16 output
53. d ai a AN E ade oe ae yh Hae 7 9 9 Path searching poa c d o DE i wats 9 3 4 Output file location ssssseseeee een 9 3 5 Three programs Metafont MetaPost and TRX 10 3 5 1 Initial and virgin ienRrete rl eue pleb edid 10 3 5 2 Memory dumps 0 cece eee eee en 10 3 5 2 1 Creating memory dumps 000 eee ee eee 10 3 5 2 2 Determining the memory dump to use 11 3 5 2 3 Hardware and memory dumps sussus 11 3 5 3 Editor invocation 0 cece cee eens 12 3 5 4 Mnput filenames 0 cece eee e 12 4 IpX lypesetibng ee E E Caes 14 4 l texinvocauonguwe eB mee LLDGLEUG cede en eee ee ER 14 4 2 Initial TRX pe paces tae ee Rester ene mU DC ERSDUEE III eda 16 4 3 Bormstsci inset up ERU PRU Bebe teens MERE 17 4 4 Languages and hyphenation sese 18 4 41 MLIEX Multi lingual TEX sees 18 4 4 1 1 charsubdef Character substitutions 18 4 4 1 2 Ncracingcharsubdef Substitution diagnostics 19 4 4 2 TCX files Character translations 0 0005 19 4 4 3 Patgen Creating hyphenation patterns 21 4 5 Shell escapes eris b RE e LUE RU REA OSEE LAE 21 4 6 IPC and TEX ice ele ER an toa eta US Puedes 22 AT TEX extensions vse ere tee Uh der xt Ue PE i 23 5 Metafont Creating typeface families 24 Dl mf INVOCATION nc ch du e E M EM AS 24 5 2 Initial Metafont iesi co
54. default cmr8 for the header information at the top of each output page e label font default cmtt10 for the labels on key points of the figure e slant font no default for diagonal lines which are otherwise simulated using hori zontal and vertical rules To change the default fonts you must use special commands in your Metafont source file typically via commands like slantfont slantlj4 There is no default slant font since no one printer is suitable as a default You can make your own by copying one of the existing files such as fonts source public misc slantlj4 mf and then running mf on it For testing purposes you may it useful to run mf nowin rtest hit RETURN when it stops to get a gf file of a thorn glyph Or use mf instead of mf nowin to have the glyph s displayed on the screen After that gftodvi rtest 2602gf should produce rtest dvi which you process as usual The program accepts the following option as well as the standard verbose help and version see Section 3 2 Common options page 7 overflow label offset points Typeset the so called overflow labels if any points TEX points from the right edge of the character bounding box The default is a little over two inches ten million scaled points to be precise Overflow equations are used to locate coordinates when their actual position is too crowded with other information Chapter 5 Metafont Creating typeface families 29
55. ding writing from pipes and much more Home page http pdftex org lua TEX Based on pdfTEX this also embeds the Lua programming language http lua org and opens up the TEX typesetting engine to control from Lua Home page http luatex org XeTEX Combines support for Unicode input and OpenType and system fonts with the capabilities of pdfTEX Home page http tug org xetex Chapter 5 Metafont Creating typeface families 24 5 Metafont Creating typeface families Metafont is a system for producing shapes it was designed for producing complete typeface families but it can also produce geometric designs dingbats etc And it has considerable mathematical and equation solving capabilities which can be useful entirely on their own Metafont is a batch language like C or Pascal you compile a Metafont program into a corresponding font rather than interactively drawing lines or curves This approach has both considerable disadvantages people unfamiliar with conventional programming languages will be unlikely to find it usable and considerable advantages you can make your design intentions specific and parameterizable For a complete description of the Metafont language see The METAFONTbook see Appendix B References page 53 5 1 mf invocation Metafont usually invoked as mf reads character definitions specified in the Metafont pro gramming language and outputs the corresponding font This section merely describes the
56. e DVI stack h and v define the current position in DVI units while hh and vv are the same in pixels e Text sequences are summarized in brackets as in A SHORT STORY and the 1 Chapter 10 Font utilities 43 10 Font utilities The Web2c programs described here convert between various TEX related font formats the first section below briefly describes the formats GFtoPK is the only one that is routinely used as Metafont outputs GF format but it s most efficient for device drivers to use PK The precise definitions of the PK GF TFM PL VF and VPL formats mentioned below are in the source files that read them pktype web gftype web tftopl web etc 10 1 Font file formats For another perspective on this see Section Font concepts in Dvips Font files come in several varieties with suffixes like tfm pk gf pxl obsolete pl mf vf vpl Each represents a file format A TFM T X font metric file is a compact binary file that contains information about each character in a font about combinations of characters within that font and about the font as a whole The font metric information contained in TFM files is device independent units is used by TEX to do typesetting Unlike the bitmap raster fonts described below TFM font files contain no information about the shapes of characters They describe rec tangular areas and combinations thereof but not what will eventually be pr
57. e The first few items FAMILY FACE and so on are the so called headerbyte information from Metafont giving general information about the font e The FONTDIMEN property defines the TEX fontdimen values e The LIGTABLE property defines the ligature and kerning table LIG properties define ligatures in the example above an f in the LABEL followed by an i is a ligature i e a typesetting program like TEX replaces those two consecutive characters by the character at position octal 014 in the current font presumably the fi ligature KRN properties define kerns if an f is followed by character octal 047 an apostrophe TEX inserts a small amount of space between them 0 077779 times the design size the font was loaded at about three quarters of a printer s point by default in this case or 001 inches e The CHARACTER property defines the dimensions of a character its width height depth and italic correction also in design size units as explained in the previous item For our example f the depth is zero so that property is omitted TFtoPL also inserts any kerns and ligatures for this character as a comment Chapter 10 Font utilities 50 10 7 PLtoTF Property list to TEX font metric conversion PLtoTF translates a property list file as output by TFtoPL for example to TEX font metric TFM see Section Metric files in Dvips format It s much easier for both programs and humans to create
58. e shell escapes that is arbitrary shell commands Although tremendously useful this also has obvious security implications Therefore as of TEX Live 2009 a re stricted mode for shell escapes is the default mode of operation which allows executing only certain commands as specified in the texmf cnf configuration file e Unrestricted shell escapes are allowed if the option shell escape is specified or if the environment variable or config file value shell escape is set to t or y and 1 e Restricted shell escapes are allowed if shell escape is set to p This is the default e Shell escapes are completely disabled if no shell escape is specified or if shell escape is set to anything else When enabled the TEX construct to execute a system command is write18 shell command for example Chapter 4 TEX Typesetting 22 writel8 echo hello world From TEX s point of view this is a normal Write command and is therefore subject to the usual TEX expansions Also the system call either happens during the output routine or right away according to the absence or presence of the Nimmediate prefix as usual for Write The shell command string is passed to the command shell via the C library function system The output of shell command is not diverted anywhere so it will not appear in the log file or anywhere but the terminal output The exit status of the system call is also not available to TEX
59. e veces eae ease 16 dpisreal i cineca he ice RSE ee aa WA oa 40 zenabl writei8 i cea eos RH ae 16 BEDE eena ea A SAGN PII hs 2k Be 15 cfil line error i 9k Dx e a Ea 7 file line error style sess T fmt dumpname eese 8 zfmtsfmt 21 31 l Wee ewe lee b RADIIS 11 geometry supported with Xt 27 halt on rfOrs ile eg ta hs be elec Ee 8 cimagesocei2lnl s ew Ein x Mh rei 46 Sinis nsisn eisiegtrceterg4betbe tt ewes 8 10 interaction string esses 8 PLPC Aa ise ad verto A Mene inet ef 15 55 jobname string cesses 8 kpathsea debug number s ss 8 Length n mnber ox vli LAE I ieu 36 uibpDI ICI 3T lOWerCase u voslcwe ee ee ind arr Bale 36 magnification integer 39 40 max pages cn o lll ge ea eh mM 39 40 mem dumpname esee 8 min crossrefsen oebsedllk od Ronee ge 34 Mixed case api buch id b eSI 36 mktex filetype cece eens 15 25 MTG OR titre oes Ae eee kas et es lees ok a 15 SMNCMONT Si iti Maeva eitlet as SM EMNE 46 2no file line errOor i09 0 efl ges 7 no mktex filetype suse 15 25 no parse first line eese 8 no shell escape cece eee eens 16 output comment string sess 16 output directory e RE RR 8 9 output level nz wee adie wn uS 40 overflow label offset points 28 page start page SpeC
60. ee 36 additional Make targets 0 seen ee 4 AFM to TFM conversion 200e005 51 afm2tfn o lix 9 ag WEE ELDER doe oeae i 51 afmtopl ossoInesiuetengs bene eigo oe 51 Aleph manerite waar aA EDI ENG 23 56 aliases for fonts zi sr rA 9 alphaibst M ek ge PARAL Poke alee dade 35 American Mathematical Society typesetting Syste ounces eius sque Sene pae dase 17 AMS TER usa fet vs epuECRNTIEA IE DDR RUNS 17 apal ike DSt salonen bte dat Entre 35 architecture dependencies 11 array limit fixed ee avouer nern e ea TEPE RA 5 Array SIZES CDL 5 assembly language routines 005 4 autotrace uoce wie ada deur n we v acdgene 51 Awk WEB for ncininhecimep bei wes 36 B base file determining 0000 11 base files cessere ue tre RD Eu 25 base files need mode definitions 26 base files plain only 0 eee 26 base files sharing seeeseeeeeeeeeee 11 bases Make target sseeeeeseeeeeeee 4 basic BibTpX style files 000 35 basic fonts and macroS ec cece eee eee 2 batch languages 00 cece eee eee eee 14 BDF and GF conversion 200 eee 51 bePinfi gh whee s hates ens Tae 31 B rry Karl shoe ee coeds Sek bh ees 1 BIBINPUTS search path for bib files 34 bibliographies creating 0 04 34 bibliography atte hie eee hs Bee 53 bibliography
61. ee Chapter 8 WEB page 36 assuming various macros defined in webmac tex It takes care of typographic details such as page layout indentation and italicizing identifiers It also automatically gathers and outputs extensive cross reference information Synopsis weave option webfile web changefile ch The output is to the basename of webfile extended with tex for example weave wherever foo web creates foo tex Weave applies changefile to webfile before writing the output by default there is no change file The program accepts the following option as well as the standard verbose help and version see Section 3 2 Common options page 7 4 x Omit the cross reference information the index the list of WEB module names and the table of contents an empty CONTENTS tex file will still be written when the Weave output file is processed by TEX using the default webmac tex though Conventionally WEB programmers should define the TEX title macro at the be ginning of the source file Also to get output of only changed modules one can say let maybe iffalse usually as the first change in the change file 8 3 Pooltype Display WEB pool files Pooltype shows the so called string number of each string in a WEB pool file see Chapter 8 WEB page 36 as output by Tangle see Section 8 1 tangle invocation page 36 includ ing the first 256 strings corresponding to the possible in
62. en to the basename of pkname dpigf e g pktogf wherever cmr10 600pk creates cmr10 600gf The only options are verbose help and version see Section 3 2 Common options page 7 10 4 PKtype Plain text transliteration of packed fonts PKtype translates a packed font PK bitmap file as output by GFtoPK for example to a plain text file that humans can read It also serves as a PK validating program i e if PKtype can read a file it s correct Synopsis Chapter 10 Font utilities 45 pktype pkname dpi pk The font pkname is searched for in the usual places see Section Glyph lookup in Kpathsea To see all the relevant paths set the environment variable KPATHSEA_DEBUG to 1 before running the program The suffix pk is supplied if not already present This suffix is not an extension no precedes it for instance cmr10 600pk The translation is written to standard output The only options are help and version see Section 3 2 Common options page 7 As an example of the output here is the abridged translation of the letter K in cmr10 as rendered at 600dpi with the mode ljfour from modes mf available from ftp ftp tug org tex modes mf 955 Flag byte 184 Character 75 Packet length 174 Dynamic packing variable 11 TFM width 815562 dx 4259840 Height 57 Width 57 X offset 3 Y offset 56 2 23 16 17 8
63. eneric fonts GFtype translates a generic font GF bitmap file as output by Metafont for example to a plain text file that humans can read It also serves as a GF validating program i e if GFtype can read a file it s correct Synopsis gftype option gfname dpilgf The font gfname is searched for in the usual places see Section Glyph lookup in Kpathsea To see all the relevant paths set the environment variable KPATHSEA_DEBUG to 1 before running the program The suffix gf is supplied if not already present This suffix is not an extension no precedes it for instance cmr10 600gf The translation is written to standard output The program accepts the following options as well as the standard help and version see Section 3 2 Common options page 7 images Show the characters bitmaps using asterisks and spaces mnemonics Translate all commands in the GF file As an example of the output here is the abrdiged translation of the letter K in cmr10 as rendered at 600 dpi with the mode ljfour from modes mf available from ftp ftp tug org tex modes mf with both mnemonics and images enabled GF type outputs the information about a character in two places a main definition and a one line summary at the end We show both Here is the main definition 2033 beginning of char 75 3 lt m lt 60 O n 56 initially n 56 paint 0 24 12
64. er code for src and the output font character code for dest By default only the printable ASCII characters are considered printable by TEX If you specify the 8bit option all characters are considered printable by default If you specify both the 8bit option and a TCX file then the TCX can set specific characters to be non printable Both the specified TCX encoding and whether characters are printable are saved in the dump files like tex fmt So by giving these options in combination with ini you control the defaults seen by anyone who uses the resulting dump file When loading a dump if the 8bit option was given then all characters become printable by default When loading a dump if a TCX file was specified then the TCX data from the dump is ignored and the data from the file used instead 4 4 3 Patgen Creating hyphenation patterns Patgen creates hyphenation patterns from dictionary files for use with TEX Synopsis patgen dictionary patterns output translate Each argument is a filename No path searching is done The output is written to the file output In addition Patgen prompts interactively for other values For more information see Word hy phen a tion by com puter by Frank Liang see Appendix B References page 53 and also the patgen web source file The only options are help and version see Section 3 2 Common options page 7 4 5 Shell escapes TEX can execut
65. ey perform generic utility functions 9 1 DVIcopy Canonicalize virtual font references DVIcopy reads a DVI file expands any references to virtual fonts see Section Virtual fonts in Dvips to base fonts and writes the resulting DVI file Thus you can use virtual fonts even if your DVI processor does not support them by passing the documents through DVIcopy first Synopsis dvicopy option indvil dvi outdvi dvill DVIcopy reads standard input if indvi is not specified and writes standard output if outdvi is not specified The program accepts the following options as well as the standard help and version see Section 3 2 Common options page 7 magnification integer Override existing magnification in indvi with integer 1000 specifies no magni fication This is equivalent to setting TgX s mag parameter max pages n Process n pages default is one million page start page spec Start at the first page matching page spec which is one or more signed inte gers separated by periods corresponding to T X s countO 9 parameters at shipout time matches anything Examples 3 1 4 9 2 DVItype Plain text transliteration of DVI files DVItype translates a DeVice Independent DVI file as output by TEX for example to a plain text file that humans can read It also serves as a DVI validating program i e if DVItype can read a file it s correct Synopsis
66. hey are enabled and 2 if they are enabled with restrictions The purpose of this feature is to make it possible for TEX documents to perform useful external actions in the common case of an individual user running a known document on his or her own machine In such environments as CGI scripts or wikis where the input has to be considered untrustworthy shell escapes should be completely disabled 4 6 IPC and TEX If anyone uses this feature and needs documentation write tex k tug org This functionality is available only if the enable ipc option was specified to configure during installation of Web2c see Chapter 2 Installation page 2 If you define IPC DEBUG before compilation e g with make XCFLAGS DIPC_DEBUG TEX will print messages to standard error about its socket operations This may be helpful if you are well debugging Chapter 4 TEX Typesetting 23 4 7 TEX extensions The base TEX program has been extended in many ways Here s a partial list e TEX Adds many new primitives including right to left typesetting and more regis ters Now frozen Aleph This adds Unicode support right to left typesetting and more Omega was the original program Aleph is an updated version with a variety of bug fixes and includes e TEX Aleph is not actively maintained pdfIEX Can produce PDF as well as DVI files It also incorporates the e TEX extensions new primitives for hypertext and micro typography rea
67. horter name Web2c In 1997 Olaf Weber took over Dozens of other people have contributed their names are listed in the ChangeLog files Other acknowledgements The University of Massachusetts at Boston particularly Rick Martin and Bob Morris provided computers and ftp access to me for many years Richard Stallman at the Free Software Foundation employed me while I wrote the original path searching library for the GNU font utilities rms also gave us Emacs GDB and GCC without which I cannot imagine developing Web2c And of course TEX would not exist in the first place without Donald E Knuth Further reading See Appendix B References page 53 Chapter 2 Installation 2 2 Installation A copy of this chapter is in the distribution file web2c INSTALL Installing Web2c is mostly the same as installing any other Kpathsea using program Therefore for the basic steps involved see Section Installation in Kpathsea A copy is in the file kpathsea INSTALL One peculiarity to Web2c is that the source distribution comes in two files web tar gz and web2c tar gz You must retrieve and unpack them both We have two because the former archive contains the very large and seldom changing original WEB source files See Section unixtex ftp in Kpathsea Another peculiarity is the MetaPost program Although it has been installed previously as mp as of Web2c 7 0 the installed name is now mpost to avoid conflict with the mp progra
68. ilar to those produced with Metafont in proof mode and GFtoDVI see Section 5 5 gftodvi invocation page 28 6 3 DVItoMP DVI to MPX conversion DVItoMP converts DVI files into low level MetaPost commands in a so called MPX file Synopsis dvitomp dvifile dvi mpxfile mpx If mpxfile is not specified the output goes to the basename of dvifile extended with mpx e g dvitomp wherever foo dvi creates foo mpx DVItoMP supports Dvips style color specials such as color push name and color pop outputting them as withcolor MetaPost commands The only options are help and version see Section 3 2 Common options page 7 Chapter 7 BibTEX Bibliographies 34 7 BibTpEX Bibliographies BibTEX automates much of the job of typesetting bibliographies and makes bibliography entries reusable in many different contexts 7 1 BibTEX invocation BibTpEX creates a printable bibliography bb1 file from references in a aux file generally written by TEX or ATEX The bb1 file is then incorporated on a subsequent run The basic bibliographic information comes from bib files and a BibTEX style bst file controls the precise contents of the bb1 file Synopsis bibtex option auxfile aux The output goes to the basename of auxfile extended with bb1 for example bibtex wherever foo aux creates foo bbl BibT X also writes a log file to the basename of auxfile extended with blg
69. iles with the p1 property list suffix are the plain text human readable analog of the binary tfm files The TFtoPL and PLtoTF programs convert between the two formats see Section 10 6 tftop invocation page 48 and Section 10 7 pltotf invocation page 50 Font files with the mf suffix are in Metafont source format These are the files used by Metafont to generate rastered fonts for specific typefaces at specific magnifications for the specific resolution and type of mapping used by your device Chapter 10 Font utilities 44 The suffix vf identifies virtual font files for which vp1 is the human readable ana log See See Section 10 8 vftovp invocation page 50 and Section 10 9 vptovf invocation page 51 For further discussion of virtual fonts see CTAN doc virtual fonts knuth CTAN help virtualfonts txt and Section Virtual fonts in Dvips This section is based on documentation in the original Unix TEX distribution by Pierre MacKay and Elizabeth Tachikawa 10 2 GFtoPK Generic to packed font conversion GFtoPK converts a generic font GF file output by for example Metafont see Section 5 1 mf invocation page 24 to a packed font PK file PK files are considerably smaller than the corresponding gf files so they are generally the bitmap font format of choice Some DVI processing programs notably Dvips only support PK files and not GF files Synopsis gftopk option gfname dpi
70. in the MetaPost pro gramming language and outputs corresponding PostScript code This section merely de scribes the options available in the Web2c implementation For a complete description of the MetaPost language see AT amp T technical report CSTR 162 generally available in texmf doc metapost where texmf is the root of TEX directory structure See also e http cm bell labs com who hobby MetaPost html the MetaPost author s home page e http tug org metapost papers packages and related information Also a standard MetaPost package for drawing graphs is documented in AT amp T technical report CSTR 164 available as the file mpgraph ps generally stored alongside mpman ps MetaPost processes its command line and determines its memory dump mem file in a way exactly analogous to Metafont and TEX see Section 4 1 tex invocation page 14 and see Section 3 5 2 Memory dumps page 10 Synopses mpost option mpname mpl mp commands mpost option first line mpost optionl amp mem args MetaPost searches the usual places for the main input file mpname see Section Sup ported file formats in Kpathsea extending mpname with mp if necessary To see all the relevant paths set the environment variable KPATHSEA DEBUG to 1 before running the program MetaPost writes its PostScript output to a series of files basempname nnn or perhaps basempname ps very occasionally basempname tfm where nnn are the figu
71. in variants called initial and virgin MetaPost no longer makes this distinction The initial form is enabled if 1 the ini option was specified or 2 the program name is initex resp inimf or 3 the first line of the main input file is amp ini otherwise the virgin form is used The virgin form is the one generally invoked for production use The first thing it does is read a memory dump see Section 3 5 2 2 Determining the memory dump to use page 11 and then proceeds on with the main job The initial form is generally used only to create memory dumps see the next section It starts up more slowly than the virgin form because it must do lengthy initializations that are encapsulated in the memory dump file 3 5 2 Memory dumps In typical use TEX and Metafont require a large number of macros to be predefined there fore they support memory dump files which can be read much more efficiently than ordi nary source code 3 5 2 1 Creating memory dumps The programs all create memory dumps in slightly idiosyncratic thought substantially similar way so we describe the details in separate sections references below The basic idea is to run the initial version of the program see Section 3 5 1 Initial and virgin page 10 read the source file to define the macros and then execute the Ndump primitive Also each program uses a different filename extension for its memory dumps since although they are completely
72. ing in this kind of dual purpose language is called literate program ming The Usenet newsgroup comp programming literate is devoted to this subject WEB like languages have been implemented with many pairs of base languages Cweb provides C and Troff see Appendix B References page 53 CWEB provides C and TEX CTAN web c_cpp cweb Spiderweb provides C C Awk Ada many others and TEX CTAN web spiderweb and of course the original WEB provides Pascal and TEX the implementation languages for the original TEX Metafont MetaPost and related programs to come from the TEX project at Stanford The original WEB language is documented in the file webman tex which is included in the ftp ftp tug org tex lib tar gz archive and available in many other places of course 8 1 Tangle Translate WEB to Pascal Tangle creates a compilable Pascal program from a WEB source file see Chapter 8 WEB page 36 Synopsis tangle option webfile web changefile ch The Pascal output is written to the basename of webfile extended with p for example tangle wherever foo web creates foo p Tangle applies changefile to webfile before writing the output by default there is no change file If the program makes use of the WEB string facility Tangle writes the string pool to the basename of webfile extended with pool The Pascal output is packed into lines of 72 characters or less with the only concession to
73. ing is a summary The Web2c system itself and most of the original WEB source files are public domain tex web the MLTEX code mf web and bibtex web are copyrighted by their authors They may be copied verbatim but may be modified only through a ch file MetaPost related files including mp web itself are copyrighted under X like terms the precise notice is included below Finally the Kpathsea library is covered by the GNU Lesser General Public License see Section Introduction in Kpathsea Therefore the binaries resulting from a standard Web2c compilation are also covered by the LGPL so if you re distribute the binaries you must also offer to distribute the complete source that went into those binaries See the file LGPL for complete details on the LGPL The following notice must be included by the terms of the MetaPost copyright Permission to use copy modify and distribute this software and its documen tation for any purpose and without fee is hereby granted provided that the above copyright notice appear in all copies and that both that the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation and that the names of AT amp T Bell Laboratories or any of its entities not be used in advertising or publicity pertaining to distribution of the software without specific written prior permission AT amp T disclaims all warranties with regard to this software including al
74. inted in those areas Since TEX does scaling calculations one TFM file serves for all magnifications of a given typeface On the other hand the best printed results are obtained when magnified or reduced fonts are not produced geometrically as done by PostScript for example but rather optically with each size a separate design as done with Computer Modern and the EC fonts for example then a separate TFM file is needed for each size At any rate TEX produces a DVI DeVice Independent file from your source document In order to print DVI files on real devices you need font files defining digitized character shapes and other data Then previewers and printer driver programs can translate your DVI files into something usable by your monitor or printer Bitmap fonts come with suffixes such as 600pk or 600gf or 3000px1 where the 600 is the horizontal dots per inch resolution at which the font was produced and the pk or gf or pxl indicates the font format Outline fonts in PostScript Type 1 format have suffixes such as pfa or pfb Fonts in pk packed format are in the tightly packed raster format that is pretty much the standard today They take up less space than fonts in the gf generic font format that Metafont generates and far less space than fonts in pxl format Fonts in pxl format take up gross amounts of disk space and permit only 128 characters They are obsolete Font f
75. ion of the TEX typesetting language see The TEXbook see Appendix B References page 53 TEX Metafont and MetaPost process the command line described here and determine their memory dump fmt file in the same way see Section 3 5 2 Memory dumps page 10 Synopses tex option texname tex tex commands tex option Mfirst line tex option amp fmt args TEX searches the usual places for the main input file texname see Section Supported file formats in Kpathsea extending texname with tex if necessary To see all the relevant paths set the environment variable KPATHSEA_DEBUG to 1 before running the program After texname is read TEX processes any remaining tex commands on the command line as regular TEX input Also if the first non option argument begins with a TEX escape character usually TEX processes all non option command line arguments as a line of regular TEX input If no arguments or options are specified TEX prompts for an input file name with TEX writes the main DVI output to the file basetexname dvi where basetexname is the basename of texname or texput if no input file was specified A DVI file is a device independent binary representation of your TEX document The idea is that after running TEX you translate the DVI file using a separate program to the commands for a particular output device such as a PostScript printer see Section Introduction in Dvips or an X
76. items cross referenced 34 bibtex il eka teeth RIMCBUN ed E 34 BibUpX whieh 535 aes Settle Le eed 34 BibTEX collection 00 000208 34 BibTpx style files lees 35 BigEndian machines 0 0 e ee eee 11 binaries linking so escea rena ppa n daer e e pa 8 blank lines in TCX files ssssseeees 20 boxes memory for csscrrerrsrrerrrerreer 5 breakpoints memory for 0 2000e 5 Breitenlohner Peter 000 eee eee eee 1 BSTINPUTS search path for bst files 34 btex for MetaPost labels 31 btxdoc bib in y get Ge ae eR 34 btxdoc tex ue c due a ur md eps 34 btxh k texX o rdg rean A eo qe nua eee 34 byte posltlOn etd or ne RM Hep 45 AT byte swapping cece eee II 11 C c sources Makefile target 4 change files and MFT sss 29 change files and Tangle 36 change files and Weave 2 0004 3T changing error messages style 7 character codes in GF type output AT character codes in PKtype output 45 Index character codes in TCX files 20 character proofs of fonts 0222 28 CHARACTER property sseseeeeee ene 49 character translation files suse 19 CHARDP property 00 cece cece eee eee 49 CHARHT property 2 0 cece cece eee ee
77. l Laboratories 1992 Hob93 John D Hobby Drawing Graphs with MetaPost Technical Report CSTR 164 AT amp T Bell Laboratories 1993 HS91 Samuel P Harbison and Guy L Steele Jr C A Reference Manual Prentice Hall Upper Saddle River NJ 07458 USA third edition 1991 An authoritative refer ence to the C programming language and a good companion to Kernighan and Ritchie KL93 Donald E Knuth and Silvio Levy The CWEB System of Structured Docu mentation Version 3 0 Addison Wesley Reading MA USA 1993 Knu84 Donald E Knuth A torture test for TEX Report No STAN CS 84 1027 Stanford University Department of Computer Science 1984 Knu86a Donald E Knuth A Torture Test for METAFONT Report No STAN CS 86 1095 Stanford University Department of Computer Science 1986 Knu86b Donald E Knuth The TEXbook volume A of Computers and Typesetting Addison Wesley Reading MA USA 1986 Knu86c Donald E Knuth TEX The Program volume B of Computers and Type setting Addison Wesley Reading MA USA 1986 Knu86d Donald E Knuth The METAFONTbook volume C of Computers and Typesetting Addison Wesley Reading MA USA 1986 Knu86e Donald E Knuth METAFONT The Program volume D of Computers and Typesetting Addison Wesley Reading MA USA 1986 Knu86f Donald E Knuth Computer Modern Typefaces volume E of Computers and Typesetting Addison Wesley Reading MA USA 1986 Knu89 Donald E Knuth The errors of TEX S
78. l implied warranties of merchantability and fitness In no event shall AT amp T be liable for any special indirect or consequential damages or any damages whatsoever resulting from loss of use data or profits whether in an action of contract negligence or other tortious action arising out of or in connection with the use or performance of this software Appendix B References 53 Appendix B References Kpathsea See Kpathsea Dvips and Afm2tfm See Dvips The TEX Users Group http www tug org For an introduction to the TEX system see http tug org begin html 4 TUGboat http tug org TUGboat 10 11 12 13 14 15 16 17 18 19 20 21 TEX and computer typesetting in general ftp ftp math utah edu pub tex bib texbook1 bib For a bibliography of formal articles and technical reports on the T X project see the books TEX The Program or Metafont The Program cited below Bil87 Neenie Billawala Write white printing engines and tuning fonts with Metafont TUGboat 8 1 29 32 April 1987 http tug org TUGboat tb08 1 tbi7billawala pdf GMS94 Michel Goossens Frank Mittelbach and Alexander Samarin The ATEX Companion Addison Wesley Reading MA USA 1994 Hob89 John D Hobby A Metafont like system with PS output TUGboat 10 4 505 512 December 1989 http tug org metapost Hob92 John D Hobby A User s Manual for MetaPost Technical Report CSTR 162 AT amp T Bel
79. lable in your Metafont you may need to copy modes mf and remove the definitions irrelevant to you probably most of them instead of using it directly Or if you re a Metafont hacker maybe you can suggest a way to redefine mode def and or mode setup right now the amount of memory used is approximately four times the total length of the mode def names and that s a lot If you have a device not included in modes mf please see comments in that file for how to create the new definition and please send the definition to tex fonts math utah edu to get it included in the next release of modes mf Usually when you run Metafont you must supply the name of a mode that was dumped in the base file But you can also define the mode characteristics dynamically by invoking Metafont with an assignment to smode instead of mode like this mf Nsmode newmode mf mag magnification input mfname This is most useful when you are working on the definition of a new mode The magnification and mfname arguments are explained in Section 5 1 mf invocation page 24 In the file newmode mf you should have the following with no mode def or enddef if you are using modes mf conventions mode param pixels per inch dpi mode param blacker b mode param fillin f mode param o correction o mode common setup Of course you should use real numbers for dpi b f and o For more information on the use of smode or if you are not using
80. lgf pkfile The font gfname is searched for in the usual places see Section Glyph lookup in Kpath sea To see all the relevant paths set the environment variable KPATHSEA_DEBUG to 1 before running the program The suffix gf is supplied if not already present This suffix is not an extension no precedes it for instance cmr10 600gf If pkfile is not specified the output is written to the basename of gfname dpipk e g gftopk wherever cmr10 600gf creates cmr10 600pk The only options are verbose help and version see Section 3 2 Common options page 7 10 3 PKtoGF Packed to generic font conversion PKtoGF converts a packed font PK file to a generic font GF file Since PK format is much more compact than GF format the most likely reason to do this is to run GF type see Section 10 5 gftype invocation page 46 on the result so you can see the bitmap images Also a few old utility programs do not support PK format Synopsis pktogf option pkname dpilpk gffile The font pkname is searched for in the usual places see Section Glyph lookup in Kpath sea To see all the relevant paths set the environment variable KPATHSEA_DEBUG to 1 before running the program The suffix pk is supplied if not already present This suffix is not an extension no precedes it for instance cmr10 600pk If gffile is not specified the output is writt
81. liography for TUGboat Chapter 7 BibTEX Bibliographies 35 7 2 Basic Bib TEX style files Here are descriptions of the four standard and four semi standard basic BibTEX styles CTAN biblio bibtex contains these and many more for CTAN info see Section unix tex ftp in Kpathsea plain abbrv acm alpha apalike ieeetr siam unsrt btxbst doc Sorts entries alphabetically with numeric labels Generally formatted according to van Leunen s A Handbook for Scholars The other style files listed here are based on plain First names month names and journal names are abbreviated Names are printed in small caps Alphanumeric labels e g Knu66 No labels at all instead the year appears in parentheses after the author Use this in conjunction with apalike tex plain TEX or apalike sty IATEX which also changes the citations in the text to be author year Numeric labels entries in citation order IEEE abbreviations article titles in quotes Numeric labels alphabetic order Math Reviews abbreviations names in small caps Lists entries in citation order i e unsorted The template file and documentation for the standard styles Chapter 8 WEB Literate programming 36 8 WEB Literate programming WEB languages allow you to write a single source file that can produce both a compilable program and a well formatted document describing the program in as much detail as you wish to prepare Writ
82. m that does prettyprinting This approach was recommended by the MetaPost author John Hobby If you as the TEX administrator wish to make it available under its shorter name as well you will have to set up a link or some such yourself And of course individual users can do the same For solutions to common installation problems and information on how to report a bug see the file kpathsea BUGS see Section Bugs in Kpathsea See also the Web2c home page http www tug org web2c Points worth repeating e Before starting the standard compilation and installation you must install the basic fonts macros and other library files See Section Installation in Kpathsea e If you do not wish to use the standard file locations see Section Changing search paths in Kpathsea e Some Web2c features are enabled or disabled at configure time as described in the first section below 2 1 configure options This section gives pointers to descriptions of the with and enable configure argu ments that Web2c accepts Some are specific to Web2c others are generic to all Kpathsea using programs For a list of all the options configure accepts run configure help The generic options are listed first and the package specific options come last For a description of the generic options which mainly allow you to specify installa tion directories and basic configure usage see Section Running configure scripts in Au
83. n optimizing See Section TEX or Metafont failing in Kpathsea The files trip diffs mftrap diffs and mptrap diffs in the triptrap directory show the standard diffs against the original output If you diff your diffs against these files you should come up clean For example make trip gt amp mytrip diffs diff triptrap trip diffs mytrip diffs To run the tests separately use the targets trip trap and mptrap To run simple tests for all the programs as well as the torture tests run make check You can compare the output to the distributed file tests check 1og if you like 2 5 Runtime options Besides the configure and compile time options described in the previous sections you can control a number of parameters in particular array sizes in the texmf cnf runtime file read by Kpathsea see Section Config files in Kpathsea Rather than exhaustively listing them here please see the last section of the distributed kpathsea texmf cnf Some of the more interesting values main memory Total words of memory available for TEX Metafont and MetaPost Must remake the format file after changing extra mem bot Extra space for large TEX data structures boxes glue breakpoints et al If you use PiCTgEX you may well want to set this font mem size Words of font info available for TEX this is approximately the total size of all TFM files read hash extra Additional space for the hash table of control
84. nal character sets Moreover tcxfile can be explicitly declared in the first line of the main input file amp translate file tcxfile This is the recommended method for portability reasons See Section 4 4 2 TCX files page 19 8bit This option specifies that by default all characters should be considered print able If translate file was given as well then the TCX file may mark characters as non printable 3 3 Path searching All of the Web2c programs including TEX which do path searching use the Kpathsea routines to do so The precise names of the environment and configuration file variables which get searched for particular file formatted are therefore documented in the Kpathsea manual see Section Supported file formats in Kpathsea Reading texmf cnf see Section Config files in Kpathsea invoking mktex scripts see Section mktex scripts in Kpathsea and so on are all handled by Kpathsea The programs which read fonts make use of another Kpathsea feature texfonts map which allows arbitrary aliases for the actual names of font files for example Times Roman for ptmr8r tfm The distributed and installed by default texfonts map includes aliases for many widely available PostScript fonts by their PostScript names 3 4 Output file location All the programs generally follow the usual convention for output files Namely they are placed in the directory current when the program is run rega
85. names 12 terse Output Sx b E RR iat a Pinte 34 ER nese te Noe nye o eee va eure di a OAE ENE Eo UM 14 bezi fmt edp easar Ler eeg mb petere e did 17 61 TEX creating from Metafont 29 TEX creating from WEB 3T TEX description of 00 eee eee eee eee 14 TEX extensions to 2 eee eee eee 23 TEX format packages for 0 17 TeX initiale 2 estre RP E same esa NES 16 TEX input files found 0000 14 TpX inyocation dv scd rene M 14 TEX Metafont and MetaPost 10 TEX Web2c implementation of 1 TEXBIB search path for bib files 34 TEXEDLT xeu SETE SN Sabine EN SES TAN SES En 12 texfonts map 2 Ms aA et hate eee ee 9 Texinfostc cb ieee dete AEA EE aaRS 18 texmi vent en ox robe REI WE AREE 9 teoxmfmp CsssussienofuensLtsateNVekorendevelieqs 27 TEXMFOUTPUT used for reading 9 TEXMFOUTPUT used if unwritable 9 exp t i5 cvv egi IRURE A ke ee ee 14 TFM files converting property lists to 50 TFM files explained 0000s 43 TFM files memory for 0 08 4 5 TFM files output by Metafont 24 TFM files output by MetaPost 31 TFM width of characters 45 47 CECOP srep Nunat an inan y gndceqitietscd oy secti 48 three programs cedllB eM DEPRE NERUR 10
86. ni ERI RESO 45 pixel width iuc is sang okie wpe era ean 45 PK bitmaps from PostScript 51 PK files explained seeeeeeeeeees 43 PK files not output by Metafont 24 PK format definition 0 0008 43 PK converting GF to 0 008 44 PK converting to GF 0 000 44 pEtOgf octlLeeui rt area eee bu 44 pktype PK validation 0000 44 pktype web 4 essseteeMPCAR IC AETA VM ates 43 PL files explained 00 cece eee ee eee 43 plain Metafont compatibility in MetaPost 33 plain text converting DVI to 39 plain text converting GF to 46 plain text converting PK to 44 plain text converting TFM to 48 plain text converting VF to 50 plain4base e lee ee tea phase 25 plain bst inomi vsesene0l a uve NEUE EN 35 60 plain fmt eee v RR DRE IP JE aes 17 playnimft ebvjeebRIeeed nU BP SM 30 pltotfc cossvescru ec XNS POE NW vene E ET 50 pool file writing cece eee eee eee 36 Poole Siol eese ie Sees RM pa tenes eee 27 pooltypSQu eic saute s Aen hag Oe aR Ae AB es 37 portable filenames 0c eee eee eee eee 13 PostScript fonts and Troff 0 32 PostScript meets Metafont 04 31 PostScript output 0 eee eee eee eee 31 PostScript to PK bitmaps
87. odify the standard layout or the formatting macros defined in mftmac tex or to add a line saying bye at the end of the job MFT doesn t add this automatically in order to allow processing several files produces by MFT in the same TEX job e 4hh tokeni other tokens introduces a change in MFT s formatting rules all the other tokens will henceforth be translated according to the current conventions for tokenl The tokens must be symbolic i e not numeric or string tokens For example the input line hhh addto fill draw filldraw says to format the fill draw and filldraw operations of plain Metafont just like the primitive token addto ie in boldface type Without such reformatting commands MFT would treat fi11 like an ordinary tag or variable name In fact you need a 44 command even to get parentheses to act like delimiters e hhh introduces an MFT comment i e MFT ignores the remainder of such a line e Five or more 4 signs should not be used The above description was edited from mft web written by D E Knuth The program accepts the following options as well as the standard help and version see Section 3 2 Common options page 7 change chfile ch Apply the change file chfile as with Tangle and Weave see Chapter 8 WEB page 36 Chapter 5 Metafont Creating typeface families 30 style mftfile mft Read mftfile before anything else a
88. oftware Practice and Experience 19 7 607 681 July 1989 This is an updated version of Knuth 1988 ET Appendix B References 54 22 23 24 25 26 27 28 Knu90 Donald Knuth Virtual Fonts More Fun for Grand Wizards TUGboat 11 1 13 23 April 1990 http tug org TUGboat tb11 1 tb27knut pdf Knu92 Donald E Knuth Literate Programming CSLI Lecture Notes Number 27 Stanford University Center for the Study of Language and Information Stanford CA USA 1992 Lam94 Leslie Lamport BTEX A Document Preparation System User s Guide and Reference Manual Addison Wesley Reading MA USA second edition 1994 Reprinted with corrections in 1996 Lia83 Franklin Mark Liang Word hy phen a tion by com pu ter Technical Report STAN CS 83 977 Stanford University August 1983 http tug org docs liang liang thesis pdf Mac91 Pierre A MacKay Looking at the pixels Quality control for 300 dpi laser printer fonts especially Metafonts In Robert A Morris and Jacques Andre editors Raster Imaging and Digital Typography II Papers from the second RIDT meeting held in Boston Oct 14 16 1991 pages 205 215 New York 1991 Cambridge Univer sity Press Spi89 Michael D Spivak LAMSTEX The Synthesis The TEgXplorators Corporation 3701 W Alabama Suite 450 273 Houston TX 77027 USA 1989 pi90 Michael D Spivak The Joy of TEX A Gourmet Guide to Typesetting with the AMSTEX macro package American
89. onalities 8 fmt dumpname base dumpname mem dumpname Use dumpname instead of the program name or a 4 amp line to determine the name of the memory dump file read fmt for TEX base for Metafont mem for MetaPost See Section 3 5 2 Memory dumps page 10 Also sets the program name to dumpname if no progname option was given halt on error Stop processing and exit when an error occurs as opposed to the normal process of trying to recover and continue cud Enable the initial form of the program see Section 3 5 1 Initial and virgin page 10 This is implicitly set if the program name is initex resp inimf interaction string Set the interaction mode from the command line The string must be one of batchmode nonstopmode scrollmode or errorstopmode jobname string Set the job name to string instead of deriving it from the name of the input file kpathsea debug number Set path searching debugging flags according to the bits of number see Section Debugging in Kpathsea You can also specify this in KPATHSEA_DEBUG en vironment variable for all Web2c programs The command line value over rides The most useful value is 1 to get all available output output directory dirname Specify the directory dirname to which output files are written Also look for input files in dirname first before looking along the normal se
90. operty list to VF 51 conversion TFM to property list 48 conversion VF to VPL sseeessss 50 copyright notices 2 eee eee eee 52 Cork encoding and ISO input 20 creating memory dumps 0 10 cross referenced bibliography items 34 cross references omitting 0 37 current directory used for output 9 Curtis Pavel ere eaae poao tar et ra a ea 1 web weer uk seins AREE RR LH EMEN 36 CWBDB sitAZiCeuuy biuexMUsiemi rbdbe u vef 36 D date and time in memory dumps 11 debugging DVI utilities ss 40 debugging flags specifying 8 decimal character codes in TCX files 20 dependencies hardware 11 57 design size units 002s eee eee eee 49 device definitions for Metafont 26 device independent width 45 AT directory Structures s is scen rreri ped one eens 2 DISPLAY 22a Musee uA Presa Eben ached EE 27 dot files written by TEX programs 14 downloading of fonts for MetaPost labels 32 DrawingServant cesse 27 dnp fil amp sos eee DT SEERNE 8 dumping memory sssseee ee 10 DVI comment specifying 0 16 DVI files converting to MPX 33 DVI files explained 0 0 cece eee eee 43 DVI format definition
91. options as well as the standard help and version see Section 3 2 Common options page 7 Chapter 6 MetaPost Creating technical illustrations 33 no f ile line error fmt fmtname halt on error ini interaction string jobname string kpathsea debug number no parse first line output directory progname string recorder translate file tcxfile 8bit These options are common to TEX Metafont and MetaPost See Section 3 2 Common options page 7 cT troff Set the prologues internal variable to 1 tex texprogram When this option is given the program texprogram is used to typeset the labels 6 2 Initial MetaPost As of MetaPost 1 504 T X Live 2011 MetaPost no longer dumps mem files see Section 3 5 2 Memory dumps page 10 and does not distinguish virgin and initial forms see Section 3 5 1 Initial and virgin page 10 Instead the initial file name is read in its source form that is mpost mp when the program is invoked as mpost For a list of options and other information see Section 6 1 mpost invocation page 31 MetaPost provides a format with all the features of plain Metafont called mfplain You can use that in the same way just run mfplain instead of mpost This lets you directly process Metafont source files with MetaPost producing character proofs one file for each character sim
92. put characters Pooltype primarily serves as an example of WEB conventions to implementors of the TEX system Synopsis pooltype option poolfile pool No path searching is done for poolfile Output is to standard output 6 The only options are help and version see Section 3 2 Common options page 7 As an example of the output here is the edited output for tex pool o oco 1 acg 255 ff 256 pool size 1314 Using character substitution Chapter 8 WEB Literate programming 38 23617 characters in all In Metafont and MetaPost the first 256 characters are actually represented as single bytes i e themselves not in the notation Consider Pooltype as showing the results after conversion for output Chapter 9 DVI utilities 39 9 DVI utilities TEX outputs a file in DVI DeVice Independent format as a compact representation of the original document DVI files can be translated to meet the requirements of a real physical device such as PostScript printers see Section Introduction in Dvips PCL printers see dvilj 1 and X displays see xdvi 1 In fact DVI translators are available for virtually all common devices see CTAN dviware for CTAN info see Section unixtex ftp in Kpathsea For the precise definition of the DVI file format see for example the source file web2c dvitype web The DVI processing programs in the Web2c distribution are not device drivers th
93. put with notation Syntax of TCX files Line oriented Blank lines are ignored Whitespace is ignored except as a separator Comments start with and continue to the end of the line iow ens bends Otherwise a line consists of one or two character codes optionally followed by 0 or 1 The last number indicates whether dest is considered printable src dest prnt 5 Each character code may be specified in octal with a leading 0 hexadecimal with a leading Ox or decimal otherwise Values must be between 0 and 255 inclusive decimal 6 If the dest code is not specified it is taken to be the same as src 7 If the same src code is specified more than once it is the last definition that counts Finally here s what happens when TEX sees an input character with code src it 1 changes src to dest and 2 makes the dest code printable i e printed as is in diagnostics and the log file rather than in notation Chapter 4 TEgX Typesetting 21 By default no characters are translated and character codes between 32 and 126 inclu sive decimal are printable Specifying translations for the printable ASCII characters codes 32 127 will yield un predictable results Additionally you shouldn t make the following characters printable I TAB J line feed M carriage return and delete since TEX uses them in various ways Thus the idea is to specify the input keyboard charact
94. r numeral or _ So another way to get a program to read a filename containing whitespace is to define an environment variable and dereference it In all the common TEX formats plain TEX IATEX AMSTEX the characters and have special category codes so to actually use these in a document you have to change their catcodes or use string The result is unportable anyway see the suggestions above The place where they are most likely to be useful is when typing interactively Chapter 4 TEX Typesetting 14 4 TEX Typesetting TEX is a typesetting system it was especially designed to handle complex mathematics as well as most ordinary text typesetting TEX is a batch language like C or Pascal and not an interactive word processor you compile a TEX input file into a corresponding device independent DVI file and then translate the DVI file to the commands for a particular output device This approach has both considerable disadvantages and considerable advantages For a complete description of the TEX language see The TEXbook see Appendix B References page 53 Many other books on TEX introductory and otherwise are available 4 1 tex invocation TEX usually invoked as tex formats the given text and commands and outputs a corre sponding device independent representation of the typeset document This section merely describes the options available in the Web2c implementation For a complete descript
95. rded 4 4 2 TCX files Character translations TCX TEX character translation files help TEX support direct input of 8 bit international characters if fonts containing those characters are being used Specifically they map an input keyboard character code to the internal TEX character code a superset of ASCII Of the various proposals for handling more than one input encoding T CX files were chosen because they follow Knuth s original ideas for the use of the xchr and xord tables He ventured that these would be changed in the WEB source in order to adjust the actual version to a given environment It turns out however that recompiling the WEB sources is not as simple a task as Knuth may have imagined therefore TCX files providing the possibility of changing of the conversion tables on on the fly have been implemented instead This approach limits the portability of TEX documents as some implementations do not support it or use a different method for input internal reencoding It may also be problematic to determine the encoding to use for a TFX document of unknown provenance in the worst case failure to do so correctly may result in subtle errors in the typeset output But we feel the benefits outweigh these disadvantages Chapter 4 TEX Typesetting 20 This is entirely independent of the MLTEX extension see Section 4 4 1 MLTeX page 18 whereas a TCX file defines how an input keyboard character is mapped to TEX
96. rdless of any input file location or in a few cases output is to standard output For example if you run tex tmp foo for example the output will be in foo dvi and foo log not tmp foo dvi and tmp foo log You can use the output directory option to cause all output files that would nor mally be written in the current directory to be written in the specified directory instead See Section 3 2 Common options page 7 If the current directory is not writable and output directory is not specified the main programs TEX Metafont MetaPost and BibTEgX make an exception if the config file or environment variable value TEXMFOUTPUT is set it is not by default output files are written to the directory specified TEXMFOUTPUT is also checked for input files as TEX often generates files that need to be subsequently read for input no suffixes such as tex are added by default and no exhaustive path searching is done the input name is simply checked as given Chapter 3 Commonalities 10 3 5 Three programs Metafont MetaPost and TEX TEX Metafont and MetaPost have a number of features in common Besides the ones here the common command line options are described in the previous section The configura tion file options that let you control some array sizes and other features are described in Section 2 5 Runtime options page 5 3 5 1 Initial and virgin The TEX and Metafont programs each have two ma
97. re numbers specified in the input typically to the beginfig macro and basempname is the basename of mpname or mpout if no input file was specified MetaPost uses the ps extension when the figure number is out of range e g if you say beginfig 1 You can use the output files as figures in a TEX document just as with any other Post Script figures For example with this TEX command special psfile filename or by using epsf tex see Section EPSF macros in Dvips The MetaPost construct btex tex input etex generates a MetaPost picture expression corresponding to tex input The construct Chapter 6 MetaPost Creating technical illustrations 32 verbatimtex tex input etex simply passes the tex input through to TEX For example if you are using ATEX your MetaPost input file must start with a verbatimtex block that gives the necessary documentclass or documentstyle begin document command You will also need to set the enviroment variable TEX to latex tex input need not be specifically TEX input it could also be Troff In that case you will need the m pictures Troff macro package unfortunately absent from many Troff implementations or an equivalent such as the m pspic macros from GNU groff described in grops 1 Naturally you must use fonts that are supported by the typesetter specifically you ll probably want to use standard PostScript fonts with Troff And only the
98. readability being the termination of lines at semicolons when this can be done conveniently The program accepts the following options as well as the standard help and version see Section 3 2 Common options page 7 length number The number of characters that are considered significant in an identifier Whether underline characters are counted depends on the underline option The default value is 32 the original tangle used 7 but this proved too restrictive for use by Web2c lowercase mixedcase uppercase These options specify the case of identifiers in the output of tangle If uppercase lowercase is specified tangle will convert all identfiers to uppercase lowercase The default is mixedcase which specifies that the case will not be changed underline When this option is given tangle does not strip underline characters from iden tifiers Chapter 8 WEB Literate programming 37 loose strict These options specify how strict tangle must be when checking identifiers for equality The default is Loose which means that tangle will follow the rules set by the case smashing and underline options above If strict is set then identifiers will always be stripped of underlines and converted to uppercase before checking whether they collide 8 2 Weave Translate WEB to TEX Weave creates a TEX document from a WEB source file s
99. rev Seek nd On eV 10 memory dumps and hardware 11 memory dumps contain date and time 11 memory dumps creating 0 10 mems Make target 0 00 e eee e eee teens 4 meta characters in filenames 13 59 Met tont aos ud a Mako centage RDUM 24 Metafont geometry 0 00 022s eee 27 Metafont graphics 2 0000 27 Metafont input files 24 Metafont invocation 0 cece ee eee ee 24 Metafont meets PostScript 200 31 Metafont online support new devices 27 Metafont source prettyprinting 29 Metafont compatibility in MetaPost 33 Metafont initial 0 cee eee eee eee 25 Metafont MetaPost and TEX 10 MetaPost irl hA Rex EIER LEZCMURERETRE 31 MetaPost and plain Metafont compatibility 33 MetaPost input files 00 000s 31 MetaPost invocation esses 31 MetaPost source prettyprinting 30 MetaPost initial lees 33 MetaPost TEX and Metafont 10 metatypelo li ndeu eae a hte 51 lf cllliDeu e kRCIRIGIPGEbNSIEAXPRYETis4d4 54 24 nf base eI RIEN esa bet eo ee 25 MEEDIT uu toa 24 aici anser ies s 4 94 ABIRE tae p 12 MEPLaiN ie seg elaine MR ek ae ME od oe 33 lfp t cisyespetetk ARAB IStbRI RS DA alice 24 mft luli le etie MEUSE 29 MEG AU esse cin ds glade gaa elem RICE P 27
100. s internal code MLTEX defines substitutions for a non existing character glyph in a font with a Naccent construction made out of two separate character glyphs TCX files involve no new primitives it is not possible to specify that an input keyboard character maps to more than one character Information on specifying T OX files e The best way to specify a TCX file is to list it explicitly in the first line of the main document 4 amp translate file tcxfile e You can also specify a TCX file to be used on a particular TEX run with the command line option translate file tcxfile e TCX files are searched for along the WEB2C path e Initial TEX see Section 4 2 Initial TEX page 16 ignores TCX files The Web2c distribution comes with a number of TCX files Two important ones are ili ti tcx and i12 t1 tcx which support ISO Latin 1 and ISO Latin 2 respectively with Cork encoded fonts a k a the IXTEX T1 encoding TCX files for Czech Polish and Slovak are also provided One other notable TCX file is empty tcx which is well empty Its purpose is to reset Web2C s behavior to the default only visible ASCII being printable as described below when a format was dumped with another TCX being active which is in fact the case for everything but plain TEX in the TeX Live and other distributions Thus latex somefile8 tex terminal etc output with 8 bit chars latex translate file empty tcx somefile8 tex terminal etc out
101. s for 21 TAT BX EH 17 Latin Modern lel eb e Gis TELANE URAN 51 left side bearing 0 0004 45 47 legaliSms v iad cet err ry Rt y CET 52 licensing termMS 00 e eee e eee e eee 1 BIG Property xiii mager a Ak Ts hee SHR ewe 49 ligature table in TFM files 49 LIGTABLE properey icine ences eae ERES 49 linking binaries 00 2 eee eee eee 8 links to binaries 00000000005 11 literate programming 008 36 LittleEndian machines 0 11 log file BIBTEX os ccowiiaer tactic semteaes shots 34 Lum E best oer cee ise esate wets elie s 23 lua TEX 4 uosiv ERES NUR Fe is oes Fg 23 machine dependencies suuuuuuuuus 11 machine readable converting property lists to emda REE aa eave a sth eay set E d 50 51 MacKay Pierre 2 cece eee eee eee 44 macro packages major TEX suse 17 Macros DasiQ seu deve ben oo LEAN Sheds 2 macros predefining in memory dumps 10 magnification esseen a esee 39 40 m in MMOL Yi vias Sa x y xA REI IY 5 Make targets additional 0 4 Martin Rick sura erne Sic a 1 Mathematical Reviews 00e eee eee 17 mathematical typesetting 14 mem file determining seere 11 mem files sharing 2 cece ee eee 11 memory dump to use determining 11 memory d mps
102. shipout time matches anything Examples 1 5 9 show opcodes Show numeric opcode values in decimal for DVI commands in braces after the command name This can help in debugging DVI utilities We use decimal because in the DVI format documentation in dvitype web among others the opcodes are shown in decimal 9 2 1 DVItype output example As an example of the output from DVItype see section above here is its abridged translation of the story dvi resulting from running the example in The TEXbook with output level 4 and show opcodes on Options selected Starting page Maximum number of pages 1000000 Output level 4 the works Resolution 300 00000000 pixels per inch numerator denominator 25400000 473628672 magnification 1000 0 00006334 pixels per DVI unit TeX output 1992 05 17 0844 Postamble starts at byte 564 Chapter 9 DVI utilities 41 maxv 43725786 maxh 30785863 maxstackdepth 3 totalpages 1 Font 33 cms110 loaded at size 655360 DVI units Font 23 cmbx10 loaded at size 655360 DVI units Font 0 cmri0 loaded at size 655360 DVI units 42 beginning of page 1 87 push 1141 level 0 h 0 v 0 w 0 x 0 y 0 2 0 hh 0 vv 0 88 down3 917504 159 v 0 917504 917504 vv 58 92 pop 142 104 putrule 137 height 26214 width 30785863 2x1950 pixels 113 down3 5185936 159 v 655360 5185936 5841296 vv 370 117 push 141 level 1 h 0 v 5841296 w
103. ss hec b UC i Re eU IW RU ERES 25 5 3 Modes Device definitions for Metafont sssueeess 26 5 4 Online Metafont graphics 0 0 cece eee eee eee 27 9 5 GFtoDVI Character proofs of fonts 0 0 e eee eee 28 5 6 MFT Prettyprinting Metafont source 00 eee eee 29 6 MetaPost Creating technical illustrations 31 6 1 mpost ANVOCATIONY wee eh ialen bs cedunt 31 6 2 Initia Meta Post s etus Bees fasted WE yer PS 33 6 3 DVItoMP DVI to MPX conversion 0 00 cena ee 33 7 BibTgX Bibliographies 34 7 1 BibTEX invocation sseeeee e 34 7 2 Basic Bib TEX style files 35 8 WEB Literate programming 36 8 1 Tangle Translate WEB to Pascal 00 cee eee eee 36 8 2 Weave Translate WEB to TRX 0 00 eee 37 8 3 Pooltype Display WEB pool files 0 000 e eee 37 9 DVT artless os iecore bana dias ETHER 39 9 1 DVIcopy Canonicalize virtual font references 39 9 2 DVItype Plain text transliteration of DVI files 39 9 2 1 DVItype output example 0 eee eee eee ee eee 40 10 Font utilities cose Gan ne nmn rna aban 43 10 1 Pont file formats i ovre Rerer P an Peer ee 43 10 2 GFtoPK Generic to packed font conversion 44 10 3 PKtoGF Packed to generic font conversion 44 10 4 PKtype Plain text transliteration of packed fonts
104. sun enable suntoolswin The old Suntools not any flavor of X window sys tem You can get the even older SunWindows gfx system by using sun gfx c tek enable tektronixwin Tektronix terminals uniterm enable unitermwin Uniterm Simon Poole s emulator of a smart Tek tronix 4014 terminal This may work with regular Tektronix terminals as well it s faster than the driver enable tektronixwin selects xterm with x The X window system version 11 There are two variants of the X11 support one that works with the Xt toolkit and another that works directly with Xlib The Xt support is more efficient and has more functionality so it is the default If you must use the Xlib support use configure with x with kf x toolkit no Specify disable mf nowin in order not to build a separate non windows capable Metafont executable mf nowin or mf nowin exe You cannot specify any of the usual X options e g geometry on the Meta font command line but you can specify X resources in your Xdefaults or 7 Xresources file The class name is Metafont If you re using the Xt sup port all the usual X toolkit resources are supported If you re using the Xlib support only the geometry resource is supported You specify the X display to which Metafont connects in the DISPLAY environ ment variable as usual Writing support for a new device is straightforward Aside from defining
105. t Mem STPZ6 2 4200 ule Ei e VAI Eis 5 fOBntfOrge shore ee e Lies e Lites 51 fontinst for creating virtual fonts 51 fonts DASIC se Cates EPIS eec els EA 2 fontutilS oxi ee eal er ite ee 51 format fil s 5 co uuepitestuA de ethers cenit aden 17 formats for TEX i222 b six ee rae ENG PES 17 formats Make target sese eese 4 fraction routines lees 4 Free Software Foundation documentation system MONDE beoe do Oe ty idees Ue E a ier 18 freedom of Web2c cece eee eee ee 1 ftp math utah edu cies cae lb ll A 34 G generating source specials 16 geometric designs eee e cece eee ee eee 24 geometric font scaling 0000 43 geometry for Metafont 000 27 getopt long Only css cick cece iia ia seeds 7 GF files explained 0 0 cece eee eee 43 GF files output by Metafont 24 GF format definition 0 005 43 GE output 5 9 sui ds sea ee Nh a pay ore ee ek 24 GF converting PK to 0 0000 44 GF converting to PK 0 000 44 Eftodyi 32003909 onec eret oe EE eee 28 poanlae EET 44 ERtOpXl Oc eed uses ieee d Ges panes US 51 gftype GF validation 0 0 46 EgBftype web eve e dee see Er eng 43 glue ratio representations sseeses 11 glue memory for seeseeseee esee 5 glyph substitutions 2 0
106. t niZi swift ex paie T ties 35 UTF input ive hes ei ee eles ei hae 15 y validation of DVI files lesse 39 validation of GF files ee eee eee 46 validation of PK files 0 cece eee 44 validation of TFM files 0 004 48 validation of VF files 000 2 eee 50 verbose Bib TEX output suppressing 34 verbosity enabling 0000008 7 version number finding 7 vertical escapement 0 cece eee eee eee 47 VF files converting property lists to 51 V toVD ec dehet EI easels pee eed 50 virgin programsl icsenbeieneseDpvebnesshbeI e eed 10 virtual font creation 0 0 eee eee eee 51 virtual fonts expanding 39 virtual fonts knuth esse ess 43 virtualfonts tXt esas ee eae eee ss 43 VPU OVE we cic etnies otto nel coe vale wale ett Seu pO 51 WEAVE pra T cite dur dans enr E een ten ties 37 WEB pess nd beste ia vat awed arias ge sees 36 web environments and security 22 WEB pool files displaying 3T WEB programs compiling 36 62 WEB programs typesetting 3T WEB2C search path for TCX files 20 Weber Ol fzic cxx IR Gace ones 1 webmac tex csl 9x9 Meet hd oa eet rr wis 37 pebiai tek n aes er no aiea y Pe ERNE og 36 whitespace in TCX files 004 20 whitespace
107. the basic drawing routines that Metafont uses see mf web you only have to add another entry to Chapter 5 Metafont Creating typeface families 28 the tables on the last page of web2c lib texmfmp c Or you can write an independent program and use MFtalk see web2c window mftalk c 5 5 GFtoDVI Character proofs of fonts GFtoDVI makes proof sheets from a GF bitmap file as output by for example Metafont see Chapter 5 Metafont page 24 This is an indispensable aid for font designers or Metafont hackers Synopsis gftodvi option gfname gf The font gfname is searched for in the usual places see Section Glyph lookup in Kpathsea To see all the relevant paths set the environment variable KPATHSEA_DEBUG to 1 before running the program The suffix gf is supplied if not already present This suffix is not an extension no precedes it for instance cmr10 600gf The output filename is the basename of gfname extended with dvi e g gftodvi wherever foo 600gf creates foo dvi The characters from gfname appear one per page in the DVI output with labels titles and annotations as specified in Appendix H Hardcopy Proofs of The Metafontbook GFtoDVI uses several fonts besides gfname itself e gray font default gray for the pixels that actually make up the character Simply using black is not right since then labels key points and other information could not be shown e title font
108. the file where this character starts Chapter 10 Font utilities 48 10 6 TFtoPL TFX font metric to property list conversion TFtoPL translates a TEX font metric TFM see Section Metric files in Dvips file as output by Metafont for example to property list format a list of parenthesized items describing the font that humans can edit or read This program is mostly used by people debugging TEX implementations writing font utilities etc Synopsis tftopl option tfmname tfm plfile p1 The font tfmname extended with tfm if necessary is searched for in the usual places see Section Supported file formats in Kpathsea To see all the relevant paths set the environment variable KPATHSEA DEBUG to 1 before running the program If plfile which is extended with p1 if necessary is not specified the property list file is written to standard output The property list file can be converted back to T FM format by the companion program TFtoPL see the next section The program accepts the following option as well as the standard verbose help and version see Section 3 2 Common options page 7 charcode format type Output character codes in the PL file according to type either octal or ascii Default is ascii for letters and digits octal for all other characters Exception if the font s coding scheme starts with TeX math sy or TeX math ex all ch
109. toconf a copy is in the file kpathsea CONFIGURE disable dump share Do not make fmt base mem files sharable across different endian architectures See Section 3 5 2 3 Hardware and memory dumps page 11 Chapter 2 Installation 3 without maketexmf default without maketexpk default without maketextfm default with maketextex default Enable or disable the dynamic generation programs See Section mktex con figuration in Kpathsea The defaults are the inverse of the options i e every thing is enabled except mktextex enable shared Build Kpathsea as a shared library See Section Shared library in Kpathsea with editor cmd Change the default editor invoked by the e interactive command See Section 3 5 3 Editor invocation page 12 with epsfwin with hp2627win with mftalkwin with nextwin with regiswin with suntoolswin with tektronixwin with unitermwin with x with x toolkit KIT with x11win with x11 Define Metafont graphics support by default no graphics support is enabled See Section 5 4 Online Metafont graphics page 27 x includes dir x libraries dir Define the locations of the X11 include files and libraries by default configure does its best to guess See Section Optional Features in Autoconf A copy is in kpathsea CONFIGURE
110. ttp www gnu org software texinfo eplain The expanded plain format provides various common features e g sym bolic cross referencing tables of contents indexing citations using Bib TEX for those authors who prefer to handle their own high level formatting The Eplain home page http www tug org eplain slitex An obsolete IATEX 2 09 format for making slides It is replaced by the slides document class along with the beamer texpower and other packages 4 4 Languages and hyphenation TEX supports most natural languages See also Section 4 7 TEX extensions page 23 4 4 4 MLTpEX Multi lingual TEX Multi lingual TEX mltex is an extension of TEX originally written by Michael Ferguson and now updated and maintained by Bernd Raichle It allows the use of non existing glyphs in a font by declaring glyph substitutions These are restricted to substitutions of an accented character glyph which need not be defined in the current font by its appropriate Naccent construction using a base and accent character glyph which do have to exist in the current font This substitution is automatically done behind the scenes if necessary and thus MLTEX additionally supports hyphenation of words containing an accented character glyph for fonts missing this glyph e g Computer Modern Standard TEX suppresses hyphenation in this case MLTEX works at fmt creation time the basic idea is to specify the mltex option to TE
111. umps page 10 It is created by default during installation but you can also do so by hand if necessary e g if an update to plain tex is issued tex ini input plain dump The quotes prevent interpretation of the backslashes from the shell Then install the resulting plain fmt in fmtdir usr local share texmf web2c by default and link tex fmt to it The necessary invocation for generating a format file differs for each format so instruc tions that come with the format should explain The top level web2c Makefile has targets for making most common formats plain latex amstex texinfo eplain See Section 4 3 Formats page 17 for more details on TEX formats 4 3 Formats TEX formats are large collections of macros often dumped into a fmt file see Section 3 5 2 Memory dumps page 10 by tex ini see Section 4 2 Initial TeX page 16 A number of formats are in reasonably widespread use and the Web2c Makefile has targets to make the versions current at the time of release You can change which formats are automatically built by setting the fmts Make variable by default only the plain and latex formats are made You can get the latest versions of most of these formats from the CTAN archives in subdirectories of CTAN macros for CTAN info see Section unixtex ftp in Kpathsea The archive ftp ftp tug org tex lib tar gz also available from CTAN contains most of these formats although perh
112. weeten npe te d ecce bes 27 Regis graphics support sees eee 27 regression testing 0 0 cece eee eee eee 16 repeated TOWS erer 00 cece eee cee eee ne 46 representation of strings 20 38 restricted shell escapes 00000 ee eeeeee 21 right side bearing 45 47 Rokicki Tomas pesk inata cee eee eee eee eee ee 1 run length encoded bitmaps 46 47 runtime options 0 eee 5 S scaled pixels i 2 ee otea on ER mni 45 AT Index scaling of fonts 0 00 e eee eee 43 scanned images of fonts 00 51 security and openout eee eee eee 14 security and output files 05 14 security and shell escapes 0 0000 21 security and write 20008 32 Sh pesscsyvev uu noue oium 24 sharing memory dumps sseeeeseeesse 11 shell commands in TRX 0 0 cee eee eee 21 Shell escape enabling in TRX 21 shell_escape_commands 22 STAM EDS FS RE SER a e E E SERENE SE SEERE FEDE 35 side bearings wit drisi cisi reiki API BD 45 4T Slant font 22 22 04 3065 f ebte 20A x 28 slides producing 0 cece ee eee eens 18 SI TDpX sledueUuitidpecuerta foes e estque 18 small Metafont memory and modes 26 smode and dynamic Metafont mode definition 26 SOCkeUs2 tiui Mocteedi de deevit wetted chee E
113. wfont myfont Now I am typesetting in my new font minimum hamburgers The program accepts the following options as well as the standard help and version see Section 3 2 Common options page 7 no f ile line error fmt fmtname halt on error ini interaction string jobname string kpathsea debug number no parse first line output directory progname string recorder translate file tcxfile 8bit These options are common to TEX Metafont and MetaPost See Section 3 2 Common options page 7 mktex filetype no mktex filetype Turn on or off the mktex script associated with filetype The only value that makes sense for filetype is mf 5 2 Initial Metafont inimf is the initial form of Metafont which does lengthy initializations avoided by the virgin vir form so as to be capable of dumping base files see Section 3 5 2 Memory dumps page 10 For a detailed comparison of virgin and initial forms see Section 3 5 1 Initial and virgin page 10 For a list of options and other information see Section 5 1 mf invocation page 24 The only memory dump file commonly used with Metafont is the default plain base also known as mf base again see Section 3 5 2 Memory dumps page 10 It is created by default during installation but you can also do so by hand if necessary e g
114. y default the standard plain formats plus latex fmt are made You can add other formats by redefining the fmts bases and mems variables See the top of web2c Makefile for the possibilities fmts install fmts Make or install the TEX fmt files See Section 4 2 Initial TeX page 16 bases install bases Make or install the Metafont base files See Section 5 2 Initial Metafont page 25 mems install mems Make or install the MetaPost mem files See Section 6 2 Initial MetaPost page 33 triptrap trip trap mptrap To run the torture tests for TEX Metafont and MetaPost respectively See the next section 2 4 Trip trap and mptrap Torture tests To validate your TEX Metafont and MetaPost executables run make triptrap This runs the trip trap and mptrap torture tests See the files triptrap tripman tex Chapter 2 Installation 5 triptrap trapman tex and triptrap mptrap readme for detailed information and back ground on the tests The differences between your executables behavior and the standard values will show up on your terminal The usual differences these are all acceptable are e string usage and table sizes e glue set ratios e down4 right4 and y4 commands in DVItype output e dates and times Any other differences are trouble The most common culprit in the past has been compiler bugs especially whe
Download Pdf Manuals
Related Search
Related Contents
Concurso Nacional 2013 Kenmore 1/2 Horsepower Deluxe Disposer - Dark Gray Owner's Manual (Espanol) Tecumseh RGA5471BXV Performance Data Sheet BlackBerry Curve 8900 Smartphone - 4.6.1 QICSPLANNER User manual ADL User Guide for Open AT V303 Controlador Inteligente Ecolamp 4C150 Versión 2.0 Manual de User Manual for DC6688SLP Integra DHC-80.2 Stereo Receiver User Manual Space-ette™ With FLEXI-GUARD® Installation/Care/Use Manual Copyright © All rights reserved.
Failed to retrieve file