*** trapman.tex.org 1993-09-22 00:41:30.000000000 +0200 --- trapman.tex 2014-02-03 21:08:57.964670496 +0100 *************** *** 24,29 **** --- 24,44 ---- % if you're unlucky it will appear on a page by itself! {\obeyspaces\global\let =\ } + \pdfinfo{% + /Title(A torture test for METAFONT)% + /Author(Donald E. Knuth)% + } + \pdfcatalog{% + /PageLabels<<% + /Nums[0<>1<>]% + >>% + /PageMode/UseOutlines + } + \pdfpagewidth=7.5in\relax % 8.5in - 2*.5in + \pdfhorigin=.5in\relax + \pdfpageheight=10in\relax % 11in - 2*.5in + \pdfvorigin=.5in\relax + \output{\shipout\box255\global\advance\pageno by 1} % for the title page only \null \vfill *************** *** 62,69 **** \box255} \global\advance\pageno by 1} \let\runninghead=\mark ! \outer\def\section#1.{\noindent{\bf#1.}\quad ! \runninghead{\uppercase{#1} }\ignorespaces} \section Introduction. People often think that their programs are ``debugged'' when large applications --- 77,121 ---- \box255} \global\advance\pageno by 1} \let\runninghead=\mark ! ! \newcount\destcount ! \destcount=1\relax ! ! \outer\def\section#1.{% ! \noindent ! \vbox to 0pt{% ! \kern-2.5ex\relax ! \pdfdest num\destcount fitbh\relax ! \def\.##1{##1}% ! \def\MF{METAFONT}% ! \pdfoutline goto num\destcount{#1}\relax ! \global\advance\destcount by 1\relax ! \kern2.5ex\relax ! }% ! {\bf#1.}\quad ! \runninghead{\uppercase{#1} }\ignorespaces ! } ! ! \def\LinkColor{% ! \pdfliteral{1 0 0 rg}% ! } ! \def\Black{% ! \pdfliteral{0 g}% ! } ! \def\appA{2} ! \def\appB{3} ! \def\appC{4} ! \def\appD{5} ! \def\appE{6} ! \def\appF{7} ! \def\appG{8} ! ! \def\appref#1{% ! \leavevmode ! \pdfstartlink attr{/Border[0 0 0]} goto num\csname app#1\endcsname\relax ! \LinkColor\hbox{Appendix}~#1\Black ! \pdfendlink ! } \section Introduction. People often think that their programs are ``debugged'' when large applications *************** *** 175,208 **** The remainder of this report consists of appendices, whose contents ought to be described briefly here: ! Appendix A explains in detail how to carry out a test of \MF, given a tape that contains copies of the other appendices. ! Appendix B is \.{TRAP.MF}, the fiendish test file that has already been mentioned. People who think that they understand \MF\ are challenged to see if they know what \MF\ is supposed to do with this file. People who know only a little about \MF\ might still find it interesting to study Appendix~B, just to get some insights into the methodology advocated here. ! Appendix C is \.{TRAPIN.LOG}, a correct transcript file \.{TRAP.LOG} that results if \.{INIMF} is applied to \.{TRAP.MF}. (\.{INIMF} is the name of a version of \MF\ that does certain initializations; this run of \.{INIMF} also creates a binary base file called \.{TRAP.BASE}.) ! Appendix D is a correct transcript file \.{TRAP.LOG} that results if \.{INIMF} or any other version of \MF\ is applied to \.{TRAP.MF} with base file \.{TRAP.BASE}. ! Appendix E is \.{TRAP.TYP}, the symbolic version of a correct output file \.{TRAP.72270GF} that was produced at the same time as the \.{TRAP.LOG} file of Appendix~D. ! Appendix F is \.{TRAP.PL}, the symbolic version of a correct output file \.{TRAP.TFM} that was produced at the same time as the \.{TRAP.LOG} file of Appendix~D. ! Appendix G is \.{TRAP.FOT}, an abbreviated version of Appendix D that appears on the user's terminal during the run that produces \.{TRAP.LOG}, \.{TRAP.72270GF}, and \.{TRAP.TFM}. --- 227,260 ---- The remainder of this report consists of appendices, whose contents ought to be described briefly here: ! \appref A explains in detail how to carry out a test of \MF, given a tape that contains copies of the other appendices. ! \appref B is \.{TRAP.MF}, the fiendish test file that has already been mentioned. People who think that they understand \MF\ are challenged to see if they know what \MF\ is supposed to do with this file. People who know only a little about \MF\ might still find it interesting to study Appendix~B, just to get some insights into the methodology advocated here. ! \appref C is \.{TRAPIN.LOG}, a correct transcript file \.{TRAP.LOG} that results if \.{INIMF} is applied to \.{TRAP.MF}. (\.{INIMF} is the name of a version of \MF\ that does certain initializations; this run of \.{INIMF} also creates a binary base file called \.{TRAP.BASE}.) ! \appref D is a correct transcript file \.{TRAP.LOG} that results if \.{INIMF} or any other version of \MF\ is applied to \.{TRAP.MF} with base file \.{TRAP.BASE}. ! \appref E is \.{TRAP.TYP}, the symbolic version of a correct output file \.{TRAP.72270GF} that was produced at the same time as the \.{TRAP.LOG} file of Appendix~D. ! \appref F is \.{TRAP.PL}, the symbolic version of a correct output file \.{TRAP.TFM} that was produced at the same time as the \.{TRAP.LOG} file of Appendix~D. ! \appref G is \.{TRAP.FOT}, an abbreviated version of \appref D that appears on the user's terminal during the run that produces \.{TRAP.LOG}, \.{TRAP.72270GF}, and \.{TRAP.TFM}. *************** *** 369,375 **** \section Appendix E: The \.{TRAP.TYP} file. Here is another major component of the test. It shows the output of \.{GFtype} applied to the file \.{TRAP.72270GF} that is created at the same time ! Appendix D was produced. \runninghead{APPENDIX E: \.{TRAP.TYP} (CONTINUED)} {\let\tt=\eighttt\leftskip 1in\baselineskip 9pt plus .1pt minus .1pt --- 421,427 ---- \section Appendix E: The \.{TRAP.TYP} file. Here is another major component of the test. It shows the output of \.{GFtype} applied to the file \.{TRAP.72270GF} that is created at the same time ! \appref D was produced. \runninghead{APPENDIX E: \.{TRAP.TYP} (CONTINUED)} {\let\tt=\eighttt\leftskip 1in\baselineskip 9pt plus .1pt minus .1pt *************** *** 381,387 **** \section Appendix F: The \.{TRAP.PL} file. In this case we have the output of \.{TFtoPL} applied to the file \.{TRAP.TFM} that is created at the same time ! Appendix D was produced. \runninghead{APPENDIX F: \.{TRAP.PL} (CONTINUED)} {\let\tt=\eighttt\leftskip 1in\baselineskip 9pt plus .1pt minus .1pt --- 433,439 ---- \section Appendix F: The \.{TRAP.PL} file. In this case we have the output of \.{TFtoPL} applied to the file \.{TRAP.TFM} that is created at the same time ! \appref D was produced. \runninghead{APPENDIX F: \.{TRAP.PL} (CONTINUED)} {\let\tt=\eighttt\leftskip 1in\baselineskip 9pt plus .1pt minus .1pt *************** *** 391,400 **** \vfill\eject \section Appendix G: The \.{TRAP.FOT} file. ! This shows what appeared on the terminal while Appendix D was being produced. \runninghead{APPENDIX G: \.{TRAP.FOT} (CONTINUED)} \vskip8pt \verbatim{trap.fot} ! \vfill\end --- 443,454 ---- \vfill\eject \section Appendix G: The \.{TRAP.FOT} file. ! This shows what appeared on the terminal while \appref D was being produced. \runninghead{APPENDIX G: \.{TRAP.FOT} (CONTINUED)} \vskip8pt \verbatim{trap.fot} ! \vfill ! \input knuth-outline.tex ! \end