Move a tag
[latex2e.git] / latex2e-20160201 / base / lterror.dtx
blobeb83fc28131345777672f5ceb7c57d338c6594b5
1 % \iffalse meta-comment
3 % Copyright 1993-2016
4 % The LaTeX3 Project and any individual authors listed elsewhere
5 % in this file.
7 % This file is part of the LaTeX base system.
8 % -------------------------------------------
10 % It may be distributed and/or modified under the
11 % conditions of the LaTeX Project Public License, either version 1.3c
12 % of this license or (at your option) any later version.
13 % The latest version of this license is in
14 %    http://www.latex-project.org/lppl.txt
15 % and version 1.3c or later is part of all distributions of LaTeX
16 % version 2005/12/01 or later.
18 % This file has the LPPL maintenance status "maintained".
20 % The list of all files belonging to the LaTeX base distribution is
21 % given in the file `manifest.txt'. See also `legal.txt' for additional
22 % information.
24 % The list of derived (unpacked) files belonging to the distribution
25 % and covered by LPPL is defined by the unpacking scripts (with
26 % extension .ins) which are part of the distribution.
28 % \fi
30 % \iffalse
31 %%% From File: lterror.dtx
32 %<*driver>
33 % \fi
34 \ProvidesFile{lterror.dtx}
35              [2015/02/21 v1.2o LaTeX Kernel (errors)]
36 % \iffalse
37 \documentclass{ltxdoc}
38 \GetFileInfo{lterror.dtx}
39 \title{\filename}
40 \date{\filedate}
41  \author{%
42   Johannes Braams\and
43   David Carlisle\and
44   Alan Jeffrey\and
45   Leslie Lamport\and
46   Frank Mittelbach\and
47   Chris Rowley\and
48   Rainer Sch\"opf}
49 \begin{document}
50  \MaintainedByLaTeXTeam{latex}
51  \maketitle
52  \DocInput{\filename}
53 \end{document}
54 %</driver>
55 % \fi
57 % \CheckSum{375}
59 % \changes{v1.1a}{1994/05/16}{(ASAJ) Split from ltinit.dtx.}
60 % \changes{v1.1a}{1994/05/16}{(ASAJ) Completely new error interface.}
61 % \changes{v1.1b}{1994/05/17}{(ASAJ) Moved error stuff from
62 %    ltdefns.dtx.}
63 % \changes{v1.1c}{1994/05/20}{(ASAJ) Added \cs{@latex@info@no@line}.}
64 % \changes{v1.1c}{1994/05/20}{(ASAJ) Added missing full stops.}
65 % \changes{v1.1c}{1994/05/20}{(ASAJ) Fixed a bug with
66 %    \cs{@inmatherr}.}
67 % \changes{v1.1d}{1994/05/21}{(ASAJ) Made the error commands robust.}
68 % \changes{v1.1e}{1994/05/22}{(ASAJ) Replaced bgroup by begingroup in
69 %    error messages, to stop extra mathords creeping into math mode.}
70 % \changes{v1.2a}{1994/05/22}{(ASAJ) Replaced \cs{@generic@message} and
71 %    \cs{@generic@error} by \cs{GenericError}, \cs{GenericWarning} and
72 %    \cs{GenericInfo}.}
73 % \changes{v1.2a}{1994/05/22}{(ASAJ) Made \cs{GenericError},
74 %    \cs{GenericWarning} and \cs{GenericInfo} robust.}
75 % \changes{v1.2a}{1994/05/22}{(ASAJ) Replaced \cmd\\ and tilde by
76 %    \cs{MessageBreak} and \cs{space}.}
77 % \changes{v1.2a}{1994/05/22}{(ASAJ) Replaces \cs{string} by
78 %    \cs{protect} in some messages.}
79 % \changes{v1.2f}{1994/05/24}{(DPC) wrap long lines}
80 % \changes{v1.2h}{1994/11/17}
81 %         {\cs{@tempa} to \cs{reserved@a}}
82 % \changes{v1.2i}{1995/09/01}
83 %         {Add autoload support}
84 % \changes{v1.2j}{1995/10/09}
85 %         {Modify autoload support}
86 % \changes{v1.2o}{2015/02/21}
87 %         {Removed autoload support}
89 % \section{Error handling}
91 % This section defines \LaTeX's error commands.
93 % \StopEventually{}
96 %    \begin{macrocode}
97 %<*2ekernel>
98 %    \end{macrocode}
100 % The `2ekernel' code ensures that a |\usepackage{autoerr}| is
101 % essentially ignored if a `full' format is being used that has
102 % the error messages already in the format.
104 % These days we don't support autoloading approach any longer, but
105 %   this part bit is kept in case it is used in old documents. 
106 %    \begin{macrocode}
107 \expandafter\let\csname ver@autoerr.sty\endcsname\fmtversion
108 %    \end{macrocode}
111 % \subsection{General commands}
113 % \begin{macro}{\MessageBreak}
114 %    This command prints a new-line inside a message, followed by a
115 %    continuation line begun with |\@msg@continuation|.  Normally it is
116 %    defined to be |\relax|, but inside messages, it is let to
117 %    |\@message@break|.
118 %    \begin{macrocode}
119 \let\MessageBreak\relax
120 %    \end{macrocode}
121 % \end{macro}
123 % \changes{v1.2g}{1994/11/04}{Added \cs{set@display@protect} to
124 %    \cs{Generic*} commands.  ASAJ.}
126 % \begin{macro}{\GenericInfo}
127 %    This takes two arguments: a continuation and a message, and sends
128 %    the result to the log file.
129 %    \begin{macrocode}
130 \DeclareRobustCommand{\GenericInfo}[2]{%
131    \begingroup
132       \def\MessageBreak{^^J#1}%
133       \set@display@protect
134       \immediate\write\m@ne{#2\on@line.}%
135    \endgroup
137 %    \end{macrocode}
138 % \end{macro}
140 % \begin{macro}{\GenericWarning}
141 %    This takes two arguments: a continuation and a message, and sends
142 %    the result to the screen.
143 %    \begin{macrocode}
144 \DeclareRobustCommand{\GenericWarning}[2]{%
145    \begingroup
146       \def\MessageBreak{^^J#1}%
147       \set@display@protect
148       \immediate\write\@unused{^^J#2\on@line.^^J}%
149    \endgroup
151 %    \end{macrocode}
152 % \end{macro}
154 % \begin{macro}{\GenericError}
155 % This macro takes four arguments: a continuation,
156 % an error message, where to go for further information, and the help
157 % information.  It displays the error message, and sets the error help
158 % (the result of typing |h| to the prompt), and does a horrible hack
159 % to turn the last context line (which by default is the only context
160 % line) into just three dots.  This could be made more efficient.
161 % \changes{v1.2d}{1994/05/22}
162 %     {(DPC) New version using long command name.}
163 % \changes{v1.2d}{1994/05/22}
164 %     {(DPC) Alternative version added for old TeXs}
165 %    \begin{macrocode}
166 \bgroup
167 \lccode`\@=`\ %
168 \lccode`\~=`\ %
169 \lccode`\}=`\ %
170 \lccode`\{=`\ %
171 \lccode`\T=`\T%
172 \lccode`\H=`\H%
173 \catcode`\ =11\relax%
174 \lowercase{%
175 \egroup%
176 %    \end{macrocode}
178 % Unfortunately \TeX\ versions older than 3.141 have a bug which means
179 % that |^^J| does not force a linebreak in |\message| and |\errmessage|
180 % commands. So for these old \TeX's we use |\typeout| to produce the
181 % message, and then have an empty |\errmessage| command. This causes an
182 % extra line of the form
183 %\begin{verbatim}
184 %! .
185 %\end{verbatim}
186 % To appear on the terminal, but if you do not like it, you can always
187 % upgrade your \TeX! In order for your format to use this version, you
188 % must define the macro |\@TeXversion| to be the version number, e.g.,
189 % 3.14 of the underlying \TeX. See the comments in
190 % \texttt{ltdircheck.dtx}.
191 %    \begin{macrocode}
192 \dimen@\ifx\@TeXversion\@undefined4\else\@TeXversion\fi\p@%
193 \ifdim\dimen@>3.14\p@%
194 %    \end{macrocode}
196 % First the `standard case'.
197 %    \begin{macrocode}
198 \DeclareRobustCommand{\GenericError}[4]{%
199 \begingroup%
200 \immediate\write\@unused{}%
201 \def\MessageBreak{^^J}%
202 \set@display@protect%
203 \edef%
204 %    %<-------------------do not delete this space!------------------->%
205 \@err@                                                                 %
206 {{#4}}%
207 \errhelp
208 %    %<-------------------do not delete this space!------------------->%
209 \@err@                                                                 %
210 \let
211 %    %<-------------------do not delete this space!------------------->%
212 \@err@                                                                 %
213 \@empty
214 \def\MessageBreak{^^J#1}%
215 \def~{\errmessage{%
216 #2.^^J^^J%
217 #3^^J%
218 Type  H <return>  for immediate help%
219 %    %<-------------------do not delete this space!------------------->%
220 \@err@                                                                 %
223 \endgroup}%
224 %    \end{macrocode}
226 %    \begin{macrocode}
227 \else%
228 %    \end{macrocode}
230 % Secondly the version for old \TeX's.
231 %    \begin{macrocode}
232 \DeclareRobustCommand{\GenericError}[4]{%
233 \begingroup%
234 \immediate\write\@unused{}%
235 \def\MessageBreak{^^J}%
236 \set@display@protect%
237 \edef%
238 %    %<-------------------do not delete this space!------------------->%
239 \@err@                                                                 %
240 {{#4}}%
241 \errhelp
242 %    %<-------------------do not delete this space!------------------->%
243 \@err@                                                                 %
244 \let
245 %    %<-------------------do not delete this space!------------------->%
246 \@err@                                                                 %
247 \errmessage
248 \def\MessageBreak{^^J#1}%
249 \def~{\typeout{! %
250 #2.^^J^^J%
251 #3^^J%
252 Type  H <return>  for immediate help.}%
253 %    %<-------------------do not delete this space!------------------->%
254 \@err@                                                                 %
255 {}}%
257 \endgroup}%
258 %    \end{macrocode}
260 %    \begin{macrocode}
261 \fi}%
262 %    \end{macrocode}
263 % \end{macro}
265 % \begin{macro}{\PackageError}
266 % \begin{macro}{\PackageWarning}
267 % \begin{macro}{\PackageWarningNoLine}
268 % \begin{macro}{\PackageInfo}
269 % \begin{macro}{\ClassError}
270 % \begin{macro}{\ClassWarning}
271 % \begin{macro}{\ClassWarningNoLine}
272 % \begin{macro}{\ClassInfo}
273 %  These commands are intended for use by package and class writers, to
274 %  give information to authors.  The syntax is:
275 %    \begin{quote}
276 %       |\PackageError{|\meta{package}|}{|^^A
277 %          \meta{error}|}{|\meta{help}|}| \\
278 %       |\PackageWarning{|\meta{package}|}{|\meta{warning}|}| \\
279 %       |\PackageWarningNoLine{|\meta{package}|}{|\meta{warning}|}| \\
280 %       |\PackageInfo{|\meta{package}|}{|\meta{info}|}|
281 %    \end{quote}
282 %    and similarly for classes.  The |Error| commands print the
283 %    \meta{error} message, and present the interactive prompt; if the
284 %    author types |h|, then the \meta{help} information is displayed.
285 %    The |Warning| commands produce a warning but do not present the
286 %    interactive prompt.  The |WarningNoLine| commands do the same,
287 %    but don't print the input line number.  The |Info| commands write
288 %    the message to the
289 %    |log| file.  Within the messages, the command
290 %    |\MessageBreak| can be used to
291 %    break a line, |\protect| can be used to protect command names,
292 %    and |\space| is a space, for example:
293 % \begin{verbatim}
294 %    \newcommand{\foo}{FOO}
295 %    \PackageWarning{ethel}{%
296 %       Your hovercraft is full of eels,\MessageBreak
297 %       and \protect\foo\space is \foo}
298 % \end{verbatim}
299 %    produces:
300 % \begin{verbatim}
301 %    Package ethel warning: Your hovercraft is full of eels,
302 %    (ethel)                and \foo is FOO on input line 54.
303 % \end{verbatim}
305 %    \begin{macrocode}
306 \gdef\PackageError#1#2#3{%
307    \GenericError{%
308       (#1)\@spaces\@spaces\@spaces\@spaces
309    }{%
310       Package #1 Error: #2%
311    }{%
312       See the #1 package documentation for explanation.%
313    }{#3}%
315 %    \end{macrocode}
317 %    \begin{macrocode}
318 \def\PackageWarning#1#2{%
319    \GenericWarning{%
320       (#1)\@spaces\@spaces\@spaces\@spaces
321    }{%
322       Package #1 Warning: #2%
323    }%
325 \def\PackageWarningNoLine#1#2{%
326    \PackageWarning{#1}{#2\@gobble}%
328 \def\PackageInfo#1#2{%
329    \GenericInfo{%
330       (#1) \@spaces\@spaces\@spaces
331    }{%
332       Package #1 Info: #2%
333    }%
335 %    \end{macrocode}
337 %    \begin{macrocode}
338 \gdef\ClassError#1#2#3{%
339    \GenericError{%
340       (#1) \space\@spaces\@spaces\@spaces
341    }{%
342       Class #1 Error: #2%
343    }{%
344       See the #1 class documentation for explanation.%
345    }{#3}%
347 %    \end{macrocode}
349 %    \begin{macrocode}
350 \def\ClassWarning#1#2{%
351    \GenericWarning{%
352       (#1) \space\@spaces\@spaces\@spaces
353    }{%
354       Class #1 Warning: #2%
355    }%
357 \def\ClassWarningNoLine#1#2{%
358    \ClassWarning{#1}{#2\@gobble}%
360 \def\ClassInfo#1#2{%
361    \GenericInfo{%
362       (#1) \space\space\@spaces\@spaces
363    }{%
364       Class #1 Info: #2%
365    }%
367 %    \end{macrocode}
368 % \end{macro}
369 % \end{macro}
370 % \end{macro}
371 % \end{macro}
372 % \end{macro}
373 % \end{macro}
374 % \end{macro}
375 % \end{macro}
377 % \begin{macro}{\@latex@error}
378 % \begin{macro}{\@latex@warning}
379 % \begin{macro}{\@latex@warning@no@line}
380 % \begin{macro}{\@latex@info}
381 % \begin{macro}{\@latex@info@no@line}
382 % \changes{v1.2e}{1994/05/24}{Macro added}
383 %    Errors and other info, for use in the \LaTeX{} core.
384 %    \begin{macrocode}
385 \gdef\@latex@error#1#2{%
386    \GenericError{%
387       \space\space\space\@spaces\@spaces\@spaces
388    }{%
389       LaTeX Error: #1%
390    }{%
391       See the LaTeX manual or LaTeX Companion for explanation.%
392    }{#2}%
394 %    \end{macrocode}
396 %    \begin{macrocode}
397 \def\@latex@warning#1{%
398    \GenericWarning{%
399       \space\space\space\@spaces\@spaces\@spaces
400    }{%
401       LaTeX Warning: #1%
402    }%
404 %    \end{macrocode}
406 %    \begin{macrocode}
407 \def\@latex@warning@no@line#1{%
408    \@latex@warning{#1\@gobble}}
409 %    \end{macrocode}
411 %    \begin{macrocode}
412 \def\@latex@info#1{%
413    \GenericInfo{%
414       \@spaces\@spaces\@spaces
415    }{%
416       LaTeX Info: #1%
417    }%
419 %    \end{macrocode}
421 %    \begin{macrocode}
422 \def\@latex@info@no@line#1{%
423   \@latex@info{#1\@gobble}}
424 %    \end{macrocode}
426 %    |\@font@warning| and |\@font@info| are defined later since they
427 %    have to be redefined by the \texttt{tracefnt} package.
428 %\begin{verbatim}
429 %\def\@font@warning#1{%
430 %   \GenericWarning{%
431 %      {(font)\@spaces\@spaces}%
432 %      {Font Warning: #1}%
433 % }
434 %\def\@font@info#1{%
435 %   \GenericInfo{%
436 %      (font)\space\@spaces
437 %   }{%
438 %      Font Info: #1%
439 %   }%
440 % }
441 %\end{verbatim}
442 % \end{macro}
443 % \end{macro}
444 % \end{macro}
445 % \end{macro}
446 % \end{macro}
448 % \begin{macro}{\c@errorcontextlines}
449 % \changes{LaTeX2e}{1993/11/22}{Macro added}
450 %  |\errorcontextlines| as a \LaTeX\ counter, so that it may be be
451 %  manipulated with |\setcounter| (once it is defined :-)
452 %    \begin{macrocode}
453 \let\c@errorcontextlines\errorcontextlines
454 \c@errorcontextlines=-1
455 %    \end{macrocode}
456 % \end{macro}
458 % \changes{v1.0d}{1994/03/28}
459 %     {Remove test for \cs{inputlineno} undefined.}
460 % \begin{macro}{\on@line}
461 %    The message ` on input line~$n$', if possible.
462 %    \begin{macrocode}
463 \ifnum\inputlineno=\m@ne
464   \let\on@line\@empty
465 \else
466   \def\on@line{ on input line \the\inputlineno}
468 %    \end{macrocode}
469 % \end{macro}
471 %  \begin{macro}{\@warning}
472 %  \begin{macro}{\@@warning}
473 %  \begin{macro}{\@latexerr}
474 %     Older \LaTeX{} messages.  For the moment, these
475 %     |\let| to the new message commands.  They may be changed later,
476 %     once only obsolete packages and classes contain them.
477 % \changes{v1.0b}{1993/12/03}{Set \cs{c@errorcontextlines} to -1}
478 % \changes{v1.0e}{1993/04/09}{Mention The Companion}
479 % \changes{v1.0f}{1993/04/11}{Remove setting of errorcontextlines}
480 % \changes{v1.0k}{1994/05/01}{(CAR) Added draft \cs{@latexinfo}.}
481 % \changes{v1.0n}{1994/05/10}{(ASAJ) Added extra blank lines to
482 %           \cs{@latexerr}.}
483 % \changes{v1.0o}{1994/05/11}
484 %     {(ASAJ) Removed one of the extra blank lines to \cs{@latexerr}.}
485 %    \begin{macrocode}
486 \let\@warning\@latex@warning
487 \let\@@warning\@latex@warning@no@line
488 \global\let\@latexerr\@latex@error
489 %    \end{macrocode}
490 %  \end{macro}
491 %  \end{macro}
492 %  \end{macro}
494 % \begin{macro}{\@spaces}
495 %    Four spaces.
496 %    \begin{macrocode}
497 \def\@spaces{\space\space\space\space}
498 %    \end{macrocode}
499 % \end{macro}
501 % \subsection{Specific errors}
503 % \begin{macro}{\@eha}
504 % \begin{macro}{\@ehb}
505 % \begin{macro}{\@ehc}
506 % \begin{macro}{\@ehd}
507 %    The more common error help messages.
508 %    \begin{macrocode}
509 \gdef\@eha{%
510   Your command was ignored.\MessageBreak
511   Type \space I <command> <return> \space to replace it %
512   with another command,\MessageBreak
513   or \space <return> \space to continue without it.}
514 \gdef\@ehb{%
515   You've lost some text. \space \@ehc}
516 \gdef\@ehc{%
517   Try typing \space <return> %
518   \space to proceed.\MessageBreak
519   If that doesn't work, type \space X <return> \space to quit.}
520 \gdef\@ehd{%
521   You're in trouble here.  \space\@ehc}
522 %    \end{macrocode}
523 % \end{macro}
524 % \end{macro}
525 % \end{macro}
526 % \end{macro}
529 % \begin{macro}{\@notdefinable}
530 %    Error message generated in |\@ifdefinable| from calls
531 %    to one of the commands |\newcommand|, |\newlength| or |\newtheorem|
532 %    specifying an already-defined command name or one that begins
533 %    |\end...|.
534 % \changes{v1.2n}{1998/05/28}{Added message re `end...' pr/1555}
535 %    \begin{macrocode}
536 \gdef\@notdefinable{%
537  \@latex@error{%
538    Command \@backslashchar\reserved@a\space
539    already defined.\MessageBreak
540    Or name \@backslashchar\@qend... illegal,
541    see p.192 of the manual}\@eha}
542 %    \end{macrocode}
543 % \end{macro}
545 % \begin{macro}{\@nolnerr}
546 % Generated by |\newline| and |\\| when called in vertical mode.
547 %    \begin{macrocode}
548 \gdef\@nolnerr{%
549   \@latex@error{There's no line here to end}\@eha}
550 %    \end{macrocode}
551 % \end{macro}
553 % \begin{macro}{\@nocounterr}
554 % \changes{v1.0h}{1994/04/17}{New name for error message,
555 %       old error message (without arg) kept}
556 %  Generated by |\setcounter|, |\addtocounter| or
557 %  |\newcounter| if applied to an undefined counter \meta{cnt}.
559 % \begin{macro}{\@nocnterr}
560 % Obsolete error message generated in \LaTeX2.09 by
561 % |\setcounter|, |\addtocounter| or |\newcounter|
562 % for undefined counter.
563 % DO NOT use for \LaTeXe\ it MIGHT vanish!
564 % Use |\@nocounterr|\marg{cnt} instead.
565 %    \begin{macrocode}
566 \gdef\@nocounterr#1{%
567   \@latex@error{No counter '#1' defined}\@eha}
568 \gdef\@nocnterr{\@nocounterr?}
569 %    \end{macrocode}
570 % \end{macro}
571 % \end{macro}
573 % \begin{macro}{\@ctrerr}
574 % Called when trying to print the value of a counter
575 % numbered by letters that's greater than 26.
576 %    \begin{macrocode}
577 \gdef\@ctrerr{%
578   \@latex@error{Counter too large}\@ehb}
579 %    \end{macrocode}
580 % \end{macro}
582 % \begin{macro}{\@nodocument}
583 % Error produced if paragraphs are typeset in the preamble.
584 % \changes{v1.2m}{1996/11/04}{Always define \cs{@nodocument}
585 %           in kernel, so that it can be cleared by \cs{document}.}
586 %    \begin{macrocode}
587 \gdef\@nodocument{%
588   \@latex@error{Missing \protect\begin{document}}\@ehd}
589 %    \end{macrocode}
590 % \end{macro}
592 % \begin{macro}{\@badend}
593 % Called by |\end| that doesn't match its |\begin|.
594 % RmS 1992/08/24: added code to |\@badend| to display position of
595 %               non-matching |\begin|.
596 % FMi 1993/01/14: missing space added.
597 %    \begin{macrocode}
598 \gdef\@badend#1{%
599   \@latex@error{\protect\begin{\@currenvir}\@currenvline
600                      \space ended by \protect\end{#1}}\@eha}
601 %    \end{macrocode}
602 % \end{macro}
604 % \begin{macro}{\@badmath}
605 % Called by |\[|, |\]|, |\(| or |\)| when used in wrong mode.
606 %    \begin{macrocode}
607 \gdef\@badmath{%
608   \@latex@error{Bad math environment delimiter}\@eha}
609 %    \end{macrocode}
610 % \end{macro}
612 % \begin{macro}{\@toodeep}
613 % Called by a list environment nested more than six levels
614 % deep, or an enumerate or itemize nested more than four levels.
615 %    \begin{macrocode}
616 \gdef\@toodeep{%
617   \@latex@error{Too deeply nested}\@ehd}
618 %    \end{macrocode}
619 % \end{macro}
621 % \begin{macro}{\@badpoptabs}
622 % Called by |\endtabbing| when not enough |\poptabs| have
623 % occurred, or by |\poptabs| when too many have occurred.
624 %    \begin{macrocode}
625 \gdef\@badpoptabs{%
626   \@latex@error{\protect\pushtabs\space and \protect\poptabs
627       \space don't match}\@ehd}
628 %    \end{macrocode}
629 % \end{macro}
631 % \begin{macro}{\@badtab}
632 % Called by |\>|, |\+| , |\-| or |\<| when stepping to an undefined tab.
633 %    \begin{macrocode}
634 \gdef\@badtab{%
635  \@latex@error{Undefined tab position}\@ehd}
636 %    \end{macrocode}
637 % \end{macro}
639 % \begin{macro}{\@preamerr}
640 %    This error is special: it appears in places where we normally have
641 %    to |\protect| expansions. However, to prevent a protection of
642 %    the error message itself (which would result in the message
643 %    getting printed not issued on the terminal) we need to locally
644 %    reset |\protect| to |\relax|.
645 %    \begin{macrocode}
646 \gdef\@preamerr#1{%
647   \begingroup
648     \let\protect\relax
649     \@latex@error{\ifcase #1 Illegal character\or
650      Missing @-exp\or Missing p-arg\fi\space
651      in array arg}\@ehd
652   \endgroup}
653 %    \end{macrocode}
654 % \end{macro}
656 % \begin{macro}{\@badlinearg}
657 % Occurs in |\line| and |\vector| command when a bad slope
658 % argument is encountered.
659 %    \begin{macrocode}
660 \gdef\@badlinearg{%
661   \@latex@error{%
662        Bad \protect\line\space or \protect\vector
663        \space argument}\@ehb}
664 %    \end{macrocode}
665 % \end{macro}
667 % \begin{macro}{\@parmoderr}
668 % Occurs in a float environment or a |\marginpar| when
669 % encountered in inner vertical mode.
670 %    \begin{macrocode}
671 \gdef\@parmoderr{%
672   \@latex@error{Not in outer par mode}\@ehb}
673 %    \end{macrocode}
674 % \end{macro}
676 % \begin{macro}{\@fltovf}
677 % Occurs in float environment or |\marginpar| when there
678 % are no more free boxes for storing floats.
679 %    \begin{macrocode}
680 \gdef\@fltovf{%
681   \@latex@error{Too many unprocessed floats}\@ehb}
682 %    \end{macrocode}
683 % \end{macro}
685 % \begin{macro}{\@latexbug}
686 % Occurs in output routine.  This is bad news.
687 %    \begin{macrocode}
688 \gdef\@latexbug{%
689   \@latex@error{This may be a LaTeX bug}{Call for help}}
690 %    \end{macrocode}
691 % \end{macro}
693 % \begin{macro}{\@badcrerr}
694 %    This error was removed and replaced by |\@nolnerr|.
695 % \changes{v1.0m}{1994/05/04}{Error message removed}
696 %    \begin{macrocode}
697 %\def\@badcrerr {\@latex@error{Bad use of \protect\\}\@ehc}
698 %    \end{macrocode}
699 % \end{macro}
701 % \begin{macro}{\@noitemerr}
702 % |\addvspace| or |\addpenalty| was called when not in
703 %  vmode. Probably caused by a missing |\item|.
704 %    \begin{macrocode}
705 \gdef\@noitemerr{%
706   \@latex@error{Something's wrong--perhaps a missing %
707       \protect\item}\@ehc}
708 %    \end{macrocode}
709 % \end{macro}
711 % \begin{macro}{\@notprerr}
712 % A command that can be used only in the preamble
713 % appears after the command |\begin{document}|.
714 %    \begin{macrocode}
715 \gdef\@notprerr{%
716   \@latex@error{Can be used only in preamble}\@eha}
717 %    \end{macrocode}
718 % \end{macro}
720 %  \begin{macro}{\@inmatherr}
721 % \changes{v1.0j}{1994/04/28}{Macro added}
722 % \changes{v1.1c}{1994/04/28}{Replaced \cs{noexpand} with \cs{protect}.}
723 %    Issued by commands that don't work correctly within math (like
724 %    |\item|). There is no real error recovery happening, e.g., the
725 %    user might get additional errors afterwards.
726 %    \begin{macrocode}
727 \gdef\@inmatherr#1{%
728    \relax
729    \ifmmode
730     \@latex@error{Command \protect#1 invalid in math mode}\@ehc
731    \fi}
732 %    \end{macrocode}
733 %  \end{macro}
735 % \begin{macro}{\@invalidchar}
736 % \changes{LaTeX2.09}{1993/09/19}
737 %     {(RmS) Error message for invalid input characters.}
738 % \changes{v1.0d}{1994/03/28}
739 %     {(DPC) Comment out (use catcode15 instead)}
740 %    An error for use with invalid characters.  This is commented
741 %    out, since we decided to use catcode 15 instead.
742 %    \begin{macrocode}
743 %\def\@invalidchar{\@latex@error{Invalid character in input}\@ehc}
744 %</2ekernel>
745 %    \end{macrocode}
746 % \end{macro}
748 % As well as the above error commands some error messages are directly
749 % coded to save space. The Messages already present in \LaTeX2.09
750 % inlcuded:
752 % |Environment --- undefined|\\
753 %  Issued by |\begin| for undefined environment.
755 % |tab overflow|\\
756 %  Occurs in |\= when| maximum number of tabs exceeded.
758 % |\< in mid line|\\
759 % Occurs in |\<| when it appears in middle of line.
761 % |Float(s) lost|\\
762 % In output routine, caused by a float environment or
763 % |\marginpar| occurring in inner vertical mode.
765 %\Finale
766 \endinput