diff options
author | Denis Bitouzé <dbitouze@wanadoo.fr> | 2021-02-25 18:23:07 +0000 |
---|---|---|
committer | Denis Bitouzé <dbitouze@wanadoo.fr> | 2021-02-25 18:23:07 +0000 |
commit | c6101f91d071883b48b1b4b51e5eba0f36d9a78d (patch) | |
tree | 1bf7f5a881d7a4f5c5bf59d0b2821943dd822372 /Build/source/texk/web2c/etexdir/etrip/etrip.tex | |
parent | 07ee7222e389b0777456b427a55c22d0e6ffd267 (diff) |
French translation for tlmgr updated
git-svn-id: svn://tug.org/texlive/trunk@57912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/etexdir/etrip/etrip.tex')
-rw-r--r-- | Build/source/texk/web2c/etexdir/etrip/etrip.tex | 1265 |
1 files changed, 0 insertions, 1265 deletions
diff --git a/Build/source/texk/web2c/etexdir/etrip/etrip.tex b/Build/source/texk/web2c/etexdir/etrip/etrip.tex deleted file mode 100644 index bb688740f82..00000000000 --- a/Build/source/texk/web2c/etexdir/etrip/etrip.tex +++ /dev/null @@ -1,1265 +0,0 @@ -%%; This is `etrip.tex' for e-TeX v3.141592653-2.6 as of Jan 28, 2021. -%%; -%%; This is a diabolical test file for e-TeX, an extension of TeX82. -%%; It is not as diabolical as `trip.tex', Knuth's torture test for TeX. -%%; -%%; ==>> Do not use this TeX code and macros as an example of <<== -%%; ==>> how you can make use of the new e-TeX features! It is <<== -%%; ==>> meant to test these extensions and often uses slightly <<== -%%; ==>> wrong e-TeX input to produce errors and warnings. <<== -%%; -\catcode`\{=1\catcode`\}=2\catcode`\#=6 \let\bgroup={ \let\egroup=} -\def\etripdate {2021-01-28} -\def\texversion {3.141592653} -\def\etripversion{2.6} -% -\message{This is the e-Trip test [\etripdate] for - e-TeX v\texversion-\etripversion.} -% -% --- Make sure that e-Trip is run in e-TeX extended mode -\def\stop#1{\message{Emergency stop: #1!}} -\expandafter\ifx\csname eTeXversion\endcsname\relax - \stop{You aren't using e-TeX in extended mode} - \message{(Do not forget to give an asterisk `*' as the first non-blank} - \message{character to make e-IniTeX enter extended mode.)} - \expandafter\end -\fi -% -% --- Check for e-TeX version -\def\1.#1#2\relax{\bgroup - \edef\1{\egroup - \def\noexpand\2{\number\eTeXversion\eTeXrevision}% - \def\noexpand\1{\number\eTeXversion.#1}}\1} -\expandafter\1\eTeXrevision\relax -\message{(You are using e-TeX version/revision \2)} -\ifx\1\etripversion \else \stop{I have expected e-TeX - v\texversion-\etripversion...}\expandafter\end\fi -\let\1=\5 \let\2=\5 -% -% --- a special branch for e-IniTeX -\ifx\einitex\undefined \def\einitex{} - % - \message{e-IniTeX: Assigning category codes,} - \catcode`\$=3\catcode`\&=4 - \catcode`\^=7\catcode`\^^I=10\catcode`\_=8 - \message{tracing switches,} - \tracingstats=4\tracinglostchars=2 - \message{other codes,} - \endlinechar=`\^^M \newlinechar=`\^^J - % - \message{definitions for e-VirTeX e-Trip test run,} - \def\error{\immediate\write15{Bug in your e-TeX implementation!}% - \immediate\write15 } - \def\typeout{\immediate\write15 } - \def\empty{} \def\space{ } - % - \message{constants and registers,} - \chardef\zero=0\chardef\one=1\chardef\two=2 - \countdef\ctmp=255 \countdef\cndx=254 - % - \message{fonts,} - \fontdimen12\nullfont=13pt - \font\trip=etrip \hyphenchar\trip=`1 \trip - \textfont0=\trip \textfont1=\trip - \font\smalltrip=etrip scaled 500\relax % our symbols font - \fontdimen22\smalltrip=7pt - \textfont2=\smalltrip \scriptfont2=\smalltrip - \scriptscriptfont2=\smalltrip - \font\bigtrip=etrip at 20pt\relax % our extension font - \textfont3=\bigtrip \scriptfont3=\bigtrip - \scriptscriptfont3=\bigtrip - % - \message{some math characters,} - \delcode`\[="161361 % small (family 1, character "61 (a)), large (3,"61) - \delcode`\|="142342 % small (family 1, character "42 (B)), large (3,"42) - \delcode`\]="162362 % small (family 1, character "62 (b)), large (3,"62) - % - \message{some math parameters,} - \thinmuskip=18mu plus 3.6mu - \medmuskip=27mu plus 9mu minus 18mu - \thickmuskip=36mu minus 7.2mu - % - \message{hyphenation,} - \lefthyphenmin=2\righthyphenmin=2 - \begingroup - \def\x{\patterns{% - .pp1aqq. .up1aqq. .ppb1qq. .upb1qq. .pp1r1qq. .up1r1qq.}} - \language=0 \x \savinghyphcodes=1 - \language=1 \lccode`A=`a \lccode`B=`b \x - \language=2 \lccode`A=`r \lccode`B=`b \x - \language=3 \lccode`A=`a \lccode`B=`r \x - {\def\1{\lccode\count20=0 \ifnum\count20<255 \advance\count20 1 - \expandafter\1\fi}\count20=0 \1 - \language=4 \patterns{}} - {\lccode`B=`b \hyphenation{qqB-pp}} - \count20=\interactionmode \nonstopmode - {\setbox0\vbox{\parfillskip=0pt - \hbadness=0 \showboxdepth=0 - \hsize=16383.99999pt \pretolerance=-1 \tolerance=-1 - \trip\ ppaqq upaqq ppbqq upbqq pprqq uprqq qqbpp}} - {\lccode`B=`b \language=4 \hyphenation{-q-}} - \interactionmode=\count20 - {\lccode`B=`b \hyphenation{qq-B-pp}} - \endgroup - % - \message{enable e-TeX enhancements (TeXXeT),} - \TeXXeTstate=1 - % - \message{prepare saved items (not to be dumped),} - \bgroup \savingvdiscards=1 - \vfill \penalty 1234 % set \pagediscards - \setbox0=\vbox{\vbox to10pt{}\vskip5pt\penalty-4321} - \setbox1=\vsplit0 to10pt % set \splitdiscards - \egroup - % - \message{everyjob ...dumped.} - \everyjob={\message{e-IniTeX: e-Trip format loaded.}} - \expandafter\dump -\fi - -% -% -- Test \lostchars=1 and 2 -\begingroup - \tracingonline=0 - \setbox0=\hbox{% - \tracinglostchars=0 \nullfont a% - \tracinglostchars=1 \nullfont b% - \tracinglostchars=2 \nullfont c% - } -\endgroup -% -% -- Do the rest in silent, almost all of it: -\batchmode - -% -% -- Check that all e-TeX enhancements are switched off -\ifnum\TeXXeTstate=0 \else - \error{dumped e-TeX enhancement state registers aren't switch off} -\fi - -% -% ============================== input/output: new csnames -% -% -- Check table of equivalents and the routines |id_lookup|, -% |print_cmd_chr| for all new e-TeX control sequences -% -- Check new primitive \unexpanded (first test) -\typeout{Checking input/output of new csnames:} -\begingroup - \edef\1{% - \unexpanded{% -% --- additional e-TeX V 1 primitives - \eTeXversion \eTeXrevision \showgroups \showtokens - \tracingassigns \tracinggroups \tracingifs \tracingscantokens - \currentgrouplevel \currentgrouptype \middle \lastnodetype - \TeXXeTstate \beginL \endL \beginR \endR \predisplaydirection - \marks \topmarks \firstmarks \botmarks - \splitfirstmarks \splittopmarks - \protected \unexpanded \detokenize \scantokens \readline - \unless \ifdefined \ifcsname \everyeof \interactionmode -% --- additional e-TeX V 2 primitives - \currentiflevel \currentiftype \currentifbranch \showifs - \fontcharwd \fontcharht \fontchardp \fontcharic \iffontchar - \tracingnesting \parshapelength \parshapeindent \parshapedimen - \numexpr \dimexpr \glueexpr \muexpr \mutoglue \gluetomu - \gluestretchorder \glueshrinkorder \gluestretch \glueshrink - \savingvdiscards \pagediscards \splitdiscards - \lastlinefit \savinghyphcodes \interlinepenalties - \clubpenalties \widowpenalties \displaywidowpenalties - }% - } - -% loop through the list, count the number of csnames, -% insert the \newlinechar after the 2nd, 4th, 6th, ... - \ctmp=0\def\3{} - \def\2#1{\ifx\relax#1\else - \advance\ctmp\one - \edef\3{\unexpanded\expandafter{\3 #1}\ifodd\ctmp\else ^^J\fi}% - \expandafter\2\fi} - \expandafter\2\1\relax - \typeout{e-TeX Version \number\eTeXversion\space has - \number\ctmp\space new csnames:}% - \show\3\endgroup - -% -% ============================== create and output nodes -% -% -- Check |new_...| routines and |short_display|, |show_node_list| -% for all new e-TeX node types and subtypes -% -- Check for new primitives disabled when read. -\typeout{Checking creation and printing for new node types:} -\tracingonline=1 -\showboxbreadth=255\showboxdepth=255 -\begingroup - \setbox0=\vbox{\hsize=0pt\TeXXeTstate=1\relax - %% []\trip a[]b[]p$q [] t$u[][] % <== \endR\endL at end - a\beginL b\beginR p$q\left[\mathpunct{r}\middle|s\right]t$u - %% \trip aMb - $$aMb$$ % \hbox ..., display - %% [][]\trip p[]q$st$u[] % <== \beginL\beginR at beginning - p\endR q\mathsurround=12.3pt$st$u % <== \endL at end - %% \trip rMs - $$rMs$$ % \hbox ..., display - %% []\trip tp[]u % <== \beginL at beginning - tp\endL u - %% \trip rMs - $$rMs$$ % \hbox ..., display - %% \trip tp % <== no \mark(s), no \(begin/end)(L/R)! - tp\mark{0old}\marks0{0}\marks1{1}\marks15{15}\marks32767{32767}% - \marks-1{-1}\marks32768{32768}% Bad register (-1) ...and (32768). - \TeXXeTstate=0\relax - \beginL\beginR\endL\endR % Improper \(begin/end)(L/R) - }\showbox0 -\endgroup - -% -% -% ============================== \interactionmode -% -% -- Check new special register \interactionmode -\typeout{Checking \string\interactionmode:} -\begingroup \ctmp=\interactionmode % save current value -\nonstopmode -% test inquiry using \interactionmode -\def\3{\typeout{current interactionmode (l.\number\inputlineno): - \ifcase\interactionmode batch\or nonstop\or scroll\or - errorstop\else UNKNOWN!\fi}} -\def\1#1{\relax\ifnum#1=\interactionmode \3 \else - \typeout{wrong interactionmode: - \number\interactionmode\space should be \number#1!}\fi} -\batchmode \1 0 -\nonstopmode \1 1 -\scrollmode \1 2 -\errorstopmode \1 3 -% test setting |interaction_mode| using this special register -\def\2#1{\interactionmode=#1\relax \1{#1}} - \nonstopmode - % generate two errors: - \interactionmode=-1 \1 1 % nonstop - \interactionmode=4 \1 1 % nonstop -\2 2 \2 2 \2 1 \2 1 \2 3 \2 3 \2 0 \2 0 -\1 0{\interactionmode=3}\1 3 % global assignment! -% Test for the correct call of |new_interaction|, i.e. -% correct setting of |selector|: -\interactionmode=1 \message{1 (l.\number\inputlineno)}% log+term -\interactionmode=0 \message{0 (l.\number\inputlineno)}% log only -\interactionmode=1 \message{1 (l.\number\inputlineno)}% log+term -% Some tests with TeX's old command and register assignments -\batchmode \1 0 \2 3 \scrollmode \1 2 \2 1 -\2 \ctmp -\endgroup - -% -% -- Check \tracingifs -\typeout{Checking \string\tracingifs:} -\begingroup - \def\1#1\1{\def\2{#1\iffalse \else \fi}#1\iftrue \2\else \2\fi} - \tracingifs=1 - \1\1 - \1\unless\1 - \tracingcommands=2 - \ifdefined\hbox \unless\ifdefined\abc \ifcase 2 \or \or - \ifcsname hbox\endcsname \ifcsname abc\endcsname \abc \else - \ifx\abc\relax \else \ifx\abc\relax \fi \fi \fi \fi \or\fi \fi \fi -\endgroup -% -% -- Check \tracingassigns -\typeout{Checking \string\tracingassigns:} -\begingroup - \tracingrestores=1 \tracingassigns=1 - \global\font\6=etrip at 11pt \font\6=etrip at 11pt - \global\count17=7 \count17=7 - \global\def\9{\relax} \global\let\8=\9 \let\8=\9 - \bgroup - \global\font\5=etrip at 12pt \font\5=etrip at 12pt \let\4=\5 - \global\count17=0 \count17=0 - \global\let\9=\7 \global\let\8=\9 \let\8=\9 - \egroup -\endgroup - -% -% -- Check \currentgrouptype, \currentgrouplevel, and \lastnodetype -\typeout{Checking \string\currentgrouptype, - \string\currentgrouplevel, and \string\lastnodetype:} -\typeout{current group level (l.\number\inputlineno): - \ifcase\currentgrouplevel outer level\else BAD!\fi} -\typeout{current group type (l.\number\inputlineno): - \ifcase\currentgrouptype bottom level\else BAD!\fi} -\begingroup - \def\4{\typeout{current group type (l.\number\inputlineno): - \ifcase\currentgrouptype bottom level\or simple group\or - hbox group\or adjusted hbox group\or vbox group\or - vtop group\or align group\or no align group\or - output group\or math group\or disc group\or - insert group\or vcenter group\or math choice group\or - semi simple group\or math shift group\or - math left group\else UNKNOWN!\fi}} - \def\1 #1 {\relax\ifnum#1=\currentgrouptype \4\else - \typeout{wrong current group type: - \number\currentgrouptype\space should be #1!}\fi} - \def\5{\edef\6{\ifcase\lastnodetype char node\or hlist node\or - vlist node\or rule node\or ins node\or mark node\or - adjust node\or ligature node\or disc node\or whatsit node\or - math node\or glue node\or kern node\or penalty node\or - unset node\or math mode node\else - \ifnum-1=\lastnodetype empty\else UNKNOWN!\fi\fi}% - \typeout{last node type (l.\number\inputlineno): \6}} - \def\2 #1 {\relax\ifnum#1=\lastnodetype \5\else - \edef\6{\number\lastnodetype}% - \typeout{wrong last node type: \6 should be #1!}\fi} - \def\3 #1 {\relax\ifnum#1=\currentgrouplevel \else - \typeout{wrong current group level: - \number\currentgrouplevel\space should be #1!}\fi} - \tracinggroups=1 - \1 14 % semi simple group - \3 1 % group level 1 - \setbox0=\vbox{\1 4 % vbox group - \hbox{\1 3 % adjusted hbox group - {\1 1 % simple group - }\2 -1 % empty list - \hbox{\1 2 % hbox group - \discretionary{\1 10 }{\1 10 }{\1 10 % disc group - \3 5 % group level 5 - }\2 8 % disc node - A\2 0 % char node - AA\2 7 % ligature node - \insert27{\1 11 % insert group - }\2 4 % ins node - \vadjust{\1 11 % insert group - }\2 6 % adjust node - \mark{}\2 5 % mark node - \vrule \2 3 % rule node - \hfil \2 11 % glue node - \kern 0pt\2 12 % kern node - \penalty 0\2 13 % penalty node - \vtop{\1 5 % vtop group - }\2 2 % vlist node - \write5{}\2 9 % whatsit node - $\1 15 % math shift group - {\1 9 % math group - } - $\2 10 % math node - \TeXXeTstate=1\beginR\2 10 % math node - \endR\2 10 % math node - \valign{#\cr\1 6 % two align groups - \cr\noalign{\1 7 % no align agroup - \2 14 % unset node - } - } - } - }\2 1 % hlist node - $$\1 15 % math shift group - \2 -1 % empty list - \mathchoice{\1 13 }{\1 13 }{\1 13 }{\1 13 % math choice group - \vcenter{\1 12 % vcenter group - }\2 15 % math mode node - }\2 15 % math mode node - \left.\1 16 % math left group - \middle.\1 16 % math left group - \middle.\1 16 % math left group - \right. - $$ - } - \output={\1 8 % output group - \setbox0=\box255 - \setbox0=\vbox{ % vbox group % this is definitely weird! - \hbox spread 5pt{\hfil % adjusted hbox group - \raise5pt\hbox{ % hbox group - { %simple group - \valign{#\cr % two align groups - \noalign{ % no align group - $ % math shift group - \vtop{ % vtop group - $$ % math shift group - { % math group - \left.\middle. % math left group - \mathchoice{}{}{ % math choice group - \vcenter to 7pt{\vss % vcenter group - \noindent\vadjust{ % insert group - \discretionary{}{% disc group - \showgroups % show all of them - }{} - } - } - }{} - \right. - } - $$ - } - $ - } - } - } - } - } - } - } - \hbox{}\vfil\penalty-10000 - \deadcycles=0 -\endgroup - -% -% -- Check expansion of \protected macros -\typeout{Checking expansion of \string\protected\space macros:} -\begingroup - \protected\def\2{} \show\2 - \let\3=\2 \show\3 - \protected\unexpanded\bgroup\2\protected\3\protected\def\1{\2}} \show\1 - \tracingmacros=1 - \message{\expandafter\1\1} - \typeout{\expandafter\1\1} - \setbox0=\vbox{\special{\expandafter\1\1}} \showbox0 - \edef\5{\expandafter\1\1} \show\5 - \setbox0=\vbox{\halign{#\1&#\span\1\cr - \protected\def\1{\3}&\protected\def\1{\3}\cr}} -\endgroup - -% -% -- Check \scantokens, \tracingscantokens, \readline, and \everyeof -\typeout{Checking \string\scantokens, \string\tracingscantokens, - \string\readline, and \string\everyeof:} -\begingroup - \newlinechar=`\^^J - \def\1{\endgroup ^^J\fi ^^J\bgroup ^^J\iffalse \else} - \tracingoutput=1 - \shipout\vbox{\global\advance\count\zero by\one - \openout1=\jobname.out - \write1{\unexpanded\expandafter{\1}} - \closeout1} - \begingroup \iftrue \input\jobname.out \egroup \fi - \begingroup \iftrue \scantokens\expandafter{\1} \egroup \fi - \errorcontextlines=1000 \tracingscantokens=1 - \begingroup - \tracingnesting=1 - \begingroup \iftrue \scantokens\expandafter{\1} \egroup \fi - \tracingnesting=2 - \begingroup \unless\iffalse \scantokens\expandafter{\1} \egroup \fi -% and now a really weird (although legitimate) combination - \setbox0=\hbox\bgroup - \unless\iftrue\else - \scantokens{\hbox\bgroup^^J\ifcase0^^J\tracingscantokens=0^^J - \newlinechar=`\^^Z - \scantokens{\egroup^^Z\else\fi^^Z\def\1{\egroup\fi}^^Z\1^^Z^^J - \setbox0=\vtop\bgroup^^Z\ifnum0=0^^Z$$^^Z\ifinner\else^^Z - \csname iffalse\endcsname^^J - }^^J % end of inner scantokens - $$^^J\fi - } % end of outer \scantokens - \egroup - \else\fi - \endgroup - \begingroup \iftrue \let\9=\endgroup \def\endgroup{\9\9} - \input\jobname.out \egroup \fi - \begingroup \iftrue \let\9=\endgroup \def\endgroup{\9\9} - \scantokens\expandafter{\1} \egroup \fi - - \edef\1{\scantokens{\begingroup} % <== error - \everyeof={\noexpand} - \edef\1{\scantokens{\begingroup}\endgroup} % <== OK - \errorcontextlines=100 - \def\2{\begingroup\scantokens{\message{level=\the\currentgrouplevel}}% - \endgroup} - \bgroup\bgroup\bgroup \edef\1{\egroup\egroup\egroup - \everyeof={\noexpand\ifnum\number\currentgrouplevel - \unexpanded{>\currentgrouplevel\2\else\9\fi}}}\1\2 - - \openin7=\jobname.out - \bgroup - \def\1{\unless\ifeof7\readline7to\2% - \endlinechar=-\one\2\expandafter\1\fi} - \tracingcommands=2 \tracingrestores=1 \tracingassigns=1 - \setbox25=\hbox{\1\showlists} - \egroup - -\endgroup - -% -% -- Check \marks etc., \showtokens, and \detokenize -\typeout{Checking \string\marks\space etc., \string\showtokens, and - \string\detokenize:} -\begingroup - \newlinechar=`\^^J - \def\4{\message{Current marks:\9^^J}} - \def\3#1{\edef\9{\9^^J \detokenize{#1}=\detokenize\expandafter{#1}.}} - \def\2#1 {\3{\splitfirstmarks#1}\3{\splitbotmarks#1}} - \def\0{\let\9=\empty} - \def\7{\penalty0\vskip40pt} - \def\1{\0\20 \21 \23 \4} - \setbox0=\vbox{% - \marks0{0-1}\marks1{1-1}\vskip1pt\vbox to9pt{} - \mark{0-2}\marks3{}\hbox{}\vskip5pt\vfil\7 - \marks0{0-3}\vskip1pt\vbox to19pt{}\marks3{3-3}\vskip3ptplus1fil\7 - \vbox to30pt{}\vfil\7\hbox to10pt{}} - \setbox4=\copy0 - \1 \showbox0 \let\5=\3 \def\3#1{\showtokens\expandafter{#1}\5{#1}} - \setbox1=\vsplit0to17pt - \1 \showbox1 \showbox0 \let\3=\5 - \setbox1=\vsplit0to27pt - \1 \showbox1 \showbox0 - \setbox1=\vsplit0to37pt - \1 \showbox1 \showbox0 - \def\2#1 {\3{\topmarks#1}\3{\firstmarks#1}\3{\botmarks#1}} - \vsize=35pt \output{\1 \showbox255 \setbox0=\box255}\1 - \unvbox4\marks0{}\marks1{}\marks3{}\vfil\penalty-10000 - \hbox{}\marks0{}\marks1{}\marks3{}\vfil\penalty-10000 - \hbox{}\vfil\penalty-10000 % reclaim sparse array memory! - \deadcycles=0 -\endgroup - -% -% -- Check \middle -\typeout{Checking \string\middle:} -\begingroup - \scriptfont1=\textfont1 \scriptscriptfont1=\scriptfont1 - \setbox0=\vbox{\middle \par \right \par} % <== 8 errors - \setbox0=\hbox{% - $ - \left[p - \left[q - \over r - \left[p - \middle|q - \middle|q - \left[p - \middle|q - \middle|q - \over r\showlists - \right]\showlists - \right]\showlists - \right]\showlists - \right]\showlists - $\showlists - } - \setbox0=\hbox{$\displaystyle - \left[\scriptstyle\middle|\mathchoice{p}{q}{r}{s} - \raise16.5pt\hbox{}\right]$\showlists} - \setbox0=\hbox{$\scriptscriptstyle - \left[\displaystyle\lower3pt\hbox{}\middle|\mathchoice{p}{q}{r}{s} - \right]$\showlists} -\endgroup - -% -% -- Check TeX--XeT's new primitives -\typeout{Checking TeX--XeT enhancements:} -\begingroup -% -- incorrect matching & conversion -% (extra `endL/R' nodes are converted to `kern 0.0' nodes) - \setbox0=\vbox{\TeXXeTstate=1 - \parfillskip=0pt plus1fil\hsize=10pt\parindent=.5pt - \beginL\kern1pt\par - \beginR\kern2pt\par - \beginL\beginR\kern3pt\penalty0\hbox{}\kern3pt\endL\endR\endL\par - \endL\kern4pt\endR\par} - \showbox0 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% STILL INCOMPLETE!!! -% %%%%% Missing: Test for functionality of all new primitives -% \TeXXeTstate \beginL \endL \beginR \endR \predisplaydirection -% %%%%% -\endgroup - -% -% -- Check optimized \aftergroup -\typeout{Checking optimized \string\aftergroup:} -\begingroup - \errorcontextlines=1000 - {{\aftergroup\x\aftergroup}\aftergroup{\aftergroup\relax}} -\endgroup - -% -% -- Check \showifs, \currentiftype, \currentiflevel, and \currentifbranch -\typeout{Checking \string\showifs, \string\currentiftype, - \string\currentiflevel, and \string\currentifbranch:} -\begingroup - \def\1{ !BAD} \edef\2{ \ifnum0=\currentifbranch OK\else!BAD\fi} - \iftrue \expandafter \ifnum \number\currentifbranch=1 - \iffalse \else \expandafter \ifnum \number\currentifbranch=-1 - \ifnum \currentifbranch=0 \let\1=\2 \fi \fi \fi \fi \fi - \message{\string\currentifbranch \1} - \def\1 #1 {\edef\2{\number\currentiflevel}% - \ifnum\2=#1 - \typeout{current if level (l.\number\inputlineno): \number\2}% - \else - \typeout{wrong current if level: \2\space should be #1!}% - \fi} - \1 0 % if level 0 - \iftrue \1 1 % if level 1 - \iftrue \1 2 % if level 2 - \fi - \fi - \def\1 #1 #2 {\edef\2{\number\currentiftype}% - \edef\3{\number\currentifbranch}% - \ifnum\2=#1 \4\else - \typeout{wrong current if type: \2\space should be #1!}\fi - \ifnum\3=#2 \5\else - \typeout{wrong current if branch: \3\space should be #2!}\fi} - \def\4{\typeout{current if type (l.\number\inputlineno): - \ifnum\2<0 \string\unless\6{-\2}\else\6{\2}\fi}} - \def\5{\typeout{current if branch (l.\number\inputlineno): - \ifnum\3>0 true\else \ifnum\3<0 false\else - \ifnum0=\3 no\else !UNKNOWN\fi\fi\fi\space branch}} - \def\6#1{\string\if \ifcase#1!NONE\or \or cat\or num\or dim\or odd\or - vmode\or hmode\or mmode\or inner\or void\or hbox\or vbox\or x\or - eof\or true\or false\or case\or defined\or csname\or fontchar\else - !UNKNOWN\fi} - \1 0 0 - \if00 \1 1 1 \fi \unless\if00 \else \1 -1 -1 \fi - \if0a \else \1 1 -1 \fi \unless\if0a \1 -1 1 \fi - \ifcat00 \1 2 1 \fi \unless\ifcat00 \else \1 -2 -1 \fi - \ifcat0a \else \1 2 -1 \fi \unless\ifcat0a \1 -2 1 \fi - \ifnum1=1 \1 3 1 \fi \unless\ifnum1<1 \1 -3 1 \fi - \ifdim1pt=2pt \else \1 4 -1 \fi \unless\ifdim1pt>2pt \1 -4 1 \fi - \ifodd5 \1 5 1 \fi \unless\ifodd5 \else \1 -5 -1 \fi - \setbox2=\vbox{ - \ifvmode \1 6 1 \fi \unless\ifvmode \else \1 -6 -1 \fi - } \setbox0=\box2 - \setbox1=\hbox{ - \ifhmode \1 7 1 \fi \unless\ifhmode \else \1 -7 -1 \fi - $ - \ifmmode \1 8 1 \fi \unless\ifmmode \else \1 -8 -1 \fi - $ - \ifinner \1 9 1 \fi - } - \unless\ifinner \1 -9 1 \fi - \ifvoid2 \1 10 1 \fi \unless\ifvoid0 \1 -10 1 \fi - \ifhbox1 \1 11 1 \fi \unless\ifhbox2 \1 -11 1 \fi - \ifvbox0 \1 12 1 \fi \unless\ifvbox1 \1 -12 1 \fi - \ifx\abc\relax \else \1 13 -1 \fi \unless\ifx\relax\abc \1 -13 1 \fi - \ifeof7 \1 14 1 \fi \unless\ifeof5 \else \1 -14 -1 \fi - \iftrue \1 15 1 \fi \unless\iftrue \else \1 -15 -1 \fi - \iffalse \else \1 16 -1 \fi \unless\iffalse \1 -16 1 \fi - \ifcase2 \or \or \1 17 1 \fi \ifcase2 \or \else \1 17 -1 \fi - \ifdefined\hbox \1 18 1 \fi \unless\ifdefined\abc \1 -18 1 \fi - \ifcsname hbox\endcsname \1 19 1 \fi - \unless\ifcsname abc\endcsname \1 -19 1 \fi - \iffontchar\trip`b \1 20 1 \fi \unless\iffontchar\trip`c \1 -20 1 \fi -% - \if00 \unless\if00 \else \if0a \else \unless\if0a - \ifcat00 \unless\ifcat00 \else \ifcat0a \else \unless\ifcat0a - \ifnum1=1 \unless\ifnum1<1 \ifdim1pt=2pt \else \unless\ifdim1pt>2pt - \ifodd5 \unless\ifodd5 \else - \setbox3=\vbox{\ifvmode \unless\ifvmode \else - \hbox{\ifhmode \unless\ifhmode \else - $\ifmmode \unless\ifmmode \else \ifinner \unless\ifinner \else - \ifvoid2 \unless\ifvoid0 \ifhbox1 \unless\ifhbox2 - \ifvbox0 \unless\ifvbox1 \ifeof7 \unless\ifeof5 \else - \ifx\abc\relax \else \unless\ifx\relax\abc - \iftrue \unless\iftrue \else \iffalse \else \unless\iffalse - \ifcase2 \or \or \ifcase2 \or \else - \ifdefined\hbox \unless\ifdefined\abc - \begingroup \tracingifs=1 - \ifcsname hbox\endcsname \unless\ifcsname abc\endcsname - \iffontchar\trip`b \unless\iffontchar\trip`c - \showifs % <== show 44 nested ifs - \fi \fi - \fi \fi - \endgroup - \fi \fi - \fi \fi - \fi \fi \fi \fi - \fi \fi - \fi \fi \fi \fi - \fi \fi \fi \fi - \fi \fi \fi \fi $ - \fi \fi } - \fi \fi } - \fi \fi - \fi \fi \fi \fi - \fi \fi \fi \fi - \fi \fi \fi \fi -\endgroup - -% -% -- Check \iffontchar, \fontcharwd, etc. -\typeout{Checking \string\iffontchar, \string\fontcharwd, etc.:} -\begingroup - \iffontchar \else \fi % <== missing font identifier and number - \iffontchar\textfont2 -1 \else \fi % <== bad character code - \iffontchar\font 256 \else \fi % <== bad character code - \fontcharwd \fontcharht \fontchardp \fontcharic % <== can't use - \def\1#1#2{% - \def\2##1##2{\ifdim\csname fontchar##1##2\endcsname#1`#2=0pt \else - \space##1##2=\the\csname fontchar##1##2\endcsname#1`#2 \fi}% - \typeout{Font \string#1 character #2% - \iffontchar#1`#2:\2wd\2ht\2dp\2ic\else \space does not exist\fi}} - \1\font A \1{\textfont1}B \1{\scriptfont2}B \1{\scriptscriptfont3}B - \1\trip 7 \1\trip D \1\nullfont D -% - \def\1#1{\cndx=\zero \ctmp=\zero - \def\2{\iffontchar#1\cndx \advance\ctmp by\one \fi - \advance\cndx by\one - \ifnum\cndx<256 \expandafter\2\fi}% - \2% - \typeout{Font \string#1 has \number\ctmp\space character% - \ifnum1=\cndx \else s\fi .}} - \1\font \1\trip \1\nullfont -\endgroup - -% -% -- Check \parshapelength, \parshapeindent, and \parshapedimen -\typeout{Checking \string\parshapelength, \string\parshapeindent, and - \string\parshapedimen:} -\begingroup - \parshapelength \parshapeindent \parshapedimen % <== can't use - \def\1#1 {\edef\2{\2 #1}} - \let\2=\empty - \ifdim\parshapeindent-5=0pt \else\1a \fi - \ifdim\parshapelength-5=0pt \else\1b \fi - \ifdim\parshapeindent-1=0pt \else\1c \fi - \ifdim\parshapelength-1=0pt \else\1d \fi - \ifdim\parshapeindent-0=0pt \else\1e \fi - \ifdim\parshapelength-0=0pt \else\1f \fi - \ifdim\parshapeindent 1=0pt \else\1g \fi - \ifdim\parshapelength 1=0pt \else\1h \fi - \ifdim\parshapeindent 5=0pt \else\1j \fi - \ifdim\parshapelength 5=0pt \else\1i \fi - \ifdim\parshapedimen-5=0pt \else\1k \fi - \ifdim\parshapedimen-1=0pt \else\1l \fi - \ifdim\parshapedimen 0=0pt \else\1m \fi - \ifdim\parshapedimen 1=0pt \else\1n \fi - \ifdim\parshapedimen 2=0pt \else\1o \fi - \typeout{Parshape test 1 \ifx\2\empty OK\else error(s):\2\fi} - \parshape=2 1pt 2pt 3pt 4pt - \let\2=\empty - \ifdim\parshapeindent-5=0pt \else\1a \fi - \ifdim\parshapelength-5=0pt \else\1b \fi - \ifdim\parshapeindent-1=0pt \else\1c \fi - \ifdim\parshapelength-1=0pt \else\1d \fi - \ifdim\parshapeindent-0=0pt \else\1e \fi - \ifdim\parshapelength-0=0pt \else\1f \fi - \ifdim\parshapedimen-5=0pt \else\1g \fi - \ifdim\parshapedimen-1=0pt \else\1h \fi - \ifdim\parshapedimen 0=0pt \else\1i \fi - \typeout{Parshape test 2 \ifx\2\empty OK\else error(s):\2\fi} - \parshape=2 1pt 2pt 3pt 4pt - \parshape=2 \parshapelength2 \parshapeindent2 - \parshapelength1 \parshapeindent1 - \let\2=\empty - \ifdim\parshapeindent1=4pt \else\1A \fi - \ifdim\parshapelength1=3pt \else\1B \fi - \ifdim\parshapeindent2=2pt \else\1C \fi - \ifdim\parshapelength2=1pt \else\1D \fi - \ifdim\parshapeindent3=2pt \else\1E \fi - \ifdim\parshapelength3=1pt \else\1F \fi - \ifdim\parshapeindent9=2pt \else\1G \fi - \ifdim\parshapelength9=1pt \else\1H \fi - \typeout{Parshape test 3 \ifx\2\empty OK\else error(s):\2\fi} - \parshape=2 1pt 2pt 3pt 4pt - \parshape=2 11\parshapedimen4 11\parshapedimen3 - 11\parshapedimen2 11\parshapedimen1 - \let\2=\empty - \ifdim\parshapedimen1=44pt \else\1A \fi - \ifdim\parshapedimen2=33pt \else\1B \fi - \ifdim\parshapedimen3=22pt \else\1C \fi - \ifdim\parshapedimen4=11pt \else\1D \fi - \ifdim\parshapedimen5=22pt \else\1E \fi - \ifdim\parshapedimen6=11pt \else\1F \fi - \ifdim\parshapedimen99=22pt \else\1G \fi - \ifdim\parshapedimen100=11pt \else\1H \fi - \typeout{Parshape test 4 \ifx\2\empty OK\else error(s):\2\fi} -\endgroup - -% -% -- Check \numexpr, \dimexpr, \glueexpr, and \muexpr -\typeout{Checking \string\numexpr, \string\dimexpr, \string\glueexpr, - and \string\muexpr:} -\begingroup - \numexpr \dimexpr \glueexpr \muexpr % <== can't use - \let\9=\relax - \count43=\numexpr ( ( 2 \9 \dimen43=\dimexpr ( 3pt \9 - \skip43=\glueexpr 4pt plus 3fil \9 \muskip43=\muexpr(5muminus1mu)\9 - \def\1#1 {\typeout{\detokenize{#1}=\the#1}} - \1\numexpr\count43 \1\dimexpr\dimen43 - \1\glueexpr\skip43 \1\muexpr\muskip43 - - % Test arithmetic overflow - \begingroup - \tracingassigns=5 - \count44=\numexpr"7FFFFFFE+1 \dimen44=\dimexpr"3FFFFFFEsp+1sp - \count44=\numexpr-"7FFFFFFE-1 \dimen44=\dimexpr-"3FFFFFFEsp-1sp - \count44=\numexpr"FFFF*"8000 \dimen44=\dimexpr"7FFFsp*"8000 - \skip44="3FFFFFFFsp \advance\skip44by1sp \relax - \dimen45=\skip44 \dimen45=\dimexpr1sp*\skip44\9 - \dimen44=-"3FFFFFFFsp \advance\dimen44by-1sp - \dimen45=\skip44 \dimen45=\dimexpr1sp*\skip44\9 - \count44=\numexpr"7FFFFFFE+2\9 \dimen44=\dimexpr"3FFFFFFEsp+2sp\9 - \count44=\numexpr-"7FFFFFFE-2\9 \dimen44=\dimexpr-"3FFFFFFEsp-2sp\9 - \count44=\numexpr"10000*"8000\9 \dimen44=\dimexpr"8000sp*"8000\9 - \count44=\numexpr"10000*-"8000\9 \dimen44=\dimexpr"8000sp*-"8000\9 - \count44=\numexpr-"10000*"8000\9 \dimen44=\dimexpr-"8000sp*"8000\9 - \count44=\numexpr-"10000*-"8000\9 \dimen44=\dimexpr-"8000sp*-"8000\9 - \count44=\numexpr0/0\9 \dimen44=\dimexpr0pt/0\9 - \count44=\numexpr1/0\9 \dimen44=\dimexpr1pt/0\9 - \count44=\numexpr-1/0\9 \dimen44=\dimexpr-1pt/0\9 - \endgroup - - % Test glue arithmetic (add and sub) - \begingroup - \skip90=3pt plus 0fill minus 1fil - \skip91=3pt plus 1fil minus 0fill - \skip92=2pt plus -1fil minus 1fil - \tracingassigns=5 - \skip93=\glueexpr\skip90+0pt \skip93=\glueexpr\skip90+0pt - \skip93=\glueexpr--\skip90 \skip93=\glueexpr--\skip90 - \skip93=\glueexpr\skip91+0pt - \skip93=\glueexpr--\skip91 \skip93=\glueexpr--\skip91 - \skip93=\glueexpr\skip92+0pt - \skip93=\glueexpr--\skip92 \skip93=\glueexpr--\skip92 - \skip93=\glueexpr\skip90-\skip91 - \skip93=\glueexpr\skip91-\skip92 - \skip93=\glueexpr\skip91+\skip92 - \endgroup - - % Test rounding of division (all combinations of signs) - \def\2#1 {\edef\3{\3 #1}} - \def\1#1#2#3#4{\let\3=\empty - \ifnum#4=\numexpr#2/#3\else\2a \fi - \ifnum#4=-\numexpr-#2/#3\else\2b \fi - \ifnum-#4=\numexpr#2/-#3\else\2c \fi - \ifnum#4=\numexpr-#2/-#3\else\2d \fi - \typeout{Expr quotient rounding #1 \ifx\3\empty OK\else - error(s):\3\fi}} - \11{"3FFFFFFF}{"7FFFFFFF}{0} - \12{"40000000}{"7FFFFFFF}{1} - \13{"3FFFFFFE}{"7FFFFFFE}{0} - \14{"3FFFFFFF}{"7FFFFFFE}{1} - \def\1#1#2#3#4{\let\3=\empty - \ifnum#4=\numexpr#2/#3\else\2a \fi - \ifnum#4=-\dimexpr-#2sp/#3\else\2b \fi - \ifnum-#4=\glueexpr\muexpr#2mu/"10000\9/-#3\else\2c \fi - \ifnum#4=\muexpr-\dimexpr#2spplus-1muminus-1fil/-#3\else\2d \fi - \typeout{Expr quotient rounding #1 \ifx\3\empty OK\else - error(s):\3\fi}} - \15{32}{5}{6} % <== three mu_error's (! Incompatible glue units) - \16{33}{5}{7} % <== three mu_error's (! Incompatible glue units) - \17{25}{4}{6} % <== three mu_error's (! Incompatible glue units) - \18{26}{4}{7} % <== three mu_error's (! Incompatible glue units) - - % Test rounding of fractions - \begingroup - \def\1#1 #2 #3 #4 #5 {\let\3=\empty - \ifnum#5=\numexpr#2*#3/#4\else\2a \fi - \ifnum-#5=\numexpr-#2*#3/#4\else\2b \fi - \ifnum-#5=\numexpr#2*-#3/#4\else\2c \fi - \ifnum#5=\numexpr-#2*-#3/#4\else\2d \fi - \ifnum-#5=\numexpr#2*#3/-#4\else\2e \fi - \ifnum#5=\numexpr-#2*#3/-#4\else\2f \fi - \ifnum#5=\numexpr#2*-#3/-#4\else\2g \fi - \ifnum-#5=\numexpr-#2*-#3/-#4\else\2h \fi - \4#1} - \def\4#1{\typeout{Expr fraction rounding #1 \ifx\3\empty OK\else - error(s):\3\fi}\let\3=\empty} - \11 "7FFFFFFE "7FFFFFFE "7FFFFFFD "7FFFFFFF - \12 "7FFFFFFE "7FFFFFFE "7FFFFFFF "7FFFFFFD - \def\1#1#2 #3 #4 #5 #6 {\let\3=\empty - \ifnum\numexpr#6=\numexpr(#3)*(#4)/(#5)\else\2#1 \fi - \ifdim\dimexpr1sp*#6=\dimexpr(#3sp)*(#4)/(#5)\else\2#2 \fi} - \1ab "3FFFFFFE "7FFFFFFE "7FFFFFFD "3FFFFFFF - \1cd "3FFFFFFE "7FFFFFFE "7FFFFFFF "3FFFFFFD - \1ef "1FFFBFFE "20003FFE "1FFFFFFE "1FFFFFFF - \1gh "1FFFBFFF "20003FFF "1FFFFFFF "20000000 - \1ij "1FFFC000 "20004000 "20000000 "20000000 - \1kl "1FFFC001 "20004001 "20000001 "20000001 - \errorcontextlines=100 - \1mn 1 "7FFFFFFF 2 "40000000 - \43 - \endgroup - - \bgroup - \skip44=\glueexpr ( \skip43 ) + 3 pt plus 1 fil minus 1 fil l l - \muskip44=\muexpr (\muskip43)+3muplus1fill - \dimen44=\dimexpr\skip43+\count43pt - \dimen44=\dimexpr(\skip43)+(\count43pt) - \dimen44=\dimexpr\skip43*\count43 - \skip44=\glueexpr\skip43/\count43 - \skip44=\glueexpr\skip43*2/3 - \egroup - - % Test operator precedence - \bgroup - \def\1#1#2#3#4{#1#2#3#4=#2#3(#4)\else - \typeout{expression error (l.\number\inputlineno)}\fi} - \1\ifnum\numexpr{1+}{2*3} - \1\ifnum\numexpr{4-}{5*6} - \1\ifnum\numexpr{7+}{12/4} - \1\ifnum\numexpr{4-}{6/3} - \1\ifdim\dimexpr{1pt+}{2pt*3} - \1\ifdim\dimexpr{4pt-}{5pt*6} - \1\ifdim\dimexpr{7pt+}{12pt/4} - \1\ifdim\dimexpr{4pt-}{6pt/3} - \1\ifdim\glueexpr{7pt+}{12pt/4} - \egroup - - % Test glue reference count handling - \shipout\hbox{} - \bgroup - \skip43=\glueexpr1ptplus0ptminus0pt - \skip43=\glueexpr1pt-0pt+0pt - \skip43=\glueexpr(((\skip43))) - \egroup - \shipout\hbox{} -\endgroup - -% -% -- Check \mutoglue and \gluetomu -\typeout{Checking \string\mutoglue\space and \string\gluetomu:} -\begingroup - \mutoglue \gluetomu % <== can't use - \skip1=-\mutoglue-\gluetomu9pt \muskip1=-\gluetomu-\mutoglue9mu - \skip2=\gluetomu\muskip1 % <== two mu_error's (! Incompatible glue units) - \muskip2=\mutoglue\skip1 % <== two mu_error's (! Incompatible glue units) - \tracingassigns=1 - \skip1=\mutoglue1muplus-2muminus-3fil - \muskip1=\gluetomu1ptplus-2ptminus-3fil - \skip2=\mutoglue-4muplus5fillminus6filll - \muskip2=\gluetomu-4ptplus5fillminus6filll - \skip3=-\mutoglue\muskip1 - \muskip3=-\gluetomu\skip1 - \skip4=\mutoglue-\muskip2 - \muskip4=\gluetomu-\skip2 - -% -% -- Check (mu)glue identity - \typeout{Checking (mu)glue identity:} - \skipdef\132767\1=7ptplus0filminus0fill\muskipdef\232766\2=\gluetomu\1 - \tracingassigns=\1 - \1=--\mutoglue--\muexpr(--\gluetomu--\glueexpr(--\1)) - \2=--\gluetomu--\glueexpr(--\mutoglue--\muexpr(--\2)) - \tracingassigns=0 - -% -% -- Check \gluestretchorder, \glueshrinkorder, \gluestretch, and \glueshrink - \typeout{Checking \string\gluestretchorder, \string\glueshrinkorder, - \string\gluestretch, and \string\glueshrink:} - \gluestretchorder \gluestretch % <== can't use - \glueshrinkorder \glueshrink % <== can't use - \skip5=1ptminus0fil - \skip6=1ptplus0fillminus0filll - \def\2#1{\typeout{wrong glue #1 (l.\number\inputlineno)}} - \def\1#1#2pt#3#4pt#5 {% - \ifnum\gluestretchorder#5=#1 \else \2{stretch order}\fi - \ifdim\gluestretch#5=#2pt \else \2{stretch}\fi - \ifnum\glueshrinkorder#5=#3 \else \2{shrink order}\fi - \ifdim\glueshrink#5=#4pt \else \2{shrink}\fi} - \def\9{\relax} - \100pt10pt1ptminus0fil - \100pt10pt\mutoglue1muminus0fil - \100pt10pt\mutoglue\gluetomu1ptminus0fil - \100pt10pt\skip5 - \muskip5=\gluetomu\skip5 - \100pt10pt\mutoglue\muskip5 - \100pt10pt\glueexpr\mutoglue\muexpr\gluetomu\skip5\9\9 - \100pt00pt\glueexpr\skip5+0pt\9 - \120pt30pt1ptplus0fillminus0filll - \120pt30pt\mutoglue1muplus0fillminus0filll - \120pt30pt\mutoglue\gluetomu1ptplus0fillminus0filll - \120pt30pt\skip6 - \muskip6=\gluetomu\skip6 - \120pt30pt\mutoglue\muskip6 - \120pt30pt\mutoglue\muexpr\gluetomu\glueexpr\skip6\9\9 - \100pt00pt\glueexpr\skip6+0pt\9 - \10-2pt1-3pt\skip1 - \10-2pt1-3pt\mutoglue\muskip1 - \125pt36pt\skip2 - \125pt36pt\mutoglue\muskip2 -\endgroup - -% -% -- Check sparse arrays -\typeout{Checking sparse arrays:} -\begingroup - \def\2#1{#1\1=-1#1\1=32768#1\1=0#1\1=32767\typeout{\meaning\1=\the\1.}} - \2\countdef % Bad register code (-1) ...and (32768). - \2\dimendef % Bad register code (-1) ...and (32768). - \2\skipdef % Bad register code (-1) ...and (32768). - \2\muskipdef % Bad register code (-1) ...and (32768). - \2\toksdef % Bad register code (-1) ...and (32768). - \tracingrestores=1 - \count20=5 - \count2000=5 - \dimen21=5pt - \dimen2100=5pt - \skip22=5pt\relax \muskip2200=5mu\relax - \dimendef\8=256\relax \let\9=\8 \let\8=\relax \show\9 -\endgroup -\begingroup - \def\4#1#2#3#4{{\typeout{testing #1 registers ...}% - \5\2{#1}\5\3{#1def}% define, e.g., \count and \countdef - \newlinechar=`^^J \tracingrestores=1 {\tracingassigns=1 - \22000=#2} \22001=#3 \3\1=2002 \1=#4 - \typeout{\6\22000=\the\22000,^^J \6\22001=\the\22001,^^J - \6\22002=\the\22002,^^J \7\1=\the\1.}% - \expandafter\unless\expandafter\ifx\2\toks -% more tests for \count, \dimen, \skip, and \muskip - \advance\22000by#3 \advance\1by#3 \8 - \multiply\22000by10 \multiply\1by10 \8 - \divide\22000by5 \divide\1by5 \8 - \else -% more tests for \toks - \begingroup - \tracingassigns=1 - \toks20=#2 \toks21=#3 \toks2100=#4 - \1=\toks20 \1=\toks21 - \toks2200=\toks20 \toks2200=\toks21 - \1=\toks2000 \1=\toks2001 - \toks2200=\toks2000 \toks2200=\toks2001 - \toks30=\1 \toks30=\toks2000 \toks30=\toks2001 - \toks3000=\1 \toks3000=\toks2000 \toks3000=\toks2001 - \endgroup - \fi - \tracingassigns=1 \global\22002=#3 \1=#4 \global\1=#2 - }} - \def\5#1#2{\edef#1{\csname#2\endcsname}} - \def\6{\expandafter\string} - \def\7{\expandafter\meaning} - \def\8{\typeout{\6\22000=\the\22000,^^J \6\22002=\the\22002,^^J - \7\1=\the\1.}} - \4{count}{0}{5}{7} % test \count, \countdef - \4{dimen}{0pt}{2.5pt}{3.5pt} % test \dimen, \dimendef - \4{skip}{0pt}{2.5ptplus1fil}{3.5ptminus1fill} % test \skip, \skipdef - \4{muskip}{0mu}{2.5muplus1fil}{3.5muminus1fill} % test \muskip, \muskipdef - \4{toks}{{}}{{a b c}}{{d e f}} % test \toks and \toksdef -\endgroup -\begingroup - \typeout{testing box registers ...} - \def\2#1{#1\1=-1#1\1=32768#1\1=0#1\1=32767\typeout{\meaning\1=\the\1.}} - \2\mathchardef % Bad mathchar (-1) ...and (32768). - \setbox-1=\copy32768 % Bad register code (-1) ...and (32768). - \global\setbox32768=\copy-1 % Bad register code (32768) ...and (-1). - \wd32768=\ht-1 % Bad register code (32768) ...and (-1). - \showbox-1 % Bad register code (-1). - \def\2#1{\typeout{\string\box#1=% - \ifhbox#1 \ifvbox#1 \else\ifvoid#1 \else\string\hbox\fi\fi\fi - \ifvbox#1 \ifhbox#1 \else\ifvoid#1 \else\string\vbox\fi\fi\fi - \ifvoid#1 void\else - \ifdim\ht#1 =0pt \else,ht=\the\ht#1 \fi - \ifdim\dp#1 =0pt \else,dp=\the\dp#1 \fi - \ifdim\wd#1 =0pt \else,wd=\the\wd#1 \fi - \fi.}} - \def\1#1{\2{3210#1}} - \tracingrestores=1 - \setbox32101=\hbox to 3pt{% - \global\setbox32102=\vbox to 5pt{% - \setbox32103=\vtop to 7pt{% - \showgroups - }% - }% - } - \showbox32100 - \showbox32101 - \11\12\13 - \setbox32103=\copy32101 \11\13 - \setbox32104=\box32102 \12\14 - \ht32101=2pt \11 - \ht32102=4pt \12 - \dp32103=6pt \13 - \wd32104=8pt \14 - \setbox32105=\hbox{\vbox to1pt{}\hskip5pt} \15 - \setbox32106=\hbox{% - \unhcopy32105 \15% - \unhbox32105 \15% - \unhcopy32105 \unhbox32105 } \15 \16 - \setbox32105=\vbox{\hbox to1pt{}\vskip5pt} \15 - \setbox32106=\vbox{% - \unvcopy32105 \15% - \unvbox32105 \15% - \unvcopy32105 \unvbox32105 } \15 \16 - \setbox32105=\vbox{\vbox to10pt{}\penalty0\vbox to20pt{}} \15 - \setbox32106=\vsplit32105 to 10pt \16 \15 -\endgroup - -% -% -- Check \lastlinefit -\typeout{Checking \string\lastlinefit:} -\begingroup - \def\1{\setbox0=\vbox{\noindent\2\2\2\2\3\2}\showbox0 - \setbox0=\vbox{\unvbox0 \setbox0=\lastbox \showbox0 }} - \def\2{\hbox to30pt{}\hskip 5pt plus 20pt minus 4pt } - \def\3{} - \tracingparagraphs=1 \showboxdepth=1 - \hbadness=100 \pretolerance=9000 - \parfillskip=0pt plus 1fill \relax - \hsize=96pt - \lastlinefit=-1 \1 - \lastlinefit=500 \1 - \lastlinefit=1001 \1 - \hsize=98pt - \begingroup - \rightskip=0pt plus 1fill \relax - \lastlinefit=1000 \1 - \leftskip=0pt plus -1fill \relax - \lastlinefit=500 \1 - \endgroup - \lastlinefit=1000 \1 - \hsize=100pt - \lastlinefit=0 \1 - \lastlinefit=500 \1 - \lastlinefit=1000 \1 - \hsize=110pt - \begingroup - \let\3=\hfil - \lastlinefit=1000 \1 - \endgroup - \lastlinefit=500 \1 - \lastlinefit=1000 \1 - \hsize=120pt - \lastlinefit=0 \1 - \lastlinefit=500 \1 - \lastlinefit=1000 \1 -\endgroup - -% -% -- Check expansion of V 2 \protected macros -\typeout{Checking expansion of V 2 \string\protected\space macros:} -\begingroup - \protected\def\1{\omit} \def\2{\omit} \def\3{relax} - \setbox0=\vbox{\halign{&\typeout{# (l.\number\inputlineno)}\cr - \1& \1\cr - \2& \2\cr - \3& \3\cr}} -\endgroup - -% -% -- Check hyphenation and \savinghyphcodes -\typeout{Checking hyphenation and \string\savinghyphcodes:} -\begingroup - \def\2#1#2 {\language=#1 #2 } - \def\1#1 {\noindent\trip\ \20#1 \21#1 \22#1 \23#1 \24#1 \par} - \parfillskip=0pt \hbadness=0 \showboxdepth=0 - \hsize=16383.99999pt \pretolerance=-1 \tolerance=-1 - \setbox0=\vbox{ - \lccode`A=`a \lccode`B=`b - \language=0 \hyphenation{qq-App qqB-pp} - \language=1 \hyphenation{qq-App qqB-pp} - \language=2 \hyphenation{qq-A-pp qqB-pp} - \language=3 \hyphenation{qq-App qq-B-pp} - \1ppAqq \1upAqq \1ppBqq \1upBqq - \lccode`A=`r \lccode`B=`b - \1ppAqq \1upAqq \1ppBqq \1upBqq - \lccode`A=`a \lccode`B=`r - \1ppAqq \1upAqq \1ppBqq \1upBqq - } - \setbox0=\vbox{\language=3 \1qqapp \1qqbpp \1qqrpp } -\endgroup - -% -% -- Check \savingvdiscards, \pagediscards, and \splitdiscards -\typeout{Checking \string\savingvdiscards, \string\pagediscards, and - \string\splitdiscards:} -\begingroup - \setbox27=\vbox{\noindent$\splitdiscards\noindent$\pagediscards} - \showbox27 - \setbox 27 = \vbox { - \vbox to 20 pt {} - \prevdepth = -10000 pt - \openout 0 = abc - \penalty 0 - \write 1 {write 1} - \vskip 10 pt plus 1 pt minus 1 pt - \write 2 {write 2} - \penalty 0 - \closeout 3 - \kern 10 pt - \vbox to 20 pt {} - \vfil - } - \def\1 #1 #2 {% - \savingvdiscards = #1 - \setbox 28 = \copy 27 - { - \setbox 0 = \vbox { - \vsplit 28 to #2 pt - \prevdepth = -10000 pt - \splitdiscards - \box 28 - } - \showbox 0 - } - } - \1 -1 20 \1 0 30 \1 1 20 \1 2 30 - \output = {% - \setbox 0 = \vbox { \pagediscards } - \showbox 0 - \showbox 255 - \setbox 0 = \box 255 - \global \deadcycles = 0 - } - \def\1{{\setbox 0 = \vbox { \pagediscards \showlists }}} - \savingvdiscards = 0 \vfil \kern 20 pt \1 \penalty -1 \1 - \savingvdiscards = 1 \vfill \kern 2 pt \1 \penalty 10 \1 - \kern 5 pt \write 1 {} \penalty 0 - { \savingvdiscards = 0 - \kern 6 pt \write 2 {} \penalty 1 - } - \kern 7 pt \write 3 {} \hbox {} \penalty -10000 - \1 -\endgroup - -% -% -- Check \interlinepenalties, \clubpenalties, \widowpenalties, -% and \displaywidowpenalties -\typeout{Checking \string\interlinepenalties, \string\clubpenalties, - \string\widowpenalties, and \string\displaywidowpenalties:} -\begingroup - \begingroup - \def\2#1{% - \typeout{\string#1-1=\the#1-1}% - \typeout{\string#10=\the#10}% - \typeout{\string#15=\the#15}% - \typeout{\string#1\string#10=\the#1#10}} - \def\1{% - \2\interlinepenalties - \2\clubpenalties - \2\widowpenalties - \2\displaywidowpenalties} - \def\5#1#2{\number#1#2 - \ifnum#2<#10 \space\expandafter\5\expandafter#1\expandafter - {\number\numexpr#2+1\expandafter}\fi} - \def\4#1{\typeout{\string#1=\5#1{0}}} - \def\3{% - \4\interlinepenalties - \4\clubpenalties - \4\widowpenalties - \4\displaywidowpenalties} - \tracingassigns=1 \tracingrestores=1 - \3 \1 - \interlinepenalties=3 101 102 103 - \clubpenalties=1 1 \clubpenalties=4 201 202 203 204 - \widowpenalties=5 301 302 303 304 305 - \displaywidowpenalties=6 401 402 403 404 405 406 - \3 \1 - \setbox0=\vbox{} - \endgroup - \parfillskip=0pt \interlinepenalty=7 \clubpenalty=500 \widowpenalty=300 - \displaywidowpenalty=310 \rightskip=0ptplus1fil \hsize=20pt - \def\3#1 {\setbox0=\lastbox \unskip \count0=\lastpenalty \unpenalty - \ifnum\count0=#1 \else \typeout{Wrong penalty \number\count0 - \space should be #1 (l.\number\inputlineno)}\fi} - \def\2{\vrule height1ptwidth19pt\hskip5pt } - \def\1#1#2 #3 #4 #5 #6 #7 {\setbox0=\vbox{#1\noindent\2\2\2\2$$ - $$\2\2\2\2\par\3#7 \3#6 \3#5 \30 \30 \30 \30 \3#4 \3#3 \3#2 \30 }} - - \1{\interlinepenalties=8 8 7 6 5 4 3 2 1 }508 7 316 501 1 301 - \1{\clubpenalties=2 200 100 }207 107 417 207 107 407 - \1{\widowpenalties=2 2000 1000 \displaywidowpenalties=3 2200 1100 0 }% - 507 1107 2207 1507 1007 2007 -\endgroup - -% -% -- Check hyphenation of LR and RL segments -\typeout{Checking hyphenation of LR and RL segments:} -\begingroup - \setbox0=\vbox{\trip -% \language=5 - \lccode`M=`M \hyphenation{MM-MM} - \TeXXeTstate=1 - \hsize=0pt - \parfillskip=0pt - \noindent{} MMMM \beginL MMMM MMMM MMMM\endL{} \beginR MMMM\endR \par - } -\endgroup - -% -\showboxbreadth=10\showboxdepth=10 -\tracingonline=1\tracingoutput=1 -\end -\error{e-VirTeX: can't happen in e-trip test!} -%% End of file `etrip.tex'. |