From b153d9b098596910fb2be9311f13c4415233c2a2 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 4 Dec 2022 03:01:36 +0000 Subject: CTAN sync 202212040301 --- macros/latex-dev/base/README.md | 2 +- macros/latex-dev/base/alltt.pdf | Bin 223831 -> 223831 bytes macros/latex-dev/base/cfgguide.pdf | Bin 264112 -> 264112 bytes macros/latex-dev/base/changes.txt | 77 +++++- macros/latex-dev/base/classes.pdf | Bin 560611 -> 560326 bytes macros/latex-dev/base/clsguide.pdf | Bin 414419 -> 414419 bytes macros/latex-dev/base/cmfonts.pdf | Bin 292160 -> 292160 bytes macros/latex-dev/base/cyrguide.pdf | Bin 257314 -> 257314 bytes macros/latex-dev/base/doc-code.pdf | Bin 1077527 -> 1075110 bytes macros/latex-dev/base/doc.dtx | 244 ++++++++++-------- macros/latex-dev/base/doc.pdf | Bin 755064 -> 755547 bytes macros/latex-dev/base/docstrip.pdf | Bin 504553 -> 504178 bytes macros/latex-dev/base/encguide.pdf | Bin 1318126 -> 1318126 bytes macros/latex-dev/base/exscale.pdf | Bin 204711 -> 204711 bytes macros/latex-dev/base/fix-cm.pdf | Bin 287733 -> 287733 bytes macros/latex-dev/base/fntguide.pdf | Bin 517838 -> 517838 bytes macros/latex-dev/base/graphpap.pdf | Bin 161713 -> 161713 bytes macros/latex-dev/base/ifthen.pdf | Bin 221211 -> 221211 bytes macros/latex-dev/base/inputenc.pdf | Bin 318204 -> 318204 bytes macros/latex-dev/base/lamport-manual.pdf | Bin 170878 -> 170878 bytes macros/latex-dev/base/latexrelease.dtx | 11 +- macros/latex-dev/base/latexrelease.pdf | Bin 281906 -> 282115 bytes macros/latex-dev/base/latexsym.pdf | Bin 200760 -> 200760 bytes macros/latex-dev/base/lb2.pdf | Bin 252140 -> 252140 bytes macros/latex-dev/base/letter.pdf | Bin 337630 -> 337430 bytes macros/latex-dev/base/lgc2.pdf | Bin 215684 -> 215684 bytes macros/latex-dev/base/lppl.pdf | Bin 132382 -> 132382 bytes macros/latex-dev/base/ltclass.dtx | 23 +- macros/latex-dev/base/ltcmd.dtx | 46 ++-- macros/latex-dev/base/ltcmdhooks-code.pdf | Bin 719104 -> 719408 bytes macros/latex-dev/base/ltcmdhooks-doc.pdf | Bin 478606 -> 478686 bytes macros/latex-dev/base/ltdefns.dtx | 226 +++++++++++++++-- macros/latex-dev/base/ltfilehook-code.pdf | Bin 803024 -> 803060 bytes macros/latex-dev/base/ltfilehook-doc.pdf | Bin 547895 -> 547926 bytes macros/latex-dev/base/ltfinal.dtx | 34 ++- macros/latex-dev/base/lthooks-code.pdf | Bin 1091409 -> 1091429 bytes macros/latex-dev/base/lthooks-doc.pdf | Bin 701468 -> 701473 bytes macros/latex-dev/base/ltluatex.pdf | Bin 325457 -> 324910 bytes macros/latex-dev/base/ltmarks-code.pdf | Bin 715524 -> 715658 bytes macros/latex-dev/base/ltmarks-doc.pdf | Bin 585896 -> 586024 bytes macros/latex-dev/base/ltmiscen.dtx | 10 +- macros/latex-dev/base/ltnews.pdf | Bin 1243036 -> 1255282 bytes macros/latex-dev/base/ltnews.tex | 2 +- macros/latex-dev/base/ltnews01.pdf | Bin 161518 -> 161518 bytes macros/latex-dev/base/ltnews02.pdf | Bin 159792 -> 159792 bytes macros/latex-dev/base/ltnews03.pdf | Bin 159332 -> 159332 bytes macros/latex-dev/base/ltnews04.pdf | Bin 152525 -> 152525 bytes macros/latex-dev/base/ltnews05.pdf | Bin 174494 -> 174494 bytes macros/latex-dev/base/ltnews06.pdf | Bin 142849 -> 142849 bytes macros/latex-dev/base/ltnews07.pdf | Bin 137811 -> 137811 bytes macros/latex-dev/base/ltnews08.pdf | Bin 155053 -> 155053 bytes macros/latex-dev/base/ltnews09.pdf | Bin 129570 -> 129570 bytes macros/latex-dev/base/ltnews10.pdf | Bin 169416 -> 169416 bytes macros/latex-dev/base/ltnews11.pdf | Bin 111948 -> 111948 bytes macros/latex-dev/base/ltnews12.pdf | Bin 156551 -> 156551 bytes macros/latex-dev/base/ltnews13.pdf | Bin 182225 -> 182225 bytes macros/latex-dev/base/ltnews14.pdf | Bin 170473 -> 170473 bytes macros/latex-dev/base/ltnews15.pdf | Bin 130309 -> 130309 bytes macros/latex-dev/base/ltnews16.pdf | Bin 138073 -> 138073 bytes macros/latex-dev/base/ltnews17.pdf | Bin 166228 -> 166228 bytes macros/latex-dev/base/ltnews18.pdf | Bin 38033 -> 38033 bytes macros/latex-dev/base/ltnews19.pdf | Bin 230028 -> 230028 bytes macros/latex-dev/base/ltnews20.pdf | Bin 318548 -> 318548 bytes macros/latex-dev/base/ltnews21.pdf | Bin 244867 -> 244867 bytes macros/latex-dev/base/ltnews22.pdf | Bin 317773 -> 317773 bytes macros/latex-dev/base/ltnews23.pdf | Bin 286591 -> 286591 bytes macros/latex-dev/base/ltnews24.pdf | Bin 265279 -> 265279 bytes macros/latex-dev/base/ltnews25.pdf | Bin 204935 -> 204935 bytes macros/latex-dev/base/ltnews26.pdf | Bin 379462 -> 379462 bytes macros/latex-dev/base/ltnews27.pdf | Bin 250592 -> 250592 bytes macros/latex-dev/base/ltnews28.pdf | Bin 376643 -> 376643 bytes macros/latex-dev/base/ltnews29.pdf | Bin 455107 -> 455107 bytes macros/latex-dev/base/ltnews30.pdf | Bin 511909 -> 511909 bytes macros/latex-dev/base/ltnews31.pdf | Bin 526323 -> 526323 bytes macros/latex-dev/base/ltnews32.pdf | Bin 546160 -> 546160 bytes macros/latex-dev/base/ltnews33.pdf | Bin 522412 -> 522412 bytes macros/latex-dev/base/ltnews34.pdf | Bin 508044 -> 508044 bytes macros/latex-dev/base/ltnews35.pdf | Bin 563089 -> 563089 bytes macros/latex-dev/base/ltnews36.pdf | Bin 517577 -> 517565 bytes macros/latex-dev/base/ltnews36.tex | 9 +- macros/latex-dev/base/ltnews37.pdf | Bin 0 -> 408962 bytes macros/latex-dev/base/ltnews37.tex | 378 ++++++++++++++++++++++++++++ macros/latex-dev/base/ltpara-code.pdf | Bin 667097 -> 667129 bytes macros/latex-dev/base/ltpara-doc.pdf | Bin 559976 -> 560008 bytes macros/latex-dev/base/ltshipout-code.pdf | Bin 818741 -> 820928 bytes macros/latex-dev/base/ltshipout-doc.pdf | Bin 563518 -> 565931 bytes macros/latex-dev/base/ltshipout.dtx | 51 +++- macros/latex-dev/base/ltspace.dtx | 16 +- macros/latex-dev/base/ltvers.dtx | 31 ++- macros/latex-dev/base/ltx3info.pdf | Bin 219349 -> 219349 bytes macros/latex-dev/base/ltxdoc.dtx | 11 +- macros/latex-dev/base/ltxdoc.pdf | Bin 242645 -> 243286 bytes macros/latex-dev/base/makeindx.pdf | Bin 165821 -> 165821 bytes macros/latex-dev/base/modguide.pdf | Bin 257804 -> 257804 bytes macros/latex-dev/base/nfssfont.pdf | Bin 211180 -> 211180 bytes macros/latex-dev/base/proc.pdf | Bin 227059 -> 227059 bytes macros/latex-dev/base/slides.pdf | Bin 375518 -> 375518 bytes macros/latex-dev/base/slifonts.pdf | Bin 234191 -> 234191 bytes macros/latex-dev/base/source2e.pdf | Bin 5769593 -> 5789493 bytes macros/latex-dev/base/syntonly.pdf | Bin 189704 -> 189819 bytes macros/latex-dev/base/tlc2.pdf | Bin 290615 -> 290615 bytes macros/latex-dev/base/tulm.pdf | Bin 162772 -> 162772 bytes macros/latex-dev/base/usrguide-historic.pdf | Bin 438515 -> 438515 bytes macros/latex-dev/base/usrguide.pdf | Bin 473980 -> 474808 bytes macros/latex-dev/base/usrguide.tex | 25 +- macros/latex-dev/base/utf8ienc.pdf | Bin 353237 -> 353428 bytes macros/latex-dev/base/webcomp.pdf | Bin 146198 -> 146198 bytes 107 files changed, 1008 insertions(+), 188 deletions(-) create mode 100644 macros/latex-dev/base/ltnews37.pdf create mode 100644 macros/latex-dev/base/ltnews37.tex (limited to 'macros/latex-dev/base') diff --git a/macros/latex-dev/base/README.md b/macros/latex-dev/base/README.md index 8fb5e8e894..343bb1b759 100644 --- a/macros/latex-dev/base/README.md +++ b/macros/latex-dev/base/README.md @@ -1,7 +1,7 @@ The LaTeX kernel ================ -Release 2023-05-01 pre-release 0 +Release 2023-06-01 pre-release 1 Overview -------- diff --git a/macros/latex-dev/base/alltt.pdf b/macros/latex-dev/base/alltt.pdf index 35b709a563..e8d8da01e4 100644 Binary files a/macros/latex-dev/base/alltt.pdf and b/macros/latex-dev/base/alltt.pdf differ diff --git a/macros/latex-dev/base/cfgguide.pdf b/macros/latex-dev/base/cfgguide.pdf index 3a048a4bfc..d574da1576 100644 Binary files a/macros/latex-dev/base/cfgguide.pdf and b/macros/latex-dev/base/cfgguide.pdf differ diff --git a/macros/latex-dev/base/changes.txt b/macros/latex-dev/base/changes.txt index 0ae9b55c03..468b66433b 100644 --- a/macros/latex-dev/base/changes.txt +++ b/macros/latex-dev/base/changes.txt @@ -8,7 +8,82 @@ are not part of the distribution. ================================================================================ All changes above are only part of the development branch for the next release. -================================================================================ +================================================================================ + + +2022-11-24 Frank Mittelbach + + * ltdefns.dtx (subsubsection{Copying robust commands}): + Added \NewEnvironmentCopy, \RenewEnvironmentCopy, and \DeclareEnvironmentCopy (gh/963) + Also added \ShowEnvironment. + +2022-11-16 Frank Mittelbach + + * ltclass.dtx: + Introduce key 'nowarn' on filecontents (gh/958) + Do not show "current dir" in message (gh/917) + +2022-11-14 Frank Mittelbach + + * latexrelease.dtx (subsection{Ignoring \texttt{\string_new} errors when rolling back}): + Silence \cs{NewMarkClass} in rollback (gh/955) + +2022-11-13 Frank Mittelbach + + * doc.dtx: + Redefinitions of \verb removed as no longer needed (gh/953) + + Redefinitions of \@verbatim changed to match the kernel + definition (gh/953) + +2022-11-08 Frank Mittelbach + + * ltshipout.dtx: + Add a shipout hook to be executed just before we + actually do the shipout (gh/920) + +2022-11-07 Frank Mittelbach + + * ltvers.dtx (section{Version Identification}): + Store release data in \LaTeXReleaseInfo for reuse at the end of + the .log file (gh/944) + + * ltmiscen.dtx (subsection{Environments}): Add to a hook in + \end{document} to (re)display the LaTeX release information (gh/944) + +2022-11-03 Frank Mittelbach + + * doc.dtx: correctly handle \ and allow it to be excluded + from the index (gh/943) + +================================================================================ +All changes above are only part of the development branch for the next release. +================================================================================ + +######################### +# 2022-11-01 PL1 Release +######################### + +2022-11-28 Frank Mittelbach + + * ltspace.dtx (subsection{Horizontal space (and breaks)}): + We use a private register instead of a group with \hspace in case it + starts the paragraph. + Otherwise \everypar and friends will be executed inside a group (gh/967) + +2022-11-28 Frank Mittelbach + + * ltxdoc.dtx: + Revert using \detokenize in \cs (gh/962) + Eventually we will need to sync with the code in l3doc but for now + we stay with the simpler definition from doc.sty. + + +2022-11-30 Joseph Wright + + * ltfinal.dtx: + Set \oe and \OE equal in case changing to allow detection + by babel ######################### # 2022-11-01 Release diff --git a/macros/latex-dev/base/classes.pdf b/macros/latex-dev/base/classes.pdf index 0f3e7a5cce..30f8f4f5c0 100644 Binary files a/macros/latex-dev/base/classes.pdf and b/macros/latex-dev/base/classes.pdf differ diff --git a/macros/latex-dev/base/clsguide.pdf b/macros/latex-dev/base/clsguide.pdf index f164e9b482..709334dd02 100644 Binary files a/macros/latex-dev/base/clsguide.pdf and b/macros/latex-dev/base/clsguide.pdf differ diff --git a/macros/latex-dev/base/cmfonts.pdf b/macros/latex-dev/base/cmfonts.pdf index 9293df614a..255f6af9ad 100644 Binary files a/macros/latex-dev/base/cmfonts.pdf and b/macros/latex-dev/base/cmfonts.pdf differ diff --git a/macros/latex-dev/base/cyrguide.pdf b/macros/latex-dev/base/cyrguide.pdf index ad43e0b7f1..eb8b6a1618 100644 Binary files a/macros/latex-dev/base/cyrguide.pdf and b/macros/latex-dev/base/cyrguide.pdf differ diff --git a/macros/latex-dev/base/doc-code.pdf b/macros/latex-dev/base/doc-code.pdf index 5da305cde9..5d573b35df 100644 Binary files a/macros/latex-dev/base/doc-code.pdf and b/macros/latex-dev/base/doc-code.pdf differ diff --git a/macros/latex-dev/base/doc.dtx b/macros/latex-dev/base/doc.dtx index d137038d63..a2c95694ae 100644 --- a/macros/latex-dev/base/doc.dtx +++ b/macros/latex-dev/base/doc.dtx @@ -45,7 +45,7 @@ %<+package> %<+package>\ProvidesPackage{doc} %<+shortvrb>\ProvidesPackage{shortvrb} -%<+package|shortvrb> [2022/07/03 v3.0k +%<+package|shortvrb> [2022/11/13 v3.0m %<+package|shortvrb> Standard LaTeX documentation package V3 (FMi)] %\catcode`\<=12 % @@ -82,6 +82,8 @@ % \changes{v1.9a}{1993/12/02}{Upgrade for LaTeX2e} % \changes{v1.9d}{1993/12/20}{Protected changes entry.} % \changes{v1.0p}{1994/05/21}{Use new error commands} +% \changes{v3.0m}{2022/11/13}{Redefinitions of \cs{verb} removed as +% no longer needed (gh/953)} % % % \hyphenation{make-index} @@ -1208,7 +1210,7 @@ % not to exceed this limit when describing the change. The actual % entry consists of the \meta{version}, the |\actualchar|, the current % macro name, a colon, the |\levelchar|, and, finally, the \meta{text}. -% The result is a glossaryentry for the \meta{version}, with the name of +% The result is a glossary entry for the \meta{version}, with the name of % the current macro as subitem. Outside the |macro| environment, the % text |\generalname| is used instead of the macro name. When % referring to macros in change descriptions it is conventional to use @@ -1216,6 +1218,13 @@ % and using up valuable characters in the entry with old \prg{makeindex} % versions. % +% Note that in the history listing, the entry is shown with the page number +% that corresponds to its place in the source, e.g., general changes put at the +% very beginning of the file will show up with page number ``1'', change entries +% placed elsewhere might have different numbers (not necessarily always +% very useful unless you are careful). +% +% % \changes{v1.7a}{1992/02/26}{Description of \cs{RecordChanges} etc. % added % to interface section.} \DescribeInterfaceMacro\RecordChanges To cause the @@ -1824,8 +1833,8 @@ % July 1989. % \bibitem{art:docstrip} \textsc{Frank Mittelbach, Denys Duchier and % Johannes Braams}. -% \newblock \texttt{docstrip.dtx} (to appear). -% \newblock The file is part of the DOC package. +% \newblock \texttt{docstrip.dtx}. +% \newblock The file is part of core \LaTeX{}. % \bibitem{book:Raspe} \textsc{R. E. Raspe} (*1737, \dag 1797). % \newblock Baron Münchhausens narrative of his marvelous % travels and campaigns in Russia. @@ -2686,12 +2695,16 @@ % first lines are copied literally from \texttt{latex.tex}. % \changes{v1.7i}{1992/07/12}{Added \cs{@@par} to clear possible % \cs{parshape}.} +% \changes{v3.0m}{2022/11/13}{Redefinitions of \cs{@verbatim} changed +% to match the kernel definition (gh/953)} % \begin{macrocode} -\def\@verbatim{\trivlist \item[]\if@minipage\else\vskip\parskip\fi - \leftskip\@totalleftmargin\rightskip\z@ - \parindent\z@\parfillskip\@flushglue\parskip\z@ - \@@par - \@tempswafalse +\def\@verbatim{\trivlist \item\relax + \if@minipage\else\vskip\parskip\fi + \leftskip\@totalleftmargin\rightskip\z@ + \parindent\z@\parfillskip\@flushglue\parskip\z@ + \language\l@nohyphenation + \@@par + \@tempswafalse % \end{macrocode} % |\@verbatim| sets |^^M|, the end of line character, to % be equal to |\par|. This control sequence is redefined @@ -2699,8 +2712,13 @@ % \changes{v1.7c}{1992/03/24}{Added \cs{interlinepenalty} to % \cs{par} from verbatim.sty} % \begin{macrocode} - \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par - \penalty\interlinepenalty + \def\par{% + \if@tempswa + \leavevmode \null \@@par\penalty\interlinepenalty + \else + \@tempswatrue + \ifhmode\@@par\penalty\interlinepenalty\fi + \fi % \end{macrocode} % We add a control sequence |\check@percent| to the definition % of |\par| whose task it is to check for a percent character. @@ -2713,9 +2731,10 @@ % \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX verbatim, % which handles more ligatures.} % \begin{macrocode} - \obeylines - \let\do\do@noligs \verbatim@nolig@list - \let\do\@makeother \dospecials} + \let\do\@makeother \dospecials + \obeylines \verbatim@font \@noligs + \everypar \expandafter{\the\everypar \unpenalty}% +} % \end{macrocode} % \end{macro} % @@ -2744,83 +2763,12 @@ % \end{macrocode} % \end{macro} % -% \begin{imacro}{\verb} -% \changes{v1.7a}{1992/02/27}{Now warns about newlines (from -% newdoc with `@noligs added).} -% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX \cs{verb}} -% We re-define |\verb| to check for newlines in its argument since a -% missing delimiter is difficult to detect in \DOC{} source. -% The code is the same as in \texttt{latex.tex} of September 19, 1993. -% Perhaps there should be a font-changing -% hook rather than just using |\ttfamily|, but if so it probably should be -% different from |\MacroFont| since that normally includes |\small| -% and would look wrong inline. -% \changes{v1.7a}{1992/02/28}{Added math mode check (from verbatim.sty)} -% \begin{macrocode} -\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi - \bgroup \let\do\do@noligs \verbatim@nolig@list - \ttfamily \verb@eol@error \let\do\@makeother \dospecials - \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}} -% \end{macrocode} -% \end{imacro} -% -% \begin{macro}{\verb@balance@group} -% \begin{macro}{\verb@egroup} -% \begin{macro}{\verb@eol@error} -% \changes{v1.8b}{1993/09/21}{Renamed \cs{verb@err} to -% \cs{verb@eol@error}, as in new LaTeX verbatim.} -% \begin{macrocode} -\let\verb@balance@group\@empty -% \end{macrocode} -% -% \begin{macrocode} -\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup} -% \end{macrocode} -% -% \begin{macrocode} -\begingroup - \obeylines% - \gdef\verb@eol@error{\obeylines% - \def^^M{\verb@egroup\@latex@error{% - \noexpand\verb command ended by end of line}\@ehc}}% -\endgroup -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\@sverb} -% \changes{v1.7a}{1992/02/27}{Added for \cs{verb} change.} -% \changes{v1.7a}{1992/02/28}{Now same as in verbatim.sty.} -% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX verbatim, -% which has better error trapping.} -% See \cite{art:verbatim} for commentary. -% \changes{v2.1j}{2019/11/03}{Use the kernel definition, no change needed (gh/205)} -% \begin{macrocode} -%\def\@sverb#1{% -% \catcode`#1\active \lccode`\~`#1% -% \gdef\verb@balance@group{\verb@egroup -% \@latex@error{Illegal use of \noexpand\verb command}\@ehc}% -% \aftergroup\verb@balance@group -% \lowercase{\let~\verb@egroup}} -% \end{macrocode} -% \end{macro} -% % -% \begin{macro}{\verbatim@nolig@list} -% \begin{macro}{\do@noligs} -% These macros replace the old |\@noligs| mechanism by an -% extensible version to allow more ligatures to be added. -% \begin{macrocode} -\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-} -\def\do@noligs#1{% - \catcode`#1\active - \begingroup - \lccode`\~=`#1\relax - \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}} -% \end{macrocode} -% \end{macro} -% \end{macro} +% In the early versions of the package it also redefined \cs{verb} +% because that didn't include the useful test for \enquote{newline} in +% the verbatim text. This is nowadays part of \LaTeX{} so we do not +% redefine it any longer (the original code is still kept in the file +% after \cs{endinput} to keep the long history intact). % % \begin{tcounter}{\macro@cnt} % \label{page:macro} The \env{macro} environment is implemented as @@ -3147,9 +3095,6 @@ % % \begin{macro}{\short@macro} % -% \fmi{this needs cleaning up too, the results in the index are -% currently wrong for cases like `\cs{ }' and the like.} -% % \changes{v1.5c}{1989/04/27}{Corrected bad bug by putting the % scan@allowedfalse macro before printing % the argument.} @@ -3164,17 +3109,14 @@ % done by the |\ifnot@excluded| macro which assumes that the % macro name is saved in |\macro@namepart|. The character % mustn't be stored with a special category code or exclusion from -% the index won't work, so we employ the case-changing trick used -% elsewhere. Since the argument might be an active character, -% |\string| is used to normalize it. +% the index won't work, so we we use \cs{string} to normalize it +% the same way it is done in \cs{DoNotIndex}, i.e. everything ends up catcode 12 +% except for the space character. % \changes{v2.0e}{1998/12/28}{Correctly use the case-changing trick.} +% \changes{v3.0l}{2022/11/03}{No longer using the case-changing trick.} % \begin{macrocode} -\begingroup -\catcode`\&=12 -\gdef\short@macro#1{\begingroup - \uccode`\&=\expandafter`\string#1% - \uppercase{\def\x{\def\macro@namepart{&}}}% - \expandafter\endgroup\x +\def\short@macro#1{% + \edef\macro@namepart{\string#1}% % \end{macrocode} % Any indexing is then delegated to % |\maybe@index@short@macro|. Depending on the actual character seen, @@ -3197,7 +3139,6 @@ % cross-referencing is globally disabled. % \begin{macrocode} \scan@allowedtrue } -\endgroup % \end{macrocode} % \end{macro} % @@ -3441,7 +3382,6 @@ \def \ShowIndexingState { \__doc_trace:x{Show~ doc~ indexing~ state:} \seq_show:N \l__doc_donotindex_seq -% \tl_analysis_show:N\l__doc_donotindex_seq \prop_show:N \g__doc_idxtype_prop } % \end{macrocode} @@ -3637,10 +3577,12 @@ % \begin{macro}{\maybe@index@short@macro} % \begin{macro}{\__doc_maybe_index_short:o} % Single character macros are handled similarly but there the -% indexing is done by \cs{SpecialShortIndex}. +% indexing is done by \cs{SpecialShortIndex} and it is simpler +% because we know that the argument contains a string token not letters. +% \changes{v3.0l}{2022/11/03}{We know the argument expands to a single string token} % \begin{macrocode} \cs_new:Npn \__doc_maybe_index_short:o #1 { - \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} } + \exp_args:No \__doc_maybe_index_aux:nN #1 \SpecialShortIndex } \cs_set_eq:NN \maybe@index@short@macro \__doc_maybe_index_short:o @@ -3715,7 +3657,12 @@ {\cs_to_str:N \^^M } {\def\reserved@a{ \string \space \actualchar } \def\reserved@b { \space } \let\reserved@c \@empty } - { } {\def\reserved@a{ \string \space \actualchar } +% \end{macrocode} +% With the fix for +% \verb*=\ = we now have to look for a real space to handle that command sequence. +% \changes{v3.0l}{2022/11/03}{look for the right token} +% \begin{macrocode} + { ~ } {\def\reserved@a{ \string \space \actualchar } \def\reserved@b { \space } \let\reserved@c \@empty } {\c_left_brace_str} { \def\reserved@a{ \bgroup \actualchar } @@ -6256,6 +6203,89 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% \section{Code no longer used} +% +% \begin{imacro}{\verb} +% \changes{v1.7a}{1992/02/27}{Now warns about newlines (from +% newdoc with `@noligs added).} +% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX \cs{verb}} +% We re-define |\verb| to check for newlines in its argument since a +% missing delimiter is difficult to detect in \DOC{} source. +% The code is the same as in \texttt{latex.tex} of September 19, 1993. +% Perhaps there should be a font-changing +% hook rather than just using |\ttfamily|, but if so it probably should be +% different from |\MacroFont| since that normally includes |\small| +% and would look wrong inline. +% \changes{v1.7a}{1992/02/28}{Added math mode check (from verbatim.sty)} +% \begin{macrocode} +%\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi +% \bgroup \let\do\do@noligs \verbatim@nolig@list +% \ttfamily \verb@eol@error \let\do\@makeother \dospecials +% \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}} +% \end{macrocode} +% \end{imacro} +% +% \begin{macro}{\verb@balance@group} +% \begin{macro}{\verb@egroup} +% \begin{macro}{\verb@eol@error} +% \changes{v1.8b}{1993/09/21}{Renamed \cs{verb@err} to +% \cs{verb@eol@error}, as in new LaTeX verbatim.} +% \begin{macrocode} +%\let\verb@balance@group\@empty +% \end{macrocode} +% +% \begin{macrocode} +%\def\verb@egroup{\global\let\verb@balance@group\@empty\egroup} +% \end{macrocode} +% +% \begin{macrocode} +%\begingroup +% \obeylines% +% \gdef\verb@eol@error{\obeylines% +% \def^^M{\verb@egroup\@latex@error{% +% \noexpand\verb command ended by end of line}\@ehc}}% +%\endgroup +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@sverb} +% \changes{v1.7a}{1992/02/27}{Added for \cs{verb} change.} +% \changes{v1.7a}{1992/02/28}{Now same as in verbatim.sty.} +% \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX verbatim, +% which has better error trapping.} +% See \cite{art:verbatim} for commentary. +% \changes{v2.1j}{2019/11/03}{Use the kernel definition, no change needed (gh/205)} +% \begin{macrocode} +%\def\@sverb#1{% +% \catcode`#1\active \lccode`\~`#1% +% \gdef\verb@balance@group{\verb@egroup +% \@latex@error{Illegal use of \noexpand\verb command}\@ehc}% +% \aftergroup\verb@balance@group +% \lowercase{\let~\verb@egroup}} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\verbatim@nolig@list} +% \begin{macro}{\do@noligs} +% These macros replace the old |\@noligs| mechanism by an +% extensible version to allow more ligatures to be added. +% \begin{macrocode} +%\def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-} +%\def\do@noligs#1{% +% \catcode`#1\active +% \begingroup +% \lccode`\~`#1\relax +% \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}} +% \end{macrocode} +% \end{macro} +% \end{macro} + ^^A Needed for emacs ^^A diff --git a/macros/latex-dev/base/doc.pdf b/macros/latex-dev/base/doc.pdf index ba56cfe561..cce65ca48d 100644 Binary files a/macros/latex-dev/base/doc.pdf and b/macros/latex-dev/base/doc.pdf differ diff --git a/macros/latex-dev/base/docstrip.pdf b/macros/latex-dev/base/docstrip.pdf index f3ef8b3fc3..661da9efd5 100644 Binary files a/macros/latex-dev/base/docstrip.pdf and b/macros/latex-dev/base/docstrip.pdf differ diff --git a/macros/latex-dev/base/encguide.pdf b/macros/latex-dev/base/encguide.pdf index 255563550b..07fc3f5113 100644 Binary files a/macros/latex-dev/base/encguide.pdf and b/macros/latex-dev/base/encguide.pdf differ diff --git a/macros/latex-dev/base/exscale.pdf b/macros/latex-dev/base/exscale.pdf index 38a778e1b6..a5f1195be7 100644 Binary files a/macros/latex-dev/base/exscale.pdf and b/macros/latex-dev/base/exscale.pdf differ diff --git a/macros/latex-dev/base/fix-cm.pdf b/macros/latex-dev/base/fix-cm.pdf index 90892c6caa..0f14974f3a 100644 Binary files a/macros/latex-dev/base/fix-cm.pdf and b/macros/latex-dev/base/fix-cm.pdf differ diff --git a/macros/latex-dev/base/fntguide.pdf b/macros/latex-dev/base/fntguide.pdf index d0644e8279..b2e74d07e7 100644 Binary files a/macros/latex-dev/base/fntguide.pdf and b/macros/latex-dev/base/fntguide.pdf differ diff --git a/macros/latex-dev/base/graphpap.pdf b/macros/latex-dev/base/graphpap.pdf index bc70a0cf14..3f3b067639 100644 Binary files a/macros/latex-dev/base/graphpap.pdf and b/macros/latex-dev/base/graphpap.pdf differ diff --git a/macros/latex-dev/base/ifthen.pdf b/macros/latex-dev/base/ifthen.pdf index 35f52dca6e..1702b8105b 100644 Binary files a/macros/latex-dev/base/ifthen.pdf and b/macros/latex-dev/base/ifthen.pdf differ diff --git a/macros/latex-dev/base/inputenc.pdf b/macros/latex-dev/base/inputenc.pdf index 90f5aac0cb..dce32355a2 100644 Binary files a/macros/latex-dev/base/inputenc.pdf and b/macros/latex-dev/base/inputenc.pdf differ diff --git a/macros/latex-dev/base/lamport-manual.pdf b/macros/latex-dev/base/lamport-manual.pdf index f18b52c99e..e0895befef 100644 Binary files a/macros/latex-dev/base/lamport-manual.pdf and b/macros/latex-dev/base/lamport-manual.pdf differ diff --git a/macros/latex-dev/base/latexrelease.dtx b/macros/latex-dev/base/latexrelease.dtx index 294007553d..132a2548e4 100644 --- a/macros/latex-dev/base/latexrelease.dtx +++ b/macros/latex-dev/base/latexrelease.dtx @@ -40,7 +40,7 @@ %<*latexrelease> % \fi % \ProvidesFile{latexrelease.dtx} - [2022/02/28 v1.0o LaTeX release emulation and tests + [2022/11/14 v1.0p LaTeX release emulation and tests (including releases up to \latexreleaseversion)] % \iffalse % @@ -746,8 +746,12 @@ of this package available from CTAN} % % Finally, redirect the error thrown by \cs{NewHook} to nowhere so it % can be safely reused (the hook isn't redeclared if it already exists). +% The same happens for \cs{NewMarkClass}. +% \changes{v1.0p}{2022/11/14} +% {Silence \cs{NewMarkClass} in rollback (gh/955)} % \begin{macrocode} \msg_redirect_name:nnn { hooks } { exists } { none } +\msg_redirect_name:nnn { mark } { class-already-defined }{ none } % \end{macrocode} % % Now a one-off for |ltcmd.dtx|: we need to make \cs{NewDocumentCommand} @@ -799,9 +803,12 @@ of this package available from CTAN} \tl_clear:N \l_@@_restores_tl % \end{macrocode} % -% And restore the hook error message. +% And restore the silenced error messages. +% \changes{v1.0p}{2022/11/14} +% {Unsilence \cs{NewMarkClass} error message after rollback (gh/955)} % \begin{macrocode} \msg_redirect_name:nnn { hooks } { exists } { } +\msg_redirect_name:nnn { mark } { class-already-defined } { } % \end{macrocode} % % \begin{macrocode} diff --git a/macros/latex-dev/base/latexrelease.pdf b/macros/latex-dev/base/latexrelease.pdf index 35b2875861..a0111a19a8 100644 Binary files a/macros/latex-dev/base/latexrelease.pdf and b/macros/latex-dev/base/latexrelease.pdf differ diff --git a/macros/latex-dev/base/latexsym.pdf b/macros/latex-dev/base/latexsym.pdf index 0abf36f12f..b9d8779f70 100644 Binary files a/macros/latex-dev/base/latexsym.pdf and b/macros/latex-dev/base/latexsym.pdf differ diff --git a/macros/latex-dev/base/lb2.pdf b/macros/latex-dev/base/lb2.pdf index 394252b206..0c85e7c769 100644 Binary files a/macros/latex-dev/base/lb2.pdf and b/macros/latex-dev/base/lb2.pdf differ diff --git a/macros/latex-dev/base/letter.pdf b/macros/latex-dev/base/letter.pdf index 08b5b52d86..46adfcc798 100644 Binary files a/macros/latex-dev/base/letter.pdf and b/macros/latex-dev/base/letter.pdf differ diff --git a/macros/latex-dev/base/lgc2.pdf b/macros/latex-dev/base/lgc2.pdf index bc13c55acb..c60439b2de 100644 Binary files a/macros/latex-dev/base/lgc2.pdf and b/macros/latex-dev/base/lgc2.pdf differ diff --git a/macros/latex-dev/base/lppl.pdf b/macros/latex-dev/base/lppl.pdf index 1240d11e78..ecb66844e2 100644 Binary files a/macros/latex-dev/base/lppl.pdf and b/macros/latex-dev/base/lppl.pdf differ diff --git a/macros/latex-dev/base/ltclass.dtx b/macros/latex-dev/base/ltclass.dtx index a525b6f573..63c42f6cd0 100644 --- a/macros/latex-dev/base/ltclass.dtx +++ b/macros/latex-dev/base/ltclass.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltclass.dtx} - [2022/10/22 v1.5e LaTeX Kernel (Class & Package Interface)] + [2022/11/16 v1.5f LaTeX Kernel (Class & Package Interface)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltclass.dtx} @@ -2813,6 +2813,7 @@ % unknown option. % \changes{v1.3h}{2020/01/28}{Allow spaces in option string and display % only unknown options not the whole option list (gh/256)} +% \changes{v1.5f}{2022/11/16}{Introduce key 'nowarn' on filecontents (gh/958)} % \begin{macrocode} \def\filec@ntents@opt[#1]{% \edef\@fortmp{\zap@space#1 \@empty}% @@ -2821,7 +2822,7 @@ \csname filec@ntents@\reserved@a\endcsname \else \@latex@error{Unknown filecontents option \reserved@a}% - {Valid options are force (or overwrite), nosearch, noheader}% + {Valid options are force (or overwrite), nosearch, noheader, nowarn}% \fi}% \filec@ntents } @@ -2849,6 +2850,18 @@ \let\filec@ntents@checkdir\@empty \def\filec@ntents@where{exists on the system} % \end{macrocode} +% Option \texttt{nowarn} does not show any warning on the terminal +% but still writes it to the \texttt{.log}. +% \changes{v1.5f}{2022/11/16}{Introduce key 'nowarn' on filecontents (gh/958)} +% \begin{macrocode} +\def\filec@ntents@nowarn{% + \let\filec@ntents@warning\@latex@note@no@line +} +% \end{macrocode} +% By default we show terminal warnings. +% \begin{macrocode} +\let\filec@ntents@warning\@latex@warning@no@line +% \end{macrocode} % % \begin{macrocode} \begingroup% @@ -2925,6 +2938,8 @@ % on the terminal. % \changes{v1.3g}{2020/01/27}{Fix typo in error message} % \changes{v1.3j}{2020/02/20}{Fix missing quotes around file name (gh/284)} +% \changes{v1.5f}{2022/11/16}{Introduce key 'nowarn' on filecontents (gh/958)} +% \changes{v1.5f}{2022/11/16}{Do not show "current dir" in message (gh/917)} % \begin{macrocode} \ch@ck7\reserved@c\write\relax% \if@filesw% % Foul ... trying to overwrite \jobname! @@ -2932,8 +2947,8 @@ write to the file you are reading from!\MessageBreak% Data is written to screen instead.}% \else% - \@latex@warning@no@line% - {Writing or overwriting file `\@currdir\@curr@file'}% + \filec@ntents@warning% + {Writing or overwriting file `\@curr@file'}% \immediate\openout\reserved@c\q@curr@file\relax% \fi% \fi% diff --git a/macros/latex-dev/base/ltcmd.dtx b/macros/latex-dev/base/ltcmd.dtx index 14d6756f5c..30a1908c47 100644 --- a/macros/latex-dev/base/ltcmd.dtx +++ b/macros/latex-dev/base/ltcmd.dtx @@ -34,8 +34,8 @@ %%% From File: ltcmd.dtx % % \begin{macrocode} -\def\ltcmdversion{v1.1a} -\def\ltcmddate{2022-08-16} +\def\ltcmdversion{v1.1b} +\def\ltcmddate{2022-11-29} % \end{macrocode} % %<*driver> @@ -2401,21 +2401,28 @@ % \@@_show_command:NnNNwN, % \@@_show_expandable:N, % \@@_show_expandable:NnNNNNnN, -% \@@_show_command_aux:nNNn, +% \@@_show_command_aux:NnNNn, % \@@_show_environment:N, +% \@@_show:x, % } % These commands just expand the command once to reveal its innards, % then pass the type of command, the control sequence, the signature, -% and the code macro to \cs{@@_show_command_aux:nNNn}. +% and the code macro to \cs{@@_show_command_aux:NnNNn}. % \begin{macrocode} \cs_new_protected:Npn \@@_show_command:N #1 { \exp_after:wN \@@_show_command:NnNNwN #1 \q_@@ #1 } \cs_new_protected:Npn \@@_show_command:NnNNwN #1 #2 #3 #4 #5 \q_@@ #6 - { \@@_show_command_aux:nNNn { document~command } #6 #4 {#2} } + { + \@@_show_command_aux:NnNNn \tl_show:x + { document~command } #6 #4 {#2} + } \cs_new_protected:Npn \@@_show_expandable:N #1 { \exp_after:wN \@@_show_expandable:NnNNNNnN #1 #1 } \cs_new_protected:Npn \@@_show_expandable:NnNNNNnN #1 #2 #3 #4 #5 #6 #7 #8 - { \@@_show_command_aux:nNNn { expandable~document~command } #8 #5 {#2} } + { + \@@_show_command_aux:NnNNn \tl_show:x + { expandable~document~command } #8 #5 {#2} + } % \end{macrocode} % % Now just print everything in the required format. The auxiliary @@ -2423,27 +2430,31 @@ % \cs{l_@@_tmpa_tl}, so we ust use that here: % \changes{v1.0j}{2021/13/31} % {Make \cs{ShowCommand} stop for interaction} +% \changes{v1.1b}{2022/11/30} +% {Don't stop for the \cs{begin} part of an environment} % \begin{macrocode} -\cs_new_protected:Npn \@@_show_command_aux:nNNn #1 #2 #3 #4 +\cs_new_protected:Npn \@@_show_command_aux:NnNNn #1 #2 #3 #4 #5 { - \@@_split_signature:n {#4} - \tl_show:x + \@@_split_signature:n {#5} + #1 { - \token_to_str:N #2 = #1: \iow_newline: + \token_to_str:N #3 = #2: \iow_newline: \tl_use:N \l_@@_tmpa_tl - -> \cs_replacement_spec:N #3 + -> \cs_replacement_spec:N #4 } } % \end{macrocode} % % We can reuse most of the above to show an environment, except that % we need to ensure that the proper \cs[no-index]{environment~\ldots} -% are passed to \cs{@@_show_command_aux:nNNn}. Additionally, when +% are passed to \cs{@@_show_command_aux:NnNNn}. Additionally, when % |\ShowCommand\foo| is used (if |foo| is an environment), we show % |\endfoo| as well, and when |\ShowCommand\endfoo| is used, change % that to |\ShowCommand\foo| and do the same. % \changes{v1.0j}{2021/13/31} % {Make \cs{ShowCommand} stop for interaction} +% \changes{v1.1b}{2022/11/30} +% {Don't stop for the \cs{begin} part of an environment} % \begin{macrocode} \cs_new_protected:Npn \@@_show_environment:N #1 { @@ -2459,12 +2470,14 @@ { \use:x { - \@@_show_command_aux:nNNn { document~environment } + \@@_show_command_aux:NnNNn \@@_show:x { document~environment } { \exp_not:N \begin {#3} } \exp_not:c { environment~ #3 ~ code } {#2} } } +\cs_new_protected:Npn \@@_show:x #1 + { \iow_term:x { > ~ #1 . \iow_newline: } } \cs_new_protected:Npn \@@_show_environment_end:N #1 { \exp_args:NNx \@@_check_end:Nn \l_@@_tmpa_tl { \cs_to_str:N #1 } @@ -2473,10 +2486,15 @@ % \end{macrocode} % % And, of course, add \cs{__kernel_cmd_if_xparse:NTF} and -% \cs{@@_show:N} to \cs{@showcommandlisthook}: +% \cs{@@_show:N} to \cs{@showcommandlisthook} and to +% \cs{@showenvironmentlisthook} (\cs{@@_show:N} takes care of the +% environment case as well, so both entries are identical): +% \changes{v1.1b}{2022-11-29}{Add \cs{@showenvironmentlisthook}} % \begin{macrocode} \tl_gput_right:Nn \@showcommandlisthook { { \__kernel_cmd_if_xparse:NTF \@@_show:N } } +\tl_gput_right:Nn \@showenvironmentlisthook + { { \__kernel_cmd_if_xparse:NTF \@@_show:N } } % \end{macrocode} % \end{macro} % diff --git a/macros/latex-dev/base/ltcmdhooks-code.pdf b/macros/latex-dev/base/ltcmdhooks-code.pdf index 654c4f6a2d..b324da26c9 100644 Binary files a/macros/latex-dev/base/ltcmdhooks-code.pdf and b/macros/latex-dev/base/ltcmdhooks-code.pdf differ diff --git a/macros/latex-dev/base/ltcmdhooks-doc.pdf b/macros/latex-dev/base/ltcmdhooks-doc.pdf index a036d2e748..42222eb416 100644 Binary files a/macros/latex-dev/base/ltcmdhooks-doc.pdf and b/macros/latex-dev/base/ltcmdhooks-doc.pdf differ diff --git a/macros/latex-dev/base/ltdefns.dtx b/macros/latex-dev/base/ltdefns.dtx index bd820e7cf2..c604bd9620 100644 --- a/macros/latex-dev/base/ltdefns.dtx +++ b/macros/latex-dev/base/ltdefns.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltdefns.dtx} - [2022/05/22 v1.5r LaTeX Kernel (definition commands)] + [2022/11/24 v1.5s LaTeX Kernel (definition commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltdefns.dtx} @@ -784,7 +784,9 @@ % not take arguments. (but may contain |\par|s) % % Make sure that an attempt to define a `graf' or `group' environment -% fails. +% fails by temporarily letting the undefined \verb=\...= (begin code) to +% the definition of \verb=\end...= and as a result we get an error if that +% has a definition. % \begin{macrocode} \long\def\@newenv#1#2#3#4{% \@ifundefined{#1}% @@ -1641,6 +1643,7 @@ % \end{macrocode} % % \begin{macro}{\declare@commandcopy} +% \begin{macro}{\declare@commandcopy@do} % Start by checking if the command is already defined. The proper action is % taken by each specific command above. If all's good, then % \cs{robust@command@act} is called with the proper arguments as described @@ -1650,11 +1653,14 @@ \long\def\declare@commandcopy#1#2#3#4{% \edef\reserved@a{\@expl@cs@to@str@@N#3}% \@ifundefined\reserved@a{#1}{#2}% - {\robust@command@act - \@declarecommandcopylisthook#4% - \declare@commandcopy@let{#3#4}}} + {\declare@commandcopy@do{#3}{#4}}} +\long\def\declare@commandcopy@do#1#2{% + \robust@command@act + \@declarecommandcopylisthook#2% + \declare@commandcopy@let{#1#2}} % \end{macrocode} % \end{macro} +% \end{macro} % % \begin{macro}{\@declarecommandcopylisthook} % The initial definition of \cs{@declarecommandcopylisthook} contains the @@ -1694,6 +1700,64 @@ % \end{macro} % % +% \begin{macrocode} +% +%\IncludeInRelease{2023-06-01}{\DeclareEnvironmentCopy} +% {Add \NewEnvironmentCopy, \RenewEnvironmentCopy, and \DeclareEnvironmentCopy}% +%<*2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macro}{\NewEnvironmentCopy} +% \begin{macro}{\RenewEnvironmentCopy} +% \begin{macro}{\DeclareEnvironmentCopy} +% If \verb=\#1= or \verb=\end#1= already exist one gets an error +% message talking about the problematical command (not the +% environment). +% The remainder of the \LaTeX{} run is probably badly +% broken and it is unlikely that continuing it gives +% reasonable results. +% \changes{v1.5s}{2022/11/24}{Add \cs{NewEnvironmentCopy}, +% \cs{RenewEnvironmentCopy}, and \cs{DeclareEnvironmentCopy} (gh/963)} +% \begin{macrocode} +\def\NewEnvironmentCopy{% + \declare@environmentcopy + {\@firstofone}% + {\@firstoftwo\@notdefinable}} +\def\RenewEnvironmentCopy{% + \declare@environmentcopy + {\@latex@error{Environment \reserved@a\space undefined}\@ehc + \@firstofone}% + {\@firstofone}} +\def\DeclareEnvironmentCopy{% + \declare@environmentcopy + {\@firstofone}% + {\@firstofone}} +\long\def\declare@environmentcopy#1#2#3#4{% + \edef\reserved@a{\@ifundefined{#3}{end#3}{#3}}% + \@ifundefined\reserved@a + {\def\reserved@a{#3}#1}% + {\def\reserved@a{#3}#2}% + {\ExpandArgs{cc}\declare@commandcopy@do{#3}{#4}% + \ExpandArgs{cc}\declare@commandcopy@do{end#3}{end#4}}} +% \end{macrocode} +% +% Now the rollback code. +% \begin{macrocode} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000-00-00}{\DeclareEnvironmentCopy} +% {Undefine \NewEnvironmentCopy, \RenewEnvironmentCopy, and \DeclareEnvironmentCopy}% +%\let\NewEnvironmentCopy\@undefined +%\let\RenewEnvironmentCopy\@undefined +%\let\DeclareEnvironmentCopy\@undefined +%\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% % \subsubsection{Showing robust commands} % % \begin{macro}{\ShowCommand} @@ -1747,7 +1811,6 @@ % \end{macrocode} % \end{macro} % -% % \begin{macrocode} % %\IncludeInRelease{2020-10-01}{\@if@DeclareRobustCommand} @@ -1836,6 +1899,7 @@ % % \begin{macro}{\@show@DeclareRobustCommand} % \begin{macro}{\show@kernel@robust@command} +% \begin{macro}{\@show@macro} % Showing the command is pretty simple. This command prints the top-level % expansion as \TeX's \cs{show} would, but with |robust macro:| rather than % just |macro:|, then a blank line and then \cs{show} the inner command. @@ -1863,12 +1927,14 @@ \robust@command@chk@safe#1% {\@if@newcommand#1% {\@show@newcommand}% - {\show}}% - {\show}% + {\@show@macro}}% + {\@show@macro}% #1} +\let\@show@macro\show % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} % % \end{macro} % @@ -1931,7 +1997,7 @@ \typeout{->\@expl@cs@replacement@spec@@N#1.^^J}% \expandafter\@show@newcommand@aux \csname\@backslashchar\@expl@cs@to@str@@N#1\expandafter\endcsname - \expandafter{#1}} + \expandafter{#1}\@show@tokens} % \end{macrocode} % % For a macro defined with, say, |\newcommand\foo[1][opt]{bar}|, it will @@ -1946,20 +2012,28 @@ % \end{verbatim} % If the command was defined with \cs{DeclareRobustCommand}, then another pair % of lines show the top-level expansion \verb*|\protect \foo |. -% -% The extra gymnastics with \cs{showtokens} ensures that \cs{showtokens} -% itself, and the internals of this macro aren't showed in the context lines. % \begin{macrocode} -\long\def\@show@newcommand@aux#1#2{% +\long\def\@show@newcommand@aux#1#2#3{% \typeout{> \string#1=\@expl@cs@prefix@spec@@N#1macro:}% - \edef\reserved@a{% - default \string##1=\expandafter\detokenize\@gobblethree#2.^^J% - \@expl@cs@argument@spec@@N#1->\@expl@cs@replacement@spec@@N#1}% - \showtokens\expandafter\expandafter\expandafter{\expandafter\reserved@a}} + #3{default \string##1=\expandafter\detokenize\@gobblethree#2.^^J% + \@expl@cs@argument@spec@@N#1->\@expl@cs@replacement@spec@@N#1}} % \end{macrocode} % \end{macro} % \end{macro} % +% \begin{macro}{\@show@tokens} +% This macro prints the contents of the token list (macro) |#1| using +% \cs{showtokens}. The \cs{expandafter} gymnastics ensures that +% \cs{showtokens} itself, and the internals of this macro aren't +% showed in the context lines. +% \begin{macrocode} +\long\def\@show@tokens#1{% + \edef\reserved@a{#1}% + \showtokens\expandafter + \expandafter\expandafter{\expandafter\reserved@a}} +% \end{macrocode} +% \end{macro} +% % Now the rollback code. % \begin{macrocode} % @@ -1985,6 +2059,124 @@ % \end{macro} % % +% \subsubsection{Showing environments} +% +% \begin{macro}{\ShowEnvironment} +% \changes{v1.5s}{2022/11/24}{Added \cs{ShowEnvironment}} +% +% \begin{macrocode} +% +%\IncludeInRelease{2023-06-01}{\ShowEnvironment} +% {Add \ShowEnvironment}% +%<*2ekernel|latexrelease> +% \end{macrocode} +% +% \cs{ShowEnvironment} is quite similar to \cs{ShowCommand}. We will +% pass the environment \meta{env} around as the macro +% \cs[no-index]{env}, because \cs{robust@command@act} expects a single +% token. +% \begin{macrocode} +\def\ShowEnvironment#1{% + \expandafter\@show@environment\csname #1\endcsname} +\long\def\@show@environment#1{% + \robust@command@act + \@showenvironmentlisthook#1% + \@show@normalenv#1} +% \end{macrocode} +% +% \begin{macro}{\@showenvironmentlisthook} +% This is similar to \cs{@showcommandlisthook}, but uses the dedicated +% versions for environments. +% \begin{macrocode} +\def\@showenvironmentlisthook{% + {\@if@DeclareRobustCommand \@show@DeclareRobustCommand@env}% + {\@if@newcommand \@show@newcommand@env}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@show@newcommand@env} +% \begin{macro}{\@show@DeclareRobustCommand@env} +% These are similar to the command versions below, except they say +% \enquote{environment} and call \cs{@show@environment@end} to print +% the \cs{end} part. +% \begin{macrocode} +\long\def\@show@newcommand@env#1{% + \@show@environment@begin#1% + \expandafter\@show@newcommand@aux + \csname\@backslashchar\@expl@cs@to@str@@N#1\expandafter\endcsname + \expandafter{#1}\@show@typeout + \@show@environment@end#1} +\long\def\@show@DeclareRobustCommand@env#1{% + \@show@environment@begin#1% + \begingroup + \let\@show@tokens\@show@typeout + \let\@show@macro\@show@nonstop + \expandafter\show@kernel@robust@command + \csname\@expl@cs@to@str@@N#1 \endcsname + \endgroup + \@show@environment@end#1} +\long\def\@show@environment@begin#1{% + \typeout{> \string\begin{\@expl@cs@to@str@@N#1}=environment:}% + \typeout{\@expl@cs@argument@spec@@N#1->% + \@expl@cs@replacement@spec@@N#1.^^J}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@show@normalenv} +% \begin{macro}{\@show@environment@end} +% A \enquote{normal} environment is straightforward. +% \cs{@show@environment@end} needs to check if the \cs{end} part is +% defined and show it accordingly, otherwise the output would show +% gibberish. +% \begin{macrocode} +\long\def\@show@normalenv#1{% + \@show@environment@begin#1% + \@show@environment@end#1} +\long\def\@show@environment@end#1{% + \expandafter\@show@environment@end@aux + \csname end\@expl@cs@to@str@@N#1\endcsname#1} +\long\def\@show@environment@end@aux#1#2{% + \@show@tokens{\string\end{\@expl@cs@to@str@@N#2}% + \ifx\relax#1=undefined% + \else:^^J\@expl@cs@argument@spec@@N#1->% + \@expl@cs@replacement@spec@@N#1% + \fi}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@show@nonstop} +% \begin{macro}{\@show@typeout} +% And here some auxiliaries: +% \begin{description} +% \item[\cs{@show@nonstop}] same output as \cs{show}, but doesn't +% stop for interaction; +% \item[\cs{@show@typeout}] same output as \cs{showtokens}, but +% doesn't stop for interaction. +% \end{description} +% \begin{macrocode} +\def\@show@nonstop#1{% + \typeout{> \string#1=\@expl@cs@prefix@spec@@N#1macro:^^J% + \@expl@cs@argument@spec@@N#1->\@expl@cs@replacement@spec@@N#1.}} +\def\@show@typeout#1{\typeout{> #1.^^J}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Now the rollback code. +% \begin{macrocode} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000-00-00}{\ShowEnvironment} +% {Undefine \ShowEnvironment}% +%\let\ShowEnvironment\@undefined +%\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% +% % \subsection{Internal defining commands} % % These commands are used internally to define other \LaTeX{} diff --git a/macros/latex-dev/base/ltfilehook-code.pdf b/macros/latex-dev/base/ltfilehook-code.pdf index 24cc0545ec..e031f84227 100644 Binary files a/macros/latex-dev/base/ltfilehook-code.pdf and b/macros/latex-dev/base/ltfilehook-code.pdf differ diff --git a/macros/latex-dev/base/ltfilehook-doc.pdf b/macros/latex-dev/base/ltfilehook-doc.pdf index 65e8fade02..ddc060fcc0 100644 Binary files a/macros/latex-dev/base/ltfilehook-doc.pdf and b/macros/latex-dev/base/ltfilehook-doc.pdf differ diff --git a/macros/latex-dev/base/ltfinal.dtx b/macros/latex-dev/base/ltfinal.dtx index 7f4bef3bcc..a19ffa8305 100644 --- a/macros/latex-dev/base/ltfinal.dtx +++ b/macros/latex-dev/base/ltfinal.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltfinal.dtx} - [2022/10/26 v2.2x LaTeX Kernel (Final Settings)] + [2022/11/30 v2.2y LaTeX Kernel (Final Settings)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltfinal.dtx} @@ -1151,9 +1151,7 @@ \cs_set_protected:Npn \reserved@a #1 { \cs_generate_variant:cn { text_ \str_lowercase:n {#1} case:nn } { V } - \cs_new_protected:cpx { Make#1case \c_space_tl \c_space_tl \c_space_tl } [##1] ##2 - { \exp_not:N \@@text@case@aux { \str_lowercase:n {#1} } {##1} {##2} } - \ExpandArgs { cnx } \NewExpandableDocumentCommand + \ExpandArgs { cnx } \NewExpandableDocumentCommand { Make#1case } { O{} +m } { \exp_not:c { Make#1case \c_space_tl \c_space_tl \c_space_tl } [####1] {####2} } @@ -1162,6 +1160,34 @@ \reserved@a { Lower } \reserved@a { Title } % \end{macrocode} +% \changes{v2.2y}{2022/11/30}{Set \cs{oe}/\cs{OE} equal to act as a marker for \pkg{babel}} +% Currently, \pkg{babel} uses the equivalence of \cs{oe} and \cs{OE} to force casing of +% some material, most notably in \cs{today}. To enable that to work, we have to set those +% commands equal even though the current case changing code does not work using this +% approach. +% \begin{macrocode} +\cs_new_protected:cpn { MakeLowercase \c_space_tl \c_space_tl \c_space_tl } [#1] #2 + { + \let \kernel@saved@OE \OE + \let \OE \oe + \@@text@case@aux { lower } {#1} {#2} + \let \OE \kernel@saved@OE + } +\cs_new_protected:cpn { MakeUppercase \c_space_tl \c_space_tl \c_space_tl } [#1] #2 + { + \let \kernel@saved@oe \oe + \let \oe \OE + \@@text@case@aux { upper } {#1} {#2} + \let \oe \kernel@saved@oe + } +\cs_new_protected:cpn { MakeTitlecase \c_space_tl \c_space_tl \c_space_tl } [#1] #2 + { + \let \kernel@saved@oe \oe + \let \oe \OE + \@@text@case@aux { title } {#1} {#2} + \let \oe \kernel@saved@oe + } +% \end{macrocode} % % \changes{v2.2u}{2022/06/02}{Add \cs{NoCaseChange}} % \changes{v2.2u}{2022/06/30}{Add \cs{AddToNoCaseChangeList}} diff --git a/macros/latex-dev/base/lthooks-code.pdf b/macros/latex-dev/base/lthooks-code.pdf index 9a8066d7e5..4b4b85023e 100644 Binary files a/macros/latex-dev/base/lthooks-code.pdf and b/macros/latex-dev/base/lthooks-code.pdf differ diff --git a/macros/latex-dev/base/lthooks-doc.pdf b/macros/latex-dev/base/lthooks-doc.pdf index 0fd3ab67ac..17e5d3a514 100644 Binary files a/macros/latex-dev/base/lthooks-doc.pdf and b/macros/latex-dev/base/lthooks-doc.pdf differ diff --git a/macros/latex-dev/base/ltluatex.pdf b/macros/latex-dev/base/ltluatex.pdf index 19a3267767..c99840f04b 100644 Binary files a/macros/latex-dev/base/ltluatex.pdf and b/macros/latex-dev/base/ltluatex.pdf differ diff --git a/macros/latex-dev/base/ltmarks-code.pdf b/macros/latex-dev/base/ltmarks-code.pdf index 4e28cba0f7..3204fd93a2 100644 Binary files a/macros/latex-dev/base/ltmarks-code.pdf and b/macros/latex-dev/base/ltmarks-code.pdf differ diff --git a/macros/latex-dev/base/ltmarks-doc.pdf b/macros/latex-dev/base/ltmarks-doc.pdf index 9ee6c42916..1203c72f0e 100644 Binary files a/macros/latex-dev/base/ltmarks-doc.pdf and b/macros/latex-dev/base/ltmarks-doc.pdf differ diff --git a/macros/latex-dev/base/ltmiscen.dtx b/macros/latex-dev/base/ltmiscen.dtx index b7b2bf5e31..69a7ac6963 100644 --- a/macros/latex-dev/base/ltmiscen.dtx +++ b/macros/latex-dev/base/ltmiscen.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltmiscen.dtx} - [2021/06/05 v1.1z LaTeX Kernel (Misc. Environments)] + [2022/11/06 v1.2a LaTeX Kernel (Misc. Environments)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltmiscen.dtx} @@ -270,9 +270,17 @@ % This is one of the few places where we already add data and rules % to a hook already in the kernel. % \changes{v1.0w}{1994/11/30}{(DPC) Use \cs{@dofilelist}} +% \changes{v1.2a}{2022/11/06}{Repeat release info at the end (gh/944)} % \begin{macrocode} \AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist} \AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings} +\AddToHook{enddocument/info}[kernel/release]{% + \let\show@release@info\wlog + \show@release@info{ ***********}% + \the\LaTeXReleaseInfo + \show@release@info{ ***********}} + +\DeclareHookRule{enddocument/info}{kernel/release}{before}{kernel/filelist} \DeclareHookRule{enddocument/info}{kernel/filelist}{before}{kernel/warnings} % \end{macrocode} % \end{macro} diff --git a/macros/latex-dev/base/ltnews.pdf b/macros/latex-dev/base/ltnews.pdf index 7074281150..3185ce2fc0 100644 Binary files a/macros/latex-dev/base/ltnews.pdf and b/macros/latex-dev/base/ltnews.pdf differ diff --git a/macros/latex-dev/base/ltnews.tex b/macros/latex-dev/base/ltnews.tex index 8d45f77cda..9a8de244c2 100644 --- a/macros/latex-dev/base/ltnews.tex +++ b/macros/latex-dev/base/ltnews.tex @@ -40,7 +40,7 @@ \ProvidesFile{ltnews.tex}% [2022/06/10 v1.4e Master file for ltnews*.tex (LaTeX Project)] -\providecommand*{\lastissue}{36} +\providecommand*{\lastissue}{37} \InputIfFileExists{ltnews-lastissue.cfg}{}{} diff --git a/macros/latex-dev/base/ltnews01.pdf b/macros/latex-dev/base/ltnews01.pdf index 8f5c23193e..8bc64afa46 100644 Binary files a/macros/latex-dev/base/ltnews01.pdf and b/macros/latex-dev/base/ltnews01.pdf differ diff --git a/macros/latex-dev/base/ltnews02.pdf b/macros/latex-dev/base/ltnews02.pdf index 332a568c99..6410f6c49a 100644 Binary files a/macros/latex-dev/base/ltnews02.pdf and b/macros/latex-dev/base/ltnews02.pdf differ diff --git a/macros/latex-dev/base/ltnews03.pdf b/macros/latex-dev/base/ltnews03.pdf index 10dcd6dabb..e6faf40788 100644 Binary files a/macros/latex-dev/base/ltnews03.pdf and b/macros/latex-dev/base/ltnews03.pdf differ diff --git a/macros/latex-dev/base/ltnews04.pdf b/macros/latex-dev/base/ltnews04.pdf index 140ae9bfc0..fdea7fa928 100644 Binary files a/macros/latex-dev/base/ltnews04.pdf and b/macros/latex-dev/base/ltnews04.pdf differ diff --git a/macros/latex-dev/base/ltnews05.pdf b/macros/latex-dev/base/ltnews05.pdf index b533e823d3..f45d499a6a 100644 Binary files a/macros/latex-dev/base/ltnews05.pdf and b/macros/latex-dev/base/ltnews05.pdf differ diff --git a/macros/latex-dev/base/ltnews06.pdf b/macros/latex-dev/base/ltnews06.pdf index ab0e8e6b0a..8fa7fd39ab 100644 Binary files a/macros/latex-dev/base/ltnews06.pdf and b/macros/latex-dev/base/ltnews06.pdf differ diff --git a/macros/latex-dev/base/ltnews07.pdf b/macros/latex-dev/base/ltnews07.pdf index b572c2afbb..deb8285b1d 100644 Binary files a/macros/latex-dev/base/ltnews07.pdf and b/macros/latex-dev/base/ltnews07.pdf differ diff --git a/macros/latex-dev/base/ltnews08.pdf b/macros/latex-dev/base/ltnews08.pdf index cfe3a2e383..2127ebe3a2 100644 Binary files a/macros/latex-dev/base/ltnews08.pdf and b/macros/latex-dev/base/ltnews08.pdf differ diff --git a/macros/latex-dev/base/ltnews09.pdf b/macros/latex-dev/base/ltnews09.pdf index e0d106d0f6..d731efbd39 100644 Binary files a/macros/latex-dev/base/ltnews09.pdf and b/macros/latex-dev/base/ltnews09.pdf differ diff --git a/macros/latex-dev/base/ltnews10.pdf b/macros/latex-dev/base/ltnews10.pdf index 4c9e88504a..5d2967891b 100644 Binary files a/macros/latex-dev/base/ltnews10.pdf and b/macros/latex-dev/base/ltnews10.pdf differ diff --git a/macros/latex-dev/base/ltnews11.pdf b/macros/latex-dev/base/ltnews11.pdf index 8f61d02d4d..364f3ab434 100644 Binary files a/macros/latex-dev/base/ltnews11.pdf and b/macros/latex-dev/base/ltnews11.pdf differ diff --git a/macros/latex-dev/base/ltnews12.pdf b/macros/latex-dev/base/ltnews12.pdf index 10deb7706e..7cccdcc6a4 100644 Binary files a/macros/latex-dev/base/ltnews12.pdf and b/macros/latex-dev/base/ltnews12.pdf differ diff --git a/macros/latex-dev/base/ltnews13.pdf b/macros/latex-dev/base/ltnews13.pdf index 098589bd93..5aa1175b0c 100644 Binary files a/macros/latex-dev/base/ltnews13.pdf and b/macros/latex-dev/base/ltnews13.pdf differ diff --git a/macros/latex-dev/base/ltnews14.pdf b/macros/latex-dev/base/ltnews14.pdf index 9c3dc54f14..02063e4e90 100644 Binary files a/macros/latex-dev/base/ltnews14.pdf and b/macros/latex-dev/base/ltnews14.pdf differ diff --git a/macros/latex-dev/base/ltnews15.pdf b/macros/latex-dev/base/ltnews15.pdf index 7678526dbc..1ff4a5662e 100644 Binary files a/macros/latex-dev/base/ltnews15.pdf and b/macros/latex-dev/base/ltnews15.pdf differ diff --git a/macros/latex-dev/base/ltnews16.pdf b/macros/latex-dev/base/ltnews16.pdf index e81dd332d6..04f5796d12 100644 Binary files a/macros/latex-dev/base/ltnews16.pdf and b/macros/latex-dev/base/ltnews16.pdf differ diff --git a/macros/latex-dev/base/ltnews17.pdf b/macros/latex-dev/base/ltnews17.pdf index a3bf39bcf2..a601da8823 100644 Binary files a/macros/latex-dev/base/ltnews17.pdf and b/macros/latex-dev/base/ltnews17.pdf differ diff --git a/macros/latex-dev/base/ltnews18.pdf b/macros/latex-dev/base/ltnews18.pdf index e754202b75..89350a011c 100644 Binary files a/macros/latex-dev/base/ltnews18.pdf and b/macros/latex-dev/base/ltnews18.pdf differ diff --git a/macros/latex-dev/base/ltnews19.pdf b/macros/latex-dev/base/ltnews19.pdf index 3288407f59..aa27ba08dc 100644 Binary files a/macros/latex-dev/base/ltnews19.pdf and b/macros/latex-dev/base/ltnews19.pdf differ diff --git a/macros/latex-dev/base/ltnews20.pdf b/macros/latex-dev/base/ltnews20.pdf index dd66d032cd..402394cc48 100644 Binary files a/macros/latex-dev/base/ltnews20.pdf and b/macros/latex-dev/base/ltnews20.pdf differ diff --git a/macros/latex-dev/base/ltnews21.pdf b/macros/latex-dev/base/ltnews21.pdf index 18b01c53e1..e4ea9cc255 100644 Binary files a/macros/latex-dev/base/ltnews21.pdf and b/macros/latex-dev/base/ltnews21.pdf differ diff --git a/macros/latex-dev/base/ltnews22.pdf b/macros/latex-dev/base/ltnews22.pdf index fa05f6a59f..5ee6bfc24d 100644 Binary files a/macros/latex-dev/base/ltnews22.pdf and b/macros/latex-dev/base/ltnews22.pdf differ diff --git a/macros/latex-dev/base/ltnews23.pdf b/macros/latex-dev/base/ltnews23.pdf index fa67d7822e..c2caca4c16 100644 Binary files a/macros/latex-dev/base/ltnews23.pdf and b/macros/latex-dev/base/ltnews23.pdf differ diff --git a/macros/latex-dev/base/ltnews24.pdf b/macros/latex-dev/base/ltnews24.pdf index a991678ddd..3c5ede15d2 100644 Binary files a/macros/latex-dev/base/ltnews24.pdf and b/macros/latex-dev/base/ltnews24.pdf differ diff --git a/macros/latex-dev/base/ltnews25.pdf b/macros/latex-dev/base/ltnews25.pdf index 52aef54c0c..885993792d 100644 Binary files a/macros/latex-dev/base/ltnews25.pdf and b/macros/latex-dev/base/ltnews25.pdf differ diff --git a/macros/latex-dev/base/ltnews26.pdf b/macros/latex-dev/base/ltnews26.pdf index 09e49e79ae..299a726a8e 100644 Binary files a/macros/latex-dev/base/ltnews26.pdf and b/macros/latex-dev/base/ltnews26.pdf differ diff --git a/macros/latex-dev/base/ltnews27.pdf b/macros/latex-dev/base/ltnews27.pdf index fa8a5fcf11..cc8f3e4896 100644 Binary files a/macros/latex-dev/base/ltnews27.pdf and b/macros/latex-dev/base/ltnews27.pdf differ diff --git a/macros/latex-dev/base/ltnews28.pdf b/macros/latex-dev/base/ltnews28.pdf index ac868bf0ed..9366cf0426 100644 Binary files a/macros/latex-dev/base/ltnews28.pdf and b/macros/latex-dev/base/ltnews28.pdf differ diff --git a/macros/latex-dev/base/ltnews29.pdf b/macros/latex-dev/base/ltnews29.pdf index 80a19569bf..8dbbb56102 100644 Binary files a/macros/latex-dev/base/ltnews29.pdf and b/macros/latex-dev/base/ltnews29.pdf differ diff --git a/macros/latex-dev/base/ltnews30.pdf b/macros/latex-dev/base/ltnews30.pdf index 68d5d8afb1..7a217b657a 100644 Binary files a/macros/latex-dev/base/ltnews30.pdf and b/macros/latex-dev/base/ltnews30.pdf differ diff --git a/macros/latex-dev/base/ltnews31.pdf b/macros/latex-dev/base/ltnews31.pdf index 54e5e2a830..c4a8f385eb 100644 Binary files a/macros/latex-dev/base/ltnews31.pdf and b/macros/latex-dev/base/ltnews31.pdf differ diff --git a/macros/latex-dev/base/ltnews32.pdf b/macros/latex-dev/base/ltnews32.pdf index 17264132fc..2e8fc1b80b 100644 Binary files a/macros/latex-dev/base/ltnews32.pdf and b/macros/latex-dev/base/ltnews32.pdf differ diff --git a/macros/latex-dev/base/ltnews33.pdf b/macros/latex-dev/base/ltnews33.pdf index d91676a1c0..05ed870d0b 100644 Binary files a/macros/latex-dev/base/ltnews33.pdf and b/macros/latex-dev/base/ltnews33.pdf differ diff --git a/macros/latex-dev/base/ltnews34.pdf b/macros/latex-dev/base/ltnews34.pdf index 9074b39850..5648f3e89e 100644 Binary files a/macros/latex-dev/base/ltnews34.pdf and b/macros/latex-dev/base/ltnews34.pdf differ diff --git a/macros/latex-dev/base/ltnews35.pdf b/macros/latex-dev/base/ltnews35.pdf index bffff429ce..2bab979d1a 100644 Binary files a/macros/latex-dev/base/ltnews35.pdf and b/macros/latex-dev/base/ltnews35.pdf differ diff --git a/macros/latex-dev/base/ltnews36.pdf b/macros/latex-dev/base/ltnews36.pdf index bd3fd8be10..575e2b9feb 100644 Binary files a/macros/latex-dev/base/ltnews36.pdf and b/macros/latex-dev/base/ltnews36.pdf differ diff --git a/macros/latex-dev/base/ltnews36.tex b/macros/latex-dev/base/ltnews36.tex index d6df801db2..b3f66564cb 100644 --- a/macros/latex-dev/base/ltnews36.tex +++ b/macros/latex-dev/base/ltnews36.tex @@ -262,10 +262,11 @@ will give the expected result: {\fontfamily{cmr} \bfseries \textsc{\textsl{Bold Slanted Small Caps}}; \textsc{\textit{Bold Italic Small Caps}}}. -Given that the Computer Modern fonts in \texttt{T1} do not have real italic small caps but only -slanted small caps, the latter is substituted for the former, which is -why above both work but you see no difference between the two (and in the log you get a -substitution warning for the \cs{textit}\cs{textsc} shape combination). +Given that the Computer Modern fonts in \texttt{T1} do not have real +italic small caps but only slanted small caps, the latter is +substituted for the former. This is why both work in the above, but +there is no difference between the two (and you get a substitution +warning for the \cs{textit}\cs{textsc} shape combination). % \githubissue{782} diff --git a/macros/latex-dev/base/ltnews37.pdf b/macros/latex-dev/base/ltnews37.pdf new file mode 100644 index 0000000000..a9216f04fd Binary files /dev/null and b/macros/latex-dev/base/ltnews37.pdf differ diff --git a/macros/latex-dev/base/ltnews37.tex b/macros/latex-dev/base/ltnews37.tex new file mode 100644 index 0000000000..4ce8fcccc9 --- /dev/null +++ b/macros/latex-dev/base/ltnews37.tex @@ -0,0 +1,378 @@ +% \iffalse meta-comment +% +% Copyright 2021-2023 +% The LaTeX Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% -—————————————— +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% https://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008 or later. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews37.tex +% +% This is issue 37 of LaTeX News. + +\NeedsTeXFormat{LaTeX2e}[2020-02-02] + +\documentclass{ltnews} + +%% Maybe needed only for Chris' inadequate system: +\providecommand\Dash {\unskip \textemdash} + +%% NOTE: Chris' preferred hyphens! +%%\showhyphens{parameters} +%% \hyphenation{because parameters parameter} + +\usepackage[T1]{fontenc} + +\usepackage{lmodern,url,hologo} + +\usepackage{csquotes} +\usepackage{multicol} +\usepackage{color} + +\providecommand\hook[1]{\texttt{#1}} + +\providecommand\meta[1]{$\langle$\textrm{\itshape#1}$\rangle$} +\providecommand\option[1]{\texttt{#1}} +\providecommand\env[1]{\texttt{#1}} +\providecommand\Arg[1]{\texttt\{\meta{#1}\texttt\}} + + +\providecommand\eTeX{\hologo{eTeX}} +\providecommand\XeTeX{\hologo{XeTeX}} +\providecommand\LuaTeX{\hologo{LuaTeX}} +\providecommand\pdfTeX{\hologo{pdfTeX}} +\providecommand\MiKTeX{\hologo{MiKTeX}} +\providecommand\CTAN{\textsc{ctan}} +\providecommand\TL{\TeX\,Live} +\providecommand\githubissue[2][]{\ifhmode\unskip\fi + \quad\penalty500\strut\nobreak\hfill + \mbox{\small\slshape(% + \href{https://github.com/latex3/latex2e/issues/\getfirstgithubissue#2 \relax}% + {github issue#1 #2}% + )}% + \par\smallskip} +%% But Chris has to mostly disable \href for his TEXPAD app: +%% \def\href #1{} % Only For Chris' deficient TeX engine + +% simple solution right now (just link to the first issue if there are more) +\def\getfirstgithubissue#1 #2\relax{#1} + +\providecommand\sxissue[1]{\ifhmode\unskip + \else + % githubissue preceding + \vskip-\smallskipamount + \vskip-\parskip + \fi + \quad\penalty500\strut\nobreak\hfill + \mbox{\small\slshape(\url{https://tex.stackexchange.com/#1})}\par} + +\providecommand\gnatsissue[2]{\ifhmode\unskip\fi + \quad\penalty500\strut\nobreak\hfill + \mbox{\small\slshape(% + \href{https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=#1\%2F\getfirstgithubissue#2 \relax}% + {gnats issue #1/#2}% + )}% + \par} + +\let\cls\pkg +\providecommand\env[1]{\texttt{#1}} +\providecommand\acro[1]{\textsc{#1}} + +\vbadness=1400 % accept slightly empty columns + + +\makeatletter +% maybe not the greatest design but normally we wouldn't have subsubsections +\renewcommand{\subsubsection}{% + \@startsection {subsubsection}{2}{0pt}{1.5ex \@plus 1ex \@minus .2ex}% + {-1em}{\@subheadingfont\colonize}% +} +\providecommand\colonize[1]{#1:} +\makeatother + +\let\finalvspace\vspace % for document layout fixes + +% Undo ltnews's \verbatim@font with active < and > +\makeatletter +\def\verbatim@font{% + \normalsize\ttfamily} +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\providecommand\tubcommand[1]{} +\tubcommand{\input{tubltmac}} + +\publicationmonth{June} +\publicationyear{2023 --- DRAFT version for upcoming release} + +\publicationissue{37} + +\begin{document} + +\tubcommand{\addtolength\textheight{4.2pc}} % only for TUB + +\maketitle +{\hyphenpenalty=10000 \exhyphenpenalty=10000 \spaceskip=3.33pt \hbadness=10000 +\tableofcontents} + +\setlength\rightskip{0pt plus 3em} + + +\medskip + + +\section{Introduction} + + +\section{New or improved commands} + + + +\subsection{Providing copy and show functions for environments} + +To copy a command definition we have introduced \cs{NewCommandCopy} in +2022. This even allows you to copy commands that consist of several internal +components, such as robust commands or those with a complex signature. +To do the same with environments, e.g., to define the environment +\env{myitemize} to be equivalent to \env{itemize}, you can now write +\begin{verbatim} + \NewEnvironmentCopy{myitemize}{itemize} +\end{verbatim} +There are also \cs{Renew...}\ and \cs{Declare...}, which may be useful +depending on the circumstances. + +In addition, we offer a \cs{ShowEnvironment} command, which displays the +\cs{begin} and \cs{end} code of the environment passed as an +argument. E.g., \verb=\ShowEnvironment{center}= results in the +following output: +\begin{verbatim} + > \begin{center}=environment: + > ->\trivlist \centering \item \relax . + } + l. ...\ShowEnvironment{center} + > \end{center}: + > ->\endtrivlist . + } + l. ...\ShowEnvironment{center} +\end{verbatim} +% +\githubissue{963} + + + + +\section{Code improvements} + +\subsection{\pkg{doc}: Index \texttt{\textbackslash\textvisiblespace} correctly} + +\emph{to write} +% +\githubissue{943} + + +\subsection{\pkg{doc}: Support the \pkg{upquote} package} + +The default quote and backquote characters in typewriter fonts are +typographical quotes, e.g., the input +\begin{verbatim} + \verb*/`prog 'my input'`/ +\end{verbatim} + is rendered as \verb*/`prog 'my input'`/ and not as +% +\begingroup % code to mimic upquote.sty +\catcode`'=\active +\catcode``=\active +\makeatletter +\g@addto@macro\@noligs + {\let'\textquotesingle + \let`\textasciigrave + \ifx\encodingdefault\upquote@OTone + \ifx\ttdefault\upquote@cmtt + \def'{\char13 }% + \def`{\char18 }% + \fi\fi} +\endgroup +% +\verb*/`prog 'my input'`/ as preferred by many programmers. + +This can be adjusted, for example, with the \pkg{upquote} package, +which results in the second output. However, for historical reasons +\pkg{doc} had its own definition of \cs{verb} and \env{verbatim} and +as a consequence the two packages did not cooperate. This has now +been fixed and loading \pkg{upquote} together with \pkg{doc} has the +desired effect. +% +\githubissue{953} + + +\subsection{New key for \env{filecontents}} + +The \env{filecontents} environment warns on the terminal if a file +gets overwritten even if that is intentional, +e.g., when you write a temporary file over and over again. To make +the warning less noisy in this case we added a new \texttt{nowarn} key +that redirects the overwriting warning to the transcript file. We +think that some record of the action is still required to help with +debugging, thus it is not completely silenced. The warning that +nothing gets written, because the file aready exists (and the +\texttt{force} key was not used), is not altered and still shows up on +the terminal. +% +\githubissue{958} + + + +\subsection{A further hook for shipping out pages} + +Since October 2020 the shipout process offers a number of hooks to +adjust what is happening before, during, and after the +\cs{shipout}. For example, with the \hook{shipout/before} hook, packages +can reset code they have altered (e.g., \cs{catcode}s during +verbatim-like processing) and with \hook{shipout/background} and +\hook{shipout/foreground} material can be added to the pages. +Details are given in \cite{37:ltshipout-doc}. However, what was +missing was a hook that allows a package writer to manipulate the +completed page (with foreground and background attached) just before +the actual shipout happens. + +For this we now provide the additional hook \hook{shipout}. One +use case (sometimes needed in print production) is to mirror the +whole page via \cs{reflectbox} including all the extra data that may +have been added into the fore- or background. +% +\githubissue{920} + + + +\subsection{Displaying release information in the \texttt{.log}} + +\LaTeX{} displays its release information at the very beginning of the +\LaTeX{} run on the terminal and also writes it to the transcript file +if that is already opened at this point. While this is normally true, +it is not the case if the \LaTeX{} run was started passing additional +\TeX{} code on the command line, e.g., +\begin{verbatim} +pdflatex '\PassOptionsToClass{11pt}{article} + \input{myarticle}' +\end{verbatim} +In this case the release information is displayed when +\cs{PassOptionsToClass} is processed but the transcript file is only +opened when the output file name is known, i.e., after \cs{input} has +been seen, and as a result the release information is only shown on +the terminal. + +To account for this scenario, we now repeat the release information +also at the very end of the transcript file where we can be sure that +it is open and ready to receive material. +% +\githubissue{944} + + + + + +\section{Bug fixes} + +\subsection{Incompatibility between \pkg{doc} and \pkg{unicode-math}} + +The \pkg{unicode-math} package alters the catcode of \verb=|= but does +not adjust its value for use in \pkg{doc}, with the result that +\enquote{or} module, i.e., $\langle A | B \rangle$ are displayed in a +strange way. This is now fixed with some firstaid code that will +eventually be moved into \pkg{unicode-math}. +% +\githubissue{820} + + +\subsection{A fix for \cs{hspace}} + +The change to \cs{hspace}, done in 2020 to make it \pkg{calc} aware, +had the unfortunate side effect that starting a paragraph with +\cs{hspace} would result in the execution of \cs{everypar} inside a +group (i.e., any local changes would immediately be revoked, breaking, +for example, \pkg{wrapfig} in that special situation). +% +This got fixed with the 2022-11 PL1 hotfix, so was already corrected in +the previous release, but only now documented in a newletter. +% +\githubissue{967} + + + +\section{Changes to packages in the \pkg{amsmath} category} + +\section{Changes to packages in the \pkg{graphics} category} + +\section{Changes to packages in the \pkg{tools} category} + + +%\medskip + +\begin{thebibliography}{9} + +\fontsize{9.3}{11.3}\selectfont + +\bibitem{37:ltshipout-doc} Frank Mittelbach, \LaTeX{}~Project~Team: + \emph{The \texttt{\upshape ltshipout} documentation}.\\ + Run \texttt{texdoc} \texttt{ltshipout-doc} to view. + +%\bibitem{37:blueprint} Frank Mittelbach and Chris Rowley: +% \emph{\LaTeX{} Tagged PDF \Dash A blueprint for a large project}.\\ +% \url{https://latex-project.org/publications/indexbyyear/2020/} + +%\bibitem{37:source2e} +% \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\ +% \url{https://latex-project.org/help/documentation/} + +%\bibitem{37:Lamport} +%Leslie Lamport. +%\newblock {\LaTeX}: {A} Document Preparation System: User's Guide and Reference +% Manual. +%\newblock \mbox{Addison}-Wesley, Reading, MA, USA, 2nd edition, 1994. +%\newblock ISBN 0-201-52983-1. +%\newblock Reprinted with corrections in 1996. +% +%\bibitem{37:ltnews32} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 32}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews32.pdf} +% +%\bibitem{37:ltnews34} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 34}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews34.pdf} +% +%\bibitem{37:ltnews35} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 35}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews35.pdf} +% +%\bibitem{37:fntguide} \LaTeX{} Project Team: +% \emph{\LaTeXe{} font selection}.\\ +% \url{https://latex-project.org/help/documentation/} +% +%\bibitem{37:ltfilehook-doc} Frank Mittelbach, Phelype Oleinik, \LaTeX{}~Project~Team: +% \emph{The \texttt{\upshape ltfilehook} documentation}.\\ +% Run \texttt{texdoc} \texttt{ltfilehook-doc} to view. +\end{thebibliography} + + + +\end{document} diff --git a/macros/latex-dev/base/ltpara-code.pdf b/macros/latex-dev/base/ltpara-code.pdf index 0fbaccad7a..0537eb4ec9 100644 Binary files a/macros/latex-dev/base/ltpara-code.pdf and b/macros/latex-dev/base/ltpara-code.pdf differ diff --git a/macros/latex-dev/base/ltpara-doc.pdf b/macros/latex-dev/base/ltpara-doc.pdf index 847135c79c..bbd4a35c70 100644 Binary files a/macros/latex-dev/base/ltpara-doc.pdf and b/macros/latex-dev/base/ltpara-doc.pdf differ diff --git a/macros/latex-dev/base/ltshipout-code.pdf b/macros/latex-dev/base/ltshipout-code.pdf index b05e3da93d..5c4df6d628 100644 Binary files a/macros/latex-dev/base/ltshipout-code.pdf and b/macros/latex-dev/base/ltshipout-code.pdf differ diff --git a/macros/latex-dev/base/ltshipout-doc.pdf b/macros/latex-dev/base/ltshipout-doc.pdf index 61d3c87b9f..6d28fe7faf 100644 Binary files a/macros/latex-dev/base/ltshipout-doc.pdf and b/macros/latex-dev/base/ltshipout-doc.pdf differ diff --git a/macros/latex-dev/base/ltshipout.dtx b/macros/latex-dev/base/ltshipout.dtx index ae29c1acad..7aa07f754b 100644 --- a/macros/latex-dev/base/ltshipout.dtx +++ b/macros/latex-dev/base/ltshipout.dtx @@ -32,8 +32,8 @@ %%% From File: ltshipout.dtx % % \begin{macrocode} -\providecommand\ltshipoutversion{v1.0m} -\providecommand\ltshipoutdate{2022/08/26} +\providecommand\ltshipoutversion{v1.0n} +\providecommand\ltshipoutdate{2022/11/08} % \end{macrocode} % %<*driver> @@ -75,7 +75,7 @@ % \providecommand\pkg[1]{\texttt{#1}} % % -% \title{The \texttt{ltshipout} package\thanks{This package has version +% \title{The \texttt{ltshipout} documentation\thanks{This file has version % \ltshipoutversion\ dated \ltshipoutdate, \copyright\ \LaTeX\ % Project.}} % @@ -241,6 +241,18 @@ % But being placed after the main box content it will be typeset % later and thus overprints it (i.e., is in the foreground). % +% \item[\hook{shipout}] +% This hook is executed after foreground and/or background +% material has been added, i.e., just in front of the actual +% shipout operation. Its purpose is to allow manipulation of the +% finalized box (stored in \cs{ShipoutBox}) with the extra +% material also in place (which is not yet the case in +% \hook{shipout/before}). +% +% It cannot be used to cancel the shipout operation via +% \cs{DiscardShipoutBox} (that has +% to happen in \hook{shipout/before}, if desired! +% % % \item[\hook{shipout/firstpage}] % @@ -296,7 +308,7 @@ % actual shipout. It is even run if there was a % \cs{DiscardShipoutBox} request in the document. % -% The other hooks (except \hook{shipout/after}) are added inside +% The other hooks (except \hook{shipout} and \hook{shipout/after}) are added inside % hboxes to the box being shipped out in the following order: % \begin{center} % \begin{tabular}{ll} @@ -307,9 +319,13 @@ % \hook{shipout/lastpage} & only on the last page \\ % \end{tabular} % \end{center} -% If any of the hooks has no code then that particular no box is +% If any of the hooks has no code then the corresponding box is % added at that point. % +% Once the (page) box has got the above extra content it can +% again be manipulated using the \hook{shipout} hook and then +% is shipped out for real. +% % Once the (page) box has been shipped out the \hook{shipout/after} % hook is called (while you are still inside the output routine). It % is not called if the shipout box was discarded. @@ -381,13 +397,16 @@ % % \fmi{Once we have a new mark mechanism available we can improve % on that and make sure that the declaration applies to the page -% that contains it.} +% that contains it --- not done (yet)} +% +% \cs{DiscardShipoutBox} cannot be used in any of the \hook{shipout/...} +% hooks other than \hook{shipout/before}. % \end{function} % % In the \pkg{atbegshi} package there are a number of additional % commands for use inside the \hook{shipout/before} hook. They % should normally not be needed any more as one can instead simply -% add code to the hooks \hook{shipout/before}, +% add code to the hooks \hook{shipout/before}, \hook{shipout}, % \hook{shipout/background} or % \hook{shipout/foreground}.\footnote{If that assumption turns out to % be wrong it would be trivial to change them to public functions @@ -401,7 +420,9 @@ % % \begin{variable}{pre_shipout_filter} % Under Lua\TeX{} the \texttt{pre\_shipout\_filter} Lua callback is -% provided which gets called immediately before the shipout primitive gets invoked. +% provided which gets called directly after the +% \hook{shipout} hook, immediately before the shipout +% primitive gets invoked. % The signature is % \begin{verbatim} % function( head) @@ -1014,15 +1035,20 @@ \_@@_add_foreground_box:n { \UseHook{shipout/lastpage} \@kernel@after@shipout@lastpage } - \bool_gset_true:N \g_@@_lastpage_handled_bool % \end{macrocode} % We record that we have handled the \hook{shipout/lastpage} hook % but only if we really did. % \changes{v1.0m}{2022/05/08}{Handle case where shipout/lastpage is % run too early (gh/813)} % \begin{macrocode} + \bool_gset_true:N \g_@@_lastpage_handled_bool } } +% \end{macrocode} +% +% \changes{v1.0n}{2022/11/08}{Add shipout hook (gh/920)} +% \begin{macrocode} + \hook_use:n {shipout} \@@_finalize_box: % \end{macrocode} % Finally we run the actual \TeX{} primitive for shipout. As that will @@ -1116,13 +1142,14 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{shipout/before,shipout/after, +% \begin{macro}{shipout/before,shipout,shipout/after, % shipout/foreground,shipout/background, -% shipout/firstpage, -% shipout/lastpage} +% shipout/firstpage,shipout/lastpage} % Declaring all hooks for the shipout code. +% \changes{v1.0n}{2022/11/08}{Add shipout hook (gh/920)} % \begin{macrocode} \hook_new:n{shipout/before} +\hook_new:n{shipout} \hook_new:n{shipout/after} \hook_new:n{shipout/foreground} \hook_new:n{shipout/background} diff --git a/macros/latex-dev/base/ltspace.dtx b/macros/latex-dev/base/ltspace.dtx index feb82730ec..30bda278fb 100644 --- a/macros/latex-dev/base/ltspace.dtx +++ b/macros/latex-dev/base/ltspace.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltspace.dtx} - [2020/05/06 v1.3n LaTeX Kernel (spacing)] + [2022/11/28 v1.3o LaTeX Kernel (spacing)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltspace.dtx} @@ -438,12 +438,13 @@ % \cs{setlength}. This way the \texttt{calc} package can operate on % the argument value. % \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)} +% \changes{v1.3o}{2022/11/28}{Support calc syntax without a group (gh/967)} % \begin{macrocode} % %<*2ekernel|latexrelease> %\IncludeInRelease{2020/10/01}% % {\@vspace@calcify}{Add calc support}% -\def\@vspace@calcify#1{\begingroup\setlength\skip@{#1}\vskip\skip@\endgroup} +\def\@vspace@calcify#1{\setlength\sp@ce@skip{#1}\vskip\sp@ce@skip} % %\EndIncludeInRelease % \end{macrocode} @@ -1261,12 +1262,21 @@ % {(RmS) Removed superfluous \cs{leavevmode} in \cs{@hspace} and % \cs{@hspacer}, as suggested by CAR.} % \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)} +% \changes{v1.3o}{2022/11/28}{Support calc syntax correctly (gh/967)} % \begin{macrocode} % %<*2ekernel|latexrelease> %\IncludeInRelease{2020/10/01}% % {\@hspace}{Support calc with \hspace}% -\def\@hspace#1{\begingroup\setlength\skip@{#1}\hskip\skip@\endgroup} +% \end{macrocode} +% We use a private register to calculate the space (if \pkg{calc} is used). Previously +% we used a group but that results in +% \cs{everypar} etc.\ being executed inside the group if the \cs{hspace} starts a paragraph. +% This is a bug fix so +% we do not provide rollback to the incorrect intermediate version. +% \begin{macrocode} +\newskip\sp@ce@skip +\def\@hspace#1{\setlength\sp@ce@skip{#1}\hskip\sp@ce@skip} % %\EndIncludeInRelease % \end{macrocode} diff --git a/macros/latex-dev/base/ltvers.dtx b/macros/latex-dev/base/ltvers.dtx index a170ce98e1..eae29f0f01 100644 --- a/macros/latex-dev/base/ltvers.dtx +++ b/macros/latex-dev/base/ltvers.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltvers.dtx} - [2022/02/28 v1.1i LaTeX Kernel (Version Info)] + [2022/11/06 v1.1j LaTeX Kernel (Version Info)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltvers.dtx} @@ -112,10 +112,10 @@ % %\edef\latexreleaseversion %<*2ekernel|latexrelease> - {2023-05-01} + {2023-06-01} % %<*2ekernel> -\def\patch@level{-0} +\def\patch@level{-1} % \end{macrocode} % % \begin{macro}{\development@branch@name} @@ -178,20 +178,33 @@ % by a loader (\texttt{.ini} file)} % \changes{v1.0v}{2015/08/23}{Allow negative patchlevel for pre-release} % \changes{v1.1e}{2020/01/31}{Allow for upcoming format as pre-release 0} +% \changes{v1.1j}{2022/11/06}{Repeat release info at the end (gh/944)} +% +% We store release info in the toks \cs{LaTeXReleaseInfo} to be +% used in \cs{everyjob} but also when \verb=\end{document}= is +% executed. +% Instead of using \cs{typeout} we use \cs{show@release@info} so +% that we can write to the log only by changing that to \cs{wlog}. +% \begin{macrocode} +\newtoks\LaTeXReleaseInfo +\everyjob\expandafter{\the\everyjob\the\LaTeXReleaseInfo} +\let\show@release@info\typeout +% \end{macrocode} +% % \begin{macrocode} \ifnum0\ifnum\patch@level=0 \ifx\development@branch@name\@empty 1\fi\fi>0 % - \everyjob\expandafter{\the\everyjob - \typeout{\fmtname\space <\fmtversion>}} + \LaTeXReleaseInfo\expandafter{\the\LaTeXReleaseInfo + \show@release@info{\fmtname\space <\fmtversion>}} \immediate \write16{\fmtname \space<\fmtversion>} \else\ifnum\patch@level>0 - \everyjob\expandafter{\the\everyjob - \typeout{\fmtname\space <\fmtversion> patch level \patch@level}} + \LaTeXReleaseInfo\expandafter{\the\LaTeXReleaseInfo + \show@release@info{\fmtname\space <\fmtversion> patch level \patch@level}} \immediate \write16{\fmtname\space <\fmtversion> patch level \patch@level} \else - \everyjob\expandafter{\the\everyjob - \typeout{\fmtname\space <\fmtversion> + \LaTeXReleaseInfo\expandafter{\the\LaTeXReleaseInfo + \show@release@info{\fmtname\space <\fmtversion> pre-release-\number-\patch@level\space \ifx\development@branch@name\@undefined \else \ifx\development@branch@name\@empty \else diff --git a/macros/latex-dev/base/ltx3info.pdf b/macros/latex-dev/base/ltx3info.pdf index fd0ac95b4c..122feaff59 100644 Binary files a/macros/latex-dev/base/ltx3info.pdf and b/macros/latex-dev/base/ltx3info.pdf differ diff --git a/macros/latex-dev/base/ltxdoc.dtx b/macros/latex-dev/base/ltxdoc.dtx index 46c324c590..6863349be3 100644 --- a/macros/latex-dev/base/ltxdoc.dtx +++ b/macros/latex-dev/base/ltxdoc.dtx @@ -30,7 +30,7 @@ % %\NeedsTeXFormat{LaTeX2e} %\ProvidesClass{ltxdoc} -% [2022/06/22 v2.1h Standard LaTeX documentation class] +% [2022/06/22 v2.1i Standard LaTeX documentation class] % %<*driver> \documentclass{ltxdoc} @@ -633,12 +633,15 @@ Bug reports can be opened (category \texttt{#1}) at\\% % % \changes{v2.1f}{2022/06/03}{define \cs{pkg} and other commands} % \changes{v2.1f}{2022/06/03}{allow \_ in macro names} -% Some feaures from l3doc.cls +% Some features from l3doc.cls % \changes{v2.1g}{2022/06/14}{define \cs{pkg} but delay until begin document} +% \changes{v2.1i}{2022/11/28}{Revert 2.1f and not use \cs{detokenize} for now (gh/962)} +% Eventually, \cs{cs} should get the definition from \pkg{l3doc} but for now we +% revert to the simple one from \pkg{doc}. % \begin{macrocode} -\DeclareRobustCommand\cs[1]{\texttt{\bslash\detokenize{#1}}}% +%\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}% -- def in doc.sty \AtBeginDocument{% - \renewcommand\PrintMacroName[1]{\MacroFont\detokenize{#1}}% +% \renewcommand\PrintMacroName[1]{\MacroFont\string #1\ }% -- def in doc.sty % \end{macrocode} % We provide those delated in case somebody has loaded \texttt{csquotes} % or makes some definitions in the preamble. diff --git a/macros/latex-dev/base/ltxdoc.pdf b/macros/latex-dev/base/ltxdoc.pdf index aff4835ebb..0e75ce008e 100644 Binary files a/macros/latex-dev/base/ltxdoc.pdf and b/macros/latex-dev/base/ltxdoc.pdf differ diff --git a/macros/latex-dev/base/makeindx.pdf b/macros/latex-dev/base/makeindx.pdf index 07c7f3aa06..8ebcab2ea6 100644 Binary files a/macros/latex-dev/base/makeindx.pdf and b/macros/latex-dev/base/makeindx.pdf differ diff --git a/macros/latex-dev/base/modguide.pdf b/macros/latex-dev/base/modguide.pdf index f818b299ac..0778d8eb49 100644 Binary files a/macros/latex-dev/base/modguide.pdf and b/macros/latex-dev/base/modguide.pdf differ diff --git a/macros/latex-dev/base/nfssfont.pdf b/macros/latex-dev/base/nfssfont.pdf index fd2dcfb5cc..601fa1592e 100644 Binary files a/macros/latex-dev/base/nfssfont.pdf and b/macros/latex-dev/base/nfssfont.pdf differ diff --git a/macros/latex-dev/base/proc.pdf b/macros/latex-dev/base/proc.pdf index 2005fa583b..97cc3e82c8 100644 Binary files a/macros/latex-dev/base/proc.pdf and b/macros/latex-dev/base/proc.pdf differ diff --git a/macros/latex-dev/base/slides.pdf b/macros/latex-dev/base/slides.pdf index 002f38d707..c18411078c 100644 Binary files a/macros/latex-dev/base/slides.pdf and b/macros/latex-dev/base/slides.pdf differ diff --git a/macros/latex-dev/base/slifonts.pdf b/macros/latex-dev/base/slifonts.pdf index b73bb5a036..8115e6ae86 100644 Binary files a/macros/latex-dev/base/slifonts.pdf and b/macros/latex-dev/base/slifonts.pdf differ diff --git a/macros/latex-dev/base/source2e.pdf b/macros/latex-dev/base/source2e.pdf index 42f74b42cd..d956472b5d 100644 Binary files a/macros/latex-dev/base/source2e.pdf and b/macros/latex-dev/base/source2e.pdf differ diff --git a/macros/latex-dev/base/syntonly.pdf b/macros/latex-dev/base/syntonly.pdf index fd876bf802..ef69d1da2e 100644 Binary files a/macros/latex-dev/base/syntonly.pdf and b/macros/latex-dev/base/syntonly.pdf differ diff --git a/macros/latex-dev/base/tlc2.pdf b/macros/latex-dev/base/tlc2.pdf index 2d3d123d1f..067c94c0c6 100644 Binary files a/macros/latex-dev/base/tlc2.pdf and b/macros/latex-dev/base/tlc2.pdf differ diff --git a/macros/latex-dev/base/tulm.pdf b/macros/latex-dev/base/tulm.pdf index d57694c1d0..57ead84747 100644 Binary files a/macros/latex-dev/base/tulm.pdf and b/macros/latex-dev/base/tulm.pdf differ diff --git a/macros/latex-dev/base/usrguide-historic.pdf b/macros/latex-dev/base/usrguide-historic.pdf index 325eac0a87..a390a49de9 100644 Binary files a/macros/latex-dev/base/usrguide-historic.pdf and b/macros/latex-dev/base/usrguide-historic.pdf differ diff --git a/macros/latex-dev/base/usrguide.pdf b/macros/latex-dev/base/usrguide.pdf index 52c0370645..263df7df63 100644 Binary files a/macros/latex-dev/base/usrguide.pdf and b/macros/latex-dev/base/usrguide.pdf differ diff --git a/macros/latex-dev/base/usrguide.tex b/macros/latex-dev/base/usrguide.tex index 32e12a1397..7234ac821c 100644 --- a/macros/latex-dev/base/usrguide.tex +++ b/macros/latex-dev/base/usrguide.tex @@ -865,7 +865,7 @@ specification then an error is issued. -\section{Copying and showing (robust) commands} +\section{Copying and showing (robust) commands and environments} If you want to (slightly) alter an existing command you may want to save the current definition under a new name and then use that in a @@ -911,9 +911,6 @@ token but need \enquote{constructing}, you can use \cs{ExpandArgs} as explained in Section~\ref{sec:preconstructing-csnames}. - - - \begin{decl} |\ShowCommand| \arg{cmd} \end{decl} @@ -926,6 +923,26 @@ also the actual payload code and in case of commands declared with \cs{NewDocumentCommand}, etc.\ it also gives you detailed information about the argument signature. +\begin{decl} + |\NewEnvironmentCopy| \arg{env} \arg{existing-env} \\ + |\RenewEnvironmentCopy| \arg{env} \arg{existing-env} \\ + |\DeclareEnvironmentCopy| \arg{env} \arg{existing-env} +\end{decl} + +This copies the definition for environment \meta{existing-env} to +\meta{env} (both the beginning and end code), i.e., it is simply +applying \cs{NewCommandCopy} twice to the internal commands that +define an environment, i.e., \cs{}\meta{env} and \cs{end}\meta{env}. +The differences between \cs{New...}, \cs{Renew...}, and +\cs{Declare...} are the usual ones. + +\begin{decl} + |\ShowEnvironment| \arg{env} +\end{decl} +This displays the meaning of the begin end end code for environment \meta{env}. + + + \section[Preconstructing command names \\ (or otherwise expanding arguments)] {Preconstructing command names (or otherwise expanding arguments)} diff --git a/macros/latex-dev/base/utf8ienc.pdf b/macros/latex-dev/base/utf8ienc.pdf index 5bbc4da5f0..4459986064 100644 Binary files a/macros/latex-dev/base/utf8ienc.pdf and b/macros/latex-dev/base/utf8ienc.pdf differ diff --git a/macros/latex-dev/base/webcomp.pdf b/macros/latex-dev/base/webcomp.pdf index 45d2350e67..1bf17cd5bd 100644 Binary files a/macros/latex-dev/base/webcomp.pdf and b/macros/latex-dev/base/webcomp.pdf differ -- cgit v1.2.3