2008-04-19 Es gibt ein neues TeX-Version von Knuth auf dem Dante-server. Die Unterverzeichnisse von pub/tex/systems/knuth/dist/ holen. z. B.: $ mkdir xxx $ cd xxx $ ftp ftp.dante.de:/pub/tex/systems/knuth/dist/xxx/* fuer xxx in errata etc lib mf mfware tex texware web In dieser Distribution hatte Knuth die folgenden Dateien geaendert: web-Dateien: mf/mf.web, tex/tex.web texware/tftopl.web tex-Dateien: lib/manmac.tex, lib/plain.tex, mf/mfbook.tex, tex/texbook.tex Von den tex-Dateien muss nur manmac installiert werden: $ cp -p lib/manmac.tex ~/TeXinputs/manmac.tex Neues tftopl bauen: Ins Verzeichnis texware tftopl.ch kopieren, anpassen und bauen: $ cp -p ~/ch_files/tftopl.ch . $ tangle This is TANGLE, Version 4.5 for GPC Output file `Pascalfile': tftopl.p Output file `Pool': Input file `Webfile': tftopl.web Input file `Changefile': tftopl.ch *1*6*18*26*44*88*96*100*101 Writing the output file.... Done. Memory usage statistics: 256 names, 122 replacement texts; 1474+1454 bytes, 3253+2888+2924+2656 tokens. (No errors were found.) $ gpc tftopl.p $ mv a.out ~/bin/tftopl Neues TeX bauen und triptest laut tripman Anhang A durchfuehren. Schritt 0: Vorbereitung des Triptests Ins Verzeichnis knuth2008/tex wechseln und mit mk_TeX_dir symbolische Links fuer die TeX-Verzeichnisse anlegen. Originaldateien sichern, da sie spaeter ueberschrieben werden. $ cp -p trip.log trip.orig.log $ cp -p trip.typ trip.orig.typ $ cp -p trip.fot trip.orig.fot $ cp -p tripos.tex tripos.orig.tex Schritt 1: trip.tfm aus trip.pl bauen: $ pltotf This is PLtoTF, Version 3.5 for GPC Input file `Plfile': trip.pl Output file `Tfmfile': trip.tfm '000 '055 '057 '061 '062 '063 '064 '065 '066 '067 '101 '102 '103 '115 '141 '142 '160 '161 '162 '163 '164 '165 '202. Und rueckwaerts mit tftopl aus trip.tfm tmp.pl bauen: $ tftopl This is TFtoPL, Version 3.2 for GPC Input file `Tfmfile': trip.tfm Output file `Plfile': tmp.pl '000 '055 '057 '061 '062 '063 '064 '065 '066 '067 '101 '102 '103 '115 '141 '142 '160 '161 '162 '163 '164 '165 '202. Vergleich: $ diff tmp.pl trip.pl Installieren von trip.tfm: $ mv trip.tfm TeXfonts/ Schritt 2: Eine Version von TeX (ttex) fuer den Triptest bauen: tex.ch an Knuths Aenderungen anpassen (z. B hat sich die Bannerzeile geaendert) tex.ch fuer initex und trip aendern. Die trip-Anpassungen sind mit 'trip' im tex.ch ueberschrieben. Aus dieser speziellen tex.ch mit tangle tex.p und tex.pool erzeugen. tex.p uebersetzen: $ gpc -Wno-warnings tex.p Dabei entsteht a.out. Dies in ttex umbenennen: $ mv a.out ttex tex.pool hat sich nicht geaendert, andernfalls tex.pool nach TeXformats kopieren. Schritt 3: Mit ttex neues Format trip.fmt erzeugen: $ ttex This is TeX, Version 3.1415926 for GPC (INITEX) ** Please type the name of your input file. **\input trip und trip.log mit tripin.log vergleichen: $ diff trip.log tripin.log 1c1 < This is TeX, Version 3.1415926 for GPC (INITEX) 19 APR 2008 17:48 --- > This is TeX, Version 3.1415926 (INITEX) 15 MAR 2008 02:23 450,451c450,451 < (preloaded format=trip 2008.4.19) < 1325 strings of total length 23595 --- > (preloaded format=trip 2008.3.15) > 1326 strings of total length 23646 Schritt 4: Aus trip.fmt und trip.tex trip.dvi erzeugen: $ ttex >trip.fot &trip trip Terminalausgabe vergleichen: $ diff trip.fot trip.orig.fot 1,2c1,3 < This is TeX, Version 3.1415926 for GPC (INITEX) < **(trip.tex ## --- > This is TeX, Version 3.1415926 (INITEX) > ** &trip trip > (trip.tex ## Schritt 5: trip.log vergleichen: $ diff trip.log trip.orig.log 1c1 < This is TeX, Version 3.1415926 for GPC (preloaded format=trip 2008.4.19) 19 APR 2008 18:07 --- > This is TeX, Version 3.1415926 (preloaded format=trip 2008.3.15) 15 MAR 2008 02:23 7296,7297c7296,7297 < 47 strings out of 1675 < 253 string characters out of 8405 --- > 47 strings out of 1674 > 253 string characters out of 8354 Schritt 6 trip.dvi pruefen. Hierzu aus binaerer Datei trip.dvi die Textdatei trip.typ erzeugen: $ dvitype This is DVItype, Version 3.6 for GPC Output file `Outfile': trip.typ Output level (default=4, ? for help): 2 Starting page (default=*): *.*.*.*.*.*.*.*.*.* Maximum number of pages (default=1000000): Assumed device resolution in pixels per inch (default=300/1): 7227/100 New magnification (default=0 to keep the old one): Input file `Dvifile': trip.dvi Und vergleichen: $ diff trip.typ trip.orig.typ 1c1 < This is DVItype, Version 3.6 for GPC --- > This is DVItype, Version 3.6 9c9 < ' TeX output 2008.04.19:1807' --- > ' TeX output 2008.03.15:0223' Damit ist der trip test erfolgreich abgeschlossen. Bau der Produktionsversion von TeX: 1. Schritt initex bauen. tex.ch fuer initex, d. h. ohne trip, editieren und dann: $ tangle This is TANGLE, Version 4.5 for GPC Output file `Pascalfile': initex.p Output file `Pool': tex.pool Input file `Webfile': tex.web Input file `Changefile': tex.ch *1*17*25*38*54*72*99*110*115*133*162*173*199*203*207*211*220*256*268*289*297*300*321*332*366*402*464*487*511*539*583*592*644*680*699*719*768*813*862*891*900*919*942*967*980*1029*1055*1136*1208*1299*1330*1338*1340*1379*1381 Writing the output file.....500.....1000.....1500.....2000.....2500.....3000.....3500.....4000.....4500.....5000.....5500.....6000 Done. 1044 strings written to string pool file. Memory usage statistics: 3899 names, 1811 replacement texts; 43208+42017 bytes, 45681+45301+47851 tokens. (No errors were found.) $ gpc -Wno-warnings initex.p $ mv a.out ~/bin/initex 2. Schritt: mit neuem initex und neuem plain.tex neues plain.fmt bauen: $ cp -p ../lib/plain.tex . $ initex This is TeX, Version 3.1415926 for GPC (INITEX) **plain (plain.tex Preloading the plain format: codes, registers, parameters, fonts, more fonts, macros, math definitions, output routines, hyphenation (TeXinputs/hyphen.tex)) *\dump Beginning to dump on file plain.fmt (preloaded format=plain 2008.4.19) ... Neues plain.fmt installieren: $ mv plain.fmt TeXformats/ 3. Schritt: Produktionsversion bauen: tex.ch fuer Produktionsversion editieren, und dann bauen: $ tangle tex.ch This is TANGLE, Version 4.5 for GPC Output file `Pascalfile': tex.p Output file `Pool': tex.pool Input file `Webfile': tex.web Input file `Changefile': tex.ch *1*17*25*38*54*72*99*110*115*133*162*173*199*203*207*211*220*256*268*289*297*300*321*332*366*402*464*487*511*539*583*592*644*680*699*719*768*813*862*891*900*919*942*967*980*1029*1055*1136*1208*1299*1330*1338*1340*1379*1381 Writing the output file.....500.....1000.....1500.....2000.....2500.....3000.....3500.....4000.....4500.....5000.....5500.....6000 Done. 1044 strings written to string pool file. Memory usage statistics: 3899 names, 1811 replacement texts; 43208+42017 bytes, 45682+45301+47852 tokens. (No errors were found.) $ mv a.out ~/bin/tex mv: rename a.out to /usr/helbig/bin/tex: No such file or directory $ gpc -Wno-warnings tex.p $ mv a.out ~/bin/tex fertig! METAFONT: trap test: (siehe trapman, Anhang A, fuer die Schritte) Schritt 0: Originale sichern: $ cp -p trap.log trap.orig.log $ cp -p trap.fot trap.orig.fot $ cp -p trap.typ trap.orig.typ $ cp -p trap.pl trap.orig.pl Symbolische Links fuer die MFVerzeichnisse anlegen: $ ln -s ~/MFinputs . $ ln -s ~/MFbases . Schritt 1: tmf fuer trap-test erzeugen: Die mf.ch fuer trap und inimf editieren und mit tangle inimf.p und mf.pool erzeugen. Hierzu musste in tanlge die token capacity erhoeht werden (zz = 3 -> zz = 4) $ gpc -Wno-warnings inimf.p $ mv a.out tmf $ mv mf.pool MFbases Schritt 2: Aus trap.mf tap.base erzeugen: $ tmf This is METAFONT, Version 2.718281 for GPC (INIMF) ** Please type the name of your input file. **\input trap und log Dateien vergleichen: $ diff trap.log trapin.log 1c1 < This is METAFONT, Version 2.718281 for GPC (INIMF) 20 APR 2008 00:43 --- > This is METAFONT, Version 2.718281 (INIMF) 15 MAR 2008 02:23 150c150 < String usage 26&83 (892&11482 still untouched) --- > String usage 26&83 (891&11438 still untouched) 176,177c176,177 < (preloaded base=trap 2008.4.20) < 1116 strings of total length 20570 --- > (preloaded base=trap 2008.3.15) > 1117 strings of total length 20614 Schritt 3: Aus trap.base und trap.mf trap.72270gf und trap.tfm erzeugen: $ tmf >trap.fot &trap trap vergleichen der Terminalausgabe: $ diff trap.fot trap.orig.fot 1,2c1,3 < This is METAFONT, Version 2.718281 for GPC (INIMF) < **(trap.mf --- > This is METAFONT, Version 2.718281 (INIMF) > ** &trap trap > (trap.mf 38c39 < String usage 41&161 (816&7678 still untouched) --- > String usage 41&161 (815&7634 still untouched) Schritt 4: Vergleichen der Logdatei aus Schritt 3 $ diff trap.log trap.orig.log 1c1 < This is METAFONT, Version 2.718281 for GPC (preloaded base=trap 2008.4.20) 20 APR 2008 00:48 --- > This is METAFONT, Version 2.718281 (preloaded base=trap 2008.3.15) 15 MAR 2008 02:23 1825c1825 < String usage 24&92 (859&11353 still untouched) --- > String usage 24&92 (858&11309 still untouched) 4235c4235 < String usage 41&161 (816&7678 still untouched) --- > String usage 41&161 (815&7634 still untouched) 4251,4252c4251,4252 < 68 strings out of 884 < 3752 string characters out of 11430 --- > 68 strings out of 883 > 3752 string characters out of 11386 Schritt 5: Pruefen der gf-Datei: Hierzu aus binaerer Datei trap.72270gf die Textdatei trap.typ erzeugen: $ gftype This is GFtype, Version 3.1 for GPC Output file `Outfile': trap.typ Mnemonic output? (default=no, ? for help): ? Type Y for complete listing, N for errors/images only. Mnemonic output? (default=no, ? for help): Y Pixel output? (default=yes, ? for help): Y Input file `Gffile': trap.72270gf und die Textdateien vergleichen: $ diff trap.typ trap.orig.typ 1c1 < This is GFtype, Version 3.1 for GPC --- > This is GFtype, Version 3.1 3c3 < ' METAFONT output 2008.04.20:0048' --- > ' METAFONT output 2008.03.15:0223' Schritt 6: Pruefen der TFM-Datei: Hierzu aus binaerer Datei trap.tfm die Textdatei trap.pl erzeugen: $ tftopl This is TFtoPL, Version 3.2 for GPC Input file `Tfmfile': trap.tfm Output file `Plfile': trap.pl '000 '005 '033 '137 '140 '141 '142 '143 '144 '145 '146 '147 '150 '151 '152 '153 '154 '155 '354. und die Textdateien vergleichen: $ diff trap.pl trap.orig.pl (kein Unterschied) Damit ist der trap test erfolgreich abgeschlossen. Produktionsversion von mf erstellen: Die mf.ch fuer inimf editieren und dann bauen: $ tangle This is TANGLE, Version 4.5 for GPC Output file `Pascalfile': inimf.p Output file `Pool': mf.pool Input file `Webfile': mf.web Input file `Changefile': mf.ch *1*17*24*37*54*67*95*120*153*158*175*186*200*214*228*250*255*269*303*323*386*460*469*490*524*538*564*585*618*624*627*647*658*683*706*738*752*766*796*823*862*893*989*1020*1087*1142*1149*1183*1202*1212*1214*1216 Writing the output file.....500.....1000.....1500.....2000.....2500.....3000.....3500.....4000.....4500.....5000.....5500... Done. 826 strings written to string pool file. Memory usage statistics: 3251 names, 1470 replacement texts; 33615+33345 bytes, 35500+34398+33871+37340 tokens. (No errors were found.) $ gpc -Wno-warnings inimf.p $ mv a.out ~/bin/inimf Mit dem neuen inimf ein neues plain.base erzeugen: $ inimf This is METAFONT, Version 2.718281 for GPC (INIMF) **plain (MFinputs/plain.mf Preloading the plain base, version 2.71: preliminaries, basic constants and mathematical macros, macros for converting from device-independent units to pixels, macros and tables for various modes of operation, macros for drawing and filling, macros for proof labels and rules, macros for character and font administration, and a few last-minute items.) *\dump Beginning to dump on file plain.base (preloaded base=plain 2008.4.20) 1374 strings of total length 22863 4717 memory locations dumped; current usage is 1322&3260 506 symbolic tokens Transcript written on plain.log. $ mv plain.base MFbases/ mf.ch fuer die Produktionsversion aendern und mf bauen: $ tangle This is TANGLE, Version 4.5 for GPC Output file `Pascalfile': mf.p Output file `Pool': mf.pool Input file `Webfile': mf.web Input file `Changefile': mf.ch *1*17*24*37*54*67*95*120*153*158*175*186*200*214*228*250*255*269*303*323*386*460*469*490*524*538*564*585*618*624*627*647*658*683*706*738*752*766*796*823*862*893*989*1020*1087*1142*1149*1183*1202*1212*1214*1216 Writing the output file.....500.....1000.....1500.....2000.....2500.....3000.....3500.....4000.....4500.....5000.....5500... Done. 826 strings written to string pool file. Memory usage statistics: 3251 names, 1470 replacement texts; 33615+33345 bytes, 35501+34398+33871+37341 tokens. (No errors were found.) $ gpc -Wno-warnings mf.p $ mv a.out ~/bin/mf fertig!