diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/base')
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} |