diff options
Diffstat (limited to 'macros/latex/base/lterror.dtx')
-rw-r--r-- | macros/latex/base/lterror.dtx | 111 |
1 files changed, 108 insertions, 3 deletions
diff --git a/macros/latex/base/lterror.dtx b/macros/latex/base/lterror.dtx index 7f480a0171..10d93a1dbd 100644 --- a/macros/latex/base/lterror.dtx +++ b/macros/latex/base/lterror.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{lterror.dtx} - [2019/08/30 v1.2q LaTeX Kernel (errors)] + [2021/08/20 v1.2t LaTeX Kernel (errors)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{lterror.dtx} @@ -375,6 +375,58 @@ Type H <return> for immediate help.}% % \end{macro} % \end{macro} % +% +% +% \begin{macro}{\ClassNote,\ClassNoteNoLine, +% \PackageNote,\PackageNoteNoLine} +% +% \changes{v1.2s}{2021/07/11}{Provide \cs{ClassNote} and \cs{PackageNote}} +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2021/11/15}% +%<latexrelease> {\ClassNote}{Notes for classes/packages}% +% \end{macrocode} +% +% \begin{macrocode} +\def\ClassNote#1#2{% + \GenericWarning{% + (#1) \space\space\@spaces\@spaces + }{% + Class #1 Info: #2% + }% +} +\def\ClassNoteNoLine#1#2{\ClassNote{#1}{#2\@gobble}} +% \end{macrocode} +% +% \begin{macrocode} +\def\PackageNote#1#2{% + \GenericWarning{% + (#1) \@spaces\@spaces\@spaces + }{% + Package #1 Info: #2% + }% +} +\def\PackageNoteNoLine#1#2{\PackageNote{#1}{#2\@gobble}} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% We don't roll back, because if this code is used by packages then +% most often they will not have rollback code implemented, so they +% would immediately break even if they otherwise would work fine. +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\ClassNote}{Notes for classes/packages}% +%<latexrelease> +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% +% +% +% +% % \begin{macro}{\@latex@error} % \begin{macro}{\@latex@warning} % \begin{macro}{\@latex@warning@no@line} @@ -446,6 +498,50 @@ Type H <return> for immediate help.}% % \end{macro} % \end{macro} % +% \begin{macro}{\@latex@note} +% \begin{macro}{\@latex@note@no@line} +% These are ``info'' messages that display on the terminal not +% just in the transcript. +% \changes{v1.2r}{2021/06/09}{Macros added} +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2021/11/15}% +%<latexrelease> {\@latex@note}{Display notes}% +\def\@latex@note#1{% + \GenericWarning{% + \@spaces\@spaces\@spaces + }{% + LaTeX Info: #1% + }% +} +% \end{macrocode} +% +% \begin{macrocode} +\def\@latex@note@no@line#1{% + \@latex@note{#1\@gobble}} +% \end{macrocode} +% +% We don't make them undefined but rather point to \cs{@latex@info} +% because that's what they replace. This way we can change +% \cs{@latex@info} elsewhere without the need to further rollback +% sections. +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@latex@note}{Display notes}% +%<latexrelease> +%<latexrelease>\let\@latex@note\@latex@info +%<latexrelease>\let\@latex@note@no@line\@latex@info@no@line +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% +% % \begin{macro}{\c@errorcontextlines} % \changes{LaTeX2e}{1993/11/22}{Macro added} % |\errorcontextlines| as a \LaTeX\ counter, so that it may be @@ -591,10 +687,19 @@ Type H <return> for immediate help.}% % RmS 1992/08/24: added code to |\@badend| to display position of % non-matching |\begin|. % FMi 1993/01/14: missing space added. +% +% The environment name has to literally match, i.e., what is stored +% in \cs{@currenvir} (after one expansion) must match what is +% passed to \cs{end} (without expansion). If not we complain. Not +% the absolute best solution but at least it avoids getting +% \verb=\begin{foo} ended by \end{foo}= which was possible in the +% past. +% \changes{v1.2t}{2021/08/20}{Improve \cs{@badend} error message (gh/587)} % \begin{macrocode} \gdef\@badend#1{% - \@latex@error{\protect\begin{\@currenvir}\@currenvline - \space ended by \protect\end{#1}}\@eha} + \@latex@error{\protect\begin + {\detokenize\expandafter{\@currenvir}}\@currenvline + \space ended by \protect\end{\detokenize{#1}}}\@eha} % \end{macrocode} % \end{macro} % |