summaryrefslogtreecommitdiff
path: root/systems/generic/mltex/mltrip
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /systems/generic/mltex/mltrip
Initial commit
Diffstat (limited to 'systems/generic/mltex/mltrip')
-rw-r--r--systems/generic/mltex/mltrip/mltrip.dvibin0 -> 384 bytes
-rw-r--r--systems/generic/mltex/mltrip/mltrip.log56
-rw-r--r--systems/generic/mltex/mltrip/mltrip.tex259
-rw-r--r--systems/generic/mltex/mltrip/mltrip.typ182
4 files changed, 497 insertions, 0 deletions
diff --git a/systems/generic/mltex/mltrip/mltrip.dvi b/systems/generic/mltex/mltrip/mltrip.dvi
new file mode 100644
index 0000000000..29377dcd6f
--- /dev/null
+++ b/systems/generic/mltex/mltrip/mltrip.dvi
Binary files differ
diff --git a/systems/generic/mltex/mltrip/mltrip.log b/systems/generic/mltex/mltrip/mltrip.log
new file mode 100644
index 0000000000..4f9a3da06e
--- /dev/null
+++ b/systems/generic/mltex/mltrip/mltrip.log
@@ -0,0 +1,56 @@
+This is MLTeX, Version 3.14159 (INITEX) 16 JAN 1997 13:49
+MLTeX v2.2 enabled
+**mltrip
+(mltrip.tex
+
+"Trip" test for MLTeX implementations (1997/01/14 v1.0c [br])
+
+Test font load bug (in MLTeX < v2.2):
+done.
+Test assignments to \charsubdefmax:
+done.
+Test char substitution, box packing and repacking:
+<2 missing char warnings:
+Missing character: There is no ^^c1 in font cmr10!
+Missing character: There is no ^^c2 in font cmr10!
+>, <1 missing substitution warning:
+Missing character: There is no substitution for ^^e0 in font cmr10!
+>, <2 missing substitution warnings:
+Missing character: There is no substitution for ^^e0 in font cmr10!
+Missing character: There is no substitution for ^^e0 in font cmr10!
+>, done.
+Test dvi output with substitutions:
+<Alternating 5 incomplete subst. + 5 missing subst. warnings: [0
+Missing character: Incomplete substitution ^^d2 = ^^80 a in font cmr10!
+Missing character: There is no substitution for ^^e0 in font cmr10!
+Missing character: Incomplete substitution ^^d3 = ^^80 a in font cmr10!
+Missing character: There is no substitution for ^^e1 in font cmr10!
+Missing character: Incomplete substitution ^^d4 = ^^80 a in font cmr10!
+Missing character: There is no substitution for ^^e2 in font cmr10!
+Missing character: Incomplete substitution ^^d6 = ^^80 a in font cmr10!
+Missing character: There is no substitution for ^^e4 in font cmr10!
+Missing character: Incomplete substitution ^^d5 = ^^80 c in font cmr10!
+Missing character: There is no substitution for ^^e3 in font cmr10!
+] >, done.
+
+
+To complete the test:
+=====================
+
+1. Compare the log file with the one provided.
+2. Compare the dvi output:
+The dvi file should contain 5 lines of text, each line beginning
+with an ASCII description of the accented character, a colon
+followed by five en-dashes and two accented characters:
+ a-grave: -- \`a -- \`a-- -- --
+ a-acute: -- \'a -- \'a-- -- --
+ a-circonflex: -- \^a -- \^a-- -- --
+ a-umlaut: -- \"a -- \"a-- -- --
+ c-cedille: -- \c{c} -- \c{c}-- -- --
+The spacing between the first accented character and the first
+two en-dashes has to be correct, whereas the en-dash after the
+second accented character has to touch the character! Otherwise
+your MLTeX implementation is incorrect.
+
+ )
+Output written on mltrip.dvi (1 page, 384 bytes).
diff --git a/systems/generic/mltex/mltrip/mltrip.tex b/systems/generic/mltex/mltrip/mltrip.tex
new file mode 100644
index 0000000000..ac7c3be79c
--- /dev/null
+++ b/systems/generic/mltex/mltrip/mltrip.tex
@@ -0,0 +1,259 @@
+% This is `mltrip.tex' for MLTeX v2.2 (as of December 17, 1995).
+%
+% A test file to check for correct MLTeX implementations similar to
+% `trip.tex', Knuth's torture test for TeX.
+%
+% Copyright (C) 1997 by B. Raichle; all rights are reserved.
+%
+% MLTeX is copyright (C) 1990-92 by Michael J. Ferguson; all rights are reserved.
+% MLTeX Version 2.2 is copyright (C) 1995 by B. Raichle; all rights are reserved.
+% The TeX program is copyright (C) 1982 by D. E. Knuth.
+% TeX is a trademark of the American Mathematical Society.
+%
+%
+% Usage:
+%
+% 1. Run iniTeX with the MLTeX extensions on this file.
+% Do not try to use plain-TeX or LaTeX.
+% 2. Compare the produced log file with the one provided.
+% 3. Take a look at the dvi file and compare it with the
+% description at the end of the log file.
+% 4. (optional) Use dvitype to convert the dvi file to the
+% ASCII representation of its contents using these options:
+% Output level = 2
+% Starting page = * (default)
+% Number of pages = 1000000 (default)
+% Resolution = 7227/100
+% New magnification = 0 (default)
+% Compare the output with the provided file `mltrip.typ'.
+%
+%
+% Needs:
+%
+% - MLTeX v2.2
+% - font metric file cmr10.tfm
+% - dvitype (if you want to compare the dvi files)
+%
+%
+% Changes:
+%
+% 97/01/06 v1.0a
+% - initial version
+% 97/01/08 v1.0b
+% - added error count + \inputlineno test, fixed log output
+% 97/01/14 v1.0c
+% - added tests for math character substitution
+%
+\catcode`\{=1 \catcode`\}=2 \catcode`\$=3 \catcode`\#=6 \catcode`\^=7
+\endlinechar=`\^^M\newlinechar=`\^^J \def\space{ } \nonstopmode
+%
+\def\typeout#1{\immediate\write16{#1}}
+\countdef\errorcount=254 \errorcount=0
+\def\error#1{\advance\errorcount 1%
+ \typeout{^^J^^J\space\space\space ERROR: #1^^J^^J}}
+%
+\typeout{^^J"Trip" test for MLTeX implementations (1997/01/14 v1.0c [br])^^J}
+%
+% check for plain-TeX:
+% we have to ensure that _no_ fonts are preloaded
+\expandafter\ifx\csname active\endcsname\relax \else
+ \typeout{Please (Ini)TeX this file, no plain-TeX, no LaTeX!^^J}
+ \expandafter
+ \endinput\csname @@end\expandafter\endcsname\expandafter\end\fi\relax
+% check for MLTeX
+\expandafter\ifx\csname charsubdef\endcsname\relax
+ \typeout{This test file can only be used with MLTeX!^^J}
+ \expandafter\endinput\expandafter\end\fi\relax
+% check for MLTeX v2.2
+% (former MLTeX versions have initialized \charsubdefmax with 0)
+\ifnum\charsubdefmax<0 \else
+ \typeout{...ouch, an old MLTeX version!^^J%
+ This test file can only be used with MLTeX v2.2 or newer!^^J}
+ \expandafter\endinput\expandafter\end\fi\relax
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\typeout{Test font load bug (in MLTeX < v2.2):}
+% define substitution of an existing char with a non-existing base char
+\charsubdef `\A=`\a 128
+% load font (which should be preloaded before!)
+\font\test=cmr10 \relax \test
+ \textfont0=\test \textfont1=\test
+\font\smalltest=cmr10 \relax % our symbols font
+\fontdimen22\smalltest=7pt
+ \textfont2=\smalltest \scriptfont2=\smalltest
+ \scriptscriptfont2=\smalltest
+\font\bigtest=cmr10 \relax % our extension font
+ \textfont3=\bigtest \scriptfont3=\bigtest
+ \scriptscriptfont3=\bigtest
+\thinmuskip=18mu plus 18mu
+\medmuskip=36mu plus 9mu minus 18mu
+\thickmuskip=54mu minus 18mu \relax
+%
+\hsize=2in \parindent=.5pt \parfillskip=0pt plus1fil\relax
+\baselineskip=12pt \topskip=10pt \relax
+\tracingonline=1\showboxbreadth=255\showboxdepth=255
+\tracinglostchars=1
+%%%\tracingcharsubdef=1
+\message{done.}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\typeout{Test assignments to \string\charsubdefmax:}
+\charsubdefmax=-1 % reset because of \charsubdef`\A ...
+\begingroup
+ %%%\tracingrestores=10
+ \count0=\charsubdefmax
+ \begingroup \charsubdef 224 = `\` `a
+ \ifnum\charsubdefmax=224 \else
+ \error{\string\charsubdefmax\space set incorrectly (1)!}\fi
+ \endgroup
+ \ifnum\count0=\charsubdefmax \else
+ \error{\string\charsubdefmax\space reset incorrectly (1)!}\fi
+ % Test of a bug in MLTeX v2.2!
+ \begingroup \charsubdef 228 = `\" `a \global\charsubdef 224 = `\` `a
+ \ifnum\charsubdefmax=228\else
+ \error{\string\charsubdefmax\space set incorrectly (2)!}\fi
+ \endgroup
+ \ifnum\charsubdefmax=-1 \else % BUG: 224 was expected, not -1!
+ \error{\string\charsubdefmax\space reset incorrectly (2)!}\fi
+ % ...instead we use a simpler test:
+ \begingroup \charsubdef 226 = `\^ `a \charsubdef 224 = `\` `a
+ \ifnum\charsubdefmax=226 \else
+ \error{\string\charsubdefmax\space set incorrectly (3)!}\fi
+ \global\charsubdef 228 = `\" `a
+ \endgroup
+ \ifnum\charsubdefmax=228 \else
+ \error{\string\charsubdefmax\space reset incorrectly (3)!}\fi
+ % reset former value of \charsubdef and \charsubdefmax
+ \global\charsubdef 224=0 0
+ \global\charsubdef 228=0 0
+ \global\charsubdefmax=\count0
+\endgroup
+\message{done.}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\typeout{Test char substitution, box packing and repacking:}
+\charsubdef 224 = 18 `a % "E0 \`a
+\charsubdef 225 = 19 `a % "E1 \'a
+\charsubdef 226 = 94 `a % "E2 \^a
+\charsubdef 228 = 127 `a % "E4 \"a
+% define some substitutions whose characters doesn't exist in cmr10:
+\charsubdef 192 = 200 `a
+\charsubdef 193 = `a 129
+\charsubdef 194 = 128 129
+%
+\setbox2=\hbox{\char`a}\setbox4=\hbox{\char0}
+\message{<2 missing char warnings:}
+\setbox0=\hbox{\char224\char192\char193\char194}
+\message{>,}
+\ifdim\wd0=2\wd2 \else
+ \error{box width dimension set incorrectly (1)!}\fi
+%
+\setbox0=\hbox{\char224}
+\ifdim\wd0=\wd2 \else
+ \error{box width dimension set incorrectly (2)!}\fi
+% re-access character dimensions while substitution is disabled
+% (=> warning message, width of \char224 is first char in font, i.e. \char0)
+\message{<1 missing substitution warning:}
+{\charsubdefmax=0 \global\setbox0=\hbox{\unhbox0}}
+\message{>,}
+\ifdim\wd0=\wd4 \else
+ \error{box width dimension set incorrectly (3)!}\fi
+% re-box it again (=> no warning message!)
+\setbox0=\hbox{\unhbox0}
+\ifdim\wd0=\wd2 \else
+ \error{box width dimension set incorrectly (4)!}\fi
+%
+\message{<2 missing substitution warnings:}
+\setbox0=\vbox{\char224 \charsubdefmax=0\par}
+\message{>,}
+\message{done.}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%\typeout{Test math character substitutions:}
+%%\setbox0=\hbox{$\mathchar"2E0 % |fetch|
+%% \mathaccent"70E1 a % |fetch| + |make_math_accent|
+%% \mathaccent"7013 \mathchar"2E2 % |fetch|
+%% \mathop{\mathchar"0E4}{}% |fetch|
+%% \delimiter"43E03E1 % |var_delimiter|
+%% $}\showbox0
+%%\message{done.}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\typeout{Test dvi output with substitutions:}
+% define correct substitutions
+\charsubdef 192 = 18 `a % \`a
+\charsubdef 193 = 19 `a % \'a
+\charsubdef 194 = 94 `a % \^a
+\charsubdef 196 = 127 `a % \"a
+\charsubdef 199 = 24 `c % \c{c}
+% define correct substitutions
+\charsubdef 204 = 18 16 % \`\i
+\charsubdef 205 = 19 16 % \'\i
+\charsubdef 206 = 94 16 % \^\i
+\charsubdef 208 = 127 16 % \"\i
+\charsubdef 207 = 24 `i % \c{i}
+% define substitutions with non-existing characters
+\charsubdef 210 = 128 `a % \`a
+\charsubdef 211 = 128 `a % \'a
+\charsubdef 212 = 128 `a % \^a
+\charsubdef 214 = 128 `a % \"a
+\charsubdef 213 = 128 `c % \c{c}
+% define correct substitutions
+\charsubdef 224 = 18 `a % \`a
+\charsubdef 225 = 19 `a % \'a
+\charsubdef 226 = 94 `a % \^a
+\charsubdef 228 = 127 `a % \"a
+\charsubdef 227 = 24 `c % \c{c}
+%
+\setbox0=\vbox{%
+ \def\row#1 #2 #3 #4 {--\char#1--\hbox{\char#2}--\char#3--\char#4--\par}%
+ a-grave: \row 192 204 210 224 %
+ a-acute: \row 193 205 211 225 %
+ a-circonflex: \row 194 206 212 226 %
+ a-umlaut: \row 196 208 214 228 %
+ c-cedille: \row 199 207 213 227 %
+}
+%
+% redefine the correct substitutions
+\charsubdef 204 = 18 `a % \`a <= \`\i
+\charsubdef 205 = 19 `a % \'a <= \'\i
+\charsubdef 206 = 94 `a % \^a <= \^\i
+\charsubdef 208 = 127 `a % \"a <= \"\i
+\charsubdef 207 = 24 `c % \c{c} <= \c\i
+%
+\begingroup
+ \message{<Alternating 5 incomplete subst. + 5 missing subst. warnings:}
+ \charsubdefmax=223
+ \shipout\box0
+ \message{>,}
+\endgroup
+\message{done.}
+%
+\def\row#1#2#3{\space\space #1: -- \string#2#3 -- \string#2#3-- -- --}
+\typeout{^^J^^JTo complete the test:^^J=====================^^J^^J%
+1. Compare the log file with the one provided.^^J%
+2. Compare the dvi output:^^J%
+The dvi file should contain 5 lines of text, each line beginning^^J%
+with an ASCII description of the accented character, a colon^^J%
+followed by five en-dashes and two accented characters:^^J%
+ \row{a-grave}{\`}{a}^^J%
+ \row{a-acute}{\'}{a}^^J%
+ \row{a-circonflex}{\^}{a}^^J%
+ \row{a-umlaut}{\"}{a}^^J%
+ \row{c-cedille}{\c}{{c}}^^J%
+The spacing between the first accented character and the first^^J%
+two en-dashes has to be correct, whereas the en-dash after the^^J%
+second accented character has to touch the character! Otherwise^^J%
+your MLTeX implementation is incorrect.^^J}
+%
+% Test for correct number of lines:
+\ifnum 255=\inputlineno \else
+ \error{`mltrip.tex' corrupted! (l.\the\inputlineno)}\fi
+\ifnum\errorcount>0 \error{There was atleast one error!}\fi
+\end\relax \typeout{Can't happen in MLTeX "trip" test!}
+%% End of file `mltrip.tex'.
diff --git a/systems/generic/mltex/mltrip/mltrip.typ b/systems/generic/mltex/mltrip/mltrip.typ
new file mode 100644
index 0000000000..177c1118a4
--- /dev/null
+++ b/systems/generic/mltex/mltrip/mltrip.typ
@@ -0,0 +1,182 @@
+Options selected:
+ Starting page = *
+ Maximum number of pages = 1000000
+ Output level = 2 (mnemonics)
+ Resolution = 72.27000000 pixels per inch
+numerator/denominator=25400000/473628672
+magnification=1000; 0.00001526 pixels per DVI unit
+' TeX output 1997.01.16:1349'
+
+42: beginning of page 0
+87: down3 282168
+91: push
+92: right3 32768
+[ ]
+96: fntdef1 0: cmr10---loaded at size 655360 DVI units
+117: fntnum0
+118: setchar97
+119: setchar45
+120: setchar103
+121: setchar114
+122: setchar97
+123: w2 -18205
+126: setchar118
+127: w0 -18205
+128: setchar101
+129: setchar58
+130: right3 218453
+134: setchar123
+[a-grave: {]
+135: setchar18
+136: w3 -327681
+140: setchar97
+141: setchar123
+[a{]
+142: push
+143: setchar18
+144: w0 -327681
+145: setchar97
+[a]
+146: pop
+147: right3 182045
+151: setchar123
+152: setchar123
+153: setchar123
+[ {{{]
+154: pop
+155: y3 786432
+159: push
+160: right3 32768
+164: setchar97
+165: setchar45
+166: setchar97
+167: setchar99
+168: setchar117
+169: setchar116
+170: setchar101
+171: setchar58
+172: right3 218453
+176: setchar123
+[a-acute: {]
+177: setchar19
+178: w3 -327681
+182: setchar97
+183: setchar123
+[a{]
+184: push
+185: setchar19
+186: w0 -327681
+187: setchar97
+[a]
+188: pop
+189: right3 182045
+193: setchar123
+194: setchar123
+195: setchar123
+[ {{{]
+196: pop
+197: y0 786432
+198: push
+199: right3 32768
+203: setchar97
+204: setchar45
+205: setchar99
+206: setchar105
+207: setchar114
+208: setchar99
+209: setchar111
+210: setchar110
+[a-circon]
+211: setchar13
+212: setchar101
+213: setchar120
+214: setchar58
+215: right3 218453
+219: setchar123
+220: setchar94
+221: w3 -327681
+225: setchar97
+226: setchar123
+[ex: {^a{]
+227: push
+228: setchar94
+229: w0 -327681
+230: setchar97
+[^a]
+231: pop
+232: right3 182045
+236: setchar123
+237: setchar123
+238: setchar123
+[ {{{]
+239: pop
+240: y0 786432
+241: push
+242: right3 32768
+246: setchar97
+247: setchar45
+248: setchar117
+249: setchar109
+250: setchar108
+251: setchar97
+252: setchar117
+253: setchar116
+254: setchar58
+255: right3 218453
+259: setchar123
+[a-umlaut: {]
+260: setchar127
+261: w3 -327681
+265: setchar97
+266: setchar123
+[a{]
+267: push
+268: setchar127
+269: w0 -327681
+270: setchar97
+[a]
+271: pop
+272: right3 182045
+276: setchar123
+277: setchar123
+278: setchar123
+[ {{{]
+279: pop
+280: y0 786432
+281: push
+282: right3 32768
+286: setchar99
+287: setchar45
+288: setchar99
+289: setchar101
+290: setchar100
+291: setchar105
+292: setchar108
+293: setchar108
+294: setchar101
+295: setchar58
+296: right3 218453
+300: setchar123
+[c-cedille: {]
+301: setchar24
+302: w3 -291271
+306: setchar99
+307: setchar123
+[c{]
+308: push
+309: setchar24
+310: w0 -291271
+311: setchar99
+[c]
+312: pop
+313: right3 182045
+317: setchar123
+318: setchar123
+319: setchar123
+[ {{{]
+320: pop
+321: eop
+Postamble starts at byte 322.
+maxv=3427896, maxh=9472573, maxstackdepth=2, totalpages=1
+Font 0: cmr10
+