diff options
Diffstat (limited to 'macros')
191 files changed, 1362 insertions, 201 deletions
diff --git a/macros/latex-dev/base/README.md b/macros/latex-dev/base/README.md index b1e0da2aef..95c699fdea 100644 --- a/macros/latex-dev/base/README.md +++ b/macros/latex-dev/base/README.md @@ -1,7 +1,7 @@ The LaTeX kernel ================ -Release 2020-02-02 pre-release 4 +Release 2020-10-01 pre-release 5 Overview -------- diff --git a/macros/latex-dev/base/alltt.pdf b/macros/latex-dev/base/alltt.pdf Binary files differindex 17dfc861e4..1e49f05ae1 100644 --- a/macros/latex-dev/base/alltt.pdf +++ b/macros/latex-dev/base/alltt.pdf diff --git a/macros/latex-dev/base/cfgguide.pdf b/macros/latex-dev/base/cfgguide.pdf Binary files differindex b5bfde7242..f5a3e68425 100644 --- a/macros/latex-dev/base/cfgguide.pdf +++ b/macros/latex-dev/base/cfgguide.pdf diff --git a/macros/latex-dev/base/changes.txt b/macros/latex-dev/base/changes.txt index bb0c31288b..96654ea52b 100644 --- a/macros/latex-dev/base/changes.txt +++ b/macros/latex-dev/base/changes.txt @@ -6,12 +6,32 @@ completeness or accuracy and it contains some references to files that are not part of the distribution. ================================================================================ +2020-03-05 Joseph Wright <joseph.wright@morningstar2.co.uk> + + * ltexpl.dtx: Pre-load xparse where expl3 does not define \NewDocumentCommand + +2020-03-02 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltfssini.dtx (section{Custom series settings for main document families}): + Ensure that \DeclareFontSeriesDefault is undefined + before using \newcommand in rollback (gh/295) + + * ltfssaxes.dtx (section{Changing the shape}): + Ensure that \ulcdefault, \swdefault and \sscdefault are undefined + before using \newcommand in rollback (gh/295) + +2020-02-25 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltfssini.dtx (section{Custom series settings for main document families}): + Drop any surplus ``m'' from \bfdef@ult, \mddef@ult and other + places (gh/291) + 2020-02-18 Frank Mittelbach <Frank.Mittelbach@latex-project.org> * ltmath.dtx (subsubsection{Flush left equations}): Make \mathindent a skip register to match amsmath (gh/252) - Separate formula and eqn number by a compressable space when + Separate formula and eqn number by a compressible space when fleqn option is in force. 2020-02-14 Frank Mittelbach <Frank.Mittelbach@latex-project.org> @@ -31,9 +51,32 @@ All changes above are only part of the development branch for the next release. ######################### +# 2020-02-02 PL 5 Release +######################### + +2020-02-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltfssaxes.dtx (subsection{Changing to a new series}): + Drop ``m'' in a fixed set of series values, + otherwise assume that the series + value is a long name such as "semibold" and leave it alone (gh/293)} + + * ltfssbas.dtx (section{Macros for setting up the tables}): + Drop one ``m'' in the series values in \DeclareFontShape if it is + on of a fixed sets of values and if so issue warning (gh/293) + + * ltdefns.dtx (subsection{Command definitions}): + Added \@gobblethree + +######################### # 2020-02-02 PL 4 Release ######################### +2020-02-24 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltfssbas.dtx (section{Macros for setting up the tables}): + Drop surplus ``m'' in series when defining fontshape (gh/289) + 2020-02-21 Frank Mittelbach <Frank.Mittelbach@latex-project.org> * ltclass.dtx (subsection{Providing shipment}): diff --git a/macros/latex-dev/base/classes.pdf b/macros/latex-dev/base/classes.pdf Binary files differindex 36dd536c82..f72dae4514 100644 --- a/macros/latex-dev/base/classes.pdf +++ b/macros/latex-dev/base/classes.pdf diff --git a/macros/latex-dev/base/clsguide.pdf b/macros/latex-dev/base/clsguide.pdf Binary files differindex 227220ee8b..b0459b419b 100644 --- a/macros/latex-dev/base/clsguide.pdf +++ b/macros/latex-dev/base/clsguide.pdf diff --git a/macros/latex-dev/base/cmfonts.pdf b/macros/latex-dev/base/cmfonts.pdf Binary files differindex 562ebc1ed5..b942338d53 100644 --- a/macros/latex-dev/base/cmfonts.pdf +++ b/macros/latex-dev/base/cmfonts.pdf diff --git a/macros/latex-dev/base/cyrguide.pdf b/macros/latex-dev/base/cyrguide.pdf Binary files differindex 5ac7c0a51c..a2f9f702ce 100644 --- a/macros/latex-dev/base/cyrguide.pdf +++ b/macros/latex-dev/base/cyrguide.pdf diff --git a/macros/latex-dev/base/doc.pdf b/macros/latex-dev/base/doc.pdf Binary files differindex 9b9a2da5a1..88da0aa984 100644 --- a/macros/latex-dev/base/doc.pdf +++ b/macros/latex-dev/base/doc.pdf diff --git a/macros/latex-dev/base/docstrip.pdf b/macros/latex-dev/base/docstrip.pdf Binary files differindex 3ca1968ce8..dc31dee8fa 100644 --- a/macros/latex-dev/base/docstrip.pdf +++ b/macros/latex-dev/base/docstrip.pdf diff --git a/macros/latex-dev/base/encguide.pdf b/macros/latex-dev/base/encguide.pdf Binary files differindex 367d7577a7..64ceff2a9a 100644 --- a/macros/latex-dev/base/encguide.pdf +++ b/macros/latex-dev/base/encguide.pdf diff --git a/macros/latex-dev/base/exscale.pdf b/macros/latex-dev/base/exscale.pdf Binary files differindex a584441052..2912bad8fd 100644 --- a/macros/latex-dev/base/exscale.pdf +++ b/macros/latex-dev/base/exscale.pdf diff --git a/macros/latex-dev/base/fix-cm.pdf b/macros/latex-dev/base/fix-cm.pdf Binary files differindex 975cdc3c9b..856c5c0ec2 100644 --- a/macros/latex-dev/base/fix-cm.pdf +++ b/macros/latex-dev/base/fix-cm.pdf diff --git a/macros/latex-dev/base/fntguide.pdf b/macros/latex-dev/base/fntguide.pdf Binary files differindex c44cbb4561..46a96dcb9a 100644 --- a/macros/latex-dev/base/fntguide.pdf +++ b/macros/latex-dev/base/fntguide.pdf diff --git a/macros/latex-dev/base/fntguide.tex b/macros/latex-dev/base/fntguide.tex index f19e0de7ba..8610bc99f7 100644 --- a/macros/latex-dev/base/fntguide.tex +++ b/macros/latex-dev/base/fntguide.tex @@ -229,7 +229,7 @@ ones are: \end{tabular} \end{minipage} \end{center} -\NEWdescription{2019/07/10} +\NEWdescription{2019/07/10}\label{page:seriesvalues} The font series is denoting a combination of the weight (boldness) and the width (amount of expansion). The standard supported for weights and widths are: @@ -1090,6 +1090,26 @@ contain: This enables the use of an alternative |\hyphenchar| in other encodings whilst maintaining the correct value for all fonts. +\NEWfeature{2020/02/02} According to NFSS conventions the series value +should be a combination of weight and width abbreviated each with one or +two letters as described on page~\pageref{page:seriesvalues}. In +particular it should not contain an ``\texttt{m}'' unless it +consists of just one character. In the past incorrect values such as +``\texttt{cm}'' were simply accepted, but since this now leads to +problems with the extended mechanism, the correct syntax is now +enforced. + +More exactly, if the series values is a member of a specific set of +values (\texttt{ulm}, \texttt{elm}, \texttt{lm}, \texttt{slm}, +\texttt{mm}, \texttt{sbm}, \texttt{bm}, \texttt{ebm}, \texttt{ubm}, +\texttt{muc}, \texttt{mec}, \texttt{mc}, \texttt{msc}, \texttt{msx}, +\texttt{mx}, \texttt{mex} or \texttt{mux}) it is assumed to be in +incorrect NFSS notation and so a warning is given and a surplus +``\texttt{m}'' is dropped. Other values are not touched to allow for +the usage of values like ``\texttt{semibold}'' or ``\texttt{medium}'' as +used by the \texttt{autoinst} program. + + \subsection{Font file loading information} \label{sec:loadinfo} diff --git a/macros/latex-dev/base/graphpap.pdf b/macros/latex-dev/base/graphpap.pdf Binary files differindex 8718025def..8c59ea2651 100644 --- a/macros/latex-dev/base/graphpap.pdf +++ b/macros/latex-dev/base/graphpap.pdf diff --git a/macros/latex-dev/base/ifthen.pdf b/macros/latex-dev/base/ifthen.pdf Binary files differindex 43cf7e863c..be07cdedb5 100644 --- a/macros/latex-dev/base/ifthen.pdf +++ b/macros/latex-dev/base/ifthen.pdf diff --git a/macros/latex-dev/base/inputenc.pdf b/macros/latex-dev/base/inputenc.pdf Binary files differindex 45c2c0ebfa..48d288b0de 100644 --- a/macros/latex-dev/base/inputenc.pdf +++ b/macros/latex-dev/base/inputenc.pdf diff --git a/macros/latex-dev/base/latexchanges.pdf b/macros/latex-dev/base/latexchanges.pdf Binary files differindex ac91adda03..4730d7f8cd 100644 --- a/macros/latex-dev/base/latexchanges.pdf +++ b/macros/latex-dev/base/latexchanges.pdf diff --git a/macros/latex-dev/base/latexchanges.tex b/macros/latex-dev/base/latexchanges.tex index d8bb8207f9..dc8eb4be4e 100644 --- a/macros/latex-dev/base/latexchanges.tex +++ b/macros/latex-dev/base/latexchanges.tex @@ -107,12 +107,31 @@ see for example +\section{Changes introduced in 2020-02-02 patch~5} + +The patch~4 dropped a bit too much in certain situations, e.g., it +changed a series value of \texttt{semibold} (as used by +\texttt{autoinst}) to \texttt{seibold}, rendering it useless. So we +now only correct series values if they are a member of the +following list: \texttt{ulm}, \texttt{elm}, \texttt{lm}, \texttt{slm}, +\texttt{mm}, \texttt{sbm}, \texttt{bm}, \texttt{ebm}, \texttt{ubm}, +\texttt{muc}, \texttt{mec}, \texttt{mc}, \texttt{msc}, \texttt{msx}, +\texttt{mx}, \texttt{mex} or \texttt{mux}. Here we assume that people +intended to follow the NFSS convention but somehow got it wrong. So we +drop one ``m'' and also add a warning that the +\verb=\DeclareFontShape= declaration in question should be updated +(\ghissue{293}). + + \section{Changes introduced in 2020-02-02 patch~4} In some cases the \texttt{filecontents} environment was opening the file for writing without quoting it, so that files with spaces failed (\ghissue{284}). +Ensure that \verb=\DeclareFontShape= drops surplus ``m'' in situations +where an \texttt{.fd} incorrectly specifies \texttt{mc} instead of +\texttt{c}, etc.\ (\ghissue{289}). \section{Changes introduced in 2020-02-02 patch~3} diff --git a/macros/latex-dev/base/latexrelease.pdf b/macros/latex-dev/base/latexrelease.pdf Binary files differindex 5e0b477eae..396d04c8f5 100644 --- a/macros/latex-dev/base/latexrelease.pdf +++ b/macros/latex-dev/base/latexrelease.pdf diff --git a/macros/latex-dev/base/latexsym.pdf b/macros/latex-dev/base/latexsym.pdf Binary files differindex 8014a5078d..f6b265cee5 100644 --- a/macros/latex-dev/base/latexsym.pdf +++ b/macros/latex-dev/base/latexsym.pdf diff --git a/macros/latex-dev/base/lb2.pdf b/macros/latex-dev/base/lb2.pdf Binary files differindex c21331d340..b04c71d42c 100644 --- a/macros/latex-dev/base/lb2.pdf +++ b/macros/latex-dev/base/lb2.pdf diff --git a/macros/latex-dev/base/letter.pdf b/macros/latex-dev/base/letter.pdf Binary files differindex 1d7dc7bb9c..ef5e8173e4 100644 --- a/macros/latex-dev/base/letter.pdf +++ b/macros/latex-dev/base/letter.pdf diff --git a/macros/latex-dev/base/lgc2.pdf b/macros/latex-dev/base/lgc2.pdf Binary files differindex 5afcd11bab..d365e0f353 100644 --- a/macros/latex-dev/base/lgc2.pdf +++ b/macros/latex-dev/base/lgc2.pdf diff --git a/macros/latex-dev/base/ltclass.dtx b/macros/latex-dev/base/ltclass.dtx index 578443921b..f43e8f0c0d 100644 --- a/macros/latex-dev/base/ltclass.dtx +++ b/macros/latex-dev/base/ltclass.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltclass.dtx} - [2020/02/20 v1.3j LaTeX Kernel (Class & Package Interface)] + [2020/03/02 v1.3j LaTeX Kernel (Class & Package Interface)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltclass.dtx} @@ -161,7 +161,7 @@ % option \texttt{nosearch} will only check the current directory % when looking if the file exists. This can be useful if you want to % generate a local (modified) copy of some file that is already in the -% search tree of \TeX{}. Finally, you can use \texttt{nopremable} to +% search tree of \TeX{}. Finally, you can use \texttt{noheader} to % prevent it from writing the standard blurb at the top of the file % (this is actually the same as using the star form of the environment). % @@ -1817,7 +1817,7 @@ \filec@ntents } % \end{macrocode} -% Option \texttt{force}) (or \texttt{overwrite}) changes the +% Option \texttt{force} (or \texttt{overwrite}) changes the % overwriting switch % \begin{macrocode} \let\filec@ntents@force\@fileswfalse diff --git a/macros/latex-dev/base/ltdefns.dtx b/macros/latex-dev/base/ltdefns.dtx index ae472966d5..303b9e5604 100644 --- a/macros/latex-dev/base/ltdefns.dtx +++ b/macros/latex-dev/base/ltdefns.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltdefns.dtx} - [2019/08/27 v1.5f LaTeX Kernel (definition commands)] + [2020/02/27 v1.5g LaTeX Kernel (definition commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltdefns.dtx} @@ -888,17 +888,21 @@ % % \begin{macro}{\@gobble} % \begin{macro}{\@gobbletwo} +% \begin{macro}{\@gobblethree} +% \changes{v1.5g}{2020/02/27}{Macro added} % \begin{macro}{\@gobblefour} % \changes{v1.2n}{1995/05/26}{(CAR) Added \cs{long}s} % The |\@gobble| macro is used to get rid of its argument. % \begin{macrocode} \long\def \@gobble #1{} \long\def \@gobbletwo #1#2{} +\long\def \@gobblethree #1#2#3{} \long\def \@gobblefour #1#2#3#4{} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\@firstofone} % \begin{macro}{\@firstoftwo} diff --git a/macros/latex-dev/base/ltexpl.dtx b/macros/latex-dev/base/ltexpl.dtx index 230cd91158..e86b80acaf 100644 --- a/macros/latex-dev/base/ltexpl.dtx +++ b/macros/latex-dev/base/ltexpl.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltexpl.dtx} - [2019-10-02 v0.0 LaTeX Kernel (expl3-dependent code)] + [2020-03-05 v1.1 LaTeX Kernel (expl3-dependent code)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltfinal.dtx} @@ -68,25 +68,47 @@ %<*2ekernel|latexrelease> %<latexrelease>\IncludeInRelease{2020/02/02}% %<latexrelease> {expl3}{Pre-load expl3}% -\IfFileExists{expl3.ltx} - {% - \ifnum0% - \ifdefined\pdffilesize 1\fi - \ifdefined\filesize 1\fi - \ifdefined\luatexversion\ifnum\luatexversion>94 1\fi\fi - >0 % - \else - \message{Skipping expl3-dependent extensions} +% \end{macrocode} +% If we are doing a rollback with a format containing expl3 we +% aren't reloading it as that creates havoc. This may need a +% refined version! +% \changes{v1.0a}{2020/03/02} +% {Don't load expl3 if already in the format (gh/295)} +% \changes{v1.1}{2020/03/05} +% {Load xparse.ltx if \cs{NewDocumentCommand} is not defined by expl3.ltx} +% \begin{macrocode} +\expandafter\ifx\csname tex\string _let:D\endcsname\relax + \IfFileExists{expl3.ltx} + {% + \ifnum0% + \ifdefined\pdffilesize 1\fi + \ifdefined\filesize 1\fi + \ifdefined\luatexversion\ifnum\luatexversion>94 1\fi\fi + >0 % + \expandafter\@firstofone + \else + \message{Skipping expl3-dependent extensions} %<2ekernel> \expandafter\endinput -%<latexrelease> \expandafter\@gobbletwo - \fi - } - {% - \message{Skipping expl3-dependent extensions}% +%<latexrelease> \expandafter\@gobble + \fi + } + {% + \message{Skipping expl3-dependent extensions}% %<2ekernel> \endinput -%<latexrelease> \@gobbletwo - }% -\input{expl3.ltx} +%<latexrelease> \@gobble + }% + {% + \input{expl3.ltx} + \ifdefined\NewDocumentCommand + \else + \IfFileExists{xparse.ltx} + {\input{xparse.ltx}} + {}% + \fi + }% +\else + \GenericInfo{}{Skipping: expl3 code already part of the format} +\fi %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease %<*2ekernel> diff --git a/macros/latex-dev/base/ltfssaxes.dtx b/macros/latex-dev/base/ltfssaxes.dtx index 1a8dbd9cfb..58d9aa159e 100644 --- a/macros/latex-dev/base/ltfssaxes.dtx +++ b/macros/latex-dev/base/ltfssaxes.dtx @@ -35,7 +35,7 @@ % % \ProvidesFile{ltfssaxes.dtx} - [2020/02/18 v1.0c LaTeX Kernel (NFSS Axes handing)] + [2020/03/02 v1.0e LaTeX Kernel (NFSS Axes handing)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -827,7 +827,6 @@ % % % \begin{macro}{\set@target@series} -% \begin{macro}{\series@drop@one@m} % % Finally the code for normalizing the \cs{f@series} value. % @@ -845,21 +844,69 @@ \def\set@target@series#1{% % \end{macrocode} % We need to \cs{edef} the argument first in case it starts with a -% conditional. +% conditional. Then we check (and perhaps drop) an ``m'' from the +% value andassign the result to \cs{f@series}. +% \changes{v1.0d}{2020/02/27}{Drop ``m'' only in a specific set of values (gh/293)} % \begin{macrocode} \edef\f@series{#1}% - \edef\f@series{\expandafter\series@drop@one@m\f@series mm\series@drop@one@m}% + \series@maybe@drop@one@m\f@series\f@series +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\series@maybe@drop@one@m} +% If the series value is in NFSS notation then it should not +% contain any ``m'' unless it is just an ``m'' by it own. So we +% need to drop surplus ``m''s. But we better don't do this for full +% names, such as ``\texttt{semibold}'' as used by +% \texttt{autoinst}, for example. So we test against the possible +% explicit values that should drop an ``m''. +% After that we assign the result to \verb=#2= for further use. +% \changes{v1.0d}{2020/02/27}{Drop ``m'' in certain values from a +% fixed list (gh/293)} +% \begin{macrocode} +\def\series@maybe@drop@one@m#1{% + \expandafter\series@maybe@drop@one@m@x\expandafter{#1}} +% \end{macrocode} +% +% \begin{macrocode} + +\def\series@maybe@drop@one@m@x#1#2{% +% \end{macrocode} +% The code below is an inline version of the \cs{in@} macro without +% the group, so that it works in \cs{accent}. +% \begin{macrocode} + \def\in@@##1,#1,{}% + \series@check@toks\expandafter{\in@@ + ,ulm,elm,lm,slm,mm,sbm,bm,ebm,ubm,muc,mec,mc,msc,msx,mx,mex,mux,{}{},#1,}% + \edef\in@@{\the\series@check@toks}% + \ifx\in@@\@empty + \def#2{#1}% + \else + \edef#2{\expandafter\series@drop@one@m #1m\series@drop@one@m}% + \fi } % \end{macrocode} +% As a precaution we use a private toks register not \cs{toks@} as +% that is no longer hidden inside the group. +% \begin{macrocode} +\newtoks\series@check@toks +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\series@drop@one@m} % Drop up to two \texttt{m}s but keep one if that makes the series -% value empty. +% value empty. Actually, with the current implementation we know +% that there is at least one in the series value itself and we +% added one after it, so all we have to do is now returning +% \verb=#1#2= and dropping the rest. % \begin{macrocode} \def\series@drop@one@m#1m#2m#3\series@drop@one@m{% - \ifx\relax#1#2\relax m\else#1#2\fi +% \ifx\relax#1#2\relax m\else#1#2\fi + #1#2% } % \end{macrocode} % \end{macro} -% \end{macro} @@ -908,6 +955,7 @@ \DeclareRobustCommand\ulcshape {\not@math@alphabet\ulcshape\relax \fontshape\ulcdefault\selectfont} +\let\ulcdefault\@undefined % for rollback \newcommand\ulcdefault{ulc} % \end{macrocode} % \end{macro} @@ -928,6 +976,7 @@ \DeclareRobustCommand\swshape {\not@math@alphabet\swshape\relax \fontshape\swdefault\selectfont} +\let\swdefault\@undefined % for rollback \newcommand\swdefault{sw} % \end{macrocode} % \end{macro} @@ -951,6 +1000,7 @@ \DeclareRobustCommand\sscshape {\not@math@alphabet\sscshape\relax \fontshape\sscdefault\selectfont} +\let\sscdefault\@undefined % for rollback \newcommand\sscdefault{ssc} % \end{macrocode} % \end{macro} @@ -1215,6 +1265,7 @@ %<latexrelease>\let\@font@shape@subst@warning\@undefined %<latexrelease>\let\maybe@load@fontshape\@undefined %<latexrelease>\let\set@target@series\@undefined +%<latexrelease>\let\series@maybe@drop@one@m\@undefined %<latexrelease>\let\series@drop@one@m\@undefined %<latexrelease>\let\DeclareFontShapeChangeRule\@undefined %<latexrelease>\let\merge@font@shape\@undefined diff --git a/macros/latex-dev/base/ltfssbas.dtx b/macros/latex-dev/base/ltfssbas.dtx index b59b0fafdd..5715106ca6 100644 --- a/macros/latex-dev/base/ltfssbas.dtx +++ b/macros/latex-dev/base/ltfssbas.dtx @@ -35,7 +35,7 @@ % % \ProvidesFile{ltfssbas.dtx} - [2019/12/17 v3.2e LaTeX Kernel (NFSS Basic Macros)] + [2020/02/27 v3.2g LaTeX Kernel (NFSS Basic Macros)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -245,24 +245,59 @@ % We use |\expandafter| |\endgroup| to restore catcode in case % something goes wrong with the argument parsing (suggested by Tim % Van Zandt) +% \begin{macrocode} + \expandafter\endgroup + \DeclareFontShape@} +% \end{macrocode} % \end{macro} % % % -% \begin{macro}{\DeclareFontShape} +% \begin{macro}{\DeclareFontShape@} % \changes{v2.1c}{1994/02/07}{revert catcode settings earlier} % \changes{v3.0m}{1995/11/01} % {(DPC) Test for \cs{relax} not \cs{undefined}, internal/1933} % \begin{macrocode} - \expandafter\endgroup - \DeclareFontShape@} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/02/02}% +%<latexrelease> {\DeclareFontShape@}{Maybe drop one m}% \def\DeclareFontShape@#1#2#3#4#5#6{% \expandafter\ifx\csname #1+#2\endcsname\relax \@latex@error{Font family `#1+#2' unknown}\@eha \else +% \end{macrocode} +% If the series value is incorrectly specified with an extra ``m'', +% e.g., ``mc'' instead of just ``c'', drop the surplus ``m'' but +% keep the ``m'' if it is by its own. In that case also issue a +% warning that the declaration needs correction. +% \changes{v3.2f}{2020/02/24}{Drop surplus ``m'' in series when +% defining fontshape (gh/289)} +% \changes{v3.2g}{2020/02/27}{Only ``m'' if the series value is a member +% of a fixed list and issue warning if doing it (gh/293)} +% +% For this we compare the given value \verb=#3= with one where we +% may have dropped an ``m''. If nothing has changes, +% fine. Otherwise there was a wrong value which is now corrected in +% \cs{reservedb} so we use that and also issue a warning. +% \begin{macrocode} + \edef\reserved@a{#3}% + \series@maybe@drop@one@m\reserved@a\reserved@b + \ifx\reserved@a\reserved@b\else + \@latex@warning{Font shape declaration has incorrect series + value `#3'.\MessageBreak It should not contain an `m'! + Please correct it.\MessageBreak Found}% + \fi \expandafter - \xdef\csname#1/#2/#3/#4\endcsname{\expandafter\noexpand - \csname #5\endcsname}% + \xdef\csname#1/#2/\reserved@b/#4\endcsname + {\expandafter\noexpand\csname #5\endcsname}% +% +% \end{macrocode} +% Most of the time \verb=#6= is empty so using \cs{let} to +% \cs{@empty} saves on space compared to using \cs{def}. That's +% really one of the old space saving techniques and probably not +% necessary these days. +% \begin{macrocode} \def\reserved@a{#6}% \global \expandafter\let\csname#5\expandafter\endcsname @@ -274,6 +309,33 @@ \fi } % \end{macrocode} +% +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\DeclareFontShape@}{Maybe drop one m}% +%<latexrelease> +%<latexrelease>\def\DeclareFontShape@#1#2#3#4#5#6{% +%<latexrelease> \expandafter\ifx\csname #1+#2\endcsname\relax +%<latexrelease> \@latex@error{Font family `#1+#2' unknown}\@eha +%<latexrelease> \else +%<latexrelease> \expandafter +%<latexrelease> \xdef\csname#1/#2/#3/#4\endcsname{\expandafter\noexpand +%<latexrelease> \csname #5\endcsname}% +%<latexrelease> \def\reserved@a{#6}% +%<latexrelease> \global +%<latexrelease> \expandafter\let\csname#5\expandafter\endcsname +%<latexrelease> \ifx\reserved@a\@empty +%<latexrelease> \@empty +%<latexrelease> \else +%<latexrelease> \reserved@a +%<latexrelease> \fi +%<latexrelease> \fi +%<latexrelease> } +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} % \end{macro} % % diff --git a/macros/latex-dev/base/ltfssini.dtx b/macros/latex-dev/base/ltfssini.dtx index bdf5f5e6e9..3947b4d953 100644 --- a/macros/latex-dev/base/ltfssini.dtx +++ b/macros/latex-dev/base/ltfssini.dtx @@ -36,7 +36,7 @@ % % \ProvidesFile{ltfssini.dtx} - [2020/02/18 v3.1i LaTeX Kernel (NFSS Initialisation)] + [2020/03/02 v3.1k LaTeX Kernel (NFSS Initialisation)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -244,7 +244,7 @@ % \DescribeMacro\DeclareFontSeriesDefault % We now support this concept directly from within \LaTeX{} and for % use in font packages (or the document preamble) we offer -% \cs{DeclareSeriesDefault}. This declaration takes three +% \cs{DeclareFontSeriesDefault}. This declaration takes three % arguments: % \begin{description} % \item[document family interface:] Can either be \texttt{rm}, @@ -278,6 +278,7 @@ % The command to declare font series defaults for the ``rm'', ``sf'' or % ``tt'' family. % \begin{macrocode} +\let\DeclareFontSeriesDefault\@undefined % for rollback \newcommand\DeclareFontSeriesDefault[3][]{% \def\reserved@a{#1}% % \end{macrocode} @@ -393,8 +394,14 @@ \edef\rmdef@ult{\rmdefault}% \edef\sfdef@ult{\sfdefault}% \edef\ttdef@ult{\ttdefault}% - \edef\bfdef@ult{\bfdefault}% - \edef\mddef@ult{\mddefault}% +% \end{macrocode} +% The series defaults may contain some surplus \texttt{m} that we +% need to drop here. +% \changes{v3.1j}{2020/02/25}{Drop surplus ``m'' from \cs{bfdef@ult} +% and \cs{mddef@ult} (gh/291)} +% \begin{macrocode} + \series@maybe@drop@one@m\bfdefault\bfdef@ult + \series@maybe@drop@one@m\mddefault\mddef@ult \edef\famdef@ult{\familydefault}% } % \end{macrocode} @@ -718,7 +725,16 @@ \maybe@load@fontshape %<+debug> \series@change@debug{Target series: %<+debug> \f@series \space -> \target@series@value}% - \let\f@series\target@series@value +% \end{macrocode} +% The \cs{target@series@value} may contain something like +% \texttt{cm} (coming from a default) and so we can't directly +% asign it to \cs{f@series} be have to drop any surplus \texttt{m} +% first. +% \changes{v3.1j}{2020/02/25}{Drop surplus ``m'' from +% \cs{target@series@value} (gh/291)} +% \begin{macrocode} +% \let\f@series\target@series@value + \series@maybe@drop@one@m\target@series@value\f@series \fi \fi \fi @@ -776,10 +792,30 @@ % \cs{rmfamily}. This is now covered by looping and stopping the % loop when a match was found. % \begin{macrocode} - \expandafter\ifx\csname mdseries@#1\endcsname\f@series +% \end{macrocode} +% We have to sanitize the default value first because it may +% contain something like \texttt{mc} and that would never match +% \cs{f@series} because there it would be called \texttt{c} with +% the \texttt{m} dropped. It would be probably better to do that +% differently these days, but it is hard to adjust without causing +% a lot of issues, so we do the dropping in various places instead. +% \changes{v3.1j}{2020/02/25}{Drop surplus ``m'' from \cs{reserved@d} +% (gh/291)} +% \begin{macrocode} + \expandafter\series@maybe@drop@one@m + \csname mdseries@#1\endcsname\reserved@d + \ifx\reserved@d\f@series %<+debug> \series@change@debug{mdseries@#1 matched -> \reserved@b}% \let\target@series@value\reserved@b - \else\expandafter\ifx\csname bfseries@#1\endcsname\f@series + \else +% \end{macrocode} +% Again do some sanitizing. +% \changes{v3.1j}{2020/02/25}{Drop surplus ``m'' from \cs{reserved@d} +% (gh/291)} +% \begin{macrocode} + \expandafter\series@maybe@drop@one@m + \csname bfseries@#1\endcsname\reserved@d + \ifx\reserved@d\f@series %<+debug> \series@change@debug{bfseries@#1 matched -> \reserved@c}% \let\target@series@value\reserved@c \else\ifx\f@series\mddef@ult \let\target@series@value\reserved@b diff --git a/macros/latex-dev/base/ltluatex.pdf b/macros/latex-dev/base/ltluatex.pdf Binary files differindex 3f5257fd6e..86769bca60 100644 --- a/macros/latex-dev/base/ltluatex.pdf +++ b/macros/latex-dev/base/ltluatex.pdf diff --git a/macros/latex-dev/base/ltnews.pdf b/macros/latex-dev/base/ltnews.pdf Binary files differindex 77564e4609..ef7aa51e08 100644 --- a/macros/latex-dev/base/ltnews.pdf +++ b/macros/latex-dev/base/ltnews.pdf diff --git a/macros/latex-dev/base/ltnews01.pdf b/macros/latex-dev/base/ltnews01.pdf Binary files differindex e5e4d434fb..44694047ca 100644 --- a/macros/latex-dev/base/ltnews01.pdf +++ b/macros/latex-dev/base/ltnews01.pdf diff --git a/macros/latex-dev/base/ltnews02.pdf b/macros/latex-dev/base/ltnews02.pdf Binary files differindex 99d06d9a91..b43d192424 100644 --- a/macros/latex-dev/base/ltnews02.pdf +++ b/macros/latex-dev/base/ltnews02.pdf diff --git a/macros/latex-dev/base/ltnews03.pdf b/macros/latex-dev/base/ltnews03.pdf Binary files differindex 2c85575c8a..4ccdc3613b 100644 --- a/macros/latex-dev/base/ltnews03.pdf +++ b/macros/latex-dev/base/ltnews03.pdf diff --git a/macros/latex-dev/base/ltnews04.pdf b/macros/latex-dev/base/ltnews04.pdf Binary files differindex d25f6243c6..7c8c60445d 100644 --- a/macros/latex-dev/base/ltnews04.pdf +++ b/macros/latex-dev/base/ltnews04.pdf diff --git a/macros/latex-dev/base/ltnews05.pdf b/macros/latex-dev/base/ltnews05.pdf Binary files differindex 01faeb219a..e4e3b4a417 100644 --- a/macros/latex-dev/base/ltnews05.pdf +++ b/macros/latex-dev/base/ltnews05.pdf diff --git a/macros/latex-dev/base/ltnews06.pdf b/macros/latex-dev/base/ltnews06.pdf Binary files differindex f7a2174a76..33b0dd42c9 100644 --- a/macros/latex-dev/base/ltnews06.pdf +++ b/macros/latex-dev/base/ltnews06.pdf diff --git a/macros/latex-dev/base/ltnews07.pdf b/macros/latex-dev/base/ltnews07.pdf Binary files differindex 9b1971b171..45aab0c757 100644 --- a/macros/latex-dev/base/ltnews07.pdf +++ b/macros/latex-dev/base/ltnews07.pdf diff --git a/macros/latex-dev/base/ltnews08.pdf b/macros/latex-dev/base/ltnews08.pdf Binary files differindex 6411707ae6..20e8980064 100644 --- a/macros/latex-dev/base/ltnews08.pdf +++ b/macros/latex-dev/base/ltnews08.pdf diff --git a/macros/latex-dev/base/ltnews09.pdf b/macros/latex-dev/base/ltnews09.pdf Binary files differindex e4638e44ac..5c59f4537b 100644 --- a/macros/latex-dev/base/ltnews09.pdf +++ b/macros/latex-dev/base/ltnews09.pdf diff --git a/macros/latex-dev/base/ltnews10.pdf b/macros/latex-dev/base/ltnews10.pdf Binary files differindex 113610aa98..93cabf0b38 100644 --- a/macros/latex-dev/base/ltnews10.pdf +++ b/macros/latex-dev/base/ltnews10.pdf diff --git a/macros/latex-dev/base/ltnews11.pdf b/macros/latex-dev/base/ltnews11.pdf Binary files differindex 8c3c4f2488..c569713011 100644 --- a/macros/latex-dev/base/ltnews11.pdf +++ b/macros/latex-dev/base/ltnews11.pdf diff --git a/macros/latex-dev/base/ltnews12.pdf b/macros/latex-dev/base/ltnews12.pdf Binary files differindex 8f27776352..b0cebe5ef1 100644 --- a/macros/latex-dev/base/ltnews12.pdf +++ b/macros/latex-dev/base/ltnews12.pdf diff --git a/macros/latex-dev/base/ltnews13.pdf b/macros/latex-dev/base/ltnews13.pdf Binary files differindex 797a7d4876..99a85c75db 100644 --- a/macros/latex-dev/base/ltnews13.pdf +++ b/macros/latex-dev/base/ltnews13.pdf diff --git a/macros/latex-dev/base/ltnews14.pdf b/macros/latex-dev/base/ltnews14.pdf Binary files differindex ad31b78431..e9c7b3c0e6 100644 --- a/macros/latex-dev/base/ltnews14.pdf +++ b/macros/latex-dev/base/ltnews14.pdf diff --git a/macros/latex-dev/base/ltnews15.pdf b/macros/latex-dev/base/ltnews15.pdf Binary files differindex f5859f67ad..9cb9472821 100644 --- a/macros/latex-dev/base/ltnews15.pdf +++ b/macros/latex-dev/base/ltnews15.pdf diff --git a/macros/latex-dev/base/ltnews16.pdf b/macros/latex-dev/base/ltnews16.pdf Binary files differindex d31ee4e760..61ddf3036f 100644 --- a/macros/latex-dev/base/ltnews16.pdf +++ b/macros/latex-dev/base/ltnews16.pdf diff --git a/macros/latex-dev/base/ltnews17.pdf b/macros/latex-dev/base/ltnews17.pdf Binary files differindex 27cbed3400..1136df63b6 100644 --- a/macros/latex-dev/base/ltnews17.pdf +++ b/macros/latex-dev/base/ltnews17.pdf diff --git a/macros/latex-dev/base/ltnews18.pdf b/macros/latex-dev/base/ltnews18.pdf Binary files differindex 58e5a826a7..6b925fb64c 100644 --- a/macros/latex-dev/base/ltnews18.pdf +++ b/macros/latex-dev/base/ltnews18.pdf diff --git a/macros/latex-dev/base/ltnews19.pdf b/macros/latex-dev/base/ltnews19.pdf Binary files differindex 90d8e7e25f..e307c301b8 100644 --- a/macros/latex-dev/base/ltnews19.pdf +++ b/macros/latex-dev/base/ltnews19.pdf diff --git a/macros/latex-dev/base/ltnews20.pdf b/macros/latex-dev/base/ltnews20.pdf Binary files differindex 543b2ff90f..4115da16dd 100644 --- a/macros/latex-dev/base/ltnews20.pdf +++ b/macros/latex-dev/base/ltnews20.pdf diff --git a/macros/latex-dev/base/ltnews21.pdf b/macros/latex-dev/base/ltnews21.pdf Binary files differindex 12aa5ccff5..890e6ca687 100644 --- a/macros/latex-dev/base/ltnews21.pdf +++ b/macros/latex-dev/base/ltnews21.pdf diff --git a/macros/latex-dev/base/ltnews22.pdf b/macros/latex-dev/base/ltnews22.pdf Binary files differindex b106c51d34..9b46a67049 100644 --- a/macros/latex-dev/base/ltnews22.pdf +++ b/macros/latex-dev/base/ltnews22.pdf diff --git a/macros/latex-dev/base/ltnews23.pdf b/macros/latex-dev/base/ltnews23.pdf Binary files differindex 1675f45cfe..6b95b99e63 100644 --- a/macros/latex-dev/base/ltnews23.pdf +++ b/macros/latex-dev/base/ltnews23.pdf diff --git a/macros/latex-dev/base/ltnews24.pdf b/macros/latex-dev/base/ltnews24.pdf Binary files differindex 8f20710252..9100081fad 100644 --- a/macros/latex-dev/base/ltnews24.pdf +++ b/macros/latex-dev/base/ltnews24.pdf diff --git a/macros/latex-dev/base/ltnews25.pdf b/macros/latex-dev/base/ltnews25.pdf Binary files differindex 5a1cb20add..24c36ca0b7 100644 --- a/macros/latex-dev/base/ltnews25.pdf +++ b/macros/latex-dev/base/ltnews25.pdf diff --git a/macros/latex-dev/base/ltnews26.pdf b/macros/latex-dev/base/ltnews26.pdf Binary files differindex 68165d1d3f..bfda22ad97 100644 --- a/macros/latex-dev/base/ltnews26.pdf +++ b/macros/latex-dev/base/ltnews26.pdf diff --git a/macros/latex-dev/base/ltnews27.pdf b/macros/latex-dev/base/ltnews27.pdf Binary files differindex 6cd653cf8a..a4a4e355f6 100644 --- a/macros/latex-dev/base/ltnews27.pdf +++ b/macros/latex-dev/base/ltnews27.pdf diff --git a/macros/latex-dev/base/ltnews28.pdf b/macros/latex-dev/base/ltnews28.pdf Binary files differindex f1f10a8f7b..3fd460e397 100644 --- a/macros/latex-dev/base/ltnews28.pdf +++ b/macros/latex-dev/base/ltnews28.pdf diff --git a/macros/latex-dev/base/ltnews29.pdf b/macros/latex-dev/base/ltnews29.pdf Binary files differindex e2e800f450..63b0467137 100644 --- a/macros/latex-dev/base/ltnews29.pdf +++ b/macros/latex-dev/base/ltnews29.pdf diff --git a/macros/latex-dev/base/ltnews30.pdf b/macros/latex-dev/base/ltnews30.pdf Binary files differindex 56f39b0800..bef0c7e194 100644 --- a/macros/latex-dev/base/ltnews30.pdf +++ b/macros/latex-dev/base/ltnews30.pdf diff --git a/macros/latex-dev/base/ltnews31.pdf b/macros/latex-dev/base/ltnews31.pdf Binary files differindex e2e6d9068c..62024ac7f8 100644 --- a/macros/latex-dev/base/ltnews31.pdf +++ b/macros/latex-dev/base/ltnews31.pdf diff --git a/macros/latex-dev/base/ltnews32.pdf b/macros/latex-dev/base/ltnews32.pdf Binary files differindex 3f2c2ba44b..c820928b65 100644 --- a/macros/latex-dev/base/ltnews32.pdf +++ b/macros/latex-dev/base/ltnews32.pdf diff --git a/macros/latex-dev/base/ltnews32.tex b/macros/latex-dev/base/ltnews32.tex index e6d91d2ae2..bd1ebffb10 100644 --- a/macros/latex-dev/base/ltnews32.tex +++ b/macros/latex-dev/base/ltnews32.tex @@ -146,13 +146,14 @@ This document is under construction \ldots \subsection{\cs{symbol} in math mode for large Unicode values} -The \LaTeXe{} kernel defines the command \cs{symbol}, which allows characters to be -typeset by entering their `slot number'. With the \LuaTeX{} and \XeTeX{} engines, these -slot numbers can extend to very large values to accomodate Unicode characters in the upper -Unicode planes (e.g., bold mathematical capital A is slot number \texttt{"1D400} in hex or -\texttt{119808} in decimal). -The \XeTeX{} engine did not allow \cs{symbol} in math mode for values above $2^{16}$, and -this limitation has now been lifted. +The \LaTeXe{} kernel defines the command \cs{symbol}, which allows +characters to be typeset by entering their `slot number'. With the +\LuaTeX{} and \XeTeX{} engines, these slot numbers can extend to very +large values to accomodate Unicode characters in the upper Unicode +planes (e.g., bold mathematical capital A is slot number +\texttt{"1D400} in hex or \texttt{119808} in decimal). The \XeTeX{} +engine did not allow \cs{symbol} in math mode for values above +$2^{16}$, and this limitation has now been lifted. % \githubissue{124} @@ -166,6 +167,24 @@ to the right. This has been corrected. \githubissue{270} +\subsection{Better support for uncommon font series defaults} + +If a font family was set up with fairly unusual font series defaults, +e.g., +\begin{verbatim} +\renewcommand\ttdefault{lmvtt} +\DeclareFontSeriesDefault[tt]{md}{lm} +\DeclareFontSeriesDefault[tt]{bf}{bm} +\end{verbatim} +then a switch between the main document families, e.g., +\verb=\ttfamily...\rmfamily= did not always correctly continued +typesetting in medium or bold series if that involved adjusting the +values used by \verb=\mdseries= or \verb=\bfseries=. This has now +been corrected. +% +\githubissue{291} + + \subsection{Adjusting \texttt{fleqn}} In \pkg{amsmath} the \cs{mathindent} parameter used with the @@ -183,6 +202,17 @@ equation number. +\section{Changes to packages in the \pkg{graphics} category} + +\subsection{Generate a warning if existing color definition is changed} + +If a color is defined twice using \cs{DefineNamedColor}, no +info text \texttt{Redefining color ... in named color model ...} is written +to the log file, because of a typo in the check. This has been corrected. +% +\gnatsissue{graphics}{3635} + + \section{Changes to packages in the \pkg{tools} category} \subsection{Support stretchable glue in \texttt{w}-columns} diff --git a/macros/latex-dev/base/ltvers.dtx b/macros/latex-dev/base/ltvers.dtx index 2b54638bc4..ed2abe1088 100644 --- a/macros/latex-dev/base/ltvers.dtx +++ b/macros/latex-dev/base/ltvers.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltvers.dtx} - [2020/01/31 v1.1e LaTeX Kernel (Version Info)] + [2020/03/02 v1.1e LaTeX Kernel (Version Info)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltvers.dtx} @@ -115,7 +115,7 @@ {2020-10-01} %</2ekernel|latexrelease> %<*2ekernel> -\def\patch@level{-4} +\def\patch@level{-5} % \end{macrocode} % % \begin{macro}{\development@branch@name} @@ -250,6 +250,14 @@ \def\@IncludeInRele@se#1#2#3{% \toks@{[#1] #3}% \expandafter\ifx\csname\string#2+\@currname+IIR\endcsname\relax +% \end{macrocode} +% If we roll back and the first patch already match then applying +% that is actually reapplying what is already in the format, i.e., +% it is useless and possibly allocating new registers. However, it +% makes the logic simpler so this is the way it is for now. In +% theory we could always jump overthe first patch because that is +% only really needed for rolling forward. So maybe one day \dots +% \begin{macrocode} \ifnum\expandafter\@parse@version#1//00\@nil >\expandafter\@parse@version\fmtversion//00\@nil \GenericInfo{}{Skipping: \the\toks@}% diff --git a/macros/latex-dev/base/ltx3info.pdf b/macros/latex-dev/base/ltx3info.pdf Binary files differindex 4a9f8480c2..b0b6c36690 100644 --- a/macros/latex-dev/base/ltx3info.pdf +++ b/macros/latex-dev/base/ltx3info.pdf diff --git a/macros/latex-dev/base/ltxdoc.pdf b/macros/latex-dev/base/ltxdoc.pdf Binary files differindex cec6d52426..f7d0cc4d62 100644 --- a/macros/latex-dev/base/ltxdoc.pdf +++ b/macros/latex-dev/base/ltxdoc.pdf diff --git a/macros/latex-dev/base/makeindx.pdf b/macros/latex-dev/base/makeindx.pdf Binary files differindex 210ad97489..d6c2172b6e 100644 --- a/macros/latex-dev/base/makeindx.pdf +++ b/macros/latex-dev/base/makeindx.pdf diff --git a/macros/latex-dev/base/manual.pdf b/macros/latex-dev/base/manual.pdf Binary files differindex 07648a1373..787714470f 100644 --- a/macros/latex-dev/base/manual.pdf +++ b/macros/latex-dev/base/manual.pdf diff --git a/macros/latex-dev/base/modguide.pdf b/macros/latex-dev/base/modguide.pdf Binary files differindex f66470d3a9..9bcc7f9956 100644 --- a/macros/latex-dev/base/modguide.pdf +++ b/macros/latex-dev/base/modguide.pdf diff --git a/macros/latex-dev/base/nfssfont.pdf b/macros/latex-dev/base/nfssfont.pdf Binary files differindex 5c7b884b97..f64d059903 100644 --- a/macros/latex-dev/base/nfssfont.pdf +++ b/macros/latex-dev/base/nfssfont.pdf diff --git a/macros/latex-dev/base/proc.pdf b/macros/latex-dev/base/proc.pdf Binary files differindex b28e71acfb..9c1d27f4e1 100644 --- a/macros/latex-dev/base/proc.pdf +++ b/macros/latex-dev/base/proc.pdf diff --git a/macros/latex-dev/base/slides.pdf b/macros/latex-dev/base/slides.pdf Binary files differindex b4e866188f..30e0437bec 100644 --- a/macros/latex-dev/base/slides.pdf +++ b/macros/latex-dev/base/slides.pdf diff --git a/macros/latex-dev/base/slifonts.pdf b/macros/latex-dev/base/slifonts.pdf Binary files differindex c596003248..24093386ef 100644 --- a/macros/latex-dev/base/slifonts.pdf +++ b/macros/latex-dev/base/slifonts.pdf diff --git a/macros/latex-dev/base/source2e.pdf b/macros/latex-dev/base/source2e.pdf Binary files differindex 95ba3f354d..2ff5360a99 100644 --- a/macros/latex-dev/base/source2e.pdf +++ b/macros/latex-dev/base/source2e.pdf diff --git a/macros/latex-dev/base/syntonly.pdf b/macros/latex-dev/base/syntonly.pdf Binary files differindex af45776ef7..f653c51bba 100644 --- a/macros/latex-dev/base/syntonly.pdf +++ b/macros/latex-dev/base/syntonly.pdf diff --git a/macros/latex-dev/base/tlc2.pdf b/macros/latex-dev/base/tlc2.pdf Binary files differindex 46ffc8c630..230d37b431 100644 --- a/macros/latex-dev/base/tlc2.pdf +++ b/macros/latex-dev/base/tlc2.pdf diff --git a/macros/latex-dev/base/tulm.pdf b/macros/latex-dev/base/tulm.pdf Binary files differindex c47e1c8a85..b0f9e7b62d 100644 --- a/macros/latex-dev/base/tulm.pdf +++ b/macros/latex-dev/base/tulm.pdf diff --git a/macros/latex-dev/base/usrguide.pdf b/macros/latex-dev/base/usrguide.pdf Binary files differindex d46d8381f8..93bf90b2ac 100644 --- a/macros/latex-dev/base/usrguide.pdf +++ b/macros/latex-dev/base/usrguide.pdf diff --git a/macros/latex-dev/base/utf8ienc.pdf b/macros/latex-dev/base/utf8ienc.pdf Binary files differindex d4a874c11c..a4794e4ba3 100644 --- a/macros/latex-dev/base/utf8ienc.pdf +++ b/macros/latex-dev/base/utf8ienc.pdf diff --git a/macros/latex-dev/base/webcomp.pdf b/macros/latex-dev/base/webcomp.pdf Binary files differindex 50b1878498..e576a8cda0 100644 --- a/macros/latex-dev/base/webcomp.pdf +++ b/macros/latex-dev/base/webcomp.pdf diff --git a/macros/latex/contrib/adjmulticol/Makefile b/macros/latex/contrib/adjmulticol/Makefile index 2be5735458..471ef1d5db 100644 --- a/macros/latex/contrib/adjmulticol/Makefile +++ b/macros/latex/contrib/adjmulticol/Makefile @@ -3,7 +3,7 @@ # # This file is in public domain # -# $Id: Makefile,v 2.3 2011-02-22 22:46:46 boris Exp $ +# $Id$ # PACKAGE=adjmulticol @@ -55,9 +55,9 @@ distclean: veryclean # Archive for the distribution. Includes typeset documentation # archive: all clean - tar -czvf $(PACKAGE).tgz --exclude '*~' --exclude '*.tgz' --exclude CVS . + COPYFILE_DISABLE=1 tar -C .. -czvf ../$(PACKAGE).tgz --exclude '*~' --exclude '*.tgz' --exclude '*.zip' --exclude CVS --exclude '.git*' $(PACKAGE); mv ../$(PACKAGE).tgz . zip: all clean ${MAKE} $(PACKAGE).sty $(RM) *.log - zip -r $(PACKAGE).zip * -x '*~' -x '*.tgz' -x '*.zip' -x "*.ins" -x CVS -x 'CVS/*'
\ No newline at end of file + zip -r $(PACKAGE).zip * -x '*~' -x '*.tgz' -x '*.zip' -x "*.ins" -x CVS -x 'CVS/*' diff --git a/macros/latex/contrib/adjmulticol/README b/macros/latex/contrib/adjmulticol/README index dc6820bf03..62d899f95b 100644 --- a/macros/latex/contrib/adjmulticol/README +++ b/macros/latex/contrib/adjmulticol/README @@ -1,5 +1,4 @@ Adjusting Margins for Multicolumn and Unicolumn Output - Version 1.1 This package provides an extension of the multicol package with the option to change the margins for multicolumn and unicolumn layout. @@ -12,3 +11,4 @@ Changes: v1.1 Changed calculations for unicolumn layout which might previously lead to loss of text + v1.2 Bug fix: now adjmulticols works inside a box too.
\ No newline at end of file diff --git a/macros/latex/contrib/adjmulticol/adjmulticol.dtx b/macros/latex/contrib/adjmulticol/adjmulticol.dtx index 90881468ef..12c5e4ca73 100644 --- a/macros/latex/contrib/adjmulticol/adjmulticol.dtx +++ b/macros/latex/contrib/adjmulticol/adjmulticol.dtx @@ -1,7 +1,6 @@ % \iffalse -% $Id: adjmulticol.dtx,v 2.12 2013-01-23 18:10:07 boris Exp $ % -%% Copyright 2011, Boris Veytsman <borisv@lk.net> +%% Copyright 2020, Boris Veytsman <borisv@lk.net> %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3 of this license or (at your option) any @@ -88,7 +87,7 @@ %% %<*gobble> % \fi -% \CheckSum{176} +% \CheckSum{184} % % %% \CharacterTable @@ -127,7 +126,7 @@ % \GetFileInfo{adjmulticol.sty} % % \title{Adjusting Margins for Multicolumn and Unicolumn -% Output\thanks{\copyright Boris Veytsman, 2011} \thanks{Note: This +% Output\thanks{\copyright Boris Veytsman, 2020} \thanks{Note: This % package is released under terms which affect its use in commercial % applications. Please see the details at the top of the source file}} % \author{Boris Veytsman} @@ -309,7 +308,7 @@ %</gobble> %<style>\ProvidesPackage{adjmulticol} %<*style> -[2012/01/20 v1.1 Adjusted margins for multicolumn layout] +[2020/03/06 v1.2 Adjusted margins for multicolumn layout] % \end{macrocode} % % @@ -466,13 +465,16 @@ %\label{sec:end} % % \begin{macro}{\endadjmulticols} +% \changes{v1.2}{2020/03/06}{Redefined macro} % Here we use the standard environment end. Note that it uses -% |\@checkend|, so we need to redefine |\@currenvir| to fool the -% check. +% |\@checkend|, so we need to redefine it to fool the +% check. We need to do it globally to work inside a box too. % \begin{macrocode} \def\endadjmulticols{% - \def\@currenvir{multicols}% - \endmulticols} + \global\let\@ADJMC@checkend\@checkend + \gdef\@checkend##1{}% + \endmulticols + \global\let\@checkend\@ADJMC@checkend} % \end{macrocode} % \end{macro} % diff --git a/macros/latex/contrib/adjmulticol/adjmulticol.ins b/macros/latex/contrib/adjmulticol/adjmulticol.ins index 21ee6cc73b..cc89efce68 100644 --- a/macros/latex/contrib/adjmulticol/adjmulticol.ins +++ b/macros/latex/contrib/adjmulticol/adjmulticol.ins @@ -1,7 +1,7 @@ % % Doctrip file for seqsplit % This file is in public domain -% $Id: adjmulticol.ins,v 2.0 2011-02-22 16:38:54 boris Exp $ +% $Id$ % \def\batchfile{adjmulticol.ins} \input docstrip diff --git a/macros/latex/contrib/adjmulticol/adjmulticol.pdf b/macros/latex/contrib/adjmulticol/adjmulticol.pdf Binary files differindex 0b7277dfff..d2709950d5 100644 --- a/macros/latex/contrib/adjmulticol/adjmulticol.pdf +++ b/macros/latex/contrib/adjmulticol/adjmulticol.pdf diff --git a/macros/latex/contrib/adjmulticol/sample.pdf b/macros/latex/contrib/adjmulticol/sample.pdf Binary files differindex b8ef62610a..a55f9bf1c2 100644 --- a/macros/latex/contrib/adjmulticol/sample.pdf +++ b/macros/latex/contrib/adjmulticol/sample.pdf diff --git a/macros/latex/contrib/iftex/iftex.pdf b/macros/latex/contrib/iftex/iftex.pdf Binary files differindex 97c093e87f..cbb7b48ec5 100644 --- a/macros/latex/contrib/iftex/iftex.pdf +++ b/macros/latex/contrib/iftex/iftex.pdf diff --git a/macros/latex/contrib/iftex/iftex.sty b/macros/latex/contrib/iftex/iftex.sty index 8ee4a0fe79..8306f8663a 100644 --- a/macros/latex/contrib/iftex/iftex.sty +++ b/macros/latex/contrib/iftex/iftex.sty @@ -30,7 +30,7 @@ % ProvidesPackage declaration in LaTeX \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname ProvidesPackage\endcsname\relax\else - \ProvidesPackage{iftex}[2019/11/07 v1.0c TeX engine tests] + \ProvidesPackage{iftex}[2020/03/06 v1.0d TeX engine tests] \fi % Save @ catcode, to restore at end, not needed in LaTeX. @@ -109,7 +109,6 @@ \IFTEX@let{eTeX}{etex} % pdftex (including in dvi mode) -\IFTEX@let{IFTEX@savedpdftex}{pdftex} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdftexversion\endcsname\relax \IFTEX@let{pdftex}{false} @@ -182,7 +181,6 @@ \IFTEX@let{pTeXng}{ptexng} % vtex -\IFTEX@let{IFTEX@savedVTeX}{VTeX} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname VTeXversion\endcsname\relax \IFTEX@let{vtex}{false} @@ -213,7 +211,7 @@ \IFTEX@let{TUTeX}{tutex} % Output mode -% declare with as if with \newif +% declare as if with \newif \def\pdftrue{\let\ifpdf\iftrue} \def\pdffalse{\let\ifpdf\iffalse} \pdffalse @@ -239,14 +237,5 @@ end \fi -% special compat for scrbase -\ifx\scr@ifpdftex\@undefined\else\ifx\ifIFTEX@savedpdftex\relax\else - \IFTEX@let{pdftex}{IFTEX@savedpdftex} - \IFTEX@protected\def\RequirePDFTeX{\IFTEX@Require\ifPDFTeX{pdfTeX}\fi} -\fi\fi -\ifx\scr@ifVTeX\@undefined\else\ifx\ifIFTEX@savedVTeX\relax\else - \IFTEX@let{VTeX}{IFTEX@savedVTeX} -\fi\fi - % restore things \catcode64 \IFTEX@atcatcode diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md index 75151331dd..6076561c5e 100644 --- a/macros/latex/contrib/l3kernel/CHANGELOG.md +++ b/macros/latex/contrib/l3kernel/CHANGELOG.md @@ -7,6 +7,14 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2020-03-06] + +### Added +- `\text_purify:n` + +### Fixed +- Issue with case-changing Turkish + ## [2020-03-03] ### Added @@ -647,7 +655,8 @@ this project uses date-based 'snapshot' version identifiers. - Step funcÂtions have been added for dim variÂables, e.g. `\dim_step_inÂline:nnnn` -[Unreleased]: https://github.com/latex3/latex3/compare/2020-03-03...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2020-03-06...HEAD +[2020-03-06]: https://github.com/latex3/latex3/compare/2020-03-03...2020-03-06 [2020-03-03]: https://github.com/latex3/latex3/compare/2020-02-25...2020-03-03 [2020-02-25]: https://github.com/latex3/latex3/compare/2020-02-21...2020-02-25 [2020-02-21]: https://github.com/latex3/latex3/compare/2020-02-14...2020-02-21 diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md index 81d6baa3fc..8cfabd40d7 100644 --- a/macros/latex/contrib/l3kernel/README.md +++ b/macros/latex/contrib/l3kernel/README.md @@ -1,7 +1,7 @@ LaTeX3 Programming Conventions ============================== -Release 2020-03-03 +Release 2020-03-06 Overview -------- diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx index bbe0f740fc..080baf1bed 100644 --- a/macros/latex/contrib/l3kernel/expl3.dtx +++ b/macros/latex/contrib/l3kernel/expl3.dtx @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> %</driver|generic|package|2ekernel> -\def\ExplFileDate{2020-03-03}% +\def\ExplFileDate{2020-03-06}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf Binary files differindex 9c593937fd..0476ca9dc7 100644 --- a/macros/latex/contrib/l3kernel/expl3.pdf +++ b/macros/latex/contrib/l3kernel/expl3.pdf diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf Binary files differindex 311daaad87..6f0ae79a85 100644 --- a/macros/latex/contrib/l3kernel/interface3.pdf +++ b/macros/latex/contrib/l3kernel/interface3.pdf diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex index 3074dade2d..1e774cd9d8 100644 --- a/macros/latex/contrib/l3kernel/interface3.tex +++ b/macros/latex/contrib/l3kernel/interface3.tex @@ -54,7 +54,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2020-03-03} +\date{Released 2020-03-06} \pagenumbering{roman} \maketitle diff --git a/macros/latex/contrib/l3kernel/l3.ins b/macros/latex/contrib/l3kernel/l3.ins index b509a2478f..86d4ac5280 100644 --- a/macros/latex/contrib/l3kernel/l3.ins +++ b/macros/latex/contrib/l3kernel/l3.ins @@ -106,6 +106,7 @@ and all files in that bundle must be distributed together. \from{l3unicode.dtx} {package} \from{l3text.dtx} {package} \from{l3text-case.dtx} {package} + \from{l3text-purify.dtx}{package} \from{l3candidates.dtx} {package} \from{l3legacy.dtx} {package} \from{l3deprecation.dtx}{package,kernel} diff --git a/macros/latex/contrib/l3kernel/l3alloc.dtx b/macros/latex/contrib/l3kernel/l3alloc.dtx index 0023ac5c81..190b3edc37 100644 --- a/macros/latex/contrib/l3kernel/l3alloc.dtx +++ b/macros/latex/contrib/l3kernel/l3alloc.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx index e1f0f44552..349ec43235 100644 --- a/macros/latex/contrib/l3kernel/l3basics.dtx +++ b/macros/latex/contrib/l3kernel/l3basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx index b5b8197a88..4427850302 100644 --- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx +++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx index 1610fd79ef..91ddc238a6 100644 --- a/macros/latex/contrib/l3kernel/l3box.dtx +++ b/macros/latex/contrib/l3kernel/l3box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx index 1aa7572365..e346f674a7 100644 --- a/macros/latex/contrib/l3kernel/l3candidates.dtx +++ b/macros/latex/contrib/l3kernel/l3candidates.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx index d50ead8069..3c79a276d9 100644 --- a/macros/latex/contrib/l3kernel/l3clist.dtx +++ b/macros/latex/contrib/l3kernel/l3clist.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx index ec9e53693c..6824a83a2d 100644 --- a/macros/latex/contrib/l3kernel/l3coffins.dtx +++ b/macros/latex/contrib/l3kernel/l3coffins.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3color-base.dtx b/macros/latex/contrib/l3kernel/l3color-base.dtx index 3076d372bb..b5c9e39189 100644 --- a/macros/latex/contrib/l3kernel/l3color-base.dtx +++ b/macros/latex/contrib/l3kernel/l3color-base.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx index f1afae3f7a..04ba29e915 100644 --- a/macros/latex/contrib/l3kernel/l3debug.dtx +++ b/macros/latex/contrib/l3kernel/l3debug.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx index 61249b69c8..cf9733ef68 100644 --- a/macros/latex/contrib/l3kernel/l3deprecation.dtx +++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx index cced26c55a..d474ceabd8 100644 --- a/macros/latex/contrib/l3kernel/l3doc.dtx +++ b/macros/latex/contrib/l3kernel/l3doc.dtx @@ -79,7 +79,7 @@ and all files in that bundle must be distributed together. % % \title{The \cls{l3doc} class} % \author{\Team} -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % \maketitle % \tableofcontents % diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx index 8b5d6093ad..1e7a512c56 100644 --- a/macros/latex/contrib/l3kernel/l3docstrip.dtx +++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf Binary files differindex 5198841d10..e65e1058b3 100644 --- a/macros/latex/contrib/l3kernel/l3docstrip.pdf +++ b/macros/latex/contrib/l3kernel/l3docstrip.pdf diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx index 89b10a06a2..f356ac22df 100644 --- a/macros/latex/contrib/l3kernel/l3expan.dtx +++ b/macros/latex/contrib/l3kernel/l3expan.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx index fccaf3717a..51506ece3c 100644 --- a/macros/latex/contrib/l3kernel/l3file.dtx +++ b/macros/latex/contrib/l3kernel/l3file.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3final.dtx b/macros/latex/contrib/l3kernel/l3final.dtx index 4d3f9e6eb5..febd7f7aa9 100644 --- a/macros/latex/contrib/l3kernel/l3final.dtx +++ b/macros/latex/contrib/l3kernel/l3final.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx index 82889959d5..d807c132ed 100644 --- a/macros/latex/contrib/l3kernel/l3flag.dtx +++ b/macros/latex/contrib/l3kernel/l3flag.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3format.ins b/macros/latex/contrib/l3kernel/l3format.ins index 6e0c98cb81..a4f728a0d0 100644 --- a/macros/latex/contrib/l3kernel/l3format.ins +++ b/macros/latex/contrib/l3kernel/l3format.ins @@ -106,6 +106,7 @@ and all files in that bundle must be distributed together. \from{l3unicode.dtx} {initex} \from{l3text.dtx} {initex} \from{l3text-case.dtx} {initex} + \from{l3text-purify.dtx}{initex} \from{l3candidates.dtx} {initex} % ======== FORMAT ONLY ========= \from{l3final.dtx} {initex} diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx index 1cad6e13c2..dab8dc4d7d 100644 --- a/macros/latex/contrib/l3kernel/l3fp-assign.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-assign.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx index e94dacb368..f9601e4d76 100644 --- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx index b9f1340e73..75803be1af 100644 --- a/macros/latex/contrib/l3kernel/l3fp-basics.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-basics.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx index 185676d381..03e40eae38 100644 --- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx index 2ee3267fbf..8489efefae 100644 --- a/macros/latex/contrib/l3kernel/l3fp-expo.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-expo.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx index 0566df9d98..f08e256226 100644 --- a/macros/latex/contrib/l3kernel/l3fp-extended.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-extended.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx index 6231aea96c..d58c523d9d 100644 --- a/macros/latex/contrib/l3kernel/l3fp-logic.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-logic.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx index 4df86f2ffc..0d125aeaec 100644 --- a/macros/latex/contrib/l3kernel/l3fp-parse.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-parse.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx index 3138da7a5d..17bd04d9ee 100644 --- a/macros/latex/contrib/l3kernel/l3fp-random.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-random.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx index d5f84ba41a..5063fa4105 100644 --- a/macros/latex/contrib/l3kernel/l3fp-round.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx index 51bbf6c3dc..07e29f0bb4 100644 --- a/macros/latex/contrib/l3kernel/l3fp-traps.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-traps.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx index b5997b15d5..3fef46a6c2 100644 --- a/macros/latex/contrib/l3kernel/l3fp-trig.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-trig.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx index 9496226575..e4dbc76a8e 100644 --- a/macros/latex/contrib/l3kernel/l3fp.dtx +++ b/macros/latex/contrib/l3kernel/l3fp.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx index ec21dc624d..3016f666fb 100644 --- a/macros/latex/contrib/l3kernel/l3fparray.dtx +++ b/macros/latex/contrib/l3kernel/l3fparray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx index fbf0cc9b15..8d9fc1c895 100644 --- a/macros/latex/contrib/l3kernel/l3int.dtx +++ b/macros/latex/contrib/l3kernel/l3int.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx index 56b293db63..0219861d14 100644 --- a/macros/latex/contrib/l3kernel/l3intarray.dtx +++ b/macros/latex/contrib/l3kernel/l3intarray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx index 48c85b5498..b58d0fdc27 100644 --- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx +++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx index 417837ce37..ab068d5786 100644 --- a/macros/latex/contrib/l3kernel/l3keys.dtx +++ b/macros/latex/contrib/l3kernel/l3keys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx index af62b24dc3..14320d3ada 100644 --- a/macros/latex/contrib/l3kernel/l3legacy.dtx +++ b/macros/latex/contrib/l3kernel/l3legacy.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx index 942ad266f6..89185a2186 100644 --- a/macros/latex/contrib/l3kernel/l3luatex.dtx +++ b/macros/latex/contrib/l3kernel/l3luatex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx index 42799793c3..68264ca6d1 100644 --- a/macros/latex/contrib/l3kernel/l3msg.dtx +++ b/macros/latex/contrib/l3kernel/l3msg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx index f86cc4cf62..ccd26ea9c3 100644 --- a/macros/latex/contrib/l3kernel/l3names.dtx +++ b/macros/latex/contrib/l3kernel/l3names.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf Binary files differindex 548fee9bed..a1679a1bb6 100644 --- a/macros/latex/contrib/l3kernel/l3news.pdf +++ b/macros/latex/contrib/l3kernel/l3news.pdf diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf Binary files differindex 3ace4904a4..1e589f9495 100644 --- a/macros/latex/contrib/l3kernel/l3news01.pdf +++ b/macros/latex/contrib/l3kernel/l3news01.pdf diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf Binary files differindex 9ed1645fcd..d73d5c8eb0 100644 --- a/macros/latex/contrib/l3kernel/l3news02.pdf +++ b/macros/latex/contrib/l3kernel/l3news02.pdf diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf Binary files differindex 391475fcf6..ab1f6a0033 100644 --- a/macros/latex/contrib/l3kernel/l3news03.pdf +++ b/macros/latex/contrib/l3kernel/l3news03.pdf diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf Binary files differindex 095d00c064..bd129df812 100644 --- a/macros/latex/contrib/l3kernel/l3news04.pdf +++ b/macros/latex/contrib/l3kernel/l3news04.pdf diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf Binary files differindex 128147df68..04a96e19f3 100644 --- a/macros/latex/contrib/l3kernel/l3news05.pdf +++ b/macros/latex/contrib/l3kernel/l3news05.pdf diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf Binary files differindex eb931c08db..7bfbc1aa2b 100644 --- a/macros/latex/contrib/l3kernel/l3news06.pdf +++ b/macros/latex/contrib/l3kernel/l3news06.pdf diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf Binary files differindex 0f0710fb54..8f06de95d6 100644 --- a/macros/latex/contrib/l3kernel/l3news07.pdf +++ b/macros/latex/contrib/l3kernel/l3news07.pdf diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf Binary files differindex 1ac7b48fc0..fac7c0dd0b 100644 --- a/macros/latex/contrib/l3kernel/l3news08.pdf +++ b/macros/latex/contrib/l3kernel/l3news08.pdf diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf Binary files differindex f0b9042c8a..c5a0920919 100644 --- a/macros/latex/contrib/l3kernel/l3news09.pdf +++ b/macros/latex/contrib/l3kernel/l3news09.pdf diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf Binary files differindex a28ad5fabf..2ef13294d4 100644 --- a/macros/latex/contrib/l3kernel/l3news10.pdf +++ b/macros/latex/contrib/l3kernel/l3news10.pdf diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf Binary files differindex 3df9be07b4..525e148d86 100644 --- a/macros/latex/contrib/l3kernel/l3news11.pdf +++ b/macros/latex/contrib/l3kernel/l3news11.pdf diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf Binary files differindex 9ffaf1e42f..529cfc06b1 100644 --- a/macros/latex/contrib/l3kernel/l3news12.pdf +++ b/macros/latex/contrib/l3kernel/l3news12.pdf diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf Binary files differindex 3e52f7b795..3500aa840c 100644 --- a/macros/latex/contrib/l3kernel/l3prefixes.pdf +++ b/macros/latex/contrib/l3kernel/l3prefixes.pdf diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx index 3cbb989db4..8058df1d86 100644 --- a/macros/latex/contrib/l3kernel/l3prg.dtx +++ b/macros/latex/contrib/l3kernel/l3prg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx index 0d21cdaa12..3bacdb1374 100644 --- a/macros/latex/contrib/l3kernel/l3prop.dtx +++ b/macros/latex/contrib/l3kernel/l3prop.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx index bb7f8f94c4..25d382e2fd 100644 --- a/macros/latex/contrib/l3kernel/l3quark.dtx +++ b/macros/latex/contrib/l3kernel/l3quark.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx index 7901939530..6fbdb21eb8 100644 --- a/macros/latex/contrib/l3kernel/l3regex.dtx +++ b/macros/latex/contrib/l3kernel/l3regex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx index 9432890987..44ce65943d 100644 --- a/macros/latex/contrib/l3kernel/l3seq.dtx +++ b/macros/latex/contrib/l3kernel/l3seq.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx index e15fa39a90..364ff13e32 100644 --- a/macros/latex/contrib/l3kernel/l3skip.dtx +++ b/macros/latex/contrib/l3kernel/l3skip.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx index e81bb56033..d26ecdcf28 100644 --- a/macros/latex/contrib/l3kernel/l3sort.dtx +++ b/macros/latex/contrib/l3kernel/l3sort.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx index b0e38274f5..37a647c9dc 100644 --- a/macros/latex/contrib/l3kernel/l3str-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx index 18880fe200..efb99050c5 100644 --- a/macros/latex/contrib/l3kernel/l3str.dtx +++ b/macros/latex/contrib/l3kernel/l3str.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf Binary files differindex af3ec49fc6..4b778f685e 100644 --- a/macros/latex/contrib/l3kernel/l3styleguide.pdf +++ b/macros/latex/contrib/l3kernel/l3styleguide.pdf diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex index 5efb9d47fc..9617b99326 100644 --- a/macros/latex/contrib/l3kernel/l3styleguide.tex +++ b/macros/latex/contrib/l3kernel/l3styleguide.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2020-03-03} +\date{Released 2020-03-06} \begin{document} diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf Binary files differindex 4acc2f2a2f..d6504320ca 100644 --- a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf +++ b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex index 1ccd4dce5c..4f8558eae4 100644 --- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex +++ b/macros/latex/contrib/l3kernel/l3syntax-changes.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2020-03-03} +\date{Released 2020-03-06} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx index 1dbfca2d0e..382b2a5070 100644 --- a/macros/latex/contrib/l3kernel/l3sys.dtx +++ b/macros/latex/contrib/l3kernel/l3sys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf Binary files differindex b23107625d..5d1e3217c1 100644 --- a/macros/latex/contrib/l3kernel/l3term-glossary.pdf +++ b/macros/latex/contrib/l3kernel/l3term-glossary.pdf diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex index 9e1ee7818c..a404d48695 100644 --- a/macros/latex/contrib/l3kernel/l3term-glossary.tex +++ b/macros/latex/contrib/l3kernel/l3term-glossary.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2020-03-03} +\date{Released 2020-03-06} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx index 0a516e56fb..44b06224b5 100644 --- a/macros/latex/contrib/l3kernel/l3text-case.dtx +++ b/macros/latex/contrib/l3kernel/l3text-case.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % @@ -1040,7 +1040,7 @@ % % \begin{macro}[EXP]{\@@_change_case_lower_tr:nnnN} % \begin{macro}[EXP]{\@@_change_case_lower_tr:nnNw} -% \begin{macro}[EXP]{\@@_change_case_lower_tr:nnN} +% \begin{macro}[EXP]{\@@_change_case_lower_tr:NnnN} % \begin{macro}[EXP]{\@@_change_case_lower_tr:nnnNN} % The Turkic languages need special treatment for dotted-i and dotless-i. % The lower casing rule can be expressed in terms of searching first for @@ -1074,7 +1074,7 @@ \cs_new:Npn \@@_change_case_lower_tr:nnNw #1#2#3#4 \q_recursion_stop { \tl_if_head_is_N_type:nTF {#4} - { \@@_change_case_lower_tr:nnN } + { \@@_change_case_lower_tr:NnnN #3 } { \@@_change_case_store:e { \char_generate:nn { "0131 } { \@@_char_catcode:N #3 } } @@ -1082,20 +1082,20 @@ } {#1} {#2} #4 \q_recursion_stop } - \cs_new:Npn \@@_change_case_lower_tr:nnN #1#2#3 + \cs_new:Npn \@@_change_case_lower_tr:NnnN #1#2#3#4 { \bool_lazy_or:nnTF - { \token_if_cs_p:N #3 } - { ! \int_compare_p:nNn { `#3 } = { "0307 } } + { \token_if_cs_p:N #4 } + { ! \int_compare_p:nNn { `#4 } = { "0307 } } { \@@_change_case_store:e - { \char_generate:nn { "0131 } { \@@_char_catcode:N #3 } } - \@@_change_case_loop:nnw {#1} {#2} #3 + { \char_generate:nn { "0131 } { \@@_char_catcode:N #1 } } + \@@_change_case_loop:nnw {#2} {#3} #4 } { \@@_change_case_store:e - { \char_generate:nn { "0069 } { \@@_char_catcode:N #3 } } - \@@_change_case_loop:nnw {#1} {#2} + { \char_generate:nn { "0069 } { \@@_char_catcode:N #1 } } + \@@_change_case_loop:nnw {#2} {#3} } } } diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx new file mode 100644 index 0000000000..fdddb25414 --- /dev/null +++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx @@ -0,0 +1,783 @@ +% \iffalse meta-comment +% +%% File: l3text-purify.dtx +% +% Copyright (C) 2020 The LaTeX3 Project +% +% It may be distributed and/or modified under the conditions of the +% LaTeX Project Public License (LPPL), either version 1.3c of this +% license or (at your option) any later version. The latest version +% of this license is in the file +% +% https://www.latex-project.org/lppl.txt +% +% This file is part of the "l3kernel bundle" (The Work in LPPL) +% and all files in that bundle must be distributed together. +% +% ----------------------------------------------------------------------- +% +% The development version of the bundle can be found at +% +% https://github.com/latex3/latex3 +% +% for those people who are interested. +% +%<*driver> +\documentclass[full,kernel]{l3doc} +\begin{document} + \DocInput{\jobname.dtx} +\end{document} +%</driver> +% \fi +% +% \title{^^A +% The \textsf{l3text-purify} package: text processing (purification)^^A +% } +% +% \author{^^A +% The \LaTeX3 Project\thanks +% {^^A +% E-mail: +% \href{mailto:latex-team@latex-project.org} +% {latex-team@latex-project.org}^^A +% }^^A +% } +% +% \date{Released 2020-03-06} +% +% \maketitle +% +% \begin{documentation} +% +% \end{documentation} +% +% \begin{implementation} +% +% \section{\pkg{l3text} implementation} +% +% \begin{macrocode} +%<*initex|package> +% \end{macrocode} +% +% \begin{macrocode} +%<@@=text> +% \end{macrocode} +% +% \subsection{Purifying text} +% +% \begin{macro}[rEXP]{\text_purify:n, \@@_purify:n} +% \begin{macro}[rEXP]{\@@_purify_loop:w} +% \begin{macro}[rEXP]{\@@_purify_group:n} +% \begin{macro}[rEXP]{\@@_purify_space:w} +% \begin{macro}[rEXP]{\@@_purify_N_type:N, \@@_purify_N_type_aux:N} +% \begin{macro}[rEXP]{\@@_purify_math_search:NNN} +% \begin{macro}[rEXP]{\@@_purify_math_start:NNw} +% \begin{macro}[rEXP]{\@@_purify_math_store:n} +% \begin{macro}[rEXP]{\@@_purify_math_store:nw} +% \begin{macro}[rEXP]{\@@_purify_math_end:w} +% \begin{macro}[rEXP]{\@@_purify_math_loop:NNw} +% \begin{macro}[rEXP]{\@@_purify_math_N_type:NNN} +% \begin{macro}[rEXP]{\@@_purify_math_group:NNn} +% \begin{macro}[rEXP]{\@@_purify_math_space:NNw} +% \begin{macro}[rEXP]{\@@_purify_math_cmd:N} +% \begin{macro}[rEXP]{\@@_purify_math_cmd:NN} +% \begin{macro}[rEXP]{\@@_purify_math_cmd:Nn} +% \begin{macro}[rEXP]{\@@_purify_replace:N} +% \begin{macro}[rEXP]{\@@_purify_replace:n} +% \begin{macro}[rEXP]{\@@_purify_expand:N, \@@_purify_protect:N} +% As in the other parts of the module, we start off with a standard +% \enquote{action} loop, with expansion applied up-front. Here, as there +% will be no text commands left in the output, there is no concern about +% using \cs{exp_not:n} and \texttt{e}-type expansion. +% \begin{macrocode} +\cs_new:Npn \text_purify:n #1 + { + \group_align_safe_begin: + \exp_args:Ne \@@_purify:n + { \text_expand:n {#1} } + \group_align_safe_end: + } +\cs_new:Npn \@@_purify:n #1 + { \@@_purify_loop:w #1 \q_recursion_tail \q_recursion_stop } +% \end{macrocode} +% The main loop is a standard \enquote{tl action}. Unlike the expansion +% or case changing, here any groups have to be run inline. Most of the +% business end is as before in the \texttt{N}-type token processing. +% \begin{macrocode} +\cs_new:Npn \@@_purify_loop:w #1 \q_recursion_stop + { + \tl_if_head_is_N_type:nTF {#1} + { \@@_purify_N_type:N } + { + \tl_if_head_is_group:nTF {#1} + { \@@_purify_group:n } + { \@@_purify_space:w } + } + #1 \q_recursion_stop + } +\cs_new:Npn \@@_purify_group:n #1 { \@@_purify_loop:w #1 } +\exp_last_unbraced:NNo \cs_new:Npn \@@_purify_space:w \c_space_tl + { + \c_space_tl + \@@_purify_loop:w + } +% \end{macrocode} +% The first part of handling math mode is exactly the same as in the +% other functions: look for a start-of-math mode token and if found start +% a new loop tracking the closing token. +% \begin{macrocode} +\cs_new:Npn \@@_purify_N_type:N #1 + { + \quark_if_recursion_tail_stop:N #1 + \@@_purify_N_type_aux:N #1 + } +\cs_new:Npn \@@_purify_N_type_aux:N #1 + { + \exp_after:wN \@@_purify_math_search:NNN + \exp_after:wN #1 \l_text_math_delims_tl + \q_recursion_tail ? + \q_recursion_stop + } +\cs_new:Npn \@@_purify_math_search:NNN #1#2#3 + { + \quark_if_recursion_tail_stop_do:Nn #2 + { \@@_purify_math_cmd:N #1 } + \token_if_eq_meaning:NNTF #1 #2 + { + \use_i_delimit_by_q_recursion_stop:nw + { \@@_purify_math_start:NNw #2 #3 } + } + { \@@_purify_math_search:NNN #1 } + } +\cs_new:Npn \@@_purify_math_start:NNw #1#2#3 \q_recursion_stop + { + \@@_purify_math_loop:NNw #1#2#3 \q_recursion_stop + \@@_purify_math_result:n { } + } +\cs_new:Npn \@@_purify_math_store:n #1 + { \@@_purify_math_store:nw {#1} } +\cs_new:Npn \@@_purify_math_store:nw #1#2 \@@_purify_math_result:n #3 + { #2 \@@_purify_math_result:n { #3 #1 } } +\cs_new:Npn \@@_purify_math_end:w #1 \@@_purify_math_result:n #2 + { + \exp_not:n { $ #2 $ } + \@@_purify_loop:w #1 + } +\cs_new:Npn \@@_purify_math_stop:Nw #1 \@@_purify_math_result:n #2 + { \exp_not:n {#1#2} } +\cs_new:Npn \@@_purify_math_loop:NNw #1#2#3 \q_recursion_stop + { + \tl_if_head_is_N_type:nTF {#3} + { \@@_purify_math_N_type:NNN } + { + \tl_if_head_is_group:nTF {#3} + { \@@_purify_math_group:NNn } + { \@@_purify_math_space:NNw } + } + #1#2#3 \q_recursion_stop + } +\cs_new:Npn \@@_purify_math_N_type:NNN #1#2#3 + { + \quark_if_recursion_tail_stop_do:Nn #3 + { \@@_purify_math_stop:Nw #1 } + \token_if_eq_meaning:NNTF #3 #2 + { \@@_purify_math_end:w } + { + \@@_purify_math_store:n {#3} + \@@_purify_math_loop:NNw #1#2 + } + } +\cs_new:Npn \@@_purify_math_group:NNn #1#2#3 + { + \@@_purify_math_store:n { {#3} } + \@@_purify_math_loop:NNw #1#2 + } +\exp_after:wN \cs_new:Npn \exp_after:wN \@@_purify_math_space:NNw + \exp_after:wN # \exp_after:wN 1 + \exp_after:wN # \exp_after:wN 2 \c_space_tl + { + \@@_purify_math_store:n { ~ } + \@@_purify_math_loop:NNw #1#2 + } +% \end{macrocode} +% Then handle math mode as an argument: same outcomes, different input +% syntax. +% \begin{macrocode} +\cs_new:Npn \@@_purify_math_cmd:N #1 + { + \exp_after:wN \@@_purify_math_cmd:NN \exp_after:wN #1 + \l_text_math_arg_tl \q_recursion_tail \q_recursion_stop + } +\cs_new:Npn \@@_purify_math_cmd:NN #1#2 + { + \quark_if_recursion_tail_stop_do:Nn #2 + { \@@_purify_replace:N #1 } + \cs_if_eq:NNTF #2 #1 + { + \use_i_delimit_by_q_recursion_stop:nw + { \@@_purify_math_cmd:n } + } + { \@@_purify_math_cmd:NN #1 } + } +\cs_new:Npn \@@_purify_math_cmd:n #1 + { \@@_purify_math_end:w \@@_purify_math_result:n {#1} } +% \end{macrocode} +% For \texttt{N}-type tokens, we first look for a string-context replacement +% before anything else: this can therefore cover anything. Assuming we don't +% find one, check to see if we can expand control sequences: if not, they have +% to be dropped. We also allow for \LaTeXe{} \tn{protect}: there's an +% assumption that we don't have |\protect { \oops }| or similar, but that's +% also in the expansion code and seems like a reasonable balance. +% \begin{macrocode} +\cs_new:Npn \@@_purify_replace:N #1 + { + \bool_lazy_and:nnTF + { \cs_if_exist_p:c { l_@@_purify_ \token_to_str:N #1 _tl } } + { + \bool_lazy_or_p:nn + { \token_if_cs_p:N #1 } + { \token_if_active_p:N #1 } + } + { + \exp_args:Nv \@@_purify_replace:n + { l_@@_purify_ \token_to_str:N #1 _tl } + } + { + \token_if_cs:NTF #1 + { \@@_purify_expand:N #1 } + { + \@@_token_to_explicit:N #1 + \@@_purify_loop:w + } + } + } +\cs_new:Npn \@@_purify_replace:n #1 { \@@_purify_loop:w #1 } +\cs_new:Npn \@@_purify_expand:N #1 + { + \str_if_eq:nnTF {#1} { \protect } + { \@@_purify_protect:N } + { + \@@_if_expandable:NTF #1 + { \exp_after:wN \@@_purify_loop:w #1 } + { \@@_purify_loop:w } + } + } +\cs_new:Npn \@@_purify_protect:N #1 + { + \quark_if_recursion_tail_stop:N #1 + \@@_purify_loop:w + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro} +% { +% \text_declare_purify_equivalent:Nn, +% \text_declare_purify_equivalent:Nx +% } +% \begin{macrocode} +\cs_new_protected:Npn \text_declare_purify_equivalent:Nn #1#2 + { + \tl_clear_new:c { l_@@_purify_ \token_to_str:N #1 _tl } + \tl_set:cn { l_@@_purify_ \token_to_str:N #1 _tl } {#2} + } +\cs_generate_variant:Nn \text_declare_purify_equivalent:Nn { Nx } +% \end{macrocode} +% \end{macro} +% +% Now pre-define a range of standard commands that need dedicated definitions +% in purified text. First handle font-related stuff: all of this needs to be +% disabled. +% \begin{macrocode} +\tl_map_inline:nn + { + \fontencoding + \fontfamily + \fontseries + \fontshape + } + { \text_declare_purify_equivalent:Nn #1 { \use_none:n } } +\text_declare_purify_equivalent:Nn \fontsize { \use_none:nn } +\text_declare_purify_equivalent:Nn \selectfont { } +\text_declare_purify_equivalent:Nn \usefont { \use_none:nnnn } +\tl_map_inline:nn + { + \emph + \text + \textnormal + \textrm + \textsf + \texttt + \textbf + \textmd + \textit + \textsl + \textup + \textsc + \textulc + } + { \text_declare_purify_equivalent:Nn #1 { \use:n } } +\tl_map_inline:nn + { + \normalfont + \rmfamily + \sffamily + \ttfamily + \bfseries + \mdseries + \itshape + \scshape + \slshape + \upshape + \em + \Huge + \LARGE + \Large + \footnotesize + \huge + \large + \normalsize + \scriptsize + \small + \tiny + } + { \text_declare_purify_equivalent:Nn #1 { } } +% \end{macrocode} +% Environments have to be handled by pure expansion. +% \begin{macrocode} +\text_declare_purify_equivalent:Nn \begin { \use:c } +\text_declare_purify_equivalent:Nn \end { \use:c } +% \end{macrocode} +% Some common symbols and similar ideas. +% \begin{macrocode} +\text_declare_purify_equivalent:Nn \\ { } +\tl_map_inline:nn + { \{ \} \# \$ \% \_ } + { \text_declare_purify_equivalent:Nx #1 { \cs_to_str:N #1 } } +% \end{macrocode} +% Cross-referencing. +% \begin{macrocode} +\text_declare_purify_equivalent:Nn \label { \use_none:n } +% \end{macrocode} +% Spaces. +% \begin{macrocode} +\group_begin: +\char_set_catcode_active:N \~ +\use:n + { + \group_end: + \text_declare_purify_equivalent:Nx ~ { \c_space_tl } + } +\text_declare_purify_equivalent:Nn \nobreakspace { ~ } +\text_declare_purify_equivalent:Nn \ { ~ } +\text_declare_purify_equivalent:Nn \, { ~ } +% \end{macrocode} +% +% \subsection{Accent and letter-like data for purifying text} +% +% In contrast to case changing, both $8$-bit and Unicode engines need +% information for text purification to handle accents and letter-like +% functions: these all need to be removed. However, the results are +% of course engine-dependent. +% +% For the letter-like commands, life is relatively easy: they are all +% simply added as standard exceptions. The only oddity is \tn{SS}, which +% gets converted to two letters. (At some stage an alternative version +% can presumably be added to \pkg{babel} or similar.) +% \begin{macrocode} +\bool_lazy_or:nnTF + { \sys_if_engine_luatex_p: } + { \sys_if_engine_xetex_p: } + { + \cs_set_protected:Npn \@@_loop:Nn #1#2 + { + \quark_if_recursion_tail_stop:N #1 + \text_declare_purify_equivalent:Nx #1 + { + \char_generate:nn { "#2 } + { \char_value_catcode:n { "#2 } } + } + \@@_loop:Nn + } + } + { + \cs_set_protected:Npn \@@_loop:Nn #1#2 + { + \quark_if_recursion_tail_stop:N #1 + \text_declare_purify_equivalent:Nx #1 + { + \exp_args:Ne \@@_tmp:n + { \char_to_utfviii_bytes:n { "#2 } } + } + \@@_loop:Nn + } + \cs_set:Npn \@@_tmp:n #1 { \@@_tmp:nnnn #1 } + \cs_set:Npn \@@_tmp:nnnn #1#2#3#4 + { + \exp_after:wN \exp_after:wN \exp_after:wN + \exp_not:N \char_generate:nn {#1} { 13 } + \exp_after:wN \exp_after:wN \exp_after:wN + \exp_not:N \char_generate:nn {#2} { 13 } + } + } +\@@_loop:Nn + \AA { 00C5 } + \AE { 00C6 } + \DH { 00D0 } + \DJ { 0110 } + \IJ { 0132 } + \L { 0141 } + \NG { 014A } + \O { 00D8 } + \OE { 0152 } + \TH { 00DE } + \aa { 00E5 } + \ae { 00E6 } + \dh { 00F0 } + \dj { 0111 } + \i { 0131 } + \j { 0237 } + \ij { 0132 } + \l { 0142 } + \ng { 014B } + \o { 00F8 } + \oe { 0153 } + \ss { 00DF } + \th { 00FE } + \q_recursion_tail ? + \q_recursion_stop +\text_declare_purify_equivalent:Nn \SS { SS } +% \end{macrocode} +% +% \begin{macro}[rEXP]{\@@_purify_accent:NN} +% Accent \textsc{licr} handling is a little more complex. Accents may exist +% as pre-composed codepoints or as independent glyphs. The former are all +% saved as single token lists, whilst for the latter the combining accent +% needs to be re-ordered compared to the character it applies to. +% \begin{macrocode} +\cs_new:Npn \@@_purify_accent:NN #1#2 + { + \cs_if_exist:cTF + { c_@@_purify_ \token_to_str:N #1 _ \token_to_str:N #2 _tl } + { + \exp_not:v + { c_@@_purify_ \token_to_str:N #1 _ \token_to_str:N #2 _tl } + } + { + \exp_not:n {#2} + \exp_not:v { c_@@_purify_ \token_to_str:N #1 _tl } + } + } +\tl_map_inline:Nn \l_text_accents_tl + { \text_declare_purify_equivalent:Nn #1 { \@@_purify_accent:NN #1 } } +% \end{macrocode} +% First set up the combining accents. +% \begin{macrocode} +\group_begin: + \cs_set_protected:Npn \@@_loop:Nn #1#2 + { + \quark_if_recursion_tail_stop:N #1 + \tl_const:cx { c_@@_purify_ \token_to_str:N #1 _tl } + { \@@_tmp:n {#2} } + \@@_loop:Nn + } + \bool_lazy_or:nnTF + { \sys_if_engine_luatex_p: } + { \sys_if_engine_xetex_p: } + { + \cs_set:Npn \@@_tmp:n #1 + { + \char_generate:nn { "#1 } + { \char_value_catcode:n { "#1 } } + } + } + { + \cs_set:Npn \@@_tmp:n #1 + { + \exp_args:Ne \@@_tmp_aux:n + { \char_to_utfviii_bytes:n { "#1 } } + } + \cs_set:Npn \@@_tmp_aux:n #1 { \@@_tmp:nnnn #1 } + \cs_set:Npn \@@_tmp:nnnn #1#2#3#4 + { + \exp_after:wN \exp_after:wN \exp_after:wN + \exp_not:N \char_generate:nn {#1} { 13 } + \exp_after:wN \exp_after:wN \exp_after:wN + \exp_not:N \char_generate:nn {#2} { 13 } + } + } + \@@_loop:Nn + \` { 0300 } + \' { 0301 } + \^ { 0302 } + \~ { 0303 } + \= { 0304 } + \u { 0306 } + \. { 0307 } + \" { 0308 } + \r { 030A } + \H { 030B } + \v { 030C } + \d { 0323 } + \c { 0327 } + \k { 0328 } + \b { 0331 } + \t { 0361 } + \q_recursion_tail { } + \q_recursion_stop +% \end{macrocode} +% Now we handle the pre-composed accents: the list here is taken from +% \texttt{puenc.def}. All of the precomposed cases take a single letter +% as their second argument. We do not try to cover the case where an accent +% is added to a \enquote{real} dotless-i or -j, or a \ae/\AE. Rather, we +% assume that if the \textsc{utf}-8 character is used, it will have the +% real accent character too. +% \begin{macrocode} + \cs_set_protected:Npn \@@_loop:NNn #1#2#3 + { + \quark_if_recursion_tail_stop:N #1 + \tl_const:cx + { c_@@_purify_ \token_to_str:N #1 _ \token_to_str:N #2 _tl } + { \@@_tmp:n {#3} } + \@@_loop:NNn + } + \@@_loop:NNn + \` A { 00C0 } + \' A { 00C1 } + \^ A { 00C2 } + \~ A { 00C3 } + \" A { 00C4 } + \r A { 00C5 } + \c C { 00C7 } + \` E { 00C8 } + \' E { 00C9 } + \^ E { 00CA } + \" E { 00CB } + \` I { 00CC } + \' I { 00CD } + \^ I { 00CE } + \" I { 00CF } + \~ N { 00D1 } + \` O { 00D2 } + \' O { 00D3 } + \^ O { 00D4 } + \~ O { 00D5 } + \" O { 00D6 } + \` U { 00D9 } + \' U { 00DA } + \^ U { 00DB } + \" U { 00DC } + \' Y { 00DD } + \` a { 00E0 } + \' a { 00E1 } + \^ a { 00E2 } + \~ a { 00E3 } + \" a { 00E4 } + \r a { 00E5 } + \c c { 00E7 } + \` e { 00E8 } + \' e { 00E9 } + \^ e { 00EA } + \" e { 00EB } + \` i { 00EC } + \` \i { 00EC } + \' i { 00ED } + \' \i { 00ED } + \^ i { 00EE } + \^ \i { 00EE } + \" i { 00EF } + \" \i { 00EF } + \~ n { 00F1 } + \` o { 00F2 } + \' o { 00F3 } + \^ o { 00F4 } + \~ o { 00F5 } + \" o { 00F6 } + \` u { 00F9 } + \' u { 00FA } + \^ u { 00FB } + \" u { 00FC } + \' y { 00FD } + \" y { 00FF } + \= A { 0100 } + \= a { 0101 } + \u A { 0102 } + \u a { 0103 } + \k A { 0104 } + \k a { 0105 } + \' C { 0106 } + \' c { 0107 } + \^ C { 0108 } + \^ c { 0109 } + \. C { 010A } + \. c { 010B } + \v C { 010C } + \v c { 010D } + \v D { 010E } + \v d { 010F } + \= E { 0112 } + \= e { 0113 } + \u E { 0114 } + \u e { 0115 } + \. E { 0116 } + \. e { 0117 } + \k E { 0118 } + \k e { 0119 } + \v E { 011A } + \v e { 011B } + \^ G { 011C } + \^ g { 011D } + \u G { 011E } + \u g { 011F } + \. G { 0120 } + \. g { 0121 } + \c G { 0122 } + \c g { 0123 } + \^ H { 0124 } + \^ h { 0125 } + \~ I { 0128 } + \~ i { 0129 } + \~ \i { 0129 } + \= I { 012A } + \= i { 012B } + \= \i { 012B } + \u I { 012C } + \u i { 012D } + \u \i { 012D } + \k I { 012E } + \k i { 012F } + \k \i { 012F } + \. I { 0130 } + \^ J { 0134 } + \^ j { 0135 } + \^ \j { 0135 } + \c K { 0136 } + \c k { 0137 } + \' L { 0139 } + \' l { 013A } + \c L { 013B } + \c l { 013C } + \v L { 013D } + \v l { 013E } + \. L { 013F } + \. l { 0140 } + \' N { 0143 } + \' n { 0144 } + \c N { 0145 } + \c n { 0146 } + \v N { 0147 } + \v n { 0148 } + \= O { 014C } + \= o { 014D } + \u O { 014E } + \u o { 014F } + \H O { 0150 } + \H o { 0151 } + \' R { 0154 } + \' r { 0155 } + \c R { 0156 } + \c r { 0157 } + \v R { 0158 } + \v r { 0159 } + \' S { 015A } + \' s { 015B } + \^ S { 015C } + \^ s { 015D } + \c S { 015E } + \c s { 015F } + \v S { 0160 } + \v s { 0161 } + \c T { 0162 } + \c t { 0163 } + \v T { 0164 } + \v t { 0165 } + \~ U { 0168 } + \~ u { 0169 } + \= U { 016A } + \= u { 016B } + \u U { 016C } + \u u { 016D } + \r U { 016E } + \r u { 016F } + \H U { 0170 } + \H u { 0171 } + \k U { 0172 } + \k u { 0173 } + \^ W { 0174 } + \^ w { 0175 } + \^ Y { 0176 } + \^ y { 0177 } + \" Y { 0178 } + \' Z { 0179 } + \' z { 017A } + \. Z { 017B } + \. z { 017C } + \v Z { 017D } + \v z { 017E } + \v A { 01CD } + \v a { 01CE } + \v I { 01CF } + \v \i { 01D0 } + \v i { 01D0 } + \v O { 01D1 } + \v o { 01D2 } + \v U { 01D3 } + \v u { 01D4 } + \v G { 01E6 } + \v g { 01E7 } + \v K { 01E8 } + \v k { 01E9 } + \k O { 01EA } + \k o { 01EB } + \v \j { 01F0 } + \v j { 01F0 } + \' G { 01F4 } + \' g { 01F5 } + \` N { 01F8 } + \` n { 01F9 } + \' \AE { 01FC } + \' \ae { 01FD } + \' \O { 01FE } + \' \o { 01FF } + \v H { 021E } + \v h { 021F } + \. A { 0226 } + \. a { 0227 } + \c E { 0228 } + \c e { 0229 } + \. O { 022E } + \. o { 022F } + \= Y { 0232 } + \= y { 0233 } + \q_recursion_tail ? { } + \q_recursion_stop +\group_end: +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</initex|package> +% \end{macrocode} +% +% \end{implementation} +% +% \PrintIndex diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx index 01af5e5c49..8d06641d95 100644 --- a/macros/latex/contrib/l3kernel/l3text.dtx +++ b/macros/latex/contrib/l3kernel/l3text.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % @@ -180,6 +180,36 @@ % \end{itemize} % \end{function} % +% \subsection{Removing formatting from text} +% +% \begin{function}[rEXP, added = 2020-03-05]{\text_purify:n} +% \begin{syntax} +% \cs{text_purify:n} \Arg{text} +% \end{syntax} +% Takes user input \meta{text} and expands as described for +% \cs{text_expand:n}, then removes all functions from the resulting +% text. Math mode material (as delimited by pairs given in +% \cs{l_text_math_delims_tl} or as the argument to commands listed in +% \cs{l_text_math_arg_tl}) is left contained in a pair of |$| delimiters. +% Non-expandable functions present in the \meta{text} must either have a +% defined equivalent (see \cs{text_declare_purify_equivalent:Nn}) or will +% be removed from the result. Implicit tokens are converted to their +% explicit equivalent. +% \end{function} +% +% \begin{function}[added = 2020-03-05] +% { +% \text_declare_purify_equivalent:Nn , +% \text_declare_purify_equivalent:Nx +% } +% \begin{syntax} +% \cs{text_declare_purify_equivalent:Nn} \meta{cmd} \Arg{replacement} +% \end{syntax} +% Declares that the \meta{replacement} tokens should be used whenever the +% \meta{cmd} (a single token) is encountered. The \meta{replacement} tokens +% should be expandable. +% \end{function} +% % \subsection{Control variables} % % \begin{variable}{\l_text_accents_tl} diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx index 023bc13ab5..bdfc80f714 100644 --- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx +++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx index 77fb21b753..3fba28f01d 100644 --- a/macros/latex/contrib/l3kernel/l3tl.dtx +++ b/macros/latex/contrib/l3kernel/l3tl.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx index 0a78a6401a..2c7dac3898 100644 --- a/macros/latex/contrib/l3kernel/l3token.dtx +++ b/macros/latex/contrib/l3kernel/l3token.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx index 42f10d7ee9..90dd9057b4 100644 --- a/macros/latex/contrib/l3kernel/l3unicode.dtx +++ b/macros/latex/contrib/l3kernel/l3unicode.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf Binary files differindex f70cc7def0..57b8a07a47 100644 --- a/macros/latex/contrib/l3kernel/source3.pdf +++ b/macros/latex/contrib/l3kernel/source3.pdf diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex index 03b190192a..33e5430010 100644 --- a/macros/latex/contrib/l3kernel/source3.tex +++ b/macros/latex/contrib/l3kernel/source3.tex @@ -53,7 +53,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2020-03-03} +\date{Released 2020-03-06} \pagenumbering{roman} \maketitle diff --git a/macros/latex/contrib/l3kernel/source3body.tex b/macros/latex/contrib/l3kernel/source3body.tex index f985c0d147..4edd3d5b6c 100644 --- a/macros/latex/contrib/l3kernel/source3body.tex +++ b/macros/latex/contrib/l3kernel/source3body.tex @@ -2,7 +2,7 @@ File: source3body.tex -Copyright (C) 1990-2012,2014-2019 The LaTeX3 Project +Copyright (C) 1990-2012,2014-2020 The LaTeX3 Project It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -488,7 +488,8 @@ used on top of \LaTeXe{} if \cs{outer} tokens are used in the arguments. \ExplSyntaxOn \clist_gput_right:Nn \g_docinput_clist { - l3text-case.dtx + l3text-case.dtx , + l3text-purify.dtx } \ExplSyntaxOff \DocInput{l3legacy.dtx} diff --git a/macros/latex/contrib/l3packages/CHANGELOG.md b/macros/latex/contrib/l3packages/CHANGELOG.md index 9b92b84018..515f5d001b 100644 --- a/macros/latex/contrib/l3packages/CHANGELOG.md +++ b/macros/latex/contrib/l3packages/CHANGELOG.md @@ -7,6 +7,11 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2020-03-06] + +### Added +- Pre-loader file `xparse.ltx` + ## [2020-03-03] ### Changed @@ -87,7 +92,8 @@ this project uses date-based 'snapshot' version identifiers. - Switch to ISO date format - Improve cross-module use of internal functions -[Unreleased]: https://github.com/latex3/latex3/compare/2020-03-03...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2020-03-06...HEAD +[2020-03-06]: https://github.com/latex3/latex3/compare/2020-03-03...2020-03-06 [2020-03-03]: https://github.com/latex3/latex3/compare/2020-02-25...2020-03-03 [2020-02-25]: https://github.com/latex3/latex3/compare/2020-02-14...2020-02-25 [2020-02-14]: https://github.com/latex3/latex3/compare/2020-02-08...2020-02-14 diff --git a/macros/latex/contrib/l3packages/README.md b/macros/latex/contrib/l3packages/README.md index 60647bde63..dbfd91cf34 100644 --- a/macros/latex/contrib/l3packages/README.md +++ b/macros/latex/contrib/l3packages/README.md @@ -1,7 +1,7 @@ LaTeX3 High-Level Concepts ========================== -Release 2020-03-03 +Release 2020-03-06 Overview -------- diff --git a/macros/latex/contrib/l3packages/l3keys2e.dtx b/macros/latex/contrib/l3packages/l3keys2e.dtx index 3b648b7bdd..d6701c4519 100644 --- a/macros/latex/contrib/l3packages/l3keys2e.dtx +++ b/macros/latex/contrib/l3packages/l3keys2e.dtx @@ -62,7 +62,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % @@ -139,7 +139,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3keys2e}{2020-03-03}{} +\ProvidesExplPackage{l3keys2e}{2020-03-06}{} {LaTeX2e option processing using LaTeX3 keys} % \end{macrocode} % diff --git a/macros/latex/contrib/l3packages/l3keys2e.pdf b/macros/latex/contrib/l3packages/l3keys2e.pdf Binary files differindex 2a1c8fedbd..497301bdf7 100644 --- a/macros/latex/contrib/l3packages/l3keys2e.pdf +++ b/macros/latex/contrib/l3packages/l3keys2e.pdf diff --git a/macros/latex/contrib/l3packages/xfp.dtx b/macros/latex/contrib/l3packages/xfp.dtx index 023e0e2ed5..afdd9e189c 100644 --- a/macros/latex/contrib/l3packages/xfp.dtx +++ b/macros/latex/contrib/l3packages/xfp.dtx @@ -64,7 +64,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % @@ -167,7 +167,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xfp}{2020-03-03}{} +\ProvidesExplPackage{xfp}{2020-03-06}{} {L3 Floating point unit} % \end{macrocode} % diff --git a/macros/latex/contrib/l3packages/xfp.pdf b/macros/latex/contrib/l3packages/xfp.pdf Binary files differindex e5896aa5e8..2191564816 100644 --- a/macros/latex/contrib/l3packages/xfp.pdf +++ b/macros/latex/contrib/l3packages/xfp.pdf diff --git a/macros/latex/contrib/l3packages/xfrac.dtx b/macros/latex/contrib/l3packages/xfrac.dtx index abbce7d8d1..7be07c978e 100644 --- a/macros/latex/contrib/l3packages/xfrac.dtx +++ b/macros/latex/contrib/l3packages/xfrac.dtx @@ -65,7 +65,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % @@ -535,7 +535,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xfrac}{2020-03-03}{} +\ProvidesExplPackage{xfrac}{2020-03-06}{} {L3 Experimental split-level fractions} % \end{macrocode} % diff --git a/macros/latex/contrib/l3packages/xfrac.pdf b/macros/latex/contrib/l3packages/xfrac.pdf Binary files differindex 4c26aa4286..a6b5f6a7c9 100644 --- a/macros/latex/contrib/l3packages/xfrac.pdf +++ b/macros/latex/contrib/l3packages/xfrac.pdf diff --git a/macros/latex/contrib/l3packages/xparse.dtx b/macros/latex/contrib/l3packages/xparse.dtx index 279b2e58c0..f56bcdf5e9 100644 --- a/macros/latex/contrib/l3packages/xparse.dtx +++ b/macros/latex/contrib/l3packages/xparse.dtx @@ -67,7 +67,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % @@ -970,20 +970,73 @@ % \section{\pkg{xparse} implementation} % % \begin{macrocode} -%<*package> +%<@@=xparse> % \end{macrocode} % % \begin{macrocode} -%<@@=xparse> +%<*2ekernel> +% \end{macrocode} +% +% \begin{macrocode} +\everyjob\expandafter{\the\everyjob + \message{xparse <2020-03-03>}% +} +\ExplSyntaxOn % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xparse}{2020-03-03}{} +%</2ekernel> +% \end{macrocode} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \begin{macrocode} +\ProvidesExplPackage{xparse}{2020-03-06}{} {L3 Experimental document command parser} % \end{macrocode} % +% \subsection{Package options} +% +% \begin{variable}{\l_@@_options_clist} +% \begin{variable}{\l_@@_log_bool} +% Key--value option to log information: done by hand to keep dependencies +% down. +% \begin{macrocode} +\clist_new:N \l_@@_options_clist +\DeclareOption* { \clist_put_right:NV \l_@@_options_clist \CurrentOption } +\ProcessOptions \relax +\keys_define:nn { xparse } + { + log-declarations .bool_set:N = \l_@@_log_bool , + log-declarations .initial:n = false + } +\keys_set:nV { xparse } \l_@@_options_clist +\bool_if:NF \l_@@_log_bool + { \msg_redirect_module:nnn { LaTeX / xparse } { info } { none } } +% \end{macrocode} +% \end{variable} +% \end{variable} +% +% \subsection{Reload check} +% +% A simple reload check. +% \begin{macrocode} +\cs_if_exist:NT \NewDocumentCommand + { \file_input_stop: } +% \end{macrocode} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% % \subsection{Variables and constants} % +% \begin{macrocode} +%<*package|2ekernel> +% \end{macrocode} +% % \begin{variable}{\c_@@_special_chars_seq} % In \IniTeX{} mode, we store special characters in a sequence. % Maybe |$| or |&| will have to be added later. @@ -1424,9 +1477,9 @@ %<*initex> \cs_if_exist:cTF { environment~ \l_@@_environment_str } %</initex> -%<*package> +%<*package|2ekernel> \cs_if_exist:cTF { \l_@@_environment_str } -%</package> +%</package|2ekernel> { \__kernel_msg_info:nnxx { xparse } { redefine-environment } { \l_@@_environment_str } { \tl_to_str:n {#2} } @@ -1472,10 +1525,10 @@ \cs_generate_from_arg_count:cNnn { environment~ #1 ~end~aux~ } \cs_set:Npn \l_@@_current_arg_int {#4} -%<*package> +%<*package|2ekernel> \cs_set_eq:cc {#1} { environment~ #1 } \cs_set_eq:cc { end #1 } { environment~ #1 ~end } -%</package> +%</package|2ekernel> } } % \end{macrocode} @@ -1495,9 +1548,9 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_start_env:nnnnn #1#2 { -%<*package> +%<*package|2ekernel> \cs_if_exist_use:N \conditionally@traceoff -%</package> +%</package|2ekernel> \str_set:Nn \l_@@_environment_str {#2} \bool_set_true:N \l_@@_environment_bool \@@_start_aux:ccnnnn @@ -1507,9 +1560,9 @@ } \cs_new_protected:Npx \@@_start:nNNnnn #1#2#3 { -%<*package> +%<*package|2ekernel> \exp_not:n { \cs_if_exist_use:N \conditionally@traceoff } -%</package> +%</package|2ekernel> \exp_not:c { xparse~function~is~not~expandable } \exp_not:n { \bool_set_false:N \l_@@_environment_bool } \exp_not:N \@@_start_aux:NNnnnn @@ -1546,9 +1599,9 @@ { \tl_if_empty:NF \l_@@_defaults_tl { \@@_defaults: } \tl_if_empty:NF \l_@@_process_all_tl { \@@_args_process: } -%<*package> +%<*package|2ekernel> \cs_if_exist_use:N \conditionally@traceon -%</package> +%</package|2ekernel> \exp_after:wN \l_@@_fn_code_tl \l_@@_args_tl } % \end{macrocode} @@ -3641,10 +3694,10 @@ \c_@@_special_chars_seq \char_set_catcode_other:N %</initex> -%<*package> +%<*package|2ekernel> \cs_set_eq:NN \do \char_set_catcode_other:N \dospecials -%</package> +%</package|2ekernel> \tex_endlinechar:D = `\^^M \scan_stop: \bool_if:NTF \l_@@_long_bool { \char_set_catcode_other:n { \tex_endlinechar:D } } @@ -5057,30 +5110,20 @@ % \end{macro} % \end{macro} % -% \subsection{Package options} +% \begin{macrocode} +%<*2ekernel> +% \end{macrocode} % -% \begin{variable}{\l_@@_options_clist} -% \begin{variable}{\l_@@_log_bool} -% Key--value option to log information: done by hand to keep dependencies -% down. % \begin{macrocode} -\clist_new:N \l_@@_options_clist -\DeclareOption* { \clist_put_right:NV \l_@@_options_clist \CurrentOption } -\ProcessOptions \relax -\keys_define:nn { xparse } - { - log-declarations .bool_set:N = \l_@@_log_bool , - log-declarations .initial:n = false - } -\keys_set:nV { xparse } \l_@@_options_clist -\bool_if:NF \l_@@_log_bool - { \msg_redirect_module:nnn { LaTeX / xparse } { info } { none } } +\ExplSyntaxOff % \end{macrocode} -% \end{variable} -% \end{variable} % % \begin{macrocode} -%</package> +%</2ekernel> +% \end{macrocode} +% +% \begin{macrocode} +%</package|2ekernel> % \end{macrocode} % % \end{implementation} diff --git a/macros/latex/contrib/l3packages/xparse.ins b/macros/latex/contrib/l3packages/xparse.ins index e65d254709..d40f7cd6f2 100644 --- a/macros/latex/contrib/l3packages/xparse.ins +++ b/macros/latex/contrib/l3packages/xparse.ins @@ -42,6 +42,7 @@ and all files in that bundle must be distributed together. \keepsilent -\generate{\file{xparse.sty} {\from{xparse.dtx} {package}}} +\generate{\file{xparse.sty} {\from{xparse.dtx} {package}} + \file{xparse.ltx} {\from{xparse.dtx} {2ekernel}}} \endbatchfile diff --git a/macros/latex/contrib/l3packages/xparse.pdf b/macros/latex/contrib/l3packages/xparse.pdf Binary files differindex 98e62db0e1..76fe65c72b 100644 --- a/macros/latex/contrib/l3packages/xparse.pdf +++ b/macros/latex/contrib/l3packages/xparse.pdf diff --git a/macros/latex/contrib/l3packages/xtemplate.dtx b/macros/latex/contrib/l3packages/xtemplate.dtx index d0ced34962..2236b30f97 100644 --- a/macros/latex/contrib/l3packages/xtemplate.dtx +++ b/macros/latex/contrib/l3packages/xtemplate.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2020-03-03} +% \date{Released 2020-03-06} % % \maketitle % @@ -682,7 +682,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xtemplate}{2020-03-03}{} +\ProvidesExplPackage{xtemplate}{2020-03-06}{} {L3 Experimental prototype document functions} % \end{macrocode} % diff --git a/macros/latex/contrib/l3packages/xtemplate.pdf b/macros/latex/contrib/l3packages/xtemplate.pdf Binary files differindex 20ae5c9d3f..68bbd25f44 100644 --- a/macros/latex/contrib/l3packages/xtemplate.pdf +++ b/macros/latex/contrib/l3packages/xtemplate.pdf |