diff options
author | Karl Berry <karl@freefriends.org> | 2023-09-13 20:40:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-09-13 20:40:56 +0000 |
commit | 99bdd2e42bf8c8ec861eb8b6a7708f63396c5d8e (patch) | |
tree | 31f555c33bcc0153b169a88c625085b6c39389ee /Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx | |
parent | 8f22ac5379816e4b6bdd9e5c9dc981b4223187b4 (diff) |
latex-dev (13sep23)
git-svn-id: svn://tug.org/texlive/trunk@68270 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx | 245 |
1 files changed, 197 insertions, 48 deletions
diff --git a/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx b/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx index 801d1e68627..74a9685f1fb 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltmiscen.dtx} - [2022/11/06 v1.2a LaTeX Kernel (Misc. Environments)] + [2023/09/13 v1.2c LaTeX Kernel (Misc. Environments)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltmiscen.dtx} @@ -194,8 +194,8 @@ % \begin{macrocode} %</2ekernel> %<*2ekernel|latexrelease> -%<latexrelease>\IncludeInRelease{2020/10/01}% -%<latexrelease> {\enddocument}{Use Hooks}% +%<latexrelease>\IncludeInRelease{2023/11/01}% +%<latexrelease> {\enddocument}{check property labels}% \def\enddocument{% % \end{macrocode} % The |\end{document}| hook is executed first. If necessary it can @@ -230,6 +230,10 @@ \let\@setckpt\@gobbletwo \let\@newl@bel\@testdef % \end{macrocode} +% \changes{v1.2b}{2023/09/06}{Test changes of values in \cs{new@label@record}} +% \begin{macrocode} + \let\new@label@record\@kernel@new@label@record@testdef +% \end{macrocode} % \changes{v1.0z}{1995/07/13}{Shorten redefinition of \cs{bibcite} and % \cs{newlabel}} % The previous line is equiv to setting @@ -357,6 +361,67 @@ % \begin{macrocode} %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\enddocument}{Use Hooks}% +%<latexrelease>\def\enddocument{% +%<latexrelease> \@kernel@before@enddocument +%<latexrelease> \UseOneTimeHook{enddocument}% +%<latexrelease> \@kernel@after@enddocument +%<latexrelease> \@checkend{document}% +%<latexrelease> \clearpage +%<latexrelease> \UseOneTimeHook{enddocument/afterlastpage}% +%<latexrelease> \@kernel@after@enddocument@afterlastpage +%<latexrelease> \begingroup +%<latexrelease> \if@filesw +%<latexrelease> \immediate\closeout\@mainaux +%<latexrelease> \let\@setckpt\@gobbletwo +%<latexrelease> \let\@newl@bel\@testdef +%<latexrelease> \@tempswafalse +%<latexrelease> \makeatletter \@@input\jobname.aux +%<latexrelease> \fi +%<latexrelease> \UseOneTimeHook{enddocument/afteraux}% +%<latexrelease> \UseOneTimeHook{enddocument/info}% +%<latexrelease> \endgroup +%<latexrelease> \UseOneTimeHook{enddocument/end}% +%<latexrelease> \deadcycles\z@\@@end} +%<latexrelease>\NewHook{enddocument} +%<latexrelease>\NewHook{enddocument/afterlastpage} +%<latexrelease>\NewHook{enddocument/afteraux} +%<latexrelease>\NewHook{enddocument/info} +%<latexrelease>\NewHook{enddocument/end} +%<latexrelease>\AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist} +%<latexrelease>\AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings} +%<latexrelease>\AddToHook{enddocument/info}[kernel/release]{% +%<latexrelease> \let\show@release@info\wlog +%<latexrelease> \show@release@info{ ***********}% +%<latexrelease> \the\LaTeXReleaseInfo +%<latexrelease> \show@release@info{ ***********}} +%<latexrelease> +%<latexrelease>\DeclareHookRule{enddocument/info}{kernel/release}{before}{kernel/filelist} +%<latexrelease>\DeclareHookRule{enddocument/info}{kernel/filelist}{before}{kernel/warnings} +%<latexrelease>\def\@enddocument@kernel@warnings{% +%<latexrelease> \ifdim \font@submax >\fontsubfuzz\relax +%<latexrelease> \@font@warning{Size substitutions with differences\MessageBreak +%<latexrelease> up to \font@submax\space have occurred.\@gobbletwo}% +%<latexrelease> \fi +%<latexrelease> \@defaultsubs +%<latexrelease> \@refundefined +%<latexrelease> \if@filesw +%<latexrelease> \ifx \@multiplelabels \relax +%<latexrelease> \if@tempswa +%<latexrelease> \@latex@warning@no@line{Label(s) may have changed. +%<latexrelease> Rerun to get cross-references right}% +%<latexrelease> \fi +%<latexrelease> \else +%<latexrelease> \@multiplelabels +%<latexrelease> \fi +%<latexrelease> \ifx \@extra@page@added \relax +%<latexrelease> \@latex@warning@no@line{Temporary extra page added at the end. +%<latexrelease> Rerun to get it removed}% +%<latexrelease> \fi +%<latexrelease> \fi +%<latexrelease>} +%<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{0000/00/00}% %<latexrelease> {\enddocument}{Use Hooks}% %<latexrelease> @@ -496,8 +561,7 @@ \protected\def\protected@file@percent{} % \end{macrocode} % \end{macro} - - +% % \begin{macro}{\add@percent@to@temptokena} % Helper function which is used to inspect a sequence of tokens % (the second argument of \cs{@writefile} and it the last token is @@ -1189,11 +1253,33 @@ % print as the \TeX{}book's space character instead of as blank spaces. % % \begin{macro}{\@vobeyspaces} +% \changes{v1.2b}{2023/06/15}{Support tabs} +% \begin{macro}{\@vobeytabs} +% \changes{v1.2b}{2023/06/14}{Macro added} +% \changes{v1.2c}{2023/09/01}{Provide global definition for active tab} % \begin{macrocode} +%</2ekernel> +%<latexrelease>\IncludeInRelease{2023/11/01}% +%<latexrelease> {\@vobeytabs}{Obeyed tabs}% +%<*2ekernel|latexrelease> {\catcode`\ =\active% -\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}} +\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp\@vobeytabs}} +{\catcode`\^^I=\active +\gdef\@vobeytabs{\catcode`\^^I\active\let^^I\@xobeytab}% +\global\let^^I=\space +} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@vobeytabs}{Obeyed tabs}% +%<latexrelease>{\catcode`\ =\active% +%<latexrelease>\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}} +%<latexrelease>\let\@vobeytabs\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} +% \end{macro} % % \begin{macro}{\@xobeysp} % \changes{v1.0z}{1995/07/13}{Use \cs{nobreak}} @@ -1368,44 +1454,8 @@ % \end{macro} % % - -% \begin{macro}{\@setupverbvisiblespace} -% -% In pdf\TeX{} a catcode 12 space will produce the character in -% slot 32 which is assumed to be a visible space character (in a -% typewriter font in OT1 or T1 encoding). In Xe\TeX{} or Lua\TeX{} a -% font in TU encoding is normally used and that has a real space in -% this slot. So what we do in this case is this: we check the -% definition of -% |\verbvisiblespace| and if it is |\asciispace| we assume that the -% char32 can be used (e.g., in pdf\TeX{}). We then redefine -% |\@xobeysp| so that after running |\@vobeyspaces| we get -% characters from slot 32 for each active space. -% -% \changes{v1.1o}{2018/10/11} -% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} -% \begin{macrocode} -\def\@setupverbvisiblespace{% - \ifx\verbvisiblespace\asciispace - \let\@xobeysp\asciispace - \else -% \end{macrocode} Otherwise we measure the width of a character in -% the mon-spaced current font and place a -% |\verbvisiblespace| into a box of the right width which we are then -% using as the character for a space. By default this will be the space -% character from OT1 cmtt but by changing -% |\verbvisiblespace| one could use, for example, the |\textvisiblespace| -% of the current typewriter font. -% \begin{macrocode} - \setbox\z@\hbox{x}% - \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}% - \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}% - \fi -} -% \end{macrocode} -% \end{macro} +% ^^A \@setupverbvisiblespace was here % - % \begin{macro}{\@verbvisiblespacebox} % The box to hold the visible space character if it isn't in slot % 32 in the current typewriter font. @@ -1426,6 +1476,8 @@ % check if space is already active---it shouldn't be. % \changes{v1.1o}{2018/10/11} % {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} +% \changes{v1.2b}{2023/06/14} +% {Support visible tabs in \cs{verb*}} % \begin{macrocode} \@namedef{verbatim*}{\@verbatim \@setupverbvisiblespace @@ -1434,8 +1486,6 @@ % \end{macrocode} % \end{environment} % -% -% % \begin{macrocode} %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease @@ -1452,7 +1502,88 @@ %<*2ekernel> % \end{macrocode} % +% \begin{macro}{\@setupverbvisiblespace} % +% In pdf\TeX{} a catcode 12 space will produce the character in +% slot 32 which is assumed to be a visible space character (in a +% typewriter font in OT1 or T1 encoding). In Xe\TeX{} or Lua\TeX{} a +% font in TU encoding is normally used and that has a real space in +% this slot. So what we do in this case is this: we check the +% definition of +% |\verbvisiblespace| and if it is |\asciispace| we assume that the +% char32 can be used (e.g., in pdf\TeX{}). We then redefine +% |\@xobeysp| so that after running |\@vobeyspaces| we get +% characters from slot 32 for each active space. +% +% \changes{v1.1o}{2018/10/11} +% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} +% \changes{v1.2b}{2023/06/15} +% {Support visible tabs} +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2023/11/01}% +%<latexrelease> {\@setupverbvisiblespace}{Setup visible tab for \verb}% +\def\@setupverbvisiblespace{% + \ifx\verbvisiblespace\asciispace + \let\@xobeysp\asciispace + \else +% \end{macrocode} +% Otherwise we measure the width of a character in +% the mono-spaced current font and place a +% |\verbvisiblespace| into a box of the right width which we are then +% using as the character for a space. By default this will be the space +% character from OT1 cmtt but by changing +% |\verbvisiblespace| one could use, for example, the |\textvisiblespace| +% of the current typewriter font. +% \begin{macrocode} + \setbox\z@\hbox{x}% + \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}% + \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}% + \fi + \@setupverbvisibletab +} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2018/12/01}% +%<latexrelease> {\@setupverbvisiblespace}{Setup visible space for \verb}% +%<latexrelease>\def\@setupverbvisiblespace{% +%<latexrelease> \ifx\verbvisiblespace\asciispace +%<latexrelease> \let\@xobeysp\asciispace +%<latexrelease> \else +%<latexrelease> \setbox\z@\hbox{x}% +%<latexrelease> \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}% +%<latexrelease> \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}% +%<latexrelease> \fi +%<latexrelease>} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@setupverbvisiblespace}{Setup visible space for \verb}% +%<latexrelease>\let\@setupverbvisiblespace\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@setupverbvisibletab} +% \changes{v1.2q}{2023/06/15} +% {Provide visible tab in \cs{verb*}} +% A redirection: just a simple wrapper. +% \begin{macrocode} +%</2ekernel> +%<latexrelease>\IncludeInRelease{2023/11/01}% +%<latexrelease> {\@setupverbvisibletab}{Setup visible tab for \verb}% +%<*2ekernel|latexrelease> +\def\@setupverbvisibletab{\let\@xobeytab\@xobeysp} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@setupverbvisibletab}{Setup visible tab for \verb}% +%<latexrelease>\let\@setupverbvisibletab\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} % % \begin{macro}{\@sverb} % \begin{macro}{\@@sverb} @@ -1464,8 +1595,8 @@ % \begin{macrocode} %</2ekernel> %<*2ekernel|latexrelease> -%<latexrelease>\IncludeInRelease{2020/10/01}% -%<latexrelease> {\@sverb}{Drop spaces before \verb delimiter}% +%<latexrelease>\IncludeInRelease{2023/11/01}% +%<latexrelease> {\@sverb}{Support visible tabs}% % \end{macrocode} % % If the users types \verb=\verb !~! foo= then surprisingly we would @@ -1496,8 +1627,13 @@ % it the definition for the active space character. % \changes{v1.1o}{2018/10/11} % {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} +% \changes{v1.2b}{2023/06/15} +% {Support visible tabs} % \begin{macrocode} - \ifnum\catcode`\ =\active + \ifnum0% + \ifnum\catcode`\ =\active\else 1\fi + \ifnum\catcode`\^^I=\active\else 1\fi + =0 % \else \@setupverbvisiblespace \@vobeyspaces \fi } % \end{macrocode} @@ -1505,6 +1641,19 @@ % \begin{macrocode} %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@sverb}{Drop spaces before \verb delimiter}% +%<latexrelease>\def\@@sverb#1{% +%<latexrelease> \catcode`#1\active +%<latexrelease> \lccode`\~`#1% +%<latexrelease> \gdef\verb@balance@group{\verb@egroup +%<latexrelease> \@latex@error{\noexpand\verb illegal in argument}\@ehc}% +%<latexrelease> \aftergroup\verb@balance@group +%<latexrelease> \lowercase{\let~\verb@egroup}% +%<latexrelease> \ifnum\catcode`\ =\active +%<latexrelease> \else \@setupverbvisiblespace \@vobeyspaces \fi +%<latexrelease>} +%<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{2018/12/01}% %<latexrelease> {\@sverb}{Setup visible space for \verb}% %<latexrelease> |