From b8f67cb908880c8fdf6b03eb9c4d5219d7409171 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 11 Dec 2018 22:32:49 +0000 Subject: latex(2e) (11dec18) git-svn-id: svn://tug.org/texlive/trunk@49390 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/base/classes.dtx | 31 +- Master/texmf-dist/source/latex/base/cmextra.ins | 11 +- Master/texmf-dist/source/latex/base/doc.dtx | 9 +- Master/texmf-dist/source/latex/base/exscale.dtx | 18 +- Master/texmf-dist/source/latex/base/fontdef.dtx | 51 ++- Master/texmf-dist/source/latex/base/inputenc.dtx | 54 +-- Master/texmf-dist/source/latex/base/latex209.dtx | 7 +- .../texmf-dist/source/latex/base/latexrelease.ins | 1 + Master/texmf-dist/source/latex/base/ltalloc.dtx | 8 +- Master/texmf-dist/source/latex/base/ltbibl.dtx | 8 +- Master/texmf-dist/source/latex/base/ltclass.dtx | 11 +- Master/texmf-dist/source/latex/base/ltdefns.dtx | 8 +- Master/texmf-dist/source/latex/base/lterror.dtx | 12 +- Master/texmf-dist/source/latex/base/ltfinal.dtx | 18 +- Master/texmf-dist/source/latex/base/ltfloat.dtx | 2 +- Master/texmf-dist/source/latex/base/ltluatex.dtx | 36 +- Master/texmf-dist/source/latex/base/ltmath.dtx | 42 +- Master/texmf-dist/source/latex/base/ltmiscen.dtx | 304 ++++++++++++- Master/texmf-dist/source/latex/base/ltnews29.tex | 479 +++++++++++++++++++++ Master/texmf-dist/source/latex/base/ltoutenc.dtx | 89 +++- Master/texmf-dist/source/latex/base/ltoutput.dtx | 21 +- Master/texmf-dist/source/latex/base/ltpictur.dtx | 16 +- Master/texmf-dist/source/latex/base/ltsect.dtx | 87 +++- Master/texmf-dist/source/latex/base/ltspace.dtx | 86 +++- Master/texmf-dist/source/latex/base/ltvers.dtx | 6 +- Master/texmf-dist/source/latex/base/utf8ienc.dtx | 49 ++- 26 files changed, 1312 insertions(+), 152 deletions(-) create mode 100644 Master/texmf-dist/source/latex/base/ltnews29.tex (limited to 'Master/texmf-dist/source/latex/base') diff --git a/Master/texmf-dist/source/latex/base/classes.dtx b/Master/texmf-dist/source/latex/base/classes.dtx index 5b6e68ba682..a2dde6ade16 100644 --- a/Master/texmf-dist/source/latex/base/classes.dtx +++ b/Master/texmf-dist/source/latex/base/classes.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2016 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -53,7 +53,7 @@ %<*driver> \ProvidesFile{classes.drv} % - [2014/09/29 v1.4h + [2018/09/03 v1.4i % Standard LaTeX document class] %<10pt|11pt|12pt> Standard LaTeX file (size option)] % \end{macrocode} @@ -3812,7 +3812,14 @@ % set flush right. % \begin{macrocode} {\leavevmode - \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par + \large \bfseries #1\hfil + \hb@xt@\@pnumwidth{\hss #2% +% \end{macrocode} +% +% \changes{v1.4i}{2018/09/03}{Prevent protrusion +% (\url{https://tex.stackexchange.com/q/172785/10109})} +% \begin{macrocode} + \kern-\p@\kern\p@}}\par % \end{macrocode} % Prevent a pagebreak immediately after this entry, but use % |\everypar| to reset the |\if@nobreak| switch. Finally we close @@ -3873,7 +3880,14 @@ % \begin{macrocode} \advance\leftskip\@tempdima \hskip -\leftskip - #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + #1\nobreak\hfil + \nobreak\hb@xt@\@pnumwidth{\hss #2% +% \end{macrocode} +% +% \changes{v1.4i}{2018/09/03}{Prevent protrusion +% (\url{https://tex.stackexchange.com/q/172785/10109})} +% \begin{macrocode} + \kern-\p@\kern\p@}\par \penalty\@highpenalty \endgroup \fi} @@ -3923,7 +3937,14 @@ % \begin{macrocode} \advance\leftskip\@tempdima \hskip -\leftskip - #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par + #1\nobreak\hfil + \nobreak\hb@xt@\@pnumwidth{\hss #2% +% \end{macrocode} +% +% \changes{v1.4i}{2018/09/03}{Prevent protrusion +% (\url{https://tex.stackexchange.com/q/172785/10109})} +% \begin{macrocode} + \kern-\p@\kern\p@}\par \endgroup \fi} % diff --git a/Master/texmf-dist/source/latex/base/cmextra.ins b/Master/texmf-dist/source/latex/base/cmextra.ins index a1c0973075b..292bcd46d61 100644 --- a/Master/texmf-dist/source/latex/base/cmextra.ins +++ b/Master/texmf-dist/source/latex/base/cmextra.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright 1993-2017 +%% Copyright 1993-2018 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -48,7 +48,7 @@ reports for it can be opened at https://latex-project.org/bugs.html (but please observe conditions on bug reports sent to that address!) -Copyright 1993-2017 +Copyright 1993-2018 The LaTeX3 Project and any individual authors listed elsewhere in this file. @@ -124,6 +124,13 @@ making successful document exchange impossible. ^^J* ^^J* You can easily redo this installation later in case you ^^J* change your mind. + ^^J* + ^^J* Normally it is better *not* to install these files, but use + ^^J* the support files provided in the cyrillic bundle instead!!! + ^^J* + ^^J* For that reason this installation file is no longer used + ^^J* when generating the run-time system. + ^^J* ^^J**************************************************************} {\ifx\answer\y diff --git a/Master/texmf-dist/source/latex/base/doc.dtx b/Master/texmf-dist/source/latex/base/doc.dtx index 5225a9af113..aad15515431 100644 --- a/Master/texmf-dist/source/latex/base/doc.dtx +++ b/Master/texmf-dist/source/latex/base/doc.dtx @@ -35,7 +35,7 @@ %<+package|shortvrb>\NeedsTeXFormat{LaTeX2e}[1994/12/01] %<+package> \ProvidesPackage{doc} %<+shortvrb>\ProvidesPackage{shortvrb} -%<+package|shortvrb> [2018/02/01 v2.1h +%<+package|shortvrb> [2018/09/25 v2.1i %<+package|shortvrb> Standard LaTeX documentation package (FMi)] %\catcode`\<=12 % @@ -139,7 +139,7 @@ % \changes{v1.9t}{1995/05/11}{Use \cs{GetFileInfo}} % \GetFileInfo{doc.sty} % -% \CheckSum{2202} ^^A % keep the checksum in this file +% \CheckSum{2206} ^^A % keep the checksum in this file % % \title{The \DOC{} and \texttt{shortvrb} Packages\thanks % {This file has version number \fileversion{} dated \filedate{}.}} @@ -3698,9 +3698,10 @@ % space before the referenced page numbers will be filled with % dots, with a little white space interpolated at each end of the % dots. If the line is broken the dots will show up on both lines. +% \changes{v2.1i}{2018/09/25}{Guard against following \cs{unskip} (git/23)} % \begin{macrocode} -\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus 1fill}% -\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil}% +\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus 1fill\kern\z@}% +\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil\kern\z@}% \def\pfill{\unskip~\dotfill\penalty500\strut\nobreak \dotfil~\ignorespaces}% % diff --git a/Master/texmf-dist/source/latex/base/exscale.dtx b/Master/texmf-dist/source/latex/base/exscale.dtx index 983ac95d1cf..49e53ca5f87 100644 --- a/Master/texmf-dist/source/latex/base/exscale.dtx +++ b/Master/texmf-dist/source/latex/base/exscale.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2016 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -33,7 +33,7 @@ %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{exscale} %\ProvidesFile{OMXcmex.fd} -% [2014/09/29 v2.1h +% [2018/09/24 v2.1i % Standard LaTeX package exscale] % exscale package font definitions] %<*driver> @@ -173,13 +173,27 @@ % \end{macrocode} % Now we can define the macros. Note: |\n@space| sets the internal % variables |\nulldelimiterspace| and |\mathsurround| to zero length. +% +% Older kernels (e.g in roll back didn't have LR-mode with the +% these commands) so we test for the support comment. This only works +% if the rollback request is before loading this package but that is +% where it should be. +% \changes{v2.1i}{2018/09/24}{Start LR-mode if necessary (git/49)} % \begin{macrocode} +\ifx\leavevmode@ifvmode\@undefined \def\bBigg@#1#2{% {\hbox{$\left#2\vcenter to#1\big@size{}\right.\n@space$}}} +\else +\def\bBigg@#1#2{\leavevmode@ifvmode + {\hbox{$\left#2\vcenter to#1\big@size{}\right.\n@space$}}} +\fi \def\big{\bBigg@\@ne} \def\Big{\bBigg@{1.5}} \def\bigg{\bBigg@\tw@} \def\Bigg{\bBigg@{2.5}} +% \end{macrocode} +% +% \begin{macrocode} % % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/base/fontdef.dtx b/Master/texmf-dist/source/latex/base/fontdef.dtx index 3231fac583e..36a31ef19bf 100644 --- a/Master/texmf-dist/source/latex/base/fontdef.dtx +++ b/Master/texmf-dist/source/latex/base/fontdef.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2016 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -39,7 +39,7 @@ %\ProvidesFile{fontdef.drv} % \fi % \ProvidesFile{fontdef.dtx} - [2016/12/03 v3.0a LaTeX Kernel +%<-latexrelease> [2018/09/24 v3.0b LaTeX Kernel % \iftrue (\else %(Text %(Math @@ -47,7 +47,7 @@ %<+cfgmath>(Uncustomised math %<+cfgprel>(Uncustomised preload % \fi - font setup)] +%<-latexrelease> font setup)] % % %\iffalse This is a META comment @@ -391,8 +391,6 @@ % The following three definitions set up the meaning for % |\rmfamily|, |\sffamily|, and |\ttfamily|. % \begin{macrocode} -% -%<*text|latexrelease> \ifx\Umathchar\@undefined \newcommand\encodingdefault{OT1} \newcommand\rmdefault{cmr} @@ -400,31 +398,40 @@ \newcommand\ttdefault{cmtt} \else \newcommand\encodingdefault{TU} -\newcommand\rmdefault{lmr}\fontfamily{\rmdefault} +\newcommand\rmdefault{lmr} +\fontfamily{\rmdefault} \newcommand\sfdefault{lmss} \newcommand\ttdefault{lmtt} \fi +% %\IncludeInRelease{2017/01/01}% % {\encodingdefault}{TU encoding default}% %\ifx\Umathchar\@undefined %\renewcommand\encodingdefault{OT1} +%\fontencoding{\encodingdefault} %\renewcommand\rmdefault{cmr} +%\fontfamily{\rmdefault} %\renewcommand\sfdefault{cmss} %\renewcommand\ttdefault{cmtt} %\else %\renewcommand\encodingdefault{TU} +%%done in everyjob\fontencoding{\encodingdefault} %\renewcommand\rmdefault{lmr} +%\fontfamily{\rmdefault} %\renewcommand\sfdefault{lmss} %\renewcommand\ttdefault{lmtt} %\fi %\EndIncludeInRelease %\IncludeInRelease{0000/00/00}% % {\encodingdefault}{TU encoding default}% +%\fontencoding{OT1} %\renewcommand\encodingdefault{OT1} +%\fontencoding{\encodingdefault} %\renewcommand\rmdefault{cmr} +%\fontfamily{\rmdefault} %\renewcommand\sfdefault{cmss} %\renewcommand\ttdefault{cmtt} -% +%\EndIncludeInRelease %<*text> % \end{macrocode} % \end{macro} @@ -1308,11 +1315,33 @@ % % \subsubsection{Biggggg} % +% \changes{v3.0b}{2018/09/24}{Start LR-mode if necessary (git/49)} +% \begin{macrocode} +% +%<*math|latexrelease> +%\IncludeInRelease{2018/12/01}% +% {\Big}{Start LR-mode}% +\def\big#1{\leavevmode@ifvmode + {\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} +\def\Big#1{\leavevmode@ifvmode + {\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} +\def\bigg#1{\leavevmode@ifvmode + {\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} +\def\Bigg#1{\leavevmode@ifvmode + {\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000/00/00}% +% {\Big}{Start LR-mode}% +%\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} +%\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} +%\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} +%\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} +%\EndIncludeInRelease +%<*math> +% \end{macrocode} +% % \begin{macrocode} -\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} -\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} -\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} -\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} \def\n@space{\nulldelimiterspace\z@ \m@th} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/base/inputenc.dtx b/Master/texmf-dist/source/latex/base/inputenc.dtx index 32a20cc600b..93f64577e20 100644 --- a/Master/texmf-dist/source/latex/base/inputenc.dtx +++ b/Master/texmf-dist/source/latex/base/inputenc.dtx @@ -410,13 +410,12 @@ % \ProvidesFile{cp1252.def} % \ProvidesFile{cp1250.def} % \ProvidesFile{cp1257.def} - [2018/04/06 v1.3b Input encoding file] + [2018/08/11 v1.3c Input encoding file] %%% %%% If you need a Euro symbol, try cp858 instead. %%% % \end{macrocode} % -% % \section{The package} % % \changes{v0.99c}{2002/11/11}{Added cp858 (pr/3464)} @@ -792,6 +791,9 @@ % \changes{v0.995}{2000/05/22}{Added latin2 option for textdegree % (pr/3207) CAR} % +% \changes{v1.3c}{2018/08/11}{Use \cs{guillemetleft} and \cs{guillemetright} +% instead of old Adobe names in all encoding files} +% % The name |\textblacksquare| is derived from the AMS symbol name since % Adobe seem not to want this symbol. The default definition, as a % rule, makes no claim to being a good design. @@ -1323,8 +1325,8 @@ \DeclareInputMath{185}{\mathonesuperior} \DeclareInputText{170}{\textordfeminine} \DeclareInputText{186}{\textordmasculine} -\DeclareInputText{171}{\guillemotleft} -\DeclareInputText{187}{\guillemotright} +\DeclareInputText{171}{\guillemetleft} +\DeclareInputText{187}{\guillemetright} \DeclareInputMath{172}{\lnot} \DeclareInputText{188}{\textonequarter} \DeclareInputText{173}{\-} @@ -1436,8 +1438,8 @@ \DeclareInputMath{185}{\mathonesuperior} \DeclareInputText{170}{\textordfeminine} \DeclareInputText{186}{\textordmasculine} -\DeclareInputText{171}{\guillemotleft} -\DeclareInputText{187}{\guillemotright} +\DeclareInputText{171}{\guillemetleft} +\DeclareInputText{187}{\guillemetright} \DeclareInputText{188}{\textonequarter} \DeclareInputText{189}{\textonehalf} \DeclareInputText{191}{\textquestiondown} @@ -1583,9 +1585,9 @@ \DeclareInputText{172}{\textonequarter} %% "B9-"BC: DG \DeclareInputText{173}{\textexclamdown} \DeclareInputText{189}{\textcent} -\DeclareInputText{174}{\guillemotleft} +\DeclareInputText{174}{\guillemetleft} \DeclareInputText{190}{\textyen} -\DeclareInputText{175}{\guillemotright} +\DeclareInputText{175}{\guillemetright} % \end{macrocode} % % \begin{macrocode} @@ -1713,8 +1715,8 @@ \DeclareInputText{171}{\@tabacckludge'z} \DeclareInputText{172}{\v C} \DeclareInputText{173}{\c s} -\DeclareInputText{174}{\guillemotleft} -\DeclareInputText{175}{\guillemotright} +\DeclareInputText{174}{\guillemetleft} +\DeclareInputText{175}{\guillemetright} \DeclareInputText{181}{\@tabacckludge'A} \DeclareInputText{182}{\^A} \DeclareInputText{183}{\v E} @@ -1866,8 +1868,8 @@ \DeclareInputText{171}{\textonehalf} \DeclareInputText{172}{\textonequarter} \DeclareInputText{173}{\textexclamdown} -\DeclareInputText{174}{\guillemotleft} -%\DeclareInputText{175}{\guillemotright} +\DeclareInputText{174}{\guillemetleft} +%\DeclareInputText{175}{\guillemetright} %\DeclareInputText{175}{\textcurrency} %\DeclareInputText{176}{\textlightgraybox} %\DeclareInputText{177}{\textgraybox} @@ -2049,8 +2051,8 @@ \DeclareInputText{196}{\textflorin} \DeclareInputMath{197}{\approx} \DeclareInputMath{198}{\Delta} -\DeclareInputText{199}{\guillemotleft} -\DeclareInputText{200}{\guillemotright} +\DeclareInputText{199}{\guillemetleft} +\DeclareInputText{200}{\guillemetright} \DeclareInputText{201}{\dots} \DeclareInputText{202}{\nobreakspace} \DeclareInputText{203}{\@tabacckludge`A} @@ -2166,8 +2168,8 @@ \DeclareInputText{169}{\copyright} \DeclareInputText{184}{\l} \DeclareInputText{196}{\@tabacckludge'n} -\DeclareInputText{199}{\guillemotleft} -\DeclareInputText{200}{\guillemotright} +\DeclareInputText{199}{\guillemetleft} +\DeclareInputText{200}{\guillemetright} \DeclareInputText{201}{\dots} \DeclareInputText{202}{\nobreakspace} \DeclareInputText{208}{\textendash} @@ -2270,7 +2272,7 @@ \DeclareInputText{168}{\textcurrency} \DeclareInputText{169}{\textquoteright} \DeclareInputText{170}{\textquotedblleft} -\DeclareInputText{171}{\guillemotleft} +\DeclareInputText{171}{\guillemetleft} \DeclareInputText{172}{\guilsinglleft} \DeclareInputText{173}{\guilsinglright} \DeclareInputText{174}{fi} @@ -2286,7 +2288,7 @@ \DeclareInputText{184}{\quotesinglbase} \DeclareInputText{185}{\quotedblbase} \DeclareInputText{186}{\textquotedblright} -\DeclareInputText{187}{\guillemotright} +\DeclareInputText{187}{\guillemetright} \DeclareInputText{188}{\dots} \DeclareInputText{189}{\textperthousand} \DeclareInputMath{190}{\lnot} @@ -2512,8 +2514,8 @@ \DeclareInputMath{185}{\mathonesuperior} \DeclareInputText{170}{\textordfeminine} \DeclareInputText{186}{\textordmasculine} -\DeclareInputText{171}{\guillemotleft} -\DeclareInputText{187}{\guillemotright} +\DeclareInputText{171}{\guillemetleft} +\DeclareInputText{187}{\guillemetright} \DeclareInputMath{172}{\lnot} \DeclareInputText{173}{\-} \DeclareInputText{174}{\textregistered} @@ -2653,7 +2655,7 @@ \DeclareInputText{168}{\v s} \DeclareInputText{169}{\textcopyright} \DeclareInputText{170}{\textcommabelow S} -\DeclareInputText{171}{\guillemotleft} +\DeclareInputText{171}{\guillemetleft} \DeclareInputText{172}{\@tabacckludge'Z} \DeclareInputText{173}{\-} \DeclareInputText{174}{\@tabacckludge'z} @@ -2669,7 +2671,7 @@ \DeclareInputText{184}{\v z} \DeclareInputText{185}{\v c} \DeclareInputText{186}{\textcommabelow s} -\DeclareInputText{187}{\guillemotright} +\DeclareInputText{187}{\guillemetright} \DeclareInputText{188}{\OE} \DeclareInputText{189}{\oe} \DeclareInputText{190}{\"Y} @@ -2811,7 +2813,7 @@ \DeclareInputText{168}{\"{}} \DeclareInputText{169}{\copyright} \DeclareInputText{170}{\c S} -\DeclareInputText{171}{\guillemotleft} +\DeclareInputText{171}{\guillemetleft} \DeclareInputMath{172}{\lnot} \DeclareInputText{173}{\-}% soft hyphen \DeclareInputText{174}{\textregistered} @@ -2827,7 +2829,7 @@ \DeclareInputText{184}{\c\ } \DeclareInputText{185}{\k a} \DeclareInputText{186}{\c s} -\DeclareInputText{187}{\guillemotright} +\DeclareInputText{187}{\guillemetright} \DeclareInputText{188}{\v L}% L caron (L') ? \DeclareInputText{189}{\H{}} \DeclareInputText{190}{\v l}% l caron (l') ? @@ -2952,7 +2954,7 @@ \DeclareInputText{168}{\O} \DeclareInputText{169}{\copyright} \DeclareInputText{170}{\c R} -\DeclareInputText{171}{\guillemotleft} +\DeclareInputText{171}{\guillemetleft} \DeclareInputMath{172}{\lnot} \DeclareInputText{173}{\-} \DeclareInputText{174}{\textregistered} @@ -2968,7 +2970,7 @@ \DeclareInputText{184}{\o} \DeclareInputMath{185}{\mathonesuperior} \DeclareInputText{186}{\c r} -\DeclareInputText{187}{\guillemotright} +\DeclareInputText{187}{\guillemetright} \DeclareInputText{188}{\textonequarter} \DeclareInputText{189}{\textonehalf} \DeclareInputText{190}{\textthreequarters} diff --git a/Master/texmf-dist/source/latex/base/latex209.dtx b/Master/texmf-dist/source/latex/base/latex209.dtx index 4996e334c14..cc5563c632a 100644 --- a/Master/texmf-dist/source/latex/base/latex209.dtx +++ b/Master/texmf-dist/source/latex/base/latex209.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2016 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -200,7 +200,7 @@ % \end{macrocode} % Describe the file. % \begin{macrocode} -\ProvidesFile{latex209.def}[2015/02/22 v0.53 Standard LaTeX file] +\ProvidesFile{latex209.def}[2018/08/11 v0.54 Standard LaTeX file] % \end{macrocode} % \changes{v0.24}{1994/05/14}{Removed date.} % \changes{v0.40}{1995/03/21} @@ -254,7 +254,7 @@ % % \subsection{Removing features} % -% \changes{v0.22}{1994/05/02}{Added \cs{latex@e@command}.} +% \changes{v0.22}{1994/05/02}{Added \cs{@latex@e@command}.} % \changes{v0.36}{1994/10/17}{Redid switching off commands.} % \changes{v0.38}{1994/11/16}{Removed \cs{LaTeXe} from this list} % @@ -350,6 +350,7 @@ \def\@latex@e@commands{% \usepackage\listfiles\ensuremath\LaTeXe\lrbox \th\dh\ng\dj\TH\DH\NG\DJ\k\r\SS + \guillemetleft\guillemetright \guillemotleft\guillemotright\guilsinglleft \guilsinglright\quotedblbase\quotesinglbase } diff --git a/Master/texmf-dist/source/latex/base/latexrelease.ins b/Master/texmf-dist/source/latex/base/latexrelease.ins index 429308198ad..1ddcfc4c290 100644 --- a/Master/texmf-dist/source/latex/base/latexrelease.ins +++ b/Master/texmf-dist/source/latex/base/latexrelease.ins @@ -113,6 +113,7 @@ extension .ins) which are part of the distribution. \from{ltplain.dtx} {latexrelease}% \from{ltfssdcl.dtx} {latexrelease}% \from{ltfssini.dtx} {latexrelease}% + \from{fontdef.dtx} {latexrelease}% (covering fontmath and fonttext) \from{ltfntcmd.dtx} {latexrelease}% empty \from{ltfssbas.dtx} {latexrelease}% \from{ltfsstrc.dtx} {latexrelease}% empty diff --git a/Master/texmf-dist/source/latex/base/ltalloc.dtx b/Master/texmf-dist/source/latex/base/ltalloc.dtx index 4be345c3544..5da3582e556 100644 --- a/Master/texmf-dist/source/latex/base/ltalloc.dtx +++ b/Master/texmf-dist/source/latex/base/ltalloc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2016 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltalloc.dtx} - [1996/07/26 v1.1c LaTeX Kernel (allocation)] + [2018/08/05 v1.1c LaTeX Kernel (allocation)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltalloc.dtx} @@ -90,8 +90,8 @@ % \begin{macro}{\@Mi} % \begin{macro}{\@Mii} % \begin{macro}{\@Miii} -% \begin{macro}{\@miv} -% Constants $1001$--$1004$. +% \begin{macro}{\@Miv} +% Constants $10001$--$10004$. % \begin{macrocode} \mathchardef\@Mi=10001 \mathchardef\@Mii=10002 diff --git a/Master/texmf-dist/source/latex/base/ltbibl.dtx b/Master/texmf-dist/source/latex/base/ltbibl.dtx index 198897d13d9..79505680c43 100644 --- a/Master/texmf-dist/source/latex/base/ltbibl.dtx +++ b/Master/texmf-dist/source/latex/base/ltbibl.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2016 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltbibl.dtx} - [2004/02/15 v1.1q LaTeX Kernel (Bibliography)] + [2018/11/09 v1.1r LaTeX Kernel (Bibliography)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltbibl.dtx} @@ -284,10 +284,12 @@ % \begin{macro}{\bibliography} % \changes{LaTeX2e}{1994/01/18} % {Use \cs{@input@} so include files are listed.} +% \changes{LaTeX2e}{2018/11/09} +% {Zap spaces in the argument as BibTeX doesn't support them (github/88)} % \begin{macrocode} \def\bibliography#1{% \if@filesw - \immediate\write\@auxout{\string\bibdata{#1}}% + \immediate\write\@auxout{\string\bibdata{\zap@space#1 \@empty}}% \fi \@input@{\jobname.bbl}} % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/base/ltclass.dtx b/Master/texmf-dist/source/latex/base/ltclass.dtx index 199d839ed47..2f19c74352d 100644 --- a/Master/texmf-dist/source/latex/base/ltclass.dtx +++ b/Master/texmf-dist/source/latex/base/ltclass.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltclass.dtx} - [2018/05/08 v1.2i LaTeX Kernel (Class & Package Interface)] + [2018/05/29 v1.2j LaTeX Kernel (Class & Package Interface)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltclass.dtx} @@ -1050,7 +1050,7 @@ % \begin{macrocode} % %\IncludeInRelease{2017/01/01}% -% {\@if@pti@ns}{Spaces in \ExecuteOptions}% +% {\ExecuteOptions}{Spaces in \ExecuteOptions}% %<*2ekernel|latexrelease> \def\ExecuteOptions#1{% % \end{macrocode} @@ -1068,7 +1068,7 @@ % %\EndIncludeInRelease %\IncludeInRelease{0000/00/00}% -% {\@if@pti@ns}{Spaces in \ExecuteOptions}% +% {\ExecuteOptions}{Spaces in \ExecuteOptions}% %\def\ExecuteOptions#1{% % \def\reserved@a##1\@nil{% % \@for\CurrentOption:=#1\do @@ -1820,13 +1820,14 @@ ^^M}% % \end{macrocode} % +% \changes{v1.2j}{2018/05/29}{use \cs{csname} not \cs{@undefined}} % \begin{macrocode} \catcode`\^^L\active% \let\L\@undefined% - \def^^L{\@ifundefined L^^J^^J^^J}% + \def^^L{\expandafter\ifx\csname L\endcsname\relax\fi ^^J^^J}% \catcode`\^^I\active% \let\I\@undefined% - \def^^I{\@ifundefined I\space\space}% + \def^^I{\expandafter\ifx\csname I\endcsname\relax\fi\space}% \catcode`\^^M\active% \edef^^M##1^^M{% \noexpand\reserved@b##1\E\E\relax}}% diff --git a/Master/texmf-dist/source/latex/base/ltdefns.dtx b/Master/texmf-dist/source/latex/base/ltdefns.dtx index 6c6e691efc0..3a7d6f06ea6 100644 --- a/Master/texmf-dist/source/latex/base/ltdefns.dtx +++ b/Master/texmf-dist/source/latex/base/ltdefns.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltdefns.dtx} - [2018/01/08 v1.5d LaTeX Kernel (definition commands)] + [2018/09/26 v1.5e LaTeX Kernel (definition commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltdefns.dtx} @@ -527,7 +527,7 @@ % two csnames per command, the price is the extra expansion time % for the |\ifx| test. % \begin{macrocode} -\def\@protected@testopt#1{%% +\def\@protected@testopt#1{% \ifx\protect\@typeset@protect \expandafter\@testopt \else @@ -624,11 +624,13 @@ % \changes{v1.2y}{1996/07/26}{use \cs{noexpand} instead of \cs{string}} % \changes{v1.2z1}{1997/10/21}{Use \cs{begingroup}/\cs{endgroup} rather % than braces for grouping, to avoid generating empty math atom.} +% \changes{v1.5e}{2018/09/26}{Always explicitly generate a space after the csname and +% not rely on \cs{noexpand} to save tokens (git/41)} % \begin{macrocode} \def\renew@command#1{% \begingroup \escapechar\m@ne\xdef\@gtempa{{\string#1}}\endgroup \expandafter\@ifundefined\@gtempa - {\@latex@error{\noexpand#1undefined}\@ehc}% + {\@latex@error{Command \string#1 undefined}\@ehc}% \relax \let\@ifdefinable\@rc@ifdefinable \new@command#1} diff --git a/Master/texmf-dist/source/latex/base/lterror.dtx b/Master/texmf-dist/source/latex/base/lterror.dtx index 8a590d9944b..daf645b8b8c 100644 --- a/Master/texmf-dist/source/latex/base/lterror.dtx +++ b/Master/texmf-dist/source/latex/base/lterror.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2016 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{lterror.dtx} - [2016/10/15 v1.2p LaTeX Kernel (errors)] + [2018/08/05 v1.2p LaTeX Kernel (errors)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{lterror.dtx} @@ -743,14 +743,14 @@ Type H for immediate help.}% % \end{macro} % % As well as the above error commands some error messages are directly -% coded to save space. The Messages already present in \LaTeX2.09 -% inlcuded: +% coded to save space. The messages already present in \LaTeX2.09 +% include: % % |Environment --- undefined|\\ % Issued by |\begin| for undefined environment. % -% |tab overflow|\\ -% Occurs in |\= when| maximum number of tabs exceeded. +% |Tab overflow|\\ +% Occurs in |\=| when maximum number of tabs exceeded. % % |\< in mid line|\\ % Occurs in |\<| when it appears in middle of line. diff --git a/Master/texmf-dist/source/latex/base/ltfinal.dtx b/Master/texmf-dist/source/latex/base/ltfinal.dtx index 0cc4e69bfd4..998710371ac 100644 --- a/Master/texmf-dist/source/latex/base/ltfinal.dtx +++ b/Master/texmf-dist/source/latex/base/ltfinal.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltfinal.dtx} - [2018/05/11 v2.1e LaTeX Kernel (Final Settings)] + [2018/08/24 v2.1f LaTeX Kernel (Final Settings)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltfinal.dtx} @@ -503,11 +503,25 @@ \fi % \end{macrocode} % \end{macro} +% +% % \begin{macro}{\document@default@language} % Default document language. -1 acts as language 0, but used as a flag in |\document| % to see if it has been set in the preamble. +% \changes{v2.1f}{2018/08/24}{Add to latexrelease (github/68)} % \begin{macrocode} +% +%<*2ekernel|latexrelease> +%\IncludeInRelease{2017/04/15}% +% {\document@default@language}{Save language for hyphenation}% \let\document@default@language\m@ne +% +%\EndIncludeInRelease +%\IncludeInRelease{0000/00/00}% +% {\document@default@language}{Save language for hyphenation}% +%\let\document@default@language\@undefined +%\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -548,7 +562,7 @@ % This is done in a way largely compatible with older releases: |utf8.def| is input just as if\\ % |\usepackage[utf8]{inputenc}|\\ % had been used, however rather than input the whole package a minimal core part just enough to support -% loading the UTF-8 encoding iles is defined here. +% loading the UTF-8 encoding files is defined here. % % If a document re-specifies UTF-8 this is silently ignored. % diff --git a/Master/texmf-dist/source/latex/base/ltfloat.dtx b/Master/texmf-dist/source/latex/base/ltfloat.dtx index 8214f9ed96b..ac1e37688ee 100644 --- a/Master/texmf-dist/source/latex/base/ltfloat.dtx +++ b/Master/texmf-dist/source/latex/base/ltfloat.dtx @@ -799,7 +799,7 @@ %\newcount\c@totalnumber % \end{macrocode} % -% \begin{macro}{\@dblfloatplacement} +% \begin{macro}{\@floatplacement} % An analysis of |\@floatplacement|: % % This should be called whenever |\@colht| has been set. diff --git a/Master/texmf-dist/source/latex/base/ltluatex.dtx b/Master/texmf-dist/source/latex/base/ltluatex.dtx index 4686785cf57..5645d3a85fe 100644 --- a/Master/texmf-dist/source/latex/base/ltluatex.dtx +++ b/Master/texmf-dist/source/latex/base/ltluatex.dtx @@ -24,7 +24,7 @@ \ProvidesFile{ltluatex.dtx} % %<*tex> -[2018/05/02 v1.1g +[2018/10/21 v1.1i % % LuaTeX support for plain TeX (core) %<*tex> @@ -200,6 +200,14 @@ % The number is returned and also \meta{name} argument is added to the % |lua.name| array at that index. % +% \noindent +% \DescribeMacro{new_luafunction} +% |luatexbase.new_luafunction(|\meta{functionname}|)|\\ +% Returns an allocation number for a lua function for use +% with |\luafunction|, |\lateluafunction|, and |\luadef|, +% indexed from~$1$. The optional \meta{functionname} argument +% is just used for logging. +% % These functions all require access to a named \TeX{} count register % to manage their allocations. The standard names are those defined % above for access from \TeX{}, \emph{e.g.}~\string\e@alloc@attribute@count, @@ -1184,6 +1192,29 @@ luatexbase.new_chunkname = new_chunkname % \end{macrocode} % \end{macro} % +% \subsection{Lua function allocation} +% +% \begin{macro}{new_luafunction} +% \changes{v1.1i}{2018/10/21}{Function added} +% Much the same as for attribute allocation in Lua. +% The optional \meta{name} argument is used in the log if given. +% \begin{macrocode} +local luafunction_count_name = + luafunction_count_name or "e@alloc@luafunction@count" +local function new_luafunction(name) + tex_setcount("global", luafunction_count_name, + tex_count[luafunction_count_name] + 1) + if tex_count[luafunction_count_name] > 65534 then + luatexbase_error("No room for a new luafunction register") + end + luatexbase_log("Lua function " .. (name or "") .. " = " .. + tex_count[luafunction_count_name]) + return tex_count[luafunction_count_name] +end +luatexbase.new_luafunction = new_luafunction +% \end{macrocode} +% \end{macro} +% % \subsection{Lua callback management} % % The native mechanism for callbacks in Lua\TeX\ allows only one per function. @@ -1279,13 +1310,14 @@ local callbacktypes = callbacktypes or { % {process\_rule, [hv]pack\_quality append\_to\_vlist\_filter added} % \changes{v1.0n}{2016/03/13}{insert\_local\_par added} % \changes{v1.0n}{2016/03/13}{contribute\_filter added} +% \changes{v1.1h}{2018/08/18}{append\_to\_vlist\_filter is \texttt{exclusive}} % \begin{macrocode} contribute_filter = simple, buildpage_filter = simple, build_page_insert = exclusive, pre_linebreak_filter = list, linebreak_filter = list, - append_to_vlist_filter = list, + append_to_vlist_filter = exclusive, post_linebreak_filter = list, hpack_filter = list, vpack_filter = list, diff --git a/Master/texmf-dist/source/latex/base/ltmath.dtx b/Master/texmf-dist/source/latex/base/ltmath.dtx index c2eae28919e..d7c283f9ef8 100644 --- a/Master/texmf-dist/source/latex/base/ltmath.dtx +++ b/Master/texmf-dist/source/latex/base/ltmath.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2016 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -31,14 +31,14 @@ % %\ProvidesFile{leqno.clo} %\ProvidesFile{fleqn.clo} -% [2016/12/29 v1.2a Standard LaTeX option +% [2016/12/29 v1.2b Standard LaTeX option % (left equation numbers)] % (flush left equations)] % %<*driver> % \fi \ProvidesFile{ltmath.dtx} - [2016/12/29 v1.2a LaTeX Kernel (Math Setup)] + [2018/09/24 v1.2b LaTeX Kernel (Math Setup)] % \iffalse % % @@ -291,10 +291,28 @@ % \end{macrocode} % % \begin{macrocode} +% +%<*2ekernel|latexrelease> +%\IncludeInRelease{2018/12/01}% +% {\finph@nt}{Start LR-mode}% \def\finph@nt{% \setbox\tw@\null \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi - \ifh@ \wd\tw@\wd\z@\fi \box\tw@} + \ifh@ \wd\tw@\wd\z@\fi +% \end{macrocode} +% \changes{v1.2b}{2018/09/24}{Start LR-mode if necessary (git/49)} +% \begin{macrocode} + \leavevmode@ifvmode\box\tw@} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000/00/00}% +% {\finph@nt}{Start LR-mode}% +%\def\finph@nt{% +% \setbox\tw@\null +% \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi +% \ifh@ \wd\tw@\wd\z@\fi \box\tw@} +%\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % \end{macro} @@ -326,7 +344,21 @@ \setbox\z@\hbox{\color@begingroup#1\color@endgroup}\finsm@sh} \def\mathsm@sh#1#2{% \setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh} -\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@} +% \end{macrocode} +% \changes{v1.2b}{2018/09/24}{Start LR-mode if necessary (git/49)} +% \begin{macrocode} +% +%<*2ekernel|latexrelease> +%\IncludeInRelease{2018/12/01}% +% {\finsm@sh}{Start LR-mode}% +\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \leavevmode@ifvmode\box\z@} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000/00/00}% +% {\finsm@sh}{Start LR-mode}% +%\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@} +%\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % diff --git a/Master/texmf-dist/source/latex/base/ltmiscen.dtx b/Master/texmf-dist/source/latex/base/ltmiscen.dtx index 081ae04317b..122ef3b39bf 100644 --- a/Master/texmf-dist/source/latex/base/ltmiscen.dtx +++ b/Master/texmf-dist/source/latex/base/ltmiscen.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2017 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltmiscen.dtx} - [2017/09/13 v1.1m LaTeX Kernel (Misc. Environments)] + [2018/10/11 v1.1o LaTeX Kernel (Misc. Environments)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltmiscen.dtx} @@ -303,19 +303,143 @@ % \end{macro} % % +% Reading data from auxiliary files (like \texttt{.toc} normally +% happens in vertical mode and it therefore doesn't matter if line +% endings are converted to spaces by \TeX{} during that process. +% +% However, especially the \texttt{.toc} file might be read in L-R mode +% (in cases the \cs{tableofcontents} attempts to put, say a list of +% sub-sections as a paragraph. In that case the newlines after a line +% like +% \begin{verbatim} +% \contentsline {subsubsection}{\numberline {1.1.1}A C-head}{2} +% \end{verbatim} +% might result in spurious spaces (e.g., when that level is not +% included). +% +% That could be fixed by reading in the file using +% \cs{endlinechar}\texttt{=-1} but that has the danger that it drops +% some valid endlines that should be converted to spaces (for example +% when the user edited the TOC and then used \cs{nofiles} to preserve +% it. +% +% So the approach taken instead is this: +% \begin{itemize} +% \item \cs{addcontentsline} adds the command +% \cs{protected@file@percent} to the end of the second argument of +% \cs{@writefile} that is written to the \texttt{.aux}. As the name +% indicates this is a protected macro so it doesn't change if it is +% written out. +% +% \item When the \texttt{.aux} is read back in at the end of the run, +% \cs{@writefile} is executed and writes its second argument +% unmodified to the file with the extension given by its first +% argument. Or rather that was how it was in the past. +% +% \item Instead we change \cs{@writefile} slightly: basically it looks +% at the second argument and if the last token in there is +% \cs{protected@file@percent} then it is replaced by a percent +% character and that is then written out. If not (for example, if +% the data came from a user issued \cs{addtocontents}, or from some +% package that uses \cs{@writefile} for writing its own files) then +% the command behaves exactly as before. +% \end{itemize} +% +% +% \begin{macro}{\protected@file@percent} +% Dummy cs to be replaced by a percent sign inside +% \cs{@writefile}. If it survives (when used incorrectly) it will +% expand to nothing in a typsetting context. +% \changes{v1.1n}{2018/09/26}{Sometimes mask the endline char when +% writing to files (github/73)} +% \begin{macrocode} +% +%<*2ekernel|latexrelease> +%\IncludeInRelease{2018/12/01}% +% {\protected@file@percent}{Mask line endings}% +\protected\def\protected@file@percent{} +% \end{macrocode} +% \end{macro} + + +% \begin{macro}{\add@percent@to@temptokena} +% Helper function which is used to inspect a sequence of tokens +% (the second argument of \cs{@writefile} and it the last token is +% \cs{protected@file@percent} it will replace it by a harmless +% percent. The result is saved in \cs{@temptokena} for later use. +% \changes{v1.1n}{2018/09/26}{Sometimes mask the endline char when +% writing to files (github/73)} +% \begin{macrocode} +\begingroup +\catcode`\%=12 +% \end{macrocode} +% \texttt{latexrelease} will read this code in high-speed +% mode in certain situations. During that it will only look for +% \cs{if} tests but not actually execute the \cs{catcode} change +% above. As a result it will drop anything after the |%| character +% in the definition. Therefore the |\fi| needs to be on the next +% line and we need locally another comment character to avoid +% getting spaces into the definition---a weird problem :-) +% \begin{macrocode} +\catcode`\^^A=9 +\long\gdef\add@percent@to@temptokena + #1\protected@file@percent#2\add@percent@to@temptokena +% \end{macrocode} +% When we call this macro in |\@writefile| we stick in |\@empty| at +% the beginning, so that in case the tokenlist consists of a single brace +% group the braces aren't stripped. The |\expandafter| then expands +% this extra token away again. +% \begin{macrocode} + {\ifx!#2!\@temptokena\expandafter{#1}\else + \@temptokena\expandafter{#1%^^A +% \end{macrocode} +% Can't be on the same line as the |%| --- see above. +% \begin{macrocode} + }\fi} +\endgroup +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\@writefile} % \changes{v1.0l}{1994/05/20}{Added correct setting of \cs{protect}.} % \changes{v1.0t}{1994/11/04}{Removed setting of \cs{protect}. ASAJ.} % \changes{v1.0z}{1995/07/13}{Added missing percent and use \cs{relax} % in the THEN case} +% \changes{v1.1n}{2018/09/26}{Sometimes mask the endline char when +% writing to files (github/73)} % \begin{macrocode} \long\def\@writefile#1#2{% \@ifundefined{tf@#1}\relax - {\@temptokena{#2}% + {% +% \end{macrocode} +% If we write to the file we first prepare |#2| using +% \cs{add@percent@to@temptokena} and then write the token register +% out. +% \begin{macrocode} + \add@percent@to@temptokena + \@empty#2\protected@file@percent + \add@percent@to@temptokena \immediate\write\csname tf@#1\endcsname{\the\@temptokena}% }% } % \end{macrocode} +% +% \begin{macrocode} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000/00/00}% +% {\protected@file@percent}{Mask line endings}% +%\let\protected@file@percent\@undefined +%\let\add@percent@to@temptokena\@undefined +%\long\def\@writefile#1#2{% +% \@ifundefined{tf@#1}\relax +% {\@temptokena{#2}% +% \immediate\write\csname tf@#1\endcsname{\the\@temptokena}% +% }% +%} +%\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} % \end{macro} % % \begin{macro}{\stop} @@ -712,14 +836,169 @@ % \end{macrocode} % \end{macro} % +% +% \begin{macrocode} +% +%<*2ekernel|latexrelease> +%\IncludeInRelease{2018/12/01}% +% {\verbvisiblespace}{Setup visible space for verb}% +% \end{macrocode} +% +% +% \begin{macro}{\asciispace} +% The character in slot 32, in typewriter fonts (historically) a +% visible space but in other fonts a real space or something else +% \changes{v1.1o}{2018/10/11} +% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} +% \begin{macrocode} +\DeclareRobustCommand\asciispace{\char 32 } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\verbvisiblespace} +% This defines how to get a visible space in +% |\verb*| and friends. In classic \TeX{} this is just the +% slot 32, but in TU encoded fonts we switch fonts and take the +% character from cmtt. +% \changes{v1.1o}{2018/10/11} +% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} +% \changes{v1.1o}{2018/10/11} +% {Provide \cs{verbvisiblespace} such that it is usable in normal text (github/70)} +% \begin{macrocode} +\ifx\Umathcode\@undefined + \let\verbvisiblespace\asciispace % Pdftex version +\else + \DeclareRobustCommand\verbvisiblespace + {\leavevmode{\usefont{OT1}{cmtt}{m}{n}\asciispace}} % xetex/luatex version +\fi +% \end{macrocode} +% \end{macro} +% +% + +% \begin{macro}{\@setupverbvisiblespace} +% +% In pdf\TeX{} a catcode 12 space will produce the character in +% slot 32 which is assumed to be a visible space character (in a +% typewriter font in OT1 or T1 encoding). In Xe\TeX{} or Lua\TeX{} a +% font in TU encoding is normally used and that has a real space in +% this slot. So what we do in this case is this: we check the +% definition of +% |\verbvisiblespace| and if it is |\asciispace| we assume that the +% char32 can be used (e.g., in pdf\TeX{}). We then redefine +% |\@xobeysp| so that after running |\@vobeyspaces| we get +% characters from slot 32 for each active space. +% +% \changes{v1.1o}{2018/10/11} +% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} +% \begin{macrocode} +\def\@setupverbvisiblespace{% + \ifx\verbvisiblespace\asciispace + \let\@xobeysp\asciispace + \else +% \end{macrocode} Otherwise we measure the width of a character in +% the mon-spaced current font and place a +% |\verbvisiblespace| into a box of the right width which we are then +% using as the character for a space. By default this will be the space +% character from OT1 cmtt but by changing +% |\verbvisiblespace| one could use, for example, the |\textvisiblespace| +% of the current typewriter font. +% \begin{macrocode} + \setbox\z@\hbox{x}% + \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}% + \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}% + \fi +} +% \end{macrocode} +% \end{macro} +% + +% \begin{macro}{\@verbvisiblespacebox} +% The box to hold the visible space character if it isn't in slot +% 32 in the current typewriter font. +% \changes{v1.1o}{2018/10/11} +% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} +% \begin{macrocode} +\newbox\@verbvisiblespacebox +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@sverb} +% \changes{v1.0j}{1994/05/10}{Slight change in error message text.} +% Definitions of |\@sverb| and |\@verb| changed so |\verb+ foo+| +% does not lose leading blanks when it comes at the beginning of a line. +% Change made 24 May 89. Suggested by Frank Mittelbach and Rainer +% Sch\"opf. +% \begin{macrocode} +\def\@sverb#1{% + \catcode`#1\active + \lccode`\~`#1% + \gdef\verb@balance@group{\verb@egroup + \@latex@error{\noexpand\verb illegal in command argument}\@ehc}% + \aftergroup\verb@balance@group + \lowercase{\let~\verb@egroup}% +% \end{macrocode} +% If |\@sverb| is called from |\@verb| then space is already active +% and supposed to produce a real space. In this case we do +% nothing. Otherwise we run |\@setupverbvisiblespace| to setup the +% right visible space char and afterwards |\@vobeyspaces| to make +% it the definition for the active space character. +% \changes{v1.1o}{2018/10/11} +% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} +% \begin{macrocode} + \ifnum\catcode`\ =\active + \else \@setupverbvisiblespace \@vobeyspaces \fi +} +% \end{macrocode} +% \end{macro} % % \begin{environment}{verbatim*} +% For \texttt{verbatim*} we also set up the correct visible space +% character definition and then run |\@vobeyspaces|. As this code +% is not called as part of the normal verbatim environment (the +% method is done the other way around this time) we don't have to +% check if space is already active---it shouldn't be. +% \changes{v1.1o}{2018/10/11} +% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} % \begin{macrocode} -\@namedef{verbatim*}{\@verbatim\@sxverbatim} +\@namedef{verbatim*}{\@verbatim + \@setupverbvisiblespace + \frenchspacing\@vobeyspaces\@sxverbatim} \expandafter\let\csname endverbatim*\endcsname =\endverbatim % \end{macrocode} % \end{environment} % +% +% +% \begin{macrocode} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000/00/00}% +% {\verbvisiblespace}{Setup visible space for verb}% +% +%\@namedef{verbatim*}{\@verbatim\@sxverbatim} +% +%\let\asciispace \@undefined +%\let\verbvisiblespace \@undefined +%\let\@setupverbvisiblespace\@undefined +%\let\@verbvisiblespacebox \@undefined +% +%\def\@sverb#1{% +% \catcode`#1\active +% \lccode`\~`#1% +% \gdef\verb@balance@group{\verb@egroup +% \@latex@error{\noexpand\verb illegal in command argument}\@ehc}% +% \aftergroup\verb@balance@group +% \lowercase{\let~\verb@egroup}}% +% +%\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% +% +% +% % \begin{macro}{\@makeother} % \begin{macrocode} \def\@makeother#1{\catcode`#112\relax} @@ -797,23 +1076,6 @@ % \end{macro} % % -% \begin{macro}{\@sverb} -% \changes{v1.0j}{1994/05/10}{Slight change in error message text.} -% Definitions of |\@sverb| and |\@verb| changed so |\verb+ foo+| -% does not lose leading blanks when it comes at the beginning of a line. -% Change made 24 May 89. Suggested by Frank Mittelbach and Rainer -% Sch\"opf. -% -% \begin{macrocode} -\def\@sverb#1{% - \catcode`#1\active - \lccode`\~`#1% - \gdef\verb@balance@group{\verb@egroup - \@latex@error{\noexpand\verb illegal in command argument}\@ehc}% - \aftergroup\verb@balance@group - \lowercase{\let~\verb@egroup}}% -% \end{macrocode} -% \end{macro} % % \begin{macro}{\@verb} % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex/base/ltnews29.tex b/Master/texmf-dist/source/latex/base/ltnews29.tex new file mode 100644 index 00000000000..bd74b31bf96 --- /dev/null +++ b/Master/texmf-dist/source/latex/base/ltnews29.tex @@ -0,0 +1,479 @@ +% \iffalse meta-comment +% +% Copyright 2018 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: ltnews29.tex +% +% This is issue 29 of LaTeX News. + +\documentclass{ltnews} +\usepackage[T1]{fontenc} + +\usepackage{lmodern,url,hologo} + +\usepackage{csquotes} + +\providecommand\acro[1]{\textsc{#1}} +\providecommand\meta[1]{$\langle$\textit{#1}$\rangle$} + + +\providecommand\XeTeX{\hologo{XeTeX}} +\providecommand\LuaTeX{\hologo{LuaTeX}} +\providecommand\pdfTeX{\hologo{pdfTeX}} + +\newcommand\githubissue[2][]{\ifhmode\unskip\fi + \quad\penalty500\strut\nobreak\hfill + \mbox{\small\itshape(github issue#1 #2)}\par} + +\newcommand\sxissue[1]{\ifhmode\unskip\fi + \quad\penalty500\strut\nobreak\hfill + \mbox{\small\itshape\url(#1)}\par} + +\let\cls\pkg +\newcommand\env[1]{\texttt{#1}} + + +\publicationmonth{December} +\publicationyear{2018} + +\publicationissue{29} + +\begin{document} + +\maketitle +\tableofcontents + +\setlength\rightskip{0pt plus 3em} + +\bigskip + +\section{Introduction} + +The December 2018 release of \LaTeX{} is a maintenance release in +which we have fixed a few bugs in the software: some are old, some +newer, and they are mostly rather obscure. + +\section[Bug reports for core \LaTeXe{} and packages] + {Bug reports for core \LaTeXe{} and packages maintained by the Project Team} + +In Spring 2018 we established a new issue tracking system (GitHub +issues) for both the \LaTeX{} core and the packages maintained by the +\LaTeX{} Project team, with an updated procedure for how to report a +bug or problem. + +Initial experience with this system is good, with people who report +problems following the guidelines and including helpful working +examples to show the problem---thanks for doing this. + +The detailed requirements and the workflow for reporting a bug in the +core \LaTeX{} software is documented at +\begin{quote} +\url{https://www.latex-project.org/bugs/} +\end{quote} +with further details and discussion in~\cite{Mittelbach:TB39-1}. + + +\section{Changes to the \LaTeX{} kernel} + +\subsection{UTF-8:\ updates to the default input encoding} + +In the April 2018 release of \LaTeX{} we changed the default encoding +from 7-bit \acro{ascii} to UTF-8 when using classic \TeX\ or +\hologo{pdfTeX}, see \textit{\LaTeX{} News~28}~\cite{ltnews28} for +details. + +Now, after half a year of experience with +this new default, +we have +made a small number of adjustments to further improve the user experience. +These include: +\begin{itemize} +\item + Some improvements when displaying error messages about UTF-8 + characters that have not been set up for use with \LaTeX{}, + or are invalid for some other reason; +% +\githubissue[s]{60, 62 and 63} +% +\item + The addition of a number of previously missing declarations for + characters that are in fact available with the default fonts, e.g., + \cs{j} \enquote{\j} (0237), \cs{SS} \enquote{\SS} (1E9E), + \verb=\k{}= \enquote{\k{ }} (02DB) and \verb=\.{}= \enquote{\.{ }} + (02D9); +\item + Correcting the names for \cs{guillemetleft} + \enquote{\guillemotleft} and \cs{guillemetright} + \enquote{\guillemotright} in all encoding files. These correct + names are in addition to the old (but wrong) Adobe names: Adobe + mistakenly called them Guillemot, which is a sea bird. +% + \githubissue{65} +% +\item + Added \cs{Hwithstroke} and \cs{hwithstroke} necessary for + typesetting Maltese. +% + \sxissue{https://tex.stackexchange.com/q/460110} +\end{itemize} + + + +\subsection{Fixed \cs{verb*} and friends in \XeTeX{} and \LuaTeX{}} + + +The original \cs{verb*} and \texttt{verbatim*} in \LaTeX{} were coded +under the assumption that the position of the space character (i.e., +ASCII 32) in a Typewriter Font contains a visible space glyph +``\verb*= =''. This is correct for \pdfTeX{} with the most used font +encodings \texttt{OT1} and \texttt{T1}. However, this unfortunately +does not work for Unicode engines using the \texttt{TU} encoding since +the space character slot (ASCII 32) then usually contains a real +(normal) space, which has the effect that \cs{verb*} produces the same +results as \cs{verb}. + +The \cs{verb*} code now always uses the newly introduced command +\cs{verbvisiblespace} to produce the visible space character and this +command will get appropriate definitions for use with the different +engines. With \pdfTeX{} it will simply use \cs{asciispace}, which is +a posh name for ``select character 32 in the current font'', but with +Unicode engines the default definition is +\begin{verbatim} + \DeclareRobustCommand\verbvisiblespace + {\leavevmode + {\usefont{OT1}{cmtt}{m}{n}\asciispace}} +\end{verbatim} +which uses the visible space from the font Computer Modern Typewriter, +regardless of the currently chosen typewriter font. Internally the +code ensures that the character used has exactly the same width as the +other characters in the current (monospaced) font; thus, for example, +code displays line up properly. + +It is possible to redefine this command to select your own character, +for example +\begin{verbatim} + \DeclareRobustCommand\verbvisiblespace + {\textvisiblespace} +\end{verbatim} +will select the the ``official'' visible space character of the +current font. This may look like the natural default, but it wasn't +chosen as our default because many fonts just don't have that unicode +character, or they have one with a strange shape. +% +\githubissue[s]{69 and 70} + + +\subsection{Error message corrected} +Trying to redefine an undefined command could in a few cases generate +an error message with a missing space, e.g., +\verb=\renewcommand\1{...}= gave +\begin{verbatim} + LaTeX Error: \1undefined. +\end{verbatim} +This is now fixed. +% +\githubissue{41} + + +\subsection{Fixed fatal link error with \pkg{hyperref}} + +If a \cs{href} link text gets broken across pages \pdfTeX{} and +\LuaTeX{} will generate a fatal error unless both parts of the link +are internally at the same boxing level. In two-column mode that was +not the case if one of the pages had spanning top floats. This has now +been changed so that the error is avoided. +% +\githubissue{94} + + +\subsection{Avoid page breaks caused by invisible commands} + +Commands like \cs{label} or \cs{index} could generate a potential page +break in places where a page break was otherwise prohibited, e.g., +when used between two consecutive headings. This has now been +corrected. If for some reason you really want a break and you relied +on this faulty behavior, you can always add one using \cs{pagebreak}, +with or without an optional argument. +% +\githubissue{81} + + + +\subsection{Prevent spurious spaces when reading table of contents data} + +When table of contents data is read in from a \texttt{.toc} file, the +new-line character at the end of each line is converted by \TeX{} to a +space. In normal processing this is harmless (as \TeX{} is doing this +input reading whilst in vertical mode and each line in the file +represents a single line (paragraph) in the table of contents. If, +however, this is done in horizontal mode, which is sometimes the case, +then these spaces will appear in the output. If you then omit some of +the input lines (e.g., because you do not display TOC data below a +certain level), then these spaces accumulate in the typeset output and +you get surprising, and unwanted, gaps inside the text. + +The new code now adds a \texttt{\%} sign at the end of problematic +lines in the \texttt{.toc} file so that \TeX{} will not generate such +spaces that may survive to spoil the printed result. As some third +party packages have augmented or changed the core \LaTeX{} +functionality in that area (for example, by adding additional +arguments to the commands in TOC files) the code uses a conservative +approach and the \texttt{\%} signs are added only when certain +conditions are met. Therefore some packages might require updates if +they want to benefit from this correction, especially if they +unconditionally overwrite \LaTeX{}'s \cs{addcontentsline} definition. +% +\githubissue{73} + + +\subsection{Prevent protrusion in table of contents lines} + +In \TeX{}'s internal processing model, +paragraph data is one of the +major data structures. As a result, +many things are internally modeled +as paragraphs even if they are not conceptually +``text paragraphs'' in +the traditional sense. +In a few cases this has some surprising effects +that are not always +for the better. One example is +standard TOC entries, +where you have +heading data followed by some dot leaders and a page +number at the right, produced, for example, from this: +\begin{quote} + \contentsline {subsection}{Error message corrected}{2}{section*.7} +\end{quote} +The space reserved for the page number is of a fixed width, so that +the dots always end in the same place. Well, they did end in the same +place until the event of protrusion support in the \TeX{} engines. +Now, with the \pkg{microtype} package loaded, it is possible that the +page number will protrude slightly into the margin (even though it’s +typeset inside a box) and as a result this page number box gets +shifted. With enough bad luck this can get you another dot in the +line, sticking out like the proverbial sore thumb, as exhibited in the +question on StackExchange that triggered the correction. + +\LaTeX{} now takes care that there will be no protrusion happening on +such lines, even if it is generally enabled for the whole document. +% +\sxissue{https://tex.stackexchange.com/q/172785} + + + +\subsection{Start L-R mode for \cs{thinspace} and friends} + +In \LaTeX{}, commands that are intended only for paragraph (L-R) mode +are generally careful to start paragraph mode if necessary; thus they +can be used at the start of a paragraph without surprising and +unwanted consequences. This important requirement had been overlooked +for a few horizontal spacing commands, such as \cs{thinspace} +(a.k.a.\ ``\cs{,}''), and for some other support commands such as +\cs{smash} or \cs{phantom}. Thus they ended up adding vertical space +when used at the beginning of a paragraph or, in the case of +\cs{smash}, creating a paragraph of their own. This has now been +corrected, and a corresponding update has been made to the +\pkg{amsmath} package, in which these commands are also defined. +% +\githubissue[s]{49 and 50} + + + +\subsection{Guarding \cs{pfill} in \pkg{doc}} + +For presenting index entries pointing to +code fragments and the like, +the \pkg{doc} package has a \cs{pfill} command that +generates within the index a line of dots leading from +the command name to the page or code line numbers. +If necessary it would automatically split the entry +over two lines. That worked well enough for a quarter century, but we +discovered recently that it is broken inside +the \cls{ltugboat} class, +where it sometimes produces +bad spacing within continuation lines. + +The reason turned out to be a redefinition of the \LaTeX{} command +\cs{nobreakspace} (\verb=~=) inside the class \cls{ltugboat}, which +removed any preceding space (and thus unfortunately also removed the +dots on the continuation line). While one can argue that this is a +questionable redefinition, it has been in the class so long that +changing it would certainly break older documents. So instead we now +guard against that removal of space. +% +\githubissue[s]{25 and 75} + + + + + +\section{Changes to packages in the \pkg{tools} category} + +\subsection{Sometimes the \pkg{trace} package turned off too much} + +The \pkg{trace} package is a useful little tool for tracing macro +execution: it hides certain lengthy and typically uninteresting +expansions resulting from font changes and similar activities. +However, it had the problem that it also reset other tracing settings +such as \cs{showoutput} in such situations, so that you couldn't use +\cs{showoutput} in the preamble to get symbolic output of all the +pages in the document. This has now been corrected. + + + + +\subsection{Update to \pkg{xr}} + +The \pkg{xr} package has been updated so that the code that reads the +\texttt{.aux} file has been made more robust. It now correctly +ignores conditionals (added by \pkg{hyperref} and other packages) +rather than generating low level parsing errors. +\sxissue{https://tex.stackexchange.com/a/452321} + + +\subsection{Column data for \env{multicols*} sometimes vanished} + +In certain situations involving \env{multicols*}, when there are more +explicit \cs{columnbreak} requests than there are columns on the +current page, data could vanish due to the removal of an internal +penalty marking the end of the environment. This has been corrected by +explicitly reinserting that penalty if necessary. +% +\githubissue{53} + +\subsection{Extension to \cs{docolaction} in \pkg{multicol}} + +The \cs{docolaction} command can be used used to carry out actions +depending on the column you are currently in, i.e., first, any inner +one (if more than two) or last. However, if the action generates text +then there is the question: is this text part of the current column or +the one after? That is, on the next run, do we test before or after it, +to determine in which column we are? + +This is now resolved as follows: if you use \cs{docolaction*} any +generated text by the chosen action is considered to be after the test +point. But if you use the command without the star then all the material +it generates will be placed before the test point to determine the +current column, i.e., the text will become part of the current column +and may affect the test result on the next run. + + + +\subsection{Prevent color leak in \pkg{array}} + +In some cases the color used inside a \env{tabular} cell could ``leak +out'' into the surrounding text. This has been corrected. +% +\githubissue{72} + +\subsection{Support fragile commands in \texttt{array} or \texttt{tabular} column templates} + +The preamble specifiers \texttt{p}, \texttt{m} and \texttt{b} each receives +a user supplied argument: the width of the paragraph column. Normally +that is something harmless, like a length or a simple length +expression. But in more complicated settings involving the \pkg{calc} +package it could break with a low-level error message. This has now +been corrected. +% +\sxissue{https://tex.stackexchange.com/q/459285} + + + +\section{Changes to packages in the amsmath category} + +The changes in the kernel made for \cs{thinspace}, \cs{smash}, +etc.\ (see above) have been reflected in the \pkg{amsmath} package +code, so that loading this package doesn't revert them. +% +\githubissue[s]{49 and 50} + + + + + +\section{Website updates} + +\subsection{Publications area reorganized and extended} + +To help readers to find relevant information in more convenient and +easy ways, the area of the website covering publications by the +\LaTeX{} Project Team was reorganized and extended (many more +abstracts added). We now provide the articles, talks and supplementary +data structured both by year and also by major +topics~\cite{site-pub}. Feel free to take a look. + +\subsection{Japanese translations of the user's guide} + +Yukitoshi Fujimura has kindly translated +into Japanese two documents that are +distributed with standard \LaTeX{}. +These are: +\begin{itemize} +\item + \LaTeXe{} for authors; +\item + User's Guide for the \pkg{amsmath}~\cite{amsldoc}. +\end{itemize} +They can be found on the website documentation page~\cite{site-doc}. +You will now also find there a typeset version of the full \LaTeXe{} +source code (with index etc.\@) and a number of other goodies. + + + + +\begin{thebibliography}{9} + +\bibitem{Mittelbach:TB39-1} Frank Mittelbach: + \emph{New rules for reporting bugs in the \LaTeX{} core software}. + In: TUGboat, 39\#1, 2018. + \url{https://latex-project.org/publications/} + +\bibitem{ltnews28} + \emph{\LaTeX{} News, Issue 28}. + In: TUGboat, 39\#1, 2018.\\ + \rlap{\url{https://latex-project.org/news/latex2e-news/}} + +\bibitem{site-doc} + \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\ + \url{https://latex-project.org/documentation/} + +\bibitem{site-pub} + \emph{\LaTeX{} Project publications on the \LaTeX{} Project Website}.\\ + \url{https://latex-project.org/publications/} + +\bibitem{amsldoc} American Mathematical Society and The \LaTeX3 Project: + \emph{User's Guide for the \texttt{amsmath} package} (Version 2.1). + April 2018. + Available from + \url{https://www.ctan.org} + and distributed as part of every \LaTeX{} distribution. + +\end{thebibliography} + +\end{document} + diff --git a/Master/texmf-dist/source/latex/base/ltoutenc.dtx b/Master/texmf-dist/source/latex/base/ltoutenc.dtx index 259c7920db2..86135e96c84 100644 --- a/Master/texmf-dist/source/latex/base/ltoutenc.dtx +++ b/Master/texmf-dist/source/latex/base/ltoutenc.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2017 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -38,14 +38,14 @@ %\ProvidesFile{tuenc.def} %\ProvidesPackage{fontenc} %\ProvidesPackage{textcomp} -% [2017/04/05 v2.0i +% [2018/08/11 v2.0j % Standard LaTeX file] % Standard LaTeX package] % %<*driver> % \fi \ProvidesFile{ltoutenc.dtx} - [2017/04/05 v2.0i LaTeX Kernel (font encodings)] + [2018/11/18 v2.0k LaTeX Kernel (font encodings)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltoutenc.dtx} @@ -1886,6 +1886,46 @@ {\%\char 24\char 24 } % space or `relax as delimiter? % \end{macrocode} % +% For Maltese, \cs{Hwithstroke} and \cs{hwithstroke} are needed. +% +% \changes{v2.0k}{2018/11/19} +% {Added \cs{Hwithstroke} and \cs{hwithstroke}} +% +% \begin{macrocode} +\DeclareTextCommand{\Hwithstroke}{T1} + {% + \hmode@bgroup + \vphantom{H}% + \sbox\z@{H}% + \ooalign{% + H\cr + \hidewidth + \vrule + height \dimexpr 0.7\ht\z@+0.1ex\relax + depth -0.7\ht\z@ + width 0.8\wd\z@ + \hidewidth\cr + }% + \egroup + } +\DeclareTextCommand{\hwithstroke}{T1} + {% + \hmode@bgroup + \vphantom{h}% + \sbox\z@{h}% + \ooalign{% + h\cr + \kern0.075\wd\z@ + \vrule + height \dimexpr 0.7\ht\z@+0.1ex\relax + depth -0.7\ht\z@ + width 0.4\wd\z@ + \hidewidth\cr + }% + \egroup + } +% \end{macrocode} +% % Declare the text symbols. % \changes{v1.7t}{1995/11/29}{Added \cs{textasciicircum}, % \cs{textasciitilde}, \cs{textbackslash}, \cs{textbar}, @@ -1910,8 +1950,17 @@ \DeclareTextSymbol{\ae}{T1}{230} \DeclareTextSymbol{\dh}{T1}{240} \DeclareTextSymbol{\dj}{T1}{158} +% \end{macrocode} +% \changes{v2.0j}{2018/08/11}{Provide \cs{guillemetleft} and \cs{guillemetright}} +% \begin{macrocode} +\DeclareTextSymbol{\guillemetleft}{T1}{19} +\DeclareTextSymbol{\guillemetright}{T1}{20} +% old Adobe names \DeclareTextSymbol{\guillemotleft}{T1}{19} \DeclareTextSymbol{\guillemotright}{T1}{20} +% \end{macrocode} +% +% \begin{macrocode} \DeclareTextSymbol{\guilsinglleft}{T1}{14} \DeclareTextSymbol{\guilsinglright}{T1}{15} \DeclareTextSymbol{\i}{T1}{25} @@ -2290,8 +2339,17 @@ \DeclareTextSymbol{\O}{OT4}{31} \DeclareTextSymbol{\L}{OT4}{138} \DeclareTextSymbol{\ae}{OT4}{26} +% \end{macrocode} +% \changes{v2.0j}{2018/08/11}{Provide \cs{guillemetleft} and \cs{guillemetright}} +% \begin{macrocode} +\DeclareTextSymbol{\guillemetleft}{OT4}{174} +\DeclareTextSymbol{\guillemetright}{OT4}{175} +% old Adobe names \DeclareTextSymbol{\guillemotleft}{OT4}{174} \DeclareTextSymbol{\guillemotright}{OT4}{175} +% \end{macrocode} +% +% \begin{macrocode} \DeclareTextSymbol{\i}{OT4}{16} \DeclareTextSymbol{\j}{OT4}{17} \DeclareTextSymbol{\l}{OT4}{170} @@ -2884,7 +2942,15 @@ \DeclareTextSymbol{\textasciidieresis} \UnicodeEncodingName{"00A8} \DeclareTextSymbol{\textcopyright} \UnicodeEncodingName{"00A9} \DeclareTextSymbol{\textordfeminine} \UnicodeEncodingName{"00AA} +% \end{macrocode} +% \changes{v2.0j}{2018/08/11}{Provide \cs{guillemetleft} and \cs{guillemetright}} +% \begin{macrocode} +\DeclareTextSymbol{\guillemetleft} \UnicodeEncodingName{"00AB} +% old Adobe name \DeclareTextSymbol{\guillemotleft} \UnicodeEncodingName{"00AB} +% \end{macrocode} +% +% \begin{macrocode} \DeclareTextSymbol{\textlnot} \UnicodeEncodingName{"00AC} \DeclareTextSymbol{\textregistered} \UnicodeEncodingName{"00AE} \DeclareTextSymbol{\textasciimacron} \UnicodeEncodingName{"00AF} @@ -2898,7 +2964,15 @@ \DeclareTextSymbol{\textperiodcentered} \UnicodeEncodingName{"00B7} \DeclareTextSymbol{\textonesuperior} \UnicodeEncodingName{"00B9} \DeclareTextSymbol{\textordmasculine} \UnicodeEncodingName{"00BA} +% \end{macrocode} +% \changes{v2.0j}{2018/08/11}{Provide \cs{guillemetleft} and \cs{guillemetright}} +% \begin{macrocode} +\DeclareTextSymbol{\guillemetright} \UnicodeEncodingName{"00BB} +% old Adobe name \DeclareTextSymbol{\guillemotright} \UnicodeEncodingName{"00BB} +% \end{macrocode} +% +% \begin{macrocode} \DeclareTextSymbol{\textonequarter} \UnicodeEncodingName{"00BC} \DeclareTextSymbol{\textonehalf} \UnicodeEncodingName{"00BD} \DeclareTextSymbol{\textthreequarters} \UnicodeEncodingName{"00BE} @@ -2979,7 +3053,14 @@ \DeclareTextSymbol{\textrightarrow} \UnicodeEncodingName{"2192} \DeclareTextSymbol{\textdownarrow} \UnicodeEncodingName{"2193} \DeclareTextSymbol{\textminus} \UnicodeEncodingName{"2212} + +% \end{macrocode} +% \changes{v2.0k}{2018/11/18}{Provide \cs{Hwithstroke} and \cs{hwithstroke}} +% \begin{macrocode} +\DeclareTextSymbol{\Hwithstroke} \UnicodeEncodingName{"0126} +\DeclareTextSymbol{\hwithstroke} \UnicodeEncodingName{"0127} % \end{macrocode} +% % Not all fonts have U+2217 but using U+002A requires some adjustment. % \begin{macrocode} \DeclareTextCommand{\textasteriskcentered}\UnicodeEncodingName{% @@ -3648,7 +3729,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{tc@subst} +% \begin{macro}{\tc@subst} % \begin{macrocode} \def\tc@subst#1{% \tc@errorwarn{textcomp}% % should be latex error if general diff --git a/Master/texmf-dist/source/latex/base/ltoutput.dtx b/Master/texmf-dist/source/latex/base/ltoutput.dtx index 8cfeb3fc7f7..d1fe26b90a0 100644 --- a/Master/texmf-dist/source/latex/base/ltoutput.dtx +++ b/Master/texmf-dist/source/latex/base/ltoutput.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2017 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -30,14 +30,14 @@ %%% From File: ltoutput.dtx %\ProvidesPackage{flafter} %\ProvidesPackage{fltrace} -% [2018/01/08 v1.4c +% [2018/11/28 v1.4d % Standard LaTeX floats after reference (FMi)] % Tracing LaTeX floats algorithm (FMi)] % %<*driver> % \fi \ProvidesFile{ltoutput.dtx} - [2018/01/08 v1.4c LaTeX Kernel (Output Routine)] + [2018/11/28 v1.4d LaTeX Kernel (Output Routine)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltoutput.dtx} @@ -2413,7 +2413,18 @@ \dblfigrule \fi \vskip \dbltextfloatsep - \box\@outputbox +% \end{macrocode} +% If pdf links are present in the galley and those links get broken +% across pages they have to end up being on the same level of boxing +% (even if not actually in the same structure) due to some engine +% restrictions in pdf\TeX\ and Lua\TeX. We therefore unbox +% |\@outputbox| here (which only contains a single |\hbox|) so that +% this case has the same boxing level as a normal twocolumn page +% without top floats. +% \changes{v1.4d}{2018/11/28}{Unbox \cs{@outputbox} to preserve boxing +% level (github/94)} +% \begin{macrocode} + \unvbox\@outputbox }% \fi } @@ -4679,7 +4690,7 @@ % In case of |\enlargethispage| we will have infinite negative glue % at the bottom of the page (coming from |\vss|) and that will earn % us an error message if we |\vsplit| to get at the marks. So we -% need to remove thek last glue (if any) at the end of |\@outputbox| +% need to remove the last glue (if any) at the end of |\@outputbox| % as we are only interested in marks that change doesn't matter. % \changes{v1.1o}{2014/04/18}{Handle infinite glue from % \cs{enlargethispage} (pr/4023)} diff --git a/Master/texmf-dist/source/latex/base/ltpictur.dtx b/Master/texmf-dist/source/latex/base/ltpictur.dtx index d15814acbab..6b84231ab5b 100644 --- a/Master/texmf-dist/source/latex/base/ltpictur.dtx +++ b/Master/texmf-dist/source/latex/base/ltpictur.dtx @@ -586,7 +586,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\getlinechar} +% \begin{macro}{\@getlinechar} % \begin{macrocode} \gdef\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8% \advance\@tempcnta -9\ifnum #2>\z@ \advance\@tempcnta #2\relax\else @@ -1133,9 +1133,9 @@ % \end{macrocode} % % \begin{macro}{\if@ovvline} -% \changes{v.1l}{2016/03/29}{macro added (latex/4452)} +% \changes{v1.1l}{2016/03/29}{macro added (latex/4452)} % \begin{macro}{\if@ovhline} -% \changes{v.1l}{2016/03/29}{macro added (latex/4452)} +% \changes{v1.1l}{2016/03/29}{macro added (latex/4452)} % Tests whether horizontal or vertical lines are needed. % \begin{macrocode} \newif\if@ovvline \@ovvlinetrue @@ -1149,7 +1149,7 @@ \gdef\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue % \end{macrocode} -% \changes{v.1l}{2016/03/29}{initialise tests} +% \changes{v1.1l}{2016/03/29}{initialise tests} % \begin{macrocode} \@ovvlinefalse \@ovhlinefalse % \end{macrocode} @@ -1158,7 +1158,7 @@ \@ovxx #1\unitlength \@ovyy #2\unitlength % \end{macrocode} -% \changes{v.1l}{2016/03/29}{add setting of line tests} +% \changes{v1.1l}{2016/03/29}{add setting of line tests} % \begin{macrocode} \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx \@ovvlinetrue \else \@ovyy \ifdim \@ovyy =\@ovxx \else \@ovhlinetrue \fi\fi @@ -1170,7 +1170,7 @@ \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@ % \end{macrocode} -% \changes{v.1l}{2016/03/29}{add setting of line tests} +% \changes{v1.1l}{2016/03/29}{add setting of line tests} % \begin{macrocode} \ifdim \@ovdx >\z@ \@ovhlinetrue \fi \ifdim \@ovdy >\z@ \@ovvlinetrue \fi @@ -1194,7 +1194,7 @@ \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip \else \kern \@ovri \kern \@ovdy \fi % \end{macrocode} -% \changes{v.1l}{2016/03/29} +% \changes{v1.1l}{2016/03/29} % {use glue not leaders if vertical line not required} % \begin{macrocode} \if@ovvline \leaders\vrule \@width \@wholewidth \fi @@ -1212,7 +1212,7 @@ \gdef\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro \if@ovr \else \kern \@ovdx \fi % \end{macrocode} -% \changes{v.1l}{2016/03/29} +% \changes{v1.1l}{2016/03/29} % {use glue not leaders if horizontal line not required} % \begin{macrocode} \if@ovhline \leaders \hrule \@height \@wholewidth \fi diff --git a/Master/texmf-dist/source/latex/base/ltsect.dtx b/Master/texmf-dist/source/latex/base/ltsect.dtx index a77070229a5..cb1c6d2c304 100644 --- a/Master/texmf-dist/source/latex/base/ltsect.dtx +++ b/Master/texmf-dist/source/latex/base/ltsect.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2017 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -31,7 +31,7 @@ %%% From File: ltsect.dtx %<*driver> % \fi -\ProvidesFile{ltsect.dtx}[2017/03/17 v1.1a LaTeX Kernel (Sectioning)] +\ProvidesFile{ltsect.dtx}[2018/09/26 v1.1c LaTeX Kernel (Sectioning)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltsect.dtx} @@ -734,9 +734,29 @@ % \changes{v1.0j}{1995/04/23}{Use \cs{contentsline} internally.} % \changes{v1.0h}{1994/11/04}{Added \cs{protected@write} to % \cs{addcontentsline}. ASAJ.} +% \changes{v1.1c}{2018/09/26}{Sometimes mask the endline char when +% writing to files (github/73)} % \begin{macrocode} +% +%<*2ekernel|latexrelease> +%\IncludeInRelease{2018/12/01}% +% {\addcontentsline}{Mask line endings}% \def\addcontentsline#1#2#3{% - \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}} + \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}% +% \end{macrocode} +% We add \cs{protected@file@percent} at the end which is turned om +% \cs{@writefile} into a percent character to mask the newline after +% the closing argument brace. +% \begin{macrocode} + \protected@file@percent}} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000/00/00}% +% {\addcontentsline}{Mask line endings}% +%\def\addcontentsline#1#2#3{% +% \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}} +%\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -813,6 +833,10 @@ % \changes{v1.0g}{1994/10/18}{Added \cs{normalcolor} for page number} % \changes{v1.0z}{1996/12/20}{Added \cs{nobreak} for latex/2343} % \begin{macrocode} +% +%<*2ekernel|latexrelease> +%\IncludeInRelease{2018/12/01}% +% {\@dottedtocline}{Prevent protrusion}% \def\@dottedtocline#1#2#3#4#5{% \ifnum #1>\c@tocdepth \else \vskip \z@ \@plus.2\p@ @@ -840,12 +864,67 @@ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill \nobreak - \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5% +% \end{macrocode} +% We finish off by preventing +% any protrusion if that is enabled. If protrusion happens the +% number may shift to the right and as a result you may end up with +% an additional dot in the toc line in some situations. +% \changes{v1.1b}{2018/09/02}{Prevent protrusion +% (\url{https://tex.stackexchange.com/q/172785/10109})} +% \begin{macrocode} + \kern-\p@\kern\p@}% \par}% \fi} % \end{macrocode} % \end{macro} % +% + +% \begin{macro}{\noprotrusion} +% This command, if placed directly to the right (or left) of a +% word, will prevent prevent protrusion of that word into the +% margin. It is used in the toc entry lines as they shouldn't +% protrude. It is implemented as to kerns that cancel each other +% but being there hide the word so that protrusion is not +% added. Note that a zero kern or an empty box would not work as +% the protrusion mechanism will skip over those. +% \begin{macrocode} +\DeclareRobustCommand\noprotrusion{\leavevmode\kern-\p@\kern\p@} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macrocode} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000/00/00}% +% {\@dottedtocline}{Prevent protrusion}% +%\def\@dottedtocline#1#2#3#4#5{% +% \ifnum #1>\c@tocdepth \else +% \vskip \z@ \@plus.2\p@ +% {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip +% \parindent #2\relax\@afterindenttrue +% \interlinepenalty\@M +% \leavevmode +% \@tempdima #3\relax +% \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip +% {#4}\nobreak +% \leaders\hbox{$\m@th +% \mkern \@dotsep mu\hbox{.}\mkern \@dotsep +% mu$}\hfill +% \nobreak +% \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% +% \par}% +% \fi} +% +%\let\noprotrusion\@undefined +%\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% +% +% % \textbf{Note:} |\nobreak|'s added 7 Jan 86 to prevent bad line break % that left the page number dangling by itself at left edge of a new % line. diff --git a/Master/texmf-dist/source/latex/base/ltspace.dtx b/Master/texmf-dist/source/latex/base/ltspace.dtx index f74db0b929b..6f212bba159 100644 --- a/Master/texmf-dist/source/latex/base/ltspace.dtx +++ b/Master/texmf-dist/source/latex/base/ltspace.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2016 +% Copyright 1993-2018 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltspace.dtx} - [2016/07/04 v1.3g LaTeX Kernel (spacing)] + [2018/10/10 v1.3i LaTeX Kernel (spacing)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltspace.dtx} @@ -547,12 +547,20 @@ % \end{macro} % % \begin{macro}{\@esphack} -% Companion to |\@bsphack|. +% Companion to |\@bsphack|. If this command is not properly paired +% with |\@bsphack| one might end up with a low-level \TeX{} error: +% ``BAD spacefactor''. One possible cause is calling |\@bsphack| in +% vertical mode, then doing something that gets you (sometimes) into +% horizontal mode and finally calling |\@esphack|. Even if no error +% is generated that is wrong, because |\@esphack| will then use the +% saved values for |\@savsk| and |\@savsf| from some earlier +% invocation of |\@bsphack| which will have nothing to do with the +% current situation. % \changes{v1.3d}{2015/01/11}{Allow hyphenation (Donald Arseneau pr/3498) (latexrelease)} % \begin{macrocode} % -%\IncludeInRelease{2015/10/01}% -% {\@esphack}{hyphenation after space hack}% +%\IncludeInRelease{2018/10/10}% +% {\@esphack}{hyphenation and nobreak after space hack}% %<*2ekernel|latexrelease> \def\@esphack{% \relax @@ -568,11 +576,36 @@ \fi \ignorespaces \fi +% \end{macrocode} +% \changes{v1.3i}{2018/10/10} +% {Don't introduce breakpoints if @nobreak is true and after sections} +% \begin{macrocode} + \else + \ifvmode + \if@nobreak\nobreak\else\if@noskipsec\nobreak\fi\fi + \fi +% \end{macrocode} +% +% \begin{macrocode} \fi}% % %\EndIncludeInRelease +%\IncludeInRelease{2015/10/01}% +% {\@esphack}{hyphenation and nobreak after space hack}% +%\def\@esphack{% +% \relax +% \ifhmode +% \spacefactor\@savsf +% \ifdim\@savsk>\z@ +% \ifdim\lastskip=\z@ +% \nobreak \hskip\z@skip +% \fi +% \ignorespaces +% \fi +% \fi}% +%\EndIncludeInRelease %\IncludeInRelease{2015/01/01}% -% {\@esphack}{hyphenation after space hack}% +% {\@esphack}{hyphenation and nobreak after space hack}% %\def\@esphack{% % \relax % \ifhmode @@ -584,7 +617,7 @@ % \fi}% %\EndIncludeInRelease %\IncludeInRelease{0000/00/00}% -% {\@esphack}{hyphenation after space hack}% +% {\@esphack}{hyphenation and nobreak after space hack}% %\def\@esphack{% % \relax % \ifhmode @@ -1093,21 +1126,52 @@ % \end{macrocode} % \end{macro} % -% +% +% \begin{macrocode} +% +%<*2ekernel|latexrelease> +%\IncludeInRelease{2018/12/01}% +% {\thinspace}{Start LR-mode}% +% \end{macrocode} % % % \begin{macro}{\thinspace} % \begin{macro}{\negthinspace} % \begin{macro}{\enspace} +% \changes{v1.3h}{2018/09/24}{Start LR-mode if necessary (git/49)} % \begin{macrocode} -\def\thinspace{\kern .16667em } -\def\negthinspace{\kern-.16667em } -\def\enspace{\kern.5em } +\def\thinspace{\leavevmode@ifvmode\kern .16667em } +\def\negthinspace{\leavevmode@ifvmode\kern-.16667em } +\def\enspace{\leavevmode@ifvmode\kern.5em } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % +% \begin{macro}{\leavevmode@ifvmode} +% Leave vmode but only if we are really in vmode, otherwise the +% expansion is empty (which is not the case with the default definition). +% \changes{v1.3h}{2018/09/24}{Macro added (git/49)} +% \begin{macrocode} +\protected\def\leavevmode@ifvmode{\ifvmode\expandafter\indent\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +% +%\EndIncludeInRelease +%\IncludeInRelease{0000/00/00}% +% {\thinspace}{Start LR-mode}% +%\def\thinspace{\kern .16667em } +%\def\negthinspace{\kern-.16667em } +%\def\enspace{\kern.5em } +%\let\leavevmode@ifvmode\@undefined +%\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% +% +% % \begin{macro}{\enskip} % \begin{macro}{\quad} % \begin{macro}{\qquad} diff --git a/Master/texmf-dist/source/latex/base/ltvers.dtx b/Master/texmf-dist/source/latex/base/ltvers.dtx index cb207695efa..7a001bb2b19 100644 --- a/Master/texmf-dist/source/latex/base/ltvers.dtx +++ b/Master/texmf-dist/source/latex/base/ltvers.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltvers.dtx} - [2018/03/16 v1.1a LaTeX Kernel (Version Info)] + [2018/12/01 v1.1b LaTeX Kernel (Version Info)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltvers.dtx} @@ -112,10 +112,10 @@ % %\edef\latexreleaseversion %<*2ekernel|latexrelease> - {2018-04-01} + {2018-12-01} % %<*2ekernel> -\def\patch@level{5} +\def\patch@level{0} % \end{macrocode} % \end{macro} % \end{macro} diff --git a/Master/texmf-dist/source/latex/base/utf8ienc.dtx b/Master/texmf-dist/source/latex/base/utf8ienc.dtx index b67c9361eed..993f59c4818 100644 --- a/Master/texmf-dist/source/latex/base/utf8ienc.dtx +++ b/Master/texmf-dist/source/latex/base/utf8ienc.dtx @@ -217,7 +217,7 @@ %<+ts1> \ProvidesFile{ts1enc.dfu} %<+x2> \ProvidesFile{x2enc.dfu} %<+all> \ProvidesFile{utf8enc.dfu} - [2018/04/05 v1.2c UTF-8 support for inputenc] + [2018/10/05 v1.2f UTF-8 support for inputenc] % \end{macrocode} % % \begin{macrocode} @@ -323,9 +323,10 @@ % \begin{macro}{\UTFviii@invalid@err} % \begin{macro}{\UTFviii@invalid@help} % \changes{v1.2a}{2018/03/24}{Macro added}% +% \changes{v1.2f}{2018/10/05}{Show invalid byte in hex}% % \begin{macrocode} \def\UTFviii@invalid@err#1{% - \PackageError{inputenc}{Invalid UTF-8 byte \number`#1}% + \PackageError{inputenc}{Invalid UTF-8 byte "\UTFviii@hexnumber{`#1}}% \UTFviii@invalid@help} % \end{macrocode} % @@ -463,9 +464,10 @@ % \end{macrocode} % % Setting up 4-byte UTF-8: +% \changes{v1.2e}{2018/09/28}{Fix "F4 lead byte}% % \begin{macrocode} \count@"F0 - \@tempcnta"F4 + \@tempcnta"F5 \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@four@octets\string~}} \UTFviii@loop % \end{macrocode} @@ -473,7 +475,7 @@ % Bytes above F4 are not valid UTF-8 starting bytes as they would encode numbers beyond % the Unicode range % \begin{macrocode} - \count@"F4 + \count@"F5 \@tempcnta"100 \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@invalid@err\string~}} \UTFviii@loop @@ -620,7 +622,7 @@ % |\parse@XML@charref| work without arguments. % \changes{v1.1g}{2005/09/27}{Real spaces do not show up so use \cs{space}} % \changes{v1.2a}{2018/03/24}{Allow control characters if active} -% In the case single byte UTF-8 sequences, only allw definition if +% In the case single byte UTF-8 sequences, only allow definition if % the character os already active. The definition of |\UTFviii@tmp| % looks slightly strange but is designed for the sequence of |\expandafter| % in |\DeclareUnicodeCharacter|. @@ -650,6 +652,20 @@ \parse@UTFviii@a,% \parse@UTFviii@b E\UTFviii@three@octets.{,;}% \else +% \end{macrocode} +% +% Test added here for out of range values, the 4-octet definitions are still set up +% so that |\DeclareUnicodeCharacter| does something sensible if the user scrolls +% past this error. +% \begin{macrocode} + \ifnum\count@>"10FFFF\relax + \PackageError{inputenc}% + {\UTFviii@hexnumber\count@\space too large for Unicode}% + {Values between 0 and 10FFFF are permitted}% + \fi +% \end{macrocode} +% +% \begin{macrocode} \parse@UTFviii@a;% \parse@UTFviii@a,% \parse@UTFviii@a!% @@ -793,23 +809,28 @@ % % \begin{macro}{\UTFviii@splitcsname} % \changes{v1.1o}{2015/08/28}{Macro added} +% \begin{macro}{\UTFviii@hexcodepoint} +% \changes{v1.2e}{2018/09/28}{Macro added: Format codepoint properly} % Split a csname representing a unicode character and return -% the character and (if |\numexpr| is defined) the unicode number in hex. -% \begin{macrocode} -\ifx\numexpr\@undefined -\gdef\UTFviii@splitcsname#1:#2\relax{#2}} -\else +% the character and the unicode number in hex. +% \begin{macrocode} +\gdef\UTFviii@hexcodepoint#1{U+% + \ifnum#1<16 0\fi + \ifnum#1<256 0\fi + \ifnum#1<4096 0\fi + \UTFviii@hexnumber{#1}% +}% \gdef\UTFviii@splitcsname#1:#2\relax{% % \end{macrocode} % \changes{v1.2b}{2018/03/26}{add percent as \cs{endlinechar} not -1 in the format}% % Need to pre-expand the argument to ensure cleanup in case of mal-formed UTF-8. % \begin{macrocode} -#2 (U+\expandafter\UTFviii@hexnumber\expandafter{% +#2 (\expandafter\UTFviii@hexcodepoint\expandafter{% \the\numexpr\decode@UTFviii#2\relax})% } -\fi % \end{macrocode} % \end{macro} +% \end{macro} % % \begin{macrocode} \endgroup @@ -1232,10 +1253,13 @@ % \begin{macrocode} %\DeclareUnicodeCharacter{0232}{\@tabacckludge=Y} %\DeclareUnicodeCharacter{0233}{\@tabacckludge=y} +%\DeclareUnicodeCharacter{0237}{\j} %\DeclareUnicodeCharacter{02C6}{\textasciicircum} %\DeclareUnicodeCharacter{02C7}{\textasciicaron} %\DeclareUnicodeCharacter{02DC}{\textasciitilde} %\DeclareUnicodeCharacter{02D8}{\textasciibreve} +%\DeclareUnicodeCharacter{02D9}{\.{}} +%\DeclareUnicodeCharacter{02DB}{\k{}} %\DeclareUnicodeCharacter{02DD}{\textacutedbl} % \end{macrocode} % The Cyrillic code points have been recently checked (2007) and extended @@ -1530,6 +1554,7 @@ %\DeclareUnicodeCharacter{0E3F}{\textbaht} %\DeclareUnicodeCharacter{1E02}{\.B} %\DeclareUnicodeCharacter{1E03}{\.b} +%\DeclareUnicodeCharacter{1E9E}{\SS} %\DeclareUnicodeCharacter{200C}{\textcompwordmark} % \end{macrocode} % \changes{v1.1s}{2016/02/28}{Add more hyphens and dashes} -- cgit v1.2.3