summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-02-02 22:42:01 +0000
committerKarl Berry <karl@freefriends.org>2020-02-02 22:42:01 +0000
commit961f0d1df526285b3a08b8a75af7197b5e6f86b7 (patch)
treea0a096f519b75b148833f7ebd70ca5af996fa2c6 /Master/texmf-dist/source
parentb97aa19e35137596fcf0193abee3788b21250f32 (diff)
l2e (2feb20)
git-svn-id: svn://tug.org/texlive/trunk@53640 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amsbsy.dtx6
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amsbsy.ins8
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amscd.dtx6
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amscd.ins8
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amsgen.dtx6
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amsgen.ins8
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amsmath.dtx51
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amsmath.ins8
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amsopn.dtx6
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amsopn.ins8
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amstext.dtx6
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amstext.ins9
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amsxtra.dtx6
-rw-r--r--Master/texmf-dist/source/latex/amsmath/amsxtra.ins9
-rw-r--r--Master/texmf-dist/source/latex/base/alltt.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/alltt.ins32
-rw-r--r--Master/texmf-dist/source/latex/base/classes.dtx51
-rw-r--r--Master/texmf-dist/source/latex/base/classes.ins33
-rw-r--r--Master/texmf-dist/source/latex/base/cmextra.ins48
-rw-r--r--Master/texmf-dist/source/latex/base/cmfonts.fdd61
-rw-r--r--Master/texmf-dist/source/latex/base/cmfonts.ins33
-rw-r--r--Master/texmf-dist/source/latex/base/doc.dtx13
-rw-r--r--Master/texmf-dist/source/latex/base/docstrip.dtx6
-rw-r--r--Master/texmf-dist/source/latex/base/docstrip.ins32
-rw-r--r--Master/texmf-dist/source/latex/base/ec.ins32
-rw-r--r--Master/texmf-dist/source/latex/base/exscale.dtx6
-rw-r--r--Master/texmf-dist/source/latex/base/exscale.ins32
-rw-r--r--Master/texmf-dist/source/latex/base/fix-cm.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/fix-cm.ins32
-rw-r--r--Master/texmf-dist/source/latex/base/fontdef.dtx174
-rw-r--r--Master/texmf-dist/source/latex/base/format.ins69
-rw-r--r--Master/texmf-dist/source/latex/base/graphpap.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/graphpap.ins32
-rw-r--r--Master/texmf-dist/source/latex/base/ifthen.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ifthen.ins32
-rw-r--r--Master/texmf-dist/source/latex/base/inputenc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/inputenc.ins38
-rw-r--r--Master/texmf-dist/source/latex/base/latex209.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/latex209.ins34
-rw-r--r--Master/texmf-dist/source/latex/base/latexrelease.dtx26
-rw-r--r--Master/texmf-dist/source/latex/base/latexrelease.ins37
-rw-r--r--Master/texmf-dist/source/latex/base/latexsym.dtx4
-rw-r--r--Master/texmf-dist/source/latex/base/latexsym.ins43
-rw-r--r--Master/texmf-dist/source/latex/base/letter.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/letter.ins35
-rw-r--r--Master/texmf-dist/source/latex/base/ltalloc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltbibl.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltboxes.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltclass.dtx176
-rw-r--r--Master/texmf-dist/source/latex/base/ltcntrl.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltcounts.dtx20
-rw-r--r--Master/texmf-dist/source/latex/base/ltdefns.dtx10
-rw-r--r--Master/texmf-dist/source/latex/base/ltdirchk.dtx4
-rw-r--r--Master/texmf-dist/source/latex/base/lterror.dtx8
-rw-r--r--Master/texmf-dist/source/latex/base/ltexpl.dtx99
-rw-r--r--Master/texmf-dist/source/latex/base/ltfiles.dtx80
-rw-r--r--Master/texmf-dist/source/latex/base/ltfinal.dtx38
-rw-r--r--Master/texmf-dist/source/latex/base/ltfloat.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltfntcmd.dtx33
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssaxes.dtx1229
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssbas.dtx160
-rw-r--r--Master/texmf-dist/source/latex/base/ltfsscmp.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssdcl.dtx83
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssini.dtx942
-rw-r--r--Master/texmf-dist/source/latex/base/ltfsstrc.dtx48
-rw-r--r--Master/texmf-dist/source/latex/base/lthyphen.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltidxglo.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltlength.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltlists.dtx7
-rw-r--r--Master/texmf-dist/source/latex/base/ltlogos.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltluatex.dtx173
-rw-r--r--Master/texmf-dist/source/latex/base/ltmath.dtx18
-rw-r--r--Master/texmf-dist/source/latex/base/ltmiscen.dtx44
-rw-r--r--Master/texmf-dist/source/latex/base/ltoutenc.dtx867
-rw-r--r--Master/texmf-dist/source/latex/base/ltoutenc.ins39
-rw-r--r--Master/texmf-dist/source/latex/base/ltoutput.dtx32
-rw-r--r--Master/texmf-dist/source/latex/base/ltpage.dtx6
-rw-r--r--Master/texmf-dist/source/latex/base/ltpageno.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltpar.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltpictur.dtx14
-rw-r--r--Master/texmf-dist/source/latex/base/ltplain.dtx6
-rw-r--r--Master/texmf-dist/source/latex/base/ltsect.dtx14
-rw-r--r--Master/texmf-dist/source/latex/base/ltspace.dtx48
-rw-r--r--Master/texmf-dist/source/latex/base/lttab.dtx6
-rw-r--r--Master/texmf-dist/source/latex/base/lttextcomp.dtx2214
-rw-r--r--Master/texmf-dist/source/latex/base/ltthm.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltvers.dtx21
-rw-r--r--Master/texmf-dist/source/latex/base/ltxdoc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/ltxref.dtx20
-rw-r--r--Master/texmf-dist/source/latex/base/makeindx.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/makeindx.ins32
-rw-r--r--Master/texmf-dist/source/latex/base/newdc.ins35
-rw-r--r--Master/texmf-dist/source/latex/base/newlfont.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/nfssfont.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/nfssfont.ins32
-rw-r--r--Master/texmf-dist/source/latex/base/olddc.ins40
-rw-r--r--Master/texmf-dist/source/latex/base/oldlfont.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/preload.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/proc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/proc.ins32
-rw-r--r--Master/texmf-dist/source/latex/base/slides.dtx12
-rw-r--r--Master/texmf-dist/source/latex/base/slides.ins46
-rw-r--r--Master/texmf-dist/source/latex/base/slifonts.fdd78
-rw-r--r--Master/texmf-dist/source/latex/base/syntonly.dtx2
-rw-r--r--Master/texmf-dist/source/latex/base/syntonly.ins33
-rw-r--r--Master/texmf-dist/source/latex/base/tulm.fdd20
-rw-r--r--Master/texmf-dist/source/latex/base/tulm.ins33
-rw-r--r--Master/texmf-dist/source/latex/base/unpack.ins24
-rw-r--r--Master/texmf-dist/source/latex/base/utf8ienc.dtx35
-rw-r--r--Master/texmf-dist/source/latex/graphics/color.dtx38
-rw-r--r--Master/texmf-dist/source/latex/graphics/drivers.dtx2
-rw-r--r--Master/texmf-dist/source/latex/graphics/epsfig.dtx2
-rw-r--r--Master/texmf-dist/source/latex/graphics/graphics.dtx21
-rw-r--r--Master/texmf-dist/source/latex/graphics/graphicx.dtx9
-rw-r--r--Master/texmf-dist/source/latex/graphics/keyval.dtx2
-rw-r--r--Master/texmf-dist/source/latex/graphics/lscape.dtx2
-rw-r--r--Master/texmf-dist/source/latex/graphics/rotating.dtx58
-rw-r--r--Master/texmf-dist/source/latex/graphics/trig.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/afterpage.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/afterpage.ins22
-rw-r--r--Master/texmf-dist/source/latex/tools/array.dtx31
-rw-r--r--Master/texmf-dist/source/latex/tools/bm.dtx4
-rw-r--r--Master/texmf-dist/source/latex/tools/bm.ins22
-rw-r--r--Master/texmf-dist/source/latex/tools/calc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/dcolumn.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/delarray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/enumerate.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/fileerr.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/fontsmpl.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/ftnright.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/hhline.dtx19
-rw-r--r--Master/texmf-dist/source/latex/tools/indentfirst.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/layout.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/longtable.dtx22
-rw-r--r--Master/texmf-dist/source/latex/tools/longtable.ins22
-rw-r--r--Master/texmf-dist/source/latex/tools/multicol.dtx124
-rw-r--r--Master/texmf-dist/source/latex/tools/multicol.ins22
-rw-r--r--Master/texmf-dist/source/latex/tools/rawfonts.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/shellesc.dtx10
-rw-r--r--Master/texmf-dist/source/latex/tools/showkeys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/somedefs.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/tabularx.dtx15
-rw-r--r--Master/texmf-dist/source/latex/tools/tabularx.ins22
-rw-r--r--Master/texmf-dist/source/latex/tools/theorem.dtx2
-rw-r--r--Master/texmf-dist/source/latex/tools/tools.ins24
-rw-r--r--Master/texmf-dist/source/latex/tools/trace.dtx10
-rw-r--r--Master/texmf-dist/source/latex/tools/varioref.dtx37
-rw-r--r--Master/texmf-dist/source/latex/tools/varioref.ins22
-rw-r--r--Master/texmf-dist/source/latex/tools/verbatim.dtx8
-rw-r--r--Master/texmf-dist/source/latex/tools/xr.dtx5
-rw-r--r--Master/texmf-dist/source/latex/tools/xspace.dtx2
151 files changed, 6468 insertions, 2186 deletions
diff --git a/Master/texmf-dist/source/latex/amsmath/amsbsy.dtx b/Master/texmf-dist/source/latex/amsmath/amsbsy.dtx
index 890fbd0d827..11747842787 100644
--- a/Master/texmf-dist/source/latex/amsmath/amsbsy.dtx
+++ b/Master/texmf-dist/source/latex/amsmath/amsbsy.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -11,9 +11,9 @@
% https://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 work has the LPPL maintenance status `maintained'.
-%
+%
% The Current Maintainer of this work is the LaTeX3 Project.
%
% \fi
diff --git a/Master/texmf-dist/source/latex/amsmath/amsbsy.ins b/Master/texmf-dist/source/latex/amsmath/amsbsy.ins
index fe1cd5413de..07707907e9c 100644
--- a/Master/texmf-dist/source/latex/amsmath/amsbsy.ins
+++ b/Master/texmf-dist/source/latex/amsmath/amsbsy.ins
@@ -1,7 +1,7 @@
-%%
+%%
%% Copyright 2010 American Mathematical Society.
%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
-%%
+%%
%% This work 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.
@@ -9,9 +9,9 @@
%% https://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 work has the LPPL maintenance status `maintained'.
-%%
+%%
%% The Current Maintainer of this work is the LaTeX3 Project.
%%
%% ====================================================================
diff --git a/Master/texmf-dist/source/latex/amsmath/amscd.dtx b/Master/texmf-dist/source/latex/amsmath/amscd.dtx
index 2d0a35d685d..12e94a11dc1 100644
--- a/Master/texmf-dist/source/latex/amsmath/amscd.dtx
+++ b/Master/texmf-dist/source/latex/amsmath/amscd.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -11,9 +11,9 @@
% https://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 work has the LPPL maintenance status `maintained'.
-%
+%
% The Current Maintainer of this work is the LaTeX3 Project.
%
% \fi
diff --git a/Master/texmf-dist/source/latex/amsmath/amscd.ins b/Master/texmf-dist/source/latex/amsmath/amscd.ins
index 148c4cb32e5..5890ca06c10 100644
--- a/Master/texmf-dist/source/latex/amsmath/amscd.ins
+++ b/Master/texmf-dist/source/latex/amsmath/amscd.ins
@@ -1,7 +1,7 @@
-%%
+%%
%% Copyright 2010 American Mathematical Society.
%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
-%%
+%%
%% This work 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.
@@ -9,9 +9,9 @@
%% https://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 work has the LPPL maintenance status `maintained'.
-%%
+%%
%% The Current Maintainer of this work is the LaTeX3 Project.
%%
%% ====================================================================
diff --git a/Master/texmf-dist/source/latex/amsmath/amsgen.dtx b/Master/texmf-dist/source/latex/amsmath/amsgen.dtx
index 5edc26b9cc4..92df548f127 100644
--- a/Master/texmf-dist/source/latex/amsmath/amsgen.dtx
+++ b/Master/texmf-dist/source/latex/amsmath/amsgen.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -11,9 +11,9 @@
% https://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 work has the LPPL maintenance status `maintained'.
-%
+%
% The Current Maintainer of this work is the LaTeX3 Project.
%
% \fi
diff --git a/Master/texmf-dist/source/latex/amsmath/amsgen.ins b/Master/texmf-dist/source/latex/amsmath/amsgen.ins
index 8c5683cb5a6..be7720bc891 100644
--- a/Master/texmf-dist/source/latex/amsmath/amsgen.ins
+++ b/Master/texmf-dist/source/latex/amsmath/amsgen.ins
@@ -1,7 +1,7 @@
-%%
+%%
%% Copyright 2010 American Mathematical Society.
%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
-%%
+%%
%% This work 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.
@@ -9,9 +9,9 @@
%% https://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 work has the LPPL maintenance status `maintained'.
-%%
+%%
%% The Current Maintainer of this work is the LaTeX3 Project.
%%
%% ====================================================================
diff --git a/Master/texmf-dist/source/latex/amsmath/amsmath.dtx b/Master/texmf-dist/source/latex/amsmath/amsmath.dtx
index 11b7545c266..42f3088867d 100644
--- a/Master/texmf-dist/source/latex/amsmath/amsmath.dtx
+++ b/Master/texmf-dist/source/latex/amsmath/amsmath.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 2000, 2013 American Mathematical Society.
-% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -11,9 +11,9 @@
% https://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 work has the LPPL maintenance status `maintained'.
-%
+%
% The Current Maintainer of this work is the LaTeX3 Project.
%
% \fi
@@ -86,7 +86,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesPackage{amsmath}[2019/11/16 v2.17d AMS math features]
+\ProvidesPackage{amsmath}[2020/01/20 v2.17e AMS math features]
% \end{macrocode}
%
% \section{Catcode defenses}
@@ -302,10 +302,13 @@ For additional information on amsmath, use the \lq ?\rq\space option.%
% \end{macrocode}
%
% Processing to handle the \opt{cmex10} option is a little tricky
-% because of different possible loading orders for \pkg{amsmath} and
-% \pkg{amsfonts}. The package \pkg{amsmath} sets the \cs{cmex@opt}
-% flag to 7 or 10, and the package \pkg{amsfonts} sets the flag to 1
-% or 0.
+% because of different possible loading orders for \pkg{amsmath}
+% and \pkg{amsfonts}. The package \pkg{amsmath} sets the
+% \cs{cmex@opt} flag to 0, 7 or 10, and in the past the package
+% \pkg{amsfonts} did set the flag to 1 or 0. These days it always
+% sets it to 10. The situation is a bit unsettled but we don't own
+% \pkg{amsfonts}.
+% \changes{v2.17d}{2019/12/01}{docu update, no code change (gh/200)}
% \begin{macrocode}
\ifnum\cmex@opt=7 \relax
\DeclareFontShape{OMX}{cmex}{m}{n}{%
@@ -517,9 +520,13 @@ For additional information on amsmath, use the \lq ?\rq\space option.%
\@xp\@tempa\vert\@empty\@nil
\ifnum\@tempcnta>\z@
\advance\@tempcnta "4000000
- \xdef\lvert{\delimiter\number\@tempcnta\space }
+% \end{macrocode}
+% Use \cs{protected} on the new delimiters.
+% \changes{v2.17e}{2020/01/20}{Make delimiters robust (gh/251))}
+% \begin{macrocode}
+ \protected\xdef\lvert{\delimiter\number\@tempcnta\space }
\advance\@tempcnta "1000000
- \xdef\rvert{\delimiter\number\@tempcnta\space }
+ \protected\xdef\rvert{\delimiter\number\@tempcnta\space }
\else
\ifx\@@undefined\lvert
% Fall back to cmex encoding since we don't know what else to do.
@@ -532,9 +539,9 @@ For additional information on amsmath, use the \lq ?\rq\space option.%
\@xp\@tempa\Vert\@empty\@nil
\ifnum\@tempcnta>\z@
\advance\@tempcnta "4000000
- \xdef\lVert{\delimiter\number\@tempcnta\space }
+ \protected\xdef\lVert{\delimiter\number\@tempcnta\space }
\advance\@tempcnta "1000000
- \xdef\rVert{\delimiter\number\@tempcnta\space }
+ \protected\xdef\rVert{\delimiter\number\@tempcnta\space }
\else
\ifx\@@undefined\lVert
\DeclareMathDelimiter{\lVert}
@@ -645,13 +652,13 @@ Foreign command \@backslashchar#1;\MessageBreak
% \end{macrocode}
%
% \begin{macrocode}
-\else
+\else
% \end{macrocode}
% XeTeX version
% \begin{macrocode}
\def\genfrac@rule#1#2#3#4{%
\hbox{$\left#1\vcenter{\hrule \@width\z@
- \@height
+ \@height
\ifdim\fontdimen#2#3\tw@=\z@
#4\fontdimen6#3\tw@
\else
@@ -697,7 +704,7 @@ Foreign command \@backslashchar#1;\MessageBreak
% \begin{macrocode}
\def\genfrac@rule#1#2#3{%
\hbox{$\left#1\vcenter{\hrule \@width\z@
- \@height
+ \@height
\ifdim\Umathfractiondelsize#2=\z@
#3\fontdimen6#3\tw@
\else
@@ -1093,7 +1100,7 @@ Foreign command \@backslashchar#1;\MessageBreak
% \changes{v2.15}{2016/02/20}{Indent \cs{mdots@@} for readability and add additional tests}
% \begin{macrocode}
\def\mdots@@{\gdef\thedots@{\dotso@}%
- \ifx\@let@token\boldsymbol
+ \ifx\@let@token\boldsymbol
\gdef\thedots@\boldsymbol{\boldsymboldots@}%
\else
\ifx,\@let@token \gdef\thedots@{\dotsc}%
@@ -1167,7 +1174,7 @@ Foreign command \@backslashchar#1;\MessageBreak
% \begin{macrocode}
\fi % end macro \ifgtest@ test (no else)
\fi % end if \Umathchar test
- \fi % end \math@ \ifgtest@
+ \fi % end \math@ \ifgtest@
\fi % end \keybin@ \ifgtest@ test (no else)
\fi % end if \not (no else)
\fi % end if comma (no else)
@@ -3190,9 +3197,10 @@ ill-advised in LaTeX.%
% \end{macro}
%
% \begin{macro}{\ifst@rred}
-% The switch |st@rred| is set to true by all starred
-% environments
-% and set to false by the unstarred versions.
+% The switch |st@rred| is set to true by all starred environments
+% and set to false by the unstarred versions.
+% One exception is the \env{xxalignat} environment where this is set
+% to true.
% \begin{macrocode}
\newif\ifst@rred
% \end{macrocode}
@@ -3443,7 +3451,8 @@ and fix things up.}
\nointerlineskip
\vskip-\ht\strutbox@
\vskip-\dp\strutbox@
- \vbox{\noindent\hbox to\displaywidth{\hbox to#1{\strut@\hfill}}}%
+ \vbox{\noindent\hbox to\displaywidth{%
+ \hbox to#1{\strut@\hfill}}}%
\prevdepth\dimen@
\fi
}%
diff --git a/Master/texmf-dist/source/latex/amsmath/amsmath.ins b/Master/texmf-dist/source/latex/amsmath/amsmath.ins
index 7a6a0873595..55e40898042 100644
--- a/Master/texmf-dist/source/latex/amsmath/amsmath.ins
+++ b/Master/texmf-dist/source/latex/amsmath/amsmath.ins
@@ -1,7 +1,7 @@
-%%
+%%
%% Copyright 2010 American Mathematical Society.
%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
-%%
+%%
%% This work 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.
@@ -9,9 +9,9 @@
%% https://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 work has the LPPL maintenance status `maintained'.
-%%
+%%
%% The Current Maintainer of this work is the LaTeX3 Project.
%%
%% ====================================================================
diff --git a/Master/texmf-dist/source/latex/amsmath/amsopn.dtx b/Master/texmf-dist/source/latex/amsmath/amsopn.dtx
index b7047377f3a..35c3b1605bc 100644
--- a/Master/texmf-dist/source/latex/amsmath/amsopn.dtx
+++ b/Master/texmf-dist/source/latex/amsmath/amsopn.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -11,9 +11,9 @@
% https://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 work has the LPPL maintenance status `maintained'.
-%
+%
% The Current Maintainer of this work is the LaTeX3 Project.
%
% \fi
diff --git a/Master/texmf-dist/source/latex/amsmath/amsopn.ins b/Master/texmf-dist/source/latex/amsmath/amsopn.ins
index 8c977446cc2..84aff6243b9 100644
--- a/Master/texmf-dist/source/latex/amsmath/amsopn.ins
+++ b/Master/texmf-dist/source/latex/amsmath/amsopn.ins
@@ -1,7 +1,7 @@
-%%
+%%
%% Copyright 2010 American Mathematical Society.
%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
-%%
+%%
%% This work 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.
@@ -9,9 +9,9 @@
%% https://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 work has the LPPL maintenance status `maintained'.
-%%
+%%
%% The Current Maintainer of this work is the LaTeX3 Project.
%%
%% ====================================================================
diff --git a/Master/texmf-dist/source/latex/amsmath/amstext.dtx b/Master/texmf-dist/source/latex/amsmath/amstext.dtx
index a4c9aeb5d98..a5e8491dc2b 100644
--- a/Master/texmf-dist/source/latex/amsmath/amstext.dtx
+++ b/Master/texmf-dist/source/latex/amsmath/amstext.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -11,9 +11,9 @@
% https://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 work has the LPPL maintenance status `maintained'.
-%
+%
% The Current Maintainer of this work is the LaTeX3 Project.
%
% \fi
diff --git a/Master/texmf-dist/source/latex/amsmath/amstext.ins b/Master/texmf-dist/source/latex/amsmath/amstext.ins
index 84fcb0cb951..5f9a5c4076a 100644
--- a/Master/texmf-dist/source/latex/amsmath/amstext.ins
+++ b/Master/texmf-dist/source/latex/amsmath/amstext.ins
@@ -1,7 +1,7 @@
-%%
+%%
%% Copyright 2010 American Mathematical Society.
%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
-%%
+%%
%% This work 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.
@@ -9,9 +9,9 @@
%% https://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 work has the LPPL maintenance status `maintained'.
-%%
+%%
%% The Current Maintainer of this work is the LaTeX3 Project.
%%
%% ====================================================================
@@ -48,4 +48,3 @@ The Current Maintainer of this work is the LaTeX3 project.
}
\endbatchfile
-
diff --git a/Master/texmf-dist/source/latex/amsmath/amsxtra.dtx b/Master/texmf-dist/source/latex/amsmath/amsxtra.dtx
index 2165dde41ad..9cc0b710273 100644
--- a/Master/texmf-dist/source/latex/amsmath/amsxtra.dtx
+++ b/Master/texmf-dist/source/latex/amsmath/amsxtra.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society.
+% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -11,9 +11,9 @@
% https://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 work has the LPPL maintenance status `maintained'.
-%
+%
% The Current Maintainer of this work is the LaTeX3 Project.
%
% \fi
diff --git a/Master/texmf-dist/source/latex/amsmath/amsxtra.ins b/Master/texmf-dist/source/latex/amsmath/amsxtra.ins
index 9e739c3d4b9..bbcd08e3f7a 100644
--- a/Master/texmf-dist/source/latex/amsmath/amsxtra.ins
+++ b/Master/texmf-dist/source/latex/amsmath/amsxtra.ins
@@ -1,7 +1,7 @@
-%%
+%%
%% Copyright 2010 American Mathematical Society.
%% Copyright 2016 LaTeX3 Project and American Mathematical Society.
-%%
+%%
%% This work 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.
@@ -9,9 +9,9 @@
%% https://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 work has the LPPL maintenance status `maintained'.
-%%
+%%
%% The Current Maintainer of this work is the LaTeX3 Project.
%%
%% ====================================================================
@@ -48,4 +48,3 @@ The Current Maintainer of this work is the LaTeX3 project.
}
\endbatchfile
-
diff --git a/Master/texmf-dist/source/latex/base/alltt.dtx b/Master/texmf-dist/source/latex/base/alltt.dtx
index c106b5a97ff..2c9e22a1243 100644
--- a/Master/texmf-dist/source/latex/base/alltt.dtx
+++ b/Master/texmf-dist/source/latex/base/alltt.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/alltt.ins b/Master/texmf-dist/source/latex/base/alltt.ins
index e60d1f6df37..adb3838a473 100644
--- a/Master/texmf-dist/source/latex/base/alltt.ins
+++ b/Master/texmf-dist/source/latex/base/alltt.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
diff --git a/Master/texmf-dist/source/latex/base/classes.dtx b/Master/texmf-dist/source/latex/base/classes.dtx
index 1de8095a6e1..ea3b014c897 100644
--- a/Master/texmf-dist/source/latex/base/classes.dtx
+++ b/Master/texmf-dist/source/latex/base/classes.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -53,7 +53,7 @@
%<*driver>
\ProvidesFile{classes.drv}
%</driver>
- [2019/10/25 v1.4k
+ [2019/12/20 v1.4l
%<article|report|book> Standard LaTeX document class]
%<10pt|11pt|12pt> Standard LaTeX file (size option)]
% \end{macrocode}
@@ -213,7 +213,7 @@
% \changes{v1.3l}{1995/10/20}{Disabled in compatibility mode all
% options that are new in \LaTeXe.}
% \changes{v1.3v}{1997/06/16}{Documentation fixes.}
-% \changes{v1.4j}{2019/08/27}{Various commands made robust}
+% \changes{v1.4j}{2019/08/27}{Various commands made robust}
%
%
% \title{Standard Document Classes for \LaTeX{} version 2e\thanks{This
@@ -611,11 +611,11 @@
\normalsize
% \end{macrocode}
% We use |\MakeRobust| instead of |\DeclareRobustCommand| above to avoid a log
-% entry for the redefinition. But if we are running in in a rollback situation
+% entry for the redefinition. But if we are running in a rollback situation
% (prior to 2015) we don't touch it.
-% \changes{v1.4k}{2019/10/25}{Roll back handling (gh/201)}
+% \changes{v1.4k}{2019/10/25}{Roll back handling (gh/201)}
% \begin{macrocode}
-\ifx\MakeRobust\@undefined \else
+\ifx\MakeRobust\@undefined \else
\MakeRobust\normalsize
\fi
% \end{macrocode}
@@ -2949,15 +2949,33 @@
% \begin{macro}{\labelitemiv}
% Itemization is controlled by four commands: |\labelitemi|,
% |\labelitemii|, |\labelitemiii|, and |\labelitemiv|, which define
-% the labels of thevarious itemization levels: the symbols used are
+% the labels of the various itemization levels: the symbols used are
% bullet, bold en-dash, centered asterisk and centred dot.
%
% \begin{macrocode}
-\newcommand\labelitemi{\textbullet}
-\newcommand\labelitemii{\normalfont\bfseries \textendash}
-\newcommand\labelitemiii{\textasteriskcentered}
-\newcommand\labelitemiv{\textperiodcentered}
+\newcommand\labelitemi {\labelitemfont \textbullet}
+\newcommand\labelitemii {\labelitemfont \bfseries \textendash}
+\newcommand\labelitemiii{\labelitemfont \textasteriskcentered}
+\newcommand\labelitemiv{ \labelitemfont \textperiodcentered}
% \end{macrocode}
+%
+% \begin{macro}{\labelitemfont}
+% The default definition for \cs{labelitemfont} is to reset the
+% font to \cs{normalfont} so that always the same symbol is
+% produced regardless of surrounding conditions.
+%
+% \changes{v1.4l}{2019/12/20}{Normalize label fonts}
+% A possible alternative would be
+%\begin{verbatim}
+%\renewcommand\labelitemfont{%
+% \fontseries\seriesdefault
+% \fontshape\shapedefault\selectfont}
+%\end{verbatim}
+% which resets series and shape doesn't touch the family.
+% \begin{macrocode}
+\newcommand\labelitemfont{\normalfont}
+% \end{macrocode}
+% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
@@ -3758,7 +3776,7 @@
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
% \end{macrocode}
-% The the actual table of contents is made by calling
+% The actual table of contents is made by calling
% |\@starttoc{toc}|. After that we restore twocolumn mode if
% necessary.
% \begin{macrocode}
@@ -3826,7 +3844,7 @@
\large \bfseries #1\hfil
\hb@xt@\@pnumwidth{\hss #2%
% \end{macrocode}
-%
+%
% \changes{v1.4i}{2018/09/03}{Prevent protrusion
% (\url{https://tex.stackexchange.com/q/172785/10109})}
% \begin{macrocode}
@@ -3894,7 +3912,7 @@
#1\nobreak\hfil
\nobreak\hb@xt@\@pnumwidth{\hss #2%
% \end{macrocode}
-%
+%
% \changes{v1.4i}{2018/09/03}{Prevent protrusion
% (\url{https://tex.stackexchange.com/q/172785/10109})}
% \begin{macrocode}
@@ -3951,7 +3969,7 @@
#1\nobreak\hfil
\nobreak\hb@xt@\@pnumwidth{\hss #2%
% \end{macrocode}
-%
+%
% \changes{v1.4i}{2018/09/03}{Prevent protrusion
% (\url{https://tex.stackexchange.com/q/172785/10109})}
% \begin{macrocode}
@@ -4343,7 +4361,7 @@
% defined below in command names. These commands may be redefined in
% any class or package that is customising \LaTeX\ for use with
% non-English languages.
-% \changes{v1.3h}{1995/07/20}{Split up to save save stack /1742}
+% \changes{v1.3h}{1995/07/20}{Split up to save on save stack /1742}
%
% \begin{macro}{\contentsname}
% \begin{macro}{\listfigurename}
@@ -4478,4 +4496,3 @@
% \Finale
%
\endinput
-
diff --git a/Master/texmf-dist/source/latex/base/classes.ins b/Master/texmf-dist/source/latex/base/classes.ins
index b56871b111e..13d49747272 100644
--- a/Master/texmf-dist/source/latex/base/classes.ins
+++ b/Master/texmf-dist/source/latex/base/classes.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
@@ -118,4 +118,3 @@ extension .ins) which are part of the distribution.
}
\endbatchfile
-
diff --git a/Master/texmf-dist/source/latex/base/cmextra.ins b/Master/texmf-dist/source/latex/base/cmextra.ins
index 00a85544645..05776a68075 100644
--- a/Master/texmf-dist/source/latex/base/cmextra.ins
+++ b/Master/texmf-dist/source/latex/base/cmextra.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file may only be distributed together with a copy of the LaTeX
@@ -90,39 +90,39 @@ making successful document exchange impossible.
%
% \Ask\answer{%
% **************************************************************
-% ^^J*
+% ^^J*
% ^^J* Do you have the Concrete Roman fonts installed on your system,
% ^^J* or do you intend to install them?
-% ^^J*
+% ^^J*
% ^^J* If so please answer with `y' otherwise with `n' below.
% ^^J*
-% ^^J* You can easily redo this installation later in case you
+% ^^J* You can easily redo this installation later in case you
% ^^J* change your mind.
% ^^J**************************************************************}
-%
+%
% {\ifx\answer\y
-%
+%
% \Msg{*** Generating font defs for Cork encoded fonts ***}
% \Msg{*** Generating font defs for old TeX Text encoding ***}
% \Msg{*** Generating font defs for math italic encoding ***}
-%
+%
% \generate{%
% \file{t1ccr.fd}{\from{cmfonts.fdd}{fd,T1ccr}}
% \file{ot1ccr.fd}{\from{cmfonts.fdd}{fd,OT1ccr}}
% \file{omlccm.fd}{\from{cmfonts.fdd}{fd,OMLccm}}}
-%
+%
% \fi}
\Ask\answer{%
**************************************************************
- ^^J*
+ ^^J*
^^J* Do you have the cyrillic fonts from the University of
^^J* Washington installed on your system,
^^J* or do you intend to install them?
- ^^J*
+ ^^J*
^^J* If so please answer with `y' otherwise with `n' below.
^^J*
- ^^J* You can easily redo this installation later in case you
+ ^^J* You can easily redo this installation later in case you
^^J* change your mind.
^^J*
^^J* Normally it is better *not* to install these files, but use
diff --git a/Master/texmf-dist/source/latex/base/cmfonts.fdd b/Master/texmf-dist/source/latex/base/cmfonts.fdd
index f3303947926..1eb318b0492 100644
--- a/Master/texmf-dist/source/latex/base/cmfonts.fdd
+++ b/Master/texmf-dist/source/latex/base/cmfonts.fdd
@@ -2,31 +2,30 @@
%
% Copyright 1993-2019
% The LaTeX3 Project and any individual authors listed elsewhere
-% in this file.
-%
+% 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
% https://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
+% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 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
+%
+% 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
-% \CheckSum{295}
%
%\iffalse This is a META comment
%
@@ -68,7 +67,7 @@
%<*driver, >
\ProvidesFile{cmfonts.drv}
%</driver, >
- [2014/09/29 v2.5h Standard LaTeX font definitions]
+ [2019/12/16 v2.5j Standard LaTeX font definitions]
%
%<*driver>
\documentclass{ltxdoc}
@@ -88,7 +87,7 @@
%\fi
%
%
-%
+%
% \changes{v2.5e}{1997/06/16}{Replaced reference to DC-fonts by ec
% fonts.}
% \changes{v2.5c}{1997/05/26}{Removed spaces in and around arguments
@@ -107,11 +106,11 @@
% {Dont force T1 hyphenchar to 127. latex/1853}
% \changes{v2.4c}{1995/11/07}{Use decimal rather than octal character
% specification for \cs{hyphenchar} and \cs{skewchar} so that there is
-% no problem with an active quote character.}
+% no problem with an active quote character.}
% \changes{v2.4a}{1995/10/22}{Added support for new (v1.2) DC fonts
% and text companion fonts (TS1 encoding).}
% \changes{v2.3d}{1994/11/02}{Added more font substitutions for
-% \cs{pounds}.}
+% \cs{pounds}.}
% \changes{v2.3d}{1994/10/30}{Added OMLcmr.fd and OMScmr.fd.}
% \changes{v2.3b}{1994/05/12}{Added \cs{ProvidesFile} commands}
% \changes{v2.3a}{1994/05/03}{Included definitions for
@@ -514,7 +513,7 @@
%<ec>ecssdc10
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<*!new&!ec>
%<+T1cmss>%%%%%%%% bold extended series
@@ -613,7 +612,7 @@
%
% \subsubsection{Computer Modern Variable Typewriter}
%
-% The Computer Modern Variable Typewriter family is the
+% The Computer Modern Variable Typewriter family is the
% proportional spaced version of the Computer Modern Typewriter
% family. It is implemented as a separate family to allow easy use
% in normal text, including changes of shape/series etc if available.
@@ -915,8 +914,13 @@
%<+OT1cmss,Ucmss>% Font undefined, therefore substituted
%<+OT1cmss>\DeclareFontShape{OT1}{cmss}{m}{it}
%<+Ucmss>\DeclareFontShape{U}{cmss}{m}{it}%
-%<-nowarn> {<->sub*cmss/m/sl}{}
-%<+nowarn> {<->ssub*cmss/m/sl}{}
+% \end{macrocode}
+% Never warn about substituting \texttt{sl} for \texttt{it} because
+% that is common practise for sans serif fonts.
+% \changes{v2.5i}{2019/12/02}{Silent warning for cmss/it substitution
+% (gh/172)}
+% \begin{macrocode}
+ {<->ssub*cmss/m/sl}{}
%<+OT1cmss>\DeclareFontShape{OT1}{cmss}{m}{sl}
%<+Ucmss>\DeclareFontShape{U}{cmss}{m}{sl}%
{%
@@ -943,7 +947,7 @@
%<-ori> <5><6><7><8><9>cmssdc10%
<10><10.95><12><14.4><17.28><20.74><24.88>cmssdc10%
}{}
-
+
%<+OT1cmss,Ucmss>%%%%%%%%% bold extended series
%<+OT1cmss>\DeclareFontShape{OT1}{cmss}{bx}{n}
%<+Ucmss>\DeclareFontShape{U}{cmss}{bx}{n}%
@@ -1021,6 +1025,13 @@
%<+Ucmtt>\DeclareFontShape{U}{cmtt}{bx}{it}%
%<-nowarn> {<->sub*cmtt/m/it}{}
%<+nowarn> {<->ssub*cmtt/m/it}{}
+% \end{macrocode}
+%
+% \changes{v2.5j}{2019/12/16}{Provide substitutions for cmtt/bx/sl}
+% \begin{macrocode}
+%<+OT1cmtt>\DeclareFontShape{OT1}{cmtt}{bx}{sl}
+%<-nowarn> {<->sub*cmtt/m/n}{}
+%<+nowarn> {<->ssub*cmtt/m/n}{}
%<+OT1cmtt>\DeclareFontShape{OT1}{cmtt}{bx}{ui}
%<+Ucmtt>\DeclareFontShape{U}{cmtt}{bx}{ui}%
%<-nowarn> {<->sub*cmtt/m/it}{}
@@ -1031,7 +1042,7 @@
%
% \subsubsection{Computer Modern Variable Typewriter (\texttt{OT1})}
%
-% The Computer Modern Variable Typewriter family is the
+% The Computer Modern Variable Typewriter family is the
% proportional spaced version of the Computer Modern Typewriter
% family. It is implemented as a separate family to allow easy use
% in normal text, including changes of shape/series etc if available.
@@ -1126,7 +1137,7 @@
%
% \subsubsection{Computer Modern Roman Math italics}
%
-% \changes{v2.3d}{1994/10/30}{Added OMLcmr font substitutions pointing
+% \changes{v2.3d}{1994/10/30}{Added OMLcmr font substitutions pointing
% to OMLcmm. }
% \changes{v2.3f}{1995/04/22}{Corrected OMLcmr \cs{skewchar}}
%
@@ -1153,7 +1164,7 @@
{<->ssub*cmm/b/it}{}
%</OMLcmr>
% \end{macrocode}
-%
+%
% \subsubsection{Computer Modern Math symbols}
%
% \changes{v2.3a}{1994/05/02}{Included font definitions for
@@ -1174,10 +1185,10 @@
%
% \subsubsection{Computer Modern Roman Math symbols}
%
-% \changes{v2.3d}{1994/10/30}{Added OMScmr font substitutions pointing
+% \changes{v2.3d}{1994/10/30}{Added OMScmr font substitutions pointing
% to OMScmm. }
%
-% Some text symbols like `\P' and `\dag' are kept in the OMS encoding,
+% Some text symbols like `\P' and `\dag' are kept in the OMS encoding,
% so we need font substititutions from OMS/cmr to OMS/cmsy.
% \begin{macrocode}
%<*OMScmr>
diff --git a/Master/texmf-dist/source/latex/base/cmfonts.ins b/Master/texmf-dist/source/latex/base/cmfonts.ins
index b28cb7ba29d..b5ed3e3f106 100644
--- a/Master/texmf-dist/source/latex/base/cmfonts.ins
+++ b/Master/texmf-dist/source/latex/base/cmfonts.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file may only be distributed together with a copy of the LaTeX
@@ -104,7 +104,7 @@ making successful document exchange impossible.
\file{omscmr.fd}{\from{cmfonts.fdd}{OMScmr}}
}
-
+
\ifToplevel{
\Msg{***********************************************************}
\Msg{*}
@@ -119,6 +119,5 @@ making successful document exchange impossible.
\Msg{* Happy TeXing}
\Msg{***********************************************************}
}
-
-\endbatchfile
+\endbatchfile
diff --git a/Master/texmf-dist/source/latex/base/doc.dtx b/Master/texmf-dist/source/latex/base/doc.dtx
index e7f2b44c2f3..1341f56b8b2 100644
--- a/Master/texmf-dist/source/latex/base/doc.dtx
+++ b/Master/texmf-dist/source/latex/base/doc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -35,7 +35,7 @@
%<+package|shortvrb>\NeedsTeXFormat{LaTeX2e}[1994/12/01]
%<+package> \ProvidesPackage{doc}
%<+shortvrb>\ProvidesPackage{shortvrb}
-%<+package|shortvrb> [2019/11/10 v2.1k
+%<+package|shortvrb> [2019/12/16 v2.1l
%<+package|shortvrb> Standard LaTeX documentation package (FMi)]
%\catcode`\<=12
%
@@ -1448,18 +1448,19 @@
% bothered since doc-sources should be up-to-date but since the
% request came from someone called David Carlisle \ldots :-)
% \changes{v1.9y}{1996/01/26}{Support compat mode}
+% \changes{v2.1l}{2019/12/16}{Use \cs{shapedefault} not \cs{updefault} for extended NFSS}
% \begin{macrocode}
\def\MacroFont{\small
\usefont\encodingdefault
\ttdefault
\mddefault
- \updefault
+ \shapedefault
}%
\else
\def\MacroFont{\fontencoding\encodingdefault
\fontfamily\ttdefault
\fontseries\mddefault
- \fontshape\updefault
+ \fontshape\shapedefault
\small}%
\fi
}{}
@@ -2006,7 +2007,7 @@
% \begin{macrocode}
\@namedef{verbatim*}{\@beginparpenalty \predisplaypenalty \@verbatim
% \end{macrocode}
-%
+%
% \changes{v2.1j}{2019/11/03}{Kernel now sets up \cs{verbvisiblespace} (gh/205)}
% \changes{v2.1k}{2019/11/10}{Put the definition into the right command :-( (gh/205)}
% \begin{macrocode}
@@ -4542,7 +4543,7 @@
\ifnum\check@sum>\m@ne
% \end{macrocode}
% We do nothing if the checksum in the file is negative (or not given as
-% it is initialized with -1).
+% it is initialized with -1).
% \begin{macrocode}
\ifnum\check@sum=\z@
\typeout{**********************************}%
diff --git a/Master/texmf-dist/source/latex/base/docstrip.dtx b/Master/texmf-dist/source/latex/base/docstrip.dtx
index 5ee3d1b7ae3..9cc7945d602 100644
--- a/Master/texmf-dist/source/latex/base/docstrip.dtx
+++ b/Master/texmf-dist/source/latex/base/docstrip.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -316,8 +316,8 @@
% \DeclareDir{makeindex}{idxstyle}
%\end{verbatim}
% This will cause base latex files and font descriptions to be
-% written to directory |c:\emtex\texinput\latex2e|, files of the
-% \texttt{tools} package to be written to |c:\emtex\texinput\tools|
+% written to directory |c:\emtex\texinput\latex2e|, files of the
+% \texttt{tools} package to be written to |c:\emtex\texinput\tools|
% and makeindex files to |c:\emtex\idxstyle|.
%
% Sometimes it is desirable to put some files outside of the base
diff --git a/Master/texmf-dist/source/latex/base/docstrip.ins b/Master/texmf-dist/source/latex/base/docstrip.ins
index 7b68b7ce85b..281a376761b 100644
--- a/Master/texmf-dist/source/latex/base/docstrip.ins
+++ b/Master/texmf-dist/source/latex/base/docstrip.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -52,9 +52,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -64,7 +64,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -77,8 +77,8 @@ 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
+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.
\endpreamble
diff --git a/Master/texmf-dist/source/latex/base/ec.ins b/Master/texmf-dist/source/latex/base/ec.ins
index 196396a24a7..4283ef1ddda 100644
--- a/Master/texmf-dist/source/latex/base/ec.ins
+++ b/Master/texmf-dist/source/latex/base/ec.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file may only be distributed together with a copy of the LaTeX
@@ -87,7 +87,7 @@ making successful document exchange impossible.
\Msg{*** Generating font defs for Cork encoded
and Text Companion fonts ***}
-
+
\generate{
\file{t1cmfib.fd}{
\from{cmfonts.fdd}{fd,T1cmfib,ec}}
@@ -137,5 +137,5 @@ making successful document exchange impossible.
\Msg{* Happy TeXing}
\Msg{***********************************************************}
}
-
+
\endbatchfile
diff --git a/Master/texmf-dist/source/latex/base/exscale.dtx b/Master/texmf-dist/source/latex/base/exscale.dtx
index 575a89ce687..f13e0116cd1 100644
--- a/Master/texmf-dist/source/latex/base/exscale.dtx
+++ b/Master/texmf-dist/source/latex/base/exscale.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -174,7 +174,7 @@
% Now we can define the macros. Note: |\n@space| sets the internal
% variables |\nulldelimiterspace| and |\mathsurround| to zero length.
%
-% Older kernels (e.g in roll back didn't have LR-mode with the
+% Older kernels (e.g in roll back didn't have LR-mode with the
% these commands) so we test for the support comment. This only works
% if the rollback request is before loading this package but that is
% where it should be.
@@ -192,7 +192,7 @@
\def\bigg{\bBigg@\tw@}
\def\Bigg{\bBigg@{2.5}}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/exscale.ins b/Master/texmf-dist/source/latex/base/exscale.ins
index cc8d8d9ae90..d504b056cb4 100644
--- a/Master/texmf-dist/source/latex/base/exscale.ins
+++ b/Master/texmf-dist/source/latex/base/exscale.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
diff --git a/Master/texmf-dist/source/latex/base/fix-cm.dtx b/Master/texmf-dist/source/latex/base/fix-cm.dtx
index 7f770cf8c00..e4c384ee70c 100644
--- a/Master/texmf-dist/source/latex/base/fix-cm.dtx
+++ b/Master/texmf-dist/source/latex/base/fix-cm.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/fix-cm.ins b/Master/texmf-dist/source/latex/base/fix-cm.ins
index eb4547d5761..0407d39630b 100644
--- a/Master/texmf-dist/source/latex/base/fix-cm.ins
+++ b/Master/texmf-dist/source/latex/base/fix-cm.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
diff --git a/Master/texmf-dist/source/latex/base/fontdef.dtx b/Master/texmf-dist/source/latex/base/fontdef.dtx
index c9c5f5d77dc..4dd5ea38456 100644
--- a/Master/texmf-dist/source/latex/base/fontdef.dtx
+++ b/Master/texmf-dist/source/latex/base/fontdef.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -39,7 +39,7 @@
%<driver, >\ProvidesFile{fontdef.drv}
% \fi
% \ProvidesFile{fontdef.dtx}
-%<-latexrelease> [2019/09/21 v3.0d LaTeX Kernel
+%<-latexrelease> [2020/01/25 v3.0f LaTeX Kernel
% \iftrue (\else
%<text, >(Text
%<math, >(Math
@@ -102,7 +102,7 @@
%
% You are not allowed to change this source file! If you want to
% change the default encodings and/or the font shape groups preloaded
-% you should should create a copy of \texttt{fonttext.ltx}
+% you should create a copy of \texttt{fonttext.ltx}
% under the name \texttt{fonttext.cfg} and change this copy. If
% \LaTeXe{} finds a file of this name it will use it, otherwise it
% uses the standard file which is \texttt{fontdef.ltx}.
@@ -249,22 +249,43 @@
% \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}
+% Documents containing a lot of accented characters should really
+% be using T1 fonts. We therefore load this last so that T1 encoding
+% specific commands are executed as fast as possible (encoding
+% files are no longer reloaded in \texttt{fontenc}.
+% \changes{v3.0f}{2020/01/25}{Load t1enc.def last (gh/255)}
+% \begin{macrocode}
+\input {ot1enc.def}
+\input {t1enc.def}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\input{ts1enc.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
+% We then set the default text font encoding. This will
% hopefully change some day to |T1|. This setting should \emph{not}
% be changed to produce a portable format.
% \begin{macrocode}
\fontencoding{OT1}
% \end{macrocode}
%
+%
+%
+%
+% \begin{macrocode}
+\def\rmsubstdefault{cmr}
+\def\sfsubstdefault{cmss}
+\def\ttsubstdefault{cmtt}
+\LoadFontDefinitionFile{TS1}{cmr}
+% \end{macrocode}
+%
% \begin{macrocode}
\else
% \end{macrocode}
@@ -273,12 +294,16 @@
\input {tuenc.def}
\fontencoding{TU}
\DeclareFontSubstitution{TU}{lmr}{m}{n}
-\begingroup
-\nfss@catcodes
-\input {tulmr.fd}
-\input {tulmss.fd}
-\input {tulmtt.fd}
-\endgroup
+\LoadFontDefinitionFile{TU}{lmr}
+\LoadFontDefinitionFile{TU}{lmss}
+\LoadFontDefinitionFile{TU}{lmtt}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\rmsubstdefault{lmr}
+\def\sfsubstdefault{lmss}
+\def\ttsubstdefault{lmtt}
+\LoadFontDefinitionFile{TS1}{lmr}
% \end{macrocode}
%
% \begin{macrocode}
@@ -442,8 +467,9 @@
% \begin{macro}{\bfdefault}
% \begin{macro}{\mddefault}
% Series changing commands are influenced by the following hooks.
+% \changes{v3.0e}{2019/12/17}{Set \cs{bfdefault} to ``b''}
% \begin{macrocode}
-\newcommand\bfdefault{bx}
+\newcommand\bfdefault{b} % overwritten below
\newcommand\mddefault{m}
% \end{macrocode}
% \end{macro}
@@ -453,18 +479,39 @@
% \begin{macro}{\sldefault}
% \begin{macro}{\scdefault}
% \begin{macro}{\updefault}
+%
% Shape changing commands use the following hooks.
+% \changes{v3.0e}{2019/12/17}{Set \cs{updefault} to ``up''}
% \begin{macrocode}
\newcommand\itdefault{it}
\newcommand\sldefault{sl}
\newcommand\scdefault{sc}
-\newcommand\updefault{n}
+\newcommand\updefault{up} % overwritten below
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
+
+% \begin{macrocode}
+%</text>
+%<*text|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\updefault}{font defaults change}%
+\renewcommand\updefault{up}
+\renewcommand\bfdefault{b}
+%</text|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\updefault}{font defaults change}%
+%<latexrelease>
+%<latexrelease>\renewcommand\updefault{n}
+%<latexrelease>\renewcommand\bfdefault{bx}
+%<latexrelease>\EndIncludeInRelease
+%<*text>
+% \end{macrocode}
+%
% \begin{macro}{\familydefault}
% \begin{macro}{\seriesdefault}
% \begin{macro}{\shapedefault}
@@ -477,7 +524,14 @@
% \begin{macrocode}
\newcommand\familydefault{\rmdefault}
\newcommand\seriesdefault{\mddefault}
-\newcommand\shapedefault{\updefault}
+% \end{macrocode}
+% In previous releases \cs{shapedefault} pointed to \cs{updefault}
+% which resolved to \texttt{n}, but these days that is no longer
+% the case (and \texttt{up} is wrong when you want to do a
+% reset. So we now use \texttt{n} explicitly.
+% \begin{macrocode}
+% \changes{v3.0e}{2019/12/17}{Set \cs{shapedefault} explicitly to ``n''}
+\newcommand\shapedefault{n}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -854,7 +908,15 @@
\DeclareMathSymbol{\forall}{\mathord}{symbols}{"38}
\DeclareMathSymbol{\exists}{\mathord}{symbols}{"39}
\DeclareMathSymbol{\neg}{\mathord}{symbols}{"3A}
- \let\lnot=\neg
+% \end{macrocode}
+% Alias:
+% \changes{v3.0e}{2019/12/21}{Distangle alias (gh/184)}
+% \begin{macrocode}
+% \let\lnot=\neg
+\DeclareMathSymbol{\lnot}{\mathord}{symbols}{"3A}
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareMathSymbol{\flat}{\mathord}{letters}{"5B}
\DeclareMathSymbol{\natural}{\mathord}{letters}{"5C}
\DeclareMathSymbol{\sharp}{\mathord}{letters}{"5D}
@@ -863,9 +925,9 @@
\DeclareMathSymbol{\heartsuit}{\mathord}{symbols}{"7E}
\DeclareMathSymbol{\spadesuit}{\mathord}{symbols}{"7F}
% \end{macrocode}
-%
+%
% \changes{v3.0c}{2019/08/27}{Various commands made robust throughout
-% the file}
+% the file}
% \begin{macrocode}
\DeclareRobustCommand\hbar{{\mathchar'26\mkern-9muh}}
\DeclareRobustCommand\surd{{\mathchar"1270}}
@@ -908,18 +970,33 @@
\DeclareMathSymbol{\triangleright}{\mathbin}{letters}{"2E}
\DeclareMathSymbol{\bigtriangleup}{\mathbin}{symbols}{"34}
\DeclareMathSymbol{\bigtriangledown}{\mathbin}{symbols}{"35}
- \let \varbigtriangledown \bigtriangledown
- \let \varbigtriangleup \bigtriangleup
+% \end{macrocode}
+% Alias:
+% \changes{v3.0e}{2019/12/21}{Distangle alias (gh/184)}
+% \begin{macrocode}
+% \let \varbigtriangledown \bigtriangledown
+% \let \varbigtriangleup \bigtriangleup
+\DeclareMathSymbol{\varbigtriangleup}{\mathbin}{symbols}{"34}
+\DeclareMathSymbol{\varbigtriangledown}{\mathbin}{symbols}{"35}
% \end{macrocode}
%
-% These last two synonyms are needed because the \textsf{stamryrd}
+% These last two synonyms are needed because the \textsf{stmaryrd}
% package redefines them as Operators.
%
% \begin{macrocode}
\DeclareMathSymbol{\wedge}{\mathbin}{symbols}{"5E}
- \let\land=\wedge
\DeclareMathSymbol{\vee}{\mathbin}{symbols}{"5F}
- \let\lor=\vee
+% \end{macrocode}
+% Alias:
+% \changes{v3.0e}{2019/12/21}{Distangle alias (gh/184)}
+% \begin{macrocode}
+% \let\land=\wedge
+% \let\lor=\vee
+\DeclareMathSymbol{\land}{\mathbin}{symbols}{"5E}
+\DeclareMathSymbol{\lor}{\mathbin}{symbols}{"5F}
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareMathSymbol{\cap}{\mathbin}{symbols}{"5C}
\DeclareMathSymbol{\cup}{\mathbin}{symbols}{"5B}
\DeclareMathSymbol{\ddagger}{\mathbin}{symbols}{"7A}
@@ -966,21 +1043,31 @@
\DeclareMathSymbol{\Leftrightarrow}{\mathrel}{symbols}{"2C}
\DeclareMathSymbol{\Leftarrow}{\mathrel}{symbols}{"28}
\DeclareMathSymbol{\Rightarrow}{\mathrel}{symbols}{"29}
-\DeclareRobustCommand\neq{\not=}
+ \DeclareRobustCommand\neq{\not=}
% \end{macrocode}
% As \cs{neq} is robust we should not use \cs{let} to define
-% \cs{ne} as then then it would change if \cs{neq} changes.
+% \cs{ne} as then it would change if \cs{neq} changes.
% \changes{v3.0d}{2019/09/21}{Distangle alias (gh/184)}
% \begin{macrocode}
-%\let\ne=\neq
-\DeclareRobustCommand\ne{\not=}
+ \DeclareRobustCommand\ne{\not=}
% \end{macrocode}
-% It is ok to use \cs{let} for those declared by \cs{DeclareMathSymbol}.
+% It would ok to use \cs{let} for those declared by
+% \cs{DeclareMathSymbol} but for a cleaner interface we avoid it
+% always (just in case the internals change).
% \begin{macrocode}
\DeclareMathSymbol{\leq}{\mathrel}{symbols}{"14}
- \let\le=\leq
\DeclareMathSymbol{\geq}{\mathrel}{symbols}{"15}
- \let\ge=\geq
+% \end{macrocode}
+% Alias:
+% \changes{v3.0e}{2019/12/21}{Distangle alias (gh/184)}
+% \begin{macrocode}
+% \let\le=\leq
+% \let\ge=\geq
+\DeclareMathSymbol{\le}{\mathrel}{symbols}{"14}
+\DeclareMathSymbol{\ge}{\mathrel}{symbols}{"15}
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareMathSymbol{\succ}{\mathrel}{symbols}{"1F}
\DeclareMathSymbol{\prec}{\mathrel}{symbols}{"1E}
\DeclareMathSymbol{\approx}{\mathrel}{symbols}{"19}
@@ -992,15 +1079,32 @@
\DeclareMathSymbol{\subseteq}{\mathrel}{symbols}{"12}
\DeclareMathSymbol{\in}{\mathrel}{symbols}{"32}
\DeclareMathSymbol{\ni}{\mathrel}{symbols}{"33}
- \let\owns=\ni
+% \end{macrocode}
+% Alias:
+% \changes{v3.0e}{2019/12/21}{Distangle alias (gh/184)}
+% \begin{macrocode}
+% \let\owns=\ni
+\DeclareMathSymbol{\owns}{\mathrel}{symbols}{"33}
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareMathSymbol{\gg}{\mathrel}{symbols}{"1D}
\DeclareMathSymbol{\ll}{\mathrel}{symbols}{"1C}
\DeclareMathSymbol{\not}{\mathrel}{symbols}{"36}
\DeclareMathSymbol{\leftrightarrow}{\mathrel}{symbols}{"24}
\DeclareMathSymbol{\leftarrow}{\mathrel}{symbols}{"20}
- \let\gets=\leftarrow
\DeclareMathSymbol{\rightarrow}{\mathrel}{symbols}{"21}
- \let\to=\rightarrow
+% \end{macrocode}
+% Alias:
+% \changes{v3.0e}{2019/12/21}{Distangle alias (gh/184)}
+% \begin{macrocode}
+% \let\gets=\leftarrow
+% \let\to=\rightarrow
+\DeclareMathSymbol{\gets}{\mathrel}{symbols}{"20}
+\DeclareMathSymbol{\to}{\mathrel}{symbols}{"21}
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareMathSymbol{\mapstochar}{\mathrel}{symbols}{"37}
\DeclareRobustCommand\mapsto{\mapstochar\rightarrow}
\DeclareMathSymbol{\sim}{\mathrel}{symbols}{"18}
@@ -1343,7 +1447,7 @@
%
% \subsubsection{Biggggg}
%
-% \changes{v3.0b}{2018/09/24}{Start LR-mode if necessary (git/49)}
+% \changes{v3.0b}{2018/09/24}{Start LR-mode if necessary (git/49)}
% \begin{macrocode}
%</math>
%<*math|latexrelease>
@@ -1368,7 +1472,7 @@
%<latexrelease>\EndIncludeInRelease
%<*math>
% \end{macrocode}
-%
+%
% \begin{macrocode}
\def\n@space{\nulldelimiterspace\z@ \m@th}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/format.ins b/Master/texmf-dist/source/latex/base/format.ins
index 5a1bf6e79c6..940161edd5b 100644
--- a/Master/texmf-dist/source/latex/base/format.ins
+++ b/Master/texmf-dist/source/latex/base/format.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
@@ -90,7 +90,7 @@ reports for it can be opened at https://latex-project.org/bugs.html
Copyright 2015
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -100,7 +100,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -113,19 +113,19 @@ 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
+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.
\endpreamble
\let\MetaPrefix\DoubleperCent
\declarepreamble\cfgpreamble
-This is a generated file.
+This is a generated file.
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -135,7 +135,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file may only be distributed together with a copy of the LaTeX
@@ -173,11 +173,13 @@ the system are in the document `cfgguide.tex'.
\from{ltcounts.dtx}{2ekernel}
\from{ltlength.dtx}{2ekernel}
\from{ltfssbas.dtx}{2ekernel}
+ \from{ltfssaxes.dtx}{2ekernel}
\from{ltfsstrc.dtx}{2ekernel}
-% \from{ltfsscmp.dtx}{compat,2ekernel}
+% \from{ltfsscmp.dtx}{compat,2ekernel} % only provided as part of latexrelease.sty!
\from{ltfssdcl.dtx}{compat,2ekernel}
\from{ltfssini.dtx}{compat,2ekernel}
\from{ltfntcmd.dtx}{2ekernel}
+ \from{lttextcomp.dtx}{2ekernel}
\from{ltpageno.dtx}{2ekernel}
\from{ltxref.dtx}{2ekernel}
\from{ltmiscen.dtx}{2ekernel}
@@ -207,11 +209,13 @@ the system are in the document `cfgguide.tex'.
\from{ltmath.dtx}{fleqn}}
\file{leqno.clo}{%
\from{ltmath.dtx}{leqno}}
+%%% generate the textcomp package
+ \file{textcomp.sty}{%
+ \from{lttextcomp.dtx}{TS1sty}}
+ \file{textcomp-2018-08-11.sty}{%
+ \from{lttextcomp.dtx}{TS1oldsty}}
}
-
-
-
\generateFile{oldlfont.sty}{t}{%
\from{oldlfont.dtx}{package}
}
@@ -220,6 +224,10 @@ the system are in the document `cfgguide.tex'.
\from{newlfont.dtx}{package}
}
+
+% expl3-based extensions
+\generate{\file{ltexpl.ltx}{\from{ltexpl.dtx}{2ekernel}}}
+
% luatex support (TeX part)
\generate{\file{ltluatex.tex}{\from{ltluatex.dtx}{tex,plain}}}
@@ -254,7 +262,7 @@ the system are in the document `cfgguide.tex'.
%%%%%%%%%%%%%%%%% Lua code
% This is at the end as the prefix/postamble requirements are
-% different to everything else
+% different to everything else
\def\MetaPrefix{--}
\usepreamble\luapreamble
@@ -262,6 +270,3 @@ the system are in the document `cfgguide.tex'.
\generate{\file{ltluatex.lua}{\from{ltluatex.dtx}{lua}}}
\endbatchfile
-
-
-
diff --git a/Master/texmf-dist/source/latex/base/graphpap.dtx b/Master/texmf-dist/source/latex/base/graphpap.dtx
index 7e4b322f326..ac72f4dca5f 100644
--- a/Master/texmf-dist/source/latex/base/graphpap.dtx
+++ b/Master/texmf-dist/source/latex/base/graphpap.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/graphpap.ins b/Master/texmf-dist/source/latex/base/graphpap.ins
index eb1d356edc6..b5bb800122a 100644
--- a/Master/texmf-dist/source/latex/base/graphpap.ins
+++ b/Master/texmf-dist/source/latex/base/graphpap.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
diff --git a/Master/texmf-dist/source/latex/base/ifthen.dtx b/Master/texmf-dist/source/latex/base/ifthen.dtx
index 1a289df1c35..f2157e094ab 100644
--- a/Master/texmf-dist/source/latex/base/ifthen.dtx
+++ b/Master/texmf-dist/source/latex/base/ifthen.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ifthen.ins b/Master/texmf-dist/source/latex/base/ifthen.ins
index acfa2fcf433..0e813cd5de3 100644
--- a/Master/texmf-dist/source/latex/base/ifthen.ins
+++ b/Master/texmf-dist/source/latex/base/ifthen.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
diff --git a/Master/texmf-dist/source/latex/base/inputenc.dtx b/Master/texmf-dist/source/latex/base/inputenc.dtx
index 65f260826de..641125cc75d 100644
--- a/Master/texmf-dist/source/latex/base/inputenc.dtx
+++ b/Master/texmf-dist/source/latex/base/inputenc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/inputenc.ins b/Master/texmf-dist/source/latex/base/inputenc.ins
index 0831576d768..6494a689eab 100644
--- a/Master/texmf-dist/source/latex/base/inputenc.ins
+++ b/Master/texmf-dist/source/latex/base/inputenc.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
@@ -103,8 +103,8 @@ extension .ins) which are part of the distribution.
\file{latin10.def}{
\from{inputenc.dtx}{latin10}}
}
-
-
+
+
\generate{
\file{cp850.def}{
@@ -122,7 +122,7 @@ extension .ins) which are part of the distribution.
\file{decmulti.def}{
\from{inputenc.dtx}{decmulti}}
}
-
+
\generate{
\file{ascii.def}{
\from{inputenc.dtx}{ascii}}
diff --git a/Master/texmf-dist/source/latex/base/latex209.dtx b/Master/texmf-dist/source/latex/base/latex209.dtx
index 10de2958ba0..6523e65286f 100644
--- a/Master/texmf-dist/source/latex/base/latex209.dtx
+++ b/Master/texmf-dist/source/latex/base/latex209.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/latex209.ins b/Master/texmf-dist/source/latex/base/latex209.ins
index 7bd0eed06a7..bb72f344f1b 100644
--- a/Master/texmf-dist/source/latex/base/latex209.ins
+++ b/Master/texmf-dist/source/latex/base/latex209.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
@@ -88,7 +88,7 @@ extension .ins) which are part of the distribution.
\file{latex209.def}{
\from{latex209.dtx}{head}
\from{oldlfont.dtx}{latex209}
- \from{latex209.dtx}{tail}}
+ \from{latex209.dtx}{tail}}
\file{article.sty}{
\from{latex209.dtx}{article}}
\file{book.sty}{
diff --git a/Master/texmf-dist/source/latex/base/latexrelease.dtx b/Master/texmf-dist/source/latex/base/latexrelease.dtx
index cfb1bff8aaa..5ee39a3a2df 100644
--- a/Master/texmf-dist/source/latex/base/latexrelease.dtx
+++ b/Master/texmf-dist/source/latex/base/latexrelease.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -30,7 +30,7 @@
% \iffalse
%
%<*dtx>
- \def\latexreleaseversion{<date only known in .sty file>}
+ \def\latexreleaseversion{<date only known in .sty file>}
\ProvidesFile{latexrelease.dtx}
%</dtx>
%<driver>\ProvidesFile{latexrelease.drv}
@@ -83,7 +83,7 @@
% explicitly opt-in to bug fixes and improvements, and the vast
% majority of documents did not benefit.
%
-% As described in \LaTeX\ News 22, a new policy is being implemented
+% As described in \LaTeX\ News 22, a new policy is being implemented
% in which improvements will now be added to the format by default,
% and this \Lpack{latexrelease} package may be used to ensure
% stability where needed, either by making a new format use an older
@@ -108,7 +108,7 @@
% the commands defined here to adjust their definitions to the
% specified date as described below.
%
-% Note that the \Lpack{latexrelease} package is intended for use
+% Note that the \Lpack{latexrelease} package is intended for use
% at the start of a \emph{document}. Package and class code should not
% include this package as loading a package should not normally globally
% reset the effective version of \LaTeX\ that is in force, so affecting all
@@ -126,8 +126,8 @@
% \item \emph{yyyy/mm/dd} or \emph{yyyy-nn-dd}
% The package accepts any possible \LaTeX\ format date as argument,
% although dates in the future for which the current release of this
-% package has no information will generate a warning. Dates
-% earlier than 2015 will work but will roll back to some point in 2015
+% package has no information will generate a warning. Dates
+% earlier than 2015 will work but will roll back to some point in 2015
% when the method was introduced.
% |\IncludeInRelease| command is defined.
% The |\requestedLaTeXdate| is set to the normalized date argument
@@ -176,7 +176,7 @@
% \item[\marg{code-date}] This date is associated with the \marg{code}
% argument and will be compared to the requested date in the option to
% the \Lpack{latexrelease}.
-%
+%
% \item[\oarg{format-date}] This optional argument can be used to
% specify a format date with the code in addition to the mandatory
% \marg{code-date} argument. This can be useful for package developers
@@ -268,11 +268,11 @@
%\end{verbatim}
%
% To use the latest version, however it would have disadvantage that
-% until the next release of \LaTeX, by default, if the document does
+% until the next release of \LaTeX, by default, if the document does
% not use \Lpack{latexrelease} to specify a date, the new improved
% code will not be selected as the effective date will be 2015/01/01
% and so the first code block will be skipped.
-%
+%
% For this reason |\IncludeInRelease| has an optional argument that
% specifies an alternative date to use if a date option has not been
% specified to \Lpack{latexrelease}.
@@ -297,7 +297,7 @@
% skipped.
%
% If on the other hand the document requests an explicit release date
-% using \Lpack{latexrelease} then this date will be used to decide what
+% using \Lpack{latexrelease} then this date will be used to decide what
% code block to include.
%
% \subsection{Using \cs{IncludeInRelease} in Packages}
@@ -317,7 +317,7 @@
%
% To avoid this issue you can use the following coding
% strategy: place the current |\widget| definition in the main code
-% where it correctly belongs.
+% where it correctly belongs.
% \begin{verbatim}
% ...
% \def\widget {even newer improved March version}
@@ -366,7 +366,7 @@
% \section{fixltx2e}
%
% As noted above, prior to the 2015 \LaTeX\ release updates to the
-% \LaTeX\ kernel were not made in the format source files but were
+% \LaTeX\ kernel were not made in the format source files but were
% made available in the \Lpack{fixltx2e} package. That package is no
% longer needed but we generate a small package from this source
% that just makes a warning message but otherwise does nothing.
@@ -487,7 +487,7 @@ of this package available from CTAN}
%
% The code for each change will be inserted at this point, extracted
% from the kernel source files.
-%
+%
% \begin{macrocode}
%</latexrelease>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/latexrelease.ins b/Master/texmf-dist/source/latex/base/latexrelease.ins
index 9358692a910..ff55e7d8c0e 100644
--- a/Master/texmf-dist/source/latex/base/latexrelease.ins
+++ b/Master/texmf-dist/source/latex/base/latexrelease.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
@@ -115,13 +115,16 @@ extension .ins) which are part of the distribution.
\from{ltfssini.dtx} {latexrelease}%
\from{fontdef.dtx} {latexrelease}% (covering fontmath and fonttext)
\from{ltfntcmd.dtx} {latexrelease}% empty
+ \from{lttextcomp.dtx} {latexrelease}%
\from{ltfssbas.dtx} {latexrelease}%
- \from{ltfsstrc.dtx} {latexrelease}% empty
+ \from{ltfssaxes.dtx} {latexrelease}%
+ \from{ltfsstrc.dtx} {latexrelease}%
\from{ltfsscmp.dtx} {latexrelease}%
\from{ltpageno.dtx} {latexrelease}% empty
\from{ltxref.dtx} {latexrelease}% empty
\from{ltmiscen.dtx} {latexrelease}%
\from{ltluatex.dtx} {latexrelease}%
+ \from{ltexpl.dtx} {latexrelease}%
\from{ltfinal.dtx} {latexrelease}%
}
diff --git a/Master/texmf-dist/source/latex/base/latexsym.dtx b/Master/texmf-dist/source/latex/base/latexsym.dtx
index 52b12e0c36f..908f11e1244 100644
--- a/Master/texmf-dist/source/latex/base/latexsym.dtx
+++ b/Master/texmf-dist/source/latex/base/latexsym.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -172,7 +172,7 @@
% \subsection{\LaTeX{} symbols fonts}
%
% \changes{v2.2d}{1996/11/20}{lowercase ulasy.fd /1044}
-% The rest of this file defines the the font shape declarations
+% The rest of this file defines the font shape declarations
% that have to go into the corresponding |.fd| file.
%
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/latexsym.ins b/Master/texmf-dist/source/latex/base/latexsym.ins
index 7b42cf9132b..9e9901b879c 100644
--- a/Master/texmf-dist/source/latex/base/latexsym.ins
+++ b/Master/texmf-dist/source/latex/base/latexsym.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
@@ -87,9 +87,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -99,7 +99,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file may only be distributed together with a copy of the LaTeX
@@ -150,8 +150,3 @@ making successful document exchange impossible.
}
\endbatchfile
-
-
-
-
-
diff --git a/Master/texmf-dist/source/latex/base/letter.dtx b/Master/texmf-dist/source/latex/base/letter.dtx
index b8a8f0a257f..ee9a87cf849 100644
--- a/Master/texmf-dist/source/latex/base/letter.dtx
+++ b/Master/texmf-dist/source/latex/base/letter.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/letter.ins b/Master/texmf-dist/source/latex/base/letter.ins
index b71c06b95ac..8e8ed4ef7b9 100644
--- a/Master/texmf-dist/source/latex/base/letter.ins
+++ b/Master/texmf-dist/source/latex/base/letter.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
@@ -104,6 +104,3 @@ extension .ins) which are part of the distribution.
}
\endbatchfile
-
-
-
diff --git a/Master/texmf-dist/source/latex/base/ltalloc.dtx b/Master/texmf-dist/source/latex/base/ltalloc.dtx
index 4932dc707be..d18df9ad896 100644
--- a/Master/texmf-dist/source/latex/base/ltalloc.dtx
+++ b/Master/texmf-dist/source/latex/base/ltalloc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltbibl.dtx b/Master/texmf-dist/source/latex/base/ltbibl.dtx
index 0823620f992..a3a25308fe8 100644
--- a/Master/texmf-dist/source/latex/base/ltbibl.dtx
+++ b/Master/texmf-dist/source/latex/base/ltbibl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltboxes.dtx b/Master/texmf-dist/source/latex/base/ltboxes.dtx
index 7e1c2c38b02..61ea87235ab 100644
--- a/Master/texmf-dist/source/latex/base/ltboxes.dtx
+++ b/Master/texmf-dist/source/latex/base/ltboxes.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltclass.dtx b/Master/texmf-dist/source/latex/base/ltclass.dtx
index 83aacf8ddbd..9e7668e88e0 100644
--- a/Master/texmf-dist/source/latex/base/ltclass.dtx
+++ b/Master/texmf-dist/source/latex/base/ltclass.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2019/10/07 v1.3c LaTeX Kernel (Class & Package Interface)]
+ [2020/01/28 v1.3h LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -156,7 +156,7 @@
% some comments about how it was produced.
%
% The environment can also be called with an optional argument which is
-% used to alter some of its behavior: option \texttt{force} or
+% used to alter some of its behavior: option \texttt{force} or
% \texttt{overwrite} will allow for overwriting existing files,
% option \texttt{nosearch} will only check the current directory
% when looking if the file exists. This can be useful if you want to
@@ -172,10 +172,10 @@
% A possible use case for using it inside the document body is if you
% want to reuse some text several times in the document you could then
% write it and later use \cs{input} to retrieve it where needed.
-%
+%
%
% The begin and end tags should each be on a
-% line by itself.
+% line by itself.
%
% \subsection{Option processing}
%
@@ -362,7 +362,7 @@
%
% |\DeclareOption*{\PassOptionsToPackage{\CurrentOption}|^^A
% |{|\meta{pkg-name}|}|\\
-% Handle the the current option by passing it on to the package
+% Handle the current option by passing it on to the package
% \meta{pkg-name}, which will presumably be loaded via
% |\RequirePackage| later in the file. This is useful for building
% `extension' packages, that perhaps handle a couple of new options,
@@ -671,7 +671,7 @@
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
-%
+%
% \begin{macrocode}
\@onlypreamble\@ifl@t@r
% \end{macrocode}
@@ -791,19 +791,69 @@
\@ifnextchar[\@pr@videpackage{\@pr@videpackage[]}}%]
\@onlypreamble\ProvidesPackage
% \end{macrocode}
+% \end{macro}
+%
%
+%
+% \begin{macro}{\@pr@videpackage}
+% This is the helper command for \cs{ProvidesPackage}. It tries to
+% be cautious when handling the identification string in case it
+% contains UTF-8 characters.
+% \changes{v1.3e}{2019/11/29}{Protect package info text (gh/52)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\@pr@videpackage}{Protection for package info}%
\def\@pr@videpackage[#1]{%
- \expandafter\xdef\csname ver@\@currname.\@currext\endcsname{#1}%
+ \expandafter\protected@xdef % <-- protected...
+ \csname ver@\@currname.\@currext\endcsname{#1}%
\ifx\@currext\@clsextension
\typeout{Document Class: \@gtempa\space#1}%
\else
- \wlog{Package: \@gtempa\space#1}%
+ \protected@wlog{Package: \@gtempa\space#1}% <--- protected
\fi}
-\@onlypreamble\@pr@videpackage
% \end{macrocode}
% \end{macro}
%
+%
+%
+% \begin{macro}{\protected@wlog}
+% This is like plain \TeX's \cs{wlog} but gracefully handles
+% protected commands.
+% \begin{macrocode}
+\long\def\protected@wlog#1{\begingroup
+ \set@display@protect
+ \immediate \write \m@ne {#1}\endgroup }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@pr@videpackage}{Protection for package info}%
+%<latexrelease>
+%<latexrelease>\def\@pr@videpackage[#1]{%
+%<latexrelease> \expandafter\xdef\csname ver@\@currname.\@currext\endcsname{#1}%
+%<latexrelease> \ifx\@currext\@clsextension
+%<latexrelease> \typeout{Document Class: \@gtempa\space#1}%
+%<latexrelease> \else
+%<latexrelease> \wlog{Package: \@gtempa\space#1}%
+%<latexrelease> \fi}
+%<latexrelease>\let\protected@wlog\@undefined
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@onlypreamble\@pr@videpackage
+% \end{macrocode}
+%
+%
+%
% \begin{macro}{\ProvidesClass}
% Like |\ProvidesPackage|, but for classes.
% \begin{macrocode}
@@ -925,7 +975,7 @@
% \end{macro}
%
% \begin{macro}{\default@ds}
-% The default default option code.
+% The default option code.
% Set by |\@onefilewithoptions| to either |\OptionNotUsed| for
% classes, or |\@unknownoptionerror| for packages. This may be reset
% in either case with |\DeclareOption*|.
@@ -1356,8 +1406,8 @@
% \begin{macrocode}
\def\reserved@b##1,{%
% \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|
+% 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
@@ -1429,12 +1479,13 @@
% {Made the initial version [] not [\cs{@unknownversion}]}
% \changes{v0.2m}{1993/12/07}
% {Reset \cs{CurrentOption}}
+% \changes{v1.3d}{2019/10/18}{Initialize \cs{...-h@@k} only when loading
+% the package or class (gh/198)}
% \begin{macrocode}
\def\@onefilewithoptions#1[#2][#3]#4{%
\@pushfilename
\xdef\@currname{#1}%
\global\let\@currext#4%
- \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
\let\CurrentOption\@empty
\@reset@ptions
\makeatletter
@@ -1470,6 +1521,11 @@
% \begin{macrocode}
\global\expandafter
\let\csname ver@\@currname.\@currext\endcsname\@empty
+% \end{macrocode}
+% We initialize \cs{...-h@@k} here and only if we load the file so that it
+% remains undefined otherwise.
+% \begin{macrocode}
+ \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
\InputIfFileExists
{\@currname.\@currext}%
{}%
@@ -1725,14 +1781,13 @@
% filecontents environment file name}
% \changes{v1.3b}{2019/08/27}{Make various commands robust}
% \changes{v1.3c}{2019/09/11}{Support optional argument for filecontents}
+% \changes{v1.3f}{2020/01/05}{Support more write streams in LuaTeX gh/238}
%
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\filec@ntents}{Spaces in file names + optional arg}%
%
-
-
% \end{macrocode}
% We use |@tempswa| to mean no preamble writing and reuse |@filesw|
% to indicate no overwriting:
@@ -1747,13 +1802,16 @@
% To handle the optional argument we execute for each option the
% command \cs{filec@ntents@OPTION} if it exist or complain about
% unknown option.
+% \changes{v1.3h}{2020/01/28}{Allow spaces in option string and display
+% only unknown options not the whole option list (gh/256)}
% \begin{macrocode}
\def\filec@ntents@opt[#1]{%
- \@for\@tempa:=#1\do{%
- \ifcsname filec@ntents@\@tempa\endcsname
- \csname filec@ntents@\@tempa\endcsname
+ \edef\@fortmp{\zap@space#1 \@empty}%
+ \@for\@reserveda:=\@fortmp\do{%
+ \ifcsname filec@ntents@\@reserveda\endcsname
+ \csname filec@ntents@\@reserveda\endcsname
\else
- \@latex@error{Unknown filecontents option #1}%
+ \@latex@error{Unknown filecontents option \@reserveda}%
{Valid options are force (or overwrite), nosearch, noheader}%
\fi}%
\filec@ntents
@@ -1782,7 +1840,7 @@
\let\filec@ntents@checkdir\@empty
\def\filec@ntents@where{exists on the system}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\begingroup%
\@tempcnta=1
@@ -1801,6 +1859,11 @@
\gdef\filec@ntents#1{%
\set@curr@file{\filec@ntents@checkdir#1}%
\edef\q@curr@file{\expandafter\quote@name\expandafter{\@curr@file}}%
+% \end{macrocode}
+%
+% Lua\TeX\ has more writes (and 18 is safe here).
+% \begin{macrocode}
+ \chardef\reserved@c\ifx\directlua\@undefined 15 \else 127 \fi%
\openin\@inputcheck\q@curr@file \space %
\ifeof\@inputcheck%
\@latex@warning@no@line%
@@ -1810,8 +1873,7 @@
% \changes{v1.0y}{1997/10/10}
% {\cs{reserved@c} not \cs{verbatim@out} to save a csname}
% \begin{macrocode}
- \chardef\reserved@c15 %
- \ch@ck7\reserved@c\write%
+ \ch@ck7\reserved@c\write\relax%
\immediate\openout\reserved@c\q@curr@file\relax%
\else%
% \end{macrocode}
@@ -1831,7 +1893,7 @@
% by mistake overwriting the input file (\cs{jobname}). Of course,
% this only works for input files ending in \texttt{.tex}. If a
% different extension is used there is no way to see that we are
-% overwriting outselves!
+% overwriting ourselves!
% \begin{macrocode}
\edef\reserved@a{#1}%
\edef\reserved@a{\detokenize\expandafter{\reserved@a}}%
@@ -1847,13 +1909,13 @@
% \end{macrocode}
% We allocate a write channel but we open it only if it is
% (hopefully) safe. If not opened that means we are going to write
-% on the terminal.
+% on the terminal.
+% \changes{v1.3g}{2020/01/27}{Fix typo in error message}
% \begin{macrocode}
- \chardef\reserved@c15 %
- \ch@ck7\reserved@c\write%
+ \ch@ck7\reserved@c\write\relax%
\if@filesw% % Foul ... trying to overwrite \jobname!
\@latex@error{Trying to overwrite `\jobname.tex'}{You can't %
- write to the file you a reading from!\MessageBreak%
+ write to the file you are reading from!\MessageBreak%
Data is written to screen instead.}%
\else%
\@latex@warning@no@line%
@@ -1863,7 +1925,7 @@
\fi%
\fi%
% \end{macrocode}
-% Closing the \cs{@inputcheck} is done here ot avoid having to do
+% Closing the \cs{@inputcheck} is done here to avoid having to do
% this in each branch.
% \begin{macrocode}
\closein\@inputcheck%
@@ -2087,7 +2149,7 @@
% \section{Package/class rollback mechanism}
%
%
-%
+%
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexreleasefirst>
@@ -2111,7 +2173,7 @@
% \begin{macro}{\requestedLaTeXdate}
% The macro (!) |\requestedLaTeXdate| holds the globally requested
% rollback date (via \texttt{latexrelease}) or zero if no such
-% request was made.
+% request was made.
% \begin{macrocode}
\def\requestedLaTeXdate{0}
% \end{macrocode}
@@ -2153,7 +2215,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
-
+%
% \begin{macro}{\pkgcls@candidate}
% \begin{macro}{\pkgcls@releasedate}
% When looping through the |\DeclareRelease| declarations we
@@ -2186,7 +2248,7 @@
\ifx\load@onefilewithoptions\@undefined
\let\load@onefilewithoptions\@onefilewithoptions
% \end{macrocode}
-%
+%
% \begin{macrocode}
\def\@onefilewithoptions#1[#2][#3]#4{%
% \end{macrocode}
@@ -2237,7 +2299,7 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
+%
%
% \begin{macro}{\pkgcls@parse@date@arg}
% The |\pkgcls@parse@date@arg| command parses the second optional
@@ -2271,8 +2333,8 @@
% So in summary we have:
% \begin{flushleft}
% \hspace*{-1in}\begin{tabular}{ccccc@{}}
-% Input & & \cs{pkgcls@targetdate}
-% & \cs{pkgcls@targetlabel}
+% Input & & \cs{pkgcls@targetdate}
+% & \cs{pkgcls@targetlabel}
% & \cs{pkgcls@mindate}\\[3pt]
% \meta{empty} & $\to$ & \meta{global-rollbackdate-as-number}
% & \meta{empty} & \meta{empty}
@@ -2283,7 +2345,7 @@
% \texttt{=}\meta{date} & $\to$ & \meta{date-as-number}
% & \meta{empty} & \meta{empty}
% \\
-% \texttt{=}\meta{version}& $\to$ & \texttt{1}
+% \texttt{=}\meta{version}& $\to$ & \texttt{1}
% & \meta{version} & \meta{empty}
% \\
% \meta{other} & $\to$ & \meta{global-rollbackdate-as-number}
@@ -2293,7 +2355,7 @@
% \end{flushleft}
% where \meta{global-rollbackdate-as-number} is a date request given
% via \texttt{latexrelease} or if there wasn't one \texttt{0}.
-%
+%
% \begin{macrocode}
\def\pkgcls@parse@date@arg #1{%
% \end{macrocode}
@@ -2315,7 +2377,7 @@
\fi
}
% \end{macrocode}
-% The actual parsing work then happens in |\pkgcls@parse@date@arg@|:
+% The actual parsing work then happens in |\pkgcls@parse@date@arg@|:
% \begin{macrocode}
\def\pkgcls@parse@date@arg@#1=#2\@nil{%
% \end{macrocode}
@@ -2353,7 +2415,7 @@
\else
% \end{macrocode}
% If |#1| was not empty then there wasn't a \texttt{=} character in
-% first position so we we are dealing either with a ``minimum
+% first position so we are dealing either with a ``minimum
% date'' or with some incorrect data. We assume the former and make
% the following assignments (the first one finishing the assignment
% of |\pkgcls@targetdate|):
@@ -2371,9 +2433,9 @@
% \begin{macrocode}
\ifnum \pkgcls@targetdate > \z@
\ifnum \@parse@version0#1//00\@nil > \pkgcls@targetdate
- \@latex@warning@no@line{Suspicious rollback/min-date date given\MessageBreak
+ \@latex@warning@no@line{Suspicious rollback/min-date date given\MessageBreak
A minimal date of #1 has been specified for
- \@cls@pkg\MessageBreak '\pkgcls@name'.\MessageBreak
+ \@cls@pkg\MessageBreak '\pkgcls@name'.\MessageBreak
But this is in conflict
with a rollback request to \requestedpatchdate}
\fi
@@ -2381,17 +2443,14 @@
\fi
}
% \end{macrocode}
-% Strip off te trailing \texttt{=} and assign the version name to
+% Strip off the trailing \texttt{=} and assign the version name to
% |\pkgcls@targetlabel|.
% \begin{macrocode}
\def\pkgcls@parse@date@arg@version#1={%
\def\pkgcls@targetlabel{#1}}
% \end{macrocode}
% \end{macro}
-
-
-
-
+%
% \begin{macro}{\DeclareRelease}
% First argument is the ``name'' of the release and it can be left empty
% if one doesn't like to give a name to the release.
@@ -2476,7 +2535,7 @@
\pkgcls@debug{New candidate: #3}%
%</tracerollback>
\fi
- \else
+ \else
% \end{macrocode}
% If we end up in this branch we have a named version request. So
% we check if |\pkgcls@targetlabel| matches the current name and if
@@ -2497,10 +2556,7 @@
}
% \end{macrocode}
% \end{macro}
-
-
-
-
+%
% \begin{macro}{\pkgcls@use@this@release}
% If a certain release has been selected (stored in the external
% file given in \verb=#1=) we need to input it and afterwards stop
@@ -2535,8 +2591,7 @@
}
% \end{macrocode}
% \end{macro}
-
-
+%
% \begin{macro}{\pkgcls@show@selection}
% This command records what selection was made. As that is needed
% in two places (and it is rather lengthly) it was placed in a
@@ -2556,7 +2611,7 @@
date
\ifnum\requestedLaTeXdate=\pkgcls@targetdate
\requestedpatchdate
- \else
+ \else
\expandafter\@gobble\pkgcls@arg
\fi.\MessageBreak
% \end{macrocode}
@@ -2566,7 +2621,7 @@
% \begin{macrocode}
Best approximation is
\else
- version '\pkgcls@targetlabel'.\MessageBreak
+ version '\pkgcls@targetlabel'.\MessageBreak
This corresponds to
\fi
\ifx\@nil#2\@nil
@@ -2578,19 +2633,18 @@
}
% \end{macrocode}
% \end{macro}
-
-
+%
% \begin{macro}{\pkgcls@rollbackdate@error}
% This is called if the requested rollback date is earlier than the
% earliest known release of a package or class.
%
% A similar error is given if global rollback date and min-date on
% a specific package conflict with each other, but that case is
-% happens only once so it is is inlined.
+% happens only once so it is inlined.
% \begin{macrocode}
\def\pkgcls@rollbackdate@error#1{%
\@latex@error{Suspicious rollback date given}%
- {The \@cls@pkg\space'\@currname' claims that it
+ {The \@cls@pkg\space'\@currname' claims that it
came into existence on #1 which\MessageBreak
is after your requested rollback date --- so
something is wrong here.\MessageBreak
@@ -2635,7 +2689,6 @@
% |\DeclareCurrentRelease| but no declared older releases (so
% basically the use of the declaration is a bit dubious).
% \begin{macrocode}
-
\ifx\pkgcls@candidate\@empty
\pkgcls@rollbackdate@error{#2}%
\else
@@ -2669,7 +2722,6 @@
% \end{macro}
%
%
-
% \begin{macro}{\IfTargetDateBefore}
% This enables a simple form of conditional code inside a class or
% package file. If there is a date request and the request date is
diff --git a/Master/texmf-dist/source/latex/base/ltcntrl.dtx b/Master/texmf-dist/source/latex/base/ltcntrl.dtx
index eb1b9319579..b779d27fb6c 100644
--- a/Master/texmf-dist/source/latex/base/ltcntrl.dtx
+++ b/Master/texmf-dist/source/latex/base/ltcntrl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltcounts.dtx b/Master/texmf-dist/source/latex/base/ltcounts.dtx
index 8217b3f91b8..5dc1c8866d7 100644
--- a/Master/texmf-dist/source/latex/base/ltcounts.dtx
+++ b/Master/texmf-dist/source/latex/base/ltcounts.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -322,7 +322,7 @@
% \end{macrocode}
% \end{macro}
%
-%
+%
% \begin{macrocode}
%</2ekernel>
% \end{macrocode}
@@ -335,7 +335,7 @@
%<latexrelease> {\@removefromreset}{Add interfaces}%
%<*2ekernel|latexrelease>
% \end{macrocode}
-%
+%
% \begin{macrocode}
\def\@removefromreset#1#2{%
% \end{macrocode}
@@ -374,17 +374,17 @@
% \begin{macro}{\counterwithout}
-%
+%
% \changes{v1.1k}{2018/03/08}{Interface added}
% \begin{macrocode}
\def\counterwithout {\@ifstar\counterwithout@s\counterwithout@x}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\def\counterwithout@s#1#2{%
\@ifbothcounters{#1}{#2}{\@removefromreset{#1}{#2}}}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\def\counterwithout@x#1#2{%
\@ifbothcounters{#1}{#2}%
@@ -399,17 +399,17 @@
% \begin{macro}{\counterwithin}
-%
+%
% \changes{v1.1k}{2018/03/08}{Interface added}
% \begin{macrocode}
\def\counterwithin{\@ifstar\counterwithin@s\counterwithin@x}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\def\counterwithin@s#1#2{%
\@ifbothcounters{#1}{#2}{\@addtoreset{#1}{#2}}}
% \end{macrocode}
-%
+%
% \changes{v1.1l}{2018/04/11}{Correct default (issue/38)}
% \begin{macrocode}
\def\counterwithin@x#1#2{%
@@ -424,7 +424,7 @@
% \end{macro}
-%
+%
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
diff --git a/Master/texmf-dist/source/latex/base/ltdefns.dtx b/Master/texmf-dist/source/latex/base/ltdefns.dtx
index 44d7bfde648..ae472966d57 100644
--- a/Master/texmf-dist/source/latex/base/ltdefns.dtx
+++ b/Master/texmf-dist/source/latex/base/ltdefns.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -1049,7 +1049,7 @@
% infinite loop! In particular, setting |\protect| to |\@empty| will
% cause |\_| to loop forever. It will also break lots of other
% things, such as protected |\ifmmode|s inside |\halign|s. If you
-% really really have to do such a thing, then please set
+% really have to do such a thing, then please set
% |\@typeset@protect| to be |\@empty| as well. (This is what the
% code for |\patterns| does, for example.)
%
@@ -1289,7 +1289,7 @@
\expandafter\@gobble\string#1\space\endcsname
\global\expandafter\let\csname
\expandafter\@gobble\string#1\space\endcsname\@undefined
- }%
+ }%
}
%<latexrelease>\EndIncludeInRelease
%</2ekernel|latexrelease>
@@ -1563,7 +1563,7 @@
% current font's |\hyphenchar|. Monospace fonts are usually declared
% with |\hyphenchar| set to $-1$ to suppress hyhenation.
%
-% \LaTeX, from \LaTeX2.09 in 1986 defined |\-| by
+% \LaTeX, from \LaTeX2.09 in 1986 defined |\-| by
% \begin{verbatim}
% \def\-{\discretionary{-}{}{}}
% \end{verbatim}
@@ -1618,7 +1618,7 @@
% \end{macrocode}
% \end{macro}
%
-% Delayed from |ltvers.dtx|
+% Delayed from |ltvers.dtx|
% \begin{macrocode}
\newif\if@includeinrelease
\@includeinreleasefalse
diff --git a/Master/texmf-dist/source/latex/base/ltdirchk.dtx b/Master/texmf-dist/source/latex/base/ltdirchk.dtx
index 744759f3176..25fb9480ddd 100644
--- a/Master/texmf-dist/source/latex/base/ltdirchk.dtx
+++ b/Master/texmf-dist/source/latex/base/ltdirchk.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -978,7 +978,7 @@
% \section{\TeX\ Versions}
%
% \begin{macro}{\@TeXversion}
-% \TeX\ versions older than than 3.141 require |\@TeXversion| to be
+% \TeX\ versions older than 3.141 require |\@TeXversion| to be
% set. This can be determined automatically due to a trick suggested
% by Bernd Raichle. (Actually this will not always get the correct
% version number, eg \TeX3.14 would be detected as \TeX3, but \LaTeX\
diff --git a/Master/texmf-dist/source/latex/base/lterror.dtx b/Master/texmf-dist/source/latex/base/lterror.dtx
index 3f6c4369705..9a606ea8c1d 100644
--- a/Master/texmf-dist/source/latex/base/lterror.dtx
+++ b/Master/texmf-dist/source/latex/base/lterror.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -103,7 +103,7 @@
% the error messages already in the format.
%
% These days we don't support autoloading approach any longer, but
-% this part bit is kept in case it is used in old documents.
+% this part bit is kept in case it is used in old documents.
% \begin{macrocode}
\expandafter\let\csname ver@autoerr.sty\endcsname\fmtversion
% \end{macrocode}
@@ -448,7 +448,7 @@ Type H <return> for immediate help.}%
%
% \begin{macro}{\c@errorcontextlines}
% \changes{LaTeX2e}{1993/11/22}{Macro added}
-% |\errorcontextlines| as a \LaTeX\ counter, so that it may be be
+% |\errorcontextlines| as a \LaTeX\ counter, so that it may be
% manipulated with |\setcounter| (once it is defined :-)
% \begin{macrocode}
\let\c@errorcontextlines\errorcontextlines
@@ -792,7 +792,7 @@ Type H <return> for immediate help.}%
% \end{macro}
% \end{macro}
%
-%
+%
% \begin{macrocode}
%</2ekernel>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/ltexpl.dtx b/Master/texmf-dist/source/latex/base/ltexpl.dtx
new file mode 100644
index 00000000000..230cd911588
--- /dev/null
+++ b/Master/texmf-dist/source/latex/base/ltexpl.dtx
@@ -0,0 +1,99 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2019-2020
+% 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
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 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
+%
+% \iffalse
+%%% From File: ltexpl.dtx
+%
+%<*driver>
+% \fi
+\ProvidesFile{ltexpl.dtx}
+ [2019-10-02 v0.0 LaTeX Kernel (expl3-dependent code)]
+% \iffalse
+\documentclass{ltxdoc}
+\GetFileInfo{ltfinal.dtx}
+\title{\filename}
+\date{\filedate}
+\author{%
+ Joseph Wright}
+\begin{document}
+ \MaintainedByLaTeXTeam{latex}
+ \maketitle
+ \DocInput{ltfinal.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{\pkg{expl3}-dependent code}
+%
+% \StopEventually{}
+%
+% \changes{v0.0}{2019-10-02}{Initial version}
+%
+% \begin{macrocode}
+%<*2ekernel>
+% \end{macrocode}
+%
+% \subsection{Loader}
+%
+% Check for the required primitive/engine support and the existence of
+% a loader.
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {expl3}{Pre-load expl3}%
+\IfFileExists{expl3.ltx}
+ {%
+ \ifnum0%
+ \ifdefined\pdffilesize 1\fi
+ \ifdefined\filesize 1\fi
+ \ifdefined\luatexversion\ifnum\luatexversion>94 1\fi\fi
+ >0 %
+ \else
+ \message{Skipping expl3-dependent extensions}
+%<2ekernel> \expandafter\endinput
+%<latexrelease> \expandafter\@gobbletwo
+ \fi
+ }
+ {%
+ \message{Skipping expl3-dependent extensions}%
+%<2ekernel> \endinput
+%<latexrelease> \@gobbletwo
+ }%
+\input{expl3.ltx}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel>
+% \end{macrocode}
+%
+% \Finale
diff --git a/Master/texmf-dist/source/latex/base/ltfiles.dtx b/Master/texmf-dist/source/latex/base/ltfiles.dtx
index 87a7f5e983b..33594a7b912 100644
--- a/Master/texmf-dist/source/latex/base/ltfiles.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfiles.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfiles.dtx}
- [2019/11/09 v1.2e LaTeX Kernel (File Handling)]
+ [2019/11/11 v1.2f LaTeX Kernel (File Handling)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfiles.dtx}
@@ -745,7 +745,7 @@
% "a b c" -> "a b c"
% a" "b" "c -> "a b c"
% -> ""
-%\end{verbatim}
+%\end{verbatim}
% \begin{macrocode}
\def\quote@name#1{"\quote@@name#1\@gobble""}
\def\quote@@name#1"{#1\quote@@name}
@@ -761,7 +761,7 @@
%
%
% \begin{macro}{\IfFileExists}
-%
+%
% \changes{v1.2a}{2019/07/01}{Support UTF-8}
% \changes{v1.2b}{2019/08/27}{Make command robust}
% \changes{v1.2d}{2019/10/26}{dont quote name}
@@ -796,6 +796,33 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@iffileonpath}
+% If the file is not found by |\openin|, and |\input@path| is defined,
+% look in all the directories specified in |\input@path|.
+% \changes{v0.9p}{1994/01/18}{Macro added}
+% \changes{v1.0f}{1994/05/02}
+% {\cs{@break@loop} renamed to \cs{@break@tfor}}
+% \changes{v1.0t}{1995/05/25}
+% {(CAR) added \cs{long}}
+% \changes{v1.1d}{1996/01/10}
+% {Change argument handling to not require doubled hash. latex/2024}
+% \changes{v1.2d}{2019/10/26}{quote on openin}%
+% \changes{v1.2f}{2019/11/11}{make \cs{@filef@und} match quoting used on \cs{openin}}%
+% \begin{macrocode}
+\long\def\@iffileonpath#1{%
+ \let\reserved@a\@secondoftwo
+ \expandafter\@tfor\expandafter\reserved@b\expandafter
+ :\expandafter=\input@path\do{%
+ \openin\@inputcheck\expandafter\quote@name\expandafter{\reserved@b#1} %
+ \ifeof\@inputcheck\else
+ \edef\@filef@und{\expandafter\quote@name\expandafter{\reserved@b#1} }%
+ \let\reserved@a\@firstoftwo%
+ \closein\@inputcheck
+ \@break@tfor
+ \fi}%
+ \reserved@a}
+% \end{macrocode}
+% \end{macro}
%
% \begin{macrocode}
%</2ekernel|latexrelease>
@@ -825,38 +852,25 @@
%<latexrelease> \fi
%<latexrelease> \reserved@a}
%<latexrelease>
+%<latexrelease>\long\def\@iffileonpath#1{%
+%<latexrelease> \let\reserved@a\@secondoftwo
+%<latexrelease> \expandafter\@tfor\expandafter\reserved@b\expandafter
+%<latexrelease> :\expandafter=\input@path\do{%
+%<latexrelease> \openin\@inputcheck\reserved@b#1 %
+%<latexrelease> \ifeof\@inputcheck\else
+%<latexrelease> \edef\@filef@und{\reserved@b#1 }%
+%<latexrelease> \let\reserved@a\@firstoftwo%
+%<latexrelease> \closein\@inputcheck
+%<latexrelease> \@break@tfor
+%<latexrelease> \fi}%
+%<latexrelease> \reserved@a}
+%<latexrelease>
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
-%
%
%
-% \begin{macro}{\@iffileonpath}
-% If the file is not found by |\openin|, and |\input@path| is defined,
-% look in all the directories specified in |\input@path|.
-% \changes{v0.9p}{1994/01/18}{Macro added}
-% \changes{v1.0f}{1994/05/02}
-% {\cs{@break@loop} renamed to \cs{@break@tfor}}
-% \changes{v1.0t}{1995/05/25}
-% {(CAR) added \cs{long}}
-% \changes{v1.1d}{1996/01/10}
-% {Change argument handling to not require doubled hash. latex/2024}
-% \changes{v1.2d}{2019/10/26}{quote on openin}%
-% \begin{macrocode}
-\long\def\@iffileonpath#1{%
- \let\reserved@a\@secondoftwo
- \expandafter\@tfor\expandafter\reserved@b\expandafter
- :\expandafter=\input@path\do{%
- \openin\@inputcheck\expandafter\quote@name\expandafter{\reserved@b#1} %
- \ifeof\@inputcheck\else
- \edef\@filef@und{"\reserved@b#1" }%
- \let\reserved@a\@firstoftwo%
- \closein\@inputcheck
- \@break@tfor
- \fi}%
- \reserved@a}
-% \end{macrocode}
-% \end{macro}
+%
%
% \begin{macro}{\InputIfFileExists}
% \changes{v0.9b}
@@ -887,7 +901,7 @@
% \end{macrocode}
% \end{macro}
%
-%
+%
% \begin{macro}{\@swaptwoargs}
%
% \changes{v1.1o}{2019/02/07}{Helper macro added}
@@ -898,7 +912,7 @@
% \end{macrocode}
% \end{macro}
%
-%
+%
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
diff --git a/Master/texmf-dist/source/latex/base/ltfinal.dtx b/Master/texmf-dist/source/latex/base/ltfinal.dtx
index 47641e96010..56549507624 100644
--- a/Master/texmf-dist/source/latex/base/ltfinal.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfinal.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfinal.dtx}
- [2019/09/14 v2.1h LaTeX Kernel (Final Settings)]
+ [2019-10-02 v2.2 LaTeX Kernel (Final Settings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -237,7 +237,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
-%
+%
%
%
% The default values of the picture and |\fbox| parameters:
@@ -271,10 +271,10 @@
% \end{macrocode}
%
% \subsection{Lccodes for hyphenation}
-%
+%
% \changes{v2.0a}{2015/01/03}{Unicode data loading added}
% \changes{v2.0c}{2015/01/24}{Skip T1-code entirely with Unicode engines}
-% \changes{v2.0d}{2015/03/26}{Use renamed
+% \changes{v2.0d}{2015/03/26}{Use renamed
% \texttt{unicode-letters.def}}
% \changes{v2.0i}{2015/12/10}{Use new common Unicode data loaders}
% \changes{v2.0j}{2016/01/04}{Do not set up inter character classes for
@@ -739,7 +739,7 @@
%<latexrelease> \catcode\@tempcnta=15
%<latexrelease> \advance\@tempcnta\@ne
%<latexrelease>\ifnum\@tempcnta<32
-%<latexrelease>\repeat %
+%<latexrelease>\repeat %
%<latexrelease>\catcode9=10 % tab
%<latexrelease>\catcode10=12 % ctrl J
%<latexrelease>\catcode12=13 % ctrl L
@@ -1044,6 +1044,14 @@
% }{}
% \end{macrocode}
%
+% \subsection{Loading further extensions}
+%
+% \changes{v2.2}{2019-10-02}{Load \textsf{ltexpl}}
+% Simply load further code: it's deliberately separate
+% \begin{macrocode}
+\input{ltexpl.ltx}
+% \end{macrocode}
+%
% \subsection{Freeing Memory}
%
% \begin{macro}{\reserved@a}
@@ -1116,6 +1124,24 @@
% \end{macro}
% \end{macro}
%
+% \subsection{Some last minute initializations \ldots}
+%
+% This initializes the 2020/02/02 extensions to NFSS after any changes
+% in the preamble.
+% \begin{macrocode}
+\AtBeginDocument{\reinstall@nfss@defs\init@series@setup}
+% \end{macrocode}
+%
+%
+%
+% \subsection{Do some temporary work for pre-release}
+%
+% This is a good place to load code that hasn't yet been
+% integrated into the other files \ldots
+% \begin{macrocode}
+%\input ...
+% \end{macrocode}
+%
% \subsection{Dumping the format}
% Finally we make |@| into a letter, ensure the format will
% be in the `normal' error mode, and dump everything into the
diff --git a/Master/texmf-dist/source/latex/base/ltfloat.dtx b/Master/texmf-dist/source/latex/base/ltfloat.dtx
index 7e0c35df22b..23c3f464d3f 100644
--- a/Master/texmf-dist/source/latex/base/ltfloat.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfloat.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltfntcmd.dtx b/Master/texmf-dist/source/latex/base/ltfntcmd.dtx
index e214057bc4b..0a44d5acf1e 100644
--- a/Master/texmf-dist/source/latex/base/ltfntcmd.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfntcmd.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfntcmd.dtx}
- [2019/01/27 v3.4b LaTeX Kernel (Font commands)]
+ [2019/12/17 v3.4c LaTeX Kernel (Font commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfntcmd.dtx}
@@ -391,6 +391,35 @@
% \end{macro}
% \end{macro}
% \end{macro}
+
+
+% \begin{macro}{textulc}
+% \begin{macro}{textsw}
+% \begin{macro}{textssc}
+%
+% \changes{v3.4c}{2019/12/17}{Macro added}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\textulc}{Additional text commands}%
+\DeclareTextFontCommand{\textulc}{\ulcshape}
+\DeclareTextFontCommand{\textsw}{\swshape}
+\DeclareTextFontCommand{\textssc}{\sscshape}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\textulc}{Additional text commands}%
+%<latexrelease>
+%<latexrelease>\let\textulc\@undefined
+%<latexrelease>\let\textsw\@undefined
+%<latexrelease>\let\textssc\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\emph}
% \changes{v3.0a}{1993/12/11}{Macro changed}
diff --git a/Master/texmf-dist/source/latex/base/ltfssaxes.dtx b/Master/texmf-dist/source/latex/base/ltfssaxes.dtx
new file mode 100644
index 00000000000..4dd7a36ca48
--- /dev/null
+++ b/Master/texmf-dist/source/latex/base/ltfssaxes.dtx
@@ -0,0 +1,1229 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2019-2020
+% 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
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 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
+% \iffalse
+%%% From File: ltfssaxes.dtx
+%% Copyright (C) 1999-2020 Frank Mittelbach
+%
+%<*driver>
+% \fi
+%
+%
+\ProvidesFile{ltfssaxes.dtx}
+ [2020/01/30 v1.0a LaTeX Kernel (NFSS Axes handing)]
+% \iffalse
+\documentclass{ltxdoc}
+\begin{document}
+\DocInput{ltfssaxes.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+%
+%
+%
+% \GetFileInfo{ltfssaxes.dtx}
+% \title{A new font selection scheme for \TeX{} macro packages\\
+% (Axes Handling)\thanks
+% {This file has version number
+% \fileversion\ dated \filedate}}
+%
+% \author{Frank Mittelbach}
+%
+% \MaintainedByLaTeXTeam{latex}
+% \maketitle
+%
+% This file contains the implementation for handling extra axes
+% splitting the series and the values into sub-categories. selection
+% commands. See other parts of the \LaTeX\ distribution, or \emph{The
+% \LaTeX\ Companion} for higher level documentation of the
+% \LaTeX\ Font Selection Scheme.
+%
+%
+%
+% \StopEventually{}
+%
+% Everything in the this file got introduced 2020/02/02, so we do a
+% single rollback (for now).
+% \begin{macrocode}
+%<*2ekernel>
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\DeclareFontSeriesChangeRule}{Series change rules}%
+% \end{macrocode}
+%
+%
+%
+% \section{Changing the font series}
+%
+% In the original NFSS implementation the series was a single
+% attribute stored in \cs{f@series} and so one always had to specify
+% both weight and width together. This means it was impossible to
+% typeset, a paragraph in a condensed font and inside have a few words
+% in bold weight (but still condensed) without doing this manually by
+% requesting \verb=\fontseries{bc}\selectfont=.
+%
+% The new implementation now works differently by looking both at the
+% current value of \cs{f@series} and the requested new series and out
+% of that combination selects a resulting series value. Thus, if the
+% current series is \texttt{c} and we ask for \texttt{b} we now get
+% \texttt{bc}.
+%
+% This is done by consulting a simple lookup table. This table is
+% configurable (though most likely that flexibility will seldom of
+% ever be needed) Adding or changing entries in this table are done
+% with \cs{DeclareFontSeriesChangeRule}.
+%
+% \subsection{The series lookup table}
+%
+%
+% \begin{macro}{\DeclareFontSeriesChangeRule}
+% The \cs{DeclareFontSeriesChangeRule} defines entries in a simple
+% database (implemented as a set of commands) that define mappings
+% between from an existing series and requested new series and maps
+% that to a result series (and additionally offers an alternative
+% if the desired one is not existing):
+% \begin{itemize}
+% \item[\texttt{\#1}] current \cs{f@series}
+% \item[\texttt{\#2}] requested new series
+% \item[\texttt{\#3}] result (if that exist for the given font family
+% \item[\texttt{\#4}] alternative result (if \texttt{\#3} does not exist)
+% \end{itemize}
+% If an \texttt{.fd} file has its own substitution rules then
+% \texttt{\#3} exist and thus \texttt{\#4} is not applied.
+%
+% If there is no matching database entry or if neither the result
+% nor the alternate result exist in the font family the requested
+% new series is used (which then may trigger substitutions later on.
+% \begin{macrocode}
+\def\DeclareFontSeriesChangeRule#1#2#3#4{%
+ \@namedef{series@#1@#2}{{#3}{#4}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Mapping rules for series changes}
+%
+% The rules set up use explicit series values not \cs{..default}
+% indirections; my current feeling is that this is in fact better.
+%
+% With 9 weights and 9 width classes this table is getting a bit large
+% in the end (324 entries) but on the other hand it doesn't change and
+% accessing speed and it is fast this way.
+%
+% We could alternatively split the axis and maintain weight and width
+% separately, but that would take more processing time and would not
+% allow for setting up explicit exceptions nicely (not sure that this
+% would ever get used though).
+%
+% Design considerations for mapping entries:
+% \begin{itemize}
+% \item
+%
+% We make \texttt{m} to reset both weight and width (as this is
+% how it always worked). To reset just the width \texttt{?m} is
+% provided and to reset just the weight \texttt{m?}.
+%
+% \item
+%
+% We do support ``\texttt{m}\textit{width}'' and
+% ``\textit{weight}\texttt{m}'', e.g., \texttt{mec} to mean ``go to
+% medium weight and extra-condensed width''. At the end of the
+% process we automatically drop any leftover \texttt{m} in the
+% series name (unless it is just a single \texttt{m}).
+%
+%
+% \item
+%
+% If there is no table entry then the target series is used
+% unconditionally. This means that any request to set both weight
+% and width (e.g. \texttt{bx} or \texttt{ulc}) needs no table
+% entries.
+% For that reason there are no entries which have a weight+width as
+% request (i.e., second argument).
+%
+% In particular this is also true for cases involving \texttt{m},
+% e.g., \texttt{bm} (bold medium width) which automatially gets
+% reduced result in \texttt{b} or \texttt{mc} (medium weight
+% condensed) which becomes \texttt{c} as a result.
+%
+% \item
+%
+% Only a few entries have ``alterative'' values and perhaps most of
+% them should get dropped. Or maybe not \ldots{} needs some thought
+% perhaps.
+%
+% The idea is that you don't want the normal substitution to kick
+% in because that would reset the shape first and it may be better
+% to stay with \texttt{b} when a change to \texttt{c} is requested
+% and \texttt{bc} doesn't exist, than to go to first change the
+% shape to \texttt{n} and then find that \texttt{bc/n} doesn't
+% exist either and thus ending up wth \texttt{m/n}.
+%
+% \item
+%
+% Also: while I did set up all nine standard weight values from
+% \texttt{ul} to \texttt{ub} I only bothered to provide entries for
+% \texttt{ec}, \texttt{sc}, \texttt{c} and \texttt{x}, because other levels of
+% compression/expansion are not in any real fonts that I know.
+%
+% Could and perhaps should be eventually extended to cover the
+% whole set.
+%
+% \end{itemize}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {bc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {bc}{c}{bc}{}
+\DeclareFontSeriesChangeRule {bc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {bc}{ec}{bec} {bc}
+\DeclareFontSeriesChangeRule {bc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {bc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {bc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {bc}{sc}{bsc} {bc}
+\DeclareFontSeriesChangeRule {bc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {bc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {bc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {bc}{x}{bx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {bx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {bx}{c} {bc} {bx} %<-----
+\DeclareFontSeriesChangeRule {bx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {bx}{ec} {bec} {bx} %<-----
+\DeclareFontSeriesChangeRule {bx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {bx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {bx}{sb} {sbx} {}
+\DeclareFontSeriesChangeRule {bx}{sc} {bsc} {bx} %<-----
+\DeclareFontSeriesChangeRule {bx}{sl}{slx} {}
+\DeclareFontSeriesChangeRule {bx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {bx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {bx}{x}{bx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {b}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {b}{c} {bc} {b} %<-----
+\DeclareFontSeriesChangeRule {b}{ec} {bec} {b} %<-----
+\DeclareFontSeriesChangeRule {b}{sb} {sb} {b} %<-----
+\DeclareFontSeriesChangeRule {b}{sc} {bsc} {b} %<-----
+\DeclareFontSeriesChangeRule {b}{x} {bx} {b} %<-----
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {c}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {c}{b}{bc}{}
+\DeclareFontSeriesChangeRule {c}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {c}{el}{elc}{}
+\DeclareFontSeriesChangeRule {c}{l}{lc}{}
+\DeclareFontSeriesChangeRule {c}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {c}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {c}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {c}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {c}{x}{x}{m} %<-----
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {ebc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {ebc}{c}{ebc}{}
+\DeclareFontSeriesChangeRule {ebc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {ebc}{ec}{ebec}{ebc}
+\DeclareFontSeriesChangeRule {ebc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {ebc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {ebc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {ebc}{sc}{ebsc}{ebc}
+\DeclareFontSeriesChangeRule {ebc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {ebc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {ebc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {ebc}{x}{ebx}{}
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {ec}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {ec}{b}{bec}{}
+\DeclareFontSeriesChangeRule {ec}{eb}{ebec}{}
+\DeclareFontSeriesChangeRule {ec}{el}{elec}{}
+\DeclareFontSeriesChangeRule {ec}{l}{lec}{}
+\DeclareFontSeriesChangeRule {ec}{sb}{sbec}{}
+\DeclareFontSeriesChangeRule {ec}{sl}{slec}{}
+\DeclareFontSeriesChangeRule {ec}{ub}{ubec}{}
+\DeclareFontSeriesChangeRule {ec}{ul}{ulec}{}
+\DeclareFontSeriesChangeRule {ec}{x}{x}{m} %<-----
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {sc}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {sc}{b}{bsc}{}
+\DeclareFontSeriesChangeRule {sc}{eb}{ebsc}{}
+\DeclareFontSeriesChangeRule {sc}{el}{elsc}{}
+\DeclareFontSeriesChangeRule {sc}{l}{lsc}{}
+\DeclareFontSeriesChangeRule {sc}{sb}{sbsc}{}
+\DeclareFontSeriesChangeRule {sc}{sl}{slsc}{}
+\DeclareFontSeriesChangeRule {sc}{ub}{ubsc}{}
+\DeclareFontSeriesChangeRule {sc}{ul}{ulsc}{}
+\DeclareFontSeriesChangeRule {sc}{x}{x}{m} %<-----
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {ebx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {ebx}{c}{ebc}{}
+\DeclareFontSeriesChangeRule {ebx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {ebx}{ec}{ebec}{}
+\DeclareFontSeriesChangeRule {ebx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {ebx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {ebx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {ebx}{sc}{ebsc}{}
+\DeclareFontSeriesChangeRule {ebx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {ebx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {ebx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {ebx}{x}{ebx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {eb}{c}{ebc}{}
+\DeclareFontSeriesChangeRule {eb}{ec}{ebec}{}
+\DeclareFontSeriesChangeRule {eb}{sc}{ebsc}{}
+\DeclareFontSeriesChangeRule {eb}{x}{ebx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {elc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {elc}{c}{elc}{}
+\DeclareFontSeriesChangeRule {elc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {elc}{ec}{elec}{}
+\DeclareFontSeriesChangeRule {elc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {elc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {elc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {elc}{sc}{elsc}{}
+\DeclareFontSeriesChangeRule {elc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {elc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {elc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {elc}{x}{elx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {elx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {elx}{c}{elc}{}
+\DeclareFontSeriesChangeRule {elx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {elx}{ec}{elec}{}
+\DeclareFontSeriesChangeRule {elx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {elx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {elx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {elx}{sc}{elsc}{}
+\DeclareFontSeriesChangeRule {elx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {elx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {elx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {elx}{x}{elx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {el}{c}{elc}{}
+\DeclareFontSeriesChangeRule {el}{ec}{elec}{}
+\DeclareFontSeriesChangeRule {el}{sc}{elsc}{}
+\DeclareFontSeriesChangeRule {el}{x}{elx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {lc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {lc}{c}{lc}{}
+\DeclareFontSeriesChangeRule {lc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {lc}{ec}{lec}{}
+\DeclareFontSeriesChangeRule {lc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {lc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {lc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {lc}{sc}{lsc}{}
+\DeclareFontSeriesChangeRule {lc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {lc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {lc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {lc}{x}{lx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {lx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {lx}{c}{lc}{}
+\DeclareFontSeriesChangeRule {lx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {lx}{ec}{lec}{}
+\DeclareFontSeriesChangeRule {lx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {lx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {lx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {lx}{sc}{lsc}{}
+\DeclareFontSeriesChangeRule {lx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {lx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {lx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {lx}{x}{lx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {l}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {l}{b} {b} {bx} %<-----
+\DeclareFontSeriesChangeRule {l}{c} {lc} {l} % ? %<-----
+\DeclareFontSeriesChangeRule {l}{ec} {lec} {l} % ? %<-----
+\DeclareFontSeriesChangeRule {l}{sb} {sb} {b} % ? %<-----
+\DeclareFontSeriesChangeRule {l}{sc} {lsc} {l} % ? %<-----
+\DeclareFontSeriesChangeRule {l}{x} {lx} {l} % ? %<-----
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {m}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {m}{b} {b} {bx} %<-----
+\DeclareFontSeriesChangeRule {m}{c} {c} {m} %<-----
+\DeclareFontSeriesChangeRule {m}{ec} {ec} {m} %<-----
+\DeclareFontSeriesChangeRule {m}{l} {l} {m} %<-----
+\DeclareFontSeriesChangeRule {m}{sb} {sb} {b} %<-----
+\DeclareFontSeriesChangeRule {m}{sc} {sc} {m} %<-----
+\DeclareFontSeriesChangeRule {m}{x} {x} {m} %<-----
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {sbc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {sbc}{c}{sbc}{}
+\DeclareFontSeriesChangeRule {sbc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {sbc}{ec}{sbec}{sbc}
+\DeclareFontSeriesChangeRule {sbc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {sbc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {sbc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {sbc}{sc}{sbsc}{sbc}
+\DeclareFontSeriesChangeRule {sbc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {sbc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {sbc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {sbc}{x}{sbx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {sbx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {sbx}{c}{sbc}{}
+\DeclareFontSeriesChangeRule {sbx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {sbx}{ec}{sbec}{}
+\DeclareFontSeriesChangeRule {sbx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {sbx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {sbx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {sbx}{sc}{sbsc}{}
+\DeclareFontSeriesChangeRule {sbx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {sbx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {sbx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {sbx}{x}{sbx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {sb}{c} {sbc} {bc} %? %<-----
+\DeclareFontSeriesChangeRule {sb}{ec} {sbec} {sbc} %? %<-----
+\DeclareFontSeriesChangeRule {sb}{sc} {sbsc} {sbc} %? %<-----
+\DeclareFontSeriesChangeRule {sb}{x} {sbx} {bx} %? %<-----
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {slc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {slc}{c}{slc}{}
+\DeclareFontSeriesChangeRule {slc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {slc}{ec}{slec}{}
+\DeclareFontSeriesChangeRule {slc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {slc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {slc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {slc}{sc}{slsc}{}
+\DeclareFontSeriesChangeRule {slc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {slc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {slc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {slc}{x}{slx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {slx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {slx}{c}{slc}{}
+\DeclareFontSeriesChangeRule {slx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {slx}{ec}{slec}{}
+\DeclareFontSeriesChangeRule {slx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {slx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {slx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {slx}{sc}{slsc}{}
+\DeclareFontSeriesChangeRule {slx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {slx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {slx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {slx}{x}{slx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {sl}{c}{slc}{}
+\DeclareFontSeriesChangeRule {sl}{ec}{slec}{}
+\DeclareFontSeriesChangeRule {sl}{sc}{slsc}{}
+\DeclareFontSeriesChangeRule {sl}{x}{slx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {ubc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {ubc}{c}{ubc}{}
+\DeclareFontSeriesChangeRule {ubc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {ubc}{ec}{ubec}{}
+\DeclareFontSeriesChangeRule {ubc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {ubc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {ubc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {ubc}{sc}{ubsc}{}
+\DeclareFontSeriesChangeRule {ubc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {ubc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {ubc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {ubc}{x}{ubx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {ubx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {ubx}{c}{ubc}{}
+\DeclareFontSeriesChangeRule {ubx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {ubx}{ec}{ubec}{}
+\DeclareFontSeriesChangeRule {ubx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {ubx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {ubx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {ubx}{sc}{ubsc}{}
+\DeclareFontSeriesChangeRule {ubx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {ubx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {ubx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {ubx}{x}{ubx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {ub}{c}{ubc}{}
+\DeclareFontSeriesChangeRule {ub}{ec}{ubec}{}
+\DeclareFontSeriesChangeRule {ub}{sc}{ubsc}{}
+\DeclareFontSeriesChangeRule {ub}{x}{ubx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {ulc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {ulc}{c}{ulc}{}
+\DeclareFontSeriesChangeRule {ulc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {ulc}{ec}{ulec}{ulc}
+\DeclareFontSeriesChangeRule {ulc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {ulc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {ulc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {ulc}{sc}{ulsc}{ulc}
+\DeclareFontSeriesChangeRule {ulc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {ulc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {ulc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {ulc}{x}{ulx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {ulx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {ulx}{c}{ulc}{}
+\DeclareFontSeriesChangeRule {ulx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {ulx}{ec}{ulec}{}
+\DeclareFontSeriesChangeRule {ulx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {ulx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {ulx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {ulx}{sc}{ulsc}{}
+\DeclareFontSeriesChangeRule {ulx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {ulx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {ulx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {ulx}{x}{ulx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {ul}{c}{ulc}{}
+\DeclareFontSeriesChangeRule {ul}{ec}{ulec}{}
+\DeclareFontSeriesChangeRule {ul}{sc}{ulsc}{}
+\DeclareFontSeriesChangeRule {ul}{x}{ulx}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {x}{b}{bx}{}
+\DeclareFontSeriesChangeRule {x}{c}{c}{}
+\DeclareFontSeriesChangeRule {x}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {x}{ec}{ec}{}
+\DeclareFontSeriesChangeRule {x}{el}{elx}{}
+\DeclareFontSeriesChangeRule {x}{l}{lx}{}
+\DeclareFontSeriesChangeRule {x}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {x}{sc}{sc}{}
+\DeclareFontSeriesChangeRule {x}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {x}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {x}{ul}{ulx}{}
+% \end{macrocode}
+%
+%
+% Special rules for \texttt{lm} etc.\ aren't needed because if the
+% target \texttt{lm} is request it will used if there is no rule
+% and that id then reduced to \texttt{l}
+% automatically. Same for \texttt{mc} and friends. Only \texttt{?m}
+% and \texttt{m?} need rules.
+%
+% So here are the special rules for \texttt{m?}:
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {bc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {bec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {bsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {bx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {b}{m?}{m}{}
+\DeclareFontSeriesChangeRule {c}{m?}{c}{}
+\DeclareFontSeriesChangeRule {ebc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {ebec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {ebsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {ebx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {eb}{m?}{m}{}
+\DeclareFontSeriesChangeRule {ec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {elc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {elec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {elsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {elx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {el}{m?}{m}{}
+\DeclareFontSeriesChangeRule {lc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {lec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {lsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {lx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {l}{m?}{m}{}
+\DeclareFontSeriesChangeRule {m}{m?}{m}{}
+\DeclareFontSeriesChangeRule {sbc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {sbec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {sbsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {sbx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {sb}{m?}{m}{}
+\DeclareFontSeriesChangeRule {sc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {slc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {slec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {slsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {slx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {sl}{m?}{m}{}
+\DeclareFontSeriesChangeRule {ubc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {ubec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {ubsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {ubx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {ub}{m?}{ub}{}
+\DeclareFontSeriesChangeRule {ulc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {ulec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {ulsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {ulx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {ul}{m?}{m}{}
+\DeclareFontSeriesChangeRule {x}{m?}{x}{}
+% \end{macrocode}
+%
+% And there the special rules for \texttt{?m}:
+% \begin{macrocode}
+\DeclareFontSeriesChangeRule {bc}{?m}{b}{}
+\DeclareFontSeriesChangeRule {bec}{?m}{b}{}
+\DeclareFontSeriesChangeRule {bsc}{?m}{b}{}
+\DeclareFontSeriesChangeRule {bsc}{?m}{b}{}
+\DeclareFontSeriesChangeRule {bx}{?m}{b}{}
+\DeclareFontSeriesChangeRule {b}{?m}{b}{}
+\DeclareFontSeriesChangeRule {c}{?m}{m}{}
+\DeclareFontSeriesChangeRule {ebc}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {ebec}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {ebsc}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {ebsc}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {ebx}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {eb}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {ec}{?m}{m}{}
+\DeclareFontSeriesChangeRule {elc}{?m}{el}{}
+\DeclareFontSeriesChangeRule {elec}{?m}{el}{}
+\DeclareFontSeriesChangeRule {elsc}{?m}{el}{}
+\DeclareFontSeriesChangeRule {elsc}{?m}{el}{}
+\DeclareFontSeriesChangeRule {elx}{?m}{el}{}
+\DeclareFontSeriesChangeRule {el}{?m}{el}{}
+\DeclareFontSeriesChangeRule {lc}{?m}{l}{}
+\DeclareFontSeriesChangeRule {lec}{?m}{l}{}
+\DeclareFontSeriesChangeRule {lsc}{?m}{l}{}
+\DeclareFontSeriesChangeRule {lsc}{?m}{l}{}
+\DeclareFontSeriesChangeRule {lx}{?m}{l}{}
+\DeclareFontSeriesChangeRule {l}{?m}{l}{}
+\DeclareFontSeriesChangeRule {m}{?m}{m}{}
+\DeclareFontSeriesChangeRule {sbc}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sbec}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sbsc}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sbsc}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sbx}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sb}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sc}{?m}{m}{}
+\DeclareFontSeriesChangeRule {sc}{?m}{m}{}
+\DeclareFontSeriesChangeRule {slc}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {slec}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {slsc}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {slsc}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {slx}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {sl}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {ubc}{?m}{ub}{}
+\DeclareFontSeriesChangeRule {ubec}{?m}{ub}{}
+\DeclareFontSeriesChangeRule {ubsc}{?m}{ub}{}
+\DeclareFontSeriesChangeRule {ubsc}{?m}{ub}{}
+\DeclareFontSeriesChangeRule {ubx}{?m}{ub}{}
+\DeclareFontSeriesChangeRule {ub}{?m}{m}{}
+\DeclareFontSeriesChangeRule {ulc}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {ulec}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {ulsc}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {ulsc}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {ulx}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {ul}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {x}{?m}{m}{}
+% \end{macrocode}
+%
+%
+
+
+% \subsection{Changing to a new series}
+%
+
+% \begin{macro}{\fontseriesforce}
+% To change unconditionally to a new series you can use
+% \cs{fontseriesforce}. If course, if the series doesn't exist for
+% the current family substitution still happens, but there is not
+% dependency on the current series.
+% \begin{macrocode}
+\DeclareRobustCommand\fontseriesforce[1]{\edef\f@series{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\fontseries}
+% The \cs{fontseries} command takes one argument which is the requested new
+% font series. In the orginal implementation it simply saved the
+% expanded value in \cs{f@series}. Now we do a bit more processing
+% and look up the final value in the font series data base. This is
+% done by \cs{merge@font@series}.
+% \begin{macrocode}
+\DeclareRobustCommand\fontseries[1]{\merge@font@series{#1}}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\merge@font@series}
+% We look up the data base value by expanding the right command
+% twice. If no such value exist then the result will be \cs{relax}
+% otherwise it will be the two brace groups: the desired result and
+% the alternate result. The first case means that the third
+% argument to \cs{merge@font@series} will be empty.
+% \begin{macrocode}
+\def\merge@font@series#1{%
+ \expandafter\expandafter\expandafter
+ \merge@font@series@
+ \csname series@\f@series @#1\endcsname
+ {#1}%
+ \@nil
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+% \begin{macro}{\merge@font@series@}
+% This now defines the new \cs{f@series}:
+% \begin{macrocode}
+\def\merge@font@series@#1#2#3\@nil{%
+% \end{macrocode}
+% If the third argument is empty there is no database entry for the
+% combination and the second argument holds the new series so we
+% return that.
+%
+% Originally the test was simply \verb=\ifx!#3!= but that actually
+% dies if \texttt{\#3} starts with a conditional and in the
+% definition of \cs{AmSfont} that is actually the case.
+% \begin{macrocode}
+%\ifcat\expandafter X\detokenize{#1}X%
+ \def\@reserveda{#3}%
+ \ifx\@reserveda\@empty
+ \set@target@series{#2}%
+ \else
+% \end{macrocode}
+% Otherwise we check if the desired result for the series
+% (\texttt{\#1}) exists for the font family and the current shape.
+% As the \texttt{.fd} is perhaps not loaded yet, we first
+% have to do that, otherwise the test would fail even if the face
+% is actually available.
+% \begin{macrocode}
+ \maybe@load@fontshape
+ \edef\@reserveda{\f@encoding /\f@family /#1/\f@shape}%
+ \ifcsname \@reserveda \endcsname
+% \end{macrocode}
+% If the desired result is available then we use that. However, we
+% do need some post-processing because we need to drop surplus
+% \texttt{m}s due to the way naming convention was designed in the
+% '90s (sigh).
+% \begin{macrocode}
+ \set@target@series{#1}%
+% \end{macrocode}
+% If not, then we try the alternate result (\texttt{\#2}).
+% \begin{macrocode}
+ \else
+ \ifcsname \f@encoding /\f@family /#2/\f@shape \endcsname
+% \end{macrocode}
+% If the alternate result exist we use that and also issue a
+% warning (or rather a log entry) that we didn't managed to change
+% to the desired font.
+% \begin{macrocode}
+ \set@target@series{#2}%
+ \@font@shape@subst@warning
+% \end{macrocode}
+% If that doesn't exist either, then we use the requested series unmodified
+% (again with a warning).
+% \begin{macrocode}
+ \else
+ \set@target@series{#3}%
+ \@font@shape@subst@warning
+ \fi
+ \fi
+ \fi
+}
+% \end{macrocode}
+% It is possible that the previous font and the new one are
+% actually identical (and the font was not found because it still
+% needs loading) in which case a warning would look rather odd. So
+% we make a quick check for that (which is the reason why we defined
+% \cs{@reserveda} above.
+% \begin{macrocode}
+\def\@font@shape@subst@warning{%
+ \edef\@reservedb{\curr@fontshape}%
+ \ifx\@reserveda\@reservedb \else
+ \@font@warning{Font shape `\@reserveda' undefined\MessageBreak
+ using `\@reservedb' instead}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \begin{macro}{\maybe@load@fontshape}
+% A small helper that we use a couple of times: try loading a
+% fontshape (in a group because \cs{try@load@fontshape} normalizes
+% catcodes).
+% \begin{macrocode}
+\def\maybe@load@fontshape{\begingroup\try@load@fontshape\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\set@target@series}
+% \begin{macro}{\series@drop@one@m}
+%
+% Finally the code for normalizing the \cs{f@series} value.
+%
+% The combined series value determined by the mapping may still
+% contain an \texttt{m} that we have to remove (as the \texttt{.fd}
+% files use \texttt{c} not \texttt{mc} to denote a medium weight
+% condensed series, etc.). We do this in all branches above because a user
+% might have written
+%\begin{verbatim}
+\DeclareFontSeriesChangeRule {m}{sc}{msc}{mc}
+%\end{verbatim}
+% instead of using \texttt{sc} and \texttt{c} as needed in the
+% \texttt{.fd} file.
+% \begin{macrocode}
+\def\set@target@series#1{%
+% \end{macrocode}
+% We need to \cs{edef} the argument first in case it starts with a
+% conditional.
+% \begin{macrocode}
+ \edef\f@series{#1}%
+ \edef\f@series{\expandafter\series@drop@one@m\f@series mm\series@drop@one@m}%
+}
+% \end{macrocode}
+% Drop up to two \texttt{m}s but keep one if that makes the series
+% value empty.
+% \begin{macrocode}
+\def\series@drop@one@m#1m#2m#3\series@drop@one@m{%
+ \ifx\relax#1#2\relax m\else#1#2\fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+
+
+% \section{Changing the shape}
+%
+% Shapes are also split in two axes (though it could be more if
+% that is desirable), essentially building in an ``sc''
+% axis).
+%
+%
+%
+% \begin{macro}{\DeclareFontShapeChangeRule}
+% The database for shapes is done in exactly the same way, only
+% that it is much smaller and we usually have no alternative shape
+% (or rather it is empty thus not used).
+% \begin{macrocode}
+\def\DeclareFontShapeChangeRule #1#2#3#4{%
+ \@namedef{shape@#1@#2}{{#3}{#4}}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% There is kind of the same problem with returning back from
+% \texttt{sc} to normal. It sort of needs its own letter. In
+% \texttt{fontspec} this was solved by the first time \cs{upshape} changes
+% \texttt{it} or \texttt{sl} back (so only \texttt{sc} remains) and
+% second time it changes then \texttt{sc} back to normal. Maybe
+% that's not a bad way to handle it, but decided for a slightly
+% different approach: \texttt{n} always returns to ``normal'', ie
+% resets everything and \texttt{up} changes italic or slanted to
+% upright and \texttt{ulc} undoes small caps.
+%
+% So we now offer \cs{normalshape} (using \cs{shapedefault} which is normally the same as
+% calling both \cs{ulcshape} and \cs{upshape}, only more efficient.
+%
+%
+% \begin{macro}{\ulcshape}
+% \begin{macro}{\textulc}
+% \begin{macro}{\ulcdefault}
+% To request going back to upper/lowercase we need a new
+% command. It uses \texttt{ulc} as shape name but this shape is
+% virtual, i.e., it doesn't exist as a real shape, it is only used
+% as part of the database table entries and thus only appears in
+% the second argument there (but not in the first).
+% \begin{macrocode}
+\DeclareRobustCommand\ulcshape
+ {\not@math@alphabet\ulcshape\relax
+ \fontshape\ulcdefault\selectfont}
+\newcommand\ulcdefault{ulc}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\swshape}
+% \begin{macro}{\textsw}
+% \begin{macro}{\swdefault}
+% New command to select a swash shape. The standard rules put this
+% in the same category as italics or slanted, i.e., if you ask for
+% it then italics are undone. One could provide more complicated
+% rules so that \texttt{it} + \texttt{sw} becomes \texttt{swit} but
+% given that there are only very few fonts that have swash letters
+% that level of flexibility (these days) would be just resulting in
+% a lot of combinations that do not exist.
+% \begin{macrocode}
+\DeclareRobustCommand\swshape
+ {\not@math@alphabet\swshape\relax
+ \fontshape\swdefault\selectfont}
+\newcommand\swdefault{sw}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\sscshape}
+% \begin{macro}{\textssc}
+% \begin{macro}{\sscdefault}
+% New command to select spaced small capitals. This is only here
+% because \texttt{fontaxes} offered it. There isn't a single free
+% font that supports it. However, some commercial ones do, so we
+% offer it so that at some point \texttt{fontaxes} could be
+% retired.
+%
+% So far there aren't any rules for it---probably there should be
+% some putting it in the same category as \texttt{sc}.
+% \begin{macrocode}
+\DeclareRobustCommand\sscshape
+ {\not@math@alphabet\sscshape\relax
+ \fontshape\sscdefault\selectfont}
+\newcommand\sscdefault{ssc}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+% \subsection{Mapping rules for shape combinations}
+%
+% Many of the entries are commented out as we will get that result
+% without any entry.
+% \begin{macrocode}
+%\DeclareFontShapeChangeRule {n}{n} {n} {}
+\DeclareFontShapeChangeRule {n}{it} {it} {sl}
+\DeclareFontShapeChangeRule {n}{sl} {sl} {it}
+%\DeclareFontShapeChangeRule {n}{sw} {sw} {}
+%\DeclareFontShapeChangeRule {n}{sc} {sc} {}
+\DeclareFontShapeChangeRule {n}{ulc} {n} {}
+\DeclareFontShapeChangeRule {n}{up} {n} {}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\DeclareFontShapeChangeRule {it}{n} {n} {}
+%\DeclareFontShapeChangeRule {it}{it} {it} {}
+\DeclareFontShapeChangeRule {it}{sl} {sl} {it}
+%\DeclareFontShapeChangeRule {it}{sw} {sw} {}
+% \end{macrocode}
+% If neither \texttt{scit} nor \texttt{scsl} exist then \texttt{sc}
+% will be used as a fallback albeit with a log entry, so except for
+% the latter there will be no change for CM or Latin Modern fonts.
+% \begin{macrocode}
+\DeclareFontShapeChangeRule {it}{sc} {scit} {scsl}
+\DeclareFontShapeChangeRule {it}{ulc} {it} {}
+\DeclareFontShapeChangeRule {it}{up} {n} {}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\DeclareFontShapeChangeRule {sl}{n} {n} {}
+\DeclareFontShapeChangeRule {sl}{it} {it} {sl}
+%\DeclareFontShapeChangeRule {sl}{sl} {sl} {}
+%\DeclareFontShapeChangeRule {sl}{sw} {sw} {}
+\DeclareFontShapeChangeRule {sl}{sc} {scsl} {scit}
+\DeclareFontShapeChangeRule {sl}{ulc} {sl} {}
+\DeclareFontShapeChangeRule {sl}{up} {n} {}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\DeclareFontShapeChangeRule {sc}{n} {n} {}
+\DeclareFontShapeChangeRule {sc}{it} {scit} {scsl}
+\DeclareFontShapeChangeRule {sc}{sl} {scsl} {scit}
+\DeclareFontShapeChangeRule {sc}{sw} {scsw} {sw}
+%\DeclareFontShapeChangeRule {sc}{sc} {sc} {}
+\DeclareFontShapeChangeRule {sc}{ulc} {n} {}
+% \end{macrocode}
+%
+% The next rule might be a bit surprising and rightly so. Correct
+% would be that \texttt{sc} is not affected by \texttt{up}, i.e.,
+% remains \texttt{sc} as showed in the commented out rule. However,
+% for nearly three decades commands such as \upshape{sc} or
+% \cs{textup} changed small caps back to the ``normal'' shape. So
+% for backward compatibility we keep hat behavior.
+%
+% As a result you are currently typesetting in \texttt{scit} or
+% \texttt{scsl} using \cs{upshape} twice will return you to the
+% normal shape too, the first will change to \texttt{sc} and the
+% second (because of the rule below) change that to
+% \texttt{n}. This is the way \texttt{fontspec} implemented its
+% version on this interface, so this rule means we are also
+% compatible with the way \texttt{fontspec} behaved. Still it
+% remains an odditywhic I would rather liked to have avoided.
+% \begin{macrocode}
+%\DeclareFontShapeChangeRule {sc}{up} {sc} {}
+\DeclareFontShapeChangeRule {sc}{up} {n} {}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\DeclareFontShapeChangeRule {scit}{n} {n} {}
+\DeclareFontShapeChangeRule {scit}{it} {scit} {}
+\DeclareFontShapeChangeRule {scit}{sl} {scsl} {scit}
+\DeclareFontShapeChangeRule {scit}{sw} {scsw} {sc} % or scit?
+\DeclareFontShapeChangeRule {scit}{sc} {scit} {}
+\DeclareFontShapeChangeRule {scit}{ulc} {it} {}
+\DeclareFontShapeChangeRule {scit}{up} {sc} {}
+% \end{macrocode}
+% The previous rule assumes that if \texttt{scit} exists then
+% \texttt{it} exists as well. If not, the mechanism will save
+% \texttt{ulc} in \cs{f@series} which most certainly doesn't
+% exist. So when a font is later selected that would result in a
+% substitution (so no harm done really). Alternatively, we could in
+% this case use \texttt{n} as aternative, which may be a bit
+% faster, but such a setup would be so weird in the first place
+% that this isn't worth the effort.
+%
+% \begin{macrocode}
+%\DeclareFontShapeChangeRule {scsl}{n} {n} {}
+\DeclareFontShapeChangeRule {scsl}{it} {scit} {scsl}
+\DeclareFontShapeChangeRule {scsl}{sl} {scsl} {}
+\DeclareFontShapeChangeRule {scsl}{sw} {scsw} {sc} % or scsl?
+\DeclareFontShapeChangeRule {scsl}{sc} {scsl} {}
+\DeclareFontShapeChangeRule {scsl}{ulc} {sl} {}
+\DeclareFontShapeChangeRule {scsl}{up} {sc} {}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\DeclareFontShapeChangeRule {scsw}{n} {n} {}
+\DeclareFontShapeChangeRule {scsw}{it} {scit} {scsw}
+\DeclareFontShapeChangeRule {scsw}{sl} {scsl} {}
+\DeclareFontShapeChangeRule {scsw}{sw} {scsw} {}
+\DeclareFontShapeChangeRule {scsw}{sc} {scsw} {}
+\DeclareFontShapeChangeRule {scsw}{ulc} {sw} {}
+\DeclareFontShapeChangeRule {scsw}{up} {sc} {}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\DeclareFontShapeChangeRule {sw}{n} {n} {}
+%\DeclareFontShapeChangeRule {sw}{it} {it} {}
+%\DeclareFontShapeChangeRule {sw}{sl} {sl} {}
+%\DeclareFontShapeChangeRule {sw}{sw} {sw} {}
+\DeclareFontShapeChangeRule {sw}{sc} {scsw} {}
+\DeclareFontShapeChangeRule {sw}{ulc} {sw} {}
+\DeclareFontShapeChangeRule {sw}{up} {n} {}
+% \end{macrocode}
+%
+%
+% \subsection{Changing to a new shape}
+%
+% \begin{macro}{\fontshape}
+% Again the \cs{fontshape} now has to do a lookup to get to its new
+% value in \cs{f@shape}. The method is exactly the same as in
+% \cs{fontseries}.
+% \begin{macrocode}
+\DeclareRobustCommand\fontshape[1]{\merge@font@shape{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\fontshapeforce}
+% The unconditional version:
+% \begin{macrocode}
+\DeclareRobustCommand\fontshapeforce[1]{\edef\f@shape{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\merge@font@shape}
+% Look up the database entry (if existing) and act accordingly.
+% \begin{macrocode}
+\def\merge@font@shape#1{%
+ \expandafter\expandafter\expandafter
+ \merge@font@shape@
+ \csname shape@\f@shape @#1\endcsname
+ {#1}%
+ \@nil
+}
+% \end{macrocode}
+% \end{macro}
+%
+
+% \begin{macro}{\merge@font@shape@}
+% Same game now, except that we look at shapes not series values
+% and we can set the shape without the complication of dropping
+% ``m''s from the name as we had to for the series.
+% \begin{macrocode}
+\def\merge@font@shape@#1#2#3\@nil{%
+ \def\@reserveda{#3}%
+ \ifx\@reserveda\@empty
+ \edef\f@shape{#2}%
+ \else
+ \maybe@load@fontshape
+ \edef\@reserveda{\f@encoding /\f@family /\f@series/#1}%
+ \ifcsname \@reserveda\endcsname
+ \edef\f@shape{#1}%
+ \else
+ \ifcsname \f@encoding /\f@family /\f@series/#2\endcsname
+ \edef\f@shape{#2}%
+ \@font@shape@subst@warning
+ \else
+ \edef\f@shape{#3}%
+ \@font@shape@subst@warning
+ \fi
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\normalshape}
+%
+% \cs{normalshape} resets both sub-axes if the default rules are used.
+% \begin{macrocode}
+\protected\def\normalshape
+ {\not@math@alphabet\normalshape\relax
+ \fontshape\shapedefault\selectfont}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \section{Make sure we win \ldots}
+%
+% This code implements one aspect of what the package \textsf{fontaxes}
+% provide. So its redefinitions for the various shape commands,
+% such as \cs{itshape} should no longer happen. We therefore force
+% the standard definitions at \cs{AtBeginDocument} (later when this
+% is defined. Once
+% \texttt{fontaxes} is no longer doing such redefinitions that could
+% be taken out again.
+%
+% We use a separate macro so that we can easily disable this (in
+% case of rollback).
+%
+% \begin{macro}{\reinstall@nfss@defs}
+%
+% I use \cs{protected} here not \cs{DeclareRobustCommand} to avoid
+% extra status lines.
+% \begin{macrocode}
+\def\reinstall@nfss@defs{%
+ \protected\def\upshape
+ {\not@math@alphabet\upshape\relax
+ \fontshape\updefault\selectfont}%
+ \protected\def\slshape
+ {\not@math@alphabet\slshape\relax
+ \fontshape\sldefault\selectfont}%
+ \protected\def\scshape
+ {\not@math@alphabet\scshape\relax
+ \fontshape\scdefault\selectfont}%
+ \protected\def\itshape
+ {\not@math@alphabet\itshape\mathit
+ \fontshape\itdefault\selectfont}%
+ \protected\def\ulcshape
+ {\not@math@alphabet\ulcshape\relax
+ \fontshape{ulc}\selectfont}%
+ \protected\def\swshape
+ {\not@math@alphabet\swshape\relax
+ \fontshape\swdefault\selectfont}%
+ \protected\def\sscshape
+ {\not@math@alphabet\sscshape\relax
+ \fontshape\sscdefault\selectfont}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% Supporting rollback \ldots
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\DeclareFontSeriesChangeRule}{Series change rules}%
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\fontseries[1]{\edef\f@series{#1}}
+%<latexrelease>\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}}
+%<latexrelease>\let\fontseriesforce\@undefined
+%<latexrelease>\let\fontshapeforce\@undefined
+%<latexrelease>
+%<latexrelease>\let\DeclareFontSeriesChangeRule\@undefined
+%<latexrelease>\let\merge@font@series\@undefined
+%<latexrelease>\let\merge@font@series@\@undefined
+%<latexrelease>\let\@font@shape@subst@warning\@undefined
+%<latexrelease>\let\maybe@load@fontshape\@undefined
+%<latexrelease>\let\set@target@series\@undefined
+%<latexrelease>\let\series@drop@one@m\@undefined
+%<latexrelease>\let\DeclareFontShapeChangeRule\@undefined
+%<latexrelease>\let\merge@font@shape\@undefined
+%<latexrelease>\let\merge@font@shape@\@undefined
+%<latexrelease>\let\normalshape\@undefined
+%<latexrelease>\let\ulcshape\@undefined
+%<latexrelease>\let\ulcdefault\@undefined
+%<latexrelease>\let\swshape\@undefined
+%<latexrelease>\let\swdefault\@undefined
+%<latexrelease>\let\sscshape\@undefined
+%<latexrelease>\let\sscdefault\@undefined
+%<latexrelease>\let\normalshape\@undefined
+% \end{macrocode}
+% This is always called in \cs{document} so don't make it undefined.
+% \begin{macrocode}
+%<latexrelease>
+%<latexrelease>\let\reinstall@nfss@defs\relax
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+%</2ekernel>
+% \end{macrocode}
+%
+% \Finale
+%
diff --git a/Master/texmf-dist/source/latex/base/ltfssbas.dtx b/Master/texmf-dist/source/latex/base/ltfssbas.dtx
index da9dab5d382..b59b0fafdd6 100644
--- a/Master/texmf-dist/source/latex/base/ltfssbas.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfssbas.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssbas.dtx}
- [2019/08/27 v3.2d LaTeX Kernel (NFSS Basic Macros)]
+ [2019/12/17 v3.2e LaTeX Kernel (NFSS Basic Macros)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -800,16 +800,11 @@
% \begin{macro}{\f@shape}
% \begin{macrocode}
\DeclareRobustCommand\fontfamily[1]{\edef\f@family{#1}}
-\DeclareRobustCommand\fontseries[1]{\edef\f@series{#1}}
-\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}}
% \end{macrocode}
-% Some handy abbreviation if you want to get some particular font
-% in the current size. If also the size should change one has to
-% issue a |\fontsize| command first.
+% There are now defined later (and differently).
% \begin{macrocode}
-\DeclareRobustCommand\usefont[4]{\fontencoding{#1}\fontfamily{#2}%
- \fontseries{#3}\fontshape{#4}\selectfont
- \ignorespaces}
+%\DeclareRobustCommand\fontseries[1]{\edef\f@series{#1}}
+%\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -819,6 +814,31 @@
% \end{macro}
%
%
+%
+% \begin{macro}{\usefont}
+% Some handy abbreviation if you want to get some particular font
+% in the current size. If also the size should change one has to
+% issue a |\fontsize| command first.
+%
+% \cs{fontencoding} needs to do some setup work so we call that,
+% but instead of calling \cs{fontfamily}, \cs{fontseries} and
+% \cs{fontshape} it earlier versions of this code did, we now set
+% \cs{f@family}, etc.\ directly. If we would call \cs{fontseries}
+% or \cs{fontshape} as it
+% was done in the past, they would now interact with the existing
+% series and shape which is not desired if we intend to use an
+% explicit font shape!
+% \changes{v3.2e}{2019/12/17}{Don't call \cs{fontseries} or \cs{fontshape}}
+% \begin{macrocode}
+\DeclareRobustCommand\usefont[4]{\fontencoding{#1}%
+ \edef\f@family{#2}%
+ \edef\f@series{#3}%
+ \edef\f@shape{#4}\selectfont
+ \ignorespaces}
+% \end{macrocode}
+% \end{macro}
+%
+%
% \begin{macro}{\linespread}
% \changes{v2.1j}{1994/05/12}{New macro}
% \changes{v2.1p}{1994/05/16}{Remove surplus braces}
@@ -1269,6 +1289,122 @@
% \end{macro}
%
%
+%
+% \begin{macro}{\LoadFontDefinitionFile}
+% Load and \texttt{.fd} files for some encoding and family (if it exists).
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\LoadFontDefinitionFile}{Loading .fd files}%
+\def\LoadFontDefinitionFile#1#2{%
+ \begingroup
+ \edef\f@encoding{#1}%
+ \edef\f@family{#2}%
+ \try@load@fontshape
+ \endgroup
+}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\LoadFontDefinitionFile}{Loading .fd files}%
+%<latexrelease>
+%<latexrelease>\let\LoadFontDefinitionFile\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+
+% \begin{macro}{\DeclareFontFamilySubstitution}
+% The idea for this macro is stolen from the \texttt{substitutefont}
+% package by Günter Milde, with some modifications and a new name.
+%
+% Its purpose is to provide characters in a special encoding tht
+% are not available in the current font family to be taken from a
+% different family that is visually compatible (or not if you
+% choose badly). For example, you can match the GFS Didot Greek
+% characters with \TeX{} Gyre Pagella (Palatino) by specifying
+%\begin{verbatim}
+% \DeclareFontFamilySubstitution{LGR}{qpl}{udidot}
+%\end{verbatim}
+% This way if you ask for the \texttt{LGR} encoding in for the
+% \texttt{qpl} family you get the characters from the
+% \texttt{udidot} family substituted.
+%
+% We need to ensure that the macro is defined with
+% \cs{nfss@catcodes} in force (not quite sure why at the moment to
+% be honest).
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\DeclareFontFamilySubstitution}{Provide family substituation}%
+\begingroup
+\nfss@catcodes
+\gdef\DeclareFontFamilySubstitution#1#2#3{%
+% \end{macrocode}
+% We only provide a set of silent substitutions. The package also
+% (re)declared the family, but this is incorrect in my eyes and it
+% is better to handle that differently.
+%
+% Of course the families may still need loading at
+% this point and so we arange for this. Otherwise we might run into
+% trouble because the necessary \cs{DeclareFontFamily} has not been
+% seen.
+% \begin{macrocode}
+ \LoadFontDefinitionFile{#1}{#2}%
+ \LoadFontDefinitionFile{#1}{#3}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}%
+ \DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}%
+ \DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}%
+ \DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}%
+% \end{macrocode}
+% These days a few more shapes might be around, so we declare those
+% too. If they don't exist then after the first substitution normal
+% fallbacks will happen.
+% \begin{macrocode}
+ \DeclareFontShape{#1}{#2}{m}{sw}{<->ssub * #3/m/sw}{}%
+ \DeclareFontShape{#1}{#2}{m}{scit}{<->ssub * #3/m/scit}{}%
+ \DeclareFontShape{#1}{#2}{m}{scsl}{<->ssub * #3/m/scsl}{}%
+% \end{macrocode}
+% Same game with \texttt{b} and \texttt{bx}, for other weights you
+% are on your own:
+% \begin{macrocode}
+ \DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/b/it}{}%
+ \DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/b/n}{}%
+ \DeclareFontShape{#1}{#2}{b}{scit}{<->ssub * #3/b/scit}{}%
+ \DeclareFontShape{#1}{#2}{b}{scsl}{<->ssub * #3/b/scsl}{}%
+ \DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/b/sc}{}%
+ \DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/b/sl}{}%
+ \DeclareFontShape{#1}{#2}{b}{sw}{<->ssub * #3/b/sw}{}%
+ \DeclareFontShape{#1}{#2}{bx}{it}{<->ssub * #3/bx/it}{}%
+ \DeclareFontShape{#1}{#2}{bx}{n}{<->ssub * #3/bx/n}{}%
+ \DeclareFontShape{#1}{#2}{bx}{scit}{<->ssub * #3/bx/scit}{}%
+ \DeclareFontShape{#1}{#2}{bx}{scsl}{<->ssub * #3/bx/scsl}{}%
+ \DeclareFontShape{#1}{#2}{bx}{sc}{<->ssub * #3/bx/sc}{}%
+ \DeclareFontShape{#1}{#2}{bx}{sl}{<->ssub * #3/bx/sl}{}%
+ \DeclareFontShape{#1}{#2}{bx}{sw}{<->ssub * #3/bx/sw}{}%
+}
+\endgroup
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\DeclareFontFamilySubstitution}{Provide family substituation}%
+%<latexrelease>
+%<latexrelease>\let\DeclareFontFamilySubstitution\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
% \begin{macro}{\DeclareErrorFont}
% Declare the last resort shape! We assume that in this fontshape
% there is a 10pt font but it doesn't really matter. We only loose
@@ -1323,7 +1459,7 @@
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
-%
+%
% \begin{macrocode}
\@onlypreamble\DeclareErrorFont
% \end{macrocode}
@@ -1389,7 +1525,7 @@
% \begin{macrocode}
\begingroup
\try@load@fontshape
- \endgroup
+ \endgroup
\fi \fi
\fi
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/ltfsscmp.dtx b/Master/texmf-dist/source/latex/base/ltfsscmp.dtx
index d62eeb6f47b..8583fb1a9b4 100644
--- a/Master/texmf-dist/source/latex/base/ltfsscmp.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfsscmp.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltfssdcl.dtx b/Master/texmf-dist/source/latex/base/ltfssdcl.dtx
index d1284a08e8a..951c6de2e5a 100644
--- a/Master/texmf-dist/source/latex/base/ltfssdcl.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfssdcl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -36,7 +36,7 @@
%
%
\ProvidesFile{ltfssdcl.dtx}
- [2019/08/27 v3.0s LaTeX Kernel (NFSS Declarative Interface)]
+ [2020/01/20 v3.0t LaTeX Kernel (NFSS Declarative Interface)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -1104,7 +1104,7 @@
\edef\reserved@a{\noexpand\in@
{\expandafter\@gobble\string\mathaccent}
{\expandafter\meaning
- \csname\expandafter\@gobble\string#1\space\endcsname}}%
+ \csname\expandafter\@gobble\string#1\space\endcsname}}%
\reserved@a
\ifin@
\expandafter\let
@@ -1367,12 +1367,7 @@
% \begin{macro}{\@DeclareMathDelimiter}
% \changes{v3.0r}{2016/02/18}
% {Check for delimiter not \cs{delimiter}}
-% \changes{v3.0s}{2019/08/27}{Make math delimiters robust}
% \begin{macrocode}
-%</2ekernel>
-%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2019/10/01}%
-%<latexrelease> {\@DeclareMathDelimiter}{Make math delimiters robust}%
\def\@DeclareMathDelimiter#1#2#3#4#5#6{%
\expandafter\in@\csname sym#3\expandafter\endcsname
\expandafter{\group@list}%
@@ -1398,11 +1393,9 @@
\edef\reserved@d{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
%
\edef\reserved@a{\noexpand\in@
- {\expandafter\@gobble\string\delimiter}%
- {\expandafter\meaning\csname\expandafter\@gobble\string#1\space\endcsname}}%
+ {\expandafter\@gobble\string\delimiter}{\meaning#1}}%
\reserved@a
\ifin@
- \expandafter\let\csname\expandafter\@gobble\string#1\space\endcsname\@undefined
\expandafter\set@mathdelimiter
\csname sym#3\expandafter\endcsname
\csname sym#5\endcsname#1#2%
@@ -1428,65 +1421,6 @@
\@latex@error{Symbol font `#3' is not defined}\@eha
\fi
}
-%</2ekernel|latexrelease>
-%<latexrelease>\EndIncludeInRelease
-%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\@DeclareMathDelimiter}{Make math delimiters robust}%
-%<latexrelease>\def\@DeclareMathDelimiter#1#2#3#4#5#6{%
-%<latexrelease> \expandafter\in@\csname sym#3\expandafter\endcsname
-%<latexrelease> \expandafter{\group@list}%
-%<latexrelease> \ifin@
-%<latexrelease> \expandafter\in@\csname sym#5\expandafter\endcsname
-%<latexrelease> \expandafter{\group@list}%
-%<latexrelease> \ifin@
-%<latexrelease> \begingroup
-%<latexrelease> \count\z@=#4\relax
-%<latexrelease> \count\tw@\count\z@
-%<latexrelease> \divide\count\z@\sixt@@n
-%<latexrelease> \count@\count\z@
-%<latexrelease> \multiply\count@\sixt@@n
-%<latexrelease> \advance\count\tw@-\count@
-%<latexrelease> \edef\reserved@c{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
-%<latexrelease> %
-%<latexrelease> \count\z@=#6\relax
-%<latexrelease> \count\tw@\count\z@
-%<latexrelease> \divide\count\z@\sixt@@n
-%<latexrelease> \count@\count\z@
-%<latexrelease> \multiply\count@\sixt@@n
-%<latexrelease> \advance\count\tw@-\count@
-%<latexrelease> \edef\reserved@d{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}%
-%<latexrelease> %
-%<latexrelease> \edef\reserved@a{\noexpand\in@
-%<latexrelease> {\expandafter\@gobble\string\delimiter}{\meaning#1}}%
-%<latexrelease> \reserved@a
-%<latexrelease> \ifin@
-%<latexrelease> \expandafter\set@mathdelimiter
-%<latexrelease> \csname sym#3\expandafter\endcsname
-%<latexrelease> \csname sym#5\endcsname#1#2%
-%<latexrelease> \reserved@c\reserved@d
-%<latexrelease> \@font@info{Redeclaring math delimiter \string#1}%
-%<latexrelease> \else
-%<latexrelease> \expandafter\ifx
-%<latexrelease> \csname\expandafter\@gobble\string#1\endcsname
-%<latexrelease> \relax
-%<latexrelease> \expandafter\set@mathdelimiter
-%<latexrelease> \csname sym#3\expandafter\endcsname
-%<latexrelease> \csname sym#5\endcsname#1#2%
-%<latexrelease> \reserved@c\reserved@d
-%<latexrelease> \else
-%<latexrelease> \@latex@error{Command `\string#1' already defined}\@eha
-%<latexrelease> \fi
-%<latexrelease> \fi
-%<latexrelease> \endgroup
-%<latexrelease> \else
-%<latexrelease> \@latex@error{Symbol font `#5' is not defined}\@eha
-%<latexrelease> \fi
-%<latexrelease> \else
-%<latexrelease> \@latex@error{Symbol font `#3' is not defined}\@eha
-%<latexrelease> \fi
-%<latexrelease>}
-%<latexrelease>\EndIncludeInRelease
-%<*2ekernel>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1547,9 +1481,16 @@
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\set@mathdelimiter}{make delimiters robust}%
\def\set@mathdelimiter#1#2#3#4#5#6{%
+% \end{macrocode}
+% We use \cs{protected} not \cs{MakeRobust} so that
+% \verb=\bigl\lfoor= etc.\ works inside \cs{protected@edef}.
+% \changes{v3.0s}{2019/08/27}{Make math delimiters robust}
+% \changes{v3.0t}{2020/01/20}{fix for gh/251}
+% \begin{macrocode}
+ \protected
\xdef#3{\delimiter"\mathchar@type#4\hexnumber@#1#5%
\hexnumber@#2#6 }%
- \MakeRobust#3%
+% \MakeRobust#3%
}
\@onlypreamble\set@mathdelimiter
%</2ekernel|latexrelease>
diff --git a/Master/texmf-dist/source/latex/base/ltfssini.dtx b/Master/texmf-dist/source/latex/base/ltfssini.dtx
index b073a5cc379..9687e08b0e6 100644
--- a/Master/texmf-dist/source/latex/base/ltfssini.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfssini.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -36,7 +36,7 @@
%
%
\ProvidesFile{ltfssini.dtx}
- [2019/08/27 v3.1d LaTeX Kernel (NFSS Initialisation)]
+ [2020/01/11 v3.1f LaTeX Kernel (NFSS Initialisation)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -157,26 +157,28 @@
% Now we define the standard font change commands.
% We don't allow the use of |\rmfamily| etc.\ in math mode.
%
+% (Actually most are now defined further down in the file.)
+%
% First the changes to another \emph{family}:
% \begin{macrocode}
-\DeclareRobustCommand\rmfamily
- {\not@math@alphabet\rmfamily\mathrm
- \fontfamily\rmdefault\selectfont}
-\DeclareRobustCommand\sffamily
- {\not@math@alphabet\sffamily\mathsf
- \fontfamily\sfdefault\selectfont}
-\DeclareRobustCommand\ttfamily
- {\not@math@alphabet\ttfamily\mathtt
- \fontfamily\ttdefault\selectfont}
+%\DeclareRobustCommand\rmfamily
+% {\not@math@alphabet\rmfamily\mathrm
+% \fontfamily\rmdefault\selectfont}
+%\DeclareRobustCommand\sffamily
+% {\not@math@alphabet\sffamily\mathsf
+% \fontfamily\sfdefault\selectfont}
+%\DeclareRobustCommand\ttfamily
+% {\not@math@alphabet\ttfamily\mathtt
+% \fontfamily\ttdefault\selectfont}
% \end{macrocode}
% Then the commands changing the \emph{series}:
% \begin{macrocode}
-\DeclareRobustCommand\bfseries
- {\not@math@alphabet\bfseries\mathbf
- \fontseries\bfdefault\selectfont}
-\DeclareRobustCommand\mdseries
- {\not@math@alphabet\mdseries\relax
- \fontseries\mddefault\selectfont}
+%\DeclareRobustCommand\bfseries
+% {\not@math@alphabet\bfseries\mathbf
+% \fontseries\bfdefault\selectfont}
+%\DeclareRobustCommand\mdseries
+% {\not@math@alphabet\mdseries\relax
+% \fontseries\mddefault\selectfont}
\DeclareRobustCommand\upshape
{\not@math@alphabet\upshape\relax
\fontshape\updefault\selectfont}
@@ -196,29 +198,873 @@
%
%
%
+%
+% \section{Custom series settings for main document families}
+%
+% This section was introduced 2020/02/02 and for now we support a
+% full rollback (may need splitting later).
+% \changes{v3.1e}{2019/12/17}{Provide custom series settings a la mweights}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\DeclareFontSeriesDefault}{Custom series}%
+% \end{macrocode}
+%
+% One problem with the NFSS approach of handling the series axis
+% turned out to be that (especially with respect to ``boldness'')
+% different font families implemented different strategies. For
+% example, with Computer Modern fonts you normally only have
+% \texttt{bx} whereas most PostScript fonts offered only \texttt{b}
+% but not \texttt{bx}. As a result \LaTeX's standard setting for
+% \cs{bfdefault} didn't work with such fonts, but if it got changed
+% to produce \texttt{b}, then that didn't work with Computer Modern
+% if the fonts got combined (e.g., using Computer Modern Typewriter
+% with such fonts).
+%
+% The solution back then was to provide substitution rules in the
+% font \texttt{.fd} such that if a \texttt{bx} series got requested
+% the \texttt{b} series got used. While this works in that
+% particular case, it isn't a very
+% general solution. For example, if you happen to have a font family that
+% has several weights you may want to typeset the whole document
+% in a somewhat lighter or darker font but if you then modify
+% \cs{mddefault} to allow for this, then of course your change only
+% works with that particular family but not with the typewriter
+% or sans serif family you also want to use.
+%
+% A better solution was provided by the \texttt{mweights} package by
+% Bob Tennent that offers defaults on the level of the three main
+% font families in the document: for ``rm'', ``sf'' and ``tt'' so
+% that font packages could define defaults for the sans serif
+% document font by providing \cs{bfseries@sf} which then was used
+% when \cs{bfseries} got executed and the current family was the
+% \cs{sffamily}.
+%
+% \DescribeMacro\DeclareFontSeriesDefault
+% We now support this concept directly from within \LaTeX{} and for
+% use in font packages (or the document preamble) we offer
+% \cs{DeclareSeriesDefault}. This declaration takes three
+% arguments:
+% \begin{description}
+% \item[document family interface:] Can either be \texttt{rm},
+% \texttt{sf} or \texttt{tt}. This is optional and if not given the
+% overall default.
+% \item[document series interface:] Can be \texttt{md} or
+% \texttt{bf}.
+% \item[series value:] This is the value that is going to be used
+% with the combination is requested.
+% \end{description}
+%
+% For example, \verb=\DeclareFontSeriesDefault[rm]{bf}{sb}= would
+% use \texttt{sb} (semi-bold) when \cs{rmfamily} \cs{bfseries} is
+% asked for.
+%
+% If used without the optional argument, e.g.,
+% \verb=\DeclareFontSeriesDefault{bf}{b}= then this is like
+% redefining \cs{bfdefault} or \cs{mddefault}.
+%
+% If some family specify defaults aren't given, e.g. if there are
+% no declarations for, say, \texttt{tt} then the format defaults
+% of \cs{mddefault} and \cs{bfdefault} are assumed. If those are
+% later changed this is \emph{not} reflected!\footnote{I see no
+% easy way to achieve this without compromising compatibility with
+% existing packages that currently use \textsf{mweights} and directly
+% define (some) of the \cs{mdseries@..} commands but not others.}
+%
+%
+%
+% \begin{macro}{\DeclareFontSeriesDefault}
+% The command to declare font series defaults for the ``rm'', ``sf'' or
+% ``tt'' family.
+% \begin{macrocode}
+\newcommand\DeclareFontSeriesDefault[3][]{%
+ \def\@reserveda{#1}%
+% \end{macrocode}
+% No optional argument: set up general default.
+% \begin{macrocode}
+ \ifx\@resereda\@empty
+ \ifcsname #2series\endcsname % supported are
+ % \[md/bf]default
+ \expandafter\def
+ \csname #2default\endcsname{#3}%
+ \else
+ \@latex@error{Wrong syntax for \string\DeclareFontSeriesDefault}%
+ {Mandatory first argument must be 'md' or 'bf'.}
+ \fi
+% \end{macrocode}
+% Optional argument given, set up specific default.
+% \begin{macrocode}
+ \else
+ \ifcsname #2series@#1\endcsname % supported are
+ % \[md/bf]series@[rm/sf/tt]
+ \expandafter\edef
+ \csname #2series@#1\endcsname{#3}%
+% \end{macrocode}
+%
+% If the interface is used we remove the frozen kernel
+% default. This way, we know that something was explicitly set up
+% (even if the setup has the same value as the default).
+% \begin{macrocode}
+ \expandafter\let
+ \csname #2series@#1@kernel\endcsname\@undefined
+ \else
+ \@latex@error{Wrong syntax for \string\DeclareFontSeriesDefault}%
+ {Optional first argument must be 'rm', 'sf', or 'tt'. \MessageBreak
+ Second argument must be 'md' or 'bf'.}
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+
+% \begin{macro}{\mdseries@rm}
+% \begin{macro}{\mdseries@sf}
+% \begin{macro}{\mdseries@tt}
+% \begin{macro}{\bfseries@rm}
+% \begin{macro}{\bfseries@sf}
+% \begin{macro}{\bfseries@tt}
+% We initialize the family specific default at the end of the
+% format generation. Later on they may get overwritten in the
+% preamble or a package via \cs{DeclareFontSeriesDefault} (or
+% possibly directly).
+%
+% Conceptual change: The \cs{bfdefault} will be \texttt{b} not
+% \texttt{bx} because that is what it should be really for nearly
+% every font except Computer/Latin Modern.
+%
+% To account for the fact that by default we typeset in CM or LM we
+% set up the \cs{bfseries@..} defaults to use \texttt{bx} instead.
+%
+% This means that it behaves like before because if the default
+% fonts are used then \cs{bfseries@rm} etc kick in and make
+% \cs{textbf} use \texttt{bx}. However, if the font gets changed
+% then \cs{bfdefault} will get used.
+%
+% \begin{macrocode}
+\def\bfseries@rm{bx}
+\def\bfseries@sf{bx}
+\def\bfseries@tt{bx}
+% \end{macrocode}
+%
+% Frozen version of the kernel defaults so we can see if they have changed.
+% \begin{macrocode}
+\let\bfseries@rm@kernel\bfseries@rm
+\let\bfseries@sf@kernel\bfseries@sf
+\let\bfseries@tt@kernel\bfseries@tt
+% \end{macrocode}
+%
+% The default for the medium series is \texttt{m} and this will be
+% interpreted as resetting both weight and width. To reset only one
+% of them the virtual value \texttt{?m} and \texttt{m?} are available.
+% \begin{macrocode}
+\def\mdseries@rm{m}
+\def\mdseries@sf{m}
+\def\mdseries@tt{m}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+
+
+
+% \begin{macro}{\expand@font@defaults}
+%
+% The family specific defaults are fully expanded, i.e., they are
+% defined via \cs{edef} inside \cs{DeclareFontSeriesDefault}.
+% However, the overall defaults, e.g., \cs{bfdefault} may have been
+% redefined by the user and thus may not be fully expanded. So to
+% enable reliable comparison we make expanded versions of
+% them. That we rerun each time. The alternative would be to only
+% allow for changes before begin document.
+% \begin{macrocode}
+\def\expand@font@defaults{%
+ \edef\rmdef@ult{\rmdefault}%
+ \edef\sfdef@ult{\sfdefault}%
+ \edef\ttdef@ult{\ttdefault}%
+ \edef\bfdef@ult{\bfdefault}%
+ \edef\mddef@ult{\mddefault}%
+ \edef\famdef@ult{\familydefault}%
+}
+% \end{macrocode}
+%
+% \end{macro}
+
+
+
+% \begin{macro}{\bfseries}
+% This document command switches to the bold series.
+% \begin{macrocode}
+\DeclareRobustCommand\bfseries{%
+ \not@math@alphabet\bfseries\mathbf
+% \end{macrocode}
+% In the original NFSS definition it then called \cs{fontseries}
+% with the value \cs{bfdefault}. In the new scheme we have more
+% alternatives and therefore check if the current family
+% (\cs{f@family}) is the current \cs{rmdef@ult}, \cs{sfdef@ult} or
+% \cs{ttdef@ult} and the select the correct family default in that case.
+% \begin{macrocode}
+ \expand@font@defaults
+ \fontseries{%
+ \ifx\f@family\rmdef@ult \bfseries@rm
+ \else\ifx\f@family\sfdef@ult \bfseries@sf
+ \else\ifx\f@family\ttdef@ult \bfseries@tt
+% \end{macrocode}
+% If not \cs{bfdefault} is used.
+% \begin{macrocode}
+ \else \bfdefault
+ \fi\fi\fi
+ }%
+ \selectfont
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+% \begin{macro}{\mdseries}
+% This document command switches to the medium series.
+% \begin{macrocode}
+\DeclareRobustCommand\mdseries{%
+ \not@math@alphabet\mdseries\relax
+ \expand@font@defaults
+ \fontseries{%
+ \ifx\f@family\rmdef@ult \mdseries@rm
+ \else\ifx\f@family\sfdef@ult \mdseries@sf
+ \else\ifx\f@family\ttdef@ult \mdseries@tt
+ \else \mddefault
+ \fi\fi\fi
+ }%
+ \selectfont
+}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\rmfamily}
+% Here are the document level commands for changing the main font
+% families, or rather, here is a documented outline of the code,
+% the actual code is then streamlined and somewhat generalized.
+%\begin{verbatim}
+%\DeclareRobustCommand\rmfamily{%
+% \not@math@alphabet\rmfamily\mathrm
+%\end{verbatim}
+% If families are changed then we have to do a bit more work.
+% In the original NFSS implementation
+% a family change kept encoding, series shape and size unchanged
+% but now we can't any
+% longer simply reuse the current series value. Instead we may have
+% to change it from one family default to the next.
+%\begin{verbatim}
+% \expand@font@defaults
+%\end{verbatim}
+% We have to do the testing while the current family is still
+% unchanged but we have to do the adjustment of the series after it
+% got changed (because the new family might has different sets
+% ofshapes available and we certainly don't want to see
+% substituation going on. So we use \cs{target@series@value} to
+% hold the target series (if any).
+%\begin{verbatim}
+% \let\target@series@value\@empty
+%\end{verbatim}
+% Thus, if the current family is the sans family
+%\begin{verbatim}
+% \ifx\f@family\sfdef@ult
+%\end{verbatim}
+% and if we using the medium series of the sans family
+%\begin{verbatim}
+% \ifx\f@series\mdseries@sf
+%\end{verbatim}
+% then lets switch to the medium series for the serif family
+%\begin{verbatim}
+% \let\target@series@value\mdseries@rm
+%\end{verbatim}
+% and if we use the bold series of the sans family switch to the
+% bold default of the serif family:
+%\begin{verbatim}
+% \else\ifx\f@series\bfseries@sf \let\target@series@value\bfseries@rm
+%\end{verbatim}
+% However, the sans family may not have any specific defaults set,
+% so we also compare with the overall defaults.
+%\begin{verbatim}
+% \else\ifx\f@series\mddef@ult \let\target@series@value\mdseries@rm
+% \else\ifx\f@series\bfdef@ult \let\target@series@value\bfseries@rm
+%\end{verbatim}
+% If neither test was true we leave the series alone. This way a
+% special manual setting such as \verb=\fontseries{lc}= is not
+% undone if the family changes (of course there may not be any
+% support for it in the new family but then the NFSS
+% substitution kicks in and sorts it out).
+%\begin{verbatim}
+% \fi\fi\fi\fi
+%
+%\end{verbatim}
+% We need to do the same if the current family is the typewriter family:
+%\begin{verbatim}
+% \else\ifx\f@family\ttdef@ult
+% \ifx\f@series\mdseries@tt \let\target@series@value\mdseries@rm
+% \else\ifx\f@series\bfseries@tt \let\target@series@value\bfseries@rm
+% \else\ifx\f@series\mddef@ult \let\target@series@value\mdseries@rm
+% \else\ifx\f@series\bfdef@ult \let\target@series@value\bfseries@rm
+% \fi\fi\fi\fi
+% \fi\fi
+%\end{verbatim}
+% With these preparations for series out of the way we can now
+% change the font family to \cs{rmdefault}.
+%\begin{verbatim}
+% \fontfamily\rmdefault
+%\end{verbatim}
+%
+% If \cs{target@series@value} is still empty there is nothing more
+% to do other than selecting the new family. However, if not then
+% we should update the font series now as well. But there is one
+% further subtle issue. We may not have loaded an \texttt{.fd} file
+% for our target font family yet. In the past that was done in
+% \cs{selectfont} if necessary but since we are now doing all the
+% comparisons in \cs{fontseries} we need to make sure that the font
+% family specifications are already loaded prior to calling
+% \cs{fontseries}.
+%\begin{verbatim}
+% \ifx\target@series@value\@empty \else
+% \maybe@load@fontshape
+%\end{verbatim}
+% Updating the series in this case means directly changing
+% \cs{f@series} to the target value. We don't want to go through
+% \cs{fontseries} because that would apply the mappings and then
+% \texttt{bx + b} would keep \texttt{bx} instead of changing to
+% \texttt{b} as desired.
+% as
+%\begin{verbatim}
+% \let\f@series\target@series@value
+% \fi
+% \selectfont}
+%\end{verbatim}
+%
+% So now for the real definition: most of the code above gets
+% delegated to a helper command \cs{prepare@family@series@update}
+% so that the definition becomes again fairly short. In addition we
+% add a hook, mainly for our Japanese friends so that the code can
+% be extended prior to the call to \cs{selectfont}.
+%
+% \changes{v3.1f}{2020/01/11}{Streamlined implementation with hook}
+% \begin{macrocode}
+\DeclareRobustCommand\rmfamily{%
+ \not@math@alphabet\rmfamily\mathrm
+% \end{macrocode}
+% This holds all the code discussed above, first argument is the
+% meta family, i.e., \texttt{rm} in this case, and second argument
+% is the default family name, e.g., \texttt{cmr} indirectly
+% accessed via \cs{rmdefault}. This is calling \cs{fontfamily} and
+% if necessary \cs{fontseries} as outline above.
+% \begin{macrocode}
+ \prepare@family@series@update{rm}\rmdefault
+% \end{macrocode}
+% The comes the hook code (by default a no-op) and finally the call
+% to \cs{selectfont}.
+% \begin{macrocode}
+ \@rmfamilyhook
+ \selectfont}
+% \end{macrocode}
+%
+% \begin{macro}{\sffamily}
+% \begin{macro}{\ttfamily}
+% The definitions for \cs{sffamily} and \cs{ttfamily} are similar,
+% the differences are only in what font families get checked.
+% \changes{v3.1f}{2020/01/11}{Streamlined implementation with hook}
+% \begin{macrocode}
+\DeclareRobustCommand\sffamily{%
+ \not@math@alphabet\sffamily\mathsf
+ \prepare@family@series@update{sf}\sfdefault
+ \@sffamilyhook
+ \selectfont}
+% \end{macrocode}
+%
+% \changes{v3.1f}{2020/01/11}{Streamlined implementation with hook}
+% \begin{macrocode}
+\DeclareRobustCommand\ttfamily{%
+ \not@math@alphabet\ttfamily\mathtt
+ \prepare@family@series@update{tt}\ttdefault
+ \@ttfamilyhook
+ \selectfont}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\@rmfamilyhook}
+% \begin{macro}{\@sffamilyhook}
+% \begin{macro}{\@ttfamilyhook}
+% By default the hooks do nothing.
+% \begin{macrocode}
+\let\@rmfamilyhook\@empty
+\let\@sffamilyhook\@empty
+\let\@ttfamilyhook\@empty
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+
+
+
+% \begin{macro}{\prepare@family@series@update}
+% This is core command that prepares for the family update. The big
+% difference to the documented code above is that the nested
+% \cs{ifx} statements seem to be missing. Instead we loop through
+% an internal list that holds the names of the three meta
+% families. This approach allows us to extend the mechanism at a
+% later stage to allow for additional named meta families.
+%
+% \begin{macro}{\@meta@family@list}
+% Here is the current definition of that list:
+% \begin{macrocode}
+\def\@meta@family@list{\@elt{rm}\@elt{sf}\@elt{tt}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\def\prepare@family@series@update#1#2{%
+ \expand@font@defaults
+% \end{macrocode}
+% We prepare for changing the current series. We have to find it
+% before changing the family as discussed above.
+% \begin{macrocode}
+ \let\target@series@value\@empty
+ \def\target@meta@family@value{#1}%
+% \end{macrocode}
+% To find it we loop over the meta family list with a suitable
+% definition of \cs{@elt}.
+% \begin{macrocode}
+ \let\@elt\update@series@target@value
+ \@meta@family@list
+ \let\@elt\relax
+% \end{macrocode}
+% That will figure out the correct series value to use without updating
+% it. Now we can change the family.
+% \begin{macrocode}
+ \fontfamily#2%
+% \end{macrocode}
+% After that we update the series. That code is again like the one
+% above.
+% \begin{macrocode}
+ \ifx\target@series@value\@empty
+ \else
+ \maybe@load@fontshape
+ \let\f@series\target@series@value
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\update@series@target@value}
+% In this macro used in the look you basically find the nested
+% \cs{ifx}s from the outline above. The only difference is that is
+% it is parameterized instead of being written out and only for one
+% block of tests because the code is called reatedly when looping
+% over the meta family list. From the list we get each meta family
+% name in turn.
+% \begin{macrocode}
+\def\update@series@target@value#1{%
+% \end{macrocode}
+% There is one additional test at the beginning, because the list
+% contains all meta families and we need to ignore the case where
+% current one from the list and target one are identical.
+% \begin{macrocode}
+ \def\@reserveda{#1}%
+ \ifx\target@meta@family@value\@reserveda % rm -> rm do nothing
+ \else
+% \end{macrocode}
+% We only ``do'' something if the current font family matches the
+% current meta family.
+% \begin{macrocode}
+ \expandafter\ifx\csname#1def@ult\endcsname\f@family
+% \end{macrocode}
+% If that's the case we know that this is the block that applies
+% (only one meta family can match). So to speed things up we
+% change \cs{@elt} so that the rest of the loop gets gobbled.
+% \begin{macrocode}
+ \let\@elt\@gobble
+% \end{macrocode}
+% Then we try to find the right new value for the series (as
+% explained above). The two macros defined first are only there
+% because we now need to use \cs{csname} and this way the code will
+% be a little faster.
+% \begin{macrocode}
+ \expandafter\let\expandafter\@reservedb
+ \csname mdseries@\target@meta@family@value\endcsname
+ \expandafter\let\expandafter\@reservedc
+ \csname bfseries@\target@meta@family@value\endcsname
+% \end{macrocode}
+% This here is now identical to the nested \cs{ifx} block from the
+% outline, except that it there appeared twice in
+% \cs{rmfamily}. This is now covered by looping and stopping the
+% loop when a match was found.
+% \begin{macrocode}
+ \expandafter\ifx\csname mdseries@#1\endcsname\f@series
+ \let\target@series@value\@reservedb
+ \else\expandafter\ifx\csname bfseries@#1\endcsname\f@series
+ \let\target@series@value\@reservedc
+ \else\ifx\f@series\mddef@ult \let\target@series@value\@reservedb
+ \else\ifx\f@series\bfdef@ult \let\target@series@value\@reservedc
+ \fi\fi\fi\fi
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+%
+%
+%
+%
+%
+% \begin{macro}{\init@series@setup}
+% This is code to be run at begin document \ldots
+% \begin{macrocode}
+\def\init@series@setup{%
+% \end{macrocode}
+%
+% We only want \texttt{bx} in \cs{bfseries@rm} if the roman font is
+% Computer Modern or Latin Modern, otherwise it should be
+% \texttt{b}. It was set to \texttt{bx} in the kernel so that any
+% font use with the default families in the preamble get this
+% value. Now at the real document start we check if the fonts have
+% been changed. If there was a \cs{DeclareFontSeriesDefault}
+% declaration or \cs{bfseries@rm} was directly altered then it
+% differs from \cs{bfseries@rm@kernel} and we do nothing.
+% Otherwise we check if \cs{rmdefault} is one of the CM/LM font
+% families and if so we keep \texttt{bx} otherwise we change it to
+% \texttt{b}.
+%
+% This approach doesn't cover one case: CM/LM got changed to a
+% different family that supports \texttt{bx}, but the support
+% package for that family used \verb=\def\bfseries@rm{bx}= instead
+% of using \cs{DeclareFontSeriesDefault}. In that case the code
+% here changes it to \texttt{b}. Solution: use the
+% \cs{DeclareFontSeriesDefault} interface.
+% \begin{macrocode}
+ \ifx\bfseries@rm@kernel\bfseries@rm
+ \expandafter\in@\expandafter{\rmdefault}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
+ \ifin@ \else \def\bfseries@rm{b}\fi\fi
+% \end{macrocode}
+% Same approach for \cs{bfseries@sf} and \cs{bfseries@tt}:
+% \begin{macrocode}
+ \ifx\bfseries@sf@kernel\bfseries@sf
+ \expandafter\in@\expandafter{\sfdefault}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
+ \ifin@ \else \def\bfseries@sf{b}\fi\fi
+ \ifx\bfseries@tt@kernel\bfseries@tt
+ \expandafter\in@\expandafter{\ttdefault}{cmr,cmss,cmtt,lcmss,lcmtt,lmr,lmss,lmtt}%
+ \ifin@ \else \def\bfseries@tt{b}\fi\fi
+% \end{macrocode}
+%
+% If the document preamble has changed the \cs{familydefault} or if
+% the if the \cs{rmdefault} contains a new font family, we have to
+% adjust the series defaults accordingly, before starting
+% typesetting.
+%
+% On the other hand if we still typeset in CM or LM then
+% \cs{bfdefault} is wrong since it is now saying \texttt{b} and not
+% \texttt{bx}.
+
+% To fix this we run \cs{rmfamily}, \cs{sffamily} or
+% \cs{ttfamily} depending on the situation and this will correct
+% the setup for us.
+% \begin{macrocode}
+ \expand@font@defaults
+ \ifx\famdef@ult\rmdef@ult \rmfamily
+ \else\ifx\famdef@ult\sfdef@ult \sffamily
+ \else\ifx\famdef@ult\ttdef@ult \ttfamily
+ \fi\fi\fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% As the kernel code now implements the same functionality as
+% \textsf{mweights}, albeit internally coded slightly differently,
+% that package shouldn't be loaded any more. We therefore pretend
+% that it already got loaded. Thus, a font package that tries to
+% load it and then sets \cs{mdseries@..}, etc.\ will continue to
+% work but will now use the kernel code.
+%
+% Of course, mid-term such package should probably use
+% \cs{DeclareFontSeriesDefault} instead of making using low-level
+% definitions.
+%
+% \begin{macrocode}
+\expandafter\let\csname ver@mweights.sty\endcsname\fmtversion
+% \end{macrocode}
+%
+%
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\DeclareFontSeriesDefault}{Custom series}%
+%<latexrelease>
+%<latexrelease>\let\DeclareFontSeriesDefault\@undefined
+%<latexrelease>\let\bfseries@rm\@undefined
+%<latexrelease>\let\bfseries@sf\@undefined
+%<latexrelease>\let\bfseries@tt\@undefined
+%<latexrelease>\let\bfseries@rm@kernel\@undefined
+%<latexrelease>\let\bfseries@sf@kernel\@undefined
+%<latexrelease>\let\bfseries@tt@kernel\@undefined
+%<latexrelease>\let\mdseries@rm\@undefined
+%<latexrelease>\let\mdseries@sf\@undefined
+%<latexrelease>\let\mdseries@tt\@undefined
+%<latexrelease>\let\expand@font@defaults\@undefined
+%<latexrelease>\expandafter\let\csname ver@mweights.sty\endcsname\@undefined
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\bfseries
+%<latexrelease> {\not@math@alphabet\bfseries\mathbf
+%<latexrelease> \fontseries\bfdefault\selectfont}
+%<latexrelease>\DeclareRobustCommand\mdseries
+%<latexrelease> {\not@math@alphabet\mdseries\relax
+%<latexrelease> \fontseries\mddefault\selectfont}
+%<latexrelease>\DeclareRobustCommand\rmfamily
+%<latexrelease> {\not@math@alphabet\rmfamily\mathrm
+%<latexrelease> \fontfamily\rmdefault\selectfont}
+%<latexrelease>\DeclareRobustCommand\sffamily
+%<latexrelease> {\not@math@alphabet\sffamily\mathsf
+%<latexrelease> \fontfamily\sfdefault\selectfont}
+%<latexrelease>\DeclareRobustCommand\ttfamily
+%<latexrelease> {\not@math@alphabet\ttfamily\mathtt
+%<latexrelease> \fontfamily\ttdefault\selectfont}
+%<latexrelease>
+%<latexrelease>\let\@rmfamilyhook\@undefined
+%<latexrelease>\let\@sffamilyhook\@undefined
+%<latexrelease>\let\@ttfamilyhook\@undefined
+%<latexrelease>\let\@meta@family@list\@undefined
+%<latexrelease>\let\prepare@family@series@update\@undefined
+%<latexrelease>\let\update@series@target@value\@undefined
+%<latexrelease>
+% \end{macrocode}
+% This is always called in \cs{document} so don't make it undefined.
+% \begin{macrocode}
+%<latexrelease>\let\init@series@setup\relax
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+
+%
+%
+%
+% \section{Supporting nested emphasis}
+%
+% By default \LaTeXe{} supports two levels of nested emphasis: if
+% the current font has an upright shape then it switches to
+% \cs{itshape} otherwise to \cs{eminnershape} (which defaults to
+% \cs{upshape}). This means nested emphasis will ocssilate between
+% italic and upright shapes.
+%
+% Sometimes it would be nice to allow for a more lengthly sequence,
+% but instead of providing a fixed one \LaTeX{} now offers a
+% general mechanism that allows to define arbitrary sequences.
+%
+% \DescribeMacro\DeclareEmphSequence
+% \DescribeMacro\emforce
+%
+% This declaration expects a comma separated list of (font) change
+% declarations corresponding to increasing levels of emphasis.
+% The mechanism tries to be ``smart'' and verifies that the
+% declarations actually alter the font. If not it will ignore this
+% level and tries the next one---the assumption being that
+% there was a manual font change in the document to the font that
+% is now supposed to be used for emphasis. Of course, this only
+% works if the declarations in the list actually change the font
+% and not, say, just the color.
+% In such a case one has to use \cs{emforce} to which directs the
+% mechanism to use the level even if the font attributes haven't changed.
+%
+% \DescribeMacro\emreset
+% If the nesting is so deep, that the specified levels are
+% exhausted then \cs{emreset} is used as a final set of
+% declarations (which by default returns
+% back to the upright shape). Any additional nesting levels will
+% then reuse the list from its beginning.
+%
+%
+%
+% \begin{macro}{\DeclareEmphSequence}
+%
+% \cs{DeclareEmphSequence} expects a clist of declaration. Spaces in the
+% argument are dropped to avoid surious spaces in the output. The
+% declarations are additive. At the very end the shape is reset
+% using |\emreset| and |\emforce| so that this case is never
+% skipped.\footnote{Maybe we should not add \cs{emforce} but allow
+% that case to be skipped as well. Of course, that might result in
+% an endless loop if somebody defines a sequence without any font
+% change and without \cs{emforce} but \ldots}
+% Further nested calls restart at the beginning.
+% \changes{v3.1e}{2019/12/17}{Provide \cs{emph} sequences}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\DeclareEmphSequence}{Nested emph}%
+\def\DeclareEmphSequence#1{%
+ \protected@edef\emfontdeclare@clist{\zap@space#1, \@empty\emforce\emreset}%
+}
+% \end{macrocode}
+% By default the it is empty, in which case \cs{eminnershape} is
+% used by \LaTeX.
+% \begin{macrocode}
+\let\emfontdeclare@clist\@empty
+% \end{macrocode}
+% \end{macro}
+
+
+
+% \begin{macro}{\emrest}
+% Reset the font to upright and upper/lower case. With the default rules
+% using \cs{shapedefault} does that for us but to be on the safe side we
+% do it like this:
+% \begin{macrocode}
+\DeclareRobustCommand\emreset{\upshape\ulcshape}
+% \end{macrocode}
+% \end{macro}
+
+
+
+% \begin{macro}{\em}
+% The new definition for \cs{em} (and implicitly \cs{emph} is like
+% it was before if \cs{emfontdeclare@clist} is empty.
+% \begin{macrocode}
+\DeclareRobustCommand\em{%
+ \@nomath\em
+ \ifx\emfontdeclare@clist\@empty
+ \ifdim \fontdimen\@ne\font >\z@
+ \eminnershape \else \itshape \fi
+ \else
+% \end{macrocode}
+% But if not we use the list to decide how to do emphasis.
+%
+% We use the current font to check if the declarations have any
+% effect, so even a size change is allowed and identified as a
+% modification (but a color change, for example, isn't). So first
+% we save the current status.
+% \begin{macrocode}
+ \edef\em@currfont{\csname\curr@fontshape/\f@size\endcsname}%
+% \end{macrocode}
+% Then we grab the next element from the list and check if it can
+% be used.
+% \begin{macrocode}
+ \expandafter\do@emfont@update\emfontdeclare@clist\do@emfont@update
+ \fi
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\eminnershape{\upshape}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\do@emfont@update}
+% We know that the list (if not empty) has at least 2 elements
+% separated by a comma, so we pick up the first in \texttt{\#1} and
+% the rest in \texttt{\#2}.
+% \begin{macrocode}
+\def\do@emfont@update#1,#2\do@emfont@update{%
+% \end{macrocode}
+% First action is to alter the list and move the first entry to the end
+% \begin{macrocode}
+ \def\emfontdeclare@clist{#2,#1}%
+% \end{macrocode}
+% Then we execute current declaration. Appending |\selectfont| means one
+% can write just |\fontshape{it}}| and that works then too.
+% \begin{macrocode}
+% \typeout{Use: \detokenize{#1}}%
+ #1\selectfont
+% \end{macrocode}
+% We then compare the current font with our saved version, but with
+% a slight twist: we add \cs{em@force} at the end of the
+% name. Normally this is empty so has no effect but if there was an
+% \cs{emforce} as part of \texttt{\#1} it will append a |/| to the
+% font name (making it invalid) thus this will then always fail the
+% test.
+%
+% If the test fails we are done and the declarations will be used.
+% Otherwise we will try the next declaration in the sequence.
+% \begin{macrocode}
+ \expandafter\ifx\csname \curr@fontshape/\f@size\em@force
+% \end{macrocode}
+% For the comparison with \cs{ifx} we have to exand
+% \cs{em@currfont} once as the relevant info is inside.
+% \begin{macrocode}
+ \expandafter\endcsname
+ \em@currfont
+ \expandafter\do@emfont@update\emfontdeclare@clist\do@emfont@update
+% \end{macrocode}
+% If \cs{emforce} was used, we have to undo its effect:
+% \begin{macrocode}
+ \else
+ \let\em@force\@empty
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+% \begin{macro}{\emforce}
+% \begin{macro}{\em@force}
+% The definition of \cs{emforce} is simple: change \cs{em@force} to
+% make the above test always invalid.
+% \begin{macrocode}
+\protected\def\emforce{\def\em@force{/}}
+\let\em@force\@empty
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+
+
+%
% \begin{macro}{\em}
% \changes{v1.2b}{1990/01/28}{Call to \cs{@nomath} added.}
% \changes{v3.1a}{2015/01/09}{Allow \cs{emph} to produce small caps (latexrelease)}
% \begin{macro}{\eminnershape}
% \changes{v3.1a}{2015/01/09}{macro added (latexrelease)}
+%
+% These are the older definitions for \cs{em}, prior to 2020.
+%
% We also have to define the {\em emphasize\/} font change command
% (i.e.\ |\em|). This command will look is the current font is
% sloped (i.e.\ has a positive |\fontdimen1|) and will then
% select either |\upshape| or |\itshape|.
% \begin{macrocode}
-%</2ekernel>
-%<latexrelease>\IncludeInRelease{2015/01/01}{\eminnershape}{\eminnershape}%
-%<*2ekernel|latexrelease>
-\DeclareRobustCommand\em
- {\@nomath\em \ifdim \fontdimen\@ne\font >\z@
- \eminnershape \else \itshape \fi}%
-% \end{macrocode}
-%
-% \begin{macrocode}
-\def\eminnershape{\upshape}%
-%</2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2015/01/01}{\DeclareEmphSequence}{Nested emph}%
+%<latexrelease>\let\DeclareEmphSequence\@undefined
+%<latexrelease>\let\emfontdeclare@clist\@undefined
+%<latexrelease>\let\emreset\@undefined
+%<latexrelease>\let\do@emfont@update\@undefined
+%<latexrelease>\let\emforce\@undefined
+%<latexrelease>\let\em@force\@undefined
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\em
+%<latexrelease> {\@nomath\em \ifdim \fontdimen\@ne\font >\z@
+%<latexrelease> \eminnershape \else \itshape \fi}%
%<latexrelease>\EndIncludeInRelease
-%<latexrelease>\IncludeInRelease{0000/00/00}{\eminnershape}{\eminnershape}%
+%<latexrelease>
+%<latexrelease>\IncludeInRelease{0000/00/00}{\DeclareEmphSequence}{Nested emph}%
%<latexrelease>\DeclareRobustCommand\em
%<latexrelease> {\@nomath\em \ifdim \fontdimen\@ne\font >\z@
%<latexrelease> \upshape \else \itshape \fi}%
@@ -230,6 +1076,12 @@
% \end{macro}
%
%
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
% \begin{macro}{\not@math@alphabet}
% This function generates an error message when it is called in
% math mode. The same function should be defined in
@@ -295,7 +1147,7 @@
% \begin{macrocode}
\def\newfont#1#2{\@ifdefinable#1{\font#1=#2\relax}}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareRobustCommand\symbol[1]{\char #1\relax}
% \end{macrocode}
@@ -331,35 +1183,6 @@
% \end{macro}
%
%
-% \begin{macro}{\oldstylenums}
-% This macro implements old style numerals but only works if we
-% assume that the standard math fonts are used. Thus it needs
-% changing in case other math encodings are used.
-% \begin{macrocode}
-\DeclareRobustCommand\oldstylenums[1]{%
- \begingroup
-% \end{macrocode}
-% Provide spacing using the interword space of the current font.
-% \begin{macrocode}
- \spaceskip\fontdimen\tw@\font
-% \end{macrocode}
-% Then switch to the math italic font. We don't change the current
-% value of |\f@series| which means that you can use bold numerals
-% if |\bfseries| is in force. As family we use |\rmdefault| which
-% means that this only works if there exist an |OML| encoded
-% version of that font or rather a corresponding |.fd| file (which
-% is the case for standard \LaTeX{} fonts even though they only
-% contain substitutions).
-% \changes{v3.0j}{1999/02/12}{Use \cs{rmdefault} instead of \texttt{cmm}
-% (pr/2954)}
-% \begin{macrocode}
- \usefont{OML}{\rmdefault}{\f@series}{it}%
- \mathgroup\symletters #1%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\hexnumber@}
% To set up \LaTeX's special math character
% definitions we first provide a macro to generate hexadecimal
@@ -528,6 +1351,7 @@
\let\@addtofilelist\@gobble
% \end{macrocode}
%
+%
% Ditto for math although I don't think that we will get a lot of
% customisation :-)
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/ltfsstrc.dtx b/Master/texmf-dist/source/latex/base/ltfsstrc.dtx
index 05dafa20c6e..e997e5be552 100644
--- a/Master/texmf-dist/source/latex/base/ltfsstrc.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfsstrc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -34,10 +34,10 @@
%
%<package>\NeedsTeXFormat{LaTeX2e}[1995/05/16]
%<package>\ProvidesPackage{tracefnt}
-%<package> [2015/02/21 v3.0k Standard LaTeX package (font tracing)]
+%<package> [2019/10/11 v3.0l Standard LaTeX package (font tracing)]
% \fi
% \ProvidesFile{ltfsstrc.dtx}
-% [2015/02/21 v3.0k LaTeX Kernel (NFSS tracing)]
+% [2019/10/11 v3.0l LaTeX Kernel (NFSS tracing)]
%
% \iffalse
%<+checkmem>\CHECKMEM
@@ -731,7 +731,7 @@
%
% \subsubsection{Outline of algorithm for math font sizes}
%
-% \TeX{} uses the the math fonts that are current when the end of a
+% \TeX{} uses the math fonts that are current when the end of a
% formula is reached. If we don't want to keep font setups local to
% every formula (which would result in an enormous overhead, we have
% to be careful not to end up with the wrong setup in case formulas
@@ -1130,7 +1130,7 @@
% \execute@size@function{}
%\end{verbatim}
% This means: the default (empty) size function will be executed,
-% with its optional argument argument set to empty and its mandatory
+% with its optional argument set to empty and its mandatory
% argument set to |cmss12| by |\set@simple@size@args|.
% As we discussed earlier, the effect of the default size function
% is to load the given external font (cmss12) at the specified size
@@ -1371,7 +1371,7 @@
% \begin{macrocode}
\def\reserved@f{\extract@rangefontinfo<#3\@nnil}%
% \end{macrocode}
-% Now we check the the size against |\f@size|. If it is not equal
+% Now we check the size against |\f@size|. If it is not equal
% |\f@size| it is no good and we have to recurse.
% \begin{macrocode}
\ifdim \f@size \p@=#1\p@
@@ -1731,7 +1731,7 @@
% the optional argument (if present) is ignored. The font encoding
% scheme cannot be changed. Therefore, the first thing we do is to
% prepend the encoding scheme.
-% \changes{v2.0b}{1992/07/26}{}
+% {documentation fixes}
% \begin{macrocode}
\DeclareSizeFunction{sub}{\sub@sfcnt\@font@warning}
\DeclareSizeFunction{ssub}{\sub@sfcnt\@font@info}
@@ -1787,6 +1787,40 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@font@aliasinfo}
+% \changes{v3.0l}{2019/10/11}{Added 'alias' size function}
+% Sometimes a substitution is only done to map a long font name to
+% a standard shape or series, e.g.,
+%\begin{verbatim}
+%\DeclareFontShape{T1}{Roboto-LF}{b}{it}{<-> alias * Roboto-LF/bold/it}{}
+%\end{verbatim}
+% Using the \texttt{ssub} function in that case will give a strange
+% (and incorrect) warning. As an alternative we therefore offer the
+% size function \texttt{alias}. It will still add some info into
+% the \texttt{.log} file, but no longer complains that the font
+% shape is not available. It is implemented by grabbing the default
+% warning text and replacing it with a new one.
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/01}%
+%<latexrelease> {\@font@aliasinfo}{alias size function}%
+\DeclareSizeFunction{alias}{\sub@sfcnt\@font@aliasinfo}
+\def\@font@aliasinfo#1{%
+ \@font@info{Font\space shape\space `\curr@fontshape'\space
+ aliased\space to\MessageBreak `\mandatory@arg'}%
+}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@font@aliasinfo}{alias size function}%
+%<latexrelease>\let\s@fct@alias\@undefined
+%<latexrelease>\let\@font@aliasinfo\@undefined
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
%
% \begin{macro}{\s@fct@subf}
% The |subf| size function allows substitution of another font. The
diff --git a/Master/texmf-dist/source/latex/base/lthyphen.dtx b/Master/texmf-dist/source/latex/base/lthyphen.dtx
index ba4b018dce7..71ab081c669 100644
--- a/Master/texmf-dist/source/latex/base/lthyphen.dtx
+++ b/Master/texmf-dist/source/latex/base/lthyphen.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltidxglo.dtx b/Master/texmf-dist/source/latex/base/ltidxglo.dtx
index 19349c17dc1..dcb88e83e98 100644
--- a/Master/texmf-dist/source/latex/base/ltidxglo.dtx
+++ b/Master/texmf-dist/source/latex/base/ltidxglo.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltlength.dtx b/Master/texmf-dist/source/latex/base/ltlength.dtx
index 7b72946d6e9..f5b63ed35ea 100644
--- a/Master/texmf-dist/source/latex/base/ltlength.dtx
+++ b/Master/texmf-dist/source/latex/base/ltlength.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltlists.dtx b/Master/texmf-dist/source/latex/base/ltlists.dtx
index 4dcbb8b56a2..e8c9ebc16bd 100644
--- a/Master/texmf-dist/source/latex/base/ltlists.dtx
+++ b/Master/texmf-dist/source/latex/base/ltlists.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -744,7 +744,7 @@
\everypar{}\@endpefalse}}
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}{\@doendpe}{clubpenalty fix}%
%<latexrelease>\def\@doendpe{\@endpetrue
@@ -772,13 +772,13 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\item}
% \changes{LaTeX2.09}{1992/09/18}
% {(RmS) Added warning if \cs{item} is used in math mode}
% \changes{v1.0c}{1994/04/28}
% {Replaced \cs{@ltxnomath} by \cs{@inmatherr}}
% \changes{v1.0d}{1994/05/03}
% {Removed superfluous braces}
-% \begin{macro}{\item}
% \begin{macrocode}
\def\item{%
\@inmatherr\item
@@ -837,7 +837,6 @@
% This |\if@inlabel| check is needed in case an item starts of
% inside a group so that |\everypar| does not become empty
% outside that group.
-% \@nobreakfalse, etc etc.
% \begin{macrocode}
\if@inlabel
\global\@inlabelfalse
diff --git a/Master/texmf-dist/source/latex/base/ltlogos.dtx b/Master/texmf-dist/source/latex/base/ltlogos.dtx
index ab20b60c59f..6784cb41c00 100644
--- a/Master/texmf-dist/source/latex/base/ltlogos.dtx
+++ b/Master/texmf-dist/source/latex/base/ltlogos.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltluatex.dtx b/Master/texmf-dist/source/latex/base/ltluatex.dtx
index 41f2344a373..1f9ab8d1332 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 (C) 2015-2019
+% Copyright (C) 2015-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -28,7 +28,7 @@
\ProvidesFile{ltluatex.dtx}
%</driver>
%<*tex>
-[2019/10/22 v1.1j
+[2020/02/02 v1.1l
%</tex>
%<plain> LuaTeX support for plain TeX (core)
%<*tex>
@@ -152,7 +152,7 @@
%
% \section{Plain \TeX\ interface}
%
-% The \textsf{ltluatex} interface may be used with plain \TeX\ using
+% The \textsf{ltluatex} interface may be used with plain \TeX\ using
% |\input{ltluatex}|. This inputs |ltluatex.tex| which inputs
% |etex.src| (or |etex.sty| if used with \LaTeX)
% if it is not already input, and then defines some internal commands to
@@ -199,7 +199,7 @@
% \noindent
% \DescribeMacro{new_chunkname}
% |luatexbase.new_chunkname(|\meta{chunkname}|)|\\
-% Returns an allocation number for a Lua chunk name for use with
+% Returns an allocation number for a Lua chunk name for use with
% |\directlua| and |\latelua|, indexed from~$1$.
% The number is returned and also \meta{name} argument is added to the
% |lua.name| array at that index.
@@ -339,7 +339,7 @@
% \DescribeMacro{remove_from_callback}
% |luatexbase.remove_from_callback(|\meta{callback}, \meta{description}|)|
% Removes the callback function with \meta{description} from the \meta{callback}.
-% The removed function and its description
+% The removed function and its description
% are returned as the results of this function.
%
% \noindent
@@ -407,7 +407,7 @@
% \end{macrocode}
%
% \subsection{Older \LaTeX{}/Plain \TeX\ setup}
-%
+%
% \begin{macrocode}
%<*tex>
% \end{macrocode}
@@ -473,7 +473,7 @@
% End of proposed changes to \texttt{etex.src}
%
% \subsubsection{luatex specific settings}
-%
+%
% Switch to global cf |luatex.sty| to leave room for inserts
% not really needed for luatex but possibly most compatible
% with existing use.
@@ -675,7 +675,7 @@
\chardef\unicoderead=\numexpr\count16 + 1\relax
\openin\unicoderead=UnicodeData.txt %
\loop\unless\ifeof\unicoderead %
- \read\unicoderead to \unicodedataline
+ \read\unicoderead to \unicodedataline
\unless\ifx\unicodedataline\storedpar
\expandafter\parseunicodedataI\unicodedataline\relax
\fi
@@ -785,7 +785,7 @@
% \end{macrocode}
% Note name change required on older luatex, for hash table access.
% \begin{macrocode}
- \countdef \CountZero =0 %
+ \countdef \CountZero =0 %
\dimendef \dimenzero =0 %
\mathchardef \mathcharzero =0 %
\muskipdef \muskipzero =0 %
@@ -978,7 +978,7 @@ local function msg_format(mod, msg_type, text)
end
return first_head .. " "
.. string_gsub(
- text
+ text
.. "on input line "
.. tex.inputlineno, "\n", "\n" .. cont .. " "
)
@@ -1045,7 +1045,7 @@ local createtoken
if tex.luatexversion > 81 then
createtoken = token.create
elseif tex.luatexversion > 79 then
- createtoken = newtoken.create
+ createtoken = newtoken.create
end
local hashtokens = tex.hashtokens()
local luatexversion = tex.luatexversion
@@ -1134,7 +1134,7 @@ luatexbase.new_attribute = new_attribute
% \begin{macrocode}
local whatsit_count_name = whatsit_count_name or "e@alloc@whatsit@count"
local function new_whatsit(name)
- tex_setcount("global", whatsit_count_name,
+ tex_setcount("global", whatsit_count_name,
tex_count[whatsit_count_name] + 1)
if tex_count[whatsit_count_name] > 65534 then
luatexbase_error("No room for a new custom whatsit")
@@ -1157,7 +1157,7 @@ luatexbase.new_whatsit = new_whatsit
local bytecode_count_name =
bytecode_count_name or "e@alloc@bytecode@count"
local function new_bytecode(name)
- tex_setcount("global", bytecode_count_name,
+ tex_setcount("global", bytecode_count_name,
tex_count[bytecode_count_name] + 1)
if tex_count[bytecode_count_name] > 65534 then
luatexbase_error("No room for a new bytecode register")
@@ -1180,7 +1180,7 @@ luatexbase.new_bytecode = new_bytecode
local chunkname_count_name =
chunkname_count_name or "e@alloc@luachunk@count"
local function new_chunkname(name)
- tex_setcount("global", chunkname_count_name,
+ tex_setcount("global", chunkname_count_name,
tex_count[chunkname_count_name] + 1)
local chunkname_count = tex_count[chunkname_count_name]
chunkname_count = chunkname_count + 1
@@ -1188,7 +1188,7 @@ local function new_chunkname(name)
luatexbase_error("No room for a new chunkname")
end
lua.name[chunkname_count]=name
- luatexbase_log("Lua chunkname " .. (name or "") .. " = " ..
+ luatexbase_log("Lua chunkname " .. (name or "") .. " = " ..
chunkname_count .. "\n")
return chunkname_count
end
@@ -1239,12 +1239,13 @@ local callbacklist = callbacklist or { }
% Numerical codes for callback types, and name-to-value association (the
% table keys are strings, the values are numbers).
% \begin{macrocode}
-local list, data, exclusive, simple = 1, 2, 3, 4
-local types = {
- list = list,
- data = data,
- exclusive = exclusive,
- simple = simple,
+local list, data, exclusive, simple, reverselist = 1, 2, 3, 4, 5
+local types = {
+ list = list,
+ data = data,
+ exclusive = exclusive,
+ simple = simple,
+ reverselist = reverselist,
}
% \end{macrocode}
%
@@ -1319,6 +1320,7 @@ local callbacktypes = callbacktypes or {
% \changes{v1.1k}{2019/10/02}{linebreak\_filter is \texttt{exclusive}}
% \changes{v1.1k}{2019/10/02}{process\_rule is \texttt{exclusive}}
% \changes{v1.1k}{2019/10/02}{mlist\_to\_hlist is \texttt{exclusive}}
+% \changes{v1.1l}{2020/02/02}{post\_linebreak\_filter is \texttt{reverselist}}
% \begin{macrocode}
contribute_filter = simple,
buildpage_filter = simple,
@@ -1326,7 +1328,7 @@ local callbacktypes = callbacktypes or {
pre_linebreak_filter = list,
linebreak_filter = exclusive,
append_to_vlist_filter = exclusive,
- post_linebreak_filter = list,
+ post_linebreak_filter = reverselist,
hpack_filter = list,
vpack_filter = list,
hpack_quality = list,
@@ -1337,7 +1339,9 @@ local callbacktypes = callbacktypes or {
ligaturing = simple,
kerning = simple,
insert_local_par = simple,
+ pre_mlist_to_hlist_filter = list,
mlist_to_hlist = exclusive,
+ post_mlist_to_hlist_filter = reverselist,
new_graf = simple,
% \end{macrocode}
% Section 8.5: information reporting callbacks.
@@ -1366,10 +1370,12 @@ local callbacktypes = callbacktypes or {
% \changes{v1.1j}{2019/06/18}{page\_objnum\_provider added}
% \changes{v1.1j}{2019/06/18}{process\_pdf\_image\_content added}
% \changes{v1.1j}{2019/10/22}{page\_objnum\_provider and process\_pdf\_image\_content classified data}
+% \changes{v1.1l}{2020/02/02}{page\_order\_index added}
% \begin{macrocode}
finish_pdffile = data,
finish_pdfpage = data,
page_objnum_provider = data,
+ page_order_index = data,
process_pdf_image_content = data,
% \end{macrocode}
% Section 8.7: font-related callbacks.
@@ -1377,9 +1383,11 @@ local callbacktypes = callbacktypes or {
% \changes{v1.1g}{2018/05/02}{glyph\_not\_found added}
% \changes{v1.1j}{2019/06/18}{make\_extensible added}
% \changes{v1.1j}{2019/06/18}{font\_descriptor\_objnum\_provider added}
+% \changes{v1.1l}{2020/02/02}{glyph\_info added}
% \begin{macrocode}
define_font = exclusive,
- glyph_not_found = exclusive,
+ glyph_info = exclusive,
+ glyph_not_found = exclusive,
glyph_stream_provider = exclusive,
make_extensible = exclusive,
font_descriptor_objnum_provider = exclusive,
@@ -1437,6 +1445,8 @@ end
% |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[reverselist] is a specialized variant of \emph{list} which executes
+% functions in inverse order.
% \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..
@@ -1453,6 +1463,12 @@ local function data_handler(name)
end
end
% \end{macrocode}
+% Default for user-defined |data| callbacks without explicit default.
+% \begin{macrocode}
+local function data_handler_default(value)
+ return value
+end
+% \end{macrocode}
% Handler for |exclusive| callbacks. We can assume |callbacklist[name]| is not
% empty: otherwise, the function wouldn't be registered in the callback any
% more.
@@ -1488,6 +1504,39 @@ local function list_handler(name)
end
end
% \end{macrocode}
+% Default for user-defined |list| and |reverselist| callbacks without explicit default.
+% \begin{macrocode}
+local function list_handler_default()
+ return true
+end
+% \end{macrocode}
+% Handler for |reverselist| callbacks.
+% \changes{v1.1l}{2020/02/02}{Add reverselist callback type}
+% \begin{macrocode}
+local function reverselist_handler(name)
+ return function(head, ...)
+ local ret
+ local alltrue = true
+ local callbacks = callbacklist[name]
+ for i = #callbacks, 1, -1 do
+ local cb = callbacks[i]
+ ret = cb.func(head, ...)
+ if ret == false then
+ luatexbase_warning(
+ "Function `" .. cb.description .. "' returned false\n"
+ .. "in callback `" .. name .."'"
+ )
+ break
+ end
+ if ret ~= true then
+ alltrue = false
+ head = ret
+ end
+ end
+ return alltrue and true or head
+ end
+end
+% \end{macrocode}
% Handler for |simple| callbacks.
% \begin{macrocode}
local function simple_handler(name)
@@ -1498,14 +1547,27 @@ local function simple_handler(name)
end
end
% \end{macrocode}
+% Default for user-defined |simple| callbacks without explicit default.
+% \begin{macrocode}
+local function simple_handler_default()
+end
+% \end{macrocode}
%
-% Keep a handlers table for indexed access.
+% Keep a handlers table for indexed access and a table with the corresponding default functions.
% \begin{macrocode}
-local handlers = {
- [data] = data_handler,
- [exclusive] = exclusive_handler,
- [list] = list_handler,
- [simple] = simple_handler,
+local handlers = {
+ [data] = data_handler,
+ [exclusive] = exclusive_handler,
+ [list] = list_handler,
+ [reverselist] = reverselist_handler,
+ [simple] = simple_handler,
+}
+local defaults = {
+ [data] = data_handler_default,
+ [exclusive] = nil,
+ [list] = list_handler_default,
+ [reverselist] = list_handler_default,
+ [simple] = simple_handler_default,
}
% \end{macrocode}
%
@@ -1516,18 +1578,24 @@ local handlers = {
% If a default function is not required, it may be declared as |false|.
% First we need a list of user callbacks.
% \begin{macrocode}
-local user_callbacks_defaults = { }
+local user_callbacks_defaults = {
+ pre_mlist_to_hlist_filter = list_handler_default,
+ mlist_to_hlist = node.mlist_to_hlist,
+ post_mlist_to_hlist_filter = list_handler_default,
+}
% \end{macrocode}
%
% \begin{macro}{create_callback}
% \changes{v1.0a}{2015/09/24}{Function added}
% \changes{v1.0i}{2015/11/29}{Check name is not nil in error message (PHG)}
% \changes{v1.0k}{2015/12/02}{Give more specific error messages (PHG)}
+% \changes{v1.1l}{2020/02/02}{Provide proper fallbacks for user-defined callbacks without user-provided default handler}
% The allocator itself.
% \begin{macrocode}
local function create_callback(name, ctype, default)
+ local ctype_id = types[ctype]
if not name or name == ""
- or not ctype or ctype == ""
+ or not ctype_id
then
luatexbase_error("Unable to create callback:\n" ..
"valid callback name and type required")
@@ -1536,12 +1604,17 @@ local function create_callback(name, ctype, default)
luatexbase_error("Unable to create callback `" .. name ..
"':\ncallback is already defined")
end
- if default ~= false and type (default) ~= "function" then
+ default = default or defaults[ctype_id]
+ if not default then
luatexbase_error("Unable to create callback `" .. name ..
- ":\ndefault is not a function")
- end
+ "':\ndefault is required for `" .. ctype ..
+ "' callbacks")
+ elseif type (default) ~= "function" then
+ luatexbase_error("Unable to create callback `" .. name ..
+ "':\ndefault is not a function")
+ end
user_callbacks_defaults[name] = default
- callbacktypes[name] = types[ctype]
+ callbacktypes[name] = ctype_id
end
luatexbase.create_callback = create_callback
% \end{macrocode}
@@ -1566,9 +1639,6 @@ local function call_callback(name,...)
local f
if not l then
f = user_callbacks_defaults[name]
- if l == false then
- return nil
- end
else
f = handlers[callbacktypes[name]](name)
end
@@ -1759,7 +1829,7 @@ local function callback_descriptions (name)
end
return d
end
-luatexbase.callback_descriptions =callback_descriptions
+luatexbase.callback_descriptions =callback_descriptions
% \end{macrocode}
% \end{macro}
%
@@ -1781,6 +1851,31 @@ end
luatexbase.uninstall = uninstall
% \end{macrocode}
% \end{macro}
+% \begin{macro}{mlist_to_hlist}
+% \changes{v1.1l}{2020/02/02}{|pre/post_mlist_to_hlist| added}
+% To emulate these callbacks, the ``real'' |mlist_to_hlist| is replaced by a
+% wrapper calling the wrappers before and after.
+% \begin{macrocode}
+callback_register("mlist_to_hlist", function(head, display_type, need_penalties)
+ local current = call_callback("pre_mlist_to_hlist_filter", head, display_type, need_penalties)
+ if current == false then
+ flush_list(head)
+ return nil
+ elseif current == true then
+ current = head
+ end
+ current = call_callback("mlist_to_hlist", current, display_type, need_penalties)
+ local post = call_callback("post_mlist_to_hlist_filter", current, display_type, need_penalties)
+ if post == true then
+ return current
+ elseif post == false then
+ flush_list(current)
+ return nil
+ end
+ return post
+end)
+% \end{macrocode}
+% \end{macro}
% \endgroup
%
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/ltmath.dtx b/Master/texmf-dist/source/latex/base/ltmath.dtx
index c38f42b4f95..18688068b04 100644
--- a/Master/texmf-dist/source/latex/base/ltmath.dtx
+++ b/Master/texmf-dist/source/latex/base/ltmath.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -260,7 +260,7 @@
\newif\ifv@
\newif\ifh@
% \end{macrocode}
-%
+%
%
%
%
@@ -270,7 +270,7 @@
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\vphantom}{Make commands robust}%
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareRobustCommand\vphantom{\v@true\h@false\ph@nt}
% \end{macrocode}
@@ -331,9 +331,9 @@
\def\finph@nt{%
\setbox\tw@\null
\ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
- \ifh@ \wd\tw@\wd\z@\fi
+ \ifh@ \wd\tw@\wd\z@\fi
% \end{macrocode}
-% \changes{v1.2b}{2018/09/24}{Start LR-mode if necessary (git/49)}
+% \changes{v1.2b}{2018/09/24}{Start LR-mode if necessary (git/49)}
% \begin{macrocode}
\leavevmode@ifvmode\box\tw@}
%</2ekernel|latexrelease>
@@ -373,7 +373,7 @@
\def\mathsm@sh#1#2{%
\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh}
% \end{macrocode}
-% \changes{v1.2b}{2018/09/24}{Start LR-mode if necessary (git/49)}
+% \changes{v1.2b}{2018/09/24}{Start LR-mode if necessary (git/49)}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
@@ -396,14 +396,14 @@
% \end{macrocode}
% \end{macro}
%
-%
+%
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\cases}{Make commands robust}%
% \end{macrocode}
-%
+%
% \begin{macro}{\cases}
% \changes{LaTeX2.09}{1991/08/14}
% {(RmS) inserted extra braces around entry for NFSS}
@@ -633,7 +633,7 @@
% {(MH) Fixed potential problem in \cs{[} (pr/3399).}
% \begin{macro}{\]}
% Produces |$$...$$| with checks that |\[| isn't used in math mode,
-% and that |\]| is only used in display math mode (though there is no
+% and that |\]| is only used in display math mode (though there is no
% real test that this display math started with |\[| and not with |$$|).
% \changes{v1.1h}{2015/01/08}{Make Robust (latexrelease)}
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/ltmiscen.dtx b/Master/texmf-dist/source/latex/base/ltmiscen.dtx
index 61e44e5e91c..97b1f4a572b 100644
--- a/Master/texmf-dist/source/latex/base/ltmiscen.dtx
+++ b/Master/texmf-dist/source/latex/base/ltmiscen.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltmiscen.dtx}
- [2019/11/10 v1.1r LaTeX Kernel (Misc. Environments)]
+ [2019/11/02 v1.1s LaTeX Kernel (Misc. Environments)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltmiscen.dtx}
@@ -345,7 +345,7 @@
% package that uses \cs{@writefile} for writing its own files) then
% the command behaves exactly as before.
% \end{itemize}
-%
+%
%
% \begin{macro}{\protected@file@percent}
% Dummy cs to be replaced by a percent sign inside
@@ -358,7 +358,7 @@
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2018/12/01}%
%<latexrelease> {\protected@file@percent}{Mask line endings}%
-\protected\def\protected@file@percent{}
+\protected\def\protected@file@percent{}
% \end{macrocode}
% \end{macro}
@@ -372,7 +372,7 @@
% writing to files (github/73)}
%
% \begin{macrocode}
-\catcode`\^^A=9
+\catcode`\^^A=9
\long\gdef\add@percent@to@temptokena
#1\protected@file@percent#2\add@percent@to@temptokena
% \end{macrocode}
@@ -381,12 +381,12 @@
% group the braces aren't stripped. The |\expandafter| then expands
% this extra token away again.
% \changes{v1.1q}{2019/10/25}{Allow unbalanced conditionals in \texttt{\#1} (gh/202)}
-% \changes{v1.1r}{2019/08/27}{fix to special comment catcodes (gh/202)}
+% \changes{v1.1r}{2019/11/10}{fix to special comment catcodes (gh/202)}
% \begin{macrocode}
{\expandafter\ifx\expandafter X\detokenize{#2}X\expandafter\dont@add@percent@to@temptokena\else
\expandafter\do@add@percent@to@temptokena\fi{#1}}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\long\def\dont@add@percent@to@temptokena#1{%
\@temptokena\expandafter{#1}}
@@ -398,7 +398,7 @@
% in the definition. Therefore the |\fi| needs to be on the next
% line and we need locally another comment character to avoid
% getting spaces into the definition---a weird problem :-)
-%
+%
% \begin{macrocode}
\begingroup
\catcode`\%=12
@@ -435,7 +435,7 @@
}%
}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
@@ -706,9 +706,27 @@
% \begin{macro}{\@centercr}
% \changes{v1.0h}{1994/05/03}{\cs{@badcrerr} replaced by \cs{@nolnerr}}
% \changes{v1.0z}{1995/07/13}{Use \cs{nobreak}}
+% \changes{v1.1s}{2019/11/02}{Make \cs{@centercr} robust (gh/203)}
% \begin{macrocode}
-\def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\@centercr}{Make robust}%
+\protected\def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
\par\@ifstar{\nobreak\@xcentercr}\@xcentercr}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@centercr}{Make robust}%
+%<latexrelease>
+%<latexrelease>\def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
+%<latexrelease> \par\@ifstar{\nobreak\@xcentercr}\@xcentercr}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -723,7 +741,7 @@
% \begin{macrocode}
\def\@icentercr[#1]{\vskip #1\ignorespaces}
% \end{macrocode}
-%
+%
% \end{macro}
%
%
@@ -741,7 +759,7 @@
% \end{macrocode}
% \end{environment}
%
-%
+%
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
@@ -987,7 +1005,7 @@
% \end{macrocode}
% \end{macro}
%
-%
+%
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
diff --git a/Master/texmf-dist/source/latex/base/ltoutenc.dtx b/Master/texmf-dist/source/latex/base/ltoutenc.dtx
index b16af5c8c6a..6ebb62cee8d 100644
--- a/Master/texmf-dist/source/latex/base/ltoutenc.dtx
+++ b/Master/texmf-dist/source/latex/base/ltoutenc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -37,15 +37,14 @@
%<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|TU|package|TS1sty> [2018/08/11 v2.0j
-%<OT1|T1|OMS|OML|OT4|TS1|TU> Standard LaTeX file]
-%<package|TS1sty> Standard LaTeX package]
+%<OT1|T1|OMS|OML|OT4|TU|package> [2020/01/25 v2.0m
+%<OT1|T1|OMS|OML|OT4|TS1|TU> Standard LaTeX file]
+%<package> Standard LaTeX package]
%
%<*driver>
% \fi
\ProvidesFile{ltoutenc.dtx}
- [2018/11/18 v2.0k LaTeX Kernel (font encodings)]
+ [2020/01/20 v2.0n LaTeX Kernel (font encodings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutenc.dtx}
@@ -834,8 +833,23 @@
% {Explicitly set \cs{spacefactor} after \cs{accent} (pr/2877)}
% \begin{macrocode}
\global\mathchardef\accent@spacefactor\spacefactor}%
+% \end{macrocode}
+% The accent primitive doesn't allow things \cs{begingroup} to
+% interfere between accent and base character. Therefore we need to
+% avoid that (they are some hidden inside \cs{maybe@load@fontshape}).
+% As we don't have to load the fontshape in this case
+% (as that happened in the box above if necessary, we simply
+% disable that part of the code temporaily.
+% We also ignore \cs{ignorespaces} which has the same issue and may
+% show up as part of \cs{normalfont} if that is used.
+% \changes{v2.0m}{2019/12/18}{Avoid code that breaks \cs{accent}}
+% \begin{macrocode}
+ \let\maybe@load@fontshape\relax
+ \let\ignorespaces\relax
\accent#1 #2\egroup\spacefactor\accent@spacefactor}
% \end{macrocode}
+%
+%
% Default definition for |\accent@spacefactor| prevents a horrible
% death of the above macro inside an unprotected |\edef|.
% \changes{v1.9w}{1999/10/28}{Give \cs{accent@spacefactor} a default
@@ -1030,7 +1044,7 @@
% \begin{macrocode}
\@onlypreamble\DeclareTextComposite
% \end{macrocode}
-%
+%
% \end{macro}
% \end{macro}
% \end{macro}
@@ -1048,7 +1062,7 @@
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\UseTextAccent}{Make commands robust}%
% \end{macrocode}
-%
+%
% \begin{macro}{\UseTextAccent}
% \begin{macro}{\UseTextSymbol}
% \changes{v1.7p}{1995/11/17}{Support \cs{@wrong@font@char} latex/1676}
@@ -1107,7 +1121,8 @@
%<*2ekernel>
% \end{macrocode}
%
-%
+% Switch to a different text encoding without any grouping for use in
+% \cs{UseTextAccent} or \cs{UseTextSymbol} (and for \cs{oldstylenums}).
% \begin{macrocode}
\def\@use@text@encoding#1{%
\edef\f@encoding{#1}%
@@ -1445,11 +1460,18 @@
% \begin{macrocode}
\DeclareTextCommandDefault{\textasciicircum}{\^{}}
\DeclareTextCommandDefault{\textasciitilde}{\~{}}
-\DeclareTextCommandDefault{\textcompwordmark}{\leavevmode\kern\z@}
\DeclareTextCommandDefault{\textunderscore}{%
\leavevmode \kern.06em\vbox{\hrule\@width.3em}}
% \end{macrocode}
%
+% There is no good reason anymore to fake \cs{textcompwordmark}.
+% \changes{v2.0m}{2019/12/18}{Don't fake \cs{textcompwordmark}; take
+% default from T1 instead}
+% \begin{macrocode}
+%\DeclareTextCommandDefault{\textcompwordmark}{\leavevmode\kern\z@}
+\DeclareTextSymbolDefault{\textcompwordmark}{T1}
+% \end{macrocode}
+%
% \begin{macrocode}
\DeclareTextCommandDefault{\textvisiblespace}{%
\mbox{\kern.06em\vrule \@height.3ex}%
@@ -1490,8 +1512,16 @@
% Some commands can be used in both text and math mode:
% \begin{macrocode}
\DeclareRobustCommand{\$}{\ifmmode\mathdollar\else\textdollar\fi}
-\DeclareRobustCommand{\{}{\ifmmode\lbrace\else\textbraceleft\fi}
-\DeclareRobustCommand{\}}{\ifmmode\rbrace\else\textbraceright\fi}
+% \end{macrocode}
+% We use \cs{protected} not \cs{DeclareRobustCommand} so that
+% \verb=\bigl\{= etc.\ works inside \cs{protected@edef}.
+% \changes{v2.0n}{2020/01/20}{fix for gh/251}
+% \begin{macrocode}
+\protected\def\{{\ifmmode\lbrace\else\textbraceleft\fi}
+\protected\def\}{\ifmmode\rbrace\else\textbraceright\fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
\DeclareRobustCommand{\P}{\ifmmode\mathparagraph\else\textparagraph\fi}
\DeclareRobustCommand{\S}{\ifmmode\mathsection\else\textsection\fi}
\DeclareRobustCommand{\dag}{\ifmmode{\dagger}\else\textdagger\fi}
@@ -1986,7 +2016,7 @@
\DeclareTextSymbol{\guillemotleft}{T1}{19}
\DeclareTextSymbol{\guillemotright}{T1}{20}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareTextSymbol{\guilsinglleft}{T1}{14}
\DeclareTextSymbol{\guilsinglright}{T1}{15}
@@ -2375,7 +2405,7 @@
\DeclareTextSymbol{\guillemotleft}{OT4}{174}
\DeclareTextSymbol{\guillemotright}{OT4}{175}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareTextSymbol{\i}{OT4}{16}
\DeclareTextSymbol{\j}{OT4}{17}
@@ -2976,7 +3006,7 @@
% old Adobe name
\DeclareTextSymbol{\guillemotleft} \UnicodeEncodingName{"00AB}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareTextSymbol{\textlnot} \UnicodeEncodingName{"00AC}
\DeclareTextSymbol{\textregistered} \UnicodeEncodingName{"00AE}
@@ -2998,7 +3028,7 @@
% old Adobe name
\DeclareTextSymbol{\guillemotright} \UnicodeEncodingName{"00BB}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareTextSymbol{\textonequarter} \UnicodeEncodingName{"00BC}
\DeclareTextSymbol{\textonehalf} \UnicodeEncodingName{"00BD}
@@ -3087,7 +3117,7 @@
\DeclareTextSymbol{\Hwithstroke} \UnicodeEncodingName{"0126}
\DeclareTextSymbol{\hwithstroke} \UnicodeEncodingName{"0127}
% \end{macrocode}
-%
+%
% Not all fonts have U+2217 but using U+002A requires some adjustment.
% \begin{macrocode}
\DeclareTextCommand{\textasteriskcentered}\UnicodeEncodingName{%
@@ -3465,27 +3495,48 @@
% \begin{macrocode}
\DeclareOption*{%
\let\encodingdefault\CurrentOption
- \edef\reserved@f{%
- \lowercase{\def\noexpand\reserved@f{\CurrentOption enc.def}}}%
- \reserved@f
- \InputIfFileExists\reserved@f
- {}{\PackageError{fontenc}%
- {Encoding file `\reserved@f' not found.%
- \MessageBreak
- You might have misspelt the name of the encoding}%
- {Necessary code for this encoding was not
- loaded.\MessageBreak
- Thus calling the encoding later on will
- produce further error messages.}}%
- \let\reserved@f\relax
+% \end{macrocode}
+% From 2020/02/02 release onward we only load the encoding files if
+% they haven't be loaded already. To check this we look if
+% \verb=\T@=\textit{encoding} is already defined. If not we load
+% (indicated by setting the switch
+% \texttt{@tempswa} to true and we always load if we run in an older
+% format (or rather in a rollback situation).
+% \changes{v2.0m}{2020/01/25}{Load each encoding file only once (gh/255)}
+% \begin{macrocode}
+ \@tempswafalse
+ \@ifl@t@r\fmtversion{2020/02/02}%
+ {\expandafter\ifx\csname T@\CurrentOption\endcsname\relax
+ \@tempswatrue\fi}%
+ {\@tempswatrue}%
+% \end{macrocode}
+% Load if necessary:
+% \begin{macrocode}
+ \if@tempswa
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \edef\reserved@f{%
+ \lowercase{\def\noexpand\reserved@f{\CurrentOption enc.def}}}%
+ \reserved@f
+ \InputIfFileExists\reserved@f
+ {}{\PackageError{fontenc}%
+ {Encoding file `\reserved@f' not found.%
+ \MessageBreak
+ You might have misspelt the name of the encoding}%
+ {Necessary code for this encoding was not
+ loaded.\MessageBreak
+ Thus calling the encoding later on will
+ produce further error messages.}}%
+ \let\reserved@f\relax
% \end{macrocode}
%
% In case the current encoding is one of a list of known
% cyrillic ones we extend the |\@uclclist|:
% \begin{macrocode}
- \expandafter\in@\expandafter{\CurrentOption}%
- {T2A,T2B,T2C,X2,LCY,OT2}%
- \ifin@
+ \expandafter\in@\expandafter{\CurrentOption}%
+ {T2A,T2B,T2C,X2,LCY,OT2}%
+ \ifin@
% \end{macrocode}
%
% But only if it hasn't already been extended. This might happen if
@@ -3494,12 +3545,13 @@
% unnecessarily big, slowing down the processing at runtime.
% \changes{v1.9v}{1999/06/12}{Extend \cs{@uclclist} only once}
% \begin{macrocode}
- \expandafter\in@\expandafter\cyra\expandafter
- {\@uclclist}%
- \ifin@
- \else
- \update@uclc@with@cyrillic
- \fi
+ \expandafter\in@\expandafter\cyra\expandafter
+ {\@uclclist}%
+ \ifin@
+ \else
+ \update@uclc@with@cyrillic
+ \fi
+ \fi
\fi
}
% \end{macrocode}
@@ -3508,8 +3560,21 @@
\ProcessOptions*
% \end{macrocode}
%
+% We select the new font encoding default (i.e., the last encoding
+% specified in the option list. But this encoding may not work with
+% the current |\f@shape|, e.g., \texttt{LY1} is not defined for
+% \texttt{cmr} and therefore packages switching to \texttt{LY1}
+% usually also change \cs{rmdefault}. But that only applies at
+% |\begin{document}| so we get a spurious warning if we use what
+% \LaTeX{} previously used:
+% \changes{v2.0l}{2019/11/22}{Avoid spurious if fontenc selects LY1 as
+% default encoding (gh/199)}
% \begin{macrocode}
-\fontencoding\encodingdefault\selectfont
+%\fontencoding\encodingdefault\selectfont
+% \end{macrocode}
+% So instead we do this here:
+% \begin{macrocode}
+\usefont\encodingdefault\familydefault\seriesdefault\shapedefault
% \end{macrocode}
%
% To save some space we get rid of the macro extending the
@@ -3538,728 +3603,6 @@
% \end{macrocode}
%
%
-% \subsection{The textcomp package}
-%
-% This one is for the |TS1| encoding which contains text symbols
-% for use with the |T1|-encoded text fonts. It therefore first
-% inputs the file |TS1enc.def| and then sets (or resets) the
-% defaults for the symbols it contains. The result of this is that
-% when one of these symbols is accessed and the current encoding
-% does not provide it, the symbol will be supplied by a silent,
-% local change to this encoding.
-%
-% \begin{macrocode}
-%<*TS1sty>
-% \end{macrocode}
-% Since many PostScript fonts only implement a subset of |TS1| many
-% commands only produce black blobs of ink. To resolve the
-% resulting problems a number of options have been introduced and
-% some code has been developed to distinguish sub-encodings.
-%
-% The sub-encodings have a numerical id and are defined as follows
-% for \texttt{TS1}:
-% \begin{description}
-%
-% \item[\#5] those \texttt{TS1} symbols that are also in the ISO-Adobe
-% character set; without \verb=textcurrency=, which is often
-% misused for the Euro. Older Type1 fonts from the non-\TeX{}
-% world provide only this subset.
-%
-% \item[\#4] = \#5 + \verb=\texteuro=. Most newer fonts provide this.
-%
-% \item[\#3] = \#4 + \verb=\textomega=. Can also be described as
-% $\texttt{TS1} \cap (\texttt{ISO-Adobe} \cup
-% \texttt{MacRoman})$. (Except for the missing "currency".)
-
-%
-% \item[\#2] = \#3 + \verb=\textestimated= + \verb=\textcurrency=. Can
-% also be described as $\texttt{TS1} \cap
-% \texttt{Adobe-Western-2}$. This may be relevant for OpenType
-% fonts, which usually show the Adobe-Western-2 character set.
-%
-% \item[\#1] = \texttt{TS1} without \verb=\textcircled= and \verb=\t=.
-% These two glyphs are often not implemented and if their kernel
-% defaults are changed commands like \verb=\copyright=
-% unnecessarily fail.
-%
-% \item[\#0] = full \texttt{TS1}
-% \end{description}
-%
-% And here a summary to go in the transcript file:
-% \begin{macrocode}
-\PackageInfo{textcomp}{Sub-encoding information:\MessageBreak
- \space\space 5 = only ISO-Adobe without
- \string\textcurrency\MessageBreak
- \space\space 4 = 5 + \string\texteuro\MessageBreak
- \space\space 3 = 4 + \string\textohm\MessageBreak
- \space\space 2 = 3 + \noexpand\textestimated+
- \string\textcurrency\MessageBreak
- \space\space 1 = TS1 - \noexpand\textcircled-
- \string\t\MessageBreak
- \space\space 0 = TS1 (full)\MessageBreak
- Font families with sub-encoding setting implement\MessageBreak
- only a restricted character set as indicated.\MessageBreak
- Family '?' is the default used for unknown fonts.\MessageBreak
- See the documentation for details\@gobble}
-% \end{macrocode}
-%
-% \begin{macro}{\DeclareEncodingSubset}
-% An encoding subset to which a font family belongs is declared by
-% the command |\DeclareEncodingSubset| that takes the major encoding as the
-% first argument (e.g., |TS1|), the family name as the second
-% argument (e.g., |cmr|), and the subset encoding id as a third,
-% (e.g., |0| for |cmr|).
-%
-% The default encoding subset to use when nothing is known about
-% the current font family is named |?|.
-% \begin{macrocode}
-\def\DeclareEncodingSubset#1#2#3{%
- \@ifundefined{#1:#2}%
- {\PackageInfo{textcomp}{Setting #2 sub-encoding to #1/#3}}%
- {\PackageInfo{textcomp}{Changing #2 sub-encoding to #1/#3}}%
- \@namedef{#1:#2}{#3}}
-\@onlypreamble\DeclareEncodingSubset
-% \end{macrocode}
-% \end{macro}
-%
-%
-% The options for the package are the following:
-% \begin{description}
-% \item[safe]
-% for unknown font families enables only symbols that are also
-% in the ISO-Adobe character set; without "currency", which is
-% often misused for the Euro. Older Type1 fonts from the
-% non-TeX world provide only this subset.
-%
-% \item[euro]
-% enables the ``safe'' symbols plus the |\texteuro|
-% command. Most newer fonts provide this.
-%
-% \item[full] enables all |TS1| commands; useful only with fonts
-% like EC or CM bright.
-%
-% \item[almostfull]
-% same as ``full'', except that |\textcircled|
-% and |\t| are \emph{not} redefined from their defaults to avoid
-% that commands like |\copyright| suddenly no longer work.
-%
-% \item[force]
-% ignore all subset encoding definitions stored in the package
-% itself or in the configuration file and always use the default
-% subset as specified by one of the other options (seldom useful,
-% only dangerous).
-% \end{description}
-
-% \begin{macro}{\iftc@forced}
-% Switch used to implement the \texttt{force} option
-% \begin{macrocode}
-\newif\iftc@forced \tc@forcedfalse
-% \end{macrocode}
-% \end{macro}
-
-% This is implemented by defining the default subset:
-% \begin{macrocode}
-\DeclareOption{full}{\DeclareEncodingSubset{TS1}{?}{0}}
-\DeclareOption{almostfull}{\DeclareEncodingSubset{TS1}{?}{1}}
-\DeclareOption{euro}{\DeclareEncodingSubset{TS1}{?}{4}}
-\DeclareOption{safe}{\DeclareEncodingSubset{TS1}{?}{5}}
-% \end{macrocode}
-% The default is ``almostfull'' which means that old documents will
-% work except that |\textcircled| and |\t| will use the kernel
-% defaults (with the advantage that this also works if the current
-% font (as often the case) doesn't implement these glyphs.
-%
-% The ``force'' option simply sets the switch to true.
-% \begin{macrocode}
-\DeclareOption{force}{\tc@forcedtrue}
-% \end{macrocode}
-%
-% The suggestions to user is to use the ``safe'' option always
-% unless that balks in which case they could switch to
-% ``almostfull'' but then better check their output manually.
-%
-% \begin{macrocode}
-\def\tc@errorwarn{\PackageError}
-\DeclareOption{warn}{\gdef\tc@errorwarn#1#2#3{\PackageWarning{#1}{#2}}}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ExecuteOptions{almostfull}
-\ProcessOptions\relax
-% \end{macrocode}
-%
-% \begin{macro}{\CheckEncodingSubset}
-% The command |\CheckEncodingSubset| will check if the current font
-% family has the right encoding subset to typeset a certain
-% command. It takes five arguments as follows:
-% first argument is either |\UseTextSymbol|, |\UseTextAccent|
-% depending on whether or not the symbol is a text symbol or a text
-% accent.
-
-% The second argument is the encoding from which this symbol should
-% be fetched.
-%
-% The third argument is either a fake accessor command or an error
-% message. the code in that argument (if ever executed) receives
-% two arguments: |#2| and |#5| of |\CheckEncodingSubset|.
-%
-% Argument four is the subset encoding id to test against: if this
-% value is higher than the subset id of the current font family
-% then we typeset the symbol, i.e., execute |#1{#2}#5| otherwise
-% it runs |#3#5|, e.g., to produce an error message or fake the
-% glyph somehow.
-%
-% Argument five is the symbol or accent command that is being
-% checked.
-%
-% For usage examples see definitions below.
-% \begin{macrocode}
-\iftc@forced
-% \end{macrocode}
-% If the ``force'' option was given we always use the default for
-% testing against.
-% \begin{macrocode}
-\def\CheckEncodingSubset#1#2#3#4#5{%
- \ifnum #4>%
- 0\csname #2:?\endcsname
- \relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- {#1{#2}}{#3}%
- #5%
-}
-% \end{macrocode}
-% In normal circumstances the test is a bit more complicated: first
-% check if there exists a macro
-% |\|\meta{arg2}|:|\meta{current-family} and if so use that value
-% to test against, otherwise use the default to test against.
-% \begin{macrocode}
-\else
-\def\CheckEncodingSubset#1#2#3#4#5{%
- \ifnum #4>%
- \expandafter\ifx\csname #2:\f@family\endcsname\relax
- 0\csname #2:?\endcsname
- \else
- \csname #2:\f@family\endcsname
- \fi
- \relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- {#1{#2}}{#3}%
- #5%
-}
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\tc@subst}
-% \begin{macrocode}
-\def\tc@subst#1{%
- \tc@errorwarn{textcomp}% % should be latex error if general
- {Symbol \string#1 not provided by\MessageBreak
- font family \f@family\space
- in TS1 encoding.\MessageBreak Default family used instead}\@eha
- \bgroup\fontfamily\textcompsubstdefault\selectfont#1\egroup
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\textcompsubstdefault}
-% \begin{macrocode}
-\def\textcompsubstdefault{cmr}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\tc@error}
-% |\tc@error| is going to be used in arg |#3| of
-% |\CheckEncodingSubset| when a symbol is not available in a
-% certain font family. It gets pass the encoding it normally lives
-% in (arg one) and the name of the symbol or accent that has a
-% problem.
-%
-% \begin{macrocode}
-% error commands take argument:
-% #1 symbol to be used
-\def\tc@error#1{%
- \PackageError{textcomp}% % should be latex error if general
- {Accent \string#1 not provided by\MessageBreak
- font family \f@family\space
- in TS1 encoding}\@eha
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\tc@fake@euro}
-% |\tc@fake@euro| is an example of a ``fake'' definition to use in arg |#3| of
-% |\CheckEncodingSubset| when a symbol is not available in a
-% certain font family. Here we produce an Euro symbol by combining
-% a ``C'' with a ``=''.
-% \begin{macrocode}
-\def\tc@fake@euro#1{%
- \leavevmode
- \PackageInfo{textcomp}{Faking \noexpand#1for font family
- \f@family\MessageBreak in TS1 encoding}%
- \valign{##\cr
- \vfil\hbox to 0.07em{\dimen@\f@size\p@
- \math@fontsfalse
- \fontsize{.7\dimen@}\z@\selectfont=\hss}%
- \vfil\cr%
- \hbox{C}\crcr
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\tc@check@symbol}
-% \begin{macro}{\tc@check@accent}
-% These are two abbreviations that we use below to check symbols
-% and accents in TS1. Only there to save some space, e.g., we can
-% then write
-%\begin{verbatim}
-%\DeclareTextCommandDefault{\textcurrency}{\tc@check@symbol3\textcurrency}
-%\end{verbatim}
-% to ensure that |\textcurrency| is only typeset if the current
-% font has a \texttt{TS1} subset id of less than 3. Otherwise
-% |\tc@error| is called telling the user that for this font family
-% |\textcurreny| is not available.
-% \begin{macrocode}
-\def\tc@check@symbol{\CheckEncodingSubset\UseTextSymbol{TS1}\tc@subst}
-\def\tc@check@accent{\CheckEncodingSubset\UseTextAccent{TS1}\tc@error}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% We start with the commands that are ``safe'' and which can be
-% unconditionally set up, first the accents\ldots
-% \begin{macrocode}
-\DeclareTextAccentDefault{\capitalcedilla}{TS1}
-\DeclareTextAccentDefault{\capitalogonek}{TS1}
-\DeclareTextAccentDefault{\capitalgrave}{TS1}
-\DeclareTextAccentDefault{\capitalacute}{TS1}
-\DeclareTextAccentDefault{\capitalcircumflex}{TS1}
-\DeclareTextAccentDefault{\capitaltilde}{TS1}
-\DeclareTextAccentDefault{\capitaldieresis}{TS1}
-\DeclareTextAccentDefault{\capitalhungarumlaut}{TS1}
-\DeclareTextAccentDefault{\capitalring}{TS1}
-\DeclareTextAccentDefault{\capitalcaron}{TS1}
-\DeclareTextAccentDefault{\capitalbreve}{TS1}
-\DeclareTextAccentDefault{\capitalmacron}{TS1}
-\DeclareTextAccentDefault{\capitaldotaccent}{TS1}
-% \end{macrocode}
-% \ldots and then the other glyphs.
-% \changes{v1.9p}{1998/06/12}{Renamed \cs{textmacron} pr/2840}
-% \begin{macrocode}
-\DeclareTextSymbolDefault{\textcapitalcompwordmark}{TS1}
-\DeclareTextSymbolDefault{\textascendercompwordmark}{TS1}
-\DeclareTextSymbolDefault{\textquotestraightbase}{TS1}
-\DeclareTextSymbolDefault{\textquotestraightdblbase}{TS1}
-\DeclareTextSymbolDefault{\texttwelveudash}{TS1}
-\DeclareTextSymbolDefault{\textthreequartersemdash}{TS1}
-\DeclareTextSymbolDefault{\textdollar}{TS1}
-\DeclareTextSymbolDefault{\textquotesingle}{TS1}
-\DeclareTextSymbolDefault{\textasteriskcentered}{TS1}
-\DeclareTextSymbolDefault{\textfractionsolidus}{TS1}
-\DeclareTextSymbolDefault{\textminus}{TS1}
-\DeclareTextSymbolDefault{\textlbrackdbl}{TS1}
-\DeclareTextSymbolDefault{\textrbrackdbl}{TS1}
-\DeclareTextSymbolDefault{\textasciigrave}{TS1}
-\DeclareTextSymbolDefault{\texttildelow}{TS1}
-\DeclareTextSymbolDefault{\textasciibreve}{TS1}
-\DeclareTextSymbolDefault{\textasciicaron}{TS1}
-\DeclareTextSymbolDefault{\textgravedbl}{TS1}
-\DeclareTextSymbolDefault{\textacutedbl}{TS1}
-\DeclareTextSymbolDefault{\textdagger}{TS1}
-\DeclareTextSymbolDefault{\textdaggerdbl}{TS1}
-\DeclareTextSymbolDefault{\textbardbl}{TS1}
-\DeclareTextSymbolDefault{\textperthousand}{TS1}
-\DeclareTextSymbolDefault{\textbullet}{TS1}
-\DeclareTextSymbolDefault{\textcelsius}{TS1}
-\DeclareTextSymbolDefault{\textflorin}{TS1}
-\DeclareTextSymbolDefault{\texttrademark}{TS1}
-\DeclareTextSymbolDefault{\textcent}{TS1}
-\DeclareTextSymbolDefault{\textsterling}{TS1}
-\DeclareTextSymbolDefault{\textyen}{TS1}
-\DeclareTextSymbolDefault{\textbrokenbar}{TS1}
-\DeclareTextSymbolDefault{\textsection}{TS1}
-\DeclareTextSymbolDefault{\textasciidieresis}{TS1}
-\DeclareTextSymbolDefault{\textcopyright}{TS1}
-\DeclareTextSymbolDefault{\textordfeminine}{TS1}
-\DeclareTextSymbolDefault{\textlnot}{TS1}
-\DeclareTextSymbolDefault{\textregistered}{TS1}
-\DeclareTextSymbolDefault{\textasciimacron}{TS1}
-\DeclareTextSymbolDefault{\textdegree}{TS1}
-\DeclareTextSymbolDefault{\textpm}{TS1}
-\DeclareTextSymbolDefault{\texttwosuperior}{TS1}
-\DeclareTextSymbolDefault{\textthreesuperior}{TS1}
-\DeclareTextSymbolDefault{\textasciiacute}{TS1}
-\DeclareTextSymbolDefault{\textmu}{TS1}
-\DeclareTextSymbolDefault{\textparagraph}{TS1}
-\DeclareTextSymbolDefault{\textperiodcentered}{TS1}
-\DeclareTextSymbolDefault{\textonesuperior}{TS1}
-\DeclareTextSymbolDefault{\textordmasculine}{TS1}
-\DeclareTextSymbolDefault{\textonequarter}{TS1}
-\DeclareTextSymbolDefault{\textonehalf}{TS1}
-\DeclareTextSymbolDefault{\textthreequarters}{TS1}
-\DeclareTextSymbolDefault{\texttimes}{TS1}
-\DeclareTextSymbolDefault{\textdiv}{TS1}
-% \end{macrocode}
-%
-% The |\texteuro| is only available for subsets with id 4 or
-% less. Otherwise we fake the glyph using |\tc@fake@euro|
-% \begin{macrocode}
-\DeclareTextCommandDefault{\texteuro}
- {\CheckEncodingSubset\UseTextSymbol{TS1}\tc@fake@euro5\texteuro}
-% \end{macrocode}
-%
-% The |\textohm| is only available for subsets with id 3 or
-% less. Otherwise we produce an error.
-% \begin{macrocode}
-\DeclareTextCommandDefault{\textohm}{\tc@check@symbol4\textohm}
-% \end{macrocode}
-% The |\textestimated| and |\textcurrency| are only provided for
-% fonts with subset encoding with id 2 or less.
-% \begin{macrocode}
-\DeclareTextCommandDefault{\textestimated}%
- {\tc@check@symbol3\textestimated}
-\DeclareTextCommandDefault{\textcurrency}%
- {\tc@check@symbol3\textcurrency}
-% \end{macrocode}
-% Nearly all of the remaining glyphs are provided only with fonts
-% with id 1 or 0, i.e., are essentially complete.
-% \begin{macrocode}
-\DeclareTextCommandDefault{\capitaltie}%
- {\tc@check@accent2\capitaltie}
-\DeclareTextCommandDefault{\newtie}%
- {\tc@check@accent2\newtie}
-\DeclareTextCommandDefault{\capitalnewtie}%
- {\tc@check@accent2\capitalnewtie}
-\DeclareTextCommandDefault{\textleftarrow}%
- {\tc@check@symbol2\textleftarrow}
-\DeclareTextCommandDefault{\textrightarrow}%
- {\tc@check@symbol2\textrightarrow}
-\DeclareTextCommandDefault{\textblank}%
- {\tc@check@symbol2\textblank}
-\DeclareTextCommandDefault{\textdblhyphen}%
- {\tc@check@symbol2\textdblhyphen}
-\DeclareTextCommandDefault{\textzerooldstyle}%
- {\tc@check@symbol2\textzerooldstyle}
-\DeclareTextCommandDefault{\textoneoldstyle}%
- {\tc@check@symbol2\textoneoldstyle}
-\DeclareTextCommandDefault{\texttwooldstyle}%
- {\tc@check@symbol2\texttwooldstyle}
-\DeclareTextCommandDefault{\textthreeoldstyle}%
- {\tc@check@symbol2\textthreeoldstyle}
-\DeclareTextCommandDefault{\textfouroldstyle}%
- {\tc@check@symbol2\textfouroldstyle}
-\DeclareTextCommandDefault{\textfiveoldstyle}%
- {\tc@check@symbol2\textfiveoldstyle}
-\DeclareTextCommandDefault{\textsixoldstyle}%
- {\tc@check@symbol2\textsixoldstyle}
-\DeclareTextCommandDefault{\textsevenoldstyle}%
- {\tc@check@symbol2\textsevenoldstyle}
-\DeclareTextCommandDefault{\texteightoldstyle}%
- {\tc@check@symbol2\texteightoldstyle}
-\DeclareTextCommandDefault{\textnineoldstyle}%
- {\tc@check@symbol2\textnineoldstyle}
-\DeclareTextCommandDefault{\textlangle}%
- {\tc@check@symbol2\textlangle}
-\DeclareTextCommandDefault{\textrangle}%
- {\tc@check@symbol2\textrangle}
-\DeclareTextCommandDefault{\textmho}%
- {\tc@check@symbol2\textmho}
-\DeclareTextCommandDefault{\textbigcircle}%
- {\tc@check@symbol2\textbigcircle}
-\DeclareTextCommandDefault{\textuparrow}%
- {\tc@check@symbol2\textuparrow}
-\DeclareTextCommandDefault{\textdownarrow}%
- {\tc@check@symbol2\textdownarrow}
-\DeclareTextCommandDefault{\textborn}%
- {\tc@check@symbol2\textborn}
-\DeclareTextCommandDefault{\textdivorced}%
- {\tc@check@symbol2\textdivorced}
-\DeclareTextCommandDefault{\textdied}%
- {\tc@check@symbol2\textdied}
-\DeclareTextCommandDefault{\textleaf}%
- {\tc@check@symbol2\textleaf}
-\DeclareTextCommandDefault{\textmarried}%
- {\tc@check@symbol2\textmarried}
-\DeclareTextCommandDefault{\textmusicalnote}%
- {\tc@check@symbol2\textmusicalnote}
-\DeclareTextCommandDefault{\textdblhyphenchar}%
- {\tc@check@symbol2\textdblhyphenchar}
-\DeclareTextCommandDefault{\textdollaroldstyle}%
- {\tc@check@symbol2\textdollaroldstyle}
-\DeclareTextCommandDefault{\textcentoldstyle}%
- {\tc@check@symbol2\textcentoldstyle}
-\DeclareTextCommandDefault{\textcolonmonetary}%
- {\tc@check@symbol2\textcolonmonetary}
-\DeclareTextCommandDefault{\textwon}%
- {\tc@check@symbol2\textwon}
-\DeclareTextCommandDefault{\textnaira}%
- {\tc@check@symbol2\textnaira}
-\DeclareTextCommandDefault{\textguarani}%
- {\tc@check@symbol2\textguarani}
-\DeclareTextCommandDefault{\textpeso}%
- {\tc@check@symbol2\textpeso}
-\DeclareTextCommandDefault{\textlira}%
- {\tc@check@symbol2\textlira}
-\DeclareTextCommandDefault{\textrecipe}%
- {\tc@check@symbol2\textrecipe}
-\DeclareTextCommandDefault{\textinterrobang}%
- {\tc@check@symbol2\textinterrobang}
-\DeclareTextCommandDefault{\textinterrobangdown}%
- {\tc@check@symbol2\textinterrobangdown}
-\DeclareTextCommandDefault{\textdong}%
- {\tc@check@symbol2\textdong}
-\DeclareTextCommandDefault{\textpertenthousand}%
- {\tc@check@symbol2\textpertenthousand}
-\DeclareTextCommandDefault{\textpilcrow}%
- {\tc@check@symbol2\textpilcrow}
-\DeclareTextCommandDefault{\textbaht}%
- {\tc@check@symbol2\textbaht}
-\DeclareTextCommandDefault{\textnumero}%
- {\tc@check@symbol2\textnumero}
-\DeclareTextCommandDefault{\textdiscount}%
- {\tc@check@symbol2\textdiscount}
-\DeclareTextCommandDefault{\textopenbullet}%
- {\tc@check@symbol2\textopenbullet}
-\DeclareTextCommandDefault{\textservicemark}%
- {\tc@check@symbol2\textservicemark}
-\DeclareTextCommandDefault{\textlquill}%
- {\tc@check@symbol2\textlquill}
-\DeclareTextCommandDefault{\textrquill}%
- {\tc@check@symbol2\textrquill}
-\DeclareTextCommandDefault{\textcopyleft}%
- {\tc@check@symbol2\textcopyleft}
-\DeclareTextCommandDefault{\textcircledP}%
- {\tc@check@symbol2\textcircledP}
-\DeclareTextCommandDefault{\textreferencemark}%
- {\tc@check@symbol2\textreferencemark}
-\DeclareTextCommandDefault{\textsurd}%
- {\tc@check@symbol2\textsurd}
-% \end{macrocode}
-% The |\textcircled| and |\t| are handled specially, unless the
-% current font has a subset id of 0 (i.e. full \texttt{TS1}) we
-% pick the symbols up from the the math font encodings, i.e., the
-% third argument to |\CheckEncodingSubset| uses |\UseTextAccent| to
-% get them from there.
-% \begin{macrocode}
-\DeclareTextCommandDefault{\textcircled}
- {\CheckEncodingSubset\UseTextAccent{TS1}%
- {\UseTextAccent{OMS}}1\textcircled}
-\DeclareTextCommandDefault{\t}
- {\CheckEncodingSubset\UseTextAccent{TS1}%
- {\UseTextAccent{OML}}1\t}
-% \end{macrocode}
-
-
-%
-% Finally input the encoding-specific definitions for
-% \texttt{TS1} thus making the top-level definitions
-% optimised for this encoding (and not for the default
-% encoding, see section~\ref{sec:orderofdecls}).
-% \changes{v1.9o}{1998/03/20}{Load decls after defaults for speed.}
-% \begin{macrocode}
-\input{ts1enc.def}
-% \end{macrocode}
-% Now having the new glyphs available we also want to make sure
-% that they are used. For most cases this will automatically happen
-% but for some glyphs there are inferior definitions already known
-% to \LaTeX{} which will prevent the usage of the \texttt{TS1}
-% versions (see section~\ref{sec:removeencspec} above). So we better
-% get rid of them:
-% \changes{v1.9o}{1998/03/20}{Added various \cs{UndeclareTextCommand}
-% declarations for pr/2783}
-% \begin{macrocode}
-\UndeclareTextCommand{\textsterling}{OT1}
-\UndeclareTextCommand{\textdollar} {OT1}
-% \end{macrocode}
-% Similar declarations should probably be made for other encodings
-% like \texttt{OT4} if they are in use.
-% \begin{macrocode}
-%\UndeclareTextCommand{\textsterling}{OT4}
-%\UndeclareTextCommand{\textdollar} {OT4}
-% \end{macrocode}
-% From the \texttt{T1} encoding there are two candidates for removal:
-% \textperthousand{} and \textpertenthousand{} since these are both
-% constructed from \% followed by a tiny
-% `{\fontencoding{T1}\selectfont \char 24}'
-% rather than being a single glyph. The problem with this
-% approach is that in PostScript fonts this small zero is usually not
-% available resulting in \%\rule{3pt}{3pt} rather than
-% \textperthousand{} while the real glyph (at least for
-% |\textperthousand|) is available in the PostScript version of
-% \texttt{TS1}. So for the moment we compromise by removing the
-% \texttt{T1} declaration for |\textperthousand| but keeping the one
-% for |\textpertenthousand|. This will have the effect that with
-% Computer Modern fonts everything will come out (although
-% \textperthousand{} and \textpertenthousand{} are not taken from the
-% same physical font) and with PostScript fonts \textperthousand{}
-% will come out correctly while \textpertenthousand{} will most
-% likely look like \%\rule{6pt}{3pt} --- which is probably an
-% improvement over just getting a single `\rule{3pt}{3pt}' to
-% indicate a completely missing glyph, which would happen if we
-% also `undeclared' |\textpertenthousand|.
-% \begin{macrocode}
-\UndeclareTextCommand{\textperthousand}{T1}
-%\UndeclareTextCommand{\textpertenthousand}{T1}
-% \end{macrocode}
-%
-%
-% \subsubsection{Supporting oldstyle digits}
-%
-% \begin{macrocode}
-\DeclareRobustCommand\oldstylenums[1]{%
- \begingroup
- \ifmmode
- \mathgroup\symletters #1%
- \else
- \CheckEncodingSubset\@use@text@encoding{TS1}%
- {\PackageWarning{textcomp}%
- {Oldstyle digits unavailable for
- family \f@family.\MessageBreak
- Lining digits used instead}}%
- \tw@{#1}%
- \fi
- \endgroup
-}
-% \end{macrocode}
-%
-% \subsubsection{Subset encoding defaults}
-%
-% For many font families commonly used in the \TeX{} world we
-% provide the subset encoding data here. Users can add additional
-% font families in the file \texttt{textcomp.cfg} if they own other
-% fonts.
-%
-% However, if the option ``forced'' was given then all subset
-% encoding specifications are ignored, so there is no point in
-% setting any of them up:
-% \begin{macrocode}
-\iftc@forced \else
-% \end{macrocode}
-%
-% Computer modern based fonts (e.g., CM, CM-Bright, Concrete):
-% \begin{macrocode}
-\DeclareEncodingSubset{TS1}{cmr} {0}
-\DeclareEncodingSubset{TS1}{cmss} {0}
-\DeclareEncodingSubset{TS1}{cmtt} {0}
-\DeclareEncodingSubset{TS1}{cmvtt} {0}
-\DeclareEncodingSubset{TS1}{cmbr} {0}
-\DeclareEncodingSubset{TS1}{cmtl} {0}
-\DeclareEncodingSubset{TS1}{ccr} {0}
-% \end{macrocode}
-%
-% PSNFSS fonts:
-% \begin{macrocode}
-\DeclareEncodingSubset{TS1}{ptm} {4}
-\DeclareEncodingSubset{TS1}{pcr} {4}
-\DeclareEncodingSubset{TS1}{phv} {4}
-\DeclareEncodingSubset{TS1}{ppl} {3}
-\DeclareEncodingSubset{TS1}{pag} {4}
-\DeclareEncodingSubset{TS1}{pbk} {4}
-\DeclareEncodingSubset{TS1}{pnc} {4}
-\DeclareEncodingSubset{TS1}{pzc} {4}
-\DeclareEncodingSubset{TS1}{bch} {4}
-\DeclareEncodingSubset{TS1}{put} {5}
-% \end{macrocode}
-%
-% Other CTAN fonts (probably not complete):
-% \begin{macrocode}
-\DeclareEncodingSubset{TS1}{uag} {5}
-\DeclareEncodingSubset{TS1}{ugq} {5}
-\DeclareEncodingSubset{TS1}{ul8} {4}
-\DeclareEncodingSubset{TS1}{ul9} {4} % (LuxiSans, one day)
-\DeclareEncodingSubset{TS1}{augie} {5}
-\DeclareEncodingSubset{TS1}{dayrom} {3}
-\DeclareEncodingSubset{TS1}{dayroms} {3}
-\DeclareEncodingSubset{TS1}{pxr} {0}
-\DeclareEncodingSubset{TS1}{pxss} {0}
-\DeclareEncodingSubset{TS1}{pxtt} {0}
-\DeclareEncodingSubset{TS1}{txr} {0}
-\DeclareEncodingSubset{TS1}{txss} {0}
-\DeclareEncodingSubset{TS1}{txtt} {0}
-% \end{macrocode}
-%
-% Latin Modern and TeX Gyre:
-% \changes{v1.99k}{2009/10/28}{Added Latin Modern and TeX Gyre subsets}
-% \changes{v1.99l}{2009/11/04}{Added more Latin Modern and TeX Gyre subsets}
-% \changes{v1.99m}{2015/02/16}{Added lmtt (Heiko Oberdiek) latex/4415}
-% \begin{macrocode}
-\DeclareEncodingSubset{TS1}{lmr} {0}
-\DeclareEncodingSubset{TS1}{lmdh} {0}
-\DeclareEncodingSubset{TS1}{lmss} {0}
-\DeclareEncodingSubset{TS1}{lmssq} {0}
-\DeclareEncodingSubset{TS1}{lmvtt} {0}
-\DeclareEncodingSubset{TS1}{lmtt} {0}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\DeclareEncodingSubset{TS1}{qhv} {0}
-\DeclareEncodingSubset{TS1}{qag} {0}
-\DeclareEncodingSubset{TS1}{qbk} {0}
-\DeclareEncodingSubset{TS1}{qcr} {0}
-\DeclareEncodingSubset{TS1}{qcs} {0}
-\DeclareEncodingSubset{TS1}{qpl} {0}
-\DeclareEncodingSubset{TS1}{qtm} {0}
-\DeclareEncodingSubset{TS1}{qzc} {0}
-\DeclareEncodingSubset{TS1}{qhvc} {0}
-% \end{macrocode}
-%
-% Fourier-GUTenberg:
-% \begin{macrocode}
-\DeclareEncodingSubset{TS1}{futs} {4}
-\DeclareEncodingSubset{TS1}{futx} {4}
-\DeclareEncodingSubset{TS1}{futj} {4}
-% \end{macrocode}
-%
-% Y\&Y's Lucida Bright
-% \begin{macrocode}
-\DeclareEncodingSubset{TS1}{hlh} {3}
-\DeclareEncodingSubset{TS1}{hls} {3}
-\DeclareEncodingSubset{TS1}{hlst} {3}
-% \end{macrocode}
-% The remaining settings for Lucida are conservative: the following
-% fonts contain the |\textohm| character but not the |\texteuro|,
-% i.e., belong to neither subset~4 nor subset~3. If you want to
-% use the |\textohm| with these fonts copy these definition to
-% \texttt{textcomp.cfg} and change the subset to~3. However in that
-% case make sure that you do not use the |\texteuro|.
-% \begin{macrocode}
-\DeclareEncodingSubset{TS1}{hlct} {5}
-\DeclareEncodingSubset{TS1}{hlx} {5}
-\DeclareEncodingSubset{TS1}{hlce} {5}
-\DeclareEncodingSubset{TS1}{hlcn} {5}
-\DeclareEncodingSubset{TS1}{hlcw} {5}
-\DeclareEncodingSubset{TS1}{hlcf} {5}
-% \end{macrocode}
-%
-% Other commercial families\ldots
-% \begin{macrocode}
-\DeclareEncodingSubset{TS1}{pplx} {3}
-\DeclareEncodingSubset{TS1}{pplj} {3}
-\DeclareEncodingSubset{TS1}{ptmx} {4}
-\DeclareEncodingSubset{TS1}{ptmj} {4}
-% \end{macrocode}
-%
-% If the file \texttt{textcomp.cfg} exists it will be loaded at
-% this point. This allows to define further subset encodings for
-% font families not covered by default.
-%
-% \begin{macrocode}
-\InputIfFileExists{textcomp.cfg}
- {\PackageInfo{textcomp}{Local configuration file used}}{}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\fi
-%</TS1sty>
-% \end{macrocode}
%
% \Finale
%
diff --git a/Master/texmf-dist/source/latex/base/ltoutenc.ins b/Master/texmf-dist/source/latex/base/ltoutenc.ins
index e3f436fbc15..17d62e11e8a 100644
--- a/Master/texmf-dist/source/latex/base/ltoutenc.ins
+++ b/Master/texmf-dist/source/latex/base/ltoutenc.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
@@ -96,12 +96,11 @@ extension .ins) which are part of the distribution.
\from{ltoutenc.dtx}{TS1}}
\file{tuenc.def}{
\from{ltoutenc.dtx}{TU}}
- \file{textcomp.sty}{
- \from{ltoutenc.dtx}{TS1sty}}
+% no longer in this file since 2020/02 release
+% \file{textcomp.sty}{
+% \from{ltoutenc.dtx}{TS1sty}}
\file{fontenc.sty}{
\from{ltoutenc.dtx}{package}}
}
\endbatchfile
-
-
diff --git a/Master/texmf-dist/source/latex/base/ltoutput.dtx b/Master/texmf-dist/source/latex/base/ltoutput.dtx
index 138bc85ba38..c3b27baf42d 100644
--- a/Master/texmf-dist/source/latex/base/ltoutput.dtx
+++ b/Master/texmf-dist/source/latex/base/ltoutput.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -748,10 +748,10 @@
% \changes{v1.2m}{2015/03/12}
% {initialise \cs{@dbldeferlist} again}
% The new algorithm stores page wide floats together with column floats
-% in a single |\@deferlist| list. We keep |\@dbldeferlist|
+% in a single |\@deferlist| list. We keep |\@dbldeferlist|
% initialised as empty so that packages that are testing for
% deferred floats can use the same code for old or new float
-% handling.
+% handling.
% \begin{macrocode}
\gdef\@dbldeferlist{}
% \end{macrocode}
@@ -990,15 +990,15 @@
\if@nobreak \@nobreakfalse \everypar{}\fi
\par
% \end{macrocode}
-% The |\vfil| at the end of the macro before the break penalty will
+% The |\vfil| at the end of the macro before the break penalty will
% normally result in the page being run short, even with |\flushbottom|
% in effect (in contrast to the behavior
-% of |\pagebreak|). However, if there
+% of |\pagebreak|). However, if there
% is some explicit stretch on the page, say, a |\vfill|, it has the undesired
% side-effect, that the last line will not align at its baseline if it
% contains characters going below the baseline, as the value of |\prevdepth|
-% is no longer taken into account by \TeX{}. So we back up by that amount
-% (or by |\maxdepth| if it is really huge), to mimic the normal behavior
+% is no longer taken into account by \TeX{}. So we back up by that amount
+% (or by |\maxdepth| if it is really huge), to mimic the normal behavior
% without the |\newpage|.
% \begin{macrocode}
\ifdim\prevdepth>\z@
@@ -1448,8 +1448,8 @@
\def\@testwrongwidth #1{%
\ifdim\dp#1=\f@depth
%<*trace>
- \fl@trace{\string#1
- \ifdim\f@depth=\z@ single \else double \fi
+ \fl@trace{\string#1
+ \ifdim\f@depth=\z@ single \else double \fi
column float -- ok}%
%</trace>
\else
@@ -3110,7 +3110,7 @@
% |\@textmin| also.
% \begin{macrocode}
%<*trace>
-%<latexrelease|fltrace|flafter> \fl@trace{textfloatsheight (before) =
+%<latexrelease|fltrace|flafter> \fl@trace{textfloatsheight (before) =
%<latexrelease|fltrace|flafter> \the \@textfloatsheight}%
%</trace>
%<latexrelease|fltrace|flafter> \advance \@textmin \@textfloatsheight
@@ -3133,7 +3133,7 @@
%<latexrelease|fltrace|flafter> \fi
%<latexrelease|fltrace|flafter> \advance \@reqcolroom \ht\@currbox
%<*trace>
-%<latexrelease|fltrace|flafter> \fl@trace{float size =
+%<latexrelease|fltrace|flafter> \fl@trace{float size =
%<latexrelease|fltrace|flafter> \the \ht \@currbox (addtocurcol)}%
%<latexrelease|fltrace|flafter> \fl@trace{colroom =
%<latexrelease|fltrace|flafter> \the \@colroom (addtocurcol)}%
@@ -3234,7 +3234,7 @@
%<latexrelease|fltrace|flafter> \box\@currbox
%<latexrelease|fltrace|flafter> \penalty\interlinepenalty
%<latexrelease|fltrace|flafter> \vskip\intextsep
-%<latexrelease|fltrace|flafter> \ifnum\outputpenalty
+%<latexrelease|fltrace|flafter> \ifnum\outputpenalty
%<latexrelease|fltrace|flafter> <-\@Mii \vskip
%<latexrelease|fltrace|flafter> -\parskip\fi
% \end{macrocode}
@@ -3278,14 +3278,14 @@
%<latexrelease|fltrace|flafter> \fl@trace{Fail: colnum = \the \@colnum:
%<latexrelease|fltrace|flafter> fpstype \the \@fpstype=ORD?}%
%<latexrelease|fltrace|flafter> \ifnum \@fpstype<\sixt@@n
-%<latexrelease|fltrace|flafter> \fl@trace{ERROR: BANG float not successful
+%<latexrelease|fltrace|flafter> \fl@trace{ERROR: BANG float not successful
%<latexrelease|fltrace|flafter> (addtocurcol)}%
%<latexrelease|fltrace|flafter> \fi
%</trace>
%<latexrelease|fltrace|flafter> \fi
%<*trace>
%<latexrelease|fltrace|flafter> \else
-%<latexrelease|fltrace|flafter> \fl@trace{Fail---no room: fl box ht:
+%<latexrelease|fltrace|flafter> \fl@trace{Fail---no room: fl box ht:
%<latexrelease|fltrace|flafter> \the \ht \@currbox (addtocurcol)}%
%</trace>
%<latexrelease|fltrace|flafter> \fi
@@ -3485,7 +3485,7 @@
%<*trace>
%<latexrelease|fltrace> \fl@trace{End of addtonextcol --
%<latexrelease|fltrace> locally counts:}%
-%<latexrelease|fltrace> \fl@trace{col: \the \@colnum.
+%<latexrelease|fltrace> \fl@trace{col: \the \@colnum.
%<latexrelease|fltrace> top: \the \@topnum. bot: \the \@botnum.}%
%</trace>
%<latexrelease|fltrace> \endgroup
@@ -4410,7 +4410,7 @@
\advance \@reqcolroom
\ifx #2\@empty \textfloatsep \else \floatsep \fi
%<*trace>
- \fl@trace{colroom = \the \@colroom
+ \fl@trace{colroom = \the \@colroom
(flcheckspace \string#1 \string#2)}%
\fl@trace{reqcolroom = \the \@reqcolroom
(flcheckspace \string#1 \string#2)}%
diff --git a/Master/texmf-dist/source/latex/base/ltpage.dtx b/Master/texmf-dist/source/latex/base/ltpage.dtx
index c5ce52b1c65..f926f330605 100644
--- a/Master/texmf-dist/source/latex/base/ltpage.dtx
+++ b/Master/texmf-dist/source/latex/base/ltpage.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -183,7 +183,7 @@
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\markboth}{Make commands robust}%
% \end{macrocode}
-%
+%
% \begin{macro}{\markboth}
% \begin{macro}{\markright}
% \changes{v1.0d}{1994/05/20}{Changed setting for \cs{protect}.}
@@ -211,7 +211,7 @@
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareRobustCommand\markright[1]{%
\begingroup
diff --git a/Master/texmf-dist/source/latex/base/ltpageno.dtx b/Master/texmf-dist/source/latex/base/ltpageno.dtx
index f6b10985b81..6374f58b89a 100644
--- a/Master/texmf-dist/source/latex/base/ltpageno.dtx
+++ b/Master/texmf-dist/source/latex/base/ltpageno.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltpar.dtx b/Master/texmf-dist/source/latex/base/ltpar.dtx
index 75b4894eb1d..ed1b439e9da 100644
--- a/Master/texmf-dist/source/latex/base/ltpar.dtx
+++ b/Master/texmf-dist/source/latex/base/ltpar.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltpictur.dtx b/Master/texmf-dist/source/latex/base/ltpictur.dtx
index ad82cd477f3..9440fc783ad 100644
--- a/Master/texmf-dist/source/latex/base/ltpictur.dtx
+++ b/Master/texmf-dist/source/latex/base/ltpictur.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -1141,7 +1141,7 @@
% \changes{v1.1l}{2016/03/29}{macro added (latex/4452)}
% Tests whether horizontal or vertical lines are needed.
% \begin{macrocode}
-\newif\if@ovvline \@ovvlinetrue
+\newif\if@ovvline \@ovvlinetrue
\newif\if@ovhline \@ovhlinetrue
% \end{macrocode}
% \end{macro}
@@ -1250,7 +1250,7 @@
%<latexrelease> \@circlefnt \setbox\@tempboxa
%<latexrelease> \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
%<latexrelease> \if@ovl
-%<latexrelease> \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx
+%<latexrelease> \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx
%<latexrelease> \fi
%<latexrelease> \if@ovt \@ovhorz \kern -\@ovxx \fi
%<latexrelease> \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
@@ -1547,7 +1547,7 @@
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\bezier}{Make commands robust}%
-\MakeRobust\bezier
+\MakeRobust\bezier
\MakeRobust\circle
\MakeRobust\dashbox
\MakeRobust\line
@@ -1555,7 +1555,7 @@
\MakeRobust\multiput
\MakeRobust\oval
\MakeRobust\put
-\MakeRobust\qbezier
+\MakeRobust\qbezier
\MakeRobust\shortstack
\MakeRobust\thinlines
\MakeRobust\vector
@@ -1564,7 +1564,7 @@
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\bezier}{Make commands robust}%
%<latexrelease>
-%<latexrelease>\kernel@make@fragile\bezier
+%<latexrelease>\kernel@make@fragile\bezier
%<latexrelease>\kernel@make@fragile\circle
%<latexrelease>\kernel@make@fragile\dashbox
%<latexrelease>\kernel@make@fragile\line
@@ -1572,7 +1572,7 @@
%<latexrelease>\kernel@make@fragile\multiput
%<latexrelease>\kernel@make@fragile\oval
%<latexrelease>\kernel@make@fragile\put
-%<latexrelease>\kernel@make@fragile\qbezier
+%<latexrelease>\kernel@make@fragile\qbezier
%<latexrelease>\kernel@make@fragile\shortstack
%<latexrelease>\kernel@make@fragile\thinlines
%<latexrelease>\kernel@make@fragile\vector
diff --git a/Master/texmf-dist/source/latex/base/ltplain.dtx b/Master/texmf-dist/source/latex/base/ltplain.dtx
index 2337133f2f9..06602780664 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 (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -378,7 +378,7 @@
\ifx\directlua\@undefined
\def\newwrite {\e@alloc\write \chardef{\count17}\m@ne\sixt@@n}
\else
- \def\newwrite {\e@alloc\write
+ \def\newwrite {\e@alloc\write
{\ifnum\allocationnumber=18
\advance\count17\@ne
\allocationnumber\count17 %
@@ -542,7 +542,7 @@
% \begin{macrocode}
\def\e@alloc#1#2#3#4#5#6{%
\global\advance#3\@ne
- \e@ch@ck{#3}{#4}{#5}#1%
+ \e@ch@ck{#3}{#4}{#5}#1%
\allocationnumber#3\relax
\global#2#6\allocationnumber
\wlog{\string#6=\string#1\the\allocationnumber}}%
diff --git a/Master/texmf-dist/source/latex/base/ltsect.dtx b/Master/texmf-dist/source/latex/base/ltsect.dtx
index 239d4c547fd..9ccd042fb4e 100644
--- a/Master/texmf-dist/source/latex/base/ltsect.dtx
+++ b/Master/texmf-dist/source/latex/base/ltsect.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -116,14 +116,14 @@
% using the information previously saved with the other commands.
%
%
-%
+%
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\title}{Make commands robust}%
% \end{macrocode}
-%
+%
%
% \begin{macro}{\title}
% \changes{LaTeX2e}{1993/12/11}{Added default}
@@ -191,7 +191,7 @@
% \end{macrocode}
%
%
-%
+%
% \begin{macro}{\@title}
% \begin{macrocode}
\def\@title{\@latex@error{No \noexpand\title given}\@ehc}
@@ -784,7 +784,7 @@
\def\addcontentsline#1#2#3{%
\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}%
% \end{macrocode}
-% We add \cs{protected@file@percent} at the end which is turned om
+% We add \cs{protected@file@percent} at the end which is turned inside
% \cs{@writefile} into a percent character to mask the newline after
% the closing argument brace.
% \begin{macrocode}
@@ -923,7 +923,7 @@
% \begin{macro}{\noprotrusion}
% This command, if placed directly to the right (or left) of a
-% word, will prevent prevent protrusion of that word into the
+% word, will prevent protrusion of that word into the
% margin. It is used in the toc entry lines as they shouldn't
% protrude. It is implemented as to kerns that cancel each other
% but being there hide the word so that protrusion is not
@@ -934,7 +934,7 @@
% \end{macrocode}
% \end{macro}
%
-%
+%
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
diff --git a/Master/texmf-dist/source/latex/base/ltspace.dtx b/Master/texmf-dist/source/latex/base/ltspace.dtx
index d840b13bbbe..16d7dcb43aa 100644
--- a/Master/texmf-dist/source/latex/base/ltspace.dtx
+++ b/Master/texmf-dist/source/latex/base/ltspace.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltspace.dtx}
- [2019/08/27 v1.3j LaTeX Kernel (spacing)]
+ [2019/11/02 v1.3k LaTeX Kernel (spacing)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltspace.dtx}
@@ -275,7 +275,7 @@
%<*2ekernel>
\message{spacing,}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
@@ -393,15 +393,38 @@
% so now it is explicitly robust, like |\\|.
% \begin{macro}{\@normalcr}
% The internal definition of the `normal' definition of |\\|.
+% \changes{v1.3k}{2019/11/02}{Make also \cs{@normalcr} robust}
% \begin{macrocode}
-\DeclareRobustCommand\\{%
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\@normalcr}{Make robust}%
+\protected\def\@normalcr{%
\let \reserved@e \relax
\let \reserved@f \relax
\@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak
\@xnewline}%
- \@xnewline}
-\expandafter\let\expandafter\@normalcr
- \csname\expandafter\@gobble\string\\ \endcsname
+ \@xnewline}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\\\@normalcr
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@normalcr}{Make robust}%
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\\{%
+%<latexrelease> \let \reserved@e \relax
+%<latexrelease> \let \reserved@f \relax
+%<latexrelease> \@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak
+%<latexrelease> \@xnewline}%
+%<latexrelease> \@xnewline}
+%<latexrelease>\expandafter\let\expandafter\@normalcr
+%<latexrelease> \csname\expandafter\@gobble\string\\ \endcsname
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -598,7 +621,7 @@
% \changes{v1.3f}{2015/11/07}
% {Only space if there is no space at the end of the hlist latex/4443}
% \begin{macrocode}
- \ifdim\lastskip=\z@
+ \ifdim\lastskip=\z@
\nobreak \hskip\z@skip
\fi
\ignorespaces
@@ -624,7 +647,7 @@
%<latexrelease> \ifhmode
%<latexrelease> \spacefactor\@savsf
%<latexrelease> \ifdim\@savsk>\z@
-%<latexrelease> \ifdim\lastskip=\z@
+%<latexrelease> \ifdim\lastskip=\z@
%<latexrelease> \nobreak \hskip\z@skip
%<latexrelease> \fi
%<latexrelease> \ignorespaces
@@ -1153,7 +1176,7 @@
% \end{macrocode}
% \end{macro}
%
-%
+%
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
@@ -1165,7 +1188,7 @@
% \begin{macro}{\thinspace}
% \begin{macro}{\negthinspace}
% \begin{macro}{\enspace}
-% \changes{v1.3h}{2018/09/24}{Start LR-mode if necessary (git/49)}
+% \changes{v1.3h}{2018/09/24}{Start LR-mode if necessary (git/49)}
% \begin{macrocode}
\DeclareRobustCommand\thinspace{\leavevmode@ifvmode\kern .16667em }
\DeclareRobustCommand\negthinspace{\leavevmode@ifvmode\kern-.16667em }
@@ -1178,7 +1201,7 @@
% \begin{macro}{\leavevmode@ifvmode}
% Leave vmode but only if we are really in vmode, otherwise the
% expansion is empty (which is not the case with the default definition).
-% \changes{v1.3h}{2018/09/24}{Macro added (git/49)}
+% \changes{v1.3h}{2018/09/24}{Macro added (git/49)}
% \begin{macrocode}
\protected\def\leavevmode@ifvmode{\ifvmode\expandafter\indent\fi}
% \end{macrocode}
@@ -1234,4 +1257,3 @@
%
% \Finale
\endinput
-
diff --git a/Master/texmf-dist/source/latex/base/lttab.dtx b/Master/texmf-dist/source/latex/base/lttab.dtx
index aa2a00390fc..47cf4a66184 100644
--- a/Master/texmf-dist/source/latex/base/lttab.dtx
+++ b/Master/texmf-dist/source/latex/base/lttab.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -608,7 +608,7 @@
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\pushtabs}{Make commands robust}%
% \end{macrocode}
-%
+%
% \begin{macro}{\pushtabs}
% \begin{macrocode}
\DeclareRobustCommand\pushtabs{%
@@ -658,7 +658,7 @@
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
-%
+%
% \begin{macro}{\tabbingsep}
% \begin{macrocode}
\newdimen\tabbingsep
diff --git a/Master/texmf-dist/source/latex/base/lttextcomp.dtx b/Master/texmf-dist/source/latex/base/lttextcomp.dtx
new file mode 100644
index 00000000000..eca72e4d28c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/base/lttextcomp.dtx
@@ -0,0 +1,2214 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2019-2020
+% 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
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 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
+% \iffalse
+%
+%<*driver>
+% \fi
+%
+%
+\ProvidesFile{lttextcomp.dtx}
+ [2020/01/25 v1.0b LaTeX Kernel (text companion symbols)]
+% \iffalse
+\documentclass{ltxdoc}
+\begin{document}
+\DocInput{lttextcomp.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+%
+%
+%
+% \GetFileInfo{lttextcomp.dtx}
+% \title{Providing addtional text symbols\\
+% (previously available through the \texttt{textcomp} package)\thanks
+% {This file has version number
+% \fileversion\ dated \filedate}}
+%
+% \author{Frank Mittelbach}
+%
+% \MaintainedByLaTeXTeam{latex}
+% \maketitle
+%
+% This file contains the implementation for accessing the glyphs
+% provided by the \texttt{TS1} encoding (Text Companion
+% Encoding). This is now offered as part of the kernel and so the
+% \texttt{textcomp} package which used to provide the definitions is
+% now mainly needed for compatibility reasons (and doesn't do much any
+% more).
+%
+%
+%
+% \StopEventually{}
+%
+%
+% \begin{macro}{\oldstylenums}
+% \begin{macro}{\legacyoldstylenums}
+%
+%
+% Preserve the old definition of \cs{oldstylenums} under a different name.
+%
+% This macro implements old style numerals but only works if we
+% assume that the standard math fonts are used. Thus it needs
+% changing in case other math encodings are used.
+% \begin{macrocode}
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\oldstylenums}{Old style numerals}%
+\DeclareRobustCommand\legacyoldstylenums[1]{%
+ \begingroup
+% \end{macrocode}
+% Provide spacing using the interword space of the current font.
+% \begin{macrocode}
+ \spaceskip\fontdimen\tw@\font
+% \end{macrocode}
+% Then switch to the math italic font. We don't change the current
+% value of |\f@series| which means that you can use bold numerals
+% if |\bfseries| is in force. As family we use |\rmdefault| which
+% means that this only works if there exist an |OML| encoded
+% version of that font or rather a corresponding |.fd| file (which
+% is the case for standard \LaTeX{} fonts even though they only
+% contain substitutions).
+% \changes{v3.0j}{1999/02/12}{Use \cs{rmdefault} instead of \texttt{cmm}
+% (pr/2954)}
+% \begin{macrocode}
+ \usefont{OML}{\rmdefault}{\f@series}{it}%
+ \mathgroup\symletters #1%
+ \endgroup
+}
+% \end{macrocode}
+%
+% And here is the improved one that adjusts depending on surroundings.
+% \begin{macrocode}
+\DeclareRobustCommand\oldstylenums[1]{%
+ \begingroup
+ \ifmmode
+ \mathgroup\symletters #1%
+ \else
+% \end{macrocode}
+% The \cs{CheckEncodingSubset} is discused below.
+% \begin{macrocode}
+ \CheckEncodingSubset\@use@text@encoding{TS1}\tc@oldstylesubst2{{#1}}%
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% The helper to select the substitution if needed.
+% \begin{macrocode}
+\def\tc@oldstylesubst#1{%
+ \tc@errorwarn
+ {Oldstyle digits unavailable for
+ family \f@family.\MessageBreak
+ Default oldstyle digits used instead}\@eha
+ \bgroup
+ \expand@font@defaults
+% \end{macrocode}
+% The substitution defaults are provided in the file \texttt{fonttext.ltx}.
+% \begin{macrocode}
+ \ifx\f@family\rmdef@ult
+ \fontfamily\rmsubstdefault
+ \else\ifx\f@family\sfdef@ult
+ \fontfamily\sfsubstdefault
+ \else\ifx\f@family\ttdef@ult
+ \fontfamily\ttsubstdefault
+ \else
+ \fontfamily\textcompsubstdefault
+ \fi\fi\fi
+ \fontencoding{TS1}\selectfont#1%
+ \egroup
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\textcompsubstdefault}
+% Here is the default for the ``unknown'' case:
+% \begin{macrocode}
+\def\textcompsubstdefault{\rmsubstdefault}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\oldstylenums}{Old style numerals}%
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\oldstylenums[1]{%
+%<latexrelease> \begingroup
+%<latexrelease> \spaceskip\fontdimen\tw@\font
+%<latexrelease> \usefont{OML}{\rmdefault}{\f@series}{it}%
+%<latexrelease> \mathgroup\symletters #1%
+%<latexrelease> \endgroup
+%<latexrelease>}
+%<latexrelease>\let\legacyoldstylenums\@undefined
+%<latexrelease>\def\textcompsubstdefault{cmr}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+%
+
+
+
+
+
+% Everything else in the this file got introduced 2020/02/02, so we do a
+% single rollback (for now).
+% \begin{macrocode}
+%<*2ekernel>
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\DeclareEncodingSubset}{Text companion symbols}%
+% \end{macrocode}
+%
+%
+%
+% \begin{macro}{\DeclareEncodingSubset}
+%
+% The declaration takes 3 mandatory arguments: an \emph{encoding}
+% for which a subsetting is wanted (currently always \texttt{TS1},
+% and most likely forever), the \emph{font family} for which we
+% declare the subset and finally the \emph{subset} number (between \texttt{0} (all
+% of the encoding is supported) and \texttt{9} many glyphs are missing.
+%
+% For \texttt{TS1} the numbers have been choosen in a way that most
+% fonts can be fairly correctly categorized, but the default
+% settings are always conservative, that is they may claim that
+% less glyphs are supported than there actually are.
+%
+% As these days many font families are set up to end in \texttt{-LF}
+% (lining figures), \texttt{-OsF} (oldstyle figures), etc.\ the
+% declaration supports a shortcut: if the \emph{font family} name
+% ends in \texttt{-*} then the star gets replaced by these common
+% ending, e.g.,
+%\begin{verbatim}
+% \DeclareEncodingSubset{TS1}{Alegreya-*}{2}
+%\end{verbatim}
+% is the same as writing
+%\begin{verbatim}
+% \DeclareEncodingSubset{TS1}{Alegreya-LF}{2}
+% \DeclareEncodingSubset{TS1}{Alegreya-OsF}{2}
+% \DeclareEncodingSubset{TS1}{Alegreya-TLF}{2}
+% \DeclareEncodingSubset{TS1}{Alegreya-TOsF}{2}
+%\end{verbatim}
+% If only some are needed then one can define them individually but
+% in many cases all four are wanted, hence the shortcut.
+%
+%
+% The coding of the declaration has no error checking as it is
+% mostly for internal use.
+% \begin{macrocode}
+\def\DeclareEncodingSubset#1#2{%
+ \DeclareEncodingSubset@aux{#1}#2*\DeclareEncodingSubset@aux
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\DeclareEncodingSubset@aux#1#2*#3\DeclareEncodingSubset@aux#4{%
+% \end{macrocode}
+% if \verb=#3= is empty then there was no star, otherwise we
+% define all four variants.
+% \begin{macrocode}
+ \expandafter\ifx\expandafter X\detokenize{#3}X%
+ \@DeclareEncodingSubset{#1}{#2}{#4}%
+ \else
+ \@DeclareEncodingSubset{#1}{#2LF}{#4}%
+ \@DeclareEncodingSubset{#1}{#2TLF}{#4}%
+ \@DeclareEncodingSubset{#1}{#2OsF}{#4}%
+ \@DeclareEncodingSubset{#1}{#2TOsF}{#4}%
+ \fi
+}
+% \end{macrocode}
+%
+% The subset info is stored in a command with the name
+% \texttt{\bslash}\emph{family}\texttt{:}\emph{subset} so if that
+% already exists we change otherwise declare a subset.
+% \begin{macrocode}
+\def\@DeclareEncodingSubset#1#2#3{%
+ \@ifundefined{#1:#2}%
+ {\@font@info{Setting #2 sub-encoding to #1/#3}}%
+ {\@font@info{Changing #2 sub-encoding to #1/#3}}%
+ \@namedef{#1:#2}{#3}}
+% \end{macrocode}
+%
+% Any reason to allow those in the middle of documents?
+% \begin{macrocode}
+\@onlypreamble\DeclareEncodingSubset
+\@onlypreamble\DeclareEncodingSubset@aux
+\@onlypreamble\@DeclareEncodingSubset
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\CheckEncodingSubset}
+% The command |\CheckEncodingSubset| will check if the current font
+% family has the right encoding subset to typeset a certain
+% command. It takes five arguments as follows:
+% first argument is either |\UseTextSymbol|, |\UseTextAccent|
+% depending on whether or not the symbol is a text symbol or a text
+% accent.
+
+% The second argument is the encoding from which this symbol should
+% be fetched.
+%
+% The third argument is either a fake accessor command or an error
+% message. the code in that argument (if ever executed) receives
+% two arguments: |#2| and |#5| of |\CheckEncodingSubset|.
+%
+% Argument four is the subset encoding id to test against: if this
+% value is higher than the subset id of the current font family
+% then we typeset the symbol, i.e., execute |#1{#2}#5| otherwise
+% it runs |#3#5|, e.g., to produce an error message or fake the
+% glyph somehow.
+%
+% Argument five is the symbol or accent command that is being
+% checked.
+%
+% For usage examples see definitions below.
+%
+% \begin{macrocode}
+\def\CheckEncodingSubset#1#2#3#4#5{%
+ \ifnum #4>%
+ \expandafter\ifx\csname #2:\f@family\endcsname\relax
+ 0\csname #2:?\endcsname
+ \else
+ \csname #2:\f@family\endcsname
+ \fi
+ \relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {#1{#2}}{#3}%
+ #5%
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+
+
+% To set up the glyphs for the subsets we need a number helpers.
+%
+% \begin{macro}{\tc@errorwarn}
+% To we produce errors, warnings, or only info in the transcripts
+% if glyphs require substitutions? By default it is ``info''
+% only. With the \texttt{textcomp} package that can be changed.
+% \begin{macrocode}
+\def\tc@errorwarn#1#2{\@latex@info{#1}}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\tc@subst}
+%
+% \changes{v1.0b}{2020/01/22}{The overall default is \cs{textcompsubstdefault}
+% not \cs{substdefault}}
+% \begin{macrocode}
+\def\tc@subst#1{%
+ \tc@errorwarn
+ {Symbol \string#1 not provided by\MessageBreak
+ font family \f@family\space
+ in TS1 encoding.\MessageBreak Default family used instead}\@eha
+ \bgroup
+ \expand@font@defaults
+ \ifx\f@family\rmdef@ult
+ \fontfamily\rmsubstdefault
+ \else\ifx\f@family\sfdef@ult
+ \fontfamily\sfsubstdefault
+ \else\ifx\f@family\ttdef@ult
+ \fontfamily\ttsubstdefault
+ \else
+ \fontfamily\textcompsubstdefault
+ \fi\fi\fi
+% \end{macrocode}
+% Whatever default was chosen, we claim now (locally hopefully)
+% that it can handle all slots (even if not true) to avoid looping
+% in certain situations, e.g., when something was set up incorrectly.
+% \begin{macrocode}
+ \@namedef{TS1:\f@family}{0}%
+ \selectfont#1%
+ \egroup
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+
+% \begin{macro}{\tc@fake@euro}
+% |\tc@fake@euro| is an example of a ``fake'' definition to use in arg |#3| of
+% |\CheckEncodingSubset| when a symbol is not available in a
+% certain font family. Here we produce a poor man's Euro symbol by combining
+% a ``C'' with a ``=''.
+% \begin{macrocode}
+\def\tc@fake@euro#1{%
+ \leavevmode
+ \@font@info{Faking \noexpand#1for font family
+ \f@family\MessageBreak in TS1 encoding}%
+ \valign{##\cr
+ \vfil\hbox to 0.07em{\dimen@\f@size\p@
+ \math@fontsfalse
+ \fontsize{.7\dimen@}\z@\selectfont=\hss}%
+ \vfil\cr%
+ \hbox{C}\crcr
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+
+% \begin{macro}{\tc@check@symbol}
+% \begin{macro}{\tc@check@accent}
+% These are two abbreviations that we use below to check symbols
+% and accents in TS1. Only there to save some space, e.g., we can
+% then write
+%\begin{verbatim}
+%\DeclareTextCommandDefault{\textcurrency}{\tc@check@symbol3\textcurrency}
+%\end{verbatim}
+% to ensure that |\textcurrency| is only typeset if the current
+% font has a \texttt{TS1} subset id of less than 3. Otherwise
+% |\tc@error| is called telling the user that for this font family
+% |\textcurreny| is not available.
+% \begin{macrocode}
+\def\tc@check@symbol{\CheckEncodingSubset\UseTextSymbol{TS1}\tc@subst}
+% \end{macrocode}
+%
+% Accents and been mad an error in the \texttt{textcomp} package when
+% not available. Now that we provide the functionality in the
+% kernel we avoid the eror by swapping in a \texttt{T1} accent if
+% the \texttt{TS1} accent is not available.
+% \begin{macrocode}
+%\def\tc@check@accent{\CheckEncodingSubset\UseTextAccent{TS1}\tc@error}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\tc@check@accent#1{\CheckEncodingSubset\UseTextAccent{TS1}{\tc@swap@accent#1}}
+\def\tc@swap@accent#1#2{\UseTextAccent{T1}#1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+
+% \section{Sub-encodings}
+%
+% Here are the default definitions for the \texttt{TS1} symbols.
+% First those that we assume are always available if a font
+% implements \texttt{TS1}.
+%
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textdollar}{TS1}
+\UndeclareTextCommand{\textdollar} {OT1} % don't use the OT1 def any longer
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textsterling}{TS1}
+\UndeclareTextCommand{\textsterling}{OT1} % don't use the OT1 def any longer
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textperthousand}{TS1}
+\UndeclareTextCommand{\textperthousand}{T1} % don't use the T1 def
+% \end{macrocode}
+% Using \cs{UndeclareTextCommand} above is enough only if the
+% encoding definition files are not reloaded afterwards. In the
+% past that happened if \texttt{fontenc} was used in the document
+% preamble (not not any longer). So in some sense it is better to fully remove
+% them from the encoding files, but for rollbacks it is easier to
+% keep them in for now.
+%
+% These are the standard \texttt{itemize} and footnote symbols
+% originally taken from \texttt{OMS} and now from \texttt{TS1}:
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textasteriskcentered}{TS1}
+\DeclareTextSymbolDefault{\textbullet}{TS1}
+\DeclareTextSymbolDefault{\textdaggerdbl}{TS1}
+\DeclareTextSymbolDefault{\textdagger}{TS1}
+\DeclareTextSymbolDefault{\textparagraph}{TS1}
+\DeclareTextSymbolDefault{\textperiodcentered}{TS1}
+\DeclareTextSymbolDefault{\textsection}{TS1}
+% \end{macrocode}
+%
+% And here are the other \texttt{TS1} glyphs that are implemented
+% by every font (or nearly everyone---a few are commented out and
+% moved to sub-encoding 9,
+% because they aren't around in one or two fonts.
+% \begin{macrocode}
+%%\DeclareTextSymbolDefault{\textbardbl}{TS1} % subst in sub-enc 9 above
+\DeclareTextSymbolDefault{\textbrokenbar}{TS1}
+%%\DeclareTextSymbolDefault{\textcelsius}{TS1} % subst in sub-enc 9 above
+\DeclareTextSymbolDefault{\textcent}{TS1}
+\DeclareTextSymbolDefault{\textcopyright}{TS1}
+\DeclareTextSymbolDefault{\textdegree}{TS1}
+\DeclareTextSymbolDefault{\textdiv}{TS1}
+\DeclareTextSymbolDefault{\textlnot}{TS1}
+\DeclareTextSymbolDefault{\textonehalf}{TS1}
+\DeclareTextSymbolDefault{\textonequarter}{TS1}
+%%\DeclareTextSymbolDefault{\textonesuperior}{TS1} % subst in sub-enc 9 above
+\DeclareTextSymbolDefault{\textordfeminine}{TS1}
+\DeclareTextSymbolDefault{\textordmasculine}{TS1}
+\DeclareTextSymbolDefault{\textpm}{TS1}
+\DeclareTextSymbolDefault{\textquotesingle}{TS1}
+\DeclareTextSymbolDefault{\textquotestraightbase}{TS1}
+\DeclareTextSymbolDefault{\textquotestraightdblbase}{TS1}
+\DeclareTextSymbolDefault{\textregistered}{TS1}
+%%\DeclareTextSymbolDefault{\textthreequartersemdash}{TS1} % subst in sub-enc 9 above
+\DeclareTextSymbolDefault{\textthreequarters}{TS1}
+%%\DeclareTextSymbolDefault{\textthreesuperior}{TS1} % subst in sub-enc 9 above
+\DeclareTextSymbolDefault{\texttimes}{TS1}
+\DeclareTextSymbolDefault{\texttrademark}{TS1}
+%%\DeclareTextSymbolDefault{\texttwelveudash}{TS1} % subst in sub-enc 9 above
+%%\DeclareTextSymbolDefault{\texttwosuperior}{TS1} % subst in sub-enc 9 above
+\DeclareTextSymbolDefault{\textyen}{TS1}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textcapitalcompwordmark}{TS1}
+\DeclareTextSymbolDefault{\textascendercompwordmark}{TS1}
+% \end{macrocode}
+%
+%
+% In the following sections the remaining default definitions are ordered by
+% sub-encoding in which they are become unavailable (i.e., they are
+% not provided in the sub-encoding with that number and all
+% sub-encodings with higher numbers.
+%
+% Thus the symbols that are available in sub-encoding $x$ are the
+% symbols above (always available) and the symbols list in the
+% sections for sub-encodings $x+1$ and higher.
+%
+% \subsection{Sub-encoding \texttt{1} (drop symbols not working in
+% Latin Modern)}
+%
+% The \cs{textcircled} is available but the glyph is simply too
+% small so we keep using the \texttt{OMS} glyph.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textcircled}
+ {\CheckEncodingSubset\UseTextAccent{TS1}{\UseTextAccent{OMS}}1\textcircled}
+% \end{macrocode}
+%
+%
+%
+%
+%
+% \subsection{Sub-encoding \texttt{2} (majority of new OTF fonts via autoinst)}
+%
+% \begin{macrocode}
+\DeclareTextCommandDefault{\t}
+ {\CheckEncodingSubset\UseTextAccent{TS1}{\UseTextAccent{OML}}2\t}
+% \end{macrocode}
+%
+% Capital accents are really only very seldom implemented, so from
+% sub-encoding \texttt{2} onwards we use the normal \texttt{T1}
+% accents if they are asked for in the document.
+%
+% In Unicode engines we don't implement them at all but always use
+% the basic accents instead. whether that works or not really
+% depends on the font, something like \verb=\"X= usually comes out
+% wrong in Unicode engines.
+%
+% \begin{macrocode}
+\ifx\Umathcode\@undefined
+ \DeclareTextCommandDefault{\capitalacute} {\tc@check@accent{\'}2\capitalacute}
+ \DeclareTextCommandDefault{\capitalbreve} {\tc@check@accent{\u}2\capitalbreve}
+ \DeclareTextCommandDefault{\capitalcaron} {\tc@check@accent{\v}2\capitalcaron}
+ \DeclareTextCommandDefault{\capitalcedilla} {\tc@check@accent{\c}2\capitalcedilla}
+ \DeclareTextCommandDefault{\capitalcircumflex} {\tc@check@accent{\^}2\capitalcircumflex}
+ \DeclareTextCommandDefault{\capitaldieresis} {\tc@check@accent{\"}2\capitaldieresis}
+ \DeclareTextCommandDefault{\capitaldotaccent} {\tc@check@accent{\.}2\capitaldotaccent}
+ \DeclareTextCommandDefault{\capitalgrave} {\tc@check@accent{\`}2\capitalgrave}
+ \DeclareTextCommandDefault{\capitalhungarumlaut}{\tc@check@accent{\H}2\capitalhungarumlaut}
+ \DeclareTextCommandDefault{\capitalmacron} {\tc@check@accent{\=}2\capitalmacron}
+ \DeclareTextCommandDefault{\capitalogonek} {\tc@check@accent{\k}2\capitalogonek}
+ \DeclareTextCommandDefault{\capitalring} {\tc@check@accent{\r}2\capitalring}
+ \DeclareTextCommandDefault{\capitaltie} {\tc@check@accent{\t}2\capitaltie}
+ \DeclareTextCommandDefault{\capitaltilde} {\tc@check@accent{\~}2\capitaltilde}
+% \end{macrocode}
+% For \cs{newtie} and \cs{capitalnewtie} this is actually wrong, they should pick up
+% the accent from the substitution font (not done yet).
+% \begin{macrocode}
+ \DeclareTextCommandDefault{\newtie} {\tc@check@accent{\t}2\newtie}
+ \DeclareTextCommandDefault{\capitalnewtie} {\tc@check@accent{\t}2\capitalnewtie}
+% \end{macrocode}
+%
+% In Unicode engines we just execute the simple accents:
+% \begin{macrocode}
+\else
+ \def\capitalacute{\'}
+ \def\capitalbreve{\u}
+ \def\capitalcaron{\v}
+ \def\capitalcedilla{\c}
+ \def\capitalcircumflex{\^}
+ \def\capitaldieresis{\"}
+ \def\capitaldotaccent{\.}
+ \def\capitalgrave{\`}
+ \def\capitalhungarumlaut{\H}
+ \def\capitalmacron{\=}
+ \def\capitalnewtie{\t}
+ \def\capitalogonek{\k}
+ \def\capitalring{\r}
+ \def\capitaltie{\t}
+ \def\capitaltilde{\~}
+ \def\newtie{\t}
+\fi
+% \end{macrocode}
+%
+%
+%
+%
+% The next two symbols exist in some fonts (faked?), but we ignore
+% that to keep the subsets reasonable compact and most important linear.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textlbrackdbl} {\tc@check@symbol2\textlbrackdbl}
+\DeclareTextCommandDefault{\textrbrackdbl} {\tc@check@symbol2\textrbrackdbl}
+% \end{macrocode}
+%
+%
+% Old style numerals are again in some fonts but using
+% \texttt{-OsF}, etc.\ is the better approach to get them, so we
+% claim they aren't in sub-encoding 2 as that's true for most
+% fonts.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\texteightoldstyle} {\tc@check@symbol2\texteightoldstyle}
+\DeclareTextCommandDefault{\textfiveoldstyle} {\tc@check@symbol2\textfiveoldstyle}
+\DeclareTextCommandDefault{\textfouroldstyle} {\tc@check@symbol2\textfouroldstyle}
+\DeclareTextCommandDefault{\textnineoldstyle} {\tc@check@symbol2\textnineoldstyle}
+\DeclareTextCommandDefault{\textoneoldstyle} {\tc@check@symbol2\textoneoldstyle}
+\DeclareTextCommandDefault{\textsevenoldstyle} {\tc@check@symbol2\textsevenoldstyle}
+\DeclareTextCommandDefault{\textsixoldstyle} {\tc@check@symbol2\textsixoldstyle}
+\DeclareTextCommandDefault{\textthreeoldstyle} {\tc@check@symbol2\textthreeoldstyle}
+\DeclareTextCommandDefault{\texttwooldstyle} {\tc@check@symbol2\texttwooldstyle}
+\DeclareTextCommandDefault{\textzerooldstyle} {\tc@check@symbol2\textzerooldstyle}
+% \end{macrocode}
+%
+%
+%
+% The next set of glyphs is special to TeX fonts (and available
+% with a few older PS fonts supported in the virtual fonts), but
+% not any longer in the majority of fonts provided through
+% autoinst, so we pretend there aren't available in sub-encoding 2
+% and below.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textacutedbl} {\tc@check@symbol2\textacutedbl}
+\DeclareTextCommandDefault{\textasciiacute} {\tc@check@symbol2\textasciiacute}
+\DeclareTextCommandDefault{\textasciibreve} {\tc@check@symbol2\textasciibreve}
+\DeclareTextCommandDefault{\textasciicaron} {\tc@check@symbol2\textasciicaron}
+\DeclareTextCommandDefault{\textasciidieresis} {\tc@check@symbol2\textasciidieresis}
+\DeclareTextCommandDefault{\textasciigrave} {\tc@check@symbol2\textasciigrave}
+\DeclareTextCommandDefault{\textasciimacron} {\tc@check@symbol2\textasciimacron}
+\DeclareTextCommandDefault{\textgravedbl} {\tc@check@symbol2\textgravedbl}
+\DeclareTextCommandDefault{\texttildelow} {\tc@check@symbol2\texttildelow}
+% \end{macrocode}
+%
+%
+% Finally those below are only available in CM-based fonts but in
+% no font that has its origin outside of the \TeX{} world.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textbaht} {\tc@check@symbol2\textbaht}
+\DeclareTextCommandDefault{\textbigcircle} {\tc@check@symbol2\textbigcircle}
+\DeclareTextCommandDefault{\textborn} {\tc@check@symbol2\textborn}
+\DeclareTextCommandDefault{\textcentoldstyle} {\tc@check@symbol2\textcentoldstyle}
+\DeclareTextCommandDefault{\textcircledP} {\tc@check@symbol2\textcircledP}
+\DeclareTextCommandDefault{\textcopyleft} {\tc@check@symbol2\textcopyleft}
+\DeclareTextCommandDefault{\textdblhyphenchar} {\tc@check@symbol2\textdblhyphenchar}
+\DeclareTextCommandDefault{\textdblhyphen} {\tc@check@symbol2\textdblhyphen}
+\DeclareTextCommandDefault{\textdied} {\tc@check@symbol2\textdied}
+\DeclareTextCommandDefault{\textdiscount} {\tc@check@symbol2\textdiscount}
+\DeclareTextCommandDefault{\textdivorced} {\tc@check@symbol2\textdivorced}
+\DeclareTextCommandDefault{\textdollaroldstyle} {\tc@check@symbol2\textdollaroldstyle}
+\DeclareTextCommandDefault{\textguarani} {\tc@check@symbol2\textguarani}
+\DeclareTextCommandDefault{\textleaf} {\tc@check@symbol2\textleaf}
+\DeclareTextCommandDefault{\textlquill} {\tc@check@symbol2\textlquill}
+\DeclareTextCommandDefault{\textmarried} {\tc@check@symbol2\textmarried}
+\DeclareTextCommandDefault{\textmho} {\tc@check@symbol2\textmho}
+\DeclareTextCommandDefault{\textmusicalnote} {\tc@check@symbol2\textmusicalnote}
+\DeclareTextCommandDefault{\textnaira} {\tc@check@symbol2\textnaira}
+\DeclareTextCommandDefault{\textopenbullet} {\tc@check@symbol2\textopenbullet}
+\DeclareTextCommandDefault{\textpeso} {\tc@check@symbol2\textpeso}
+\DeclareTextCommandDefault{\textpilcrow} {\tc@check@symbol2\textpilcrow}
+\DeclareTextCommandDefault{\textrecipe} {\tc@check@symbol2\textrecipe}
+\DeclareTextCommandDefault{\textreferencemark} {\tc@check@symbol2\textreferencemark}
+\DeclareTextCommandDefault{\textrquill} {\tc@check@symbol2\textrquill}
+\DeclareTextCommandDefault{\textservicemark} {\tc@check@symbol2\textservicemark}
+\DeclareTextCommandDefault{\textsurd} {\tc@check@symbol2\textsurd}
+% \end{macrocode}
+%
+% The \cs{textpertenthousand} also belongs in this group but here
+% we have a choice: in T1 there is definition for
+% \cs{textpertenthousand} making the symbol up from \% and
+% \verb=\char 24= (twice) but in many fonts that char doesn't exist
+% and the slot is reused for random ligatures. So better not use it
+% because often it is wrong. But pointing to TS1 is also not great
+% as only a few fonts have it as a real symbol, so we get a
+% substitution to CM or LM.
+%
+% Alternatively we could just state that the symbol is unavailable in
+% those fonts. For now I substitute.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textpertenthousand} {\tc@check@symbol2\textpertenthousand}
+\UndeclareTextCommand{\textpertenthousand}{T1}
+% \end{macrocode}
+%
+%
+%
+% \subsection{Sub-encoding \texttt{3}}
+%
+% Sub-encoding \texttt{2} is the one where we loose many
+% symbols. In the higher-numbered sub-encodings we see only a few
+% dropped additionally.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textlangle} {\tc@check@symbol3\textlangle}
+\DeclareTextCommandDefault{\textrangle} {\tc@check@symbol3\textrangle}
+% \end{macrocode}
+%
+%
+%
+%
+%
+% \subsection{Sub-encoding \texttt{4}}
+%
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textcolonmonetary} {\tc@check@symbol4\textcolonmonetary}
+\DeclareTextCommandDefault{\textdong} {\tc@check@symbol4\textdong}
+\DeclareTextCommandDefault{\textdownarrow} {\tc@check@symbol4\textdownarrow}
+\DeclareTextCommandDefault{\textleftarrow} {\tc@check@symbol4\textleftarrow}
+\DeclareTextCommandDefault{\textlira} {\tc@check@symbol4\textlira}
+\DeclareTextCommandDefault{\textrightarrow} {\tc@check@symbol4\textrightarrow}
+\DeclareTextCommandDefault{\textuparrow} {\tc@check@symbol4\textuparrow}
+\DeclareTextCommandDefault{\textwon} {\tc@check@symbol4\textwon}
+% \end{macrocode}
+%
+%
+%
+%
+%
+% \subsection{Sub-encoding \texttt{5} (most older PS fonts)}
+%
+% Most older PS fonts (supported in \TeX{} since the early nineties
+% when virtual fonts became available) are sorted under this
+% sub-encoding. But in reality, many of them don't have all glpyhs
+% that should be available in sub-encoding \texttt{5}. Instead they
+% show little squares, i.e., they produce ``tofu'' if you are
+% unlucky.
+%
+% But the coverage is so random that it is impossible to sort them
+% properly and if we tried to ensure that they only typeset those
+% glyphs that are really always available wouput put them all into
+% sub-encoding \texttt{9} so that's a compromise really.
+%
+% Modern fonts that don't typeset a tofu character if a glyph is
+% missing are only cataloged as sub-encoding \texttt{5} if they
+% really support of its glyph set.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textestimated} {\tc@check@symbol5\textestimated}
+\DeclareTextCommandDefault{\textnumero} {\tc@check@symbol5\textnumero}
+% \end{macrocode}
+%
+%
+%
+%
+% \subsection{Sub-encoding \texttt{6}}
+%
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textflorin} {\tc@check@symbol6\textflorin}
+\DeclareTextCommandDefault{\textcurrency} {\tc@check@symbol6\textcurrency}
+% \end{macrocode}
+%
+%
+%
+% \subsection{Sub-encoding \texttt{7}}
+%
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textfractionsolidus}{\tc@check@symbol7\textfractionsolidus}
+\DeclareTextCommandDefault{\textohm} {\tc@check@symbol7\textohm}
+\DeclareTextCommandDefault{\textmu} {\tc@check@symbol7\textmu}
+\DeclareTextCommandDefault{\textminus} {\tc@check@symbol7\textminus}
+% \end{macrocode}
+%
+%
+%
+% \subsection{Sub-encoding \texttt{8}}
+%
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textblank} {\tc@check@symbol{8}\textblank}
+\DeclareTextCommandDefault{\textinterrobangdown}{\tc@check@symbol{8}\textinterrobangdown}
+\DeclareTextCommandDefault{\textinterrobang} {\tc@check@symbol{8}\textinterrobang}
+% \end{macrocode}
+%
+% Fonts with this sub-encoding don't have a Euro symbol, but
+% instead of substituting we fake it.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\texteuro}
+ {\CheckEncodingSubset\UseTextSymbol{TS1}\tc@fake@euro{8}\texteuro}
+% \end{macrocode}
+%
+%
+%
+%
+% \subsection{Sub-encoding \texttt{9} (most missing)}
+%
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textcelsius}{\tc@check@symbol{9}\textcelsius}
+\DeclareTextCommandDefault{\textonesuperior}{\tc@check@symbol{9}\textonesuperior}
+\DeclareTextCommandDefault{\textthreequartersemdash}{\tc@check@symbol{9}\textthreequartersemdash}
+\DeclareTextCommandDefault{\textthreesuperior}{\tc@check@symbol{9}\textthreesuperior}
+\DeclareTextCommandDefault{\texttwelveudash}{\tc@check@symbol{9}\texttwelveudash}
+\DeclareTextCommandDefault{\texttwosuperior}{\tc@check@symbol{9}\texttwosuperior}
+\DeclareTextCommandDefault{\textbardbl}{\tc@check@symbol{9}\textbardbl}
+% \end{macrocode}
+%
+%
+%
+%
+% \section{Unicode engine specials}
+%
+% If we are using a unicode engine we handle some glyphs differently,
+% so this here are the definitions for the Unicode encoding
+% (overwriting the defaults above).
+
+% \begin{macrocode}
+\ifx \Umathcode\@undefined \else
+% \end{macrocode}
+%
+% This set should be taken from \texttt{TS1} encoding even if it
+% means you get it from the default font for that encoding.
+% \begin{macrocode}
+%\DeclareTextSymbol{\textcopyleft}{TS1}{171}
+%\DeclareTextSymbol{\textdblhyphen}{TS1}{45}
+%\DeclareTextSymbol{\textdblhyphenchar}{TS1}{127}
+%\DeclareTextSymbol{\textquotestraightbase}{TS1}{13}
+%\DeclareTextSymbol{\textquotestraightdblbase}{TS1}{18}
+%\DeclareTextSymbol{\textleaf}{TS1}{108}
+%\DeclareTextSymbol{\texttwelveudash}{TS1}{21}
+%\DeclareTextSymbol{\textthreequartersemdash}{TS1}{22}
+% \end{macrocode}
+%
+% If oldstyle numerals are asked for we just use \cs{oldstylenums}.
+% \begin{macrocode}
+\DeclareTextCommand{\textzerooldstyle} \UnicodeEncodingName{\oldstylenums{0}}
+\DeclareTextCommand{\textoneoldstyle} \UnicodeEncodingName{\oldstylenums{1}}
+\DeclareTextCommand{\texttwooldstyle} \UnicodeEncodingName{\oldstylenums{2}}
+\DeclareTextCommand{\textthreeoldstyle}\UnicodeEncodingName{\oldstylenums{3}}
+\DeclareTextCommand{\textfouroldstyle} \UnicodeEncodingName{\oldstylenums{4}}
+\DeclareTextCommand{\textfiveoldstyle} \UnicodeEncodingName{\oldstylenums{5}}
+\DeclareTextCommand{\textsixoldstyle} \UnicodeEncodingName{\oldstylenums{6}}
+\DeclareTextCommand{\textsevenoldstyle}\UnicodeEncodingName{\oldstylenums{7}}
+\DeclareTextCommand{\texteightoldstyle}\UnicodeEncodingName{\oldstylenums{8}}
+\DeclareTextCommand{\textnineoldstyle} \UnicodeEncodingName{\oldstylenums{9}}
+% \end{macrocode}
+% These have Unicode slots so this should be integrated into TU explictly
+% \begin{macrocode}
+\DeclareTextSymbol{\textpilcrow} \UnicodeEncodingName{"00B6}
+\DeclareTextSymbol{\textborn} \UnicodeEncodingName{"002A}
+\DeclareTextSymbol{\textdied} \UnicodeEncodingName{"2020}
+\DeclareTextSymbol{\textlbrackdbl} \UnicodeEncodingName{"27E6}
+\DeclareTextSymbol{\textrbrackdbl} \UnicodeEncodingName{"27E7}
+\DeclareTextSymbol{\textguarani} \UnicodeEncodingName{"20B2}
+% \end{macrocode}
+% We could make \cs{textcentoldstyle} and \cs{textdollaroldstyle}
+% point to dollar and cent in the Unicode encoding
+% \begin{macrocode}
+%\DeclareTextSymbol{\textcentoldstyle} \UnicodeEncodingName{"00A2}
+%\DeclareTextSymbol{\textdollaroldstyle} \UnicodeEncodingName{"0024}
+% \end{macrocode}
+% but I think it is better to pick them up from TS1 even if that
+% usually means LMR fonts
+% \begin{macrocode}
+\DeclareTextSymbol{\textdollaroldstyle}{TS1}{138}
+\DeclareTextSymbol{\textcentoldstyle} {TS1}{139}
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\fi % --- END of Unicode engines specials
+% \end{macrocode}
+%
+% \section{Font family sub-encodings setup}
+%
+% We declare the subsets for a good number of fonts in the kernel
+% \ldots
+%
+% But first the default for anything that is not declared. We use
+% \texttt{9} which is most likely much too conservative, but with the
+% advantage that we aren't getting missing glyphs (or at least that
+% this is very unlikely).
+% For nearly all font in the \TeX{} Live distribution of 2019
+% ``correct'' classifications are given below, so that this default
+% is only used for new font families, and over time the right
+% classifications can be added here too.
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{?}{9}
+% \end{macrocode}
+%
+% This first block contains the fonts that have been already
+% supported by the \texttt{textcomp} package way back, i.e., the
+% font families that have \TeX{} support since the mid-nineties.
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{ccr} {0}
+\DeclareEncodingSubset{TS1}{cmbr} {0}
+\DeclareEncodingSubset{TS1}{cmr} {0}
+\DeclareEncodingSubset{TS1}{cmss} {0}
+\DeclareEncodingSubset{TS1}{cmtl} {0}
+\DeclareEncodingSubset{TS1}{cmtt} {0}
+\DeclareEncodingSubset{TS1}{cmvtt} {0}
+\DeclareEncodingSubset{TS1}{pxr} {0}
+\DeclareEncodingSubset{TS1}{pxss} {0}
+\DeclareEncodingSubset{TS1}{pxtt} {0}
+\DeclareEncodingSubset{TS1}{qag} {0}
+\DeclareEncodingSubset{TS1}{qbk} {0}
+\DeclareEncodingSubset{TS1}{qcr} {0}
+\DeclareEncodingSubset{TS1}{qcs} {0}
+\DeclareEncodingSubset{TS1}{qhvc} {0}
+\DeclareEncodingSubset{TS1}{qhv} {0}
+\DeclareEncodingSubset{TS1}{qpl} {0}
+\DeclareEncodingSubset{TS1}{qtm} {0}
+\DeclareEncodingSubset{TS1}{qzc} {0}
+\DeclareEncodingSubset{TS1}{txr} {0}
+\DeclareEncodingSubset{TS1}{txss} {0}
+\DeclareEncodingSubset{TS1}{txtt} {0}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{lmr} {1}
+\DeclareEncodingSubset{TS1}{lmdh} {1}
+\DeclareEncodingSubset{TS1}{lmss} {1}
+\DeclareEncodingSubset{TS1}{lmssq} {1}
+\DeclareEncodingSubset{TS1}{lmvtt} {1}
+\DeclareEncodingSubset{TS1}{lmtt} {1} % missing TM, SM, pertenthousand for some reason
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{ptmx} {2}
+\DeclareEncodingSubset{TS1}{ptmj} {2}
+\DeclareEncodingSubset{TS1}{ul8} {2}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{bch} {5} % tofu for blank, ohm
+\DeclareEncodingSubset{TS1}{futj} {5} % tofu for blank, interrobang/down, ohm
+\DeclareEncodingSubset{TS1}{futs} {5} % tofu for blank, ohm
+\DeclareEncodingSubset{TS1}{futx} {5} % probably (currently broken distrib)
+\DeclareEncodingSubset{TS1}{pag} {5} % tofu for blank, interrobang/down, ohm
+\DeclareEncodingSubset{TS1}{pbk} {5} % tofu for blank, interrobang/down, ohm
+\DeclareEncodingSubset{TS1}{pcr} {5} % tofu for blank, interrobang/down, ohm
+\DeclareEncodingSubset{TS1}{phv} {5} % tofu for blank, interrobang/down, ohm
+\DeclareEncodingSubset{TS1}{pnc} {5} % tofu for blank, interrobang/down, ohm
+\DeclareEncodingSubset{TS1}{pplj} {5} % tofu for blank
+\DeclareEncodingSubset{TS1}{pplx} {5} % tofu for blank
+\DeclareEncodingSubset{TS1}{ppl} {5} % tofu for blank interrobang/down
+\DeclareEncodingSubset{TS1}{ptm} {5} % tofu for blank, interrobang/down, ohm
+\DeclareEncodingSubset{TS1}{pzc} {5} % tofu for blank, interrobang/down, ohm
+\DeclareEncodingSubset{TS1}{ul9} {5} % tofu for blank, interrobang/down, ohm
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{dayroms} {6} % tofu for blank, interrobang/down, ohm
+\DeclareEncodingSubset{TS1}{dayrom} {6} % tofu for blank, interrobang/down, ohm
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{augie} {8} % really only missing euro
+\DeclareEncodingSubset{TS1}{put} {8}
+\DeclareEncodingSubset{TS1}{uag} {8} % probably (currently broken distrib)
+\DeclareEncodingSubset{TS1}{ugq} {8}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{zi4} {9}
+% \end{macrocode}
+% LucidaBright (sold through TUG) probably not quite correct, I
+% guess as I have the older fonts \ldots
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{hls} {5}
+\DeclareEncodingSubset{TS1}{hlst} {5}
+\DeclareEncodingSubset{TS1}{hlct} {5}
+\DeclareEncodingSubset{TS1}{hlh} {5}
+\DeclareEncodingSubset{TS1}{hlx} {8}
+\DeclareEncodingSubset{TS1}{hlce} {8}
+\DeclareEncodingSubset{TS1}{hlcn} {8}
+\DeclareEncodingSubset{TS1}{hlcw} {8}
+\DeclareEncodingSubset{TS1}{hlcf} {8}
+% \end{macrocode}
+%
+% Below are the newer fonts that have support files for
+% \LaTeX{}. With very few exceptions the classifications are done
+% so that all characters are correctly produced (either being
+% available in the font or substituted.
+%
+% There are a few fonts that contain ``tofu'' squares in places
+% (instead of a real glyph) and in a few cases some really seldom
+% needed chars are unavailable, i.e., produce missing glyphs (to
+% avoid that a large number of available chars are unnecessarily
+% substituted.
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{lato-*} {0} % with a bunch of tofu inside
+\DeclareEncodingSubset{TS1}{opensans-*} {0} % with a bunch of tofu inside
+\DeclareEncodingSubset{TS1}{cantarell-*} {0} % with a bunch of tofu inside
+\DeclareEncodingSubset{TS1}{fbb-*} {0} % missing centoldstyle
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{tli} {1} % with lots of tofu inside
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{Alegreya-*} {2}
+\DeclareEncodingSubset{TS1}{AlegreyaSans-*} {2}
+\DeclareEncodingSubset{TS1}{DejaVuSans-TLF} {2}
+\DeclareEncodingSubset{TS1}{DejaVuSansCondensed-TLF} {2}
+\DeclareEncodingSubset{TS1}{DejaVuSansMono-TLF} {2}
+\DeclareEncodingSubset{TS1}{EBGaramond-*} {2}
+\DeclareEncodingSubset{TS1}{Tempora-TLF} {2}
+\DeclareEncodingSubset{TS1}{Tempora-TOsF} {2}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{Arimo-TLF} {3}
+\DeclareEncodingSubset{TS1}{Carlito-*} {3}
+\DeclareEncodingSubset{TS1}{FiraSans-*} {3}
+\DeclareEncodingSubset{TS1}{IBMPlexSans-TLF} {3}
+\DeclareEncodingSubset{TS1}{Merriweather-OsF} {3}
+\DeclareEncodingSubset{TS1}{Montserrat-*} {3}
+\DeclareEncodingSubset{TS1}{MontserratAlternates-*} {3}
+\DeclareEncodingSubset{TS1}{SourceCodePro-TLF} {3}
+\DeclareEncodingSubset{TS1}{SourceCodePro-TOsF} {3}
+\DeclareEncodingSubset{TS1}{SourceSansPro-*} {3}
+\DeclareEncodingSubset{TS1}{SourceSerifPro-*} {3}
+\DeclareEncodingSubset{TS1}{Tinos-TLF} {3}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{AccanthisADFStdNoThree-LF}{4}
+\DeclareEncodingSubset{TS1}{Cabin-TLF} {4}
+\DeclareEncodingSubset{TS1}{Caladea-TLF} {4}
+\DeclareEncodingSubset{TS1}{Chivo-*} {4}
+\DeclareEncodingSubset{TS1}{ClearSans-TLF} {4}
+\DeclareEncodingSubset{TS1}{Coelacanth-LF} {4}
+\DeclareEncodingSubset{TS1}{CrimsonPro-*} {4}
+\DeclareEncodingSubset{TS1}{FiraMono-TLF} {4}
+\DeclareEncodingSubset{TS1}{FiraMono-TOsF} {4}
+\DeclareEncodingSubset{TS1}{Go-TLF} {4}
+\DeclareEncodingSubset{TS1}{GoMono-TLF} {4}
+\DeclareEncodingSubset{TS1}{InriaSans-*} {4}
+\DeclareEncodingSubset{TS1}{InriaSerif-*} {4}
+\DeclareEncodingSubset{TS1}{LibertinusSans-*} {4}
+\DeclareEncodingSubset{TS1}{LibertinusSerif-*} {4}
+\DeclareEncodingSubset{TS1}{LibreBodoni-TLF} {4}
+\DeclareEncodingSubset{TS1}{LibreFranklin-TLF} {4}
+\DeclareEncodingSubset{TS1}{LinguisticsPro-LF} {4}
+\DeclareEncodingSubset{TS1}{LinguisticsPro-OsF} {4}
+\DeclareEncodingSubset{TS1}{LinuxBiolinumT-*} {4}
+\DeclareEncodingSubset{TS1}{LinuxLibertineT-*} {4}
+\DeclareEncodingSubset{TS1}{MerriweatherSans-OsF} {4}
+\DeclareEncodingSubset{TS1}{MintSpirit-*} {4}
+\DeclareEncodingSubset{TS1}{MintSpiritNoTwo-*} {4}
+\DeclareEncodingSubset{TS1}{PTMono-TLF} {4}
+\DeclareEncodingSubset{TS1}{PTSans-TLF} {4}
+\DeclareEncodingSubset{TS1}{PTSansCaption-TLF} {4}
+\DeclareEncodingSubset{TS1}{PTSansNarrow-TLF} {4}
+\DeclareEncodingSubset{TS1}{PTSerif-TLF} {4}
+\DeclareEncodingSubset{TS1}{PTSerifCaption-TLF} {4}
+\DeclareEncodingSubset{TS1}{Raleway-TLF} {4}
+\DeclareEncodingSubset{TS1}{Raleway-TOsF} {4}
+\DeclareEncodingSubset{TS1}{Roboto-*} {4}
+\DeclareEncodingSubset{TS1}{RobotoMono-TLF} {4}
+\DeclareEncodingSubset{TS1}{RobotoSlab-TLF} {4}
+\DeclareEncodingSubset{TS1}{Rosario-*} {4}
+\DeclareEncodingSubset{TS1}{SticksTooText-*} {4}
+\DeclareEncodingSubset{TS1}{UniversalisADFStd-LF} {4}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{Almendra-OsF} {5}
+\DeclareEncodingSubset{TS1}{Baskervaldx-*} {5}
+\DeclareEncodingSubset{TS1}{BaskervilleF-*} {5}
+\DeclareEncodingSubset{TS1}{Bitter-TLF} {5}
+\DeclareEncodingSubset{TS1}{Cinzel-LF} {5}
+\DeclareEncodingSubset{TS1}{CinzelDecorative-LF} {5}
+\DeclareEncodingSubset{TS1}{DejaVuSerif-TLF} {5}
+\DeclareEncodingSubset{TS1}{DejaVuSerifCondensed-TLF} {5}
+\DeclareEncodingSubset{TS1}{GilliusADF-LF} {5}
+\DeclareEncodingSubset{TS1}{GilliusADFCond-LF} {5}
+\DeclareEncodingSubset{TS1}{GilliusADFNoTwo-LF} {5}
+\DeclareEncodingSubset{TS1}{GilliusADFNoTwoCond-LF} {5}
+\DeclareEncodingSubset{TS1}{LobsterTwo-LF} {5}
+\DeclareEncodingSubset{TS1}{OldStandard-TLF} {5}
+\DeclareEncodingSubset{TS1}{PlayfairDisplay-TLF} {5}
+\DeclareEncodingSubset{TS1}{PlayfairDisplay-TOsF} {5}
+\DeclareEncodingSubset{TS1}{TheanoDidot-TLF} {5}
+\DeclareEncodingSubset{TS1}{TheanoDidot-TOsF} {5}
+\DeclareEncodingSubset{TS1}{TheanoModern-TLF} {5}
+\DeclareEncodingSubset{TS1}{TheanoModern-TOsF} {5}
+\DeclareEncodingSubset{TS1}{TheanoOldStyle-TLF} {5}
+\DeclareEncodingSubset{TS1}{TheanoOldStyle-TOsF} {5}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{Crimson-TLF} {6}
+\DeclareEncodingSubset{TS1}{IBMPlexMono-TLF} {6}
+\DeclareEncodingSubset{TS1}{IBMPlexSerif-TLF} {6}
+\DeclareEncodingSubset{TS1}{LibertinusMono-TLF} {6}
+\DeclareEncodingSubset{TS1}{LibertinusSerifDisplay-LF}{6}
+\DeclareEncodingSubset{TS1}{LinuxLibertineDisplayT-*} {6}
+\DeclareEncodingSubset{TS1}{LinuxLibertineMonoT-LF} {6}
+\DeclareEncodingSubset{TS1}{LinuxLibertineMonoT-TLF} {6}
+\DeclareEncodingSubset{TS1}{Overlock-LF} {6}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{CormorantGaramond-*} {7}
+\DeclareEncodingSubset{TS1}{Heuristica-TLF} {7}
+\DeclareEncodingSubset{TS1}{Heuristica-TOsF} {7}
+\DeclareEncodingSubset{TS1}{IMFELLEnglish-TLF} {7}
+\DeclareEncodingSubset{TS1}{LibreBaskerville-TLF} {7}
+\DeclareEncodingSubset{TS1}{LibreCaslon-*} {7}
+\DeclareEncodingSubset{TS1}{Marcellus-LF} {7}
+\DeclareEncodingSubset{TS1}{NotoSans-*} {7}
+\DeclareEncodingSubset{TS1}{NotoSansMono-TLF} {7}
+\DeclareEncodingSubset{TS1}{NotoSansMono-TOsF} {7}
+\DeclareEncodingSubset{TS1}{NotoSerif-*} {7}
+\DeclareEncodingSubset{TS1}{Quattrocento-TLF} {7}
+\DeclareEncodingSubset{TS1}{QuattrocentoSans-TLF} {7}
+\DeclareEncodingSubset{TS1}{XCharter-TLF} {7}
+\DeclareEncodingSubset{TS1}{XCharter-TOsF} {7}
+\DeclareEncodingSubset{TS1}{erewhon-*} {7}
+\DeclareEncodingSubset{TS1}{ComicNeue-TLF} {7}
+\DeclareEncodingSubset{TS1}{ComicNeueAngular-TLF} {7}
+\DeclareEncodingSubset{TS1}{Forum-LF} {7} % the superiors are missing
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{Cochineal-*} {8}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{AlgolRevived-TLF} {9}
+% \end{macrocode}
+%
+%
+%
+%
+% \section{Legacy symbol support for lists and footnote symbols}
+%
+% \begin{macro}{\UseLegacyTextSymbols}
+%
+% \begin{macrocode}
+\def\UseLegacyTextSymbols{%
+ \DeclareTextSymbolDefault{\textasteriskcentered}{OMS}%
+ \DeclareTextSymbolDefault{\textbardbl}{OMS}%
+ \DeclareTextSymbolDefault{\textbullet}{OMS}%
+ \DeclareTextSymbolDefault{\textdaggerdbl}{OMS}%
+ \DeclareTextSymbolDefault{\textdagger}{OMS}%
+ \DeclareTextSymbolDefault{\textparagraph}{OMS}%
+ \DeclareTextSymbolDefault{\textperiodcentered}{OMS}%
+ \DeclareTextSymbolDefault{\textsection}{OMS}%
+ \UndeclareTextCommand{\textsection}{T1}%
+ \expandafter\let\csname oldstylenums \expandafter\endcsname
+ \csname legacyoldstylenums \endcsname
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+% \begin{macro}{\textlegacyasteriskcentered}
+% \begin{macro}{\textlegacybardbl}
+% \begin{macro}{\textlegacybullet}
+% \begin{macro}{\textlegacydaggerdbl}
+% \begin{macro}{\textlegacydagger}
+% \begin{macro}{\textlegacyparagraph}
+% \begin{macro}{\textlegacyperiodcentered}
+% \begin{macro}{\textlegacysection}
+%
+% Here are new names for the legacy symbols that \LaTeX{} used to
+% pick up from the \texttt{OMS} encoded fonts (and used dor itemize
+% lists or footnote symbols.
+%
+% We go the roundabout way via separate OMS declarations so that
+%\begin{verbatim}
+% \renewcommand\textbullet{\textlegacybullet}
+%\end{verbatim}
+% doesn't produce an endless loop.
+% \begin{macrocode}
+\DeclareTextSymbol{\textlegacyasteriskcentered}{OMS}{3} % "03
+\DeclareTextSymbol{\textlegacybardbl}{OMS}{107} % "6B
+\DeclareTextSymbol{\textlegacybullet}{OMS}{15} % "0F
+\DeclareTextSymbol{\textlegacydaggerdbl}{OMS}{122} % "7A
+\DeclareTextSymbol{\textlegacydagger}{OMS}{121} % "79
+\DeclareTextSymbol{\textlegacyparagraph}{OMS}{123} % "7B
+\DeclareTextSymbol{\textlegacyperiodcentered}{OMS}{1} % "01
+\DeclareTextSymbol{\textlegacysection}{OMS}{120} % "78
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textlegacyasteriskcentered}{OMS}
+\DeclareTextSymbolDefault{\textlegacybardbl}{OMS}
+\DeclareTextSymbolDefault{\textlegacybullet}{OMS}
+\DeclareTextSymbolDefault{\textlegacydaggerdbl}{OMS}
+\DeclareTextSymbolDefault{\textlegacydagger}{OMS}
+\DeclareTextSymbolDefault{\textlegacyparagraph}{OMS}
+\DeclareTextSymbolDefault{\textlegacyperiodcentered}{OMS}
+\DeclareTextSymbolDefault{\textlegacysection}{OMS}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+
+%
+%
+% Supporting rollback \ldots
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\DeclareEncodingSubset}{Text companion symbols}%
+%<latexrelease>
+%<latexrelease>\let\DeclareEncodingSubset\@undefined
+%<latexrelease>\let\CheckEncodingSubset\@undefined
+%<latexrelease>
+%<latexrelease>\DeclareTextSymbolDefault{\textdollar}{OT1}
+%<latexrelease>\DeclareTextSymbolDefault{\textsterling}{OT1}
+%<latexrelease>\DeclareTextCommand{\textdollar}{OT1}{\hmode@bgroup
+%<latexrelease> \ifdim \fontdimen\@ne\font >\z@
+%<latexrelease> \slshape
+%<latexrelease> \else
+%<latexrelease> \upshape
+%<latexrelease> \fi
+%<latexrelease> \char`\$\egroup}
+%<latexrelease>\DeclareTextCommand{\textsterling}{OT1}{\hmode@bgroup
+%<latexrelease> \ifdim \fontdimen\@ne\font >\z@
+%<latexrelease> \itshape
+%<latexrelease> \else
+%<latexrelease> \fontshape{ui}\selectfont
+%<latexrelease> \fi
+%<latexrelease> \char`\$\egroup}
+%<latexrelease>\DeclareTextCommand{\textperthousand}{T1}
+%<latexrelease> {\%\char 24 }
+%<latexrelease>
+%<latexrelease>\DeclareTextSymbolDefault{\textasteriskcentered}{OMS}
+%<latexrelease>\DeclareTextSymbolDefault{\textbullet}{OMS}
+%<latexrelease>\DeclareTextSymbolDefault{\textdaggerdbl}{OMS}
+%<latexrelease>\DeclareTextSymbolDefault{\textdagger}{OMS}
+%<latexrelease>\DeclareTextSymbolDefault{\textparagraph}{OMS}
+%<latexrelease>\DeclareTextSymbolDefault{\textperiodcentered}{OMS}
+%<latexrelease>\DeclareTextSymbolDefault{\textsection}{OMS}
+%<latexrelease>
+%<latexrelease>\DeclareTextSymbolDefault{\textbardbl}{OMS}
+%<latexrelease>\let\textbrokenbar\@undefined
+%<latexrelease>\let\textcelsius\@undefined
+%<latexrelease>\let\textcent\@undefined
+%<latexrelease>\DeclareTextCommandDefault{\textcopyright}{\textcircled{c}}
+%<latexrelease>\let\textdegree\@undefined
+%<latexrelease>\let\textdiv\@undefined
+%<latexrelease>\let\textlnot\@undefined
+%<latexrelease>\let\textonehalf\@undefined
+%<latexrelease>\let\textonequarter\@undefined
+%<latexrelease>\let\textonesuperior\@undefined
+%<latexrelease>\DeclareTextCommandDefault{\textordfeminine}{\textsuperscript{a}}
+%<latexrelease>\DeclareTextCommandDefault{\textordmasculine}{\textsuperscript{o}}
+%<latexrelease>\let\textpm\@undefined
+%<latexrelease>\let\textquotesingle\@undefined
+%<latexrelease>\let\textquotestraightbase\@undefined
+%<latexrelease>\let\textquotestraightdblbase\@undefined
+%<latexrelease>\DeclareTextCommandDefault{\textregistered}{\textcircled{%
+%<latexrelease> \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont R}}
+%<latexrelease>\let\textthreequartersemdash\@undefined
+%<latexrelease>\let\textthreequarters\@undefined
+%<latexrelease>\let\textthreesuperior\@undefined
+%<latexrelease>\let\texttimes\@undefined
+%<latexrelease>\DeclareTextCommandDefault{\texttrademark}{\textsuperscript{TM}}
+%<latexrelease>\let\texttwelveudash\@undefined
+%<latexrelease>\let\texttwosuperior\@undefined
+%<latexrelease>\let\textyen\@undefined
+%<latexrelease>
+%<latexrelease>\let\textcapitalcompwordmark\@undefined
+%<latexrelease>\let\textascendercompwordmark\@undefined
+%<latexrelease>
+%<latexrelease>\DeclareTextAccentDefault{\textcircled}{OMS}
+%<latexrelease>\DeclareTextAccentDefault{\t}{OML}
+%<latexrelease>
+%<latexrelease>\let\capitalacute\@undefined
+%<latexrelease>\let\capitalbreve\@undefined
+%<latexrelease>\let\capitalcaron\@undefined
+%<latexrelease>\let\capitalcedilla\@undefined
+%<latexrelease>\let\capitalcircumflex\@undefined
+%<latexrelease>\let\capitaldieresis\@undefined
+%<latexrelease>\let\capitaldotaccent\@undefined
+%<latexrelease>\let\capitalgrave\@undefined
+%<latexrelease>\let\capitalhungarumlaut\@undefined
+%<latexrelease>\let\capitalmacron\@undefined
+%<latexrelease>\let\capitalnewtie\@undefined
+%<latexrelease>\let\capitalogonek\@undefined
+%<latexrelease>\let\capitalring\@undefined
+%<latexrelease>\let\capitaltie\@undefined
+%<latexrelease>\let\capitaltilde\@undefined
+%<latexrelease>\let\newtie\@undefined
+%<latexrelease>
+%<latexrelease>\let\textlbrackdbl\@undefined
+%<latexrelease>\let\textrbrackdbl\@undefined
+%<latexrelease>
+%<latexrelease>\let\texteightoldstyle\@undefined
+%<latexrelease>\let\textfiveoldstyle\@undefined
+%<latexrelease>\let\textfouroldstyle\@undefined
+%<latexrelease>\let\textnineoldstyle\@undefined
+%<latexrelease>\let\textoneoldstyle\@undefined
+%<latexrelease>\let\textsevenoldstyle\@undefined
+%<latexrelease>\let\textsixoldstyle\@undefined
+%<latexrelease>\let\textthreeoldstyle\@undefined
+%<latexrelease>\let\texttwooldstyle\@undefined
+%<latexrelease>\let\textzerooldstyle\@undefined
+%<latexrelease>
+%<latexrelease>\let\textacutedbl\@undefined
+%<latexrelease>\let\textasciiacute\@undefined
+%<latexrelease>\let\textasciibreve\@undefined
+%<latexrelease>\let\textasciicaron\@undefined
+%<latexrelease>\let\textasciidieresis\@undefined
+%<latexrelease>\let\textasciigrave\@undefined
+%<latexrelease>\let\textasciimacron\@undefined
+%<latexrelease>\let\textgravedbl\@undefined
+%<latexrelease>\let\texttildelow\@undefined
+%<latexrelease>
+%<latexrelease>\let\textbaht\@undefined
+%<latexrelease>\let\textbigcircle\@undefined
+%<latexrelease>\let\textborn\@undefined
+%<latexrelease>\let\textcentoldstyle\@undefined
+%<latexrelease>\let\textcircledP\@undefined
+%<latexrelease>\let\textcopyleft\@undefined
+%<latexrelease>\let\textdblhyphenchar\@undefined
+%<latexrelease>\let\textdblhyphen\@undefined
+%<latexrelease>\let\textdied\@undefined
+%<latexrelease>\let\textdiscount\@undefined
+%<latexrelease>\let\textdivorced\@undefined
+%<latexrelease>\let\textdollaroldstyle\@undefined
+%<latexrelease>\let\textguarani\@undefined
+%<latexrelease>\let\textleaf\@undefined
+%<latexrelease>\let\textlquill\@undefined
+%<latexrelease>\let\textmarried\@undefined
+%<latexrelease>\let\textmho\@undefined
+%<latexrelease>\let\textmusicalnote\@undefined
+%<latexrelease>\let\textnaira\@undefined
+%<latexrelease>\let\textopenbullet\@undefined
+%<latexrelease>\let\textpeso\@undefined
+%<latexrelease>\let\textpilcrow\@undefined
+%<latexrelease>\let\textrecipe\@undefined
+%<latexrelease>\let\textreferencemark\@undefined
+%<latexrelease>\let\textrquill\@undefined
+%<latexrelease>\let\textservicemark\@undefined
+%<latexrelease>\let\textsurd\@undefined
+%<latexrelease>
+%<latexrelease>\DeclareTextCommand{\textpertenthousand}{T1}
+%<latexrelease> {\%\char 24\char 24 }
+%<latexrelease>
+%<latexrelease>\let\textlangle\@undefined
+%<latexrelease>\let\textrangle\@undefined
+%<latexrelease>
+%<latexrelease>\let\textcolonmonetary\@undefined
+%<latexrelease>\let\textdong\@undefined
+%<latexrelease>\let\textdownarrow\@undefined
+%<latexrelease>\let\textleftarrow\@undefined
+%<latexrelease>\let\textlira\@undefined
+%<latexrelease>\let\textrightarrow\@undefined
+%<latexrelease>\let\textuparrow\@undefined
+%<latexrelease>\let\textwon\@undefined
+%<latexrelease>
+%<latexrelease>\let\textestimated\@undefined
+%<latexrelease>\let\textnumero\@undefined
+%<latexrelease>
+%<latexrelease>\let\textflorin\@undefined
+%<latexrelease>\let\textcurrency\@undefined
+%<latexrelease>
+%<latexrelease>\let\textfractionsolidus\@undefined
+%<latexrelease>\let\textohm\@undefined
+%<latexrelease>\let\textmu\@undefined
+%<latexrelease>\let\textminus\@undefined
+%<latexrelease>
+%<latexrelease>\let\textblank\@undefined
+%<latexrelease>\let\textinterrobangdown\@undefined
+%<latexrelease>\let\textinterrobang\@undefined
+%<latexrelease>
+%<latexrelease>\let\texteuro\@undefined
+%<latexrelease>
+%<latexrelease>\let\textcelsius\@undefined
+%<latexrelease>\let\textonesuperior\@undefined
+%<latexrelease>\let\textthreequartersemdash\@undefined
+%<latexrelease>\let\textthreesuperior\@undefined
+%<latexrelease>\let\texttwelveudash\@undefined
+%<latexrelease>\let\texttwosuperior\@undefined
+%<latexrelease>\let\textbardbl\@undefined
+%<latexrelease>
+%<latexrelease>\let\UseLegacyTextSymbols\@undefined
+%<latexrelease>\let\textlegacyasteriskcentered\@undefined
+%<latexrelease>\let\textlegacybardbl\@undefined
+%<latexrelease>\let\textlegacybullet\@undefined
+%<latexrelease>\let\textlegacydaggerdbl\@undefined
+%<latexrelease>\let\textlegacydagger\@undefined
+%<latexrelease>\let\textlegacyparagraph\@undefined
+%<latexrelease>\let\textlegacyperiodcentered\@undefined
+%<latexrelease>\let\textlegacysection\@undefined
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+%</2ekernel>
+% \end{macrocode}
+%
+%
+%
+%
+% \section{The \texttt{textcomp} package}
+%
+%
+% \begin{macrocode}
+%<*TS1sty>
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
+
+\DeclareRelease{}{2018-08-11}{textcomp-2018-08-11.sty}
+\DeclareCurrentRelease{}{2020-02-02}
+
+\ProvidesPackage{textcomp}
+ [2020/02/02 v2.0m Standard LaTeX package]
+% \end{macrocode}
+%
+% This is implemented by defining the default subset:
+% \begin{macrocode}
+\DeclareOption{full}{\DeclareEncodingSubset{TS1}{?}{0}}
+\DeclareOption{almostfull}{\DeclareEncodingSubset{TS1}{?}{1}}
+\DeclareOption{euro}{\DeclareEncodingSubset{TS1}{?}{8}}
+\DeclareOption{safe}{\DeclareEncodingSubset{TS1}{?}{9}}
+% \end{macrocode}
+% The default is set up in the kernel is ``safe'' these days for
+% unknown fonts but LaTeX has definitions for most families so it
+% seldom applies.
+%
+% If a different default is used then one needs to check the
+% results to ensure that there aren't ``missing glyphs''.
+%
+% The next set of options define the warning level (default in the
+% kernel is info only). If you load the package then the default
+% changes to produce an error message if any substitution happens.
+% \begin{macrocode}
+\def\tc@errorwarn{\PackageError{textcomp}}
+\DeclareOption{error}{\gdef\tc@errorwarn{\PackageError{textcomp}}}
+\DeclareOption{warn}{\gdef\tc@errorwarn#1#2{\PackageWarning{textcomp}{#1}}}
+\DeclareOption{quiet}{\gdef\tc@errorwarn#1#2{}}
+% \end{macrocode}
+%
+% The ``force'' option basically changes the sub-encoding to that
+% of the default (which, unless changes, is 9 these days), i.e., it
+% no longer depends on the font in use. This is mainly there
+% because it might have been used in older documents, but not
+% somehting that is recommended.
+% \begin{macrocode}
+\DeclareOption{force}{%
+ \def\CheckEncodingSubset#1#2#3#4#5{%
+ \ifnum #4>%
+ 0\csname #2:?\endcsname
+ \relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {#1{#2}}{#3}%
+ #5}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExecuteOptions{}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% There is not much else to do nowadays, because everything is
+% already set up in the \LaTeX{} kernel.
+%
+% \begin{macrocode}
+\InputIfFileExists{textcomp.cfg}
+ {\PackageInfo{textcomp}{Local configuration file used}}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</TS1sty>
+% \end{macrocode}
+%
+%
+%
+% \subsection{The old textcomp package code}
+%
+% This section contains the old code for the textcomp package and
+% its documentation. It is only used if we roll back prior to 2020.
+% Thus all the rest is mainly for historians. Note that the old
+% code categorised in the sub-encodings only into 6 classes not 10.
+%
+% \begin{macrocode}
+%<*TS1oldsty>
+\ProvidesPackage{textcomp}
+ [2018/08/11 v2.0j Standard LaTeX package]
+% \end{macrocode}
+%
+% This one is for the |TS1| encoding which contains text symbols
+% for use with the |T1|-encoded text fonts. It therefore first
+% inputs the file |TS1enc.def| and then sets (or resets) the
+% defaults for the symbols it contains. The result of this is that
+% when one of these symbols is accessed and the current encoding
+% does not provide it, the symbol will be supplied by a silent,
+% local change to this encoding.
+%
+% Since many PostScript fonts only implement a subset of |TS1| many
+% commands only produce black blobs of ink. To resolve the
+% resulting problems a number of options have been introduced and
+% some code has been developed to distinguish sub-encodings.
+%
+% The sub-encodings have a numerical id and are defined as follows
+% for \texttt{TS1}:
+% \begin{description}
+%
+% \item[\#5] those \texttt{TS1} symbols that are also in the ISO-Adobe
+% character set; without \verb=textcurrency=, which is often
+% misused for the Euro. Older Type1 fonts from the non-\TeX{}
+% world provide only this subset.
+%
+% \item[\#4] = \#5 + \verb=\texteuro=. Most newer fonts provide this.
+%
+% \item[\#3] = \#4 + \verb=\textomega=. Can also be described as
+% $\texttt{TS1} \cap (\texttt{ISO-Adobe} \cup
+% \texttt{MacRoman})$. (Except for the missing "currency".)
+
+%
+% \item[\#2] = \#3 + \verb=\textestimated= + \verb=\textcurrency=. Can
+% also be described as $\texttt{TS1} \cap
+% \texttt{Adobe-Western-2}$. This may be relevant for OpenType
+% fonts, which usually show the Adobe-Western-2 character set.
+%
+% \item[\#1] = \texttt{TS1} without \verb=\textcircled= and \verb=\t=.
+% These two glyphs are often not implemented and if their kernel
+% defaults are changed commands like \verb=\copyright=
+% unnecessarily fail.
+%
+% \item[\#0] = full \texttt{TS1}
+% \end{description}
+%
+% And here a summary to go in the transcript file:
+% \begin{macrocode}
+\PackageInfo{textcomp}{Sub-encoding information:\MessageBreak
+ \space\space 5 = only ISO-Adobe without
+ \string\textcurrency\MessageBreak
+ \space\space 4 = 5 + \string\texteuro\MessageBreak
+ \space\space 3 = 4 + \string\textohm\MessageBreak
+ \space\space 2 = 3 + \noexpand\textestimated+
+ \string\textcurrency\MessageBreak
+ \space\space 1 = TS1 - \noexpand\textcircled-
+ \string\t\MessageBreak
+ \space\space 0 = TS1 (full)\MessageBreak
+ Font families with sub-encoding setting implement\MessageBreak
+ only a restricted character set as indicated.\MessageBreak
+ Family '?' is the default used for unknown fonts.\MessageBreak
+ See the documentation for details\@gobble}
+% \end{macrocode}
+%
+% \begin{macro}{\DeclareEncodingSubset}
+% An encoding subset to which a font family belongs is declared by
+% the command |\DeclareEncodingSubset| that takes the major encoding as the
+% first argument (e.g., |TS1|), the family name as the second
+% argument (e.g., |cmr|), and the subset encoding id as a third,
+% (e.g., |0| for |cmr|).
+%
+% The default encoding subset to use when nothing is known about
+% the current font family is named |?|.
+% \begin{macrocode}
+\def\DeclareEncodingSubset#1#2#3{%
+ \@ifundefined{#1:#2}%
+ {\PackageInfo{textcomp}{Setting #2 sub-encoding to #1/#3}}%
+ {\PackageInfo{textcomp}{Changing #2 sub-encoding to #1/#3}}%
+ \@namedef{#1:#2}{#3}}
+\@onlypreamble\DeclareEncodingSubset
+% \end{macrocode}
+% \end{macro}
+%
+%
+% The options for the package are the following:
+% \begin{description}
+% \item[safe]
+% for unknown font families enables only symbols that are also
+% in the ISO-Adobe character set; without "currency", which is
+% often misused for the Euro. Older Type1 fonts from the
+% non-TeX world provide only this subset.
+%
+% \item[euro]
+% enables the ``safe'' symbols plus the |\texteuro|
+% command. Most newer fonts provide this.
+%
+% \item[full] enables all |TS1| commands; useful only with fonts
+% like EC or CM bright.
+%
+% \item[almostfull]
+% same as ``full'', except that |\textcircled|
+% and |\t| are \emph{not} redefined from their defaults to avoid
+% that commands like |\copyright| suddenly no longer work.
+%
+% \item[force]
+% ignore all subset encoding definitions stored in the package
+% itself or in the configuration file and always use the default
+% subset as specified by one of the other options (seldom useful,
+% only dangerous).
+% \end{description}
+%
+% \begin{macro}{\iftc@forced}
+% Switch used to implement the \texttt{force} option
+% \begin{macrocode}
+\newif\iftc@forced \tc@forcedfalse
+% \end{macrocode}
+% \end{macro}
+
+% This is implemented by defining the default subset:
+% \begin{macrocode}
+\DeclareOption{full}{\DeclareEncodingSubset{TS1}{?}{0}}
+\DeclareOption{almostfull}{\DeclareEncodingSubset{TS1}{?}{1}}
+\DeclareOption{euro}{\DeclareEncodingSubset{TS1}{?}{4}}
+\DeclareOption{safe}{\DeclareEncodingSubset{TS1}{?}{5}}
+% \end{macrocode}
+% The default is ``almostfull'' which means that old documents will
+% work except that |\textcircled| and |\t| will use the kernel
+% defaults (with the advantage that this also works if the current
+% font (as often the case) doesn't implement these glyphs.
+%
+% The ``force'' option simply sets the switch to true.
+% \begin{macrocode}
+\DeclareOption{force}{\tc@forcedtrue}
+% \end{macrocode}
+%
+% The suggestions to user is to use the ``safe'' option always
+% unless that balks in which case they could switch to
+% ``almostfull'' but then better check their output manually.
+%
+% \begin{macrocode}
+\def\tc@errorwarn{\PackageError}
+\DeclareOption{warn}{\gdef\tc@errorwarn#1#2#3{\PackageWarning{#1}{#2}}}
+\DeclareOption{quiet}{\gdef\tc@errorwarn#1#2#3{}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExecuteOptions{almostfull}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+%
+%
+%
+% \begin{macro}{\CheckEncodingSubset}
+% The command |\CheckEncodingSubset| will check if the current font
+% family has the right encoding subset to typeset a certain
+% command. It takes five arguments as follows:
+% first argument is either |\UseTextSymbol|, |\UseTextAccent|
+% depending on whether or not the symbol is a text symbol or a text
+% accent.
+
+% The second argument is the encoding from which this symbol should
+% be fetched.
+%
+% The third argument is either a fake accessor command or an error
+% message. the code in that argument (if ever executed) receives
+% two arguments: |#2| and |#5| of |\CheckEncodingSubset|.
+%
+% Argument four is the subset encoding id to test against: if this
+% value is higher than the subset id of the current font family
+% then we typeset the symbol, i.e., execute |#1{#2}#5| otherwise
+% it runs |#3#5|, e.g., to produce an error message or fake the
+% glyph somehow.
+%
+% Argument five is the symbol or accent command that is being
+% checked.
+%
+% For usage examples see definitions below.
+% \begin{macrocode}
+\iftc@forced
+% \end{macrocode}
+% If the ``force'' option was given we always use the default for
+% testing against.
+% \begin{macrocode}
+\def\CheckEncodingSubset#1#2#3#4#5{%
+ \ifnum #4>%
+ 0\csname #2:?\endcsname
+ \relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {#1{#2}}{#3}%
+ #5%
+}
+% \end{macrocode}
+%
+% In normal circumstances the test is a bit more complicated: first
+% check if there exists a macro
+% |\|\meta{arg2}|:|\meta{current-family} and if so use that value
+% to test against, otherwise use the default to test against.
+% \begin{macrocode}
+\else
+\def\CheckEncodingSubset#1#2#3#4#5{%
+ \ifnum #4>%
+ \expandafter\ifx\csname #2:\f@family\endcsname\relax
+ 0\csname #2:?\endcsname
+ \else
+ \csname #2:\f@family\endcsname
+ \fi
+ \relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {#1{#2}}{#3}%
+ #5%
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tc@subst}
+% \begin{macrocode}
+\def\tc@subst#1{%
+ \tc@errorwarn{textcomp}%
+ {Symbol \string#1 not provided by\MessageBreak
+ font family \f@family\space
+ in TS1 encoding.\MessageBreak Default family used instead}\@eha
+ \bgroup\fontfamily\textcompsubstdefault\selectfont#1\egroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tc@error}
+% |\tc@error| is going to be used in arg |#3| of
+% |\CheckEncodingSubset| when a symbol is not available in a
+% certain font family. It gets pass the encoding it normally lives
+% in (arg one) and the name of the symbol or accent that has a
+% problem.
+%
+% \begin{macrocode}
+% error commands take argument:
+% #1 symbol to be used
+\def\tc@error#1{%
+ \PackageError{textcomp}% % should be latex error if general
+ {Accent \string#1 not provided by\MessageBreak
+ font family \f@family\space
+ in TS1 encoding}\@eha
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\tc@fake@euro}
+% |\tc@fake@euro| is an example of a ``fake'' definition to use in arg |#3| of
+% |\CheckEncodingSubset| when a symbol is not available in a
+% certain font family. Here we produce an Euro symbol by combining
+% a ``C'' with a ``=''.
+% \begin{macrocode}
+\def\tc@fake@euro#1{%
+ \leavevmode
+ \PackageInfo{textcomp}{Faking \noexpand#1for font family
+ \f@family\MessageBreak in TS1 encoding}%
+ \valign{##\cr
+ \vfil\hbox to 0.07em{\dimen@\f@size\p@
+ \math@fontsfalse
+ \fontsize{.7\dimen@}\z@\selectfont=\hss}%
+ \vfil\cr%
+ \hbox{C}\crcr
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tc@check@symbol}
+% \begin{macro}{\tc@check@accent}
+% These are two abbreviations that we use below to check symbols
+% and accents in TS1. Only there to save some space, e.g., we can
+% then write
+%\begin{verbatim}
+%\DeclareTextCommandDefault{\textcurrency}{\tc@check@symbol3\textcurrency}
+%\end{verbatim}
+% to ensure that |\textcurrency| is only typeset if the current
+% font has a \texttt{TS1} subset id of less than 3. Otherwise
+% |\tc@error| is called telling the user that for this font family
+% |\textcurreny| is not available.
+% \begin{macrocode}
+\def\tc@check@symbol{\CheckEncodingSubset\UseTextSymbol{TS1}\tc@subst}
+\def\tc@check@accent{\CheckEncodingSubset\UseTextAccent{TS1}\tc@error}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% We start with the commands that are ``safe'' and which can be
+% unconditionally set up, first the accents\ldots
+% \begin{macrocode}
+\DeclareTextAccentDefault{\capitalcedilla}{TS1}
+\DeclareTextAccentDefault{\capitalogonek}{TS1}
+\DeclareTextAccentDefault{\capitalgrave}{TS1}
+\DeclareTextAccentDefault{\capitalacute}{TS1}
+\DeclareTextAccentDefault{\capitalcircumflex}{TS1}
+\DeclareTextAccentDefault{\capitaltilde}{TS1}
+\DeclareTextAccentDefault{\capitaldieresis}{TS1}
+\DeclareTextAccentDefault{\capitalhungarumlaut}{TS1}
+\DeclareTextAccentDefault{\capitalring}{TS1}
+\DeclareTextAccentDefault{\capitalcaron}{TS1}
+\DeclareTextAccentDefault{\capitalbreve}{TS1}
+\DeclareTextAccentDefault{\capitalmacron}{TS1}
+\DeclareTextAccentDefault{\capitaldotaccent}{TS1}
+% \end{macrocode}
+% \ldots and then the other glyphs.
+% \changes{v1.9p}{1998/06/12}{Renamed \cs{textmacron} pr/2840}
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textcapitalcompwordmark}{TS1}
+\DeclareTextSymbolDefault{\textascendercompwordmark}{TS1}
+\DeclareTextSymbolDefault{\textquotestraightbase}{TS1}
+\DeclareTextSymbolDefault{\textquotestraightdblbase}{TS1}
+\DeclareTextSymbolDefault{\texttwelveudash}{TS1}
+\DeclareTextSymbolDefault{\textthreequartersemdash}{TS1}
+\DeclareTextSymbolDefault{\textdollar}{TS1}
+\DeclareTextSymbolDefault{\textquotesingle}{TS1}
+\DeclareTextSymbolDefault{\textasteriskcentered}{TS1}
+\DeclareTextSymbolDefault{\textfractionsolidus}{TS1}
+\DeclareTextSymbolDefault{\textminus}{TS1}
+\DeclareTextSymbolDefault{\textlbrackdbl}{TS1}
+\DeclareTextSymbolDefault{\textrbrackdbl}{TS1}
+\DeclareTextSymbolDefault{\textasciigrave}{TS1}
+\DeclareTextSymbolDefault{\texttildelow}{TS1}
+\DeclareTextSymbolDefault{\textasciibreve}{TS1}
+\DeclareTextSymbolDefault{\textasciicaron}{TS1}
+\DeclareTextSymbolDefault{\textgravedbl}{TS1}
+\DeclareTextSymbolDefault{\textacutedbl}{TS1}
+\DeclareTextSymbolDefault{\textdagger}{TS1}
+\DeclareTextSymbolDefault{\textdaggerdbl}{TS1}
+\DeclareTextSymbolDefault{\textbardbl}{TS1}
+\DeclareTextSymbolDefault{\textperthousand}{TS1}
+\DeclareTextSymbolDefault{\textbullet}{TS1}
+\DeclareTextSymbolDefault{\textcelsius}{TS1}
+\DeclareTextSymbolDefault{\textflorin}{TS1}
+\DeclareTextSymbolDefault{\texttrademark}{TS1}
+\DeclareTextSymbolDefault{\textcent}{TS1}
+\DeclareTextSymbolDefault{\textsterling}{TS1}
+\DeclareTextSymbolDefault{\textyen}{TS1}
+\DeclareTextSymbolDefault{\textbrokenbar}{TS1}
+\DeclareTextSymbolDefault{\textsection}{TS1}
+\DeclareTextSymbolDefault{\textasciidieresis}{TS1}
+\DeclareTextSymbolDefault{\textcopyright}{TS1}
+\DeclareTextSymbolDefault{\textordfeminine}{TS1}
+\DeclareTextSymbolDefault{\textlnot}{TS1}
+\DeclareTextSymbolDefault{\textregistered}{TS1}
+\DeclareTextSymbolDefault{\textasciimacron}{TS1}
+\DeclareTextSymbolDefault{\textdegree}{TS1}
+\DeclareTextSymbolDefault{\textpm}{TS1}
+\DeclareTextSymbolDefault{\texttwosuperior}{TS1}
+\DeclareTextSymbolDefault{\textthreesuperior}{TS1}
+\DeclareTextSymbolDefault{\textasciiacute}{TS1}
+\DeclareTextSymbolDefault{\textmu}{TS1}
+\DeclareTextSymbolDefault{\textparagraph}{TS1}
+\DeclareTextSymbolDefault{\textperiodcentered}{TS1}
+\DeclareTextSymbolDefault{\textonesuperior}{TS1}
+\DeclareTextSymbolDefault{\textordmasculine}{TS1}
+\DeclareTextSymbolDefault{\textonequarter}{TS1}
+\DeclareTextSymbolDefault{\textonehalf}{TS1}
+\DeclareTextSymbolDefault{\textthreequarters}{TS1}
+\DeclareTextSymbolDefault{\texttimes}{TS1}
+\DeclareTextSymbolDefault{\textdiv}{TS1}
+% \end{macrocode}
+%
+% The |\texteuro| is only available for subsets with id 4 or
+% less. Otherwise we fake the glyph using |\tc@fake@euro|
+% \begin{macrocode}
+\DeclareTextCommandDefault{\texteuro}
+ {\CheckEncodingSubset\UseTextSymbol{TS1}\tc@fake@euro5\texteuro}
+% \end{macrocode}
+%
+% The |\textohm| is only available for subsets with id 3 or
+% less. Otherwise we produce an error.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textohm}{\tc@check@symbol4\textohm}
+% \end{macrocode}
+% The |\textestimated| and |\textcurrency| are only provided for
+% fonts with subset encoding with id 2 or less.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textestimated}%
+ {\tc@check@symbol3\textestimated}
+\DeclareTextCommandDefault{\textcurrency}%
+ {\tc@check@symbol3\textcurrency}
+% \end{macrocode}
+% Nearly all of the remaining glyphs are provided only with fonts
+% with id 1 or 0, i.e., are essentially complete.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\capitaltie}%
+ {\tc@check@accent2\capitaltie}
+\DeclareTextCommandDefault{\newtie}%
+ {\tc@check@accent2\newtie}
+\DeclareTextCommandDefault{\capitalnewtie}%
+ {\tc@check@accent2\capitalnewtie}
+\DeclareTextCommandDefault{\textleftarrow}%
+ {\tc@check@symbol2\textleftarrow}
+\DeclareTextCommandDefault{\textrightarrow}%
+ {\tc@check@symbol2\textrightarrow}
+\DeclareTextCommandDefault{\textblank}%
+ {\tc@check@symbol2\textblank}
+\DeclareTextCommandDefault{\textdblhyphen}%
+ {\tc@check@symbol2\textdblhyphen}
+\DeclareTextCommandDefault{\textzerooldstyle}%
+ {\tc@check@symbol2\textzerooldstyle}
+\DeclareTextCommandDefault{\textoneoldstyle}%
+ {\tc@check@symbol2\textoneoldstyle}
+\DeclareTextCommandDefault{\texttwooldstyle}%
+ {\tc@check@symbol2\texttwooldstyle}
+\DeclareTextCommandDefault{\textthreeoldstyle}%
+ {\tc@check@symbol2\textthreeoldstyle}
+\DeclareTextCommandDefault{\textfouroldstyle}%
+ {\tc@check@symbol2\textfouroldstyle}
+\DeclareTextCommandDefault{\textfiveoldstyle}%
+ {\tc@check@symbol2\textfiveoldstyle}
+\DeclareTextCommandDefault{\textsixoldstyle}%
+ {\tc@check@symbol2\textsixoldstyle}
+\DeclareTextCommandDefault{\textsevenoldstyle}%
+ {\tc@check@symbol2\textsevenoldstyle}
+\DeclareTextCommandDefault{\texteightoldstyle}%
+ {\tc@check@symbol2\texteightoldstyle}
+\DeclareTextCommandDefault{\textnineoldstyle}%
+ {\tc@check@symbol2\textnineoldstyle}
+\DeclareTextCommandDefault{\textlangle}%
+ {\tc@check@symbol2\textlangle}
+\DeclareTextCommandDefault{\textrangle}%
+ {\tc@check@symbol2\textrangle}
+\DeclareTextCommandDefault{\textmho}%
+ {\tc@check@symbol2\textmho}
+\DeclareTextCommandDefault{\textbigcircle}%
+ {\tc@check@symbol2\textbigcircle}
+\DeclareTextCommandDefault{\textuparrow}%
+ {\tc@check@symbol2\textuparrow}
+\DeclareTextCommandDefault{\textdownarrow}%
+ {\tc@check@symbol2\textdownarrow}
+\DeclareTextCommandDefault{\textborn}%
+ {\tc@check@symbol2\textborn}
+\DeclareTextCommandDefault{\textdivorced}%
+ {\tc@check@symbol2\textdivorced}
+\DeclareTextCommandDefault{\textdied}%
+ {\tc@check@symbol2\textdied}
+\DeclareTextCommandDefault{\textleaf}%
+ {\tc@check@symbol2\textleaf}
+\DeclareTextCommandDefault{\textmarried}%
+ {\tc@check@symbol2\textmarried}
+\DeclareTextCommandDefault{\textmusicalnote}%
+ {\tc@check@symbol2\textmusicalnote}
+\DeclareTextCommandDefault{\textdblhyphenchar}%
+ {\tc@check@symbol2\textdblhyphenchar}
+\DeclareTextCommandDefault{\textdollaroldstyle}%
+ {\tc@check@symbol2\textdollaroldstyle}
+\DeclareTextCommandDefault{\textcentoldstyle}%
+ {\tc@check@symbol2\textcentoldstyle}
+\DeclareTextCommandDefault{\textcolonmonetary}%
+ {\tc@check@symbol2\textcolonmonetary}
+\DeclareTextCommandDefault{\textwon}%
+ {\tc@check@symbol2\textwon}
+\DeclareTextCommandDefault{\textnaira}%
+ {\tc@check@symbol2\textnaira}
+\DeclareTextCommandDefault{\textguarani}%
+ {\tc@check@symbol2\textguarani}
+\DeclareTextCommandDefault{\textpeso}%
+ {\tc@check@symbol2\textpeso}
+\DeclareTextCommandDefault{\textlira}%
+ {\tc@check@symbol2\textlira}
+\DeclareTextCommandDefault{\textrecipe}%
+ {\tc@check@symbol2\textrecipe}
+\DeclareTextCommandDefault{\textinterrobang}%
+ {\tc@check@symbol2\textinterrobang}
+\DeclareTextCommandDefault{\textinterrobangdown}%
+ {\tc@check@symbol2\textinterrobangdown}
+\DeclareTextCommandDefault{\textdong}%
+ {\tc@check@symbol2\textdong}
+\DeclareTextCommandDefault{\textpertenthousand}%
+ {\tc@check@symbol2\textpertenthousand}
+\DeclareTextCommandDefault{\textpilcrow}%
+ {\tc@check@symbol2\textpilcrow}
+\DeclareTextCommandDefault{\textbaht}%
+ {\tc@check@symbol2\textbaht}
+\DeclareTextCommandDefault{\textnumero}%
+ {\tc@check@symbol2\textnumero}
+\DeclareTextCommandDefault{\textdiscount}%
+ {\tc@check@symbol2\textdiscount}
+\DeclareTextCommandDefault{\textopenbullet}%
+ {\tc@check@symbol2\textopenbullet}
+\DeclareTextCommandDefault{\textservicemark}%
+ {\tc@check@symbol2\textservicemark}
+\DeclareTextCommandDefault{\textlquill}%
+ {\tc@check@symbol2\textlquill}
+\DeclareTextCommandDefault{\textrquill}%
+ {\tc@check@symbol2\textrquill}
+\DeclareTextCommandDefault{\textcopyleft}%
+ {\tc@check@symbol2\textcopyleft}
+\DeclareTextCommandDefault{\textcircledP}%
+ {\tc@check@symbol2\textcircledP}
+\DeclareTextCommandDefault{\textreferencemark}%
+ {\tc@check@symbol2\textreferencemark}
+\DeclareTextCommandDefault{\textsurd}%
+ {\tc@check@symbol2\textsurd}
+% \end{macrocode}
+% The |\textcircled| and |\t| are handled specially, unless the
+% current font has a subset id of 0 (i.e. full \texttt{TS1}) we
+% pick the symbols up from the math font encodings, i.e., the
+% third argument to |\CheckEncodingSubset| uses |\UseTextAccent| to
+% get them from there.
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textcircled}
+ {\CheckEncodingSubset\UseTextAccent{TS1}%
+ {\UseTextAccent{OMS}}1\textcircled}
+\DeclareTextCommandDefault{\t}
+ {\CheckEncodingSubset\UseTextAccent{TS1}%
+ {\UseTextAccent{OML}}1\t}
+% \end{macrocode}
+
+
+%
+% Finally input the encoding-specific definitions for
+% \texttt{TS1} thus making the top-level definitions
+% optimised for this encoding (and not for the default
+% encoding).
+% \changes{v1.9o}{1998/03/20}{Load decls after defaults for speed.}
+% \begin{macrocode}
+\input{ts1enc.def}
+% \end{macrocode}
+% Now having the new glyphs available we also want to make sure
+% that they are used. For most cases this will automatically happen
+% but for some glyphs there are inferior definitions already known
+% to \LaTeX{} which will prevent the usage of the \texttt{TS1}
+% versions. So we better
+% get rid of them:
+% \changes{v1.9o}{1998/03/20}{Added various \cs{UndeclareTextCommand}
+% declarations for pr/2783}
+% \begin{macrocode}
+\UndeclareTextCommand{\textsterling}{OT1}
+\UndeclareTextCommand{\textdollar} {OT1}
+% \end{macrocode}
+% Similar declarations should probably be made for other encodings
+% like \texttt{OT4} if they are in use.
+% \begin{macrocode}
+%\UndeclareTextCommand{\textsterling}{OT4}
+%\UndeclareTextCommand{\textdollar} {OT4}
+% \end{macrocode}
+% From the \texttt{T1} encoding there are two candidates for removal:
+% \textperthousand{} and \textpertenthousand{} since these are both
+% constructed from \% followed by a tiny
+% `{\fontencoding{T1}\selectfont \char 24}'
+% rather than being a single glyph. The problem with this
+% approach is that in PostScript fonts this small zero is usually not
+% available resulting in \%\rule{3pt}{3pt} rather than
+% \textperthousand{} while the real glyph (at least for
+% |\textperthousand|) is available in the PostScript version of
+% \texttt{TS1}. So for the moment we compromise by removing the
+% \texttt{T1} declaration for |\textperthousand| but keeping the one
+% for |\textpertenthousand|. This will have the effect that with
+% Computer Modern fonts everything will come out (although
+% \textperthousand{} and \textpertenthousand{} are not taken from the
+% same physical font) and with PostScript fonts \textperthousand{}
+% will come out correctly while \textpertenthousand{} will most
+% likely look like \%\rule{6pt}{3pt} --- which is probably an
+% improvement over just getting a single `\rule{3pt}{3pt}' to
+% indicate a completely missing glyph, which would happen if we
+% also `undeclared' |\textpertenthousand|.
+% \begin{macrocode}
+\UndeclareTextCommand{\textperthousand}{T1}
+%\UndeclareTextCommand{\textpertenthousand}{T1}
+% \end{macrocode}
+%
+%
+% \subsubsection{Supporting oldstyle digits}
+%
+% \begin{macrocode}
+\DeclareRobustCommand\oldstylenums[1]{%
+ \begingroup
+ \ifmmode
+ \mathgroup\symletters #1%
+ \else
+ \CheckEncodingSubset\@use@text@encoding{TS1}%
+ {\PackageWarning{textcomp}%
+ {Oldstyle digits unavailable for
+ family \f@family.\MessageBreak
+ Lining digits used instead}}%
+ \tw@{#1}%
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+%
+% \subsubsection{Subset encoding defaults}
+%
+% For many font families commonly used in the \TeX{} world we
+% provide the subset encoding data here. Users can add additional
+% font families in the file \texttt{textcomp.cfg} if they own other
+% fonts.
+%
+% However, if the option ``forced'' was given then all subset
+% encoding specifications are ignored, so there is no point in
+% setting any of them up:
+% \begin{macrocode}
+\iftc@forced \else
+% \end{macrocode}
+%
+% Computer modern based fonts (e.g., CM, CM-Bright, Concrete):
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{cmr} {0}
+\DeclareEncodingSubset{TS1}{cmss} {0}
+\DeclareEncodingSubset{TS1}{cmtt} {0}
+\DeclareEncodingSubset{TS1}{cmvtt} {0}
+\DeclareEncodingSubset{TS1}{cmbr} {0}
+\DeclareEncodingSubset{TS1}{cmtl} {0}
+\DeclareEncodingSubset{TS1}{ccr} {0}
+% \end{macrocode}
+%
+% PSNFSS fonts:
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{ptm} {4}
+\DeclareEncodingSubset{TS1}{pcr} {4}
+\DeclareEncodingSubset{TS1}{phv} {4}
+\DeclareEncodingSubset{TS1}{ppl} {3}
+\DeclareEncodingSubset{TS1}{pag} {4}
+\DeclareEncodingSubset{TS1}{pbk} {4}
+\DeclareEncodingSubset{TS1}{pnc} {4}
+\DeclareEncodingSubset{TS1}{pzc} {4}
+\DeclareEncodingSubset{TS1}{bch} {4}
+\DeclareEncodingSubset{TS1}{put} {5}
+% \end{macrocode}
+%
+% Other CTAN fonts (probably not complete):
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{uag} {5}
+\DeclareEncodingSubset{TS1}{ugq} {5}
+\DeclareEncodingSubset{TS1}{ul8} {4}
+\DeclareEncodingSubset{TS1}{ul9} {4} % (LuxiSans, one day)
+\DeclareEncodingSubset{TS1}{augie} {5}
+\DeclareEncodingSubset{TS1}{dayrom} {3}
+\DeclareEncodingSubset{TS1}{dayroms} {3}
+\DeclareEncodingSubset{TS1}{pxr} {0}
+\DeclareEncodingSubset{TS1}{pxss} {0}
+\DeclareEncodingSubset{TS1}{pxtt} {0}
+\DeclareEncodingSubset{TS1}{txr} {0}
+\DeclareEncodingSubset{TS1}{txss} {0}
+\DeclareEncodingSubset{TS1}{txtt} {0}
+% \end{macrocode}
+%
+% Latin Modern and TeX Gyre:
+% \changes{v1.99k}{2009/10/28}{Added Latin Modern and TeX Gyre subsets}
+% \changes{v1.99l}{2009/11/04}{Added more Latin Modern and TeX Gyre subsets}
+% \changes{v1.99m}{2015/02/16}{Added lmtt (Heiko Oberdiek) latex/4415}
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{lmr} {0}
+\DeclareEncodingSubset{TS1}{lmdh} {0}
+\DeclareEncodingSubset{TS1}{lmss} {0}
+\DeclareEncodingSubset{TS1}{lmssq} {0}
+\DeclareEncodingSubset{TS1}{lmvtt} {0}
+\DeclareEncodingSubset{TS1}{lmtt} {0}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{qhv} {0}
+\DeclareEncodingSubset{TS1}{qag} {0}
+\DeclareEncodingSubset{TS1}{qbk} {0}
+\DeclareEncodingSubset{TS1}{qcr} {0}
+\DeclareEncodingSubset{TS1}{qcs} {0}
+\DeclareEncodingSubset{TS1}{qpl} {0}
+\DeclareEncodingSubset{TS1}{qtm} {0}
+\DeclareEncodingSubset{TS1}{qzc} {0}
+\DeclareEncodingSubset{TS1}{qhvc} {0}
+% \end{macrocode}
+%
+% Fourier-GUTenberg:
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{futs} {4}
+\DeclareEncodingSubset{TS1}{futx} {4}
+\DeclareEncodingSubset{TS1}{futj} {4}
+% \end{macrocode}
+%
+% Y\&Y's Lucida Bright
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{hlh} {3}
+\DeclareEncodingSubset{TS1}{hls} {3}
+\DeclareEncodingSubset{TS1}{hlst} {3}
+% \end{macrocode}
+% The remaining settings for Lucida are conservative: the following
+% fonts contain the |\textohm| character but not the |\texteuro|,
+% i.e., belong to neither subset~4 nor subset~3. If you want to
+% use the |\textohm| with these fonts copy these definition to
+% \texttt{textcomp.cfg} and change the subset to~3. However in that
+% case make sure that you do not use the |\texteuro|.
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{hlct} {5}
+\DeclareEncodingSubset{TS1}{hlx} {5}
+\DeclareEncodingSubset{TS1}{hlce} {5}
+\DeclareEncodingSubset{TS1}{hlcn} {5}
+\DeclareEncodingSubset{TS1}{hlcw} {5}
+\DeclareEncodingSubset{TS1}{hlcf} {5}
+% \end{macrocode}
+%
+% Other commercial families\ldots
+% \begin{macrocode}
+\DeclareEncodingSubset{TS1}{pplx} {3}
+\DeclareEncodingSubset{TS1}{pplj} {3}
+\DeclareEncodingSubset{TS1}{ptmx} {4}
+\DeclareEncodingSubset{TS1}{ptmj} {4}
+% \end{macrocode}
+%
+% If the file \texttt{textcomp.cfg} exists it will be loaded at
+% this point. This allows to define further subset encodings for
+% font families not covered by default.
+%
+% \begin{macrocode}
+\InputIfFileExists{textcomp.cfg}
+ {\PackageInfo{textcomp}{Local configuration file used}}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</TS1oldsty>
+% \end{macrocode}
+
+
+% \Finale
+%
+
+
+
+
+\endinput
diff --git a/Master/texmf-dist/source/latex/base/ltthm.dtx b/Master/texmf-dist/source/latex/base/ltthm.dtx
index ee1b51ac5d8..4e3c51ab77e 100644
--- a/Master/texmf-dist/source/latex/base/ltthm.dtx
+++ b/Master/texmf-dist/source/latex/base/ltthm.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltvers.dtx b/Master/texmf-dist/source/latex/base/ltvers.dtx
index 813dd68f633..b23271f83b3 100644
--- a/Master/texmf-dist/source/latex/base/ltvers.dtx
+++ b/Master/texmf-dist/source/latex/base/ltvers.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltvers.dtx}
- [2019/07/01 v1.1c LaTeX Kernel (Version Info)]
+ [2020/01/31 v1.1e LaTeX Kernel (Version Info)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltvers.dtx}
@@ -112,17 +112,17 @@
%</2ekernel>
%<latexrelease>\edef\latexreleaseversion
%<*2ekernel|latexrelease>
- {2019-10-01}
+ {2020-02-02}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{3}
+\def\patch@level{0}
% \end{macrocode}
-%
+%
% \begin{macro}{\development@branch@name}
% For more fine grain control there is the possibility to name the
% current development branch. This is only used when the
% \cs{patch@level} is negative (i.e., a pre-release format) and is
-% intended to help help us internally when we locally install a
+% intended to help us internally when we locally install a
% format out of some development branch.
% \begin{macrocode}
\edef\development@branch@name{}
@@ -177,8 +177,9 @@
% \changes{v1.0p}{2015/01/22}{Preserve any \cs{everyjob} material inserted
% by a loader (\texttt{.ini} file)}
% \changes{v1.0v}{2015/08/23}{Allow negative patchlevel for pre-release}
+% \changes{v1.1e}{2020/01/31}{Allow for upcoming format as pre-release 0}
% \begin{macrocode}
- \ifnum\patch@level=0
+ \ifnum0\ifnum\patch@level=0 \ifx\development@branch@name\@empty 1\fi\fi>0 %
\everyjob\expandafter{\the\everyjob
\typeout{\fmtname \space<\fmtversion>}}
\immediate
@@ -190,7 +191,7 @@
\write16{\fmtname \space<\fmtversion> patch level \patch@level}
\else
\everyjob\expandafter{\the\everyjob
- \typeout{\fmtname \space<\fmtversion> pre-release\patch@level
+ \typeout{\fmtname \space<\fmtversion> pre-release-\number-\patch@level\space
\ifx\development@branch@name\@undefined \else
\ifx\development@branch@name\@empty \else
\space (\development@branch@name\space branch)%
@@ -198,7 +199,7 @@
\fi
}}
\immediate
- \write16{\fmtname \space<\fmtversion> pre-release\patch@level
+ \write16{\fmtname \space<\fmtversion> pre-release-\number-\patch@level\space
\ifx\development@branch@name\@undefined \else
\ifx\development@branch@name\@empty \else
\space (\development@branch@name\space branch)%
@@ -240,7 +241,7 @@
% \end{macrocode}
%
% If a specific date has not been specified in |latexrelease|
-% use `|#1|`.
+% use `|#1|`.
% \begin{macrocode}
\def\@IncludeInRelease#1[#2]{\@IncludeInRele@se{#2}}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/ltxdoc.dtx b/Master/texmf-dist/source/latex/base/ltxdoc.dtx
index 2d3e5aad2a6..f250b2cb193 100644
--- a/Master/texmf-dist/source/latex/base/ltxdoc.dtx
+++ b/Master/texmf-dist/source/latex/base/ltxdoc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/ltxref.dtx b/Master/texmf-dist/source/latex/base/ltxref.dtx
index 27d32504137..c20a3245588 100644
--- a/Master/texmf-dist/source/latex/base/ltxref.dtx
+++ b/Master/texmf-dist/source/latex/base/ltxref.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -70,7 +70,7 @@
%
% |\ref|\marg{foo}: value of most recently incremented referencable
% counter. in the current environment. (Chapter, section,
-% theorem and enumeration counters counters are
+% theorem and enumeration counters are
% referencable, footnote counters are not.)
%
% |\pageref|\marg{foo}: page number at which |\label{foo}| command
@@ -314,7 +314,7 @@
%<latexrelease>\IncludeInRelease{2019/10/01}%
%<latexrelease> {\refstepcounter}{Add \labelformat and \Ref}%
% \end{macrocode}
-%
+%
% \begin{macro}{\refstepcounter}
% Step the counter and allow for labels to point to its current value.
% \begin{macrocode}
@@ -324,14 +324,14 @@
% By generating the second csname first the |\p@...| command can
% grab it as an argument which can be helpful for more complicated
% typesetting arrangements.
-%
+%
% The trick is to ensure that |\csname the#1\endcsname| is turned
% into a single token before |\p@...| is expanded further. This
% way, if the |\p@...| command is a macro with one argument it will
% receive |\the...|. With the original kernel code (i.e., without the
% |\expandafter|) it will instead pick up |\csname| which would be
% disastrous.
-%
+%
% Using |\expandafter| instead of braces delimiting the argument is
% better because, assuming that the |\p@...| command is not defined
% as a macro with one argument, the braces will stay and prohibit
@@ -394,11 +394,11 @@
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
-%
-%
-%
-%
-%
+%
+%
+%
+%
+%
%
%
% \begin{macro}{\@currentlabel}
diff --git a/Master/texmf-dist/source/latex/base/makeindx.dtx b/Master/texmf-dist/source/latex/base/makeindx.dtx
index aa998bf3cac..a149bcf86c5 100644
--- a/Master/texmf-dist/source/latex/base/makeindx.dtx
+++ b/Master/texmf-dist/source/latex/base/makeindx.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/makeindx.ins b/Master/texmf-dist/source/latex/base/makeindx.ins
index b31b967c41a..5e86d50579e 100644
--- a/Master/texmf-dist/source/latex/base/makeindx.ins
+++ b/Master/texmf-dist/source/latex/base/makeindx.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
diff --git a/Master/texmf-dist/source/latex/base/newdc.ins b/Master/texmf-dist/source/latex/base/newdc.ins
index 5786282a87a..962510313c0 100644
--- a/Master/texmf-dist/source/latex/base/newdc.ins
+++ b/Master/texmf-dist/source/latex/base/newdc.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file may only be distributed together with a copy of the LaTeX
@@ -87,7 +87,7 @@ making successful document exchange impossible.
\Msg{*** Generating font defs for Cork encoded
and Text Companion fonts ***}
-
+
\generate{
\file{t1cmfib.fd}{
\from{cmfonts.fdd}{fd,T1cmfib,new}}
@@ -112,7 +112,7 @@ making successful document exchange impossible.
\file{ts1cmvtt.fd}{
\from{cmfonts.fdd}{fd,TS1cmvtt,new,tt}}
}
-
+
\ifToplevel{
\Msg{***********************************************************}
@@ -128,6 +128,5 @@ making successful document exchange impossible.
\Msg{* Happy TeXing}
\Msg{***********************************************************}
}
-
-\endbatchfile
+\endbatchfile
diff --git a/Master/texmf-dist/source/latex/base/newlfont.dtx b/Master/texmf-dist/source/latex/base/newlfont.dtx
index 5bba5441ddc..91a19196a78 100644
--- a/Master/texmf-dist/source/latex/base/newlfont.dtx
+++ b/Master/texmf-dist/source/latex/base/newlfont.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/nfssfont.dtx b/Master/texmf-dist/source/latex/base/nfssfont.dtx
index fc92f83451b..ce47cb85543 100644
--- a/Master/texmf-dist/source/latex/base/nfssfont.dtx
+++ b/Master/texmf-dist/source/latex/base/nfssfont.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/nfssfont.ins b/Master/texmf-dist/source/latex/base/nfssfont.ins
index c1ac6634714..d6760bcfde8 100644
--- a/Master/texmf-dist/source/latex/base/nfssfont.ins
+++ b/Master/texmf-dist/source/latex/base/nfssfont.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
diff --git a/Master/texmf-dist/source/latex/base/olddc.ins b/Master/texmf-dist/source/latex/base/olddc.ins
index b512ab2e3e1..85cb077b59c 100644
--- a/Master/texmf-dist/source/latex/base/olddc.ins
+++ b/Master/texmf-dist/source/latex/base/olddc.ins
@@ -3,42 +3,42 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
\input docstrip
-
+
\preamble
This is a generated file.
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file may only be distributed together with a copy of the LaTeX
@@ -86,7 +86,7 @@ making successful document exchange impossible.
\usedir{tex/latex/base}
\Msg{*** Generating font defs for Cork encoded fonts ***}
-
+
\generate{
\file{t1cmfib.fd}{
\from{cmfonts.fdd}{fd,T1cmfib,old}}
@@ -103,9 +103,9 @@ making successful document exchange impossible.
\file{t1cmvtt.fd}{
\from{cmfonts.fdd}{fd,T1cmvtt,old}}
}
-
-
-
+
+
+
\ifToplevel{
\Msg{***********************************************************}
\Msg{*}
@@ -120,5 +120,5 @@ making successful document exchange impossible.
\Msg{* Happy TeXing}
\Msg{***********************************************************}
}
-
+
\endbatchfile
diff --git a/Master/texmf-dist/source/latex/base/oldlfont.dtx b/Master/texmf-dist/source/latex/base/oldlfont.dtx
index bf393414883..c0c14f2aa26 100644
--- a/Master/texmf-dist/source/latex/base/oldlfont.dtx
+++ b/Master/texmf-dist/source/latex/base/oldlfont.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/preload.dtx b/Master/texmf-dist/source/latex/base/preload.dtx
index a6d7903299a..fd9e03ac44f 100644
--- a/Master/texmf-dist/source/latex/base/preload.dtx
+++ b/Master/texmf-dist/source/latex/base/preload.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/proc.dtx b/Master/texmf-dist/source/latex/base/proc.dtx
index a74dfa36e4f..8db8fef7f10 100644
--- a/Master/texmf-dist/source/latex/base/proc.dtx
+++ b/Master/texmf-dist/source/latex/base/proc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/proc.ins b/Master/texmf-dist/source/latex/base/proc.ins
index 15161a49601..2c419c92b94 100644
--- a/Master/texmf-dist/source/latex/base/proc.ins
+++ b/Master/texmf-dist/source/latex/base/proc.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
diff --git a/Master/texmf-dist/source/latex/base/slides.dtx b/Master/texmf-dist/source/latex/base/slides.dtx
index 54cfaa20fd8..a0dbdabe5f0 100644
--- a/Master/texmf-dist/source/latex/base/slides.dtx
+++ b/Master/texmf-dist/source/latex/base/slides.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -53,7 +53,7 @@
%<*driver>
\ProvidesFile{slides.drv}
%</driver>
- [2016/03/29 v2.4a
+ [2019/11/04 v2.4b
%<+class> Standard LaTeX document class]
%<+cmd> SLiTeX definitions]
% \end{macrocode}
@@ -419,6 +419,12 @@
\def\sldefault{sl}
\def\bfdefault{bx}
% \end{macrocode}
+% As |\fontshape| gets redefined we need to make sure that the default
+% for |\upshape| is no longer \texttt{up} but again \texttt{n}.
+% \changes{v2.4b}{2019/11/04}{Explicitly set \cs{updefault}}
+% \begin{macrocode}
+\def\updefault{n}
+% \end{macrocode}
%
%
% Since the number of parameters to set are very large it seems
@@ -2408,7 +2414,7 @@ COLOR LAYER\\[.75in]%
% (re)declare these booleans as they not defined in old format
% (or with latexrelease package)
% \begin{macrocode}
-\newif\if@ovvline \@ovvlinetrue
+\newif\if@ovvline \@ovvlinetrue
\newif\if@ovhline \@ovhlinetrue
% \end{macrocode}
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/slides.ins b/Master/texmf-dist/source/latex/base/slides.ins
index a25c3f8fe25..0eaa1eb1d7f 100644
--- a/Master/texmf-dist/source/latex/base/slides.ins
+++ b/Master/texmf-dist/source/latex/base/slides.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
@@ -94,11 +94,11 @@ extension .ins) which are part of the distribution.
\preamble
-This is a generated file.
+This is a generated file.
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -108,7 +108,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file may only be distributed together with a copy of the LaTeX
@@ -138,9 +138,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -150,7 +150,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file may only be distributed together with a copy of the LaTeX
diff --git a/Master/texmf-dist/source/latex/base/slifonts.fdd b/Master/texmf-dist/source/latex/base/slifonts.fdd
index abb950d6a1b..d3951cfa574 100644
--- a/Master/texmf-dist/source/latex/base/slifonts.fdd
+++ b/Master/texmf-dist/source/latex/base/slifonts.fdd
@@ -2,29 +2,29 @@
%
% Copyright 1993-2019
% The LaTeX3 Project and any individual authors listed elsewhere
-% in this file.
-%
+% 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
% https://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
+% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 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
+%
+% 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
%
%\iffalse This is a META comment
@@ -51,7 +51,7 @@
\documentclass{ltxdoc}
\GetFileInfo{sfonts.drv}
\providecommand\dst{\expandafter{\normalfont\scshape docstrip}}
-\title{The file \texttt{slifonts.fdd} for use with
+\title{The file \texttt{slifonts.fdd} for use with
\LaTeXe.\thanks{This file has version
number \fileversion, dated \filedate.}}
\date{\filedate}
@@ -132,7 +132,7 @@
%
% The next bit of code contains the documentation driver file for
% \TeX{}, i.e., the file that will produce the documentation you are
-% currently reading. It will be extracted from this file by the
+% currently reading. It will be extracted from this file by the
% \dst{} program.
% \changes{v2.1b}{1993/12/14}{Corrected \cs{documentclass}.}
% \begin{macrocode}
@@ -197,7 +197,7 @@
}{}
%</lccr>
% \end{macrocode}
-%
+%
% \subsection{Computer Modern Sans}
%
% \begin{macrocode}
@@ -205,7 +205,7 @@
%<!ec> \DeclareFontFamily{OT1}{lcmss}{\hyphenchar\font45 }
%<ec> \DeclareFontFamily{T1}{lcmss}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmss}{m}{n}{%
%<ec> \DeclareFontShape{T1}{lcmss}{m}{n}{%
@@ -214,7 +214,7 @@
%<ec> eclq8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmss}{m}{In}{%
%<ec> \DeclareFontShape{T1}{lcmss}{m}{In}{%
@@ -223,7 +223,7 @@
%<ec> ieclq8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmss}{m}{sl}{%
%<ec> \DeclareFontShape{T1}{lcmss}{m}{sl}{%
@@ -232,7 +232,7 @@
%<ec> ecli8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmss}{m}{Isl}{%
%<ec> \DeclareFontShape{T1}{lcmss}{m}{Isl}{%
@@ -241,19 +241,19 @@
%<ec> iecli8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmss}{m}{it}{%
%<ec> \DeclareFontShape{T1}{lcmss}{m}{it}{%
<->sub*lcmss/m/sl}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmss}{m}{Iit}{%
%<ec> \DeclareFontShape{T1}{lcmss}{m}{Iit}{%
<->sub*lcmss/m/Isl}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmss}{bx}{n}{%
%<ec> \DeclareFontShape{T1}{lcmss}{bx}{n}{%
@@ -262,7 +262,7 @@
%<ec> eclb8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmss}{bx}{In}{%
%<ec> \DeclareFontShape{T1}{lcmss}{bx}{In}{%
@@ -280,7 +280,7 @@
eclo8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareFontShape{T1}{lcmss}{bx}{Isl}{%
<13.82><16.59><19.907><23.89><28.66><34.4><41.28>%
@@ -291,7 +291,7 @@
\DeclareFontShape{T1}{lcmss}{bx}{it}{%
<->sub*lcmss/bx/sl}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareFontShape{T1}{lcmss}{bx}{Iit}{%
<->sub*lcmss/bx/Isl}{}
@@ -314,7 +314,7 @@
%</!ec>
%</lcmss>
% \end{macrocode}
-%
+%
% \subsection{Computer Modern Typewriter}
%
% \begin{macrocode}
@@ -322,7 +322,7 @@
%<!ec> \DeclareFontFamily{OT1}{lcmtt}{\hyphenchar\font\m@ne}
%<ec> \DeclareFontFamily{T1}{lcmtt}{\hyphenchar\font\m@ne}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmtt}{m}{n}{%
%<ec> \DeclareFontShape{T1}{lcmtt}{m}{n}{%
@@ -331,7 +331,7 @@
%<ec> ecltt8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmtt}{m}{In}{%
%<ec> \DeclareFontShape{T1}{lcmtt}{m}{In}{%
@@ -340,7 +340,7 @@
%<ec> iecltt8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<!ec> \DeclareFontShape{OT1}{lcmtt}{m}{it}{%
%<ec> \DeclareFontShape{T1}{lcmtt}{m}{it}{%
@@ -362,47 +362,47 @@
%</!ec>
%</lcmtt>
% \end{macrocode}
-%
+%
% \subsection{Computer Modern Math}
%
% \begin{macrocode}
%<*lcmm>
\DeclareFontFamily{OML}{lcmm}{\skewchar\font'177}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareFontShape{OML}{lcmm}{m}{it}{%
<7><8><10><12><13.82><16.59><19.907><23.89><28.66><34.4><41.28>cmmi8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareFontShape{OML}{lcmm}{m}{Iit}{%
<7><8><10><12><13.82><16.59><19.907><23.89><28.66><34.4><41.28>icmmi8%
}{}
%</lcmm>
% \end{macrocode}
-%
+%
% \subsection{Computer Modern Symbol}
%
% \begin{macrocode}
%<*lcmsy>
\DeclareFontFamily{OMS}{lcmsy}{\skewchar\font'60}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareFontShape{OMS}{lcmsy}{m}{n}{%
<7><8><10><12><13.82><16.59><19.907><23.89><28.66><34.4><41.28>cmsy8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareFontShape{OMS}{lcmsy}{m}{In}{%
<7><8><10><12><13.82><16.59><19.907><23.89><28.66><34.4><41.28>icmsy8%
}{}
%</lcmsy>
% \end{macrocode}
-%
+%
% \subsection{Computer Modern large symbols}
%
% \changes{v2.1g}{1994/03/01}{Removed extra pair of curly braces
@@ -414,14 +414,14 @@
<->sfixed*[17.28]cmex10%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareFontShape{OMX}{lcmex}{m}{In}{%
<->sfixed*[17.28]icmex10%
}{}
%</lcmex>
% \end{macrocode}
-%
+%
% \subsection{\LaTeX{} symbols}
%
% \changes{v2.2d}{1997/10/20}{Removed superfluous pair of braces at
@@ -433,14 +433,14 @@
<12><13.82><16.59><19.907><23.89><28.66><34.4><41.28>lasy8%
}{}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\DeclareFontShape{U}{llasy}{m}{In}{%
<13.82><16.59><19.907><23.89><28.66><34.4><41.28>ilasy8%
}{}
%</llasy>
% \end{macrocode}
-%
+%
% \section{Setting defaults}
%
% The following statements go into the file \texttt{sfonts.def}
@@ -455,7 +455,7 @@
\DeclareFontSubstitution{OT1}{lcmss}{m}{n}
\input ot1lcmss.fd
% \end{macrocode}
-%
+%
% Ensure some suitable starting values but don't load any font
% yet. In the past this was implicitly done as part of
% \cs{DeclareErrorFont} but not any longer.
diff --git a/Master/texmf-dist/source/latex/base/syntonly.dtx b/Master/texmf-dist/source/latex/base/syntonly.dtx
index 6d4c710d0d2..1f7c5b651d5 100644
--- a/Master/texmf-dist/source/latex/base/syntonly.dtx
+++ b/Master/texmf-dist/source/latex/base/syntonly.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
diff --git a/Master/texmf-dist/source/latex/base/syntonly.ins b/Master/texmf-dist/source/latex/base/syntonly.ins
index 2adf6c3d789..c4a69c4101a 100644
--- a/Master/texmf-dist/source/latex/base/syntonly.ins
+++ b/Master/texmf-dist/source/latex/base/syntonly.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file has the LPPL maintenance status "maintained".
@@ -73,8 +73,8 @@ 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
+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.
\endpreamble
@@ -85,4 +85,3 @@ extension .ins) which are part of the distribution.
\from{syntonly.dtx}{package}}
\endbatchfile
-
diff --git a/Master/texmf-dist/source/latex/base/tulm.fdd b/Master/texmf-dist/source/latex/base/tulm.fdd
index dfda332ce4f..9308d801ff2 100644
--- a/Master/texmf-dist/source/latex/base/tulm.fdd
+++ b/Master/texmf-dist/source/latex/base/tulm.fdd
@@ -2,29 +2,29 @@
%
% Copyright 2016-2019
% The LaTeX3 Project and any individual authors listed elsewhere
-% in this file.
-%
+% 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
% https://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
+% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 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
+%
+% 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
%
%\iffalse This is a META comment
diff --git a/Master/texmf-dist/source/latex/base/tulm.ins b/Master/texmf-dist/source/latex/base/tulm.ins
index d3079568309..9e32e39a63b 100644
--- a/Master/texmf-dist/source/latex/base/tulm.ins
+++ b/Master/texmf-dist/source/latex/base/tulm.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 2016-2019
+%% Copyright (C) 2016-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -48,9 +48,9 @@ reports for it can be opened at https://latex-project.org/bugs.html
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 2016-2019
+Copyright (C) 2016-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the LaTeX base system.
--------------------------------------------------------------
@@ -60,7 +60,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2008 or later.
This file may only be distributed together with a copy of the LaTeX
@@ -93,7 +93,7 @@ making successful document exchange impossible.
\file{tulmvtt.fd}{\from{tulm.fdd}{TUlmvtt}}
\file{tulmdh.fd}{\from{tulm.fdd}{TUlmdh}}}
-
+
\ifToplevel{
\Msg{***********************************************************}
\Msg{*}
@@ -108,6 +108,5 @@ making successful document exchange impossible.
\Msg{* Happy TeXing}
\Msg{***********************************************************}
}
-
-\endbatchfile
+\endbatchfile
diff --git a/Master/texmf-dist/source/latex/base/unpack.ins b/Master/texmf-dist/source/latex/base/unpack.ins
index 5e6f36ca9dd..b03dd5c6b1b 100644
--- a/Master/texmf-dist/source/latex/base/unpack.ins
+++ b/Master/texmf-dist/source/latex/base/unpack.ins
@@ -3,36 +3,36 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% This file has the LPPL maintenance status "maintained".
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% 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.
-%%
-%%
-%%
+%%
+%%
+%%
%%
%% --------------- start of bootstrap commands ------------------
%%
@@ -82,7 +82,7 @@
\batchinput{ltoutenc.ins}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% other classes and packages
\batchinput{classes.ins}
diff --git a/Master/texmf-dist/source/latex/base/utf8ienc.dtx b/Master/texmf-dist/source/latex/base/utf8ienc.dtx
index ea377297a58..8d454d1c718 100644
--- a/Master/texmf-dist/source/latex/base/utf8ienc.dtx
+++ b/Master/texmf-dist/source/latex/base/utf8ienc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -216,14 +216,14 @@
%<+ts1> \ProvidesFile{ts1enc.dfu}
%<+x2> \ProvidesFile{x2enc.dfu}
%<+all> \ProvidesFile{utf8enc.dfu}
-%<-utf8-2018> [2019/07/11 v1.2j UTF-8 support for inputenc]
+%<-utf8-2018> [2019/11/14 v1.2k UTF-8 support for inputenc]
% \end{macrocode}
%
% \begin{macrocode}
%<*utf8>
% \end{macrocode}
% This is a temporary fix for the e-p\TeX{} / e-up\TeX{} engines that do not yet
-% have a |\ifincsname| primitive. Once this is available the the extra file will
+% have a |\ifincsname| primitive. Once this is available the extra file will
% be dropped.
% \changes{v1.2h}{2019/07/09}{Temp rollback fix for e-pTeX}
% \begin{macrocode}
@@ -235,7 +235,7 @@
\fi
\endinput
% \end{macrocode}
-%
+%
% \begin{macrocode}
\makeatletter
% \end{macrocode}
@@ -451,7 +451,7 @@
\else
\PackageError{inputenc}{Invalid UTF-8 byte sequence}%
\UTFviii@invalid@help
- \fi
+ \fi
% \end{macrocode}
%
% \begin{macrocode}
@@ -769,7 +769,7 @@
% the character os already active. The definition of |\UTFviii@tmp|
% looks slightly strange but is designed for the sequence of |\expandafter|
% in |\DeclareUnicodeCharacter|.
-%
+%
% \begin{macrocode}
\ifnum\count@<"A0\relax
\ifnum\catcode\count@=13
@@ -784,7 +784,7 @@
% The code below is derived from \texttt{xmltex} and generates the UTF-8 byte sequence
% for the number in |\count@|.
%
-% The reverse operation (just used in error messages)
+% The reverse operation (just used in error messages)
% has now been added as \cs{decode@UTFviii}.
% \begin{macrocode}
\else\ifnum\count@<"800\relax
@@ -889,16 +889,16 @@
\gdef\dec@de@UTFviii#1{%
\ifx\relax#1%
\else
- \ifnum`#1>"EF
+ \ifnum`#1>"EF
((((`#1-"F0)%
\else
- \ifnum`#1>"DF
+ \ifnum`#1>"DF
(((`#1-"E0)%
\else
- \ifnum`#1>"BF
+ \ifnum`#1>"BF
((`#1-"C0)%
\else
- \ifnum`#1>"7F
+ \ifnum`#1>"7F
)*64+(`#1-"80)%
\else
+`#1 %
@@ -1030,7 +1030,7 @@
% \end{macrocode}
% However, we don't know if there are font encodings still to be
% loaded (either with \texttt{fontenc} or directly with |\input| by
-% some some package). Font encoding files are loaded only if the
+% some package). Font encoding files are loaded only if the
% corresponding encoding has not been loaded yet, and they always
% begin with |\DeclareFontEncoding|. We now redefine the internal
% kernel version of the latter to load the Unicode file if available.
@@ -1789,14 +1789,15 @@
% (which is normally the case) they are then reconstructed as
% ligatures so they come out as desired. Otherwise they will come
% out as individual characters which is fine too.
-% \changes{v1.2j}{2019/07/11}{Add typical f-ligatures and st (github/154)}
+% \changes{v1.2j}{2019/07/11}{Add typical f-ligatures and s-ligatures and st (github/154)}
+% \changes{v1.kj}{2019/11/14}{Fixed setting for FB05 = long-s t lig (github/154)}
% \begin{macrocode}
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB00}{ff} % ff
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB01}{fi} % fi
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB02}{fl} % fl
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB03}{ffi} % ffi
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB04}{ffl} % ffl
-%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB05}{ft} % ſt
+%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB05}{st} % ſt -- this is the long s (not f)
%<all,t1,ot1,ly1,t2a,t2b,t2c>\DeclareUnicodeCharacter{FB06}{st} % st
% \end{macrocode}
%
@@ -1805,8 +1806,8 @@
% \begin{macrocode}
%<all,ts1,utf8>\DeclareUnicodeCharacter{FEFF}{\ifhmode\nobreak\fi}
% \end{macrocode}
-%
-%
+%
+%
% \endgroup
% \subsection{Notes}
%
@@ -1931,7 +1932,7 @@
% This space is intentionally empty ...
%</utf8>
% \end{macrocode}
-%
+%
% \subsection{Old \texttt{utf8.def} file as a temp fix for p\TeX{} and friends}
%
%
diff --git a/Master/texmf-dist/source/latex/graphics/color.dtx b/Master/texmf-dist/source/latex/graphics/color.dtx
index 8de7d013a37..ad5df89a7ee 100644
--- a/Master/texmf-dist/source/latex/graphics/color.dtx
+++ b/Master/texmf-dist/source/latex/graphics/color.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% color.dtx Copyright (C) 1994--1999 David Carlisle
-%% Copyright (C) 2005-2019 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2005-2020 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
@@ -19,7 +19,7 @@
%<driver> \ProvidesFile{color.drv}
% \fi
% \ProvidesFile{color.dtx}
- [2016/07/10 v1.1e Standard LaTeX Color (DPC)]
+ [2019/11/23 v1.2a Standard LaTeX Color (DPC)]
%
% \iffalse
%<*driver>
@@ -462,10 +462,10 @@
% correctly.
% \changes{v0.3a}{1994/07/20}
% {Stop command being \cs{long}, and make robust.}
-% \changes{v0.3l}{1995/12/07}
-% {Add \cs{leavevmode}}
+% \changes{v1.2a}{2019/11/23}
+% {Add \cs{protected} gh/208}
% \begin{macrocode}
-\def\textcolor#1#{\@textcolor{#1}}
+\protected\def\textcolor#1#{\@textcolor{#1}}
\def\@textcolor#1#2#3{\protect\leavevmode{\color#1{#2}#3}}
% \end{macrocode}
% \end{macro}
@@ -481,8 +481,10 @@
% {end the group even if the colour command generates an error}
% \changes{v0.3c}{1994/09/19}
% {Use \cs{color} to parse arguments}
+% \changes{v1.2a}{2019/11/23}
+% {Add \cs{protected} gh/208}
% \begin{macrocode}
-\def\pagecolor{%
+\protected\def\pagecolor{%
\begingroup
\let\ignorespaces\endgroup
\let\set@color\set@page@color
@@ -497,8 +499,10 @@
%
% \changes{v1.1a}{2014/04/23}
% {add \cs{nopagecolor} graphics/3873}
+% \changes{v1.2a}{2019/11/23}
+% {Add \cs{protected} gh/208}
% \begin{macrocode}
-\def\nopagecolor{%
+\protected\def\nopagecolor{%
\@ifundefined{no@page@color}{%
\PackageInfo{color}{\string\nopagecolor\space is not supported}%
}{%
@@ -533,8 +537,10 @@
% {New internal implementation of colour commands}
% \changes{v0.3f}{1994/10/04}
% {Give info about redefinitions}
+% \changes{v1.2a}{2019/11/23}
+% {Add \cs{protected} gh/208}
% \begin{macrocode}
-\def\definecolor#1#2#3{%
+\protected\def\definecolor#1#2#3{%
\@ifundefined{color@#2}%
{\c@lor@error{model `#2'}}%
{\@ifundefined{\string\color @#1}{}%
@@ -589,8 +595,10 @@
% |[named]| all the time, just give the package option |usenames|, which
% will redefine |\DefineNamedColor|, so that the colour name is declared
% as a user-colour as well as a name in the `named' model.
+% \changes{v1.2a}{2019/11/23}
+% {Add \cs{protected} gh/208}
% \begin{macrocode}
-\def\DefineNamedColor#1#2#3#4{%
+\protected\def\DefineNamedColor#1#2#3#4{%
\@ifundefined{define@color@#1}%
{\c@lor@error{model `#1'}}%
{\@ifundefined{color@#3}%
@@ -684,8 +692,10 @@
% \changes{v0.2d}{1994/05/13}
% {Stop changing \cs{reset@font}. Use the new \cs{normalfont}
% instead.}
+% \changes{v1.2a}{2019/11/23}
+% {Add \cs{protected} gh/208}
% \begin{macrocode}
-\def\normalcolor{\let\current@color\default@color\set@color}
+\protected\def\normalcolor{\let\current@color\default@color\set@color}
% \end{macrocode}
% \end{macro}
%
@@ -751,8 +761,10 @@
% colour specifies the \emph{background} colour of the box.
% \changes{v0.3b}{1994/09/14}
% {New implementation}
+% \changes{v1.2a}{2019/11/23}
+% {Add \cs{protected} gh/208}
% \begin{macrocode}
-\def\colorbox#1#{\color@box{#1}}
+\protected\def\colorbox#1#{\color@box{#1}}
% \end{macrocode}
% \end{macro}
%
@@ -771,9 +783,11 @@
% colour model for both colours.
% \changes{v0.3b}{1994/09/14}
% {New implementation}
+% \changes{v1.2a}{2019/11/23}
+% {Add \cs{protected} gh/208}
% \begin{macro}{\fcolorbox}
% \begin{macrocode}
-\def\fcolorbox#1#{\color@fbox{#1}}
+\protected\def\fcolorbox#1#{\color@fbox{#1}}
% \end{macrocode}
%
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/graphics/drivers.dtx b/Master/texmf-dist/source/latex/graphics/drivers.dtx
index d693ebd27b0..9bf32f78a1f 100644
--- a/Master/texmf-dist/source/latex/graphics/drivers.dtx
+++ b/Master/texmf-dist/source/latex/graphics/drivers.dtx
@@ -3,7 +3,7 @@
%
%% drivers.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
%% Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%% Copyright (C) 2000-2019 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2000-2020 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/Master/texmf-dist/source/latex/graphics/epsfig.dtx b/Master/texmf-dist/source/latex/graphics/epsfig.dtx
index f9197c7b1c9..8e883bd8df7 100644
--- a/Master/texmf-dist/source/latex/graphics/epsfig.dtx
+++ b/Master/texmf-dist/source/latex/graphics/epsfig.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% epsfig.dtx Copyright (C) 1994-1996 1999 Sebastian Rahtz
-%% Copyright (C) 2000-2019 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2000-2020 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/Master/texmf-dist/source/latex/graphics/graphics.dtx b/Master/texmf-dist/source/latex/graphics/graphics.dtx
index ac570c02278..b88ef1e0666 100644
--- a/Master/texmf-dist/source/latex/graphics/graphics.dtx
+++ b/Master/texmf-dist/source/latex/graphics/graphics.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% graphics.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
-%% Copyright (C) 1995-2019 David Carlisle, LaTeX3 Project
+%% Copyright (C) 1995-2020 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
@@ -25,7 +25,7 @@
%<driver> \ProvidesFile{graphics.drv}
% \fi
% \ProvidesFile{graphics.dtx}
- [2019/11/01 v1.3d Standard LaTeX Graphics (DPC,SPQR)]
+ [2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR)]
%
% \iffalse
%<*driver>
@@ -870,9 +870,10 @@
% \changes{v1.1a}{2017/03/17}
% {\cs{leavevmode} added before the group in \cs{Gin@iii} so that
% settings in \cs{everypar} are cleared}
+% \changes{v1.4a}{2019/11/30}{Add \cs{protected} gh/208}
% Top level command for the standard interface, just look for a |*|.
% \begin{macrocode}
-\def\includegraphics{%
+\protected\def\includegraphics{%
% \end{macrocode}
% Clear |\everypar| before starting a group.
% \begin{macrocode}
@@ -1081,7 +1082,7 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-%
+%
% \begin{macro}{\Ginclude@graphics}
% The main internal function implementing graphics file inclusion.
% |#1| is the file name.
@@ -1651,8 +1652,9 @@
% \changes{v0.7a}{1995/04/11}{\cs{leavevmode} added graphics/1521}
% \changes{v1.0n}{2001/07/07}
% {Made long (CAR) graphics/2908 and 3345}
+% \changes{v1.4a}{2019/11/30}{Add \cs{protected} gh/208}
% \begin{macrocode}
-\long\def\rotatebox#1#2{%
+\protected\long\def\rotatebox#1#2{%
\leavevmode
\Grot@setangle{#1}%
\setbox\z@\hbox{{#2}}%
@@ -1866,8 +1868,9 @@
% The top level |\scalebox|. If the vertical scale factor is omitted it
% defaults to the horizontal scale factor, |#1|.
% \changes{v0.3d}{1994/03/06}{Better support for negative arguments.}
+% \changes{v1.4a}{2019/11/30}{Add \cs{protected} gh/208}
% \begin{macrocode}
-\def\scalebox#1{%
+\protected\def\scalebox#1{%
\@ifnextchar[{\Gscale@box{#1}}{\Gscale@box{#1}[#1]}}
% \end{macrocode}
% \end{macro}
@@ -1905,8 +1908,9 @@
% \begin{macro}{\reflectbox}
% Just an abbreviation for the appropriate scale to get reflection.
% \changes{v0.3e}{1994/03/09}{Macro added}
+% \changes{v1.4a}{2019/11/30}{Add \cs{protected} gh/208}
% \begin{macrocode}
-\def\reflectbox{\Gscale@box-1[1]}
+\protected\def\reflectbox{\Gscale@box-1[1]}
% \end{macrocode}
% \end{macro}
%
@@ -1915,10 +1919,11 @@
% \changes{v0.3b}{1994/03/01}{Recode \cmd\resizebox.}
% \changes{v0.7b}{1995/04/27}
% {Add \cs{leavevmode} for graphics/1512}
+% \changes{v1.4a}{2019/11/30}{Add \cs{protected} gh/208}
% Look for a |*|, which specifies that a final vertical size refers to
% `height + depth' not just `height'.
% \begin{macrocode}
-\def\resizebox{%
+\protected\def\resizebox{%
\leavevmode
\@ifstar{\Gscale@@box\totalheight}{\Gscale@@box\height}}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/graphics/graphicx.dtx b/Master/texmf-dist/source/latex/graphics/graphicx.dtx
index 4134c4eed1f..3cf15925d3f 100644
--- a/Master/texmf-dist/source/latex/graphics/graphicx.dtx
+++ b/Master/texmf-dist/source/latex/graphics/graphicx.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% graphicx.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
-%% Copyright (C) 1995-2019 David Carlisle, LaTeX3 Project
+%% Copyright (C) 1995-2020 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
@@ -17,7 +17,7 @@
%<driver> \ProvidesFile{graphicx.drv}
% \fi
% \ProvidesFile{graphicx.dtx}
- [2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR)]
+ [2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR)]
%
% \iffalse
%<*driver>
@@ -167,7 +167,7 @@
% \item[quiet] Turns off writing information about graphics to the |.log|.
% \item[page] The page of a multi-page PDF graphic to be used.
% \item[interpolate] Enables interpolation of bitmap images by viewers.
-% \item[pagebox] Specifies which PDF box should be used for the natural image size, one of
+% \item[pagebox] Specifies which PDF box should be used for the natural image size, one of
% mediabox, cropbox, bleedbox, trimbox, artbox. The default is driver-specific.
% \end{description}
%
@@ -845,8 +845,9 @@
% Look for an optional argument.
% \changes{v0.3b}{1994/03/11}{Remove star form}
% \changes{v1.0g}{2014/04/25}{\cs{leavevmode} added graphics/1521}
+% \changes{v1.2a}{2019/11/30}{Add \cs{protected} gh/208}
% \begin{macrocode}
-\def\rotatebox{%
+\protected\def\rotatebox{%
\leavevmode
\@ifnextchar[\Grot@box@kv\Grot@box@std}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/graphics/keyval.dtx b/Master/texmf-dist/source/latex/graphics/keyval.dtx
index 1e1581eee36..dd1f542832c 100644
--- a/Master/texmf-dist/source/latex/graphics/keyval.dtx
+++ b/Master/texmf-dist/source/latex/graphics/keyval.dtx
@@ -1,7 +1,7 @@
%
% \iffalse
%% keyval.dtx Copyright (C) 1993 1994 1995 1997 1998 1999 David Carlisle
-%% Copyright (C) 2000-2019 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2000-2020 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/Master/texmf-dist/source/latex/graphics/lscape.dtx b/Master/texmf-dist/source/latex/graphics/lscape.dtx
index a5a3dc3220f..e14462c9d42 100644
--- a/Master/texmf-dist/source/latex/graphics/lscape.dtx
+++ b/Master/texmf-dist/source/latex/graphics/lscape.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% lscape.dtx Copyright (C) 1994 1999-2000 David Carlisle
-%% Copyright (C) 2000-2019 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2000-2020 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/Master/texmf-dist/source/latex/graphics/rotating.dtx b/Master/texmf-dist/source/latex/graphics/rotating.dtx
index 149c19d049d..535f115594b 100644
--- a/Master/texmf-dist/source/latex/graphics/rotating.dtx
+++ b/Master/texmf-dist/source/latex/graphics/rotating.dtx
@@ -5,7 +5,7 @@
% File: rotating.dtx
%% Copyright (C) 1995--1999 Sebastian Rahtz and Leonor Barroca
%% Copyright (C) 2001--2003,2007--2009 Robin Fairbairns
-%% Copyright (C) 2016-2019 LaTeX3 Project
+%% Copyright (C) 2016-2020 LaTeX3 Project
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -21,7 +21,7 @@
% This work consists of the file rotating.dtx
% and the derived file rotating.sty, and testing material
% rotex.tex and cat.eps
-%
+%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
%<*dtx>
@@ -75,7 +75,7 @@
% note that rotation is typically \emph{not} visible in a DVI viewer:
% conversion to, and viewing, PostScript or PDF is necessary.
%
-% \section{Usage}
+% \section{Usage}
%
% \subsection{Package options}
%
@@ -114,7 +114,7 @@
% area of the document.)
%
% New rotated environments may be declared using the combined
-% facilities of the float and rotfloat packages.
+% facilities of the float and rotfloat packages.
%
% \subsection{Other environments and commands}
% The package provides other \LaTeX\ environments:
@@ -146,7 +146,7 @@
% \begin{tabular}{@{}llp{3in}@{}}
% \cs{rotFPtop} & \cs{rotFPbot} & Effect \\
% \hline
-% 0pt plus 1fil & 0pt plus 1fil & figure/table appears in middle
+% 0pt plus 1fil & 0pt plus 1fil & figure/table appears in middle
% (default value) \\
% 0pt & 0pt plus 1fil & figure/table appears with its top
% nearest the edge of the page \\
@@ -175,11 +175,11 @@
% Control figure orientation
% \begin{macrocode}
\DeclareOption{figuresleft}{%
- \@rot@twosidefalse
+ \@rot@twosidefalse
\def\rot@LR{0}%
}
\DeclareOption{figuresright}{%
- \@rot@twosidefalse
+ \@rot@twosidefalse
\def\rot@LR{-1}%
}
% \end{macrocode}
@@ -206,7 +206,7 @@
% A couple of commands for passing rotation direction around
% \begin{macrocode}
\newif\if@rot@twoside
-\if@twoside
+\if@twoside
\@rot@twosidetrue
\else
\@rot@twosidefalse
@@ -238,7 +238,7 @@
\def\rotdriver#1{\makeatletter\input{#1.def}\makeatother}
% \end{macrocode}
% \end{macro}
-%
+%
% The \texttt{r@tfl@t} counter is used when generating `labels' for
% determining what side of the page the float is on, in twoside mode.
% \begin{macrocode}
@@ -298,7 +298,7 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\turnbox}
-% A macro version of the `rotate' environment.
+% A macro version of the `rotate' environment.
% \begin{macrocode}
\def\turnbox#1#2{%
\Grot@setangle{#1}%
@@ -315,13 +315,13 @@
% \section{Sideways figures and tables}
% Now for the macros to provide a complete
% environment for sideways figures and tables.
-% We define two environments |sidewaysfigure| and
+% We define two environments |sidewaysfigure| and
% |sidewaystable| that
% fit in with the normal table and figure floats. These are `fixed'
% environments that just do 90 degree rotation, but it would be easy
% to parameterize this to do other rotations if needed (the mind
% boggles\ldots)
-%
+%
% \begin{macro}{\@rotfloat}
% \begin{macro}{\@xrotfloat}
% \begin{macro}{\rot@float@box}
@@ -347,7 +347,7 @@
\@float{#1}[#2]%
% \end{macrocode}
% Set the float contents in
-% a box of width \cs{textheight} instead of \cs{columnwidth}.
+% a box of width \cs{textheight} instead of \cs{columnwidth}.
% \begin{macrocode}
\begin{lrbox}\rot@float@box
\begin{minipage}\textheight
@@ -366,7 +366,7 @@
% \begin{macrocode}
\def\end@rotfloat{%
% \end{macrocode}
-% If we are going to know whether pages are odd or even,
+% If we are going to know whether pages are odd or even,
% we need to use the a variant \cs{pageref} mechanism and our own
% specialised labels.
% \begin{macrocode}
@@ -388,18 +388,18 @@
\if@rot@twoside
\else
\let\R@@page\rot@LR
- \fi
- \ifthenelse{\isodd{\R@@page}}{%
+ \fi
+ \ifthenelse{\isodd{\R@@page}}{%
\if@rot@twoside
\rot@mess@toks\expandafter{\the\rot@mess@toks (right hand page)}%
\fi
- \vfill
+ \vfill
\@@line{%
\hskip\rotFPtop
\rotatebox{90}{\box\rot@float@box}%
\hskip\rotFPbot
}%
- }{%
+ }{%
\if@rot@twoside
\rot@mess@toks\expandafter{\the\rot@mess@toks (left hand page)}%
\fi
@@ -409,9 +409,9 @@
\hskip\rotFPtop
}%
\vfill
- }%
+ }%
\rot@message{\the\rot@mess@toks}
- }%
+ }%
\end@float
}
% \end{macrocode}
@@ -421,7 +421,7 @@
% \begin{macro}{\endsidewaysfigure}
% \begin{macro}{\sidewaystable}
% \begin{macro}{\endsidewaystable}
-% The following definitions set up two environments,
+% The following definitions set up two environments,
% \texttt{sidewaystable} and \texttt{sidewaysfigure}, which uses this
% type of float. Naturally, users may need to change these to suit
% their local style. Both contribute to the normal lists of figures
@@ -455,7 +455,7 @@
}
\def\end@rotdblfloat{%
% \end{macrocode}
-% If we are going to know whether pages are odd or even,
+% If we are going to know whether pages are odd or even,
% we need to use the \cs{pageref} mechanism, and labels. But
% Labels won't work \emph{unless} the user has put in a
% caption. Beware!
@@ -485,34 +485,34 @@
\if@rot@twoside
\else
\let\R@@page\rot@LR
- \fi
- \ifthenelse{\isodd{\R@@page}}{%
+ \fi
+ \ifthenelse{\isodd{\R@@page}}{%
\ifrot@messages
\if@rot@twoside
\rot@mess@toks\expandafter{\the\rot@mess@toks (right hand page)}%
\fi
\fi
- \vfill
+ \vfill
\@@line{%
\hskip\rotFPtop
\rotatebox{90}{\box\rot@float@box}%
\hskip\rotFPbot
}%
- }{%
+ }{%
\ifrot@messages
\if@rot@twoside
\rot@mess@toks\expandafter{\the\rot@mess@toks (left hand page)}%
\fi
- \fi%
+ \fi%
\@@line{%
\hskip\rotFPbot
\rotatebox{-90}{\box\rot@float@box}%
\hskip\rotFPtop
}%
\vfill
- }%
+ }%
\rot@message{\the\rot@mess@toks}%
- }%
+ }%
\end@dblfloat
}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/graphics/trig.dtx b/Master/texmf-dist/source/latex/graphics/trig.dtx
index 2b152578ad7..67f6c6a9703 100644
--- a/Master/texmf-dist/source/latex/graphics/trig.dtx
+++ b/Master/texmf-dist/source/latex/graphics/trig.dtx
@@ -1,6 +1,6 @@
% \iffalse
%% File: trig.dtx Copyright (C) 1993 1994 1995 1996 1997 1999 David Carlisle
-%% Copyright (C) 2000-2019 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2000-2020 David Carlisle, LaTeX3 Project
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
diff --git a/Master/texmf-dist/source/latex/tools/afterpage.dtx b/Master/texmf-dist/source/latex/tools/afterpage.dtx
index 3fa341aa531..600d221cb63 100644
--- a/Master/texmf-dist/source/latex/tools/afterpage.dtx
+++ b/Master/texmf-dist/source/latex/tools/afterpage.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/afterpage.ins b/Master/texmf-dist/source/latex/tools/afterpage.ins
index 9764bdac6d8..96cba1ed0ca 100644
--- a/Master/texmf-dist/source/latex/tools/afterpage.ins
+++ b/Master/texmf-dist/source/latex/tools/afterpage.ins
@@ -3,31 +3,31 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% in this file.
+%%
%% This file is part of the Standard LaTeX `Tools Bundle'.
%% -------------------------------------------------------
-%%
+%%
%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% The list of all files belonging to the `Tools Bundle' is
%% given in the file `manifest.txt'.
-%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -45,9 +45,9 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
--------------------------------------------------------------------------
@@ -57,7 +57,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2005/12/01 or later.
This file may only be distributed together with a copy of the LaTeX
diff --git a/Master/texmf-dist/source/latex/tools/array.dtx b/Master/texmf-dist/source/latex/tools/array.dtx
index 5590b0a1369..acfa5609373 100644
--- a/Master/texmf-dist/source/latex/tools/array.dtx
+++ b/Master/texmf-dist/source/latex/tools/array.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -284,7 +284,7 @@
% \hline\hline
% w\{align\}\{width\} & Sets the cell content in a box of the
% specified \texttt{width} aligned according to
-% the \texttt{align} parameter which could be
+% the \texttt{align} parameter which could be
% either \texttt{l}, \texttt{c} or
% \texttt{r}. Works essentially like
% =\makebox[=width=][=align=]{=cell=}= so
@@ -633,10 +633,10 @@
% \texttt{m}. As a result that cell was vertically centered with that
% space inside, resulting in a strange offset. Since 2.4f, this space
% is now added after centering the cell.
-%
+%
% A similar problem happened when "\extrarowheight" was used. For that
% reason m-cells now manually position the cell content which
-% allows to ignore this extra space request during the vertical aligment.
+% allows to ignore this extra space request during the vertical aligment.
%
%
% \subsection{Bugs and Features}
@@ -1323,7 +1323,7 @@
% \changes{v2.4f}{2017/11/04}{Managing m-cells without \cs{vcenter}}
% \begin{macrocode}
% \let\do@row@strut\relax
-% \let\ar@align@mcell\relax
+% \let\ar@align@mcell\relax
% \end{macrocode}
% Now we remove possible $*$-forms in the user preamble with the
% command =\@xexpast=. As we already know, this command saves
@@ -1551,7 +1551,7 @@
\hfil
% \end{macrocode}
% We also add a space of 1sp just in case the first thing in the
-% cell is a command doing an =\unskip=.
+% cell is a command doing an =\unskip=.
% \changes{v2.4k}{2018/12/30}{Add extra \cs{hskip} to guard against an
% \cs{unskip} at the start of a c-column cell (gh/102)}
% \begin{macrocode}
@@ -1604,7 +1604,7 @@
% mode. Therefore we start with a~=$=.
% \changes{v2.4f}{2017/11/04}{Managing m-cells without \cs{vcenter}}
% \begin{macrocode}
- \setbox\ar@mcellbox\vbox
+ \setbox\ar@mcellbox\vbox
% \end{macrocode}
% The part of the templates which is the same in all three cases
% (\texttt{p}, \texttt{m} and \texttt{b})
@@ -1618,7 +1618,7 @@
% \changes{v2.4e}{2016/10/07}{Fixing SX68732}
% \changes{v2.4f}{2017/11/04}{Managing m-cells without \cs{vcenter}}
% \begin{macrocode}
- \@startpbox{\@nextchar}\insert@column \@endpbox
+ \@startpbox{\@nextchar}\insert@column \@endpbox
\ar@align@mcell
\do@row@strut \or
% \end{macrocode}
@@ -2296,7 +2296,7 @@
% environments (via =\multicolumn=) are impossible.
% For 25 years or so =\@halignto= was set globally (to save space on the
% save stack, but that was a mistake: if there is a tabular in the
-% output routine (e.g., in the running header) then that tabular is
+% output routine (e.g., in the running header) then that tabular is
% able overwrite the =\@halignto=
% setting of a tabular in the main text resulting in a very weird error.
% \changes{v2.4d}{2016/10/06}{\cs{@halignto} set locally (pr/4488)}
@@ -2613,7 +2613,7 @@
% it is the equivalent of the primitive "\show" command for macro
% definitions. All we need to do is locally redefine "\NC@do" to take
% its argument (say `C') and then "\show" the (slightly modified)
-% definition of "\NC@rewrite@C". Actually as the the list always
+% definition of "\NC@rewrite@C". Actually as the list always
% starts off with "\NC@do *" and we do not want to print the
% definition of the $*$-form, define "\NC@do" to throw away the first
% item in the list, and then redefine itself to print the rest of the
@@ -2729,9 +2729,9 @@
% \changes{v2.4f}{2017/11/04}{Managing m-cells without \cs{vcenter}}
% \begin{macrocode}
\def\@mkpream#1{\gdef\@preamble{}\@lastchclass 4 \@firstamptrue
- \let\@sharp\relax
+ \let\@sharp\relax
% \end{macrocode}
-%
+%
% \changes{v2.4j}{2018/11/13}{Do not expand argument of
% \cs{@startpbox} while building the tabular preamble (sx/459285)}
% The "\@startpbox" (which is called for "p", "m" or "b" columns)
@@ -2747,7 +2747,7 @@
\def\@startpbox##1{\unexpanded\expandafter{\expandafter
\@startpbox\expandafter{##1}}}\let\@endpbox\relax
\let\do@row@strut\relax
- \let\ar@align@mcell\relax
+ \let\ar@align@mcell\relax
% \end{macrocode}
% Now we remove possible $*$-forms and user-defined column
% specifiers in the user preamble by repeatedly executing the list
@@ -2953,7 +2953,7 @@
%
% The problem in this case is that if the optional argument "[b]"
% is used we do want the reference point of the tabular be at the
-% baseline of the last row but at the same time do want the the
+% baseline of the last row but at the same time do want the
% depth of this last line increased by "\extratabsurround" without
% changing the placement "\hline".
%
@@ -3076,7 +3076,7 @@
<{\end{lrbox}%
\let\hss\hfil
\makebox[#2][#1]{\unhbox\ar@cellbox}}}
-% \end{macrocode}
+% \end{macrocode}
% This is a bit sneaky, as it temporarily disables "\hss", but
% given that we know what goes into that box it should be
% sufficient.
@@ -3089,4 +3089,3 @@
% \Finale
%
\endinput
-
diff --git a/Master/texmf-dist/source/latex/tools/bm.dtx b/Master/texmf-dist/source/latex/tools/bm.dtx
index 2216dcea077..096f6c4bc2a 100644
--- a/Master/texmf-dist/source/latex/tools/bm.dtx
+++ b/Master/texmf-dist/source/latex/tools/bm.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -837,7 +837,7 @@
\let\ifmmode\iftrue
% \end{macrocode}
% We have to ensure that the math alphabets have definitions that
-% correspond the the ``bold'' math version we are going to switch
+% correspond the ``bold'' math version we are going to switch
% to. As these definitions are globally assigned when a math
% version is changed it is likely that right now we have those of
% the normal math version active. Argument |#3| holds either
diff --git a/Master/texmf-dist/source/latex/tools/bm.ins b/Master/texmf-dist/source/latex/tools/bm.ins
index a148cb93efa..e963d1d88e2 100644
--- a/Master/texmf-dist/source/latex/tools/bm.ins
+++ b/Master/texmf-dist/source/latex/tools/bm.ins
@@ -3,31 +3,31 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% in this file.
+%%
%% This file is part of the Standard LaTeX `Tools Bundle'.
%% -------------------------------------------------------
-%%
+%%
%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% The list of all files belonging to the `Tools Bundle' is
%% given in the file `manifest.txt'.
-%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -45,9 +45,9 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
--------------------------------------------------------------------------
@@ -57,7 +57,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2005/12/01 or later.
This file may only be distributed together with a copy of the LaTeX
diff --git a/Master/texmf-dist/source/latex/tools/calc.dtx b/Master/texmf-dist/source/latex/tools/calc.dtx
index 0bc90f736ba..62fe27489b2 100644
--- a/Master/texmf-dist/source/latex/tools/calc.dtx
+++ b/Master/texmf-dist/source/latex/tools/calc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/dcolumn.dtx b/Master/texmf-dist/source/latex/tools/dcolumn.dtx
index 38a4ab0da2c..1899cce5560 100644
--- a/Master/texmf-dist/source/latex/tools/dcolumn.dtx
+++ b/Master/texmf-dist/source/latex/tools/dcolumn.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/delarray.dtx b/Master/texmf-dist/source/latex/tools/delarray.dtx
index 8814fc2a586..17cac2052cb 100644
--- a/Master/texmf-dist/source/latex/tools/delarray.dtx
+++ b/Master/texmf-dist/source/latex/tools/delarray.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/enumerate.dtx b/Master/texmf-dist/source/latex/tools/enumerate.dtx
index 984d36d4157..3ce463e6015 100644
--- a/Master/texmf-dist/source/latex/tools/enumerate.dtx
+++ b/Master/texmf-dist/source/latex/tools/enumerate.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/fileerr.dtx b/Master/texmf-dist/source/latex/tools/fileerr.dtx
index 3b5895a5f61..16a95e28203 100644
--- a/Master/texmf-dist/source/latex/tools/fileerr.dtx
+++ b/Master/texmf-dist/source/latex/tools/fileerr.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/fontsmpl.dtx b/Master/texmf-dist/source/latex/tools/fontsmpl.dtx
index 961bdda71fc..a5fb2964a98 100644
--- a/Master/texmf-dist/source/latex/tools/fontsmpl.dtx
+++ b/Master/texmf-dist/source/latex/tools/fontsmpl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/ftnright.dtx b/Master/texmf-dist/source/latex/tools/ftnright.dtx
index 5739172f85d..e5fffdfcd92 100644
--- a/Master/texmf-dist/source/latex/tools/ftnright.dtx
+++ b/Master/texmf-dist/source/latex/tools/ftnright.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/hhline.dtx b/Master/texmf-dist/source/latex/tools/hhline.dtx
index 1da01d757b4..b9234b5aa25 100644
--- a/Master/texmf-dist/source/latex/tools/hhline.dtx
+++ b/Master/texmf-dist/source/latex/tools/hhline.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -25,7 +25,7 @@
%
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{hhline}
-%<package> [2014/10/28 v2.03 Table rule package (DPC)]
+%<package> [2020/01/04 v2.04 Table rule package (DPC)]
%
%<*driver>
\documentclass{ltxdoc}
@@ -55,6 +55,8 @@
% {Update for LaTeX2e.}
% \changes{v2.03}{1994/05/23}
% {New style warning.}
+% \changes{v2.04}{2020/01/04}
+% {Ignore spaces.}
%
%
%
@@ -301,12 +303,16 @@
% \begin{macrocode}
\ifx\@tempb b\HH@add{\rlap{\HH@box\z@\doublerulesep}}\else
% \end{macrocode}
+% "space", Gobble the space and loop again.
+% \begin{macrocode}
+ \ifx\@tempb\@sptoken\let\next\HH@spacelet\else
+% \end{macrocode}
% Otherwise ignore the token, with a warning.
% \begin{macrocode}
\PackageWarning{hhline}%
{\meaning\@tempb\space ignored in \noexpand\hhline argument%
\MessageBreak}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
% \end{macrocode}
% Go around the loop again.
% \begin{macrocode}
@@ -314,6 +320,13 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\HH@spacelet}
+% Helper macro to gobble a space token and continue the loop.
+% \begin{macrocode}
+\lowercase{\def\HH@spacelet} {\futurelet\@tempb \HH@loop}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/tools/indentfirst.dtx b/Master/texmf-dist/source/latex/tools/indentfirst.dtx
index 16b99653cd7..7123be04c54 100644
--- a/Master/texmf-dist/source/latex/tools/indentfirst.dtx
+++ b/Master/texmf-dist/source/latex/tools/indentfirst.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/layout.dtx b/Master/texmf-dist/source/latex/tools/layout.dtx
index 848eb54fb25..8918ffdca48 100644
--- a/Master/texmf-dist/source/latex/tools/layout.dtx
+++ b/Master/texmf-dist/source/latex/tools/layout.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/longtable.dtx b/Master/texmf-dist/source/latex/tools/longtable.dtx
index 9a3b5c03b87..004d630fcec 100644
--- a/Master/texmf-dist/source/latex/tools/longtable.dtx
+++ b/Master/texmf-dist/source/latex/tools/longtable.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -21,7 +21,7 @@
%
% \fi
% \iffalse
-%% File: longtable.dtx Copyright (C) 1990-2019 David Carlisle
+%% File: longtable.dtx Copyright (C) 1990-2020 David Carlisle
%
%<*dtx>
\ProvidesFile{longtable.dtx}
@@ -31,7 +31,7 @@
%<driver> \ProvidesFile{longtable.drv}
% \fi
% \ProvidesFile{longtable.dtx}
- [2019/02/06 v4.12 Multi-page Table package (DPC)]
+ [2020/01/07 v4.13 Multi-page Table package (DPC)]
%
% \iffalse
%<*driver>
@@ -635,9 +635,9 @@
% "\LTright"&
% Glue to the right of the table. \hfill("\fill")\\
% "\LTpre"&
-% Glue before the the table. \hfill("\bigskipamount")\\
+% Glue before the table. \hfill("\bigskipamount")\\
% "\LTpost"&
-% Glue after the the table. \hfill("\bigskipamount")\\
+% Glue after the table. \hfill("\bigskipamount")\\
% "\LTcapwidth"&
% The width of a parbox containing the caption.\hfill(4in)\\
% "LTchunksize"&
@@ -1212,6 +1212,8 @@
% \end{macro}
%
% \begin{macro}{\LT@start}
+% % \changes{v4.13}{2020/01/07}
+% {fix issue https://github.com/davidcarlisle/dpctex/issues/8}
% This macro starts the process of putting the table on the current
% page. It is not called until either a "\\" or "\endlongtable" command
% ends a chunk, as we do not know until that point which of the four
@@ -1219,11 +1221,12 @@
%
% It begins by redefining itself, so that the table is only started
% once! Until V3.04, was redefined to "\relax", now use "\endgraf" to
-% force the page-breaker to wake up.
+% force the page-breaker to wake up. The second "\endgraf" is there so
+% that "\pagetotal" is updated and so takes "\LTpre" into account.
% \begin{macrocode}
\def\LT@start{%
\let\LT@start\endgraf
- \endgraf\penalty\z@\vskip\LTpre
+ \endgraf\penalty\z@\vskip\LTpre\endgraf
% \end{macrocode}
% Start a new page if there is not enough room for the table head, foot,
% and one extra line.
@@ -2031,7 +2034,7 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{Commands for the the table head and foot}
+% \subsection{Commands for the table head and foot}
%
% \begin{macro}{\LT@end@hd@ft}
% The core of "\endhead" and friends. Store the current chunk in the
@@ -2127,7 +2130,7 @@
% \end{macrocode}
% \changes{v4.12}{2019/02/06}{Color group to match array package}
% \begin{macrocode}
- \color@endgroup
+ \color@endgroup
\egroup
\the\LT@p@ftn
\global\LT@p@ftn{}%
@@ -2151,4 +2154,3 @@
%
% \Finale
\endinput
-
diff --git a/Master/texmf-dist/source/latex/tools/longtable.ins b/Master/texmf-dist/source/latex/tools/longtable.ins
index 1fc3c12dfaa..7ada121ea95 100644
--- a/Master/texmf-dist/source/latex/tools/longtable.ins
+++ b/Master/texmf-dist/source/latex/tools/longtable.ins
@@ -3,31 +3,31 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% in this file.
+%%
%% This file is part of the Standard LaTeX `Tools Bundle'.
%% -------------------------------------------------------
-%%
+%%
%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% The list of all files belonging to the `Tools Bundle' is
%% given in the file `manifest.txt'.
-%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -45,9 +45,9 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
--------------------------------------------------------------------------
@@ -57,7 +57,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2005/12/01 or later.
This file may only be distributed together with a copy of the LaTeX
diff --git a/Master/texmf-dist/source/latex/tools/multicol.dtx b/Master/texmf-dist/source/latex/tools/multicol.dtx
index d68f471fcd4..39bccef2d78 100644
--- a/Master/texmf-dist/source/latex/tools/multicol.dtx
+++ b/Master/texmf-dist/source/latex/tools/multicol.dtx
@@ -98,7 +98,7 @@
%<driver> \ProvidesFile{multicol.drv}
% \fi
% \ProvidesFile{multicol.dtx}
- [2019/03/01 v1.8w multicolumn formatting (FMi)]
+ [2019/12/09 v1.8y multicolumn formatting (FMi)]
%
%
%%
@@ -134,7 +134,7 @@
% \DoNotIndex{\hbox,\hfil,\hrule,\ht,\hss}
% \DoNotIndex{\ifdim,\ifnum,\ifvoid,\ignorespaces,\insert,\immediate}
% \DoNotIndex{\let,\loop}
-% \DoNotIndex{\maxdepth,\message,\multiply}
+% \DoNotIndex{\@maxdepth,\message,\multiply}
% \DoNotIndex{\newbox,\newcount,\newdimen,\newskip,\number,\newpage}
% \DoNotIndex{\outputpenalty,\p@,\penalty}
% \DoNotIndex{\relax,\repeat,\setbox,\skip,\space,\splitmaxdepth}
@@ -470,7 +470,7 @@
% `\textsf{minrows}' (default 1). If set to a higher value then the
% balancing will have at least that many rows in the first column (and
% also all further columns until it runs outs of material).
-%
+%
% Additionally you can set another counter, the `\textsf{unbalance}'
% counter, to some positive \meta{number}. This will make all but the
% right-most column \meta{number} of lines longer than they would
@@ -978,9 +978,10 @@
% grid. Right now it doesn't do anything other than warning if it
% thinks that the grid got lost.
% \changes{v1.6a}{2003/03/15}{New option grid}
+% \changes{v1.8x}{2019/10/15}{Use \cs{@maxdepth} not \cs{maxdepth} (gh/190)}
% \begin{macrocode}
\let\mc@gridwarn\maxdimen
-\DeclareOption{grid}{\def\mc@gridwarn{\maxdepth}}
+\DeclareOption{grid}{\def\mc@gridwarn{\@maxdepth}}
% \end{macrocode}
%
% \changes{v1.8e}{2014/04/23}{Support \cs{docolaction}}
@@ -1033,19 +1034,20 @@
I therefore use two columns instead}%
\col@number\tw@ \fi
% \end{macrocode}
-% We have only enough box registers for ten columns, so we need to
+% We have only enough box registers for twenty columns, so we need to
% check that the user hasn't asked for more.
% \changes{v1.4k}{1992/06/27}{Maximum of 5 columns (temp)}
% \changes{v1.5a}{1992/11/04}{Allow 10 columns again}
+% \changes{v1.8y}{2019/12/09}{Allow for 20 columns (gh/237)}
% \begin{macrocode}
- \ifnum\col@number>10
+ \ifnum\col@number>20
\PackageError{multicol}%
{Too many columns}%
{Current implementation doesn't
- support more than 10 columns.%
+ support more than 20 columns.%
\MessageBreak
- I therefore use 10 columns instead}%
- \col@number10 \fi
+ I therefore use 20 columns instead}%
+ \col@number20 \fi
% \end{macrocode}
% Within the environment we need a special version of the
% kernel |\@footnotetext| command since the original sets the
@@ -1337,7 +1339,7 @@
% resetting the |\parshape| in case we are inside some list
% environment. The correct indentation for the \mc{} environment in
% such a case will be produced by moving the result to the right by
-% |\multicol@leftmargin| later on. If we would use the value of of
+% |\multicol@leftmargin| later on. If we would use the value of
% |\@totalleftmargin| directly then lists inside the \mc{}
% environment could cause a shift of the output.
% \changes{v1.4l}{1992/08/17}{saved \cs{@totalleftmargin}}
@@ -1718,7 +1720,7 @@
% remove any space at the end of the box as we don't want to use
% this in balancing. Because of the |\color@endgroup| this can't be
% done later in |\balance@columns| as the color command will hide
-% it.
+% it.
% \changes{v1.8c}{2013/11/03}{Add \cs{color@endgroup} to prevent color leak}
% \changes{v1.8f}{2014/06/19}{Discard spaces before adding \cs{color@endgroup}}
% \begin{macrocode}
@@ -1760,7 +1762,7 @@
\else
% \end{macrocode}
% If there was a |\columnbreak| on the very last line all material
-% will have been moved to the |\colbreak@box|. Thus the the galley
+% will have been moved to the |\colbreak@box|. Thus the galley
% will be empty and no output routine gets called so that the text
% is lost. To avoid this problem (though unlikely) we check if the
% current galley is empty and the |\colbreak@box| contains text and
@@ -1957,10 +1959,10 @@
% \end{macrocode}
% To allow checking whether some macro is used within the \mc{}
% environment the counter |\col@number| gets a default of |1|
-% outside the the environment.
+% outside the environment.
% \changes{v1.3d}{1991/10/23}{\cs{col@number} set to one}
-% \changes{v1.8o}{2016/02/08}{\cs{col@number} already initialized in the
-% kernel, so not initializing it in the package
+% \changes{v1.8o}{2016/02/08}{\cs{col@number} already initialized in the
+% kernel, so not initializing it in the package
% in case the document is in two-column (pr/4435)}
% \begin{macrocode}
%\col@number = 1
@@ -2143,7 +2145,7 @@
% However, in case one of the columns was unusually deep \TeX{} may
% have tried some corrective actions in which case backing up by
% the saved value will not bring us back to the baseline. A good
-% indication for this is a depth of |\maxdepth| though it is not an
+% indication for this is a depth of |\@maxdepth| though it is not an
% absolute proof. If the option \texttt{grid} is used
% |\mc@gridwarn| will expand to this, otherwise to |\maxdimen| in
% which case this warning will not show up.
@@ -2192,15 +2194,16 @@
% |\vfill| in that case but this is actually wrong for columns that
% are more or less full: by adding a glue at the bottom such a
% column doesn't have any depth any more but without it the material
-% would be allowed a depth of |\maxdepth|. So we allow shrinking by
+% would be allowed a depth of |\@maxdepth|. So we allow shrinking by
% that amount. This only makes a difference if the box would
% otherwise become overfull and shrinking never exceeds the
-% specified value, so we should be fine.
+% specified value, so we should be fine.
% \changes{v1.8h}{2014/09/12}{Macro added (pr/4395)}
% \changes{v1.8j}{2015/03/07}{Use only `0.0001fil' for stretching}
+% \changes{v1.8x}{2019/10/15}{Use \cs{@maxdepth} not \cs{maxdepth} (gh/190)}
% \begin{macrocode}
-\def\vfilmaxdepth{\vskip \z@ \@plus .0001fil
- \@minus \maxdepth}
+\def\vfilmaxdepth{\vskip \z@ \@plus .0001fil
+ \@minus \@maxdepth}
% \end{macrocode}
% \end{macro}
%
@@ -2246,13 +2249,13 @@
% appropriate values to |\splittopskip| and |\splitmaxdepth|.
% \begin{macrocode}
\splittopskip\topskip
- \splitmaxdepth\maxdepth
+ \splitmaxdepth\@maxdepth
% \end{macrocode}
% We also need to restrict |\boxmaxdepth| so that re-boxing is not
-% generating boxes with arbitrary depth.
+% generating boxes with arbitrary depth.
% \changes{v1.8j}{2015/03/07}{Set \cs{boxmaxdepth}}
% \begin{macrocode}
- \boxmaxdepth\maxdepth
+ \boxmaxdepth\@maxdepth
% \end{macrocode}
% Then we calculate the current column height (in |\dimen@|).
% Note that the height of |\partial@page| is already
@@ -2284,7 +2287,7 @@
% reestablished. However, in theory there is a possibility to sneak
% in a whole multicols environment into the running header
% definition. If that happens then it will also be affected by this
-% change---too bad I think.
+% change---too bad I think.
% \changes{v1.8a}{2011/12/20}{Support for \cs{enlargethispage}}
% \changes{v1.8v}{2018/12/27}{Removed dead code, the case where this
% can go wrong is too obscure to worry about it (gh/101)}
@@ -2443,7 +2446,7 @@
%
% Within the OR |\boxmaxdepth| needs to be unrestricted so we set it back
% now as it was changed above.
-% \changes{v1.8p}{2016/04/07}{Reset \cs{boxmaxdepth}}
+% \changes{v1.8p}{2016/04/07}{Reset \cs{boxmaxdepth}}
% \begin{macrocode}
\boxmaxdepth\maxdimen
\setbox\@cclv\vbox{\unvbox\partial@page
@@ -2477,7 +2480,7 @@
% Now we reset |\@colroom| to |\@colht| which is \LaTeX's
% saved value of |\textheight|.
% We also have to reset the recorded position of the last
-% |\marginpar| as well as the recorded size of in-text floats
+% |\marginpar| as well as the recorded size of in-text floats
% as we are now on a new page.
% \changes{v1.8d}{2014/04/23}{Reset \cs{@mparbottom} after page finishes}
% \changes{v1.8n}{2015/08/19}{Reset \cs{@textfloatsheight} after page finishes}
@@ -2585,7 +2588,7 @@
% e.g., after a display environment (if LaTeX would break here by
% its own it would break before the space following the display).
%
-% Thus we rebox box 255 once (using |\maxdepth| and calling
+% Thus we rebox box 255 once (using |\@maxdepth| and calling
% |\remove@discardable@items| inside). The depth of 255 will then
% give us the depth the box would have had if it would have been a
% natural break. We then unbox 255 to get it into the
@@ -2594,8 +2597,9 @@
% balancing later on.
% \changes{v1.8k}{2015/03/21}{Remove discardable items just before a
% forced break}
+% \changes{v1.8x}{2019/10/15}{Use \cs{@maxdepth} not \cs{maxdepth} (gh/190)}
% \begin{macrocode}
- \boxmaxdepth\maxdepth
+ \boxmaxdepth\@maxdepth
\setbox\@cclv\vbox{%
\unvbox\@cclv
\remove@discardable@items}%
@@ -2613,7 +2617,7 @@
\ifnum\outputpenalty = -\@Mvi
\mult@info\@ne{End penalty of multicols seen}%
% \end{macrocode}
-% If we are at this point then have have to run the balancing code
+% If we are at this point then we have to run the balancing code
% (which was previously its own output routine). First we pretend
% that we had a normal forced breakpoint and then call
% |\balance@column@out|. The latter may be let to |\multi@column@out|
@@ -2879,12 +2883,13 @@
% |\splittopskip| and allow for a bit of undershoot and overshoot
% by adding some stretch and shrink.
% \changes{v1.5?}{1994/?/?}{Allow columns to come out a bit long or short}
+% \changes{v1.8x}{2019/10/15}{Use \cs{@maxdepth} not \cs{maxdepth} (gh/190)}
% \begin{macrocode}
\@tempdima\topskip
\splittopskip\@tempdima
\@plus\multicolundershoot
\@minus\multicolovershoot
- \splitmaxdepth\maxdepth
+ \splitmaxdepth\@maxdepth
% \end{macrocode}
% We also have to set |\boxmaxdepth| which normally allows to
% build boxes with arbitrary depth, but as we are building text
@@ -2893,8 +2898,9 @@
% restriction posed by |\splitmaxdepth| gets lost.
% \changes{v1.8h}{2014/09/12}{All column boxes should obey
% \cs{maxdepth} (pr/4395)}
+% \changes{v1.8x}{2019/10/15}{Use \cs{@maxdepth} not \cs{maxdepth} (gh/190)}
% \begin{macrocode}
- \boxmaxdepth\maxdepth
+ \boxmaxdepth\@maxdepth
% \end{macrocode}
% The next step is a bit tricky: when \TeX{} assembles material in
% a box, the first line isn't preceded by interline glue, i.e.
@@ -3000,7 +3006,7 @@
\vbadness\@M
% \end{macrocode}
% We also allow for overfull boxes while we trying to split the
-% columns. They can easily happen if we have objects with unusual depth.
+% columns. They can easily happen if we have objects with unusual depth.
% \changes{v1.8h}{2014/09/12}{Do not report overfull}
% \begin{macrocode}
\vfuzz \maxdimen
@@ -3252,7 +3258,7 @@
% If we have unprocessed forced breaks we normally reiterate with a
% larger column size to fit them in eventually. However, if there
% are simply too many of them (e.g., 3 forced breaks but only 2
-% columns to balance) then this will never succeed and and we would
+% columns to balance) then this will never succeed and we would
% continue growing the columns until we hit the largest possible
% column size. So in addition we check how big the column size is
% compared to available room and if we exceed this by
@@ -3309,7 +3315,7 @@
%</badness>
\advance\dimen@\p@
\repeat
-% \end{macrocode}
+% \end{macrocode}
% If we come out of the loop with the switch |forcedbreak@leftover|
% set to true then balancing has failed and we should cut a normal
% page. We indicate this below with |\too@badtrue| when any of the
@@ -3446,7 +3452,25 @@
% of this setup in the documentation, sigh.) This produced a problem
% at the moment we had more than 5 columns because then officially
% allocated boxes were overwritten by the algorithm.
-% The new release now uses private box registers
+% The new release now uses private box registers.
+%
+% There was in fact a bug in the new implementation because at one
+% point \LaTeX{} started to use the extended registers and so
+% jumped from below 255 to above omitting the boxes allocated for
+% inserts and the output page box.
+%
+% So nowadays we really have to check if we get the full sequence
+% of boxes allocated without holes (i.e., $2\times\textit{max
+% cols}+1$) and if not alter the allocation registers to start
+% allocating after 255. This is all done quite low-level by looking
+% directly at the values of the allocation counters.
+% \changes{v1.8y}{2019/12/09}{Allow for 20 columns (gh/237)}
+% \begin{macrocode}
+\ifnum\numexpr \count20-\count14-1<41 % = 2 * 20 + 1
+ \count14=\@cclv
+\fi
+% \end{macrocode}
+%
% \begin{macrocode}
\newbox\mult@rightbox
\newbox\mult@grightbox
@@ -3460,6 +3484,16 @@
\newbox\@tempa\newbox\@tempa
\newbox\@tempa\newbox\@tempa
\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
\newbox\@tempa
\let\@tempa\relax
% \end{macrocode}
@@ -3751,7 +3785,7 @@
%
% Special care is needed with handling |\vspace*| as that
% corresponds to |\penalty10000|, |\vskip <skip>|, followed by
-% |\vskip 0pt|. If we see this sequence going backwards in the the
+% |\vskip 0pt|. If we see this sequence going backwards in the
% vertical list we assume that this is a ``desired'' space. We
% therefore stop the recursion and reinsert the spaces.
%
@@ -3798,7 +3832,7 @@
% recurse.
% \begin{macrocode}
\vskip\@tempb\vskip\@tempa\relax
- \else
+ \else
\remove@discardable@items
\fi
\fi
@@ -3818,7 +3852,7 @@
\def\too@badtrue{\global\let\iftoo@bad\iftrue}
\def\too@badfalse{\global\let\iftoo@bad\iffalse}
% \end{macrocode}
-%
+%
% \changes{v1.8k}{2015/03/21}{The new switch}
% \begin{macrocode}
\newif\ifforcedbreak@leftover
@@ -3962,7 +3996,7 @@
% When ending the environment we simply end the inner
% \texttt{multicols} environment, except that we better also stick
% in some stretchable vertical glue so that the last column still
-% containing text is not vertically stretched out.
+% containing text is not vertically stretched out.
%
% We do this as follows: first we ensure that we are back in vertical mode
% and then we cancel out |\lastskip| if it was
@@ -3992,7 +4026,7 @@
\par
\ifdim\lastskip>\z@ \vskip-\lastskip \fi
\ifdim \prevdepth>\z@
- \vskip-\ifdim\prevdepth>\boxmaxdepth
+ \vskip-\ifdim\prevdepth>\boxmaxdepth
\boxmaxdepth
\else \prevdepth \fi
\fi
@@ -4309,9 +4343,9 @@
% \begin{macrocode}
\newcommand\@docolaction[4][1]{%
% \end{macrocode}
-%
-% How does the column number get associated with our label? We
-% do do this by writing another line into the aux file. Here are the
+%
+% How does the column number get associated with our label? We
+% do this by writing another line into the aux file. Here are the
% preparations.
% \begin{macrocode}
\edef\@docolactioncheck{\write\@auxout
@@ -4360,7 +4394,7 @@
% \begin{macrocode}
\newif\if@docolactionstar
% \end{macrocode}
-%
+%
% Because of extra data writing to the aux file the aux file will
% now contain something like the following after the document is
% processed the first time:
@@ -4446,5 +4480,3 @@
% \Finale
%
\endinput
-
-
diff --git a/Master/texmf-dist/source/latex/tools/multicol.ins b/Master/texmf-dist/source/latex/tools/multicol.ins
index 9fd6cbe6e9f..f872b83cdee 100644
--- a/Master/texmf-dist/source/latex/tools/multicol.ins
+++ b/Master/texmf-dist/source/latex/tools/multicol.ins
@@ -3,31 +3,31 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% in this file.
+%%
%% This file is part of the Standard LaTeX `Tools Bundle'.
%% -------------------------------------------------------
-%%
+%%
%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% The list of all files belonging to the `Tools Bundle' is
%% given in the file `manifest.txt'.
-%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -45,9 +45,9 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
--------------------------------------------------------------------------
@@ -57,7 +57,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2005/12/01 or later.
This file may only be distributed together with a copy of the LaTeX
diff --git a/Master/texmf-dist/source/latex/tools/rawfonts.dtx b/Master/texmf-dist/source/latex/tools/rawfonts.dtx
index 0fd7dd5006e..9c5daa57a50 100644
--- a/Master/texmf-dist/source/latex/tools/rawfonts.dtx
+++ b/Master/texmf-dist/source/latex/tools/rawfonts.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/shellesc.dtx b/Master/texmf-dist/source/latex/tools/shellesc.dtx
index 9706c5aa032..3b96c3e9ee3 100644
--- a/Master/texmf-dist/source/latex/tools/shellesc.dtx
+++ b/Master/texmf-dist/source/latex/tools/shellesc.dtx
@@ -1,6 +1,6 @@
% \iffalse
%% Source File: shellesc.dtx
-%% Copyright (C) 2015-2019
+%% Copyright (C) 2015-2020
%%
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
@@ -49,7 +49,7 @@
% \changes{v0.2a}{2016/06/07}{Improve use with plain TeX}
% \section{Introduction}
%
-%
+%
% For many years web2c based \TeX\ implementations have used the syntax
% of the \verb|\write| command to access system commands by using a
% special stream 18 (streams above 15 can not be allocated to files in
@@ -96,7 +96,7 @@
% non-immediate \verb|\write18| in a document being ported to current
% Lua\TeX, you will need to change to use the
% \verb|\DelayedShellEscape| command.
-%
+%
% \section{Implementation}
%
% \begin{macrocode}
@@ -153,7 +153,7 @@
%
% \begin{macro}{\ShellEscape}
% \changes{v1.0a}{2019/10/13}{Lua logging for gh/195}
-% Execute the supplied tokens as a system dependent command, assuming
+% Execute the supplied tokens as a system dependent command, assuming
% such execution is allowed.
% \begin{macrocode}
\ifx\lastsavedimageresourcepages\@undefined
@@ -171,7 +171,7 @@
% \changes{v0.1c}{2016/04/29}{Define \cs{DelayedShellEscape} not \cs{ShellEscape}(UF)}
% \changes{v1.0a}{2019/10/13}{Lua logging for gh/195}
% Execute the supplied tokens as a system dependent command, when this
-% node is shipped out with the completed page, assuming
+% node is shipped out with the completed page, assuming
% such execution is allowed.
% \begin{macrocode}
\ifx\lastsavedimageresourcepages\@undefined
diff --git a/Master/texmf-dist/source/latex/tools/showkeys.dtx b/Master/texmf-dist/source/latex/tools/showkeys.dtx
index 6e2516856d5..59eb699ae81 100644
--- a/Master/texmf-dist/source/latex/tools/showkeys.dtx
+++ b/Master/texmf-dist/source/latex/tools/showkeys.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/somedefs.dtx b/Master/texmf-dist/source/latex/tools/somedefs.dtx
index f73a45b7871..120ad980781 100644
--- a/Master/texmf-dist/source/latex/tools/somedefs.dtx
+++ b/Master/texmf-dist/source/latex/tools/somedefs.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/tabularx.dtx b/Master/texmf-dist/source/latex/tools/tabularx.dtx
index ff8f3cec9a5..577730e665b 100644
--- a/Master/texmf-dist/source/latex/tools/tabularx.dtx
+++ b/Master/texmf-dist/source/latex/tools/tabularx.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -31,7 +31,7 @@
%<driver> \ProvidesFile{tabularx.drv}
% \fi
% \ProvidesFile{tabularx.dtx}
- [2016/02/03 v2.11b `tabularx' package (DPC)]
+ [2020/01/15 v2.11c `tabularx' package (DPC)]
% \iffalse
%<*driver>
\documentclass{ltxdoc}
@@ -231,7 +231,7 @@
% Normally all {\ttfamily X} columns in a single table are set to the
% same width, however it is possible to make {\ttfamily tabularx} set
% them to different widths.
-% A preamble argument of
+% A preamble argument of
% "{>{\hsize=.5\hsize\linewidth=\hsize}X"\\
% " >{\hsize=1.5\hsize\linewidth=\hsize}X}"\\
% specifies two columns, the second will be three times as wide as the
@@ -341,8 +341,9 @@
% \end{macrocode}
% \changes{v2.02}{1995/03/20}
% {New local setting of \cs{TX@}}
-% \changes{v4.09}{1998/05/13}
+% \changes{v2.09}{1998/05/13}
% {Use \cs{setlength}, so that calc extensions apply. tools/2793}
+% \changes{v2.11c}{2020/01/15}{Delete duplicated . at end of message}
% Allow "\tabularx" "\endtabularx" (but not "\begin{tabularx}"
% "\end{tabularx}") to be used in "\newenvironment" definitions.
% \begin{macrocode}
@@ -351,11 +352,11 @@
% \end{macrocode}
% "\relax" added at v1.05 so that non-expandable length tokens, like
% "\textwidth" do not generate an extra space, and an overfull box.
-% "\relax" removed again at v4.09 in favour of "\setlength" so if you
+% "\relax" removed again at v2.09 in favour of "\setlength" so if you
% use the calc package you can use a width of "(\textwidth-12pt)/2".
% \begin{macrocode}
\setlength\TX@target{#1}%
- \TX@typeout{Target width: #1 = \the\TX@target.}%
+ \TX@typeout{Target width: #1 = \the\TX@target}%
\toks@{}\TX@get@body}
% \end{macrocode}
% \end{macro}
@@ -883,7 +884,7 @@
%
% Originally I followed Knuth, and had "\def\@tempa{##1}", however this
% did not allow "#" to appear in the argument. So in v1.04, I changed
-% this to to use a token register, and "\edef". This allows "#" appear,
+% this to use a token register, and "\edef". This allows "#" appear,
% but makes each one appear twice!, so later we loop through, replacing
% "##" by "#".
% \begin{macrocode}
diff --git a/Master/texmf-dist/source/latex/tools/tabularx.ins b/Master/texmf-dist/source/latex/tools/tabularx.ins
index 06308d77359..05effd3342e 100644
--- a/Master/texmf-dist/source/latex/tools/tabularx.ins
+++ b/Master/texmf-dist/source/latex/tools/tabularx.ins
@@ -3,31 +3,31 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% in this file.
+%%
%% This file is part of the Standard LaTeX `Tools Bundle'.
%% -------------------------------------------------------
-%%
+%%
%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% The list of all files belonging to the `Tools Bundle' is
%% given in the file `manifest.txt'.
-%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -45,9 +45,9 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
--------------------------------------------------------------------------
@@ -57,7 +57,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2005/12/01 or later.
This file may only be distributed together with a copy of the LaTeX
diff --git a/Master/texmf-dist/source/latex/tools/theorem.dtx b/Master/texmf-dist/source/latex/tools/theorem.dtx
index 6f745d016ef..0df7dbb7649 100644
--- a/Master/texmf-dist/source/latex/tools/theorem.dtx
+++ b/Master/texmf-dist/source/latex/tools/theorem.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
diff --git a/Master/texmf-dist/source/latex/tools/tools.ins b/Master/texmf-dist/source/latex/tools/tools.ins
index 12625e81662..5e978712215 100644
--- a/Master/texmf-dist/source/latex/tools/tools.ins
+++ b/Master/texmf-dist/source/latex/tools/tools.ins
@@ -3,31 +3,31 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% in this file.
+%%
%% This file is part of the Standard LaTeX `Tools Bundle'.
%% -------------------------------------------------------
-%%
+%%
%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% The list of all files belonging to the `Tools Bundle' is
%% given in the file `manifest.txt'.
-%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -49,9 +49,9 @@ reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
--------------------------------------------------------------------------
@@ -61,7 +61,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2005/12/01 or later.
This file may only be distributed together with a copy of the LaTeX
@@ -166,7 +166,7 @@ given in the file `manifest.txt'.
\SimplePackage{layout}
-% Infix Arithmetic
+% Infix Arithmetic
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\SimplePackage{calc}
diff --git a/Master/texmf-dist/source/latex/tools/trace.dtx b/Master/texmf-dist/source/latex/tools/trace.dtx
index e808fdd4317..4a08f569bb5 100644
--- a/Master/texmf-dist/source/latex/tools/trace.dtx
+++ b/Master/texmf-dist/source/latex/tools/trace.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -493,7 +493,7 @@
% turns on tracing of assignments and tracing of
% grouping.\footnote{These are my personal preference settings;
% \eTeX{} does in fact offer some more tracing switches and perhaps
-% one or or more of them should be added here as well.}
+% one or more of them should be added here as well.}
% To keep tracing at a minimum |\tracingassigns| should be turned
% on last (in fact like before we disassemble |\tracingall|
% and reorder it partially).
@@ -508,7 +508,7 @@
% \end{macrocode}
% We only change |\tracingoutput| if it hasn't already been enabled by
% |\showoutput|. If that's not the case, we set it to 2 so that we
-% can distingush the two cases.
+% can distingush the two cases.
% \changes{v1.1e}{2018/10/13}{Only reset \cs{tracingoutput} if not
% set by \cs{showoutput} earlier}
% \begin{macrocode}
@@ -519,7 +519,7 @@
\showboxdepth\maxdimen
\fi
% \end{macrocode}
-%
+%
% \begin{macrocode}
\errorstopmode
\tracingmacros\tw@
@@ -563,7 +563,7 @@
\showboxdepth\m@ne
\fi
% \end{macrocode}
-%
+%
% \begin{macrocode}
\tracingstats\@ne
\tracingparagraphs\z@
diff --git a/Master/texmf-dist/source/latex/tools/varioref.dtx b/Master/texmf-dist/source/latex/tools/varioref.dtx
index b8392c76f27..077103eb97a 100644
--- a/Master/texmf-dist/source/latex/tools/varioref.dtx
+++ b/Master/texmf-dist/source/latex/tools/varioref.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -22,7 +22,7 @@
% \fi
% \iffalse
%% Package varioref to use with LaTeX2e
-%% Copyright (C) 1992-2019 Frank Mittelbach, all rights reserved.
+%% Copyright (C) 1992-2020 Frank Mittelbach, all rights reserved.
%%
%% For additions or updates to the language options please contact
%% the author at
@@ -40,7 +40,7 @@
%<package>\DeclareCurrentRelease{}{2019-10-01}
%<package>
%<package>\ProvidesPackage{varioref}
-%<package> [2019/11/05 v1.6c package for extended references (FMi)]
+%<package> [2020/01/23 v1.6c package for extended references (FMi)]
% \fi
%
%%
@@ -207,7 +207,7 @@
% to achieve the desired effect.
%
%
-% \DescribeMacro\vrefrange
+% \DescribeMacro\vrefrange
% This command is similar to |\vref| but it
% takes two mandatory arguments denoting a range to refer to (e.g., a
% sequences of figures or a sequence of equations, etc.). So if
@@ -497,7 +497,7 @@
% As mentioned above the package supports all standard options offered
% by the Babel system to customize the strings produced, it may also
% have a few not supported by babel, for a full list look
-% in section\vref{sec:impoptions}. In addition it offers the option
+% in section~\vref{sec:impoptions}. In addition it offers the option
% \texttt{draft} to turn error messages into warnings during
% development. The default \texttt{final} produces error message when
% a generated string falls onto a page boundary (see next section).
@@ -531,7 +531,7 @@
% \begin{quote}
% table 5 on the current \meta{page break} page
% \end{quote}
-% would would result in an error, which needs to be resolved by the
+% would result in an error, which needs to be resolved by the
% user by replacing the |\vref| command with an ordinary |\ref| just
% before the final run. This is not
% completely satisfactory but in such case no solution really is.
@@ -731,7 +731,7 @@
% easily, so you will see missing glyphs below. To see the real
% letters you have to look at the source or package file.
% \changes{v1.6b}{2019/09/08}{Option arabic added}
-% \begin{allowtofu}
+% \begin{allowtofu}
% \begin{macrocode}
\DeclareOption{arabic}
{\vref@addto\extrasarabic{%
@@ -745,7 +745,7 @@
\def\reftextlabelrange#1#2{\ref{#1} حتى~\ref{#2}}%
}}
% \end{macrocode}
-% \end{allowtofu}
+% \end{allowtofu}
% \changes{v1.2a}{1998/11/27}{Added austrian defaults (identical to german)}
% The austrian defaults are the same as the german ones.
% \begin{macrocode}
@@ -1803,7 +1803,7 @@
% user explicitly requested an empty text string using the optional
% argument we cancel any preceding space since in this case we are
% otherwise likely to end up with spaces one before and one after
-% |\vpageref|.
+% |\vpageref|.
% \changes{v1.2f}{2000/07/07}{Don't output space if optional argument
% empty (pr/3230)}
% \begin{macrocode}
@@ -1819,7 +1819,7 @@
% a space.
% \begin{macrocode}
\def\@tempc{#2}%
- \ifx\@tempc\@empty \else
+ \ifx\@tempc\@empty \else
#2\vref@space
\fi
% \end{macrocode}
@@ -1972,7 +1972,7 @@
% The \pkg{hyperref} package can then change the meaning of this
% command to suppress a hyperlink.
%
-% It is is also a good way to check if we are running with a new
+% It is also a good way to check if we are running with a new
% \pkg{varioref} by testing
%\begin{verbatim}
% \ifdefined\vp@gerefstar
@@ -2079,7 +2079,7 @@
% \end{macrocode}
% If option \texttt{space} is used then we remove a preceding space
% and add our own unbreakable space instead. Otherwise we don't do
-% any space-handling.
+% any space-handling.
% \begin{macrocode}
\if@vrefhandlespace
\unskip \nobreakspace
@@ -2100,7 +2100,7 @@
% After having handled (or not handled) the spacing we call
% |\vref@star| to scan the optional arguments and do the rest.
% If that command has been altered by \pkg{hyperref} then the
-% current one needs altering too and does the argument scanning explicitly.
+% current one needs altering too and does the argument scanning explicitly.
% \begin{macrocode}
\vref@star % in hyperref this needs to be explicit
}
@@ -2305,7 +2305,7 @@
{\Vr@f}}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\Vref@star}
% \changes{v1.6a}{2019/08/25}{Command added to support hyperref better}
% \begin{macrocode}
@@ -2314,7 +2314,7 @@
\vpageref[#1]{#2}}
% \end{macrocode}
% \end{macro}
-%
+%
% \begin{macro}{\Vr@f}
% \changes{v1.4a}{2002/02/24}{Macro added}
% \changes{v1.4x}{2010/08/04}{Correct spacing -- same mistake as in \cs{vref}
@@ -2332,7 +2332,7 @@
% \begin{macro}{\vpagerefcompare}
-%
+%
% \changes{v1.6a}{2019/08/25}{Macro added}
% \begin{macrocode}
\DeclareRobustCommand\vpagerefcompare[2]{% label1, label2, TRUE, FALSE
@@ -2343,7 +2343,7 @@
\else
\expandafter\@secondoftwo
\fi
-}
+}
% \end{macrocode}
% \end{macro}
%
@@ -2385,7 +2385,7 @@
% True if the two pages have arabic page numbers are at most off by
% one so that |\vpageref| would produce a special string.
%
-% This is n some sense a general version of |\vpagerefnearby| for
+% This is in some sense a general version of |\vpagerefnearby| for
% use in more complex situations. I.e., if you try to determine if
% a larger set of references would be close to the current page and
% you use each time |\vpagerefnearby| then you generate a lot of
@@ -2449,4 +2449,3 @@
% \Finale
%
\endinput
-
diff --git a/Master/texmf-dist/source/latex/tools/varioref.ins b/Master/texmf-dist/source/latex/tools/varioref.ins
index e436202e4d0..951eedad891 100644
--- a/Master/texmf-dist/source/latex/tools/varioref.ins
+++ b/Master/texmf-dist/source/latex/tools/varioref.ins
@@ -3,31 +3,31 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2019
+%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%%
+%% in this file.
+%%
%% This file is part of the Standard LaTeX `Tools Bundle'.
%% -------------------------------------------------------
-%%
+%%
%% 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
%% https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
+%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
-%%
+%%
%% As this file contains legal notices, it is NOT PERMITTED to modify
%% this file in any way that the legal information placed into
%% generated files is changed (i.e., the files generated when the
%% original file is executed). This restriction does not apply if
%% (parts of) the content is reused in a different WORK producing its
%% own generated files.
-%%
+%%
%% The list of all files belonging to the `Tools Bundle' is
%% given in the file `manifest.txt'.
-%%
+%%
%%
%% --------------- start of docstrip commands ------------------
%%
@@ -45,9 +45,9 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2019
+Copyright (C) 1993-2020
The LaTeX3 Project and any individual authors listed elsewhere
-in this file.
+in this file.
This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
--------------------------------------------------------------------------
@@ -57,7 +57,7 @@ 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
https://www.latex-project.org/lppl.txt
-and version 1.3c or later is part of all distributions of LaTeX
+and version 1.3c or later is part of all distributions of LaTeX
version 2005/12/01 or later.
This file may only be distributed together with a copy of the LaTeX
diff --git a/Master/texmf-dist/source/latex/tools/verbatim.dtx b/Master/texmf-dist/source/latex/tools/verbatim.dtx
index b89bab7759e..121e2d4b39c 100644
--- a/Master/texmf-dist/source/latex/tools/verbatim.dtx
+++ b/Master/texmf-dist/source/latex/tools/verbatim.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -14,7 +14,7 @@
% The latest version of this license is in
% https://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.
+% version 2008 or later.
%
% The list of all files belonging to the LaTeX `Tools Bundle' is
% given in the file `manifest.txt'.
@@ -828,7 +828,7 @@
% \begin{macrocode}
\@namedef{verbatim*}{\begingroup\@verbatim
% \end{macrocode}
-%
+%
% \changes{v1.5r}{2019/11/10}{Support kernel \cs{verbvisiblespace} (gh/212)}
% \begin{macrocode}
\@setupverbvisiblespace\@vobeyspaces
@@ -1488,7 +1488,7 @@
\else
% \end{macrocode}
% At this point we pass the name of the file to |\@addtofilelist|
-% so that its appears appears in the output of a |\listfiles|
+% so that its appears in the output of a |\listfiles|
% command.
% \changes{v1.5j}{1996/09/25}{Add \cs{@addtofilelist} and
% \cs{ProvidesFile} so that the name of the file
diff --git a/Master/texmf-dist/source/latex/tools/xr.dtx b/Master/texmf-dist/source/latex/tools/xr.dtx
index 97c4c68084e..a6b2ffd8193 100644
--- a/Master/texmf-dist/source/latex/tools/xr.dtx
+++ b/Master/texmf-dist/source/latex/tools/xr.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -86,7 +86,7 @@
%
% As first suggested in Enrico Gregorio's |xcite| package, the current version
% also allows |\cite| to reference |\bibitem| in the external document.
-% For compatibility with |xcite|, |\externalcitedocument| is made available
+% For compatibility with |xcite|, |\externalcitedocument| is made available
% as an alias for |\externaldocument|
%
% \StopEventually{}
@@ -183,4 +183,3 @@
%
% \Finale
%
-
diff --git a/Master/texmf-dist/source/latex/tools/xspace.dtx b/Master/texmf-dist/source/latex/tools/xspace.dtx
index 0745caf5071..ebe8d0f9478 100644
--- a/Master/texmf-dist/source/latex/tools/xspace.dtx
+++ b/Master/texmf-dist/source/latex/tools/xspace.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2019
+% Copyright (C) 1993-2020
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.