summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/base
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-12-11 22:32:49 +0000
committerKarl Berry <karl@freefriends.org>2018-12-11 22:32:49 +0000
commitb8f67cb908880c8fdf6b03eb9c4d5219d7409171 (patch)
tree87574d214a3f39e7293bc54e2b40076ae052bed3 /Master/texmf-dist/source/latex/base
parent6ffd766f7627989e12bfb89d63f908de8c052c81 (diff)
latex(2e) (11dec18)
git-svn-id: svn://tug.org/texlive/trunk@49390 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/base')
-rw-r--r--Master/texmf-dist/source/latex/base/classes.dtx31
-rw-r--r--Master/texmf-dist/source/latex/base/cmextra.ins11
-rw-r--r--Master/texmf-dist/source/latex/base/doc.dtx9
-rw-r--r--Master/texmf-dist/source/latex/base/exscale.dtx18
-rw-r--r--Master/texmf-dist/source/latex/base/fontdef.dtx51
-rw-r--r--Master/texmf-dist/source/latex/base/inputenc.dtx54
-rw-r--r--Master/texmf-dist/source/latex/base/latex209.dtx7
-rw-r--r--Master/texmf-dist/source/latex/base/latexrelease.ins1
-rw-r--r--Master/texmf-dist/source/latex/base/ltalloc.dtx8
-rw-r--r--Master/texmf-dist/source/latex/base/ltbibl.dtx8
-rw-r--r--Master/texmf-dist/source/latex/base/ltclass.dtx11
-rw-r--r--Master/texmf-dist/source/latex/base/ltdefns.dtx8
-rw-r--r--Master/texmf-dist/source/latex/base/lterror.dtx12
-rw-r--r--Master/texmf-dist/source/latex/base/ltfinal.dtx18
-rw-r--r--Master/texmf-dist/source/latex/base/ltfloat.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltluatex.dtx36
-rw-r--r--Master/texmf-dist/source/latex/base/ltmath.dtx42
-rw-r--r--Master/texmf-dist/source/latex/base/ltmiscen.dtx304
-rw-r--r--Master/texmf-dist/source/latex/base/ltnews29.tex479
-rw-r--r--Master/texmf-dist/source/latex/base/ltoutenc.dtx89
-rw-r--r--Master/texmf-dist/source/latex/base/ltoutput.dtx21
-rw-r--r--Master/texmf-dist/source/latex/base/ltpictur.dtx16
-rw-r--r--Master/texmf-dist/source/latex/base/ltsect.dtx87
-rw-r--r--Master/texmf-dist/source/latex/base/ltspace.dtx86
-rw-r--r--Master/texmf-dist/source/latex/base/ltvers.dtx6
-rw-r--r--Master/texmf-dist/source/latex/base/utf8ienc.dtx49
26 files changed, 1312 insertions, 152 deletions
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}
%</driver>
- [2014/09/29 v1.4h
+ [2018/09/03 v1.4i
%<article|report|book> 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}
%</article>
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}%
%</package>
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 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{exscale}
%<fd, >\ProvidesFile{OMXcmex.fd}
-%<package,fd> [2014/09/29 v2.1h
+%<package,fd> [2018/09/24 v2.1i
%<package> Standard LaTeX package exscale]
%<fd, > 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}
%</package>
% \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 @@
%<driver, >\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, >(Text
%<math, >(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>
-%<*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
+%</text>
%<latexrelease>\IncludeInRelease{2017/01/01}%
%<latexrelease> {\encodingdefault}{TU encoding default}%
%<latexrelease>\ifx\Umathchar\@undefined
%<latexrelease>\renewcommand\encodingdefault{OT1}
+%<latexrelease>\fontencoding{\encodingdefault}
%<latexrelease>\renewcommand\rmdefault{cmr}
+%<latexrelease>\fontfamily{\rmdefault}
%<latexrelease>\renewcommand\sfdefault{cmss}
%<latexrelease>\renewcommand\ttdefault{cmtt}
%<latexrelease>\else
%<latexrelease>\renewcommand\encodingdefault{TU}
+%<latexrelease>%done in everyjob\fontencoding{\encodingdefault}
%<latexrelease>\renewcommand\rmdefault{lmr}
+%<latexrelease>\fontfamily{\rmdefault}
%<latexrelease>\renewcommand\sfdefault{lmss}
%<latexrelease>\renewcommand\ttdefault{lmtt}
%<latexrelease>\fi
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\encodingdefault}{TU encoding default}%
+%<latexrelease>\fontencoding{OT1}
%<latexrelease>\renewcommand\encodingdefault{OT1}
+%<latexrelease>\fontencoding{\encodingdefault}
%<latexrelease>\renewcommand\rmdefault{cmr}
+%<latexrelease>\fontfamily{\rmdefault}
%<latexrelease>\renewcommand\sfdefault{cmss}
%<latexrelease>\renewcommand\ttdefault{cmtt}
-%</text|latexrelease>
+%<latexrelease>\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>
+%<*math|latexrelease>
+%<latexrelease>\IncludeInRelease{2018/12/01}%
+%<latexrelease> {\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$}}}
+%</math|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\Big}{Start LR-mode}%
+%<latexrelease>\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
+%<latexrelease>\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}}
+%<latexrelease>\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}}
+%<latexrelease>\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}
+%<latexrelease>\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 @@
%<cp1252&!ansinew> \ProvidesFile{cp1252.def}
%<cp1250> \ProvidesFile{cp1250.def}
%<cp1257> \ProvidesFile{cp1257.def}
- [2018/04/06 v1.3b Input encoding file]
+ [2018/08/11 v1.3c Input encoding file]
%<cp850>%%
%<cp850>%% If you need a Euro symbol, try cp858 instead.
%<cp850>%%
% \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}
-%<cp437|cp437de>\DeclareInputText{175}{\guillemotright}
+\DeclareInputText{174}{\guillemetleft}
+%<cp437|cp437de>\DeclareInputText{175}{\guillemetright}
%<cp865>\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}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2017/01/01}%
-%<latexrelease> {\@if@pti@ns}{Spaces in \ExecuteOptions}%
+%<latexrelease> {\ExecuteOptions}{Spaces in \ExecuteOptions}%
%<*2ekernel|latexrelease>
\def\ExecuteOptions#1{%
% \end{macrocode}
@@ -1068,7 +1068,7 @@
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\@if@pti@ns}{Spaces in \ExecuteOptions}%
+%<latexrelease> {\ExecuteOptions}{Spaces in \ExecuteOptions}%
%<latexrelease>\def\ExecuteOptions#1{%
%<latexrelease> \def\reserved@a##1\@nil{%
%<latexrelease> \@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 <return> 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>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2017/04/15}%
+%<latexrelease> {\document@default@language}{Save language for hyphenation}%
\let\document@default@language\m@ne
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\document@default@language}{Save language for hyphenation}%
+%<latexrelease>\let\document@default@language\@undefined
+%<latexrelease>\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}
%</driver>
%<*tex>
-[2018/05/02 v1.1g
+[2018/10/21 v1.1i
%</tex>
%<plain> 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 @@
%
%<leqno>\ProvidesFile{leqno.clo}
%<fleqn>\ProvidesFile{fleqn.clo}
-%<leqno,fleqn> [2016/12/29 v1.2a Standard LaTeX option
+%<leqno,fleqn> [2016/12/29 v1.2b Standard LaTeX option
%<leqno> (left equation numbers)]
%<fleqn> (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
%</driver>
%
@@ -291,10 +291,28 @@
% \end{macrocode}
%
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2018/12/01}%
+%<latexrelease> {\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@}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\finph@nt}{Start LR-mode}%
+%<latexrelease>\def\finph@nt{%
+%<latexrelease> \setbox\tw@\null
+%<latexrelease> \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
+%<latexrelease> \ifh@ \wd\tw@\wd\z@\fi \box\tw@}
+%<latexrelease>\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>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2018/12/01}%
+%<latexrelease> {\finsm@sh}{Start LR-mode}%
+\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \leavevmode@ifvmode\box\z@}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\finsm@sh}{Start LR-mode}%
+%<latexrelease>\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@}
+%<latexrelease>\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>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2018/12/01}%
+%<latexrelease> {\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}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\protected@file@percent}{Mask line endings}%
+%<latexrelease>\let\protected@file@percent\@undefined
+%<latexrelease>\let\add@percent@to@temptokena\@undefined
+%<latexrelease>\long\def\@writefile#1#2{%
+%<latexrelease> \@ifundefined{tf@#1}\relax
+%<latexrelease> {\@temptokena{#2}%
+%<latexrelease> \immediate\write\csname tf@#1\endcsname{\the\@temptokena}%
+%<latexrelease> }%
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\stop}
@@ -712,14 +836,169 @@
% \end{macrocode}
% \end{macro}
%
+%
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2018/12/01}%
+%<latexrelease> {\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}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\verbvisiblespace}{Setup visible space for verb}%
+%<latexrelease>
+%<latexrelease>\@namedef{verbatim*}{\@verbatim\@sxverbatim}
+%<latexrelease>
+%<latexrelease>\let\asciispace \@undefined
+%<latexrelease>\let\verbvisiblespace \@undefined
+%<latexrelease>\let\@setupverbvisiblespace\@undefined
+%<latexrelease>\let\@verbvisiblespacebox \@undefined
+%<latexrelease>
+%<latexrelease>\def\@sverb#1{%
+%<latexrelease> \catcode`#1\active
+%<latexrelease> \lccode`\~`#1%
+%<latexrelease> \gdef\verb@balance@group{\verb@egroup
+%<latexrelease> \@latex@error{\noexpand\verb illegal in command argument}\@ehc}%
+%<latexrelease> \aftergroup\verb@balance@group
+%<latexrelease> \lowercase{\let~\verb@egroup}}%
+%<latexrelease>
+%<latexrelease>\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 @@
%<TU>\ProvidesFile{tuenc.def}
%<package>\ProvidesPackage{fontenc}
%<TS1sty>\ProvidesPackage{textcomp}
-%<OT1|T1|OMS|OML|OT4|TU|package|TS1sty> [2017/04/05 v2.0i
+%<OT1|T1|OMS|OML|OT4|TU|package|TS1sty> [2018/08/11 v2.0j
%<OT1|T1|OMS|OML|OT4|TS1|TU> Standard LaTeX file]
%<package|TS1sty> 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
%<flafter>\ProvidesPackage{flafter}
%<fltrace>\ProvidesPackage{fltrace}
-%<flafter,fltrace> [2018/01/08 v1.4c
+%<flafter,fltrace> [2018/11/28 v1.4d
%<flafter> Standard LaTeX floats after reference (FMi)]
%<fltrace> 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>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2018/12/01}%
+%<latexrelease> {\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}}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\addcontentsline}{Mask line endings}%
+%<latexrelease>\def\addcontentsline#1#2#3{%
+%<latexrelease> \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}}
+%<latexrelease>\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>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2018/12/01}%
+%<latexrelease> {\@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}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@dottedtocline}{Prevent protrusion}%
+%<latexrelease>\def\@dottedtocline#1#2#3#4#5{%
+%<latexrelease> \ifnum #1>\c@tocdepth \else
+%<latexrelease> \vskip \z@ \@plus.2\p@
+%<latexrelease> {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
+%<latexrelease> \parindent #2\relax\@afterindenttrue
+%<latexrelease> \interlinepenalty\@M
+%<latexrelease> \leavevmode
+%<latexrelease> \@tempdima #3\relax
+%<latexrelease> \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+%<latexrelease> {#4}\nobreak
+%<latexrelease> \leaders\hbox{$\m@th
+%<latexrelease> \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+%<latexrelease> mu$}\hfill
+%<latexrelease> \nobreak
+%<latexrelease> \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
+%<latexrelease> \par}%
+%<latexrelease> \fi}
+%<latexrelease>
+%<latexrelease>\let\noprotrusion\@undefined
+%<latexrelease>\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}
%</2ekernel>
-%<latexrelease>\IncludeInRelease{2015/10/01}%
-%<latexrelease> {\@esphack}{hyphenation after space hack}%
+%<latexrelease>\IncludeInRelease{2018/10/10}%
+%<latexrelease> {\@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}%
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2015/10/01}%
+%<latexrelease> {\@esphack}{hyphenation and nobreak after space hack}%
+%<latexrelease>\def\@esphack{%
+%<latexrelease> \relax
+%<latexrelease> \ifhmode
+%<latexrelease> \spacefactor\@savsf
+%<latexrelease> \ifdim\@savsk>\z@
+%<latexrelease> \ifdim\lastskip=\z@
+%<latexrelease> \nobreak \hskip\z@skip
+%<latexrelease> \fi
+%<latexrelease> \ignorespaces
+%<latexrelease> \fi
+%<latexrelease> \fi}%
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{2015/01/01}%
-%<latexrelease> {\@esphack}{hyphenation after space hack}%
+%<latexrelease> {\@esphack}{hyphenation and nobreak after space hack}%
%<latexrelease>\def\@esphack{%
%<latexrelease> \relax
%<latexrelease> \ifhmode
@@ -584,7 +617,7 @@
%<latexrelease> \fi}%
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\@esphack}{hyphenation after space hack}%
+%<latexrelease> {\@esphack}{hyphenation and nobreak after space hack}%
%<latexrelease>\def\@esphack{%
%<latexrelease> \relax
%<latexrelease> \ifhmode
@@ -1093,21 +1126,52 @@
% \end{macrocode}
% \end{macro}
%
-%
+%
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2018/12/01}%
+%<latexrelease> {\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}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\thinspace}{Start LR-mode}%
+%<latexrelease>\def\thinspace{\kern .16667em }
+%<latexrelease>\def\negthinspace{\kern-.16667em }
+%<latexrelease>\def\enspace{\kern.5em }
+%<latexrelease>\let\leavevmode@ifvmode\@undefined
+%<latexrelease>\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 @@
%</2ekernel>
%<latexrelease>\edef\latexreleaseversion
%<*2ekernel|latexrelease>
- {2018-04-01}
+ {2018-12-01}
%</2ekernel|latexrelease>
%<*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}
%<all,t1>\DeclareUnicodeCharacter{0232}{\@tabacckludge=Y}
%<all,t1>\DeclareUnicodeCharacter{0233}{\@tabacckludge=y}
+%<all,t2c,t2b,t2a,t1,ot2,ot1,ly1,lcy>\DeclareUnicodeCharacter{0237}{\j}
%<all,ly1,utf8>\DeclareUnicodeCharacter{02C6}{\textasciicircum}
%<all,ts1>\DeclareUnicodeCharacter{02C7}{\textasciicaron}
%<all,ly1,utf8>\DeclareUnicodeCharacter{02DC}{\textasciitilde}
%<all,ts1>\DeclareUnicodeCharacter{02D8}{\textasciibreve}
+%<all,t1>\DeclareUnicodeCharacter{02D9}{\.{}}
+%<all,t1>\DeclareUnicodeCharacter{02DB}{\k{}}
%<all,ts1>\DeclareUnicodeCharacter{02DD}{\textacutedbl}
% \end{macrocode}
% The Cyrillic code points have been recently checked (2007) and extended
@@ -1530,6 +1554,7 @@
%<all,ts1>\DeclareUnicodeCharacter{0E3F}{\textbaht}
%<all,t1>\DeclareUnicodeCharacter{1E02}{\.B}
%<all,t1>\DeclareUnicodeCharacter{1E03}{\.b}
+%<all,t1>\DeclareUnicodeCharacter{1E9E}{\SS}
%<all,x2,t2c,t2b,t2a,t1,utf8>\DeclareUnicodeCharacter{200C}{\textcompwordmark}
% \end{macrocode}
% \changes{v1.1s}{2016/02/28}{Add more hyphens and dashes}