Test directly for \protected
[latex2e.git] / latex2e-20150101 / support / test2e.tex
blobdd38b0b29874c1c715b2c7f2b9bc362789c019ea
1 % \iffalse meta-comment
3 % Copyright (C) 1992-1994 by David Carlisle, Frank Mittelbach.
4 % All rights reserved.
5 %
6 % This file is part of the validate package.
7 %
8 % IMPORTANT NOTICE:
9 %
10 % You are not allowed to change this file. In case of error
11 % write to the email address mentioned in the file readme.val.
13 % \fi
14 % test2e.tex
15 %%%%%%%%%%%
17 % David Carlisle
18 % Version 0.0, 28 May 1992
19 % Version 0.1, 18 Jun 1992 FMi small updates
20 % Version 1.0a, 28 Jun 1992 FMi small updates for distribution
21 % Version 1.0b, 1993/12/08 DPC update for LaTeX2e
22 % Version 1.0e, add config file.
23 % Version 1.0f, drop \errorstopmode from \loggingoutput
25 % \def\fileversion{v1.0e}
26 % \def\filedate{1994/05/19}
28 % This file should not be used as a package or class file,
29 % it should be \input.
31 % The scope of this \makeatletter will then be the rest of the
32 % document. Put TeX into scroll mode, and stop it showing the
33 % implementation details of macros in error messages.
35 \makeatletter
36 \scrollmode
37 \errorcontextlines=-1
39 % Use the same \showbox settings as 2.09, unless they are changed in
40 % the test file. (2e sets these to -1)
41 \showboxbreadth=5
42 \showboxdepth=3
45 % drop \errorstopmode from \logginoutput so that testing doesn't stop
46 % for \showoutput
47 \gdef\loggingoutput{\tracingoutput\@ne
48 \showboxbreadth\maxdimen\showboxdepth\maxdimen}
51 % Start the test, after the optional \documentclass (or \documentstyle)
52 % \begin{document} commands with \START. All lines in the .log file
53 % before this will be ignored. It also prints a docstrip-style
54 % character table in the .tlg file so the .tlg file can easily be
55 % checked for email translations.
57 \def\START{\typeout{START-TEST-LOG^^J^^J%
58 This is a generated file for the LaTeX2e validation system.%
59 ^^J^^JDon't change this file in any respect.%
60 ^^J^^J\CTable^^J}}
62 \begingroup
63 \catcode`\^^\=0
64 \catcode`\^^A=\catcode`\%
65 ^^\catcode`^^\ =11
66 ^^\catcode`^^\%=11
67 ^^\catcode`^^\#=11
68 ^^\catcode`^^\~=11
69 ^^\endlinechar=`^^\^^J
70 ^^\catcode`^^\\=11^^A
71 ^^\gdef^^\CTable{
72 %% \CharacterTable
73 %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
74 %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
75 %% Digits \0\1\2\3\4\5\6\7\8\9
76 %% Exclamation \! Double quote \" Hash (number) \#
77 %% Dollar \$ Percent \% Ampersand \&
78 %% Acute accent \' Left paren \( Right paren \)
79 %% Asterisk \* Plus \+ Comma \,
80 %% Minus \- Point \. Solidus \/
81 %% Colon \: Semicolon \; Less than \<
82 %% Equals \= Greater than \> Question mark \?
83 %% Commercial at \@ Left bracket \[ Backslash \\
84 %% Right bracket \] Circumflex \^ Underscore \_
85 %% Grave accent \` Left brace \{ Vertical bar \|
86 %% Right brace \} Tilde \~}
88 }^^A
89 ^^\endgroup{}%
91 % The test should end with
92 % \END or \end{document}
94 \let\@@@end\@@end
95 %\let\@ED=\enddocument
96 \def\END{\typeout{END-TEST-LOG}\@@@end}
97 \let\@@end\END
100 % After the \START should come declarations of the format and style
101 % options being used.
103 \def\FORMAT#1{\typeout{Format: #1}%
104 \def\@tempa{#1}\ifx\@tempa\@EJ\else
105 \OMIT\@warning{Declared format #1,^^JActual format \@EJ}\TIMO\fi}
107 % The old version got this information from everyjob,
108 % but that does not work with LaTeX2e as \everyjob is cleared.
109 \edef\@EJ{\fmtname <\fmtversion>}
111 % Some author info:
112 \def\AUTHOR#1{\typeout{Author: #1}}
113 \def\ADDRESS#1{\typeout{Address: #1}}
115 % Not all packages declare themselves to the log file, and we can not
116 % rely on TeX`s output as it includes full path names, and does not
117 % include version numbers etc. So for each package included give a
118 % declaration like: \PACKAGES{array v2.0d}
120 \def\STYLE#1{\typeout{Main Style: #1}}%
121 \def\STYLEOPTIONS#1{\typeout{Style Options: #1}}
124 % If The class or package is loaded with options, you may
125 % specify the options in the \CLASS (\PACKAGE) declaration. eg:
127 % \CLASS[german,a4page]{article v2.0 1994/01/02}
128 % \PACKAGE{ifthen v2.2 1993/11/12}
129 % \PACKAGE[dvips]{graphics v 3.8 1994/02/02}
131 \def\CLASS{\@ifnextchar[\OPTCLASS\XCLASS}
132 \def\OPTCLASS[#1]#2{%
133 \typeout{Main Class: #2^^J\@spaces Options: #1}}
134 \def\XCLASS#1{%
135 \typeout{Main Class: #1}}
137 \def\PACKAGE{\@ifnextchar[\OPTPACKAGE\XPACKAGE}
138 \def\OPTPACKAGE[#1]#2{%
139 \typeout{Package: #2^^J\@spaces Options: #1}}
140 \def\XPACKAGE#1{%
141 \typeout{Package: #1}}
145 % LaTeX2e always uses NFSS2 so new test files need not use
146 % \FONTSELECTION but it is retained for compatibility for test files
147 % written for 209/NFSS1.
149 \def\FONTSELECTION#1{%
150 \OMIT\@@warning{\noexpand\FONTSELECTION obsolete.^^J%
151 LaTeX2e always uses NFSS2}\TIMO
152 \typeout{Font Selection: #1}}
156 % Surround commands which produce irrelevant lines in the .log file by
157 % \OMIT
158 % \TIMO
160 \def\OMIT{\typeout{OMIT}}
161 \def\TIMO{\typeout{TIMO}}
163 % After the above declarations, and before the main tests, you may
164 % optionally `declare' all the commands in the `module' that you are
165 % about to test. These commands will be registered as defined,
166 % undefined or relaxed (ie \let to \relax). You may wish to declare
167 % commands not currently implemented, so that if they are added at a
168 % later stage, the test will fail, reminding someone to document the
169 % fact that the user interface has changed. So if you are testing
170 % array and tabular environments, you may wish do declare
171 % \extrarowheight. This is undefined in the curent latex, but would
172 % become defined if Mittelbach's array.sty was incorporated into
173 % latex.tex.
175 \def\declare@command#1{%
176 \ifx#1\@undefined\typeout{Undefined \string#1}\else
177 \ifx#1\relax\typeout{Relaxed \space\space\string#1}\else
178 \typeout{Defined \space\space\string#1}\fi\fi}
181 % To allow testing of possible changes, we allow extra code to be read
182 % in before the test starts. The necessary code should be placed in a
183 % file test2e.cfg.
185 \OMIT
186 \InputIfFileExists{test2e.cfg}
187 {\typeout{^^J***^^Jtest2e.cfg in operation^^J***^^J}}{}
188 \TIMO
190 \endinput