summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/base
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-01-22 23:37:33 +0000
committerKarl Berry <karl@freefriends.org>2017-01-22 23:37:33 +0000
commitb2ba0afced5c10391750914c16a2aa06cfaa6a96 (patch)
tree8a87b0b92f0038639e1078486bb4c2a56bcea2d3 /Master/texmf-dist/source/latex/base
parentbc46c8f4627710df445115626d25161dcb2df985 (diff)
latex2e (22jan17)
git-svn-id: svn://tug.org/texlive/trunk@43024 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/base')
-rw-r--r--Master/texmf-dist/source/latex/base/fontdef.dtx72
-rw-r--r--Master/texmf-dist/source/latex/base/latexrelease.dtx505
-rw-r--r--Master/texmf-dist/source/latex/base/latexrelease.ins1
-rw-r--r--Master/texmf-dist/source/latex/base/ltboxes.dtx8
-rw-r--r--Master/texmf-dist/source/latex/base/ltclass.dtx124
-rw-r--r--Master/texmf-dist/source/latex/base/ltcounts.dtx7
-rw-r--r--Master/texmf-dist/source/latex/base/ltdirchk.dtx12
-rw-r--r--Master/texmf-dist/source/latex/base/lterror.dtx12
-rw-r--r--Master/texmf-dist/source/latex/base/ltfinal.dtx91
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssbas.dtx101
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssdcl.dtx3
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssini.dtx33
-rw-r--r--Master/texmf-dist/source/latex/base/ltluatex.dtx92
-rw-r--r--Master/texmf-dist/source/latex/base/ltmath.dtx8
-rw-r--r--Master/texmf-dist/source/latex/base/ltnews26.tex239
-rw-r--r--Master/texmf-dist/source/latex/base/ltoutenc.dtx482
-rw-r--r--Master/texmf-dist/source/latex/base/ltoutenc.ins2
-rw-r--r--Master/texmf-dist/source/latex/base/ltoutput.dtx40
-rw-r--r--Master/texmf-dist/source/latex/base/ltplain.dtx57
-rw-r--r--Master/texmf-dist/source/latex/base/ltsect.dtx6
-rw-r--r--Master/texmf-dist/source/latex/base/lttab.dtx4
-rw-r--r--Master/texmf-dist/source/latex/base/ltvers.dtx4
22 files changed, 1711 insertions, 192 deletions
diff --git a/Master/texmf-dist/source/latex/base/fontdef.dtx b/Master/texmf-dist/source/latex/base/fontdef.dtx
index 783b177be01..83eec0d5bbd 100644
--- a/Master/texmf-dist/source/latex/base/fontdef.dtx
+++ b/Master/texmf-dist/source/latex/base/fontdef.dtx
@@ -39,7 +39,7 @@
%<driver, >\ProvidesFile{fontdef.drv}
% \fi
% \ProvidesFile{fontdef.dtx}
- [2014/09/29 v2.3a LaTeX Kernel
+ [2016/12/03 v3.0a LaTeX Kernel
% \iftrue (\else
%<text, >(Text
%<math, >(Math
@@ -134,7 +134,8 @@
% |U| & unknown encoding \\
% |OML| & old \TeX{} math letters encoding \\
% |OMS| & old \TeX{} math symbols encoding \\
-% |OMX| & old \TeX{} math extension symbols encoding
+% |OMX| & old \TeX{} math extension symbols encoding\\
+% |TU| & Unicode
% \end{tabular}
% \end{center}
% Notice that some of these encodings are `old' in the sense that we
@@ -245,12 +246,17 @@
% \changes{v2.2e}{1994/10/31}{... and moved further down}
% \changes{v2.2f}{1994/11/07}{(DPC) Updated to use \cs{ProvidesFile}}
% \changes{v2.2h}{1994/11/16}{(DPC) Removed \cmd\{ and \cmd\}}
+% \changes{v3.0a}{2016/12/03}{(DPC) Default to TU encoding for Unicode TeX engines}
% \begin{macrocode}
\input {omlenc.def}
\input {t1enc.def}
\input {ot1enc.def} % <- should come after T1 for speed
\input {omsenc.def}
% \end{macrocode}
+% \changes{v3.0a}{2016/12/03}{(DPC) Default to TU encoding for Unicode TeX engines}
+% \begin{macrocode}
+\ifx\Umathchar\@undefined
+% \end{macrocode}
%
% We then set set the default text font encoding. This will
% hopefully change some day to |T1|. This setting should \emph{not}
@@ -259,6 +265,30 @@
\fontencoding{OT1}
% \end{macrocode}
%
+% \begin{macrocode}
+\else
+% \end{macrocode}
+% Unicode.
+% \begin{macrocode}
+\input {tuenc.def}
+\fontencoding{TU}
+\DeclareFontSubstitution{TU}{lmr}{m}{n}
+\begingroup
+\nfss@catcodes
+\input {tulmr.fd}
+\input {tulmss.fd}
+\input {tulmtt.fd}
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSubstitution{TU}{lmr}{m}{n}
+% \end{macrocode}
+% End of Unicode branch.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
% If different encodings for text fonts are in use one could put
% the common setup into |\DeclareFontEncodingDefaults|. There is
% now a better mechanism so using this interface is discouraged!
@@ -354,19 +384,53 @@
% making documents non-portable.
%
%
+% \begin{macro}{\encodingdefault}
% \begin{macro}{\rmdefault}
% \begin{macro}{\sfdefault}
% \begin{macro}{\ttdefault}
% 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}
\newcommand\sfdefault{cmss}
\newcommand\ttdefault{cmtt}
+\else
+\newcommand\encodingdefault{TU}
+\newcommand\rmdefault{lmr}\fontfamily{\rmdefault}
+\newcommand\sfdefault{lmss}
+\newcommand\ttdefault{lmtt}
+\fi
+%<latexrelease>\IncludeInRelease{2017/01/01}%
+%<latexrelease> {\encodingdefault}{TU encoding default}%
+%<latexrelease>\ifx\Umathchar\@undefined
+%<latexrelease>\renewcommand\encodingdefault{OT1}
+%<latexrelease>\renewcommand\rmdefault{cmr}
+%<latexrelease>\renewcommand\sfdefault{cmss}
+%<latexrelease>\renewcommand\ttdefault{cmtt}
+%<latexrelease>\else
+%<latexrelease>\renewcommand\encodingdefault{TU}
+%<latexrelease>\renewcommand\rmdefault{lmr}
+%<latexrelease>\renewcommand\sfdefault{lmss}
+%<latexrelease>\renewcommand\ttdefault{lmtt}
+%<latexrelease>\fi
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\encodingdefault}{TU encoding default}%
+%<latexrelease>\renewcommand\encodingdefault{OT1}
+%<latexrelease>\renewcommand\rmdefault{cmr}
+%<latexrelease>\renewcommand\sfdefault{cmss}
+%<latexrelease>\renewcommand\ttdefault{cmtt}
+%</text|latexrelease>
+%<*text>
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\bfdefault}
% \begin{macro}{\mddefault}
@@ -394,7 +458,6 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\encodingdefault}
% \begin{macro}{\familydefault}
% \begin{macro}{\seriesdefault}
% \begin{macro}{\shapedefault}
@@ -403,8 +466,8 @@
% |\encodingdefault| should \emph{not} be changed and should match
% the setting above for |\fontencoding|. All other values can be
% set according to your taste.
+% \changes{v3.0a}{2016/12/03}{(DPC) Default to TU encoding for Unicode TeX engines}
% \begin{macrocode}
-\newcommand\encodingdefault{OT1}
\newcommand\familydefault{\rmdefault}
\newcommand\seriesdefault{\mddefault}
\newcommand\shapedefault{\updefault}
@@ -412,7 +475,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
%
%
% This finishes the low-level setup in \texttt{fonttext.ltx}.
diff --git a/Master/texmf-dist/source/latex/base/latexrelease.dtx b/Master/texmf-dist/source/latex/base/latexrelease.dtx
index 8cb0028b363..15be21a45cc 100644
--- a/Master/texmf-dist/source/latex/base/latexrelease.dtx
+++ b/Master/texmf-dist/source/latex/base/latexrelease.dtx
@@ -34,12 +34,12 @@
%</dtx>
%<driver>\ProvidesFile{latexrelease.drv}
%<fixltx2e>\ProvidesPackage{fixltx2e}
-%<fixltx2e> [2015/06/22 v2.0b fixes to LaTeX (obsolete)]
+%<fixltx2e> [2016/12/29 v2.1a fixes to LaTeX (obsolete)]
%<latexrelease>\ProvidesPackage{latexrelease}
%<*!fixltx2e>
% \fi
% \ProvidesFile{latexrelease.dtx}
- [2016/07/04 v1.0g LaTeX release emulation and tests]
+ [2016/12/29 v1.0h LaTeX release emulation and tests]
% \iffalse
%</!fixltx2e>
%<*driver>
@@ -470,11 +470,512 @@ of this package available from CTAN}
% Generate a stub \Lpack{fixltx2e} package:
% \begin{macrocode}
%<*fixltx2e>
+\IncludeInRelease{2015/01/01}{\fixltxe}{Old fixltx2e package}
\NeedsTeXFormat{LaTeX2e}
\PackageWarningNoLine{fixltx2e}{%
fixltx2e is not required with releases after 2015\MessageBreak
All fixes are now in the LaTeX kernel.\MessageBreak
See the latexrelease package for details}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\fixltxe}{Old fixltx2e package}
+\def\@outputdblcol{%
+ \if@firstcolumn
+ \global\@firstcolumnfalse
+ \global\setbox\@leftcolumn\copy\@outputbox
+ \splitmaxdepth\maxdimen
+ \vbadness\maxdimen
+ \setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}%
+ \setbox\@outputbox\vsplit\@outputbox to\maxdimen
+ \toks@\expandafter{\topmark}%
+ \xdef\@firstcoltopmark{\the\toks@}%
+ \toks@\expandafter{\splitfirstmark}%
+ \xdef\@firstcolfirstmark{\the\toks@}%
+ \ifx\@firstcolfirstmark\@empty
+ \global\let\@setmarks\relax
+ \else
+ \gdef\@setmarks{%
+ \let\firstmark\@firstcolfirstmark
+ \let\topmark\@firstcoltopmark}%
+ \fi
+ \else
+ \global\@firstcolumntrue
+ \setbox\@outputbox\vbox{%
+ \hb@xt@\textwidth{%
+ \hb@xt@\columnwidth{\box\@leftcolumn \hss}%
+ \hfil
+ {\normalcolor\vrule \@width\columnseprule}%
+ \hfil
+ \hb@xt@\columnwidth{\box\@outputbox \hss}}}%
+ \@combinedblfloats
+ \@setmarks
+ \@outputpage
+ \begingroup
+ \@dblfloatplacement
+ \@startdblcolumn
+ \@whilesw\if@fcolmade \fi{\@outputpage\@startdblcolumn}%
+ \endgroup
+ \fi}
+\def\end@dblfloat{%
+ \if@twocolumn
+ \@endfloatbox
+ \ifnum\@floatpenalty <\z@
+ \@largefloatcheck
+ \global\dp\@currbox1sp %
+ \@cons\@currlist\@currbox
+ \ifnum\@floatpenalty <-\@Mii
+ \penalty -\@Miv
+ \@tempdima\prevdepth
+ \vbox{}%
+ \prevdepth\@tempdima
+ \penalty\@floatpenalty
+ \else
+ \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
+ \fi
+ \fi
+ \else
+ \end@float
+ \fi
+}
+\def\@testwrongwidth #1{%
+ \ifdim\dp#1=\f@depth
+ \else
+ \global\@testtrue
+ \fi}
+\let\f@depth\z@
+\def\@dblfloatplacement{\global\@dbltopnum\c@dbltopnumber
+ \global\@dbltoproom \dbltopfraction\@colht
+ \@textmin \@colht
+ \advance \@textmin -\@dbltoproom
+ \@fpmin \dblfloatpagefraction\textheight
+ \@fptop \@dblfptop
+ \@fpsep \@dblfpsep
+ \@fpbot \@dblfpbot
+ \def\f@depth{1sp}}
+\def \@doclearpage {%
+ \ifvoid\footins
+ \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
+ \setbox\@tempboxa\box\@cclv
+ \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
+ \global \let \@toplist \@empty
+ \global \let \@botlist \@empty
+ \global \@colroom \@colht
+ \ifx \@currlist\@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \global \let \@currlist \@empty
+ \fi
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
+ \if@twocolumn
+ \if@firstcolumn
+ \xdef\@deferlist{\@dbltoplist\@deferlist}%
+ \global \let \@dbltoplist \@empty
+ \global \@colht \textheight
+ \begingroup
+ \@dblfloatplacement
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi{\@outputpage
+ \@makefcolumn\@deferlist}%
+ \endgroup
+ \else
+ \vbox{}\clearpage
+ \fi
+ \fi
+ \ifx\@deferlist\@empty \else\clearpage \fi
+ \else
+ \setbox\@cclv\vbox{\box\@cclv\vfil}%
+ \@makecol\@opcol
+ \clearpage
+ \fi
+}
+\def \@startdblcolumn {%
+ \@tryfcolumn \@deferlist
+ \if@fcolmade
+ \else
+ \begingroup
+ \let \reserved@b \@deferlist
+ \global \let \@deferlist \@empty
+ \let \@elt \@sdblcolelt
+ \reserved@b
+ \endgroup
+ \fi
+}
+\def\@addtonextcol{%
+ \begingroup
+ \@insertfalse
+ \@setfloattypecounts
+ \ifnum \@fpstype=8
+ \else
+ \ifnum \@fpstype=24
+ \else
+ \@flsettextmin
+ \@reqcolroom \ht\@currbox
+ \advance \@reqcolroom \@textmin
+ \ifdim \@colroom>\@reqcolroom
+ \@flsetnum \@colnum
+ \ifnum\@colnum>\z@
+ \@bitor\@currtype\@deferlist
+ \@testwrongwidth\@currbox
+ \if@test
+ \else
+ \@addtotoporbot
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@cons\@deferlist\@currbox
+ \fi
+ \endgroup
+}
+\def\@addtodblcol{%
+ \begingroup
+ \@insertfalse
+ \@setfloattypecounts
+ \@getfpsbit \tw@
+ \ifodd\@tempcnta
+ \@flsetnum \@dbltopnum
+ \ifnum \@dbltopnum>\z@
+ \@tempswafalse
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \else
+ \ifnum \@fpstype<\sixt@@n
+ \advance \@dbltoproom \@textmin
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \fi
+ \advance \@dbltoproom -\@textmin
+ \fi
+ \fi
+ \if@tempswa
+ \@bitor \@currtype \@deferlist
+ \@testwrongwidth\@currbox
+ \if@test
+ \else
+ \@tempdima -\ht\@currbox
+ \advance\@tempdima
+ -\ifx \@dbltoplist\@empty \dbltextfloatsep \else
+ \dblfloatsep \fi
+ \global \advance \@dbltoproom \@tempdima
+ \global \advance \@colht \@tempdima
+ \global \advance \@dbltopnum \m@ne
+ \@cons \@dbltoplist \@currbox
+ \@inserttrue
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@cons\@deferlist\@currbox
+ \fi
+ \endgroup
+}
+\def \@addtocurcol {%
+ \@insertfalse
+ \@setfloattypecounts
+ \ifnum \@fpstype=8
+ \else
+ \ifnum \@fpstype=24
+ \else
+ \@flsettextmin
+ \advance \@textmin \@textfloatsheight
+ \@reqcolroom \@pageht
+ \ifdim \@textmin>\@reqcolroom
+ \@reqcolroom \@textmin
+ \fi
+ \advance \@reqcolroom \ht\@currbox
+ \ifdim \@colroom>\@reqcolroom
+ \@flsetnum \@colnum
+ \ifnum \@colnum>\z@
+ \@bitor\@currtype\@deferlist
+ \@testwrongwidth\@currbox
+ \if@test
+ \else
+ \@bitor\@currtype\@botlist
+ \if@test
+ \@addtobot
+ \else
+ \ifodd \count\@currbox
+ \advance \@reqcolroom \intextsep
+ \ifdim \@colroom>\@reqcolroom
+ \global \advance \@colnum \m@ne
+ \global \advance \@textfloatsheight \ht\@currbox
+ \global \advance \@textfloatsheight 2\intextsep
+ \@cons \@midlist \@currbox
+ \if@nobreak
+ \nobreak
+ \@nobreakfalse
+ \everypar{}%
+ \else
+ \addpenalty \interlinepenalty
+ \fi
+ \vskip \intextsep
+ \box\@currbox
+ \penalty\interlinepenalty
+ \vskip\intextsep
+ \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
+ \outputpenalty \z@
+ \@inserttrue
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@addtotoporbot
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@resethfps
+ \@cons\@deferlist\@currbox
+ \fi
+}
+\def\@xtryfc #1{%
+ \@next\reserved@a\@trylist{}{}%
+ \@currtype \count #1%
+ \divide\@currtype\@xxxii
+ \multiply\@currtype\@xxxii
+ \@bitor \@currtype \@failedlist
+ \@testfp #1%
+ \@testwrongwidth #1%
+ \ifdim \ht #1>\@colht
+ \@testtrue
+ \fi
+ \if@test
+ \@cons\@failedlist #1%
+ \else
+ \@ytryfc #1%
+ \fi}
+\def\@ztryfc #1{%
+ \@tempcnta\count #1%
+ \divide\@tempcnta\@xxxii
+ \multiply\@tempcnta\@xxxii
+ \@bitor \@tempcnta {\@failedlist \@flfail}%
+ \@testfp #1%
+ \@testwrongwidth #1%
+ \@tempdimb\@tempdima
+ \advance\@tempdimb\ht #1%
+ \advance\@tempdimb\@fpsep
+ \ifdim \@tempdimb >\@colht
+ \@testtrue
+ \fi
+ \if@test
+ \@cons\@flfail #1%
+ \else
+ \@cons\@flsucceed #1%
+ \@tempdima\@tempdimb
+ \fi}
+\def\@{\spacefactor\@m{}}
+\def\@tempa#1#2{#1#2\relax}
+\ifx\setlength\@tempa
+ \def\setlength#1#2{#1 #2\relax}
+\fi
+\def\addpenalty#1{%
+ \ifvmode
+ \if@minipage
+ \else
+ \if@nobreak
+ \else
+ \ifdim\lastskip=\z@
+ \penalty#1\relax
+ \else
+ \@tempskipb\lastskip
+ \begingroup
+ \advance \@tempskipb
+ \ifdim\prevdepth>\maxdepth\maxdepth\else
+ \ifdim \prevdepth = -\@m\p@ \z@ \else \prevdepth \fi
+ \fi
+ \vskip -\@tempskipb
+ \penalty#1%
+ \vskip\@tempskipb
+ \endgroup
+ \vskip -\@tempskipb
+ \vskip \@tempskipb
+ \fi
+ \fi
+ \fi
+ \else
+ \@noitemerr
+ \fi}
+\def\@fnsymbol#1{%
+ \ifcase#1\or \TextOrMath\textasteriskcentered *\or
+ \TextOrMath \textdagger \dagger\or
+ \TextOrMath \textdaggerdbl \ddagger \or
+ \TextOrMath \textsection \mathsection\or
+ \TextOrMath \textparagraph \mathparagraph\or
+ \TextOrMath \textbardbl \|\or
+ \TextOrMath {\textasteriskcentered\textasteriskcentered}{**}\or
+ \TextOrMath {\textdagger\textdagger}{\dagger\dagger}\or
+ \TextOrMath {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger}\else
+ \@ctrerr \fi
+}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname eTeXversion\endcsname\relax
+\DeclareRobustCommand\TextOrMath{%
+ \ifmmode \expandafter\@secondoftwo
+ \else \expandafter\@firstoftwo \fi}
+\protected@edef\TextOrMath#1#2{\TextOrMath{#1}{#2}}
+\else
+\protected\expandafter\def\csname TextOrMath\space\endcsname{%
+ \ifmmode \expandafter\@secondoftwo
+ \else \expandafter\@firstoftwo \fi}
+\edef\TextOrMath#1#2{%
+ \expandafter\noexpand\csname TextOrMath\space\endcsname
+ {#1}{#2}}
+\fi
+\def\@esphack{%
+ \relax
+ \ifhmode
+ \spacefactor\@savsf
+ \ifdim\@savsk>\z@
+ \nobreak \hskip\z@skip % <------
+ \ignorespaces
+ \fi
+ \fi}
+\def\@Esphack{%
+ \relax
+ \ifhmode
+ \spacefactor\@savsf
+ \ifdim\@savsk>\z@
+ \nobreak \hskip\z@skip % <------
+ \@ignoretrue
+ \ignorespaces
+ \fi
+ \fi}
+\DeclareRobustCommand\em
+ {\@nomath\em \ifdim \fontdimen\@ne\font >\z@
+ \eminnershape \else \itshape \fi}
+\def\eminnershape{\upshape}
+\DeclareRobustCommand*\textsubscript[1]{%
+ \@textsubscript{\selectfont#1}}
+\def\@textsubscript#1{%
+ {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
+\def\@DeclareMathSizes #1#2#3#4#5{%
+ \@defaultunits\dimen@ #2pt\relax\@nnil
+ \if $#3$%
+ \expandafter\let\csname S@\strip@pt\dimen@\endcsname\math@fontsfalse
+ \else
+ \@defaultunits\dimen@ii #3pt\relax\@nnil
+ \@defaultunits\@tempdima #4pt\relax\@nnil
+ \@defaultunits\@tempdimb #5pt\relax\@nnil
+ \toks@{#1}%
+ \expandafter\xdef\csname S@\strip@pt\dimen@\endcsname{%
+ \gdef\noexpand\tf@size{\strip@pt\dimen@ii}%
+ \gdef\noexpand\sf@size{\strip@pt\@tempdima}%
+ \gdef\noexpand\ssf@size{\strip@pt\@tempdimb}%
+ \the\toks@
+ }%
+ \fi
+}
+\providecommand*\MakeRobust[1]{%
+ \@ifundefined{\expandafter\@gobble\string#1}{%
+ \@latex@error{The control sequence `\string#1' is undefined!%
+ \MessageBreak There is nothing here to make robust}%
+ \@eha
+ }%
+ {%
+ \@ifundefined{\expandafter\@gobble\string#1\space}%
+ {%
+ \expandafter\let\csname
+ \expandafter\@gobble\string#1\space\endcsname=#1%
+ \edef\reserved@a{\string#1}%
+ \def\reserved@b{#1}%
+ \edef\reserved@b{\expandafter\strip@prefix\meaning\reserved@b}%
+ \edef#1{%
+ \ifx\reserved@a\reserved@b
+ \noexpand\x@protect\noexpand#1%
+ \fi
+ \noexpand\protect\expandafter\noexpand
+ \csname\expandafter\@gobble\string#1\space\endcsname}%
+ }%
+ {\@latex@info{The control sequence `\string#1' is already robust}}%
+ }%
+}
+\MakeRobust\(
+\MakeRobust\)
+\MakeRobust\[
+\MakeRobust\]
+\MakeRobust\makebox
+\MakeRobust\savebox
+\MakeRobust\framebox
+\MakeRobust\parbox
+\MakeRobust\rule
+\MakeRobust\raisebox
+\def\@xfloat #1[#2]{%
+ \@nodocument
+ \def \@captype {#1}%
+ \def \@fps {#2}%
+ \@onelevel@sanitize \@fps
+ \def \reserved@b {!}%
+ \ifx \reserved@b \@fps
+ \@fpsadddefault
+ \else
+ \ifx \@fps \@empty
+ \@fpsadddefault
+ \fi
+ \fi
+ \ifhmode
+ \@bsphack
+ \@floatpenalty -\@Mii
+ \else
+ \@floatpenalty-\@Miii
+ \fi
+ \ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else
+ \@next\@currbox\@freelist
+ {%
+ \@tempcnta \sixt@@n
+ \expandafter \@tfor \expandafter \reserved@a
+ \expandafter :\expandafter =\@fps
+ \do
+ {%
+ \if \reserved@a h%
+ \ifodd \@tempcnta
+ \else
+ \advance \@tempcnta \@ne
+ \fi
+ \else\if \reserved@a t%
+ \@setfpsbit \tw@
+ \else\if \reserved@a b%
+ \@setfpsbit 4%
+ \else\if \reserved@a p%
+ \@setfpsbit 8%
+ \else\if \reserved@a !%
+ \ifnum \@tempcnta>15
+ \advance\@tempcnta -\sixt@@n\relax
+ \fi
+ \else
+ \@latex@error{Unknown float option `\reserved@a'}%
+ {Option `\reserved@a' ignored and `p' used.}%
+ \@setfpsbit 8%
+ \fi\fi\fi\fi\fi
+ }%
+ \@tempcntb \csname ftype@\@captype \endcsname
+ \multiply \@tempcntb \@xxxii
+ \advance \@tempcnta \@tempcntb
+ \global \count\@currbox \@tempcnta
+ }%
+ \@fltovf
+ \fi
+ \global \setbox\@currbox
+ \color@vbox
+ \normalcolor
+ \vbox \bgroup
+ \hsize\columnwidth
+ \@parboxrestore
+ \@floatboxreset
+}
+ \def\@stpelt#1{\global\csname c@#1\endcsname \m@ne\stepcounter{#1}}
+\EndIncludeInRelease
%</fixltx2e>
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/base/latexrelease.ins b/Master/texmf-dist/source/latex/base/latexrelease.ins
index cd7ac93ff36..f9091499f8f 100644
--- a/Master/texmf-dist/source/latex/base/latexrelease.ins
+++ b/Master/texmf-dist/source/latex/base/latexrelease.ins
@@ -91,6 +91,7 @@ extension .ins) which are part of the distribution.
\from{ltlength.dtx} {latexrelease}%
\from{ltfloat.dtx} {latexrelease}%
\from{ltoutput.dtx} {latexrelease}%
+ \from{ltclass.dtx} {latexrelease}%
\from{ltspace.dtx} {latexrelease}%
\from{ltplain.dtx} {latexrelease}%
\from{ltfssdcl.dtx} {latexrelease}%
diff --git a/Master/texmf-dist/source/latex/base/ltboxes.dtx b/Master/texmf-dist/source/latex/base/ltboxes.dtx
index 2c0115a2d2b..c631a1f9cbb 100644
--- a/Master/texmf-dist/source/latex/base/ltboxes.dtx
+++ b/Master/texmf-dist/source/latex/base/ltboxes.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltboxes.dtx}
- [2015/01/08 v1.1h LaTeX Kernel (Box Commands)]
+ [2016/12/29 v1.2a LaTeX Kernel (Box Commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltboxes.dtx}
@@ -252,6 +252,7 @@
%<latexrelease> \@ifnextchar(%)
%<latexrelease> \@makepicbox
%<latexrelease> {\@ifnextchar[\@makebox\mbox}}%
+%<latexrelease>\expandafter\let\csname makebox \endcsname\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
@@ -465,6 +466,7 @@
%<latexrelease>\def\savebox#1{%
%<latexrelease> \@ifnextchar(%)
%<latexrelease> {\@savepicbox#1}{\@ifnextchar[{\@savebox#1}{\sbox#1}}}%
+%<latexrelease>\expandafter\let\csname savebox \endcsname\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
@@ -661,6 +663,7 @@
%<latexrelease>\def\framebox{%
%<latexrelease> \@ifnextchar(%)
%<latexrelease> \@framepicbox{\@ifnextchar[\@framebox\fbox}}%
+%<latexrelease>\expandafter\let\csname framebox \endcsname\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
@@ -775,6 +778,7 @@
%<latexrelease> \@ifnextchar[%]
%<latexrelease> \@iparbox
%<latexrelease> {\@iiiparbox c\relax[s]}}%
+%<latexrelease>\expandafter\let\csname parbox \endcsname\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
@@ -1066,6 +1070,7 @@
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\rule}{Make \rule robust}%
%<latexrelease>\def\rule{\@ifnextchar[\@rule{\@rule[\z@]}}%
+%<latexrelease>\expandafter\let\csname rule \endcsname\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
@@ -1126,6 +1131,7 @@
%<latexrelease>\def\raisebox#1{%
%<latexrelease> \leavevmode
%<latexrelease> \@ifnextchar[{\@rsbox{#1}}{\@irsbox{#1}[]}}
+%<latexrelease>\expandafter\let\csname raisebox \endcsname\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/ltclass.dtx b/Master/texmf-dist/source/latex/base/ltclass.dtx
index 988f9beb888..ecbcbfff2cf 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}
- [2016/06/20 v1.1j LaTeX Kernel (Class & Package Interface)]
+ [2016/11/09 v1.2b LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -662,9 +662,18 @@
% \changes{v1.1i}{2011/08/19}
% {Re-jig definition after more stringent \cs{in@} test.}
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2017/01/01}%
+%<latexrelease> {\@if@pti@ns}{Spaces in option clash check}%
+%<*2ekernel|latexrelease>
\def\@if@pti@ns#1#2{%
\let\reserved@a\@firstoftwo
- \@for\reserved@b:=#2\do{%
+% \end{macrocode}
+% \changes{v1.2a}{2016/10/02}
+% {Ignore spaces while checking for option clash}
+% \begin{macrocode}
+ \edef\reserved@b{\zap@space#2 \@empty}%
+ \@for\reserved@b:=\reserved@b\do{%
\ifx\reserved@b\@empty
\else
\expandafter\in@\expandafter{\expandafter,\reserved@b,}{,#1,}%
@@ -675,6 +684,28 @@
\fi
}%
\reserved@a}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@if@pti@ns}{Spaces in option clash check}%
+%<latexrelease>\def\@if@pti@ns#1#2{%
+%<latexrelease> \let\reserved@a\@firstoftwo
+%<latexrelease> \@for\reserved@b:=#2\do{%
+%<latexrelease> \ifx\reserved@b\@empty
+%<latexrelease> \else
+%<latexrelease> \expandafter\in@\expandafter
+%<latexrelease> {\expandafter,\reserved@b,}{,#1,}%
+%<latexrelease> \ifin@
+%<latexrelease> \else
+%<latexrelease> \let\reserved@a\@secondoftwo
+%<latexrelease> \fi
+%<latexrelease> \fi
+%<latexrelease> }%
+%<latexrelease> \reserved@a}
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
\@onlypreamble\@if@pti@ns
% \end{macrocode}
% \end{macro}
@@ -972,11 +1003,37 @@
% \changes{v0.2k}{1993/12/06}
% {Preserve \cs{CurrentOption}.}
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2017/01/01}%
+%<latexrelease> {\@if@pti@ns}{Spaces in \ExecuteOptions}%
+%<*2ekernel|latexrelease>
\def\ExecuteOptions#1{%
+% \end{macrocode}
+% \changes{v1.2a}{2016/10/02}
+% {Ignore spaces in argument}
+% Use |\@fortmp| here as it is anyway cleared during |\@for| loop
+% so does not change any existing names.
+% \begin{macrocode}
+ \edef\@fortmp{\zap@space#1 \@empty}%
\def\reserved@a##1\@nil{%
- \@for\CurrentOption:=#1\do{\csname ds@\CurrentOption\endcsname}%
+ \@for\CurrentOption:=\@fortmp\do
+ {\csname ds@\CurrentOption\endcsname}%
\edef\CurrentOption{##1}}%
\expandafter\reserved@a\CurrentOption\@nil}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@if@pti@ns}{Spaces in \ExecuteOptions}%
+%<latexrelease>\def\ExecuteOptions#1{%
+%<latexrelease> \def\reserved@a##1\@nil{%
+%<latexrelease> \@for\CurrentOption:=#1\do
+%<latexrelease> {\csname ds@\CurrentOption\endcsname}%
+%<latexrelease> \edef\CurrentOption{##1}}%
+%<latexrelease> \expandafter\reserved@a\CurrentOption\@nil}
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
\@onlypreamble\ExecuteOptions
% \end{macrocode}
% \end{macro}
@@ -1212,7 +1269,13 @@
% ASAJ.}
% \changes{v1.1h}{2007/08/05}
% {Prevent loss of brackets PR/3965}
+% \changes{v2.1b}{2016/11/09}
+% {Improve \cs{ifx} tests PR/4497}
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2017/01/01}%
+%<latexrelease> {\@fileswith@pti@ns}{ifx tests in \@fileswith@pti@ns}%
+%<*2ekernel|latexrelease>
\def\@fileswith@pti@ns#1[#2]#3[#4]{%
\ifx#1\@clsextension
\ifx\@classoptionslist\relax
@@ -1230,17 +1293,66 @@
% (one for each package) without thrashing the parameter stack.
% \begin{macrocode}
\def\reserved@b##1,{%
- \ifx\@nil##1\relax\else
- \ifx\relax##1\relax\else
+% \end{macrocode}
+% If |#1| is |\@nnil| we have reached the end of the list
+% (older version used |\@nil| here but |\@nil| is undefined so |\ifx|
+% equal to all undefined commands)
+% \begin{macrocode}
+ \ifx\@nnil##1\relax\else
+% \end{macrocode}
+% If |\ifx\@nnil##1\n@nil| is true then |#1| is (presumably) empty
+% (Older code used |\relax| which is slighly easier to get into |#1|
+% by mistake, which would spoil this test.)
+% \begin{macrocode}
+ \ifx\@nnil##1\@nnil\else
+% \end{macrocode}
+%
+% \begin{macrocode}
\noexpand\@onefilewithoptions##1[{#2}][{#4}]%
\noexpand\@pkgextension
\fi
\expandafter\reserved@b
\fi}%
\edef\reserved@a{\zap@space#3 \@empty}%
- \edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nil,}%
+ \edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nnil,}%
\fi
\reserved@a}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@fileswith@pti@ns}{ifx tests in \@fileswith@pti@ns}%
+%<latexrelease>\def\@fileswith@pti@ns#1[#2]#3[#4]{%
+%<latexrelease> \ifx#1\@clsextension
+%<latexrelease> \ifx\@classoptionslist\relax
+%<latexrelease> \xdef\@classoptionslist{\zap@space#2 \@empty}%
+%<latexrelease> \def\reserved@a{%
+%<latexrelease> \@onefilewithoptions#3[{#2}][{#4}]#1%
+%<latexrelease> \@documentclasshook}%
+%<latexrelease> \else
+%<latexrelease> \def\reserved@a{%
+%<latexrelease> \@onefilewithoptions#3[{#2}][{#4}]#1}%
+%<latexrelease> \fi
+%<latexrelease> \else
+%<latexrelease> \def\reserved@b##1,{%
+%<latexrelease> \ifx\@nil##1\relax\else
+%<latexrelease> \ifx\relax##1\relax\else
+%<latexrelease> \noexpand\@onefilewithoptions##1[{#2}][{#4}]%
+%<latexrelease> \noexpand\@pkgextension
+%<latexrelease> \fi
+%<latexrelease> \expandafter\reserved@b
+%<latexrelease> \fi}%
+%<latexrelease> \edef\reserved@a{\zap@space#3 \@empty}%
+%<latexrelease> \edef\reserved@a{%
+%<latexrelease> \expandafter\reserved@b\reserved@a,\@nil,}%
+%<latexrelease> \fi
+%<latexrelease> \reserved@a}
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
\@onlypreamble\@fileswith@pti@ns
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/base/ltcounts.dtx b/Master/texmf-dist/source/latex/base/ltcounts.dtx
index 474e05ebd5e..bcb5c771562 100644
--- a/Master/texmf-dist/source/latex/base/ltcounts.dtx
+++ b/Master/texmf-dist/source/latex/base/ltcounts.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltcounts.dtx}
- [2015/06/05 v1.1i LaTeX Kernel (Counters)]
+ [2015/06/05 v1.1j LaTeX Kernel (Counters)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltcounts.dtx}
@@ -484,6 +484,7 @@
% \begin{macro}{\TextOrMath}
% \changes{v1.1h}{2015/01/11}{Add command to solve robustness
% issues (pr/3752) (latexrelease)}
+% \changes{v1.1j}{2016/10/19}{Test directly for \cs{protected}}
% When using regular \TeX, we make this command robust so that it
% always selects the correct branch in an |\ifmmode| switch with
% the usual disadvantage of ruining kerning. For the application we
@@ -495,13 +496,13 @@
% side effects.
%
% First some code for checking if we are running e\TeX\ but making
-% sure not to permanently turn |\eTeXversion| into |\relax|.
+% sure not to permanently turn |\protected| into |\relax|.
% \begin{macrocode}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2015/01/01}{\TextOrMath}{\TextOrMath}%
%<*2ekernel|latexrelease>
\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname eTeXversion\endcsname\relax
+\expandafter\ifx\csname protected\endcsname\relax
% \end{macrocode}
% In case of ordinary \TeX\ we define |\TextOrMath| as a robust
% command but make sure it always grabs its arguments. If we didn't do
diff --git a/Master/texmf-dist/source/latex/base/ltdirchk.dtx b/Master/texmf-dist/source/latex/base/ltdirchk.dtx
index ba017d6ebd3..bb81a90a3e8 100644
--- a/Master/texmf-dist/source/latex/base/ltdirchk.dtx
+++ b/Master/texmf-dist/source/latex/base/ltdirchk.dtx
@@ -39,7 +39,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdirchk.dtx}
- [2015/10/02 v1.2a LaTeX Kernel (System Dependent Parts)]
+ [2016/10/15 v1.2b LaTeX Kernel (System Dependent Parts)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdirchk.dtx}
@@ -294,6 +294,16 @@
\fi
% \end{macrocode}
%
+% \changes{v1.2b}{2016/10/15}{Require e\TeX{}}
+% A test can now be made for e\TeX{}.
+% \begin{macrocode}
+%<initex>\ifx\eTeXversion\undefined
+%<initex> \errmessage
+%<initex> {LaTeX requires e-TeX}
+%<initex> \expandafter\endinput
+%<initex>\fi
+% \end{macrocode}
+%
% That distraction over, back to the basics of a format.
% \begin{macrocode}
\catcode`\#=6
diff --git a/Master/texmf-dist/source/latex/base/lterror.dtx b/Master/texmf-dist/source/latex/base/lterror.dtx
index 4ec91167b18..99ed14077a6 100644
--- a/Master/texmf-dist/source/latex/base/lterror.dtx
+++ b/Master/texmf-dist/source/latex/base/lterror.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{lterror.dtx}
- [2015/02/21 v1.2o LaTeX Kernel (errors)]
+ [2016/10/15 v1.2p LaTeX Kernel (errors)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{lterror.dtx}
@@ -84,6 +84,8 @@
% {Modify autoload support}
% \changes{v1.2o}{2015/02/21}
% {Removed autoload support}
+% \changes{v1.2p}{2016/10/15}
+% {Require e\TeX{}}
%
% \section{Error handling}
%
@@ -457,13 +459,9 @@ Type H <return> for immediate help.}%
% \changes{v1.0d}{1994/03/28}
% {Remove test for \cs{inputlineno} undefined.}
% \begin{macro}{\on@line}
-% The message ` on input line~$n$', if possible.
+% The message ` on input line~$n$'.
% \begin{macrocode}
-\ifnum\inputlineno=\m@ne
- \let\on@line\@empty
-\else
- \def\on@line{ on input line \the\inputlineno}
-\fi
+\def\on@line{ on input line \the\inputlineno}
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex/base/ltfinal.dtx b/Master/texmf-dist/source/latex/base/ltfinal.dtx
index 05b09ea2934..d46f3041d99 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}
- [2016/04/22 v2.0q LaTeX Kernel (Final Settings)]
+ [2016/10/15 v2.0s LaTeX Kernel (Final Settings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -86,6 +86,8 @@
% \changes{v1.0s}{1995/06/06}
% {Made \cs{MakeUppercase} and \cs{MakeLowercase} brace their
% argument.}
+% \changes{v2.0r}{2016/10/15}{Require e\TeX{}}
+% \changes{v2.0s}{2016/10/15}{Tidy up status of char 127}
%
% \subsection{Debugging}
%
@@ -341,24 +343,24 @@
%<latexrelease> {\XeTeXintercharclasses}{XeTeX character classes}%
%<latexrelease> \ifx\XeTeXinterchartoks\undefined
%<latexrelease> \else
-%<latexrelease> \input{load-unicode-xetex-classes}
-%<latexrelease> \gdef\xtxHanGlue{\hskip0pt plus 0.1em\relax}
-%<latexrelease> \gdef\xtxHanSpace{\hskip0.2em plus 0.2em minus 0.1em\relax}
-%<latexrelease> \global\XeTeXinterchartoks 0 1 = {\xtxHanSpace}
-%<latexrelease> \global\XeTeXinterchartoks 0 2 = {\xtxHanSpace}
-%<latexrelease> \global\XeTeXinterchartoks 0 3 = {\nobreak\xtxHanSpace}
-%<latexrelease> \global\XeTeXinterchartoks 1 0 = {\xtxHanSpace}
-%<latexrelease> \global\XeTeXinterchartoks 2 0 = {\nobreak\xtxHanSpace}
-%<latexrelease> \global\XeTeXinterchartoks 3 0 = {\xtxHanSpace}
-%<latexrelease> \global\XeTeXinterchartoks 1 1 = {\xtxHanGlue}
-%<latexrelease> \global\XeTeXinterchartoks 1 2 = {\xtxHanGlue}
-%<latexrelease> \global\XeTeXinterchartoks 1 3 = {\nobreak\xtxHanGlue}
-%<latexrelease> \global\XeTeXinterchartoks 2 1 = {\nobreak\xtxHanGlue}
-%<latexrelease> \global\XeTeXinterchartoks 2 2 = {\nobreak\xtxHanGlue}
-%<latexrelease> \global\XeTeXinterchartoks 2 3 = {\xtxHanGlue}
-%<latexrelease> \global\XeTeXinterchartoks 3 1 = {\xtxHanGlue}
-%<latexrelease> \global\XeTeXinterchartoks 3 2 = {\xtxHanGlue}
-%<latexrelease> \global\XeTeXinterchartoks 3 3 = {\nobreak\xtxHanGlue}
+%<latexrelease> \input{load-unicode-xetex-classes}
+%<latexrelease> \gdef\xtxHanGlue{\hskip0pt plus 0.1em\relax}
+%<latexrelease> \gdef\xtxHanSpace{\hskip0.2em plus 0.2em minus 0.1em\relax}
+%<latexrelease> \global\XeTeXinterchartoks 0 1 = {\xtxHanSpace}
+%<latexrelease> \global\XeTeXinterchartoks 0 2 = {\xtxHanSpace}
+%<latexrelease> \global\XeTeXinterchartoks 0 3 = {\nobreak\xtxHanSpace}
+%<latexrelease> \global\XeTeXinterchartoks 1 0 = {\xtxHanSpace}
+%<latexrelease> \global\XeTeXinterchartoks 2 0 = {\nobreak\xtxHanSpace}
+%<latexrelease> \global\XeTeXinterchartoks 3 0 = {\xtxHanSpace}
+%<latexrelease> \global\XeTeXinterchartoks 1 1 = {\xtxHanGlue}
+%<latexrelease> \global\XeTeXinterchartoks 1 2 = {\xtxHanGlue}
+%<latexrelease> \global\XeTeXinterchartoks 1 3 = {\nobreak\xtxHanGlue}
+%<latexrelease> \global\XeTeXinterchartoks 2 1 = {\nobreak\xtxHanGlue}
+%<latexrelease> \global\XeTeXinterchartoks 2 2 = {\nobreak\xtxHanGlue}
+%<latexrelease> \global\XeTeXinterchartoks 2 3 = {\xtxHanGlue}
+%<latexrelease> \global\XeTeXinterchartoks 3 1 = {\xtxHanGlue}
+%<latexrelease> \global\XeTeXinterchartoks 3 2 = {\xtxHanGlue}
+%<latexrelease> \global\XeTeXinterchartoks 3 3 = {\nobreak\xtxHanGlue}
%<latexrelease> \fi
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
@@ -406,10 +408,8 @@
\lccode#1=#1
}
\reserved@a{`\a}{`\z}
-\ifnum\inputlineno=\m@ne\else
- \reserved@a{"A0}{"BC}
- \reserved@a{"E0}{"FF}
-\fi
+\reserved@a{"A0}{"BC}
+\reserved@a{"E0}{"FF}
% \end{macrocode}
% The upper case characters need their |\uccode| and |\lccode| values
% set, and their |\sfcode| set to 999.
@@ -421,10 +421,8 @@
\sfcode#1=999
}
\reserved@a{`\A}{`\Z}
-\ifnum\inputlineno=\m@ne\else
- \reserved@a{"80}{"9C}
- \reserved@a{"C0}{"DF}
-\fi
+\reserved@a{"80}{"9C}
+\reserved@a{"C0}{"DF}
% \end{macrocode}
% Well, it would be nice if that were correct, but unfortunately, the
% Cork encoding contains some odd slots whose uccode or lccode isn't
@@ -434,12 +432,10 @@
\lccode`\^^Y=`\^^Y % dotless i
\uccode`\^^Z=`\J % dotless j, ae in OT1
\lccode`\^^Z=`\^^Z % dotless j, ae in OT1
-\ifnum\inputlineno=\m@ne\else
- \lccode`\^^9d=`\i % dotted I
- \uccode`\^^9d=`\^^9d % dotted I
- \lccode`\^^9e=`\^^9e % d-bar
- \uccode`\^^9e=`\^^d0 % d-bar
-\fi
+\lccode`\^^9d=`\i % dotted I
+\uccode`\^^9d=`\^^9d % dotted I
+\lccode`\^^9e=`\^^9e % d-bar
+\uccode`\^^9e=`\^^d0 % d-bar
% \end{macrocode}
% Finally here is one that helps hyphenation in the OT1 encoding.
% \changes{v1.0z}{1996/10/31}
@@ -601,11 +597,6 @@
\reserved@a{0}{`\^^H}
\reserved@c{`\^^K}
\reserved@a{`\^^N}{31}
-%\ifnum\inputlineno=\m@ne
- \catcode"7F=15
-%\else
-% \reserved@a{"7F}{"FF}
-%\fi
% \end{macrocode}
%
% \subsection{Lccodes and uccodes}
@@ -636,10 +627,8 @@
\lccode#1=#1
}
\reserved@a{`\a}{`\z}
-\ifnum\inputlineno=\m@ne\else
- \reserved@a{"A0}{"BC}
- \reserved@a{"E0}{"FF}
-\fi
+\reserved@a{"A0}{"BC}
+\reserved@a{"E0}{"FF}
% \end{macrocode}
% The upper case characters need their |\uccode| and |\lccode| values
% set, and their |\sfcode| set to 999.
@@ -651,10 +640,8 @@
\sfcode#1=999
}
\reserved@a{`\A}{`\Z}
-\ifnum\inputlineno=\m@ne\else
- \reserved@a{"80}{"9C}
- \reserved@a{"C0}{"DF}
-\fi
+\reserved@a{"80}{"9C}
+\reserved@a{"C0}{"DF}
% \end{macrocode}
% Well, it would be nice if that were correct, but unfortunately, the
% Cork encoding contains some odd slots whose uccode or lccode isn't
@@ -664,12 +651,10 @@
\lccode`\^^Y=`\^^Y % dotless i
\uccode`\^^Z=`\J % dotless j, ae in OT1
\lccode`\^^Z=`\^^Z % dotless j, ae in OT1
-\ifnum\inputlineno=\m@ne\else
- \lccode`\^^9d=`\i % dotted I
- \uccode`\^^9d=`\^^9d % dotted I
- \lccode`\^^9e=`\^^9e % d-bar
- \uccode`\^^9e=`\^^d0 % d-bar
-\fi
+\lccode`\^^9d=`\i % dotted I
+\uccode`\^^9d=`\^^9d % dotted I
+\lccode`\^^9e=`\^^9e % d-bar
+\uccode`\^^9e=`\^^d0 % d-bar
% \end{macrocode}
% Finally here is one that helps hyphenation in the OT1 encoding.
% \changes{v1.0z}{1996/10/31}
@@ -890,4 +875,4 @@
% \end{macrocode}
%
% \Finale
-%
+% \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/base/ltfssbas.dtx b/Master/texmf-dist/source/latex/base/ltfssbas.dtx
index 4733457ae2a..61d487ef5d0 100644
--- a/Master/texmf-dist/source/latex/base/ltfssbas.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfssbas.dtx
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssbas.dtx}
- [2015/04/07 v3.1a LaTeX Kernel (NFSS Basic Macros)]
+ [2017/01/10 v3.2a LaTeX Kernel (NFSS Basic Macros)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -1799,10 +1799,20 @@
% {Use \cs{normalfont} and make colour safe, and autoloadable}
% \changes{v3.0u}{1998/03/25}
% {Suppress unnecessary error when used in preamble}
+% \changes{v3.2a}{2017/01/10}
+% {Add version of \cs{showhyphens} that works with Xe\TeX.}
% The |\showhyphens| command must be redefined since the version in
% \texttt{plain.tex} uses |\tenrm|. We have also made some further
% adjustments for its use in \LaTeX.
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2017/01/01}{\showhyphens}%
+%<latexrelease> {XeTeX support for \showhyphens}%
+%<*2ekernel|latexrelease>
+\ifx\XeTeXcharclass\@undefined
+% \end{macrocode}
+% Version for engines other than Xe\TeX.
+% \begin{macrocode}
\gdef\showhyphens#1{%
\setbox0\vbox{%
\color@begingroup
@@ -1812,6 +1822,95 @@
\pretolerance\m@ne\tolerance\m@ne\hbadness\z@\showboxdepth\z@\ #1%
\color@endgroup}}
% \end{macrocode}
+% \begin{macrocode}
+\else
+% \end{macrocode}
+% Xe\TeX\ version. When using system fonts Xe\TeX\ reports consecutive
+% runs of characters as a single item in box logging, which means the
+% standard |\showhyphens| does not work. This version typesets the
+% text into a narrow box to force hyphenation and then reconstructs a
+% horizontal list with explicit hyphens to generate the display. Note
+% that the |lmr| OpenType font is forced, this works even if the
+% characters are not in the font as hyphenation is attempted due to
+% the width of the space and hyphen character. It may generate
+% spurious Missing Character warnings in the log, these are however
+% suppressed from the terminal output by ensuring that
+% |\tracingonline| is locally zero.
+% \begin{macrocode}
+\long\def\showhyphens#1{%
+ \setbox0\vbox{%
+ \usefont{TU}{lmr}{m}{n}%
+ \hsize 1sp %
+ \hbadness\@M
+ \hfuzz\maxdimen
+ \tracingonline\z@
+ \everypar={}%
+ \leftskip\z@skip
+ \rightskip\z@skip
+ \parfillskip\z@skip
+ \hyphenpenalty=-\@M
+ \pretolerance\m@ne
+ \interlinepenalty\z@
+ \clubpenalty\z@
+ \widowpenalty\z@
+ \brokenpenalty1127 %
+ \setbox\z@\hbox{}%
+ \noindent
+ \hskip\z@skip
+ #1%
+ \par
+% \end{macrocode}
+% Note here we stop the loop if made no progress, non-removable items
+% may mean that we can not process the whole list (which would be
+% testable as |\lastnodetype=-1|).
+% \begin{macrocode}
+ \loop
+ \@tempswafalse
+ \ifnum\lastnodetype=11\unskip\@tempswatrue\fi
+ \ifnum\lastnodetype=12\unkern\@tempswatrue\fi
+ \ifnum\lastnodetype=13 %
+ \count@\lastpenalty
+ \unpenalty\@tempswatrue
+ \fi
+ \ifnum\lastnodetype=\@ne
+ \setbox\tw@\lastbox\@tempswatrue
+ \setbox0\hbox{\unhbox\tw@\unskip\unskip\unpenalty
+ \ifnum\count@=1127 \else\ \fi
+ \unhbox0}%
+ \count@\z@
+ \fi
+ \if@tempswa
+ \repeat
+ \hbadness\z@
+ \hsize\maxdimen
+ \showboxdepth\z@
+ \tolerance\m@ne
+ \hyphenpenalty\z@
+ \noindent\unhbox\z@
+}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}{\showhyphens}%
+%<latexrelease> {XeTeX support for \showhyphens}%
+%<latexrelease>\gdef\showhyphens#1{%
+%<latexrelease> \setbox0\vbox{%
+%<latexrelease> \color@begingroup
+%<latexrelease> \everypar{}%
+%<latexrelease> \parfillskip\z@skip\hsize\maxdimen
+%<latexrelease> \normalfont
+%<latexrelease> \pretolerance\m@ne\tolerance\m@ne
+%<latexrelease> \hbadness\z@\showboxdepth\z@\ #1%
+%<latexrelease> \color@endgroup}}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
% \end{macro}
%
%
diff --git a/Master/texmf-dist/source/latex/base/ltfssdcl.dtx b/Master/texmf-dist/source/latex/base/ltfssdcl.dtx
index e85b435c98c..cfb3f497352 100644
--- a/Master/texmf-dist/source/latex/base/ltfssdcl.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfssdcl.dtx
@@ -1152,7 +1152,8 @@
\advance\count\tw@-\count@
\if\relax\noexpand#1% is command?
\edef\reserved@a
- {\noexpand\in@{\expandafter\@gobble\string\mathchar}{\meaning#1}}%
+ {\noexpand\in@{\expandafter\@gobble\string\mathchar}%
+ {\meaning#1}}%
\reserved@a
\ifin@
\expandafter\set@mathsymbol
diff --git a/Master/texmf-dist/source/latex/base/ltfssini.dtx b/Master/texmf-dist/source/latex/base/ltfssini.dtx
index a4b0bfac34e..17f8a3f71ee 100644
--- a/Master/texmf-dist/source/latex/base/ltfssini.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfssini.dtx
@@ -36,7 +36,7 @@
%
%
\ProvidesFile{ltfssini.dtx}
- [2015/01/09 v3.1a LaTeX Kernel (NFSS Initialisation)]
+ [2016/10/15 v3.1b LaTeX Kernel (NFSS Initialisation)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -78,7 +78,8 @@
% {(DPC) Fix documentation typos}
% \changes{v3.0a}{1995/05/24}
% {(DPC) Make file from previous file, lfonts.dtx 1995/05/23 v2.2e}
-%
+% \changes{v3.1b}{2016/10/15}
+% {Require e\TeX{}}
%
%
% \section{NFSS Initialisation}
@@ -501,33 +502,6 @@
% \changes{v3.0h}{1996/12/06}
% {(DPC) Remove *** from messages internal/2338}
% \begin{macrocode}
-\ifnum\inputlineno=\m@ne
-% \end{macrocode}
-% Still using \TeX2. need a configuration file to avoid setting the 8bit
-% characters.
-% \begin{macrocode}
-\InputIfFileExists{fonttext.cfg}
- {\typeout{====================================^^J%
- ^^J%
- Local config file fonttext.cfg used^^J%
- ^^J%
- ====================================}%
- \def\@addtofilelist##1{\xdef\@filelist{\@filelist,##1}}%
- }
- {\typeout{!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
- !^^J%
- ! You MUST use a fonttext.cfg file!^^J%
- ! As you are still using TeX2!!!!!^^J%
- !^^J%
- ! See the documentation file tex2.txt^^J%
- !^^J%
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!}%
- \batchmode \@@end}
-\else
-% \end{macrocode}
-% With \TeX3 can use the standard |ltx| file if no configuration file
-% exists.
-% \begin{macrocode}
\InputIfFileExists{fonttext.cfg}
{\typeout{====================================^^J%
^^J%
@@ -537,7 +511,6 @@
\def\@addtofilelist##1{\xdef\@filelist{\@filelist,##1}}%
}
{\input{fonttext.ltx}}
-\fi
\let\@addtofilelist\@gobble
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/base/ltluatex.dtx b/Master/texmf-dist/source/latex/base/ltluatex.dtx
index c8a432f08ec..e5f507258f3 100644
--- a/Master/texmf-dist/source/latex/base/ltluatex.dtx
+++ b/Master/texmf-dist/source/latex/base/ltluatex.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 2015 2016
+% Copyright 2015 2017
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -24,7 +24,7 @@
\ProvidesFile{ltluatex.dtx}
%</driver>
%<*tex>
-[2016/03/13 v1.0n
+[2017/01/20 v1.1b
%</tex>
%<plain> LuaTeX support for plain TeX (core)
%<*tex>
@@ -802,6 +802,46 @@
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
%
+% In \verb|\everyjob|, if luaotfload is available, load it and switch to TU.
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2017/01/01}%
+%<latexrelease> {\fontencoding}{TU in everyjob}%
+%<latexrelease>\fontencoding{TU}\let\encodingdefault\f@encoding
+%<latexrelease>\ifx\directlua\@undefined\else
+%<2ekernel>\everyjob\expandafter{%
+%<2ekernel> \the\everyjob
+%<*2ekernel,latexrelease>
+ \directlua{%
+%% Horrible hack, locally reset the luatex version number
+%% This is not required for the source version of luaotfload
+%% but is required due to an error in the version check in the
+%% public version (January 2017)
+%% https://github.com/lualatex/luaotfload/issues/387
+%% It is expected that this will be removed before TeXLive 2017
+ local tmp_version=tex.luatexversion %
+ tex.luatexversion=199 %
+ if xpcall(function ()%
+ require('luaotfload-main')%
+ end,texio.write_nl) then %
+ local _void = luaotfload.main ()%
+ else %
+ texio.write_nl('Error in luaotfload: reverting to OT1')%
+ tex.print('\string\\def\string\\encodingdefault{OT1}')%
+ end %
+ tex.luatexversion=tmp_version%
+ }%
+ \let\f@encoding\encodingdefault
+ \expandafter\let\csname ver@luaotfload.sty\endcsname\fmtversion
+%</2ekernel,latexrelease>
+%<latexrelease>\fi
+%<2ekernel> }
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\fontencoding}{TU in everyjob}%
+%<latexrelease>\fontencoding{OT1}\let\encodingdefault\f@encoding
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
% \begin{macrocode}
%<2ekernel|latexrelease>\fi
%</2ekernel|tex|latexrelease>
@@ -1161,7 +1201,7 @@ local types = {
% \end{macrocode}
%
% Now, list all predefined callbacks with their current type, based on the
-% Lua\TeX{} manual version~0.80. A full list of the currently-available
+% Lua\TeX{} manual version~1.01. A full list of the currently-available
% callbacks can be obtained using
% \begin{verbatim}
% \directlua{
@@ -1176,7 +1216,7 @@ local types = {
% \begin{macrocode}
local callbacktypes = callbacktypes or {
% \end{macrocode}
-% Section 4.1.1: file discovery callbacks.
+% Section 8.2: file discovery callbacks.
% \begin{macrocode}
find_read_file = exclusive,
find_write_file = exclusive,
@@ -1194,7 +1234,7 @@ local callbacktypes = callbacktypes or {
find_type1_file = data,
find_image_file = data,
% \end{macrocode}
-% Section 4.1.2: file reading callbacks.
+%
% \begin{macrocode}
open_read_file = exclusive,
read_font_file = exclusive,
@@ -1215,14 +1255,14 @@ local callbacktypes = callbacktypes or {
find_cidmap_file = data,
read_cidmap_file = exclusive,
% \end{macrocode}
-% Section 4.1.3: data processing callbacks.
+% Section 8.3: data processing callbacks.
% \changes{v1.0m}{2016/02/11}{token\_filter removed}
% \begin{macrocode}
process_input_buffer = data,
process_output_buffer = data,
process_jobname = data,
% \end{macrocode}
-% Section 4.1.4: node list processing callbacks.
+% Section 8.4: node list processing callbacks.
% \changes{v1.0m}{2016/02/11}
% {process\_rule, [hv]pack\_quality append\_to\_vlist\_filter added}
% \changes{v1.0n}{2016/03/13}{insert\_local\_par added}
@@ -1230,6 +1270,7 @@ local callbacktypes = callbacktypes or {
% \begin{macrocode}
contribute_filter = simple,
buildpage_filter = simple,
+ build_page_insert = exclusive,
pre_linebreak_filter = list,
linebreak_filter = list,
append_to_vlist_filter = list,
@@ -1246,8 +1287,9 @@ local callbacktypes = callbacktypes or {
insert_local_par = simple,
mlist_to_hlist = list,
% \end{macrocode}
-% Section 4.1.5: information reporting callbacks.
+% Section 8.5: information reporting callbacks.
% \changes{v1.0m}{2016/02/11}{show\_warning\_message added}
+% \changes{v1.0p}{2016/11/17}{call\_edit added}
% \begin{macrocode}
pre_dump = simple,
start_run = simple,
@@ -1260,13 +1302,14 @@ local callbacktypes = callbacktypes or {
show_lua_error_hook = simple,
start_file = simple,
stop_file = simple,
+ call_edit = simple,
% \end{macrocode}
-% Section 4.1.6: PDF-related callbacks.
+% Section 8.6: PDF-related callbacks.
% \begin{macrocode}
finish_pdffile = data,
finish_pdfpage = data,
% \end{macrocode}
-% Section 4.1.7: font-related callbacks.
+% Section 8.7: font-related callbacks.
% \begin{macrocode}
define_font = exclusive,
% \end{macrocode}
@@ -1301,6 +1344,33 @@ end
% More precisely, the functions below are used to generate a specialized
% function (closure) for a given callback, which is the actual handler.
%
+%
+% The way the functions are combined together depends on
+% the type of the callback. There are currently 4 types of callback, depending
+% on the calling convention of the functions the callback can hold:
+% \begin{description}
+% \item[simple] is for functions that don't return anything: they are called
+% in order, all with the same argument;
+% \item[data] is for functions receiving a piece of data of any type
+% except node list head (and possibly other arguments) and returning it
+% (possibly modified): the functions are called in order, and each is
+% passed the return value of the previous (and the other arguments
+% untouched, if any). The return value is that of the last function;
+% \item[list] is a specialized variant of \emph{data} for functions
+% filtering node lists. Such functions may return either the head of a
+% modified node list, or the boolean values |true| or |false|. The
+% functions are chained the same way as for \emph{data} except that for
+% the following. If
+% one function returns |false|, then |false| is immediately returned and
+% the following functions are \emph{not} called. If one function returns
+% |true|, then the same head is passed to the next function. If all
+% functions return |true|, then |true| is returned, otherwise the return
+% value of the last function not returning |true| is used.
+% \item[exclusive] is for functions with more complex signatures; functions in
+% this type of callback are \emph{not} combined: An error is raised if
+% a second callback is registered..
+% \end{description}
+%
% Handler for |data| callbacks.
% \begin{macrocode}
local function data_handler(name)
@@ -1393,7 +1463,7 @@ local function create_callback(name, ctype, default)
end
if callbacktypes[name] then
luatexbase_error("Unable to create callback `" .. name ..
- "':\ncallback type disallowed as name")
+ "':\ncallback is already defined")
end
if default ~= false and type (default) ~= "function" then
luatexbase_error("Unable to create callback `" .. name ..
diff --git a/Master/texmf-dist/source/latex/base/ltmath.dtx b/Master/texmf-dist/source/latex/base/ltmath.dtx
index ae6d19ae37b..f0080e38568 100644
--- a/Master/texmf-dist/source/latex/base/ltmath.dtx
+++ b/Master/texmf-dist/source/latex/base/ltmath.dtx
@@ -31,14 +31,14 @@
%
%<leqno>\ProvidesFile{leqno.clo}
%<fleqn>\ProvidesFile{fleqn.clo}
-%<leqno,fleqn> [2015/03/31 v1.1i Standard LaTeX option
+%<leqno,fleqn> [2016/12/29 v1.2a Standard LaTeX option
%<leqno> (left equation numbers)]
%<fleqn> (flush left equations)]
%
%<*driver>
% \fi
\ProvidesFile{ltmath.dtx}
- [2015/03/11 v1.1i LaTeX Kernel (Math Setup)]
+ [2016/12/29 v1.2a LaTeX Kernel (Math Setup)]
% \iffalse
%</driver>
%
@@ -537,8 +537,10 @@
%<latexrelease>\IncludeInRelease{0000/00/00}{\(}{Make \( robust}%
%<latexrelease>\def\({%
%<latexrelease> \relax\ifmmode\@badmath\else$\fi}%
+%<latexrelease>\expandafter\let\csname\string( \endcsname\@undefined
%<latexrelease>\def\){%
%<latexrelease> \relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi}%
+%<latexrelease>\expandafter\let\csname\string) \endcsname\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
@@ -600,6 +602,7 @@
%<latexrelease> $$%%$$ BRACE MATCH HACK
%<latexrelease> \fi
%<latexrelease>}%
+%<latexrelease>\expandafter\let\csname\string[ \endcsname\@undefined
% \end{macrocode}
%
% \begin{macrocode}
@@ -615,6 +618,7 @@
%<latexrelease> \fi
%<latexrelease> \ignorespaces
%<latexrelease>}%
+%<latexrelease>\expandafter\let\csname\string] \endcsname\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/ltnews26.tex b/Master/texmf-dist/source/latex/base/ltnews26.tex
new file mode 100644
index 00000000000..3213303ad2e
--- /dev/null
+++ b/Master/texmf-dist/source/latex/base/ltnews26.tex
@@ -0,0 +1,239 @@
+% \iffalse meta-comment
+%
+% Copyright 2016
+% 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: ltnews26.tex
+%
+% This is issue 26 of LaTeX News.
+
+\documentclass{ltnews}
+\usepackage[T1]{fontenc}
+
+\usepackage{lmodern,url,hologo}
+
+\publicationmonth{January}
+\publicationyear{2017}
+
+\publicationissue{26}
+
+\begin{document}
+
+\maketitle
+\tableofcontents
+
+\setlength\rightskip{0pt plus 3em}
+\section{\eTeX{}}
+
+In \LaTeX{} News~16 (December 2003) the team announced
+\begin{quotation}
+We expect that within the next two years, releases of \LaTeX{} will
+change modestly in order to run best under an extended \TeX{} engine
+that contains the \eTeX{} primitives, e.g., \eTeX{} or pdf\TeX{}.
+\end{quotation}
+and also said
+\begin{quotation}
+Although the current release does not \emph{require} \eTeX{} features, we
+certainly recommend using an extended \TeX{}, especially if you need to debug
+macros.
+\end{quotation}
+
+For many years the team have worked on the basis that users will have \eTeX{}
+available but had not revisited the above statements formally. As of the
+January 2017 release of \LaTeXe{}, \eTeX{} is \emph{required} to build the
+format, and attempting to build a format without the extensions will fail.
+
+Practically, modern \TeX{} distributions provide the extensions in all engines
+other than the ``pure'' Knuth \texttt{tex}, and indeed parts of the
+format-building process already require \eTeX{}, most notably some of the UTF-8
+hyphenation patterns. As such, there should be no noticeable effect on users of
+this change.
+
+The team expect to make wider use of \eTeX{} within the kernel in future;
+details will be announced where they impact on end users in a visible way.
+
+\section{Default Encodings in \hologo{XeLaTeX} and \hologo{LuaLaTeX}}
+The default encoding in \LaTeX\ has always been the original
+128-character encoding \texttt{OT1}. For Unicode based \TeX\ engines, this
+is not really suitable, and is especially problematic with
+\hologo{XeLaTeX} as in the major distributions this is built with
+Unicode based hyphenation patterns in the format. In practice this has
+not been a major problem as documents use the contributed
+\textsf{fontspec} package in order to switch to a
+Unicode encoded font.
+
+In this release we are adding \texttt{TU} as a new supported
+encoding in addition to the previously supported encodings such as \texttt{OT1}
+and \texttt{T1}. This denotes a Unicode based font encoding. It is essentially
+the same as the \texttt{TU} encoding that has been on trial with the
+experimental \texttt{tuenc} option to \textsf{fontspec} for the past
+year.
+
+The \hologo{XeLaTeX} and \hologo{LuaLaTeX} formats will now default
+to \texttt{TU} encoding and \texttt{lmr} (Latin Modern) family. In the
+case of \hologo{LuaLaTeX} the contributed \textsf{luaotfload} Lua
+module will be loaded at the start of each run to enable the loading
+of OpenType fonts.
+
+The \textsf{fontspec} package is being adjusted in a companion release
+to recognise the new encoding default arrangements.
+
+Note that in practice no font supports the full Unicode range, and so
+\texttt{TU} encoded fonts, unlike fonts specified for \texttt{T1}, may be
+expected to be incomplete in various ways. In the current release the file
+\texttt{tuenc.def} that implements the \texttt{TU} encoding-specific commands
+has made some basic assumptions for (for example) default handling of
+accent commands, and the set of command names is derived from the
+command names used for the UTF-8 support in the \textsf{inputenc} package,
+restricted roughly to the character ranges classically provided by
+the \texttt{T1} and \texttt{TS1} encodings, but is part of a longer term plan
+seen over recent releases to increase support for Unicode based \TeX\ engines
+into the core \LaTeX\ support.
+
+
+
+If for any reason you need to process a document with the previous
+default \texttt{OT1} encoding, you may switch encoding in the usual ways, for
+example
+\begin{verbatim}
+\usepackage[OT1]{fontenc}
+\end{verbatim}
+or you may roll back all the changes for this release by starting the
+document with
+\begin{verbatim}
+\RequirePackage[2016/12/31]{latexrelease}
+\end{verbatim}
+
+\section{\cs{showhyphens} in \hologo{XeLaTeX}}
+Due to the way \hologo{XeLaTeX} interfaces to font libraries, the
+standard definition of \cs{showhyphens} does not work. A variant
+definition has been available in the contributed \textsf{xltxtra}
+package, however a (slightly different) definition for \cs{showhyphens}
+is now included in \hologo{XeLaTeX} by default. As usual
+this change will be undone if an earlier
+release is specified using the \textsf{latexrelease} package.
+
+\section{The \textsf{fixltx2e} Package}
+As described in \LaTeX{} News~22, the \textsf{fixltx2e} package has become
+obsolete with the new update policy. Since 2015 it has just made a
+warning and exited. In this release we have re-introduced all
+the code from the original fixes in the 2014 \LaTeX\ but guarded by
+\verb|\IncludeInRelease{2015/01/01}|.
+So for current releases \textsf{fixltx2e} still just makes a warning
+but for old releases, whether that is an old format, or a format with
+the version date reset via the \textsf{latexrelease} package, the
+fixes in the original \textsf{fixltx2e} will be applied.
+
+This improves the ability to run old documents in a way compatible
+with contemporary formats. If you have a 2014 document that used
+\verb|\usepackage{fixltx2e}| and you add
+\verb|\RequirePackage[2014/01/01]{latexrelease}| and process it with the
+current format then \textsf{latexrelease} will undo most changes made
+since 2014, but now when the document includes \textsf{fixltx2e} it
+will act like a 2014 version of the package and apply the code fixes,
+not just give a warning that the package is obsolete.
+
+\section{The \textsf{latexbug} package}
+
+As explained in more detail
+at the \LaTeX\ Project
+ website\footnote{\url{https://www.latex-project.org/bugs/}}
+a new package, \textsf{latexbug}, has been produced to help produce
+test files to accompany bug reports on the core \LaTeX\ distribution.
+This is being published separately to CTAN at the same time as this
+release. By using the \textsf{latexbug} package you can easily check
+that the packages involved in the test are all part of the core
+release. The \LaTeX\ project can not handle bug reports on contributed
+packages, which should be directed to the package maintainer as given
+in the package documentation.
+
+\section{Updates to \textsf{amsmath}}
+The \textsf{amsmath} package has two updates at this release.
+\begin{itemize}
+\item The spacing to the left of the \texttt{aligned} and
+ \texttt{gathered} environments has been fixed: the spurious thin
+ space is no longer added by default. Package options control this
+ to revert to the original behaviour where required; see the
+ \textsf{amsldoc} guide for further details.
+\item The large delimiters around generalised fractions (for example
+ in the \cs{binom} construct) did not work in previous releases if
+ using \hologo{LuaTeX} or \hologo{XeTeX} with OpenType math fonts. This is
+ related to the lack of specific metrics for this use in the OpenType Math
+ table. In principle \hologo{LuaTeX} has two additional named metrics
+ to control the delimiters but these are not initialised by default,
+ and in \hologo{XeTeX} it does not seem possible to make them work at all.
+ So for Unicode \TeX\ systems, a new implementation of
+ \cs{genfrac} is used at this release that uses \verb|\left\right|
+ internally but parameterised to give spacing as close to the
+ original as possible. The implementation in (pdf)\TeX\ is
+ unaffected.
+\end{itemize}
+
+\section{Updates to \textsf{tools}}
+The \textsf{array} package has been updated to fix a longstanding but
+previously unreported issue with unwanted interactions between tables
+in the page head or foot and the body of the page, as reported in
+\href{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=tools/4488}{PR
+ tools/4488}.
+There is also an update to the \hologo{LuaTeX} support in \textsf{bm}.
+
+\section{An addendum to the release changes in 2015}
+
+In 2015 we announced the introduction of the roll-back\slash
+roll-forward concept to manage bug fixes and additions to core
+\LaTeX{} in a manageable way. We also announced at that time
+that we now incorporate all fixes from \textsf{fixltx2e} into the
+kernel (as the old mechanism produced problems instead of improving
+the situation). Refer to
+\href{https://www.latex-project.org/news/latex2e-news/ltnews22.pdf}{\texttt{ltnews22.pdf}}
+for details.
+
+One of the fixes from \textsf{fixltx2e} was for a glaring bug in
+\cs{addvspace} that was originally detected in the mid-nineties and
+back then added to the \textsf{fixltx2e} support package. In certain
+situations \cs{addvspace} would result in a page/column break below
+the baseline of the last line. As a result documents using
+\cs{flushbottom} would show a clear misalignment (even more prominent
+when typesetting in two-column mode).
+
+Starting with release 2015/01/01 this is now finally corrected already
+in the kernel and not only in \textsf{fixltx2e}. In nearly all
+circumstances this will either make no difference to existing
+documents, or it will locally improve the visual appearence of that
+document without changing anything on other pages. However, by the
+nature of the change it is also possible that there are further
+non-local changes to the page breaks due to the different break
+positions introduced by the fix.
+
+Thus, for documents that have been written before 2015 and that should
+be preserved unchanged at all costs you may have to add
+\begin{verbatim}
+\RequirePackage[2014/01/01]{latexrelease}
+\end{verbatim}
+at the top of the document, to roll back the format to a date before
+the policy change.
+
+\end{document}
diff --git a/Master/texmf-dist/source/latex/base/ltoutenc.dtx b/Master/texmf-dist/source/latex/base/ltoutenc.dtx
index c96b2578937..9d91b47cc5a 100644
--- a/Master/texmf-dist/source/latex/base/ltoutenc.dtx
+++ b/Master/texmf-dist/source/latex/base/ltoutenc.dtx
@@ -35,16 +35,17 @@
%<OML>\ProvidesFile{omlenc.def}
%<OT4>\ProvidesFile{ot4enc.def}
%<TS1>\ProvidesFile{ts1enc.def}[2001/06/05 v3.0e (jk/car/fm)
+%<TU>\ProvidesFile{tuenc.def}
%<package>\ProvidesPackage{fontenc}
%<TS1sty>\ProvidesPackage{textcomp}
-%<OT1|T1|OMS|OML|OT4|package|TS1sty> [2016/06/19 v1.99m
-%<OT1|T1|OMS|OML|OT4|TS1> Standard LaTeX file]
+%<OT1|T1|OMS|OML|OT4|TU|package|TS1sty> [2016/12/11 v2.0a
+%<OT1|T1|OMS|OML|OT4|TS1|TU> Standard LaTeX file]
%<package|TS1sty> Standard LaTeX package]
%
%<*driver>
% \fi
\ProvidesFile{ltoutenc.dtx}
- [2016/06/19 v1.99m LaTeX Kernel (font encodings)]
+ [2016/12/11 v2.0a LaTeX Kernel (font encodings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutenc.dtx}
@@ -498,6 +499,8 @@
% the OT1 encoding, created by B.~Jackowski and
% M.~Ry\'cko for use with the Polish version of
% Computer Modern and Computer Concrete.\\
+% |TU| & generates |tuenc.def| for Unicode font
+% encoding. \\
% |package| & generates |fontenc.sty| for
% selecting encodings. \\
% |2ekernel| & for the kernel commands.\\
@@ -1090,7 +1093,7 @@
%
%
% \begin{macro}{\UndeclareTextCommand}
-% This command safely removes and encoding specific declaration
+% This command safely removes an encoding specific declaration
% for a given encoding. It is helpful if one intends to use the
% default definition always and therefore wants to get rid of
% a declaration for some specific encoding.
@@ -1457,7 +1460,7 @@
\let\ldots\dots
% \end{macrocode}
% \changes{v1.99m}{2015/02/16}{Added \cs{textcommabelow} latex/4414}
-% Default definition of comma below.
+% Default definition of the commabelow accent.
% \begin{macrocode}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2015/10/01}{\textcommabelow}{comma accent}%
@@ -1470,20 +1473,29 @@
%</2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{0000/00/00}{\textcommabelow}{comma accent}%
%<latexrelease>\let\textcommabelow\@undefined
-%<latexrelease>\expandafter\let\csname\string\T1\string\c-G\endcsname\@undefined
-%<latexrelease>\expandafter\let\csname\string\T1\string\c-K\endcsname\@undefined
-%<latexrelease>\expandafter\let\csname\string\T1\string\c-k\endcsname\@undefined
-%<latexrelease>\expandafter\let\csname\string\T1\string\c-L\endcsname\@undefined
-%<latexrelease>\expandafter\let\csname\string\T1\string\c-l\endcsname\@undefined
-%<latexrelease>\expandafter\let\csname\string\T1\string\c-N\endcsname\@undefined
-%<latexrelease>\expandafter\let\csname\string\T1\string\c-n\endcsname\@undefined
-%<latexrelease>\expandafter\let\csname\string\T1\string\c-R\endcsname\@undefined
-%<latexrelease>\expandafter\let\csname\string\T1\string\c-r\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\T1\string\c-G\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\T1\string\c-K\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\T1\string\c-k\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\T1\string\c-L\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\T1\string\c-l\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\T1\string\c-N\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\T1\string\c-n\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\T1\string\c-R\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\T1\string\c-r\endcsname\@undefined
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
%
% \changes{v1.99n}{2015/02/16}{Added \cs{textcommaabove}}
-% Default definition of comma above (E.G.).
+% Default definition of the commaabove accent(E.G.).
% \begin{macrocode}
%<latexrelease>\IncludeInRelease{2016/02/01}{\textcommaabove}{comma above}%
%<*2ekernel|latexrelease>
@@ -1503,8 +1515,10 @@
%</2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{0000/00/00}{\textcommaabove}{comma above}%
%<latexrelease>\let\textcommaabove\@undefined
-%<latexrelease>\expandafter\let\csname\string\OT1\string\c-g\endcsname\@undefined
-%<latexrelease>\expandafter\let\csname\string\T1\string\c-g\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\OT1\string\c-g\endcsname\@undefined
+%<latexrelease>\expandafter
+%<latexrelease> \let\csname\string\T1\string\c-g\endcsname\@undefined
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
%
@@ -2623,6 +2637,440 @@
%</TS1>
% \end{macrocode}
%
+% \subsection{Definitions for the TU encoding}
+%
+% \changes{v2.0a}{2016/12/11/04}{Added TU encoding}
+%
+% The TU encoding was originally introduced in the contributed
+% package \texttt{fontspec} as a Unicode encoding for XeTeX and
+% LuaTeX.
+%
+% Normally for these engines, the input consists of Unicode characters
+% encoded in UTF-8. There is therefore little need to use the
+% traditional (ASCII) encoding-specific commands
+%
+% However, sometimes (e.g. for backwards compatibility) it can be
+% useful to access these Unicode characters via such ASCII-based
+% markup. The commands provided here
+% Cover the characters in the T1 and TS1 encodings, but specified in
+% Unicode position. Almost all the command names have been
+% mechanically extracted form the \texttt{inputenc} UTF-8 support,
+% which is essentially doing a reverse mapping from UTF-8 data to
+% \LaTeX\ LICR commands.
+%
+% A few additional names for character which were supported in the
+% original \texttt{fontspec} version of this file have also been
+% added, even though they are not currently in the default
+% \texttt{inputenc} UTF-8 declarations.
+%
+% \begin{macrocode}
+%<*TU>
+% \end{macrocode}
+% In the base interface the Unicode encoding is always known as TU
+% But we parameterise the encoding name to allow for modelling
+% differences in Unicode support by different fonts.
+% \begin{macrocode}
+\providecommand\UnicodeEncodingName{TU}
+% \end{macrocode}
+% As the Unicode encoding, TU, is only currently available with XeTeX
+% or LuaTeX, we detect these engines first, and make adjustments for the
+% differing font loading syntax. For other engines, we issue a warning
+% then abort this file, switching back to T1 encoding.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname XeTeXrevision\endcsname\relax
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname directlua\endcsname\relax
+% \end{macrocode}
+%
+% Not LuaTeX or XeTeX, abort with a warning.
+% \begin{macrocode}
+ \PackageWarningNoLine{fontenc}
+ {\UnicodeEncodingName\space
+ encoding is only available with XeTeX and LuaTeX.\MessageBreak
+ Defaulting to T1 encoding}
+ \def\encodingdefault{T1}
+ \expandafter\expandafter\expandafter\endinput
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \else
+% \end{macrocode}
+%
+% LuaTeX.
+% \begin{macrocode}
+ \def\UnicodeFontTeXLigatures{mapping=tex-text;}
+ \fi
+\else
+% \end{macrocode}
+%
+% XeTeX
+% \begin{macrocode}
+ \def\UnicodeFontTeXLigatures{+tlig;} % "+trep;" no longer needed
+% \end{macrocode}
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\UnicodeFontFile#1#2{"[#1]:#2"}
+\def\UnicodeFontName#1#2{"#1:#2"}
+% \end{macrocode}
+%
+% Declare the encoding
+% \begin{macrocode}
+\DeclareFontEncoding\UnicodeEncodingName{}{}
+% \end{macrocode}
+%
+% Declare accent command to use a postpended combining character
+% rather than the TeX |\accent| primitive
+% \begin{macrocode}
+\def\add@unicode@accent#1#2{#2\char#1\relax}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\DeclareUnicodeAccent#1#2#3{%
+ \DeclareTextCommand{#1}{#2}{\add@unicode@accent{#3}}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareTextSymbol{\textexclamdown} \UnicodeEncodingName{"00A1}
+\DeclareTextSymbol{\textcent} \UnicodeEncodingName{"00A2}
+\DeclareTextSymbol{\textsterling} \UnicodeEncodingName{"00A3}
+\DeclareTextSymbol{\textcurrency} \UnicodeEncodingName{"00A4}
+\DeclareTextSymbol{\textyen} \UnicodeEncodingName{"00A5}
+\DeclareTextSymbol{\textbrokenbar} \UnicodeEncodingName{"00A6}
+\DeclareTextSymbol{\textsection} \UnicodeEncodingName{"00A7}
+\DeclareTextSymbol{\textasciidieresis} \UnicodeEncodingName{"00A8}
+\DeclareTextSymbol{\textcopyright} \UnicodeEncodingName{"00A9}
+\DeclareTextSymbol{\textordfeminine} \UnicodeEncodingName{"00AA}
+\DeclareTextSymbol{\guillemotleft} \UnicodeEncodingName{"00AB}
+\DeclareTextSymbol{\textlnot} \UnicodeEncodingName{"00AC}
+\DeclareTextSymbol{\textregistered} \UnicodeEncodingName{"00AE}
+\DeclareTextSymbol{\textasciimacron} \UnicodeEncodingName{"00AF}
+\DeclareTextSymbol{\textdegree} \UnicodeEncodingName{"00B0}
+\DeclareTextSymbol{\textpm} \UnicodeEncodingName{"00B1}
+\DeclareTextSymbol{\texttwosuperior} \UnicodeEncodingName{"00B2}
+\DeclareTextSymbol{\textthreesuperior} \UnicodeEncodingName{"00B3}
+\DeclareTextSymbol{\textasciiacute} \UnicodeEncodingName{"00B4}
+\DeclareTextSymbol{\textmu} \UnicodeEncodingName{"00B5}
+\DeclareTextSymbol{\textparagraph} \UnicodeEncodingName{"00B6}
+\DeclareTextSymbol{\textperiodcentered} \UnicodeEncodingName{"00B7}
+\DeclareTextSymbol{\textonesuperior} \UnicodeEncodingName{"00B9}
+\DeclareTextSymbol{\textordmasculine} \UnicodeEncodingName{"00BA}
+\DeclareTextSymbol{\guillemotright} \UnicodeEncodingName{"00BB}
+\DeclareTextSymbol{\textonequarter} \UnicodeEncodingName{"00BC}
+\DeclareTextSymbol{\textonehalf} \UnicodeEncodingName{"00BD}
+\DeclareTextSymbol{\textthreequarters} \UnicodeEncodingName{"00BE}
+\DeclareTextSymbol{\textquestiondown} \UnicodeEncodingName{"00BF}
+\DeclareTextSymbol{\AE} \UnicodeEncodingName{"00C6}
+\DeclareTextSymbol{\DH} \UnicodeEncodingName{"00D0}
+\DeclareTextSymbol{\texttimes} \UnicodeEncodingName{"00D7}
+\DeclareTextSymbol{\O} \UnicodeEncodingName{"00D8}
+\DeclareTextSymbol{\TH} \UnicodeEncodingName{"00DE}
+\DeclareTextSymbol{\ss} \UnicodeEncodingName{"00DF}
+\DeclareTextSymbol{\ae} \UnicodeEncodingName{"00E6}
+\DeclareTextSymbol{\dh} \UnicodeEncodingName{"00F0}
+\DeclareTextSymbol{\textdiv} \UnicodeEncodingName{"00F7}
+\DeclareTextSymbol{\o} \UnicodeEncodingName{"00F8}
+\DeclareTextSymbol{\th} \UnicodeEncodingName{"00FE}
+\DeclareTextSymbol{\DJ} \UnicodeEncodingName{"0110}
+\DeclareTextSymbol{\dj} \UnicodeEncodingName{"0111}
+\DeclareTextSymbol{\i} \UnicodeEncodingName{"0131}
+\DeclareTextSymbol{\IJ} \UnicodeEncodingName{"0132}
+\DeclareTextSymbol{\ij} \UnicodeEncodingName{"0133}
+\DeclareTextSymbol{\L} \UnicodeEncodingName{"0141}
+\DeclareTextSymbol{\l} \UnicodeEncodingName{"0142}
+\DeclareTextSymbol{\NG} \UnicodeEncodingName{"014A}
+\DeclareTextSymbol{\ng} \UnicodeEncodingName{"014B}
+\DeclareTextSymbol{\OE} \UnicodeEncodingName{"0152}
+\DeclareTextSymbol{\oe} \UnicodeEncodingName{"0153}
+\DeclareTextSymbol{\textflorin} \UnicodeEncodingName{"0192}
+\DeclareTextSymbol{\j} \UnicodeEncodingName{"0237}
+\DeclareTextSymbol{\textasciicircum} \UnicodeEncodingName{"02C6}
+\DeclareTextSymbol{\textasciicaron} \UnicodeEncodingName{"02C7}
+\DeclareTextSymbol{\textasciitilde} \UnicodeEncodingName{"02DC}
+\DeclareTextSymbol{\textasciibreve} \UnicodeEncodingName{"02D8}
+\DeclareTextSymbol{\textacutedbl} \UnicodeEncodingName{"02DD}
+\DeclareTextSymbol{\textgravedbl} \UnicodeEncodingName{"02F5}
+\DeclareTextSymbol{\texttildelow} \UnicodeEncodingName{"02F7}
+\DeclareTextSymbol{\textbaht} \UnicodeEncodingName{"0E3F}
+\DeclareTextSymbol{\SS} \UnicodeEncodingName{"1E9E}
+\DeclareTextSymbol{\textcompwordmark} \UnicodeEncodingName{"200C}
+\DeclareTextSymbol{\textendash} \UnicodeEncodingName{"2013}
+\DeclareTextSymbol{\textemdash} \UnicodeEncodingName{"2014}
+\DeclareTextSymbol{\textbardbl} \UnicodeEncodingName{"2016}
+\DeclareTextSymbol{\textquoteleft} \UnicodeEncodingName{"2018}
+\DeclareTextSymbol{\textquoteright} \UnicodeEncodingName{"2019}
+\DeclareTextSymbol{\quotesinglbase} \UnicodeEncodingName{"201A}
+\DeclareTextSymbol{\textquotedblleft} \UnicodeEncodingName{"201C}
+\DeclareTextSymbol{\textquotedblright} \UnicodeEncodingName{"201D}
+\DeclareTextSymbol{\quotedblbase} \UnicodeEncodingName{"201E}
+\DeclareTextSymbol{\textdagger} \UnicodeEncodingName{"2020}
+\DeclareTextSymbol{\textdaggerdbl} \UnicodeEncodingName{"2021}
+\DeclareTextSymbol{\textbullet} \UnicodeEncodingName{"2022}
+\DeclareTextSymbol{\textellipsis} \UnicodeEncodingName{"2026}
+\DeclareTextSymbol{\textperthousand} \UnicodeEncodingName{"2030}
+\DeclareTextSymbol{\textpertenthousand} \UnicodeEncodingName{"2031}
+\DeclareTextSymbol{\guilsinglleft} \UnicodeEncodingName{"2039}
+\DeclareTextSymbol{\guilsinglright} \UnicodeEncodingName{"203A}
+\DeclareTextSymbol{\textreferencemark} \UnicodeEncodingName{"203B}
+\DeclareTextSymbol{\textinterrobang} \UnicodeEncodingName{"203D}
+\DeclareTextSymbol{\textfractionsolidus} \UnicodeEncodingName{"2044}
+\DeclareTextSymbol{\textlquill} \UnicodeEncodingName{"2045}
+\DeclareTextSymbol{\textrquill} \UnicodeEncodingName{"2046}
+\DeclareTextSymbol{\textasteriskcentered}\UnicodeEncodingName{"204E}
+\DeclareTextSymbol{\textdiscount} \UnicodeEncodingName{"2052}
+\DeclareTextSymbol{\textcolonmonetary} \UnicodeEncodingName{"20A1}
+\DeclareTextSymbol{\textlira} \UnicodeEncodingName{"20A4}
+\DeclareTextSymbol{\textnaira} \UnicodeEncodingName{"20A6}
+\DeclareTextSymbol{\textwon} \UnicodeEncodingName{"20A9}
+\DeclareTextSymbol{\textdong} \UnicodeEncodingName{"20AB}
+\DeclareTextSymbol{\texteuro} \UnicodeEncodingName{"20AC}
+\DeclareTextSymbol{\textpeso} \UnicodeEncodingName{"20B1}
+\DeclareTextSymbol{\textcelsius} \UnicodeEncodingName{"2103}
+\DeclareTextSymbol{\textnumero} \UnicodeEncodingName{"2116}
+\DeclareTextSymbol{\textcircledP} \UnicodeEncodingName{"2117}
+\DeclareTextSymbol{\textrecipe} \UnicodeEncodingName{"211E}
+\DeclareTextSymbol{\textservicemark} \UnicodeEncodingName{"2120}
+\DeclareTextSymbol{\texttrademark} \UnicodeEncodingName{"2122}
+\DeclareTextSymbol{\textohm} \UnicodeEncodingName{"2126}
+\DeclareTextSymbol{\textmho} \UnicodeEncodingName{"2127}
+\DeclareTextSymbol{\textestimated} \UnicodeEncodingName{"212E}
+\DeclareTextSymbol{\textleftarrow} \UnicodeEncodingName{"2190}
+\DeclareTextSymbol{\textuparrow} \UnicodeEncodingName{"2191}
+\DeclareTextSymbol{\textrightarrow} \UnicodeEncodingName{"2192}
+\DeclareTextSymbol{\textdownarrow} \UnicodeEncodingName{"2193}
+\DeclareTextSymbol{\textminus} \UnicodeEncodingName{"2212}
+\DeclareTextSymbol{\textsurd} \UnicodeEncodingName{"221A}
+\DeclareTextSymbol{\textlangle} \UnicodeEncodingName{"2329}
+\DeclareTextSymbol{\textrangle} \UnicodeEncodingName{"232A}
+\DeclareTextSymbol{\textblank} \UnicodeEncodingName{"2422}
+\DeclareTextSymbol{\textvisiblespace} \UnicodeEncodingName{"2423}
+\DeclareTextSymbol{\textopenbullet} \UnicodeEncodingName{"25E6}
+\DeclareTextSymbol{\textbigcircle} \UnicodeEncodingName{"25EF}
+\DeclareTextSymbol{\textmusicalnote} \UnicodeEncodingName{"266A}
+\DeclareTextSymbol{\textmarried} \UnicodeEncodingName{"26AD}
+\DeclareTextSymbol{\textdivorced} \UnicodeEncodingName{"26AE}
+\DeclareTextSymbol{\textinterrobangdown} \UnicodeEncodingName{"2E18}
+% \end{macrocode}
+% Accents must be declared before the composites that use them.
+% \begin{macrocode}
+\DeclareUnicodeAccent{\`} \UnicodeEncodingName{"0300}
+\DeclareUnicodeAccent{\'} \UnicodeEncodingName{"0301}
+\DeclareUnicodeAccent{\^} \UnicodeEncodingName{"0302}
+\DeclareUnicodeAccent{\~} \UnicodeEncodingName{"0303}
+\DeclareUnicodeAccent{\"} \UnicodeEncodingName{"0308}
+\DeclareUnicodeAccent{\H} \UnicodeEncodingName{"030B}
+\DeclareUnicodeAccent{\r} \UnicodeEncodingName{"030A}
+\DeclareUnicodeAccent{\v} \UnicodeEncodingName{"030C}
+\DeclareUnicodeAccent{\u} \UnicodeEncodingName{"0306}
+\DeclareUnicodeAccent{\=} \UnicodeEncodingName{"0304}
+\DeclareUnicodeAccent{\.} \UnicodeEncodingName{"0307}
+\DeclareUnicodeAccent{\b} \UnicodeEncodingName{"0332}
+\DeclareUnicodeAccent{\c} \UnicodeEncodingName{"0327}
+\DeclareUnicodeAccent{\d} \UnicodeEncodingName{"0323}
+\DeclareUnicodeAccent{\k} \UnicodeEncodingName{"0328}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareTextComposite{\`} \UnicodeEncodingName{A}{"00C0}
+\DeclareTextComposite{\'} \UnicodeEncodingName{A}{"00C1}
+\DeclareTextComposite{\^} \UnicodeEncodingName{A}{"00C2}
+\DeclareTextComposite{\~} \UnicodeEncodingName{A}{"00C3}
+\DeclareTextComposite{\"} \UnicodeEncodingName{A}{"00C4}
+\DeclareTextComposite{\r} \UnicodeEncodingName{A}{"00C5}
+\DeclareTextComposite{\c} \UnicodeEncodingName{C}{"00C7}
+\DeclareTextComposite{\`} \UnicodeEncodingName{E}{"00C8}
+\DeclareTextComposite{\'} \UnicodeEncodingName{E}{"00C9}
+\DeclareTextComposite{\^} \UnicodeEncodingName{E}{"00CA}
+\DeclareTextComposite{\"} \UnicodeEncodingName{E}{"00CB}
+\DeclareTextComposite{\`} \UnicodeEncodingName{I}{"00CC}
+\DeclareTextComposite{\'} \UnicodeEncodingName{I}{"00CD}
+\DeclareTextComposite{\^} \UnicodeEncodingName{I}{"00CE}
+\DeclareTextComposite{\"} \UnicodeEncodingName{I}{"00CF}
+\DeclareTextComposite{\~} \UnicodeEncodingName{N}{"00D1}
+\DeclareTextComposite{\`} \UnicodeEncodingName{O}{"00D2}
+\DeclareTextComposite{\'} \UnicodeEncodingName{O}{"00D3}
+\DeclareTextComposite{\^} \UnicodeEncodingName{O}{"00D4}
+\DeclareTextComposite{\~} \UnicodeEncodingName{O}{"00D5}
+\DeclareTextComposite{\"} \UnicodeEncodingName{O}{"00D6}
+\DeclareTextComposite{\`} \UnicodeEncodingName{U}{"00D9}
+\DeclareTextComposite{\'} \UnicodeEncodingName{U}{"00DA}
+\DeclareTextComposite{\^} \UnicodeEncodingName{U}{"00DB}
+\DeclareTextComposite{\"} \UnicodeEncodingName{U}{"00DC}
+\DeclareTextComposite{\'} \UnicodeEncodingName{Y}{"00DD}
+\DeclareTextComposite{\`} \UnicodeEncodingName{a}{"00E0}
+\DeclareTextComposite{\'} \UnicodeEncodingName{a}{"00E1}
+\DeclareTextComposite{\^} \UnicodeEncodingName{a}{"00E2}
+\DeclareTextComposite{\~} \UnicodeEncodingName{a}{"00E3}
+\DeclareTextComposite{\"} \UnicodeEncodingName{a}{"00E4}
+\DeclareTextComposite{\r} \UnicodeEncodingName{a}{"00E5}
+\DeclareTextComposite{\c} \UnicodeEncodingName{c}{"00E7}
+\DeclareTextComposite{\`} \UnicodeEncodingName{e}{"00E8}
+\DeclareTextComposite{\'} \UnicodeEncodingName{e}{"00E9}
+\DeclareTextComposite{\^} \UnicodeEncodingName{e}{"00EA}
+\DeclareTextComposite{\"} \UnicodeEncodingName{e}{"00EB}
+\DeclareTextComposite{\`} \UnicodeEncodingName\i {"00EC}
+\DeclareTextComposite{\'} \UnicodeEncodingName\i {"00ED}
+\DeclareTextComposite{\^} \UnicodeEncodingName\i {"00EE}
+\DeclareTextComposite{\"} \UnicodeEncodingName\i {"00EF}
+\DeclareTextComposite{\~} \UnicodeEncodingName{n}{"00F1}
+\DeclareTextComposite{\`} \UnicodeEncodingName{o}{"00F2}
+\DeclareTextComposite{\'} \UnicodeEncodingName{o}{"00F3}
+\DeclareTextComposite{\^} \UnicodeEncodingName{o}{"00F4}
+\DeclareTextComposite{\~} \UnicodeEncodingName{o}{"00F5}
+\DeclareTextComposite{\"} \UnicodeEncodingName{o}{"00F6}
+\DeclareTextComposite{\`} \UnicodeEncodingName{u}{"00F9}
+\DeclareTextComposite{\'} \UnicodeEncodingName{u}{"00FA}
+\DeclareTextComposite{\^} \UnicodeEncodingName{u}{"00FB}
+\DeclareTextComposite{\"} \UnicodeEncodingName{u}{"00FC}
+\DeclareTextComposite{\'} \UnicodeEncodingName{y}{"00FD}
+\DeclareTextComposite{\"} \UnicodeEncodingName{y}{"00FF}
+\DeclareTextComposite{\=} \UnicodeEncodingName{A}{"0100}
+\DeclareTextComposite{\=} \UnicodeEncodingName{a}{"0101}
+\DeclareTextComposite{\u} \UnicodeEncodingName{A}{"0102}
+\DeclareTextComposite{\u} \UnicodeEncodingName{a}{"0103}
+\DeclareTextComposite{\k} \UnicodeEncodingName{A}{"0104}
+\DeclareTextComposite{\k} \UnicodeEncodingName{a}{"0105}
+\DeclareTextComposite{\'} \UnicodeEncodingName{C}{"0106}
+\DeclareTextComposite{\'} \UnicodeEncodingName{c}{"0107}
+\DeclareTextComposite{\^} \UnicodeEncodingName{C}{"0108}
+\DeclareTextComposite{\^} \UnicodeEncodingName{c}{"0109}
+\DeclareTextComposite{\.} \UnicodeEncodingName{C}{"010A}
+\DeclareTextComposite{\.} \UnicodeEncodingName{c}{"010B}
+\DeclareTextComposite{\v} \UnicodeEncodingName{C}{"010C}
+\DeclareTextComposite{\v} \UnicodeEncodingName{c}{"010D}
+\DeclareTextComposite{\v} \UnicodeEncodingName{D}{"010E}
+\DeclareTextComposite{\v} \UnicodeEncodingName{d}{"010F}
+\DeclareTextComposite{\=} \UnicodeEncodingName{E}{"0112}
+\DeclareTextComposite{\=} \UnicodeEncodingName{e}{"0113}
+\DeclareTextComposite{\u} \UnicodeEncodingName{E}{"0114}
+\DeclareTextComposite{\u} \UnicodeEncodingName{e}{"0115}
+\DeclareTextComposite{\.} \UnicodeEncodingName{E}{"0116}
+\DeclareTextComposite{\.} \UnicodeEncodingName{e}{"0117}
+\DeclareTextComposite{\k} \UnicodeEncodingName{E}{"0118}
+\DeclareTextComposite{\k} \UnicodeEncodingName{e}{"0119}
+\DeclareTextComposite{\v} \UnicodeEncodingName{E}{"011A}
+\DeclareTextComposite{\v} \UnicodeEncodingName{e}{"011B}
+\DeclareTextComposite{\^} \UnicodeEncodingName{G}{"011C}
+\DeclareTextComposite{\^} \UnicodeEncodingName{g}{"011D}
+\DeclareTextComposite{\u} \UnicodeEncodingName{G}{"011E}
+\DeclareTextComposite{\u} \UnicodeEncodingName{g}{"011F}
+\DeclareTextComposite{\.} \UnicodeEncodingName{G}{"0120}
+\DeclareTextComposite{\.} \UnicodeEncodingName{g}{"0121}
+\DeclareTextComposite{\c} \UnicodeEncodingName{G}{"0122}
+\DeclareTextComposite{\c} \UnicodeEncodingName{g}{"0123}
+\DeclareTextComposite{\^} \UnicodeEncodingName{H}{"0124}
+\DeclareTextComposite{\^} \UnicodeEncodingName{h}{"0125}
+\DeclareTextComposite{\~} \UnicodeEncodingName{I}{"0128}
+\DeclareTextComposite{\~} \UnicodeEncodingName\i {"0129}
+\DeclareTextComposite{\=} \UnicodeEncodingName{I}{"012A}
+\DeclareTextComposite{\=} \UnicodeEncodingName\i {"012B}
+\DeclareTextComposite{\u} \UnicodeEncodingName{I}{"012C}
+\DeclareTextComposite{\u} \UnicodeEncodingName\i {"012D}
+\DeclareTextComposite{\k} \UnicodeEncodingName{I}{"012E}
+\DeclareTextComposite{\k} \UnicodeEncodingName\i {"012F}
+\DeclareTextComposite{\.} \UnicodeEncodingName{I}{"0130}
+\DeclareTextComposite{\^} \UnicodeEncodingName{J}{"0134}
+\DeclareTextComposite{\^} \UnicodeEncodingName\j {"0135}
+\DeclareTextComposite{\c} \UnicodeEncodingName{K}{"0136}
+\DeclareTextComposite{\c} \UnicodeEncodingName{k}{"0137}
+\DeclareTextComposite{\'} \UnicodeEncodingName{L}{"0139}
+\DeclareTextComposite{\'} \UnicodeEncodingName{l}{"013A}
+\DeclareTextComposite{\c} \UnicodeEncodingName{L}{"013B}
+\DeclareTextComposite{\c} \UnicodeEncodingName{l}{"013C}
+\DeclareTextComposite{\v} \UnicodeEncodingName{L}{"013D}
+\DeclareTextComposite{\v} \UnicodeEncodingName{l}{"013E}
+\DeclareTextComposite{\'} \UnicodeEncodingName{N}{"0143}
+\DeclareTextComposite{\'} \UnicodeEncodingName{n}{"0144}
+\DeclareTextComposite{\c} \UnicodeEncodingName{N}{"0145}
+\DeclareTextComposite{\c} \UnicodeEncodingName{n}{"0146}
+\DeclareTextComposite{\v} \UnicodeEncodingName{N}{"0147}
+\DeclareTextComposite{\v} \UnicodeEncodingName{n}{"0148}
+\DeclareTextComposite{\=} \UnicodeEncodingName{O}{"014C}
+\DeclareTextComposite{\=} \UnicodeEncodingName{o}{"014D}
+\DeclareTextComposite{\u} \UnicodeEncodingName{O}{"014E}
+\DeclareTextComposite{\u} \UnicodeEncodingName{o}{"014F}
+\DeclareTextComposite{\H} \UnicodeEncodingName{O}{"0150}
+\DeclareTextComposite{\H} \UnicodeEncodingName{o}{"0151}
+\DeclareTextComposite{\'} \UnicodeEncodingName{R}{"0154}
+\DeclareTextComposite{\'} \UnicodeEncodingName{r}{"0155}
+\DeclareTextComposite{\c} \UnicodeEncodingName{R}{"0156}
+\DeclareTextComposite{\c} \UnicodeEncodingName{r}{"0157}
+\DeclareTextComposite{\v} \UnicodeEncodingName{R}{"0158}
+\DeclareTextComposite{\v} \UnicodeEncodingName{r}{"0159}
+\DeclareTextComposite{\'} \UnicodeEncodingName{S}{"015A}
+\DeclareTextComposite{\'} \UnicodeEncodingName{s}{"015B}
+\DeclareTextComposite{\^} \UnicodeEncodingName{S}{"015C}
+\DeclareTextComposite{\^} \UnicodeEncodingName{s}{"015D}
+\DeclareTextComposite{\c} \UnicodeEncodingName{S}{"015E}
+\DeclareTextComposite{\c} \UnicodeEncodingName{s}{"015F}
+\DeclareTextComposite{\v} \UnicodeEncodingName{S}{"0160}
+\DeclareTextComposite{\v} \UnicodeEncodingName{s}{"0161}
+\DeclareTextComposite{\c} \UnicodeEncodingName{T}{"0162}
+\DeclareTextComposite{\c} \UnicodeEncodingName{t}{"0163}
+\DeclareTextComposite{\v} \UnicodeEncodingName{T}{"0164}
+\DeclareTextComposite{\v} \UnicodeEncodingName{t}{"0165}
+\DeclareTextComposite{\~} \UnicodeEncodingName{U}{"0168}
+\DeclareTextComposite{\~} \UnicodeEncodingName{u}{"0169}
+\DeclareTextComposite{\=} \UnicodeEncodingName{U}{"016A}
+\DeclareTextComposite{\=} \UnicodeEncodingName{u}{"016B}
+\DeclareTextComposite{\u} \UnicodeEncodingName{U}{"016C}
+\DeclareTextComposite{\u} \UnicodeEncodingName{u}{"016D}
+\DeclareTextComposite{\r} \UnicodeEncodingName{U}{"016E}
+\DeclareTextComposite{\r} \UnicodeEncodingName{u}{"016F}
+\DeclareTextComposite{\H} \UnicodeEncodingName{U}{"0170}
+\DeclareTextComposite{\H} \UnicodeEncodingName{u}{"0171}
+\DeclareTextComposite{\k} \UnicodeEncodingName{U}{"0172}
+\DeclareTextComposite{\k} \UnicodeEncodingName{u}{"0173}
+\DeclareTextComposite{\^} \UnicodeEncodingName{W}{"0174}
+\DeclareTextComposite{\^} \UnicodeEncodingName{w}{"0175}
+\DeclareTextComposite{\^} \UnicodeEncodingName{Y}{"0176}
+\DeclareTextComposite{\^} \UnicodeEncodingName{y}{"0177}
+\DeclareTextComposite{\"} \UnicodeEncodingName{Y}{"0178}
+\DeclareTextComposite{\'} \UnicodeEncodingName{Z}{"0179}
+\DeclareTextComposite{\'} \UnicodeEncodingName{z}{"017A}
+\DeclareTextComposite{\.} \UnicodeEncodingName{Z}{"017B}
+\DeclareTextComposite{\.} \UnicodeEncodingName{z}{"017C}
+\DeclareTextComposite{\v} \UnicodeEncodingName{Z}{"017D}
+\DeclareTextComposite{\v} \UnicodeEncodingName{z}{"017E}
+\DeclareTextComposite{\v} \UnicodeEncodingName{A}{"01CD}
+\DeclareTextComposite{\v} \UnicodeEncodingName{a}{"01CE}
+\DeclareTextComposite{\v} \UnicodeEncodingName{I}{"01CF}
+\DeclareTextComposite{\v} \UnicodeEncodingName\i {"01D0}
+\DeclareTextComposite{\v} \UnicodeEncodingName{O}{"01D1}
+\DeclareTextComposite{\v} \UnicodeEncodingName{o}{"01D2}
+\DeclareTextComposite{\v} \UnicodeEncodingName{U}{"01D3}
+\DeclareTextComposite{\v} \UnicodeEncodingName{u}{"01D4}
+\DeclareTextComposite{\=} \UnicodeEncodingName\AE{"01E2}
+\DeclareTextComposite{\=} \UnicodeEncodingName\ae{"01E3}
+\DeclareTextComposite{\v} \UnicodeEncodingName{G}{"01E6}
+\DeclareTextComposite{\v} \UnicodeEncodingName{g}{"01E7}
+\DeclareTextComposite{\v} \UnicodeEncodingName{K}{"01E8}
+\DeclareTextComposite{\v} \UnicodeEncodingName{k}{"01E9}
+\DeclareTextComposite{\k} \UnicodeEncodingName{O}{"01EA}
+\DeclareTextComposite{\k} \UnicodeEncodingName{o}{"01EB}
+\DeclareTextComposite{\v} \UnicodeEncodingName\j {"01F0}
+\DeclareTextComposite{\'} \UnicodeEncodingName{G}{"01F4}
+\DeclareTextComposite{\'} \UnicodeEncodingName{g}{"01F5}
+\DeclareTextComposite{\textcommabelow}\UnicodeEncodingName{S}{"0218}
+\DeclareTextComposite{\textcommabelow}\UnicodeEncodingName{s}{"0219}
+\DeclareTextComposite{\textcommabelow}\UnicodeEncodingName{T}{"021A}
+\DeclareTextComposite{\textcommabelow}\UnicodeEncodingName{t}{"021B}
+\DeclareTextComposite{\.} \UnicodeEncodingName{B}{"1E02}
+\DeclareTextComposite{\.} \UnicodeEncodingName{b}{"1E03}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</TU>
+% \end{macrocode}
+%
% \section{Package files}
%
% \changes{v1.9h}{1997/12/17}{Added section.}
diff --git a/Master/texmf-dist/source/latex/base/ltoutenc.ins b/Master/texmf-dist/source/latex/base/ltoutenc.ins
index 2f38af2c972..4fafb5b6379 100644
--- a/Master/texmf-dist/source/latex/base/ltoutenc.ins
+++ b/Master/texmf-dist/source/latex/base/ltoutenc.ins
@@ -91,6 +91,8 @@ extension .ins) which are part of the distribution.
\from{ltoutenc.dtx}{OT4}}
\file{ts1enc.def}{
\from{ltoutenc.dtx}{TS1}}
+ \file{tuenc.def}{
+ \from{ltoutenc.dtx}{TU}}
\file{textcomp.sty}{
\from{ltoutenc.dtx}{TS1sty}}
\file{fontenc.sty}{
diff --git a/Master/texmf-dist/source/latex/base/ltoutput.dtx b/Master/texmf-dist/source/latex/base/ltoutput.dtx
index 8c716bb5c96..df2d7233e23 100644
--- a/Master/texmf-dist/source/latex/base/ltoutput.dtx
+++ b/Master/texmf-dist/source/latex/base/ltoutput.dtx
@@ -30,14 +30,14 @@
%%% From File: ltoutput.dtx
%<flafter>\ProvidesPackage{flafter}
%<fltrace>\ProvidesPackage{fltrace}
-%<flafter,fltrace> [2015/09/05 v1.3a
+%<flafter,fltrace> [2016/10/04 v1.3b
%<flafter> Standard LaTeX floats after reference (FMi)]
%<fltrace> Tracing LaTeX floats algorithm (FMi)]
%
%<*driver>
% \fi
\ProvidesFile{ltoutput.dtx}
- [2015/09/05 v1.3a LaTeX Kernel (Output Routine)]
+ [2016/10/04 v1.3b LaTeX Kernel (Output Routine)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutput.dtx}
@@ -4468,10 +4468,18 @@
% Only tracing has been added to these.
%
% \begin{macrocode}
-%<*2ekernel|fltrace>
+%<latexrelease|fltrace>\IncludeInRelease{2017/01/01}%
+%<latexrelease|fltrace> {\@makefcolumn}{negative height floats}%
+%<*2ekernel|fltrace|latexrelease>
\def\@makefcolumn #1{%
\begingroup
- \@fpmin \z@
+% \end{macrocode}
+% \changes{v1.3b}{2017/01/01}{make fpmin negative so ignored even if float height is negative}
+% \begin{macrocode}
+ \@fpmin -\maxdimen
+% \end{macrocode}
+%
+% \begin{macrocode}
\let \@testfp \@gobble
\@tryfcolumn #1%
\endgroup
@@ -4484,6 +4492,29 @@
%</trace>
}
% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease|fltrace>\EndIncludeInRelease
+%<latexrelease|fltrace>\IncludeInRelease{0000/00/00}%
+%<latexrelease|fltrace> {\@makefcolumn}{negative height floats}%
+%<latexrelease|fltrace>\def\@makefcolumn #1{%
+%<latexrelease|fltrace> \begingroup
+%<latexrelease|fltrace> \@fpmin \z@
+%<latexrelease|fltrace> \let \@testfp \@gobble
+%<latexrelease|fltrace> \@tryfcolumn #1%
+%<latexrelease|fltrace> \endgroup
+%<*trace>
+%<latexrelease|fltrace> \if@fcolmade
+%<latexrelease|fltrace> \fl@trace{PAGE: in \string\clearpage
+%<latexrelease|fltrace> \if@twocolumn ---twocolumn\fi---}%
+%<latexrelease|fltrace> \fl@trace{----- float column/page completed
+%<latexrelease|fltrace> from \string#1}%
+%<latexrelease|fltrace> \fi
+%</trace>
+%<latexrelease|fltrace>}
+%<latexrelease|fltrace>\EndIncludeInRelease
+%</2ekernel|fltrace|latexrelease>
+% \end{macrocode}
% This will line up the last baselines in the two
% columns provided they are constructed in the normal way: \ie ending
% in a skip of minus the original depth, with |\@textbottom| adding
@@ -4493,7 +4524,6 @@
% \changes{1.2g}{2000/07/12}{Ensure that rule is in \cs{normalcolor}}
% \changes{v1.2m}{2014/12/30}{Command updated (latexrelease)}
% \begin{macrocode}
-%</2ekernel|fltrace>
%<latexrelease|fltrace>\IncludeInRelease{2015/01/01}%
%<latexrelease|fltrace> {\@outputdblcol}{2 column marks}%
%<*2ekernel|fltrace|latexrelease>
diff --git a/Master/texmf-dist/source/latex/base/ltplain.dtx b/Master/texmf-dist/source/latex/base/ltplain.dtx
index afe2fead63d..30d2c5c089e 100644
--- a/Master/texmf-dist/source/latex/base/ltplain.dtx
+++ b/Master/texmf-dist/source/latex/base/ltplain.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2016
+% Copyright 1993-2017
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltplain.dtx}
- [2016/07/29 v2.2c LaTeX Kernel (Plain TeX)]
+ [2017/01/06 v2.3b LaTeX Kernel (Plain TeX)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltplain.dtx}
@@ -73,6 +73,8 @@
% \changes{v1.1r}{1995/10/10}{Autoload tracing code}
% \changes{v1.1u}{1996/10/28}{(CAR) More doc changes}
% \changes{v2.0e}{2015/02/21}{Removed autoload code}
+% \changes{v2.2d}{2016/10/15}{Require e\TeX{}}
+% \changes{v2.3b}{2016/11/06}{Drop \cs{outer} entirely}
%
% \section{Plain \TeX}
%
@@ -114,7 +116,7 @@
\catcode`\_=8 % underline and downarrow are for subscripts
\catcode`\^^I=10 % ascii tab is a blank space
\chardef\active=13 \catcode`\~=\active % tilde is active
-\catcode`\^^L=\active \outer\def^^L{\par}% ascii form-feed is \outer\par
+\catcode`\^^L=\active \def^^L{\par}% ascii form-feed is \par
% \end{macrocode}
%
% \begin{macrocode}
@@ -384,8 +386,16 @@
% \begin{macrocode}
\def\new@mathgroup
{\e@alloc\mathgroup\chardef{\count18}\m@ne\e@mathgroup@top}
-\def\newlanguage {\e@alloc\language \chardef{\count19}\m@ne\@cclvi}
\let\newfam\new@mathgroup
+% \end{macrocode}
+%
+% \changes{v2.3a}{2016/10/16}{Allow languages up to 16383 in luatex}
+% \begin{macrocode}
+\ifx\directlua\@undefined
+ \def\newlanguage {\e@alloc\language \chardef{\count19}\m@ne\@cclvi}
+\else
+ \def\newlanguage {\e@alloc\language \chardef{\count19}\m@ne{16384}}
+\fi
%</2ekernel|latexrelease>
% \end{macrocode}
%
@@ -809,41 +819,6 @@
% \end{macro}
% \end{macro}
%
-% \changes{v1.1p}{1995/10/02}{Move \cs{newif} to ltdefns}
-%
-% \begin{macrocode}
-\message{compatibility for TeX 2, }
-% \end{macrocode}
-%
-% If this file is used in an old \TeX\ we define the new features
-% of \TeX\ 3.0 as simple macros or counters so that files that uses
-% these features can be processed in such an environment
-% (They will however produce some other results).
-%
-% \begin{macrocode}
-\ifx\@undefined\inputlineno
- \newcount\inputlineno
-% \end{macrocode}
-% This could be used to detect that an old \TeX\ is in force
-% \begin{macrocode}
- \inputlineno-1
-% \end{macrocode}
-% Extra test for MLTeX 2, RmS 91/11/07.
-% \begin{macrocode}
- \ifx\@undefined\language
- \newcount\language
- \fi
- \newcount\lefthyphenmin
- \newcount\righthyphenmin
- \newcount\errorcontextlines
- \newcount\holdinginserts
- \newdimen\emergencystretch
- \newcount\badness
- \let\noboundary\relax
- \newcount\setlanguage
-\fi
-% \end{macrocode}
-%
% Assign initial values to \TeX's parameters
%
% \begin{macrocode}
@@ -1186,8 +1161,10 @@
% \LaTeX\ defines |~| in |ltdefns.dtx|.
%
% \begin{macro}{\slash}
+% This generates a |/| acting a bit like |-| but still allows hyphenation
+% in the word part preceding it (but not after).
% \begin{macrocode}
-\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-'
+\def\slash{/\penalty\exhyphenpenalty}
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex/base/ltsect.dtx b/Master/texmf-dist/source/latex/base/ltsect.dtx
index 3747d40bccc..72ca0eee21b 100644
--- a/Master/texmf-dist/source/latex/base/ltsect.dtx
+++ b/Master/texmf-dist/source/latex/base/ltsect.dtx
@@ -31,7 +31,7 @@
%%% From File: ltsect.dtx
%<*driver>
% \fi
-\ProvidesFile{ltsect.dtx}[2014/09/29 v1.0z LaTeX Kernel (Sectioning)]
+\ProvidesFile{ltsect.dtx}[2016/09/29 v1.0z LaTeX Kernel (Sectioning)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltsect.dtx}
@@ -213,8 +213,8 @@
%
% \begin{description}
% \item[name:] e.g., 'subsection'
-% \item[level:] a number, denoting depth of section -- e.g., chapter=1,
-% section = 2, etc.
+% \item[level:] a number, denoting depth of section -- e.g.,
+% chapter = 0, section = 1, etc.
% \item[indent:] Indentation of heading from left margin
% \item[beforeskip:] Absolute value = skip to leave above the heading.
% If negative, then paragraph indent of text following
diff --git a/Master/texmf-dist/source/latex/base/lttab.dtx b/Master/texmf-dist/source/latex/base/lttab.dtx
index 40381f30c3a..7b4e51721df 100644
--- a/Master/texmf-dist/source/latex/base/lttab.dtx
+++ b/Master/texmf-dist/source/latex/base/lttab.dtx
@@ -31,7 +31,7 @@
%%% From File: lttab.dtx
%<*driver>
% \fi
-\ProvidesFile{lttab.dtx}[2015/02/21 v1.1n LaTeX Kernel (Columns)]
+\ProvidesFile{lttab.dtx}[2016/11/28 v1.1o LaTeX Kernel (Columns)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{lttab.dtx}
@@ -688,7 +688,7 @@
% right after a \\ command. If followed by another \hline,
% then adds a \vskip of \doublerulesep.
%
-% \cline[i-j] : draws horizontal lines between rows covering columns
+% \cline{i-j} : draws horizontal lines between rows covering columns
% i through j, inclusive. Multiple commands may follow
% one another to provide lines covering several disjoint
% columns
diff --git a/Master/texmf-dist/source/latex/base/ltvers.dtx b/Master/texmf-dist/source/latex/base/ltvers.dtx
index aaaf4b8fb52..eb49ec0d982 100644
--- a/Master/texmf-dist/source/latex/base/ltvers.dtx
+++ b/Master/texmf-dist/source/latex/base/ltvers.dtx
@@ -92,10 +92,10 @@
%</2ekernel>
%<latexrelease>\edef\latexreleaseversion
%<*2ekernel|latexrelease>
- {2016/03/31}
+ {2017/01/01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{3}
+\def\patch@level{0}
% \end{macrocode}
% \end{macro}
% \end{macro}