summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex-dev/base')
-rw-r--r--macros/latex-dev/base/README.md6
-rw-r--r--macros/latex-dev/base/alltt.pdfbin173077 -> 173077 bytes
-rw-r--r--macros/latex-dev/base/bugs.txt9
-rw-r--r--macros/latex-dev/base/cfgguide.pdfbin220211 -> 220211 bytes
-rw-r--r--macros/latex-dev/base/changes.txt1224
-rw-r--r--macros/latex-dev/base/classes.dtx135
-rw-r--r--macros/latex-dev/base/classes.pdfbin521080 -> 520906 bytes
-rw-r--r--macros/latex-dev/base/clsguide.pdfbin372505 -> 372505 bytes
-rw-r--r--macros/latex-dev/base/cmfonts.pdfbin264453 -> 264453 bytes
-rw-r--r--macros/latex-dev/base/cyrguide.pdfbin216976 -> 216976 bytes
-rw-r--r--macros/latex-dev/base/doc.pdfbin629318 -> 629536 bytes
-rw-r--r--macros/latex-dev/base/docstrip.dtx23
-rw-r--r--macros/latex-dev/base/docstrip.pdfbin469448 -> 470217 bytes
-rw-r--r--macros/latex-dev/base/encguide.pdfbin1532114 -> 1532114 bytes
-rw-r--r--macros/latex-dev/base/exscale.pdfbin195880 -> 195880 bytes
-rw-r--r--macros/latex-dev/base/fix-cm.pdfbin262051 -> 262051 bytes
-rw-r--r--macros/latex-dev/base/fntguide.pdfbin361810 -> 361810 bytes
-rw-r--r--macros/latex-dev/base/fontdef.dtx28
-rw-r--r--macros/latex-dev/base/graphpap.pdfbin156280 -> 156280 bytes
-rw-r--r--macros/latex-dev/base/ifthen.pdfbin205205 -> 205205 bytes
-rw-r--r--macros/latex-dev/base/inputenc.dtx12
-rw-r--r--macros/latex-dev/base/inputenc.pdfbin294824 -> 294723 bytes
-rw-r--r--macros/latex-dev/base/latexchanges.pdfbin232380 -> 232380 bytes
-rw-r--r--macros/latex-dev/base/latexrelease.pdfbin246174 -> 246174 bytes
-rw-r--r--macros/latex-dev/base/latexsym.pdfbin192289 -> 192289 bytes
-rw-r--r--macros/latex-dev/base/lb2.pdfbin138223 -> 138223 bytes
-rw-r--r--macros/latex-dev/base/letter.dtx100
-rw-r--r--macros/latex-dev/base/letter.pdfbin304792 -> 305750 bytes
-rw-r--r--macros/latex-dev/base/lgc2.pdfbin101344 -> 101344 bytes
-rw-r--r--macros/latex-dev/base/lppl.pdfbin0 -> 125828 bytes
-rw-r--r--macros/latex-dev/base/lppl.tex511
-rw-r--r--macros/latex-dev/base/ltboxes.dtx12
-rw-r--r--macros/latex-dev/base/ltclass.dtx248
-rw-r--r--macros/latex-dev/base/ltdefns.dtx78
-rw-r--r--macros/latex-dev/base/ltexpl.dtx43
-rw-r--r--macros/latex-dev/base/ltfiles.dtx129
-rw-r--r--macros/latex-dev/base/ltfloat.dtx66
-rw-r--r--macros/latex-dev/base/ltfssaxes.dtx15
-rw-r--r--macros/latex-dev/base/ltfssbas.dtx2
-rw-r--r--macros/latex-dev/base/ltfssdcl.dtx65
-rw-r--r--macros/latex-dev/base/ltfssini.dtx322
-rw-r--r--macros/latex-dev/base/ltlists.dtx8
-rw-r--r--macros/latex-dev/base/ltluatex.dtx7
-rw-r--r--macros/latex-dev/base/ltluatex.pdfbin304104 -> 304468 bytes
-rw-r--r--macros/latex-dev/base/ltmath.dtx131
-rw-r--r--macros/latex-dev/base/ltmiscen.dtx134
-rw-r--r--macros/latex-dev/base/ltnews.pdfbin959539 -> 972412 bytes
-rw-r--r--macros/latex-dev/base/ltnews.tex36
-rw-r--r--macros/latex-dev/base/ltnews01.pdfbin150020 -> 150020 bytes
-rw-r--r--macros/latex-dev/base/ltnews02.pdfbin134750 -> 134750 bytes
-rw-r--r--macros/latex-dev/base/ltnews03.pdfbin134730 -> 134730 bytes
-rw-r--r--macros/latex-dev/base/ltnews04.pdfbin128768 -> 128768 bytes
-rw-r--r--macros/latex-dev/base/ltnews05.pdfbin157174 -> 157174 bytes
-rw-r--r--macros/latex-dev/base/ltnews06.pdfbin133132 -> 133132 bytes
-rw-r--r--macros/latex-dev/base/ltnews07.pdfbin124028 -> 124028 bytes
-rw-r--r--macros/latex-dev/base/ltnews08.pdfbin144471 -> 144471 bytes
-rw-r--r--macros/latex-dev/base/ltnews09.pdfbin120208 -> 120208 bytes
-rw-r--r--macros/latex-dev/base/ltnews10.pdfbin147941 -> 147941 bytes
-rw-r--r--macros/latex-dev/base/ltnews11.pdfbin104942 -> 104942 bytes
-rw-r--r--macros/latex-dev/base/ltnews12.pdfbin137918 -> 137918 bytes
-rw-r--r--macros/latex-dev/base/ltnews13.pdfbin161066 -> 161066 bytes
-rw-r--r--macros/latex-dev/base/ltnews14.pdfbin150920 -> 150920 bytes
-rw-r--r--macros/latex-dev/base/ltnews15.pdfbin122088 -> 122088 bytes
-rw-r--r--macros/latex-dev/base/ltnews16.pdfbin130688 -> 130688 bytes
-rw-r--r--macros/latex-dev/base/ltnews17.pdfbin149835 -> 149835 bytes
-rw-r--r--macros/latex-dev/base/ltnews18.pdfbin36003 -> 36003 bytes
-rw-r--r--macros/latex-dev/base/ltnews19.pdfbin235068 -> 235068 bytes
-rw-r--r--macros/latex-dev/base/ltnews20.pdfbin283323 -> 283323 bytes
-rw-r--r--macros/latex-dev/base/ltnews21.pdfbin233491 -> 233491 bytes
-rw-r--r--macros/latex-dev/base/ltnews22.pdfbin302835 -> 302835 bytes
-rw-r--r--macros/latex-dev/base/ltnews23.pdfbin274453 -> 274453 bytes
-rw-r--r--macros/latex-dev/base/ltnews24.pdfbin252641 -> 252641 bytes
-rw-r--r--macros/latex-dev/base/ltnews25.pdfbin196325 -> 196325 bytes
-rw-r--r--macros/latex-dev/base/ltnews26.pdfbin362836 -> 362836 bytes
-rw-r--r--macros/latex-dev/base/ltnews27.pdfbin239755 -> 239755 bytes
-rw-r--r--macros/latex-dev/base/ltnews28.pdfbin368228 -> 368229 bytes
-rw-r--r--macros/latex-dev/base/ltnews28.tex4
-rw-r--r--macros/latex-dev/base/ltnews29.pdfbin433006 -> 433006 bytes
-rw-r--r--macros/latex-dev/base/ltnews30.pdfbin491245 -> 491245 bytes
-rw-r--r--macros/latex-dev/base/ltnews31.pdfbin500199 -> 500199 bytes
-rw-r--r--macros/latex-dev/base/ltnews32.pdfbin344268 -> 476890 bytes
-rw-r--r--macros/latex-dev/base/ltnews32.tex406
-rw-r--r--macros/latex-dev/base/ltoutenc.dtx10
-rw-r--r--macros/latex-dev/base/ltpictur.dtx30
-rw-r--r--macros/latex-dev/base/ltspace.dtx200
-rw-r--r--macros/latex-dev/base/lttab.dtx45
-rw-r--r--macros/latex-dev/base/lttextcomp.dtx35
-rw-r--r--macros/latex-dev/base/ltvers.dtx2
-rw-r--r--macros/latex-dev/base/ltx3info.pdfbin191528 -> 191528 bytes
-rw-r--r--macros/latex-dev/base/ltxdoc.pdfbin215600 -> 215600 bytes
-rw-r--r--macros/latex-dev/base/ltxref.dtx18
-rw-r--r--macros/latex-dev/base/makeindx.pdfbin160673 -> 160673 bytes
-rw-r--r--macros/latex-dev/base/manifest.txt18
-rw-r--r--macros/latex-dev/base/manual.pdfbin151354 -> 151354 bytes
-rw-r--r--macros/latex-dev/base/modguide.pdfbin220384 -> 220384 bytes
-rw-r--r--macros/latex-dev/base/nfssfont.pdfbin202429 -> 202429 bytes
-rw-r--r--macros/latex-dev/base/proc.pdfbin216899 -> 216899 bytes
-rw-r--r--macros/latex-dev/base/slides.pdfbin351660 -> 351660 bytes
-rw-r--r--macros/latex-dev/base/slifonts.pdfbin214708 -> 214708 bytes
-rw-r--r--macros/latex-dev/base/source2e.pdfbin3117644 -> 3182847 bytes
-rw-r--r--macros/latex-dev/base/syntonly.pdfbin181181 -> 181389 bytes
-rw-r--r--macros/latex-dev/base/tlc2.pdfbin164949 -> 164949 bytes
-rw-r--r--macros/latex-dev/base/tulm.pdfbin156534 -> 156534 bytes
-rw-r--r--macros/latex-dev/base/usrguide.pdfbin398281 -> 398989 bytes
-rw-r--r--macros/latex-dev/base/usrguide.tex94
-rw-r--r--macros/latex-dev/base/utf8ienc.pdfbin330773 -> 330713 bytes
-rw-r--r--macros/latex-dev/base/webcomp.pdfbin136153 -> 136153 bytes
107 files changed, 3722 insertions, 484 deletions
diff --git a/macros/latex-dev/base/README.md b/macros/latex-dev/base/README.md
index 95c699fdea..f2eb61eca3 100644
--- a/macros/latex-dev/base/README.md
+++ b/macros/latex-dev/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2020-10-01 pre-release 5
+Release 2020-10-01 pre-release 6
Overview
--------
@@ -34,16 +34,12 @@ the most significant of these files are
- `README.md` is this file
- `manifest.txt` lists all the files in this LaTeX distribution,
with one line of information about the contents
-- `unpacked.txt` lists all the files in the unpacked LaTeX distribution
- `legal.txt` and `lppl.txt` (LaTeX Project Public License) describe the
LaTeX copyright, warranty and copying restrictions.
-- `patches.txt` describes the how important changes will be distributed
- between releases
- `texpert.txt` contains information about the system that may still be
useful for TeX experts
- `tex2.txt` contains important information for users of extremely
old versions of TeX (pre 1990)
-- `autoload.txt` describes a variant of LaTeX that is no longer supported
- `bugs.txt` describes how to submit a bug report for LaTeX
Other documentation files include files with names of the form:
diff --git a/macros/latex-dev/base/alltt.pdf b/macros/latex-dev/base/alltt.pdf
index 1e49f05ae1..033cb5ff35 100644
--- a/macros/latex-dev/base/alltt.pdf
+++ b/macros/latex-dev/base/alltt.pdf
Binary files differ
diff --git a/macros/latex-dev/base/bugs.txt b/macros/latex-dev/base/bugs.txt
index 1891476325..8fd071c8a7 100644
--- a/macros/latex-dev/base/bugs.txt
+++ b/macros/latex-dev/base/bugs.txt
@@ -1,6 +1,6 @@
LaTeX Error Reports
- January 2017
+ April 2020
ERROR REPORTS
@@ -15,7 +15,8 @@ Before you report an error, please check that:
distribution, e.g. in a .dtx file (in this case it is a feature :-).
* The error has not already been reported. If you have WWW
- access, you can search the LaTeX bugs database using this URL:
+ access, you can find out how to search the LaTeX bugs database
+ using this URL:
https://www.latex-project.org/bugs.html
@@ -52,7 +53,7 @@ core LaTeX software, please report it in the following way:
Submit the test and transcript files through the Web interface at:
- https://www.latex-project.org/bugs/bugs-upload.html
+ https://github.com/latex3/latex2e/issues
Please fill in all required fields; in particular, make sure
that your name, email address, and the summary description
@@ -84,4 +85,4 @@ given in that corresponding errata file.
Please *do not* send such reports to the latex-bugs address.
---- Copyright 1997,1998,2006,2008,2017 the LaTeX3 project. All rights reserved ---
+--- Copyright 1997,1998,2006,2008,2017,2020 the LaTeX3 project. All rights reserved ---
diff --git a/macros/latex-dev/base/cfgguide.pdf b/macros/latex-dev/base/cfgguide.pdf
index f5a3e68425..4c6572d7a3 100644
--- a/macros/latex-dev/base/cfgguide.pdf
+++ b/macros/latex-dev/base/cfgguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/changes.txt b/macros/latex-dev/base/changes.txt
index 96654ea52b..6c37210ae9 100644
--- a/macros/latex-dev/base/changes.txt
+++ b/macros/latex-dev/base/changes.txt
@@ -6,6 +6,141 @@ completeness or accuracy and it contains some references to files that
are not part of the distribution.
================================================================================
+2020-05-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltfssini.dtx (section{Custom series settings for main document families}):
+ Added \IfFontSeriesContextTF so that it is possible to reliably
+ detect the current font series context (gh/335)
+
+2020-05-15 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltdefns.dtx (subsection{Initex initialisations}):
+ Allow \par in the argument of \typeout and turn it into an empty line
+ if expanded, if not it remains \par (gh/335)
+
+2020-05-11 Marcel Krüger <Marcel.Krueger@latex-project.org>
+
+ * ltdefns.dtx:
+ Use primitive \- with LuaTeX
+
+2020-05-07 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * ltxref.dtx:
+ added \@currentcounter to \refstepcounter (gh/300)
+
+2020-05-06 Marcel Krüger <Marcel.Krueger@latex-project.org>
+
+ * ltspace.dtx:
+ Make Unicode softhyphen U+00AD active and defined as \-.
+
+2020-05-02 Johannes Braams <texniek at braams.xs4all.nl>
+
+ * ltexpl.dtx: Created aliases for two expl3 macros in order to use
+ them to remove leading and trailing spaces from filenames (gh/217)
+
+2020-05-02 Johannes Braams <texniek at braams.xs4all.nl>
+
+ * ltfiles.dtx: Modified \include and \includeony to support
+ filenames with spaces in them (gh/217)
+
+2020-04-29 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * lttextcomp.dtx (subsection{Sub-encoding 2}):
+ Make all captial accents text commands in Unicode engines for
+ hyperref (gh/332)}
+
+2020-04-22 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltmiscen.dtx (subsection{Verbatim}):
+ Drop spaces before \verb delimiter (gh/327)
+
+2020-04-22 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * ltoutenc.dtx (tuenc.def):
+ corrected unicode value of \=y from "0232 to "0233
+
+2020-04-22 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltspace.dtx (subsection{The code}):
+ Support calc syntax for \newline (gh/152)
+ Support calc syntax for \addvspace (gh/152)
+
+ * lttab.dtx (subsection{tabbing}):
+ Support calc syntax in tabbing (gh/152)
+
+ * ltpictur.dtx (section{Picture Mode}):
+ Support calc syntax in \shortstack (gh/152)
+
+ * ltmiscen.dtx (subsection{Center, Flushright, Flushleft}):
+ Support calc syntax for \\ (gh/152)
+
+ * ltmath.dtx (subsection{Math Environments}):
+ Support calc syntax for \\ (gh/152)
+
+2020-04-21 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltspace.dtx (subsection{Horizontal space (and breaks)}):
+ Support calc syntax with \hspace (gh/152)
+ (subsection{Vertical spacing}):
+ Support calc syntax with \vspace (gh/152)
+
+2020-04-13 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltfssini.dtx (subsection{Miscellaneous}):
+ Handling \seriesdefault changes in a better way (gh/315).
+
+2020-04-09 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltfloat.dtx (subsection{Footnotes}):
+ Set non-zero baselineskip inside \textsuperscript and \textsubscript
+ so that link boxes drawn by hyperref have a sensible height (gh/249)
+
+2020-04-07 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltclass.dtx (section{Implementation}):
+ Add \IfFormatAtLeastTF to test if the current format is equal or later than
+ the given date (gh/168)
+ Also add \IfClassAtLeastTF and \IfPackageAtLeastTF as a suggested
+ alternative to \@ifpackagelater and \@ifclasslater (which have a wrong
+ name, because it is really "later or equal") (gh/186)
+ Use different method to ignore unprocessed options (gh/22)
+
+
+2020-04-06 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltfssini.dtx (section{Custom series settings for main document families}):
+ Added hooks \@expandfontdefaultshook, \@setbfseriesdefaultshook and
+ \@setmdseriesdefaultshook to better support Japanese etc (gh/306)
+
+2020-03-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * fontdef.dtx (subsection{Defaults}):
+ Support legacy use of \bfdefault and \mddefault (gh/306)
+
+ * ltfssini.dtx (section{Custom series settings for main document families}):
+ Support legacy use of \bfdefault and \mddefault (gh/306)
+
+ * ltfssdcl.dtx (section{Interface Commands}):
+ Avoid generating an Ord math atom when loading a math alphabet using
+ the legacy interface ${\cal ...}$ (gnats/3357)
+
+2020-03-07 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltspace.dtx: Moved \cs{thinspace}, \cs{negthinspace} and \cs{,} to
+ ltmath.dtx (gh/303)
+
+ * ltmath.dtx (subsubsection{The UNSORTED Rest}):
+ Add \texttt{amsmath} math/text spacing commands to the kernel (gh/303)
+
+2020-03-08 Johannes Braams <texniek at braams.xs4all.nl>
+
+ * letter.dtx: merged changes to classes.dtx into letter.dtx
+
+2020-03-06 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltboxes.dtx (subsection{Some low-level constructs}):
+ Macro \clap added (from mathtools)
+
2020-03-05 Joseph Wright <joseph.wright@morningstar2.co.uk>
* ltexpl.dtx: Pre-load xparse where expl3 does not define \NewDocumentCommand
@@ -130,6 +265,11 @@ All changes above are only part of the development branch for the next release.
Use \@tabacckludge for tabbing where necessary if defining \capitalacute
and friends for Unicode engines (gh/271)
+2020-03-07 Marcel Krüger <Marcel.Krueger@latex-project.org>
+
+ * ltluatex.dtx: Fix remove_from_callback for mlist_to_hlist
+ and other engine callbacks hidden by user-defined ones
+
#########################
# 2020-02-02 PL 1 Release
#########################
@@ -10299,62 +10439,62 @@ All changes above are only part of the development branch for the next release.
1994-03-16 David Carlisle <latex-bugs@latex-project.org>
- * ltfiles.dtx v1.0c \document (DPC) directly add file list
+ * ltfiles.dtx: v1.0c \document (DPC) directly add file list
settings
- * ltclass.dtx 0.3f \listfiles Move this code directly into
+ * ltclass.dtx: 0.3f \listfiles Move this code directly into
\document
- * ltclass.dtx 0.3f "General" Add pkgindoc package
+ * ltclass.dtx: 0.3f "General" Add pkgindoc package
1994-03-15 David Carlisle <latex-bugs@latex-project.org>
- * ltdirchk.dtx 1.0c "General" Add \NeedsTeXFormat
+ * ltdirchk.dtx: 1.0c "General" Add \NeedsTeXFormat
- * ltclass.dtx 0.3e \@missingfileerror Quit on x or X just like
+ * ltclass.dtx: 0.3e \@missingfileerror Quit on x or X just like
a real error
- * fontcmds.dtx v3.2a "General" Removed defs of short-forms and
+ * fontcmds.dtx: v3.2a "General" Removed defs of short-forms and
all sizes except \normalize
- * fontcmds.dtx v3.2a "General" Removed \@renewfontswitch
+ * fontcmds.dtx: v3.2a "General" Removed \@renewfontswitch
- * fontcmds.dtx v3.2a "General" Changed \/ to \@@italiccorr
+ * fontcmds.dtx: v3.2a "General" Changed \/ to \@@italiccorr
- * fontcmds.dtx v3.2a "General" Adapted to mass formatting
+ * fontcmds.dtx: v3.2a "General" Adapted to mass formatting
1994-03-15 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
- * varioref.dtx (subsection{Options}):
+ * varioref.dtx: (subsection{Options}):
Text added for spanish default (Julio Sanchez).
Changed all \extra... to \extras... that was a bug
1994-03-14 David Carlisle <latex-bugs@latex-project.org>
- * ltherest.dtx v1.0c \end@float (DPC) Use \color@endgroup
+ * ltherest.dtx: v1.0c \end@float (DPC) Use \color@endgroup
- * ltherest.dtx v1.0c \@xfloat (DPC) Use \color@begingroup
+ * ltherest.dtx: v1.0c \@xfloat (DPC) Use \color@begingroup
- * ltherest.dtx v1.0c \@savemarbox (DPC) Use \color@begingroup
+ * ltherest.dtx: v1.0c \@savemarbox (DPC) Use \color@begingroup
- * ltherest.dtx v1.0c \@footnotetext (DPC) Use
+ * ltherest.dtx: v1.0c \@footnotetext (DPC) Use
\color@begingroup, add \endgraf
- * ltherest.dtx 1.0c \@xympar (DPC) Use \color@begingroup
+ * ltherest.dtx: 1.0c \@xympar (DPC) Use \color@begingroup
- * ltboxes.dtx 1.0b \sbox Use \color@begingroup
+ * ltboxes.dtx: 1.0b \sbox Use \color@begingroup
- * ltboxes.dtx 1.0b \lrbox Use \color@begingroup
+ * ltboxes.dtx: 1.0b \lrbox Use \color@begingroup
- * ltboxes.dtx 1.0b \color@endgroup macro added for colour
+ * ltboxes.dtx: 1.0b \color@endgroup macro added for colour
support
- * ltboxes.dtx 1.0b \color@begingroup macro added for colour
+ * ltboxes.dtx: 1.0b \color@begingroup macro added for colour
support
- * ltboxes.dtx 1.0b \@isavepicbox Use \color@begingroup
+ * ltboxes.dtx: 1.0b \@isavepicbox Use \color@begingroup
- * ltboxes.dtx 1.0b \@isavebox Use \color@begingroup
+ * ltboxes.dtx: 1.0b \@isavebox Use \color@begingroup
1994-03-14 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -10364,21 +10504,21 @@ All changes above are only part of the development branch for the next release.
1994-03-14 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
- * classes.dtx (subsubsection{Margins}):
+ * classes.dtx: (subsubsection{Margins}):
Shortened calculation for margins.
1994-03-13 David Carlisle <latex-bugs@latex-project.org>
- * ltinit.dtx v1.0c \@tfor (DPC) Add \@tf@r so a single group is
+ * ltinit.dtx: v1.0c \@tfor (DPC) Add \@tf@r so a single group is
correctly treated.
- * ltfiles.dtx 0.3b \InputIfFileExists Use new cmd
+ * ltfiles.dtx: 0.3b \InputIfFileExists Use new cmd
\@addtofilelist
- * ltclass.dtx 0.3d \listfiles Reset \@addtofilelist at begin
+ * ltclass.dtx: 0.3d \listfiles Reset \@addtofilelist at begin
document
- * ltclass.dtx 0.3d \@addtofilelist Macro added
+ * ltclass.dtx: 0.3d \@addtofilelist Macro added
1994-03-13 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -10426,32 +10566,32 @@ All changes above are only part of the development branch for the next release.
1994-03-12 David Carlisle <latex-bugs@latex-project.org>
- * ltplain.dtx v1.0b "General" Name changed from lplain. The end
+ * ltplain.dtx: v1.0b "General" Name changed from lplain. The end
of an era
- * ltinit.dtx v1.0b \@yargdef Name changed from \XXX@Argdef
+ * ltinit.dtx: v1.0b \@yargdef Name changed from \XXX@Argdef
- * ltinit.dtx v1.0b \@reargdef New defn, in terms of \@yargdef
+ * ltinit.dtx: v1.0b \@reargdef New defn, in terms of \@yargdef
- * ltherest.dtx v0.1b \@xympar (DPC) Extra bgroup for colour
+ * ltherest.dtx: v0.1b \@xympar (DPC) Extra bgroup for colour
- * ltherest.dtx v0.1b \@savemarbox (DPC) Extra group for colour
+ * ltherest.dtx: v0.1b \@savemarbox (DPC) Extra group for colour
- * ltdirchk.dtx 1.0b "General" Minor edits to the typeouts in
+ * ltdirchk.dtx: 1.0b "General" Minor edits to the typeouts in
ltxcheck
- * ltdirchk.dtx 1.0b "General" Change name from dircheck.dtx
+ * ltdirchk.dtx: 1.0b "General" Change name from dircheck.dtx
- * ltclass.dtx 0.3c \ProvidesPackage use \@gtempa
+ * ltclass.dtx: 0.3c \ProvidesPackage use \@gtempa
- * ltclass.dtx 0.3c \ProvidesPackage Add \wlog
+ * ltclass.dtx: 0.3c \ProvidesPackage Add \wlog
- * ltclass.dtx 0.3c \ProvidesFile Add \wlog
+ * ltclass.dtx: 0.3c \ProvidesFile Add \wlog
- * ltclass.dtx 0.3c "General" Change name from docclass to
+ * ltclass.dtx: 0.3c "General" Change name from docclass to
ltclass
- * ltclass.dtx 0.3c \@fileswithoptions Do not use
+ * ltclass.dtx: 0.3c \@fileswithoptions Do not use
\@pr@videpackage to avoid typeout
1994-03-12 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -10500,12 +10640,12 @@ All changes above are only part of the development branch for the next release.
1994-03-08 David Carlisle <latex-bugs@latex-project.org>
- * ltplain.dtx v1.0a "General" Remove need for a driver file.
+ * ltplain.dtx: v1.0a "General" Remove need for a driver file.
- * ltdirchk.dtx 1.0a "General" Reorganise driver module into `new
+ * ltdirchk.dtx: 1.0a "General" Reorganise driver module into `new
style'
- * ltclass.dtx 0.3b "General" Modify driver code into `new style'
+ * ltclass.dtx: 0.3b "General" Modify driver code into `new style'
1994-03-08 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -10634,60 +10774,60 @@ All changes above are only part of the development branch for the next release.
1994-03-07 David Carlisle <latex-bugs@latex-project.org>
- * lttab.dtx v1.0a "General" Long lines wrapped to 72 columns
+ * lttab.dtx: v1.0a "General" Long lines wrapped to 72 columns
- * ltpictur.dtx v0.1a "General" Long lines wrapped to 72 columns
+ * ltpictur.dtx: v0.1a "General" Long lines wrapped to 72 columns
- * ltpictur.dtx v0.1a "General" Initial version, split from
- latex.dtx
+ * ltpictur.dtx: v0.1a "General" Initial version, split from
+ latex.dtx:
- * ltlists.dtx v1.0a "General" Long lines wrapped to 72 columns
+ * ltlists.dtx: v1.0a "General" Long lines wrapped to 72 columns
- * ltinit.dtx v1.0a "General" (DPC) Removed input of nfsscode.ltx
+ * ltinit.dtx: v1.0a "General" (DPC) Removed input of nfsscode.ltx
- * ltinit.dtx v1.0a \@@italiccorr Macro added
+ * ltinit.dtx: v1.0a \@@italiccorr Macro added
- * ltinit.dtx v0.1a "General" Long lines wrapped to 72 columns
+ * ltinit.dtx: v0.1a "General" Long lines wrapped to 72 columns
- * ltinit.dtx v0.1a "General" Initial version, split from
- latex.dtx
+ * ltinit.dtx: v0.1a "General" Initial version, split from
+ latex.dtx:
- * ltherest.dtx v0.1a \end@float (DPC) Extra group for colour
+ * ltherest.dtx: v0.1a \end@float (DPC) Extra group for colour
- * ltherest.dtx v0.1a "General" Long lines wrapped to 72 columns
+ * ltherest.dtx: v0.1a "General" Long lines wrapped to 72 columns
- * ltherest.dtx v0.1a "General" Initial version, split from
- latex.dtx
+ * ltherest.dtx: v0.1a "General" Initial version, split from
+ latex.dtx:
- * ltherest.dtx v0.1a \@xfloat (DPC) Extra group for colour
+ * ltherest.dtx: v0.1a \@xfloat (DPC) Extra group for colour
- * ltherest.dtx v0.1a \@settodim (DPC) Extra group for colour
+ * ltherest.dtx: v0.1a \@settodim (DPC) Extra group for colour
- * ltherest.dtx v0.1a \@hangfrom (DPC)Extra groups for colour
+ * ltherest.dtx: v0.1a \@hangfrom (DPC)Extra groups for colour
- * ltherest.dtx v0.1a \@footnotetext (DPC) Extra group for colour
+ * ltherest.dtx: v0.1a \@footnotetext (DPC) Extra group for colour
- * ltfinal.dtx v0.1a "General" Remove oldcomments environment
+ * ltfinal.dtx: v0.1a "General" Remove oldcomments environment
- * ltfinal.dtx v0.1a "General" Initial version, split from
+ * ltfinal.dtx: v0.1a "General" Initial version, split from
latex.dtx
- * ltfinal.dtx 0.1a "General" use \InputIfFileExists not
+ * ltfinal.dtx: 0.1a "General" use \InputIfFileExists not
\IfFileExists
- * ltfinal.dtx 0.1a "General" move code here from lhyphen.dtx
+ * ltfinal.dtx: 0.1a "General" move code here from lhyphen.dtx
- * ltfinal.dtx 0.1a "General" Add code from the old dump.dtx
+ * ltfinal.dtx: 0.1a "General" Add code from the old dump.dtx
- * ltfiles.dtx v1.0a "General" Long lines wrapped to 72 columns
+ * ltfiles.dtx: v1.0a "General" Long lines wrapped to 72 columns
- * ltfiles.dtx v1.0a "General" Initial version, split from
+ * ltfiles.dtx: v1.0a "General" Initial version, split from
latex.dtx
- * ltboxes.dtx v1.0a "General" Unify format with other Kernel
+ * ltboxes.dtx: v1.0a "General" Unify format with other Kernel
files
- * ltboxes.dtx v0.1a \@mpfootnotetext (DPC) Extra group for
+ * ltboxes.dtx: v0.1a \@mpfootnotetext (DPC) Extra group for
colour
1994-03-07 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -10713,13 +10853,13 @@ All changes above are only part of the development branch for the next release.
1994-03-04 David Carlisle <latex-bugs@latex-project.org>
- * ltvers.dtx v1.0a "General" Initial version, split from
+ * ltvers.dtx: v1.0a "General" Initial version, split from
latex.dtx
- * lttab.dtx v1.0a "General" Initial version, split from
+ * lttab.dtx: v1.0a "General" Initial version, split from
latex.dtx
- * ltlists.dtx v1.0a "General" Initial version, split from
+ * ltlists.dtx: v1.0a "General" Initial version, split from
latex.dtx
1994-03-04 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -10730,7 +10870,7 @@ All changes above are only part of the development branch for the next release.
1994-03-03 David Carlisle <latex-bugs@latex-project.org>
- * ltboxes.dtx 0.1f \@irsbox Replaced a missing \else
+ * ltboxes.dtx: 0.1f \@irsbox Replaced a missing \else
1994-03-03 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -10742,11 +10882,11 @@ All changes above are only part of the development branch for the next release.
1994-03-02 David Carlisle <latex-bugs@latex-project.org>
- * ltclass.dtx 0.3a "General" Remove need for driver file
+ * ltclass.dtx: 0.3a "General" Remove need for driver file
- * ltboxes.dtx v0.1e "General" Remove need for drv file
+ * ltboxes.dtx: v0.1e "General" Remove need for drv file
- * ltboxes.dtx v0.1e "General" Add 2ekernel module
+ * ltboxes.dtx: v0.1e "General" Add 2ekernel module
1994-03-02 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -10796,7 +10936,7 @@ All changes above are only part of the development branch for the next release.
option (reads fleqn.clo).
1994-03-01 David Carlisle <latex-bugs@latex-project.org>
- * ltdirchk.dtx 0.2k "General" Add unstripped module, so that
+ * ltdirchk.dtx: 0.2k "General" Add unstripped module, so that
dircheck.dtx may be used with initex
1994-03-01 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -10889,8 +11029,940 @@ All changes above are only part of the development branch for the next release.
1994-02-24 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+ * ltdirchk.dtx: 0.2j "General" \noboundaryis \relax not undef in
+ TeX2 (initialised in 2e format)
+
+ * ltdirchk.dtx: 0.2j "General" Remove need for drv file
+
* fam.dtx (subsection{Macros for loading fonts}):
Removed catcode settings from \try@load@fontshape and
\DeclareFontShape and placed them into a separate macro called
\nfss@catcodes so that it is easier to maintain special
requirements for packages that make certain characters active.
+
+1994-02-10 Alan Jeffrey <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2z \@fileswithoptions Renamed \@compatibility to
+ \@documentclasshook. ASAJ.
+
+ * ltclass.dtx: 0.2z \@documentclasshook Changed the name from
+ \@compatibility to \@documentclasshook, and added the check
+ for whether \@normalsize has been defined. ASAJ.
+
+1994-02-07 Alan Jeffrey <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2y \ProcessOptions* Add extra ,s so `two' is not
+ matched with `twocolumn'
+
+ * ltclass.dtx: 0.2y \ProcessOptions* Add extra ,s so `two' is not
+ matched with `twocolumn'
+
+ * ltclass.dtx: 0.2y \@ifclasswith Add extra ,s so `two' is not
+ matched with `twocolumn'
+
+ * ltclass.dtx: 0.2y \@fileswithoptions Run \@compatibility on the
+ first class to start (not the first to finish)
+
+1994-02-03 N.N. <latex-bugs@latex-project.org>
+
+ * ltinit.dtx: LaTeX2e "General" correct mistakes in the
+ documentation
+
+1994-02-02 N.N. <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2x \@fileswithoptions Only run the hook and
+ options check if the file was loaded.
+
+1994-02-01 David Carlisle <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2e \thispagestyle (DPC) Modify to get nicer
+ error message
+
+ * ltherest.dtx: LaTeX2e \pagestyle (DPC) Modify to get nicer
+ error message
+
+1994-01-31 N.N. <latex-bugs@latex-project.org>
+
+ * ltinit.dtx: LaTeX2e "General" use \@normalsize instead of
+ \normalsizeinternally
+
+ * ltfiles.dtx: v0.9t \document set `@normalsize or `normalsize if
+ necessary
+
+ * ltclass.dtx: 0.2w \g@addto@macro Use toks register to avoid
+ `hash' problems
+
+ * fontcmds.dtx: v3.1b "General" `@normalsize no longer defined
+
+1994-01-29 N.N. <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2v \@fileswithoptions All options raise error if
+ no \ProcessOptions\ appears
+
+ * ltclass.dtx: 0.2v \@@unprocessedoptions Macro added.
+
+1994-01-28 N.N. <latex-bugs@latex-project.org>
+
+ * ltinit.dtx: LaTeX2e "General" Let \fmtversion point to current
+ file date.
+
+1994-01-27 N.N. <latex-bugs@latex-project.org>
+
+ * fontcmds.dtx: v3.1a \nocorrlist Only ., used as default for cm
+ fonts
+
+1994-01-25 David Carlisle <latex-bugs@latex-project.org>
+
+ * ltplain.dtx: LaTeX2e \bordermatrix Removed \p@renwd.
+
+ * ltdirchk.dtx: 0.2i "General" Protect against looping on
+ \@@input and \@@end
+
+1994-01-24 David Carlisle <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2e \pagestyle (DPC) Complain if pagestyle is
+ undefined.
+
+ * ltdirchk.dtx: 0.2h \IfFileExists Stop testing once texsys.aux
+ has been found
+
+1994-01-21 David Carlisle <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: v0.9s \verbatim@font Removed unnecessary category
+ code hackery.
+
+ * ltherest.dtx: LaTeX2e \@xfloat Added missing percent
+ characters.
+
+ * ltdirchk.dtx: 0.2g \today Name changeed from \stamp, to save
+ memory
+
+ * ltdirchk.dtx: 0.2g \filename@parse Minor changes, and add Mac
+ version (:)
+
+ * ltdirchk.dtx: 0.2g "General" Improve documentation, reorganise
+ docstrip module
+
+ * ltclass.dtx: 0.2u \documentstyle compatibility file now
+ latex209.def.
+
+1994-01-20 David Carlisle <latex-bugs@latex-project.org>
+
+ * ltdirchk.dtx: 0.2f \IfFileExists \@copytexsys removed
+
+ * ltdirchk.dtx: 0.2f "General" \@copytexsys and the texsys.new
+ file removed
+
+ * ltdirchk.dtx: 0.2f "General" Modify all of ltxcheck
+
+1994-01-19 David Carlisle <latex-bugs@latex-project.org>
+
+ * ltdirchk.dtx: 0.2e \strip@prefix name changed from
+ \strip@meaning, to match NFSS
+
+ * ltdirchk.dtx: 0.2e \input@path No longer check that an empty
+ group is in the path
+
+ * ltdirchk.dtx: 0.2e \IfFileExists name changed from \test
+
+1994-01-18 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: v0.9p \@verbatim Only add \penaltyif in hmode
+
+ * ltherest.dtx: LaTeX2e \bibliography Use \@input@ so include
+ files are listed.
+
+ * ltfiles.dtx: v0.9p \include Use \@input@ so include files are
+ listed.
+
+ * ltfiles.dtx: v0.9p \InputIfFileExists New Definition
+
+ * ltfiles.dtx: v0.9p \IfFileExists New Definition
+
+ * ltfiles.dtx: v0.9p \@input@ Macro added
+
+ * ltfiles.dtx: v0.9p \@input do not use a different definition
+ for \input@path
+
+ * ltfiles.dtx: v0.9p \@iffileonpath Macro added
+
+ * ltfiles.dtx: v0.9p \@break@loop Macro added
+
+ * ltclass.dtx: 0.2t \@ifclassloaded Fix typo \@pkgetension
+
+1994-01-17 N.N. <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2s \listfiles New Version, adds `.tex' if
+ needed, and lines up columns
+
+ * ltclass.dtx: 0.2s "General" Wrapped long lines to column 72
+
+ * ltclass.dtx: 0.2s "General" Added many more \@onlypreamble
+ commands
+
+ * ltclass.dtx: 0.2s \@fileswithoptions Modify to reduce parameter
+ stack usage
+
+ * ltclass.dtx: 0.2s \@fileswithoptions Modify to reduce parameter
+ stack usage
+
+1994-01-15 N.N. <latex-bugs@latex-project.org>
+
+ * ltfiles.dtx: v0.9o \document move `@preamblecmds after document
+ hook
+
+1994-01-14 David Carlisle <latex-bugs@latex-project.org>
+
+ * ltdirchk.dtx: 0.2d \IfFileExists Close the texsys.aux output
+ stream
+
+1993-12-20 N.N. <latex-bugs@latex-project.org>
+
+ * ltinit.dtx: LaTeX2e \@reargdef Kept old version of \@reargdef,
+ for array.sty
+
+ * ltfiles.dtx: 0.9m \@obsoletefile Added this command, removed
+ @oldfilewarning
+
+1993-12-19 Alan Jeffrey <latex-bugs@latex-project.org>
+
+ * ltinit.dtx: LaTeX2e \@esphack There seem to be problems with
+ selfmade birthday presents
+
+ * ltclass.dtx: 0.2r \endfilecontents Different message when
+ ignoring a file
+
+ * fontcmds.dtx: v3.0b "General" Untidying added, so this is now a
+ TEMPORARY version.
+
+ * fontcmds.dtx: v3.0b "General" Some more tidying done.
+
+ * fontcmds.dtx: v3.0b "General" Other tidying
+
+ * fontcmds.dtx: v3.0b "General" @pdef comand added
+
+ * fontcmds.dtx: v3.0b \@protecteddef Command added
+
+ * fontcmds.dtx: v3.0b \@newtextcmd Corrected and tidied
+
+ * fontcmds.dtx: v3.0b \@newfontswitch Corrected and tidied
+
+ * fontcmds.dtx: 3.0b "General" Wording changes by CAR.
+
+ * fontcmds.dtx: 3.0b "General" Made \@newfontswitch produce an
+ error if the command already exists, and added
+ \@renewfontswitch. ASAJ.
+
+ * fontcmds.dtx: 3.0b "General" Added by ASAJ.
+
+1993-12-17 N.N. <latex-bugs@latex-project.org>
+
+ * ltoutput.dtx: v1.0j \@tracemessage tracefloatvals made a
+ document command
+
+ * ltoutput.dtx: v1.0j \@topnewpage check for vsize too small
+ added
+
+ * ltoutput.dtx: v1.0j \@startpagehook Hook removed
+
+ * ltoutput.dtx: v1.0j \@opcol Hook removed
+
+ * ltoutput.dtx: 1.0j \@topnewpage Page room test added
+
+ * ltoutput.dtx: 1.0j \@specialoutput Page room test added
+
+ * ltoutput.dtx: 1.0j \@addtocurcol Extra space test added
+
+ * ltherest.dtx: LaTeX2e \mark Removed init \mark at begin
+ document, since it doesn't work.
+
+ * ltclass.dtx: 0.2q \documentstyle Match Alan's new code.
+
+ * ltclass.dtx: 0.2q \@fileswithoptions Add \ompatibility hook
+
+ * ltclass.dtx: 0.2q \@documentclasshook Macro added
+
+ * ltmiscen.dtx: v0.9i \literal Macro added
+
+1993-12-16 N.N. <latex-bugs@latex-project.org>
+
+ * ltinit.dtx: LaTeX2e \LaTeXe Extended logo by DPC
+
+ * ltinit.dtx: LaTeX2e \@esphack Corrected optimisation :-)
+
+ * ltherest.dtx: LaTeX2e \mark Init \mark at begin document
+
+1993-12-15 N.N. <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2p "General" Removed extra \.'s from \@@warnings
+
+ * ltboxes.dtx: 0.1d \parbox Changed default from `c' to `s'
+
+ * ltboxes.dtx: 0.1d \minipage extra space removed.
+
+ * ltboxes.dtx: 0.1d \minipage Changed default from `c' to `s'
+
+ * ltboxes.dtx: 0.1d \@iparbox Changed default from `c' to `s'
+
+ * ltboxes.dtx: 0.1d \@iminipage Changed default from `c' to `s'
+
+1993-12-14 N.N. <latex-bugs@latex-project.org>
+
+ * ltoutput.dtx: v1.0i "General" Section added to declare all
+ parameters
+
+1993-12-13 David Carlisle <latex-bugs@latex-project.org>
+
+ * ltlists.dtx: LaTeX2e Initialised \@itemlabel
+
+ * ltmiscen.dtx: v0.9h \@verbatim Removed optional argument of
+ \item
+
+ * ltmiscen.dtx: v0.9h \@verbatim Readded \@noligs
+
+ * ltmiscen.dtx: v0.9h \@noligs Readded \@noligs
+
+ * ltdirchk.dtx: 0.2a \strip@prefix modified, name changed from
+ \stripmeaning
+
+ * ltdirchk.dtx: 0.2a \IfFileExists Removed interactive prompting
+ for current directory syntax
+
+ * ltdirchk.dtx: 0.2a "General" on the `docstrip' pass, do not
+ check openin path
+
+ * ltclass.dtx: 0.2o \usepackage Fixed error handling
+
+ * ltclass.dtx: 0.2o \documentstyle compatibility file now
+ latex209.sty.
+
+ * ltclass.dtx: 0.2o "General" Removed setting \errcontextlines\
+ (now in latex.tex)
+
+1993-12-12 N.N. <latex-bugs@latex-project.org>
+
+ * ltoutput.dtx: v1.0h \@tracemessage Commands changed
+
+ * ltoutput.dtx: v1.0h \@testfp defs changed to lets
+
+ * ltoutput.dtx: v1.0h \@startdblcolumn defs changed to lets
+
+ * ltoutput.dtx: v1.0h \@startcolumn defs changed to lets
+
+ * ltoutput.dtx: v1.0h \@resethfps Warnings added: minimal
+
+ * ltoutput.dtx: v1.0h \@makecol defs changed to lets
+
+ * ltoutput.dtx: v1.0h \@doclearpage defs changed to lets
+
+ * ltoutput.dtx: v1.0h \@doclearpage defs changed to lets
+
+ * ltoutput.dtx: v1.0h \@doclearpage defs changed to lets
+
+ * ltoutput.dtx: v1.0h \@cflt name changed
+
+ * ltoutput.dtx: v1.0h \@ccflb defs changed to lets
+
+ * ltoutput.dtx: v1.0h \@ccflb boxmaxdepth setting moved
+
+1993-12-11 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: v0.9g \ref Macro reimplemented
+
+ * ltmiscen.dtx: v0.9g \pageref Macro reimplemented
+
+ * ltmiscen.dtx: v0.9g \frac Added group around first arg
+
+ * ltmiscen.dtx: v0.9g \@setref Macro added
+
+ * ltherest.dtx: LaTeX2e \@title Added default
+
+ * ltherest.dtx: LaTeX2e \@author Added default
+
+ * fontcmds.dtx: v3.0a \textup Macros changed
+
+ * fontcmds.dtx: v3.0a \sw@slant Macro changed
+
+ * fontcmds.dtx: v3.0a \maybe@ic@ Macro and name changed
+
+ * fontcmds.dtx: v3.0a \maybe@ic Macro name changed
+
+ * fontcmds.dtx: v3.0a \fix@penalty Macro added
+
+ * fontcmds.dtx: v3.0a \emph Macro changed
+
+ * fontcmds.dtx: v3.0a "General" newfontswitch command corrected
+ and changed
+
+ * fontcmds.dtx: v3.0a "General" newcommands replaced by defs
+
+ * fontcmds.dtx: v3.0a "General" italic correction now put in
+ front of penalty before glue
+
+ * fontcmds.dtx: v3.0a "General" Complete reworking of all text
+ commands, using just one creator function
+
+ * fontcmds.dtx: v3.0a \@newtextcmd Macro changed
+
+1993-12-09 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: v0.9e \enddocument Hook added
+
+ * ltfiles.dtx: v0.9e \document Hook added
+
+ * ltclass.dtx: 0.2n \documentstyle input 209 compatibility file.
+
+ * ltboxes.dtx: 0.1c \@irsbox fix another typo
+
+1993-12-08 N.N. <latex-bugs@latex-project.org>
+
+ * ltlists.dtx: LaTeX2e \@item use \sboxto support colour
+
+ * ltinit.dtx: LaTeX2e \@vbsphack Command added
+
+ * ltinit.dtx: LaTeX2e \@esphack Command reimplemented
+
+ * ltinit.dtx: LaTeX2e \@bsphack Command reimplemented; late
+ birthday present for Chris
+
+ * ltboxes.dtx: 0.1b \lrbox move \@endpefalse out of the inner
+ group
+
+ * ltboxes.dtx: 0.1b \@irsbox fix typo
+
+ * ltboxes.dtx: 0.1b \@iiiparbox \endgraf added due to extra group
+ in \@begin@tempboxa
+
+ * ltboxes.dtx: 0.1b \@begin@tempboxa Extra braces for color
+ support (braces removed from other macros)
+
+ * fontcmds.dtx: 2.1b "General" Macros \rm, \bf and \sf moved to
+ classes.dtx:
+
+1993-12-07 N.N. <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2m \@fileswithoptions Reset \CurrentOption
+
+ * ltclass.dtx: 0.2l \ProvidesFile Macro added
+
+1993-12-06 N.N. <latex-bugs@latex-project.org>
+
+ * ltoutput.dtx: v1.0g \@topnewpage \@floatplacement placement bug
+ fixed
+
+ * ltoutput.dtx: v1.0f \@specialoutput Unboxing of 255 added to
+ rescue writes
+
+ * ltclass.dtx: 0.2k \ExecuteOptions Preserve \CurrentOption
+
+1993-12-05 N.N. <latex-bugs@latex-project.org>
+
+ * ltoutput.dtx: v1.0f \output Command changed
+
+ * ltoutput.dtx: v1.0f @\getfpsbit Command added
+
+ * ltoutput.dtx: v1.0f @\boxfpsbit Command added
+
+ * ltoutput.dtx: v1.0f \@topnewpage Commands changed
+
+ * ltoutput.dtx: v1.0f \@textfloatsheight Commands added
+
+ * ltoutput.dtx: v1.0f \@testfp Command changed
+
+ * ltoutput.dtx: v1.0f \@testfp Command added
+
+ * ltoutput.dtx: v1.0f \@startpagehook Hook added
+
+ * ltoutput.dtx: v1.0f \@startdblcolumn Command changed
+
+ * ltoutput.dtx: v1.0f \@startcolumn Command changed
+
+ * ltoutput.dtx: v1.0f \@shipoutsetup Command added
+
+ * ltoutput.dtx: v1.0f \@setfpsbit Command added
+
+ * ltoutput.dtx: v1.0f \@setfloattypecounts Command added
+
+ * ltoutput.dtx: v1.0f \@resethfps Command added
+
+ * ltoutput.dtx: v1.0f \@outputpage Command changed
+
+ * ltoutput.dtx: v1.0f \@opcol Hook added
+
+ * ltoutput.dtx: v1.0f \@opcol Command changed
+
+ * ltoutput.dtx: v1.0f \@fpsadddefault Command added
+
+ * ltoutput.dtx: v1.0f \@flupdates Command added
+
+ * ltoutput.dtx: v1.0f \@flstop Commands added
+
+ * ltoutput.dtx: v1.0f \@flsettextmin Command added
+
+ * ltoutput.dtx: v1.0f \@flsetnum Command added
+
+ * ltoutput.dtx: v1.0f \@flcheckspace Command added
+
+ * ltoutput.dtx: v1.0f \@addtotoporbot Command changed
+
+ * ltoutput.dtx: v1.0f \@addtonextcol Command changed
+
+ * ltoutput.dtx: v1.0f \@addtodblcol Command changed
+
+ * ltoutput.dtx: v1.0f \@addtocurcol Command changed
+
+ * ltoutput.dtx: v1.0f \@addtobot Command changed
+
+ * ltherest.dtx: LaTeX2e \@xfloat Command changed
+
+ * ltherest.dtx: LaTeX2e \@dblfloatplacement Command changed
+
+1993-12-04 N.N. <latex-bugs@latex-project.org>
+
+ * ltfiles.dtx: v0.9b \input Macro reimplemented
+
+ * ltfiles.dtx: v0.9b \InputIfFileExists Macro added
+
+ * ltfiles.dtx: v0.9b \IfFileExists Macro added
+
+ * ltfiles.dtx: v0.9b \@input Macro reimplemented
+
+ * ltfiles.dtx: v0.9b \@iinput Macro reimplemented
+
+1993-12-03 N.N. <latex-bugs@latex-project.org>
+
+ * ltinit.dtx: v0.9b \@latexerr Set \c@errorcontextlines to -1
+
+ * ltclass.dtx: 0.2i "General" \@onlypreamble: Many commands
+ declared.
+
+ * ltclass.dtx: 0.2i "General" Removed obsolete \@documentclass
+
+ * ltclass.dtx: 0.2i \@cls@pkg Name changed to avoid clash with
+ output routine.
+
+ * ltboxes.dtx: 0.1a \set@color macro added
+
+ * ltboxes.dtx: 0.1a \set@color color support
+
+ * ltboxes.dtx: 0.1a \sbox extra group
+
+ * ltboxes.dtx: 0.1a \sbox color support
+
+ * ltboxes.dtx: 0.1a \raisebox redefined to support \height
+
+ * ltboxes.dtx: 0.1a \parbox Redefined to support extra optional
+ arguments
+
+ * ltboxes.dtx: 0.1a \newsavebox Pass the whole of arg 1 to
+ \@ifdefinable
+
+ * ltboxes.dtx: 0.1a \minipage Redefined to support extra optional
+ arguments
+
+ * ltboxes.dtx: 0.1a \mbox extra group
+
+ * ltboxes.dtx: 0.1a \makebox modified
+
+ * ltboxes.dtx: 0.1a \lrbox macro added
+
+ * ltboxes.dtx: 0.1a \lrbox color support
+
+ * ltboxes.dtx: 0.1a \fbox extra group
+
+ * ltboxes.dtx: 0.1a \endlrbox macro added
+
+ * ltboxes.dtx: 0.1a \bm@b macros added
+
+ * ltboxes.dtx: 0.1a \@savebox default c not x
+
+ * ltboxes.dtx: 0.1a \@makepicbox macro modified
+
+ * ltboxes.dtx: 0.1a \@makebox default changed from x to c
+
+ * ltboxes.dtx: 0.1a \@isavepicbox extra group
+
+ * ltboxes.dtx: 0.1a \@isavebox extra group
+
+ * ltboxes.dtx: 0.1a \@isavebox color support
+
+ * ltboxes.dtx: 0.1a \@irsbox redefined to support \height
+
+ * ltboxes.dtx: 0.1a \@imakebox macro modified
+
+ * ltboxes.dtx: 0.1a \@iirsbox redefined to support \height
+
+ * ltboxes.dtx: 0.1a \@end@tempboxa macro added
+
+ * ltboxes.dtx: 0.1a \@begin@tempboxa macro added
+
+ * ltboxes.dtx: 0.1a \@argrsbox macro removed
+
+1993-12-01 N.N. <latex-bugs@latex-project.org>
+
+ * ltoutput.dtx: v1.0e \@reinserts Command added
+
+1993-11-30 N.N. <latex-bugs@latex-project.org>
+
+ * ltoutput.dtx: v1.0c \@tracemessage Commands added
+
+ * ltmiscen.dtx: LaTeX2e \eqnarray initialised everycr to {}
+
+1993-11-29 N.N. <latex-bugs@latex-project.org>
+
+ * ltplain.dtx: ??? "General" All accents in decimals; suggested
+ by Paul Taylor
+
+ * ltoutput.dtx: v1.0b \@makespecialcolbox Command added
+
+ * ltoutput.dtx: v1.0b \@makecol \@makespecialcolbox added
+
+1993-11-28 N.N. <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2h \endfilecontents Don't globally allocate a
+ write stream (always use 15)
+
+ * ltclass.dtx: 0.2h "General" Primitive filenames now terminated
+ by space not \relax.
+
+ * ltclass.dtx: 0.2h "General" Directory syntax checing moved to
+ dircheck.dtx:
+
+ * ltclass.dtx: 0.2h "General" Assorted commands now in the kernel
+ removed.
+
+ * ltclass.dtx: 0.2h \@twoclasseserror Macro added
+
+ * ltclass.dtx: 0.2h \@missingfileerror Use filename parser from
+ dircheck
+
+1993-11-24 N.N. <latex-bugs@latex-project.org>
+
+ * ltinit.dtx: LaTeX2e \P@LaTeX Macro changed
+
+ * fontcmds.dtx: v2.1a \test@next Macro added
+
+ * fontcmds.dtx: v2.1a \maybe@ic@ Use \test@next
+
+1993-11-23 N.N. <latex-bugs@latex-project.org>
+
+ * ltoutput.dtx: v0.1c \enlargethispage* Commands added
+
+ * ltoutput.dtx: v0.1c \@specialoutput Command changed
+
+ * ltoutput.dtx: v0.1c \@makecol Command changed
+
+ * ltoutput.dtx: v0.1c \@kludgeins Insert added
+
+ * ltoutput.dtx: v0.1c \@enlargepage Command added
+
+ * ltoutput.dtx: v0.1a \paperwidth Register added
+
+ * ltoutput.dtx: v0.1a \paperheight Register added
+
+ * ltinit.dtx: LaTeX2e \two@digits Macro added
+
+ * ltinit.dtx: LaTeX2e \renewenvironment Macro reimplemented and
+ extended
+
+ * ltinit.dtx: LaTeX2e \renewcommand Macro reimplemented and
+ extended
+
+ * ltinit.dtx: LaTeX2e \newcommand Macro reimplemented and
+ extended
+
+ * ltinit.dtx: LaTeX2e "General" replaced plus by \@plus if
+ appropriate
+
+ * ltinit.dtx: LaTeX2e \@yargdef Macro interface changed
+
+ * ltinit.dtx: LaTeX2e \@yargdef Avoid \@?@? token
+
+ * ltinit.dtx: LaTeX2e \@xargdef Macro interface changed
+
+ * ltinit.dtx: LaTeX2e \@xargdef Macro added
+
+ * ltinit.dtx: LaTeX2e \@newenv Macro interface changed
+
+ * ltinit.dtx: LaTeX2e \@newcommand Macro added
+
+ * ltinit.dtx: LaTeX2e \@ifundefined Redefined to remove a
+ trailing \fi
+
+ * ltclass.dtx: 0.2g "General" Warnings and errors now directly
+ coded.
+
+ * ltclass.dtx: 0.2g "General" Various macros now moved to
+ latex.tex.
+
+ * ltclass.dtx: 0.2g \@use@ption Name changed from \@executeoption
+
+1993-11-22 N.N. <latex-bugs@latex-project.org>
+
+ * ltinit.dtx: LaTeX2e \providecommand Macro added
+
+ * ltinit.dtx: LaTeX2e \c@errorcontextlines Macro added
+
+ * ltinit.dtx: LaTeX2e \LaTeXe Macro added
+
+ * ltinit.dtx: LaTeX2e \@plus Macro added
+
+ * ltinit.dtx: LaTeX2e \@minus Macro added
+
+ * ltinit.dtx: LaTeX2e \@checkcommand Macro added
+
+ * ltherest.dtx: LaTeX2e \settoheight Macro added
+
+ * ltherest.dtx: LaTeX2e \settodepth Macro added
+
+ * ltherest.dtx: LaTeX2e \@settopoint Macro added
+
+ * ltherest.dtx: LaTeX2e \@settodim Macro added
+
+ * ltclass.dtx: 0.2f \listfiles Removed checking for
+ \@unknownversion
+
+ * ltclass.dtx: 0.2f \@unknownversion Macro removed
+
+ * ltclass.dtx: 0.2f \@ifclasslater Added //00 so parsing never
+ produces a runaway argument.
+
+ * ltclass.dtx: 0.2f \@fileswithoptions Made the initial version
+ [] not [\@unknownversion]
+
+ * ltclass.dtx: 0.2f \@fileswithoptions Made the default [] not
+ [\@unknownversion]
+
+1993-11-21 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: v0.9a \verbatim@font Macro added
+
+ * ltmiscen.dtx: v0.9a \verb use \verbatim@font instead of \tt
+
+1993-11-21 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: v0.9a \@verbatim use \verbatim@font instead of
+ \tt
+
+ * ltinit.dtx: LaTeX2e "General" replaced \tt by \ttfamily if
+ appropriate
+
+ * ltinit.dtx: LaTeX2e "General" replaced \sf by \sffamily if
+ appropriate
+
+ * ltinit.dtx: LaTeX2e "General" replaced \sc by \scshape if
+ appropriate
+
+ * ltinit.dtx: LaTeX2e "General" replaced \rm by \rmfamily if
+ appropriate
+
+ * ltinit.dtx: LaTeX2e "General" replaced \it by \itshape if
+ appropriate
+
+ * ltinit.dtx: LaTeX2e "General" replaced \bf by \bfseries if
+ appropriate
+
+ * ltclass.dtx: 0.2e \@missingfileerror Stop infinite looping on
+ \@er@ext
+
+1993-11-18 N.N. <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2d \documentstyle Modified \RequirePackage stuff.
+
+ * ltclass.dtx: 0.2d \NeedsTeXFormat \fmtname \fmtversion not
+ \@\pldots
+
+ * ltclass.dtx: 0.2d \ExecuteOptions Use \CurrentOption not \@tempa
+
+1993-11-17 N.N. <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2c \ProcessOptions* restoring \@fileswith@pti@ns
+ added.
+
+ * ltclass.dtx: 0.2c \NeedsTeXFormat Name changed from
+ \NeedsFormat
+
+ * ltclass.dtx: 0.2c \DeclareOption* Error checking added
+
+ * ltclass.dtx: 0.2c \CurrentOption Name changed from \@curroption
+
+ * ltclass.dtx: 0.2c \@twoloadclasserror Macro added
+
+ * ltclass.dtx: 0.2c \@fileswithoptions Added trap for two
+ \LoadClass commands.
+
+ * ltclass.dtx: 0.2c \@badrequireerror Macro added
+
+ * ltclass.dtx: 0.2c \@@fileswith@pti@ns Macro added
+
+1993-11-15 N.N. <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2b \documentstyle Modified to match
+ \ProcessOption*
+
+ * ltclass.dtx: 0.2b \ProcessOptions* Star form added.
+
+1993-11-14 N.N. <latex-bugs@latex-project.org>
+
+ * ltclass.dtx: 0.2a \g@addto@macro Made global
+
+ * ltclass.dtx: 0.2a \documentstyle Added \RequirePackage
+ \@unusedoptionlist stuff.
+
+ * ltclass.dtx: 0.2a \ProcessOptions* Stop adding the global
+ option list inside class files.
+
+ * ltclass.dtx: 0.2a \ProcessOptions* Optimise `empty option'
+ code.
+
+ * ltclass.dtx: 0.2a \NeedsTeXFormat made more robust for
+ alternative syntax for other formats.
+
+ * ltclass.dtx: 0.2a \AtEndDocument Included extension in the
+ generated macro name for package and class hooks.
+
+ * ltclass.dtx: 0.2a \@reset@ptions macro added
+
+ * ltclass.dtx: 0.2a \@fileswithoptions Moved reseting of
+ \default@ds, \ds@ and \@declaredoptions here, from the end of
+ \ProcessOptions.
+
+ * ltclass.dtx: 0.2a \@currext Name changed from \@currextension
+
+1993-11-03 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltpictur.dtx: LaTeX2.09 "General" (RmS) changed \halign to
+ \ialignto initialize \tabskip and \everycr
+
+1993-09-08 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: LaTeX2.09 \enddocument Added warning in case of
+ undefined references.
+
+1993-09-07 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: LaTeX2.09 Changed definition of \verb so that
+ it detects a missing second delimiter.
+
+1993-09-03 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: LaTeX2.09 \verbatim@nolig@list Replaced \@noligs
+ by extensible list
+
+1993-08-05 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2.09 \@sect (RmS) Made sure that
+ \protectworks correctly in expansion of \the<counter>
+
+1993-08-03 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: LaTeX2.09 \enddocument Changed redefinition of
+ \global to redefinition of \@setckpt.
+
+1993-05-05 N.N. <latex-bugs@latex-project.org>
+
+ * fontcmds.dtx: v2.0b "General" Removed all LaTeX related cmds
+
+1992-11-26 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2.09 \footnote (RmS) Changed all to
+ \def\protect{\noexpand\protect\noexpand}
+
+ * ltherest.dtx: LaTeX2.09 \@footnotetext (RmS) added protection
+ for \edef
+
+ * ltboxes.dtx: LaTeX2.09 \@mpfootnotetext (RmS) added protection
+ for \edef
+
+1992-08-25 Frank Mittelbach <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2.09 \@sect (FMi) replaced explicit setting
+ of \@svsec by call to \@seccntformat
+
+1992-08-24 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: LaTeX2.09 \verb Changed \verband \@sverb to work
+ correctly in math mode
+
+ * ltinit.dtx: LaTeX2.09 \@ifnextchar Changed so first argument
+ can be `='.
+
+1992-08-19 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2.09 \@othm (RmS) Changed error message to
+ complain about undefined counter
+
+1992-03-18 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2.09 \end@float (RmS) changed \@esphack to
+ \@Esphack
+
+ * ltherest.dtx: LaTeX2.09 \@xympar (RmS) added
+ \global\@ignorefalse
+
+1992-01-10 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2.09 \@othm (RmS) Check for existence of
+ theorem environment
+
+1991-11-22 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltlists.dtx: LaTeX2.09 \@item (RmS) Changed second call to
+ \makelabelto \unhbox\@tempboxa. Avoids problems with side
+ effects in \makelabeland is more efficient.
+
+ * ltherest.dtx: LaTeX2.09 \footnote (RmS) Added
+ \let\protect\noexpandin \@xfootnote, \@xfootnotemark, and
+ \@xfootnotetext
+
+1991-11-06 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2.09 \end@float (RmS) added warning message
+ perhaps we should use an error message
+
+1991-11-04 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltlists.dtx: LaTeX2.09 \makelabel (RmS) added default
+ definition for \makelabel, to produce an error message.
+
+1991-11-01 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2.09 \footnote (RmS) Added
+ \let\protect\noexpandin \footnote, \footnotemark, and
+ \footnotetext, since \xdef is used
+
+1991-10-17 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltinit.dtx: LaTeX209 \@tfor (Rms) \xdef replaced by \def (See
+ FMi's array.doc)
+
+1991-09-29 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltherest.dtx: LaTeX2.09 \@footnotetext (RmS) added \reset@font
+
+ * ltherest.dtx: LaTeX2.09 \@dottedtocline (RmS) added
+ \reset@font for page number
+
+ * ltboxes.dtx: LaTeX2.09 \@mpfootnotetext (RmS) added
+ \reset@font
+
+1991-08-26 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: LaTeX2.09 \@verbatim \@@par added
+
+1991-08-14 Rainer Schoepf <latex-bugs@latex-project.org>
+
+ * ltplain.dtx: LaTeX2.09 \cases (RmS) inserted extra braces
+ around entry for NFSS
+
+ * ltpictur.dtx: LaTeX2.09 "General" (RmS) inserted extra braces
+ around entry for NFSS
+
+ * ltherest.dtx: LaTeX2.09 \@endtheorem Moved \itshapeafter \item
+ to make it work with NFSS
+
+1991-07-24 N.N. <latex-bugs@latex-project.org>
+
+ * ltmiscen.dtx: LaTeX2.09 \@verbatim Added
+ \penalty\interlinepenalty to definition of \par so that
+ \samepage works
diff --git a/macros/latex-dev/base/classes.dtx b/macros/latex-dev/base/classes.dtx
index ea3b014c89..d6f2bb64e6 100644
--- a/macros/latex-dev/base/classes.dtx
+++ b/macros/latex-dev/base/classes.dtx
@@ -53,7 +53,7 @@
%<*driver>
\ProvidesFile{classes.drv}
%</driver>
- [2019/12/20 v1.4l
+ [2020/04/10 v1.4m
%<article|report|book> Standard LaTeX document class]
%<10pt|11pt|12pt> Standard LaTeX file (size option)]
% \end{macrocode}
@@ -214,6 +214,7 @@
% 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.4m}{2020/04/10}{(JLB) prettyprinting the code}
%
%
% \title{Standard Document Classes for \LaTeX{} version 2e\thanks{This
@@ -221,7 +222,7 @@
%
% \author{%
% Copyright (C) 1992 by Leslie Lamport \and
-% Copyright (C) 1994-2019 by Frank Mittelbach \and Johannes Braams \and
+% Copyright (C) 1994-2020 by Frank Mittelbach \and Johannes Braams \and
% \LaTeX3 Project Team
% }
% \date{\filedate}
@@ -322,34 +323,34 @@
% \changes{v1.0g}{1993/12/09}{Removed typo, A4 is not 279 mm high}
% \begin{macrocode}
\if@compatibility\else
-\DeclareOption{a4paper}
- {\setlength\paperheight {297mm}%
- \setlength\paperwidth {210mm}}
-\DeclareOption{a5paper}
- {\setlength\paperheight {210mm}%
- \setlength\paperwidth {148mm}}
-\DeclareOption{b5paper}
- {\setlength\paperheight {250mm}%
- \setlength\paperwidth {176mm}}
-\DeclareOption{letterpaper}
- {\setlength\paperheight {11in}%
- \setlength\paperwidth {8.5in}}
-\DeclareOption{legalpaper}
- {\setlength\paperheight {14in}%
- \setlength\paperwidth {8.5in}}
-\DeclareOption{executivepaper}
- {\setlength\paperheight {10.5in}%
- \setlength\paperwidth {7.25in}}
+ \DeclareOption{a4paper}
+ {\setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}}
+ \DeclareOption{a5paper}
+ {\setlength\paperheight {210mm}%
+ \setlength\paperwidth {148mm}}
+ \DeclareOption{b5paper}
+ {\setlength\paperheight {250mm}%
+ \setlength\paperwidth {176mm}}
+ \DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}}
+ \DeclareOption{legalpaper}
+ {\setlength\paperheight {14in}%
+ \setlength\paperwidth {8.5in}}
+ \DeclareOption{executivepaper}
+ {\setlength\paperheight {10.5in}%
+ \setlength\paperwidth {7.25in}}
% \end{macrocode}
%
% The option \Lopt{landscape} switches the values of |\paperheight|
% and |\paperwidth|, assuming the dimensions were given for portrait
% paper.
% \begin{macrocode}
-\DeclareOption{landscape}
- {\setlength\@tempdima {\paperheight}%
- \setlength\paperheight {\paperwidth}%
- \setlength\paperwidth {\@tempdima}}
+ \DeclareOption{landscape}
+ {\setlength\@tempdima {\paperheight}%
+ \setlength\paperheight {\paperwidth}%
+ \setlength\paperwidth {\@tempdima}}
\fi
% \end{macrocode}
%
@@ -368,7 +369,7 @@
\if@compatibility
\renewcommand\@ptsize{0}
\else
-\DeclareOption{10pt}{\renewcommand\@ptsize{0}}
+ \DeclareOption{10pt}{\renewcommand\@ptsize{0}}
\fi
\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
@@ -382,7 +383,7 @@
% paragraphs into the outside margin.
% \begin{macrocode}
\if@compatibility\else
-\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
+ \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
\fi
\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
% \end{macrocode}
@@ -395,7 +396,7 @@
% \begin{macrocode}
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\if@compatibility\else
-\DeclareOption{final}{\setlength\overfullrule{0pt}}
+ \DeclareOption{final}{\setlength\overfullrule{0pt}}
\fi
% \end{macrocode}
%
@@ -405,7 +406,7 @@
% \begin{macrocode}
\DeclareOption{titlepage}{\@titlepagetrue}
\if@compatibility\else
-\DeclareOption{notitlepage}{\@titlepagefalse}
+ \DeclareOption{notitlepage}{\@titlepagefalse}
\fi
% \end{macrocode}
%
@@ -427,7 +428,7 @@
% Two-column and one-column printing is again realized via a switch.
% \begin{macrocode}
\if@compatibility\else
-\DeclareOption{onecolumn}{\@twocolumnfalse}
+ \DeclareOption{onecolumn}{\@twocolumnfalse}
\fi
\DeclareOption{twocolumn}{\@twocolumntrue}
% \end{macrocode}
@@ -468,7 +469,7 @@
% First some hook into the bibliography environment is filled.
% \begin{macrocode}
\AtEndOfPackage{%
- \renewcommand\@openbib@code{%
+ \renewcommand\@openbib@code{%
\advance\leftmargin\bibindent
\itemindent -\bibindent
\listparindent \itemindent
@@ -477,7 +478,7 @@
% \end{macrocode}
% In addition the definition of |\newblock| is overwritten.
% \begin{macrocode}
- \renewcommand\newblock{\par}}%
+ \renewcommand\newblock{\par}}%
}
% \end{macrocode}
%
@@ -950,7 +951,7 @@
% |\topskip|.
% \begin{macrocode}
\if@compatibility \setlength\maxdepth{4\p@} \else
-\setlength\maxdepth{.5\topskip} \fi
+ \setlength\maxdepth{.5\topskip} \fi
% \end{macrocode}
% \end{macro}
%
@@ -1106,7 +1107,7 @@
% between two marginal notes is controlled by |\marginparpush|.
% \begin{macrocode}
\if@twocolumn
- \setlength\marginparsep {10\p@}
+ \setlength\marginparsep {10\p@}
\else
%<10pt&!bk> \setlength\marginparsep{11\p@}
%<11pt&!bk> \setlength\marginparsep{10\p@}
@@ -1801,7 +1802,7 @@
% \changes{v1.3o}{1995/11/02}{(CAR) Make \cs{footnote} always work in
% title, etc}
% \begin{macrocode}
- \if@titlepage
+\if@titlepage
\newcommand\maketitle{\begin{titlepage}%
\let\footnotesize\small
\let\footnoterule\relax
@@ -1867,7 +1868,7 @@
\global\let\author\relax
\global\let\date\relax
\global\let\and\relax
-}
+ }
% \end{macrocode}
% When the title is not on a page of its own, the layout of the
% title is a little different. We use symbols to mark the footnotes
@@ -1884,12 +1885,12 @@
% \cs{@makefntext} to a) work and b) without using math}
% \begin{macrocode}
\else
-\newcommand\maketitle{\par
- \begingroup
- \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
- \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
- \long\def\@makefntext##1{\parindent 1em\noindent
- \hb@xt@1.8em{%
+ \newcommand\maketitle{\par
+ \begingroup
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{%
\hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
% \end{macrocode}
% If this is a twocolumn document we start a new page in twocolumn
@@ -1899,27 +1900,27 @@
% \changes{v1.2k}{1994/05/06}{Added check on number of columns in use
% locally}
% \begin{macrocode}
- \if@twocolumn
- \ifnum \col@number=\@ne
- \@maketitle
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
\else
- \twocolumn[\@maketitle]%
- \fi
- \else
% \end{macrocode}
% When this is not a twocolumn document we just start a new page,
% prevent floating objects from appearing on the top of this page
% and print the title information.
% \begin{macrocode}
\newpage
- \global\@topnum\z@ % Prevents figures from going at top of page.
- \@maketitle
- \fi
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle
+ \fi
% \end{macrocode}
% This page gets a \pstyle{plain} layout. We call |\@thanks| to
% produce the footnotes.
% \begin{macrocode}
- \thispagestyle{plain}\@thanks
+ \thispagestyle{plain}\@thanks
% \end{macrocode}
% Now we can close the group, reset the \Lcount{footnote} counter,
% disable |\thanks|, |\maketitle| and |\@maketitle| and save some
@@ -1928,20 +1929,20 @@
% \changes{v1.3k}{1995/08/27}{Disable \cs{title} and similar decls}
% \changes{v1.3n}{1995/10/29}{Empty \cs{@date} as well}
% \begin{macrocode}
- \endgroup
- \setcounter{footnote}{0}%
- \global\let\thanks\relax
- \global\let\maketitle\relax
- \global\let\@maketitle\relax
- \global\let\@thanks\@empty
- \global\let\@author\@empty
- \global\let\@date\@empty
- \global\let\@title\@empty
- \global\let\title\relax
- \global\let\author\relax
- \global\let\date\relax
- \global\let\and\relax
-}
+ \endgroup
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \global\let\@title\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+ }
% \end{macrocode}
% \end{macro}
%
@@ -3144,7 +3145,7 @@
% First we do give the definition for compatibility mode.
% \begin{macrocode}
\if@compatibility
-\newenvironment{titlepage}
+ \newenvironment{titlepage}
{%
%<book> \cleardoublepage
\if@twocolumn
@@ -3162,7 +3163,7 @@
% And here is the one for native \LaTeXe{}.
% \begin{macrocode}
\else
-\newenvironment{titlepage}
+ \newenvironment{titlepage}
{%
%<book> \cleardoublepage
\if@twocolumn
diff --git a/macros/latex-dev/base/classes.pdf b/macros/latex-dev/base/classes.pdf
index f72dae4514..1c33a811b0 100644
--- a/macros/latex-dev/base/classes.pdf
+++ b/macros/latex-dev/base/classes.pdf
Binary files differ
diff --git a/macros/latex-dev/base/clsguide.pdf b/macros/latex-dev/base/clsguide.pdf
index b0459b419b..ef43b41db0 100644
--- a/macros/latex-dev/base/clsguide.pdf
+++ b/macros/latex-dev/base/clsguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/cmfonts.pdf b/macros/latex-dev/base/cmfonts.pdf
index b942338d53..cd291a5f9a 100644
--- a/macros/latex-dev/base/cmfonts.pdf
+++ b/macros/latex-dev/base/cmfonts.pdf
Binary files differ
diff --git a/macros/latex-dev/base/cyrguide.pdf b/macros/latex-dev/base/cyrguide.pdf
index a2f9f702ce..2bbc7d8f18 100644
--- a/macros/latex-dev/base/cyrguide.pdf
+++ b/macros/latex-dev/base/cyrguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/doc.pdf b/macros/latex-dev/base/doc.pdf
index 88da0aa984..f4f1b1fa76 100644
--- a/macros/latex-dev/base/doc.pdf
+++ b/macros/latex-dev/base/doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/docstrip.dtx b/macros/latex-dev/base/docstrip.dtx
index 9cc7945d60..3ce6ed5696 100644
--- a/macros/latex-dev/base/docstrip.dtx
+++ b/macros/latex-dev/base/docstrip.dtx
@@ -29,8 +29,8 @@
\catcode`\{=1
\catcode`\}=2
\def\filename{docstrip.dtx}
-\def\fileversion{2.5g}
-\def\filedate{2018/05/03}
+\def\fileversion{v2.5h}
+\def\filedate{2020/04/18}
\def\docdate {2018/05/03}
%%
%
@@ -1635,6 +1635,16 @@ Z
\x
% \end{macrocode}
%
+% \begin{macro}{\quote@name}
+% \changes{v2.5h}{2020/04/18}{Macro added gfh/221)}
+% A macro copied from \texttt{ltfiles.dtx} in order to be able to
+% allow spaces in filenames.
+% \begin{macrocode}
+\def\quote@name#1{"\quote@@name#1\@gobble""}
+\def\quote@@name#1"{#1\quote@@name}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\StreamOpen}\begin{macro}{\StreamPut}
% \begin{macro}{\StreamClose}
% Here is stream opening operator. Its parameter should be a macro
@@ -1642,6 +1652,10 @@ Z
% write to file |foo.tex| use |\StreamOpen\foo|, then
% |\StreamPut\foo| and |\StreamClose\foo|.
%
+% \changes{v2.5h}{2020/04/18}{Allow spaces in filenames by enclosing
+% them in quotes (gh/221)}
+% \changes{v2.5h}{2020/04/18}{Added two times two \cs{expandafters} to
+% make the case with a filename in quotes work as well}
% \begin{macrocode}
\chardef\stream@closed=16
\def\StreamOpen#1{%
@@ -1649,7 +1663,10 @@ Z
\def\s@do##1{\ifnum##1=0
\chardef#1=\expandafter\@stripstr\string##1 %
\global\chardef##1=1 %
- \immediate\openout#1=\csname pth@\@stripstring#1\endcsname %
+ \edef\q@curr@file{%
+ \expandafter\expandafter\expandafter\quote@name
+ \expandafter\expandafter\expandafter{\csname pth@\@stripstring#1\endcsname}}
+ \immediate\openout#1=\q@curr@file\relax
\@streamfound
\fi}
\@outputstreams
diff --git a/macros/latex-dev/base/docstrip.pdf b/macros/latex-dev/base/docstrip.pdf
index dc31dee8fa..3f74e31d4e 100644
--- a/macros/latex-dev/base/docstrip.pdf
+++ b/macros/latex-dev/base/docstrip.pdf
Binary files differ
diff --git a/macros/latex-dev/base/encguide.pdf b/macros/latex-dev/base/encguide.pdf
index 64ceff2a9a..d651b88475 100644
--- a/macros/latex-dev/base/encguide.pdf
+++ b/macros/latex-dev/base/encguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/exscale.pdf b/macros/latex-dev/base/exscale.pdf
index 2912bad8fd..65bc658e9e 100644
--- a/macros/latex-dev/base/exscale.pdf
+++ b/macros/latex-dev/base/exscale.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fix-cm.pdf b/macros/latex-dev/base/fix-cm.pdf
index 856c5c0ec2..2cd2d911b8 100644
--- a/macros/latex-dev/base/fix-cm.pdf
+++ b/macros/latex-dev/base/fix-cm.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fntguide.pdf b/macros/latex-dev/base/fntguide.pdf
index 46a96dcb9a..2b2017d501 100644
--- a/macros/latex-dev/base/fntguide.pdf
+++ b/macros/latex-dev/base/fntguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fontdef.dtx b/macros/latex-dev/base/fontdef.dtx
index c5623c5566..936db0d7a2 100644
--- a/macros/latex-dev/base/fontdef.dtx
+++ b/macros/latex-dev/base/fontdef.dtx
@@ -39,7 +39,7 @@
%<driver, >\ProvidesFile{fontdef.drv}
% \fi
% \ProvidesFile{fontdef.dtx}
-%<-latexrelease> [2020/02/11 v3.0g LaTeX Kernel
+%<-latexrelease> [2020/04/24 v3.0h LaTeX Kernel
% \iftrue (\else
%<text, >(Text
%<math, >(Math
@@ -489,8 +489,8 @@
% Series changing commands are influenced by the following hooks.
% \changes{v3.0e}{2019/12/17}{Set \cs{bfdefault} to ``b''}
% \begin{macrocode}
-\newcommand\bfdefault{b} % overwritten below
-\newcommand\mddefault{m}
+\newcommand\bfdefault{b} % overwritten below (for rollback)
+\newcommand\mddefault{m} % overwritten below (for rollback)
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -506,7 +506,7 @@
\newcommand\itdefault{it}
\newcommand\sldefault{sl}
\newcommand\scdefault{sc}
-\newcommand\updefault{up} % overwritten below
+\newcommand\updefault{up} % overwritten below (for rollback)
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -519,8 +519,21 @@
%<*text|latexrelease>
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<latexrelease> {\updefault}{font defaults change}%
+% \begin{macrocode}
\renewcommand\updefault{up}
-\renewcommand\bfdefault{b}
+% \end{macrocode}
+% We append \cs{@empty} to the series value so that we can detect
+% if it got changed via \cs{def} or \cs{renewcommand} later.
+% \changes{v3.0h}{2020/03/19}{Support legacy use of \cs{bfdefault}
+% and \cs{mddefault} (gh/306)}
+% \begin{macrocode}
+\renewcommand\bfdefault{b\@empty}
+\renewcommand\mddefault{m\@empty}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\bfdefault@previous\bfdefault
+\let\mddefault@previous\mddefault
%</text|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
@@ -528,6 +541,9 @@
%<latexrelease>
%<latexrelease>\renewcommand\updefault{n}
%<latexrelease>\renewcommand\bfdefault{bx}
+%<latexrelease>
+%<latexrelease>\let\bfdefault@previous\undefined
+%<latexrelease>\let\mddefault@previous\undefined
%<latexrelease>\EndIncludeInRelease
%<*text>
% \end{macrocode}
@@ -549,8 +565,8 @@
% 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''}
+% \begin{macrocode}
\newcommand\shapedefault{n}
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex-dev/base/graphpap.pdf b/macros/latex-dev/base/graphpap.pdf
index 8c59ea2651..6445993704 100644
--- a/macros/latex-dev/base/graphpap.pdf
+++ b/macros/latex-dev/base/graphpap.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ifthen.pdf b/macros/latex-dev/base/ifthen.pdf
index be07cdedb5..d9c284461f 100644
--- a/macros/latex-dev/base/ifthen.pdf
+++ b/macros/latex-dev/base/ifthen.pdf
Binary files differ
diff --git a/macros/latex-dev/base/inputenc.dtx b/macros/latex-dev/base/inputenc.dtx
index 641125cc75..01a8303ecf 100644
--- a/macros/latex-dev/base/inputenc.dtx
+++ b/macros/latex-dev/base/inputenc.dtx
@@ -261,18 +261,18 @@
% turn should ``hopefully'' set up the corresponding UTF-8 mapping).
%
% This works well enough for the main Western languages for which \LaTeX{}
-% has proper font encoding support, but currently already falls short on
-% languages like Greek (which has some semi-official font support, but for
-% which corresponding UTF-8 mappings still need to be defined).
+% has proper font encoding support, but can fall short on other
+% languages.
%
-% For some languages (such as Greek mentioned above) all that remains doing is
+% For some of these languages all that remains doing is
% to provide the necessary mappings and stick them into |utf8ienc.dtx|, so
% volunteers are welcome. For other languages that do not fit well into
% \LaTeX{} font selection scheme, e.g., Asian languages the outlined inputenc
% approach will not work. If that is the case one can try using Dominique
% Unruh's option |utf8x| for inputenc which has a somewhat different approach
% and encodes many more UTF-8 characters than the standard |utf8| option.
-% However, we recommend to do so only if you really need such alphabets as
+% However, we recommend to do so only if you really need such alphabets and can not
+% switch to one of the unicode engines xelatex or lualatex as
% there are problems with this extended approach which were precisely the
% reason that we decided to limit the support to what is properly supported
% within the boundaries of \LaTeX's font selection.
@@ -410,7 +410,7 @@
%<cp1252&!ansinew> \ProvidesFile{cp1252.def}
%<cp1250> \ProvidesFile{cp1250.def}
%<cp1257> \ProvidesFile{cp1257.def}
- [2018/08/11 v1.3c Input encoding file]
+ [2020/04/14 v1.3c Input encoding file]
%<cp850>%%
%<cp850>%% If you need a Euro symbol, try cp858 instead.
%<cp850>%%
diff --git a/macros/latex-dev/base/inputenc.pdf b/macros/latex-dev/base/inputenc.pdf
index 48d288b0de..ee5a4e8bbe 100644
--- a/macros/latex-dev/base/inputenc.pdf
+++ b/macros/latex-dev/base/inputenc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/latexchanges.pdf b/macros/latex-dev/base/latexchanges.pdf
index 4730d7f8cd..d4b0bd2de2 100644
--- a/macros/latex-dev/base/latexchanges.pdf
+++ b/macros/latex-dev/base/latexchanges.pdf
Binary files differ
diff --git a/macros/latex-dev/base/latexrelease.pdf b/macros/latex-dev/base/latexrelease.pdf
index 396d04c8f5..e914f5ee30 100644
--- a/macros/latex-dev/base/latexrelease.pdf
+++ b/macros/latex-dev/base/latexrelease.pdf
Binary files differ
diff --git a/macros/latex-dev/base/latexsym.pdf b/macros/latex-dev/base/latexsym.pdf
index f6b265cee5..5a41af7123 100644
--- a/macros/latex-dev/base/latexsym.pdf
+++ b/macros/latex-dev/base/latexsym.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lb2.pdf b/macros/latex-dev/base/lb2.pdf
index b04c71d42c..abb4820d33 100644
--- a/macros/latex-dev/base/lb2.pdf
+++ b/macros/latex-dev/base/lb2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/letter.dtx b/macros/latex-dev/base/letter.dtx
index ee9a87cf84..7b31dfbbc9 100644
--- a/macros/latex-dev/base/letter.dtx
+++ b/macros/latex-dev/base/letter.dtx
@@ -45,7 +45,7 @@
%<*driver>
\ProvidesFile{letter.drv}
%</driver>
- [2014/09/29 v1.2z
+ [2020/03/11 v1.3b
%<+letter> Standard LaTeX document class]
% \end{macrocode}
%
@@ -115,10 +115,10 @@
% \end{macrocode}
% Some commonly used abbreviations
% \begin{macrocode}
-\newcommand*{\Lopt}[1]{\textsf {#1}}
-\newcommand*{\file}[1]{\texttt {#1}}
-\newcommand*{\Lcount}[1]{\textsl {\small#1}}
-\newcommand*{\pstyle}[1]{\textsl {#1}}
+\newcommand*\Lopt[1]{\textsf {#1}}
+\newcommand*\file[1]{\texttt {#1}}
+\newcommand*\Lcount[1]{\textsl {\small#1}}
+\newcommand*\pstyle[1]{\textsl {#1}}
% \end{macrocode}
% We also want the full details.
% \begin{macrocode}
@@ -162,6 +162,7 @@
% \changes{v1.2q}{1995/05/17}{cleaned up \cs{changes entries}}
% \changes{v1.2q}{1995/05/18}{replaced \cs{hbox to} by \cs{hb@xt@}}
% \changes{v1.2r}{1995/05/23}{removed a superfluous brace}
+% \changes{v1.3a}{2020/03/07}{merged changes to classes.dtx into letter.dtx}
%
% \iffalse
% Copyright (C) 1994 LaTeX3 project, Frank Mittelbach
@@ -751,29 +752,29 @@
% \item |\name{Dr. L. User}| : to be used for the return address on
% the envelope.
% \begin{macrocode}
-\newcommand*{\name}[1]{\def\fromname{#1}}
+\newcommand*\name[1]{\def\fromname{#1}}
% \end{macrocode}
% \item |\signature{Larry User}| : goes after the closing.
% \begin{macrocode}
-\newcommand*{\signature}[1]{\def\fromsig{#1}}
+\newcommand*\signature[1]{\def\fromsig{#1}}
% \end{macrocode}
% \item |\address{3245 Foo St.\\Gnu York}| : used as the return
% address in the
% letter and on the envelope. If not declared, then an
% institutional standard address is used.
% \begin{macrocode}
-\newcommand*{\address}[1]{\def\fromaddress{#1}}
+\newcommand*\address[1]{\def\fromaddress{#1}}
% \end{macrocode}
% \item |\location{Room 374}| : Acts as modifier to the standard
% institutional address.
% \begin{macrocode}
-\newcommand*{\location}[1]{\def\fromlocation{#1}}
+\newcommand*\location[1]{\def\fromlocation{#1}}
% \end{macrocode}
% \item |\telephone{(415)123-4567}| : Just in case some style puts it
% on the letter.
% \changes{v1.2m}{1994/06/23}{Removed typo (\#[] instead of [1])}
% \begin{macrocode}
-\newcommand*{\telephone}[1]{\def\telephonenum{#1}}
+\newcommand*\telephone[1]{\def\telephonenum{#1}}
% \end{macrocode}
% \end{itemize}
% \end{macro}
@@ -805,7 +806,7 @@
% \begin{macro}{\makelabels}
% The |\makelabels| declaration causes mailing labels to be made.
% \begin{macrocode}
-\newcommand*{\makelabels}{%
+\newcommand*\makelabels{%
% \end{macrocode}
% At the beginning of the document, we need to activate the
% |\@mlabel| and |\@startlabels| commands, as well as write
@@ -914,7 +915,7 @@
% When the command |\stopbreaks| is issued no page breaks should
% occur until |\startbreaks| is called.
% \begin{macrocode}
-\newcommand*{\stopbreaks}{%
+\newcommand*\stopbreaks{%
\interlinepenalty\@M
\def\par{\@@par\nobreak}%
\let\\\@nobreakcr
@@ -953,7 +954,7 @@
% \begin{macro}{\startbreaks}
% This cancels the effect of |\stopbreaks|.
% \begin{macrocode}
-\newcommand*{\startbreaks}{%
+\newcommand*\startbreaks{%
\let\\\@normalcr
\interlinepenalty 200%
\def\par{\@@par\penalty 200\relax}}
@@ -1004,7 +1005,7 @@
% declaration--null if none.
% \end{itemize}
% \begin{macrocode}
-\newcommand*{\opening}[1]{\ifx\@empty\fromaddress
+\newcommand*\opening[1]{\ifx\@empty\fromaddress
\thispagestyle{firstpage}%
{\raggedleft\@date\par}%
\else % home address
@@ -1039,7 +1040,7 @@
% \item |\stopbreaks| : a macro that inhibits page breaking.
% \end{itemize}
% \begin{macrocode}
-\newcommand{\closing}[1]{\par\nobreak\vspace{\parskip}%
+\newcommand\closing[1]{\par\nobreak\vspace{\parskip}%
\stopbreaks
\noindent
\ifx\@empty\fromaddress\else
@@ -1085,7 +1086,7 @@
% \changes{v1.2s}{1995/05/25}{replace \cs{reset@font} with
% \cs{normalfont}; remove \cs{rm}}
% \begin{macrocode}
-\newcommand*{\cc}[1]{%
+\newcommand*\cc[1]{%
\par\noindent
\parbox[t]{\textwidth}{%
\@hangfrom{\normalfont\ccname: }%
@@ -1100,7 +1101,7 @@
% & Bar
% \end{tabular}
% \begin{macrocode}
-\newcommand*{\encl}[1]{%
+\newcommand*\encl[1]{%
\par\noindent
\parbox[t]{\textwidth}{%
\@hangfrom{\normalfont\enclname: }%
@@ -1110,7 +1111,7 @@
% The only thing |\ps| needs to do is call |\startbreaks|,
% which allows page breaking again.
% \begin{macrocode}
-\newcommand*{\ps}{\par\startbreaks}
+\newcommand*\ps{\par\startbreaks}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1137,7 +1138,7 @@
% |\protect\standardreturnaddress|.
% \end{itemize}
% \begin{macrocode}
-\newcommand*{\stopletter}{}
+\newcommand*\stopletter{}
% \end{macrocode}
% \end{macro}
%
@@ -1159,7 +1160,7 @@
% The return address for the mailing labels can be stored in this
% macro.
% \begin{macrocode}
-\newcommand*{\returnaddress}{}
+\newcommand*\returnaddress{}
% \end{macrocode}
% \end{macro}
%
@@ -1177,7 +1178,7 @@
% 5352 address labels.
% \changes{v1.2q}{1995/03/14}{changed value of \cs{columnsep} by 1pt}
% \begin{macrocode}
-\newcommand*{\startlabels}{\labelcount\z@
+\newcommand*\startlabels{\labelcount\z@
\pagestyle{empty}%
\let\@texttop\relax
\topmargin -50\p@
@@ -1226,7 +1227,7 @@
% \changes{v1.2q}{1995/03/14}{changed width of the labels slightly to
% prevent \LaTeX\ stuffing two on each line}
% \begin{macrocode}
-\newcommand*{\mlabel}[2]{%
+\newcommand*\mlabel[2]{%
\parbox[b][2in][c]{262\p@}{\strut\ignorespaces #2}%
}
% \end{macrocode}
@@ -1267,7 +1268,7 @@
% For efficiency, level-one list's values are defined at top level, and
% |\@listi| is defined to set only |\leftmargin|.
% \begin{macrocode}
-\setlength\leftmargini {2.5em}
+\setlength\leftmargini {2.5em}
% \end{macrocode}
% The following three are calculated so that they are larger than
% the sum of |\labelsep| and the width of the default labels (which
@@ -1276,8 +1277,8 @@
\setlength\leftmarginii {2.2em}
\setlength\leftmarginiii {1.87em}
\setlength\leftmarginiv {1.7em}
-\setlength\leftmarginv {1em}
-\setlength\leftmarginvi {1em}
+\setlength\leftmarginv {1em}
+\setlength\leftmarginvi {1em}
% \end{macrocode}
% Here we set the top level leftmargin.
% \begin{macrocode}
@@ -1453,11 +1454,30 @@
% \changes{v1.2x}{1997/04/16}{Changed to \cs{textbullet},
% \cs{textasteriskcentered} and \cs{textperiodcentered}}
% \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.3a}{2020/03/07}{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}
+% \changes{v1.3b}{2020/03/11}{Added a missing \cs{end{macro}} statement}
+% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
@@ -1484,8 +1504,8 @@
%
% \changes{v1.2q}{1995/03/14}{made command short}
% \begin{macrocode}
-\newcommand*{\descriptionlabel}[1]{\hspace\labelsep
- \normalfont\bfseries #1}
+\newcommand*\descriptionlabel[1]{\hspace\labelsep
+ \normalfont\bfseries #1}
% \end{macrocode}
% \end{macro}
%
@@ -1795,8 +1815,10 @@
% |\parindent| to the appropriate value for succeeding paragraphs
% and put the proper indentation before the mark.
%
+% \changes{v1.3b}{2020/03/11}{make the switch to the use of
+% \cs{newcommand} complete.}
% \begin{macrocode}
-\long\def\@makefntext#1{%
+\newcommand\@makefntext[1]{%
\noindent
\hangindent 5\p@
\hb@xt@5\p@{\hss\@makefnmark}#1}
@@ -1808,10 +1830,12 @@
% footnotes should be produced by the macro |\@makefnmark|. We use
% the default definition for it.
% \begin{macrocode}
-%\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
+%\renewcommand\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
% \end{macrocode}
% \end{macro}
%
+% \section{Initialization}
+%
% \subsection{Words}
%
% \begin{macro}{\ccname}
@@ -1823,10 +1847,10 @@
% English words must be replaced. All the English words that
% require replacement are defined below in command names.
% \begin{macrocode}
-\newcommand*{\ccname}{cc}
-\newcommand*{\enclname}{encl}
-\newcommand*{\pagename}{Page}
-\newcommand*{\headtoname}{To}
+\newcommand*\ccname{cc}
+\newcommand*\enclname{encl}
+\newcommand*\pagename{Page}
+\newcommand*\headtoname{To}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1839,7 +1863,7 @@
% This macro uses the \TeX\ primitives |\month|, |\day| and |\year|
% to provide the date of the \LaTeX-run.
% \begin{macrocode}
-\newcommand*{\today}{\ifcase\month\or
+\newcommand*\today{\ifcase\month\or
January\or February\or March\or April\or May\or June\or
July\or August\or September\or October\or November\or December\fi
\space\number\day, \number\year}
diff --git a/macros/latex-dev/base/letter.pdf b/macros/latex-dev/base/letter.pdf
index ef5e8173e4..4df0771074 100644
--- a/macros/latex-dev/base/letter.pdf
+++ b/macros/latex-dev/base/letter.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lgc2.pdf b/macros/latex-dev/base/lgc2.pdf
index d365e0f353..f3c7b5ff3e 100644
--- a/macros/latex-dev/base/lgc2.pdf
+++ b/macros/latex-dev/base/lgc2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lppl.pdf b/macros/latex-dev/base/lppl.pdf
new file mode 100644
index 0000000000..14c251a554
--- /dev/null
+++ b/macros/latex-dev/base/lppl.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lppl.tex b/macros/latex-dev/base/lppl.tex
new file mode 100644
index 0000000000..c2a54c1532
--- /dev/null
+++ b/macros/latex-dev/base/lppl.tex
@@ -0,0 +1,511 @@
+%
+% Copyright 1999 2002-2011 LaTeX3 Project
+% Everyone is allowed to distribute verbatim copies of this
+% license document, but modification of it is not allowed.
+%
+%
+% If you wish to load it as part of a ``doc'' source, you have to
+% ensure that a) % is a comment character and b) that short verb
+% characters are being turned off, i.e.,
+%
+% \DeleteShortVerb{\'} % or whatever was made a shorthand
+% \MakePercentComment
+% \input{lppl}
+% \MakePercentIgnore
+% \MakeShortVerb{\'} % turn it on again if necessary
+%
+%
+% By default the license is produced with \section* as the highest
+% heading level. If this is not appropriate for the document in which
+% it is included define the commands listed below before loading this
+% document, e.g., for inclusion as a separate chapter define:
+%
+% \providecommand{\LPPLsection}{\chapter*}
+% \providecommand{\LPPLsubsection}{\section*}
+% \providecommand{\LPPLsubsubsection}{\subsection*}
+% \providecommand{\LPPLparagraph}{\subsubsection*}
+%
+%
+% To allow cross-referencing the headings \label's have been attached
+% to them, all starting with ``LPPL:''. As by default headings without
+% numbers are produced, this will only allow page references.
+% However, you can use the titleref package to produce textual
+% references or you change the definitions of \LPPLsection, and
+% friends to generated numbered headings.
+%
+%
+% We want it to be possible that this file can be processed by
+% (pdf)LaTeX on its own, or that this file can be included in another
+% LaTeX document without any modification whatsoever.
+% Hence the little test below.
+%
+%
+\makeatletter
+\ifx\@preamblecmds\@notprerr
+ % In this case the preamble has already been processed so this file
+ % is loaded as part of another document; just enclose everything in
+ % a group
+ \let\LPPLicense\bgroup
+ \let\endLPPLicense\egroup
+\else
+ % In this case the preamble has not been processed yet so this file
+ % is processed by itself.
+ \documentclass{article}
+ \let\LPPLicense\document
+ \let\endLPPLicense\enddocument
+\fi
+\makeatother
+
+
+\begin{LPPLicense}
+ \providecommand{\LPPLsection}{\section*}
+ \providecommand{\LPPLsubsection}{\subsection*}
+ \providecommand{\LPPLsubsubsection}{\subsubsection*}
+ \providecommand{\LPPLparagraph}{\paragraph*}
+ \providecommand*{\LPPLfile}[1]{\texttt{#1}}
+ \providecommand*{\LPPLdocfile}[1]{`\LPPLfile{#1.tex}'}
+ \providecommand*{\LPPL}{\textsc{lppl}}
+
+ \LPPLsection{The \LaTeX\ Project Public License}
+ \label{LPPL:LPPL}
+
+ \emph{LPPL Version 1.3c 2008-05-04}
+
+ \textbf{Copyright 1999, 2002--2008 \LaTeX3 Project}
+ \begin{quotation}
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+ \end{quotation}
+
+ \LPPLsubsection{Preamble}
+ \label{LPPL:Preamble}
+
+ The \LaTeX\ Project Public License (\LPPL) is the primary license
+ under which the \LaTeX\ kernel and the base \LaTeX\ packages are
+ distributed.
+
+ You may use this license for any work of which you hold the
+ copyright and which you wish to distribute. This license may be
+ particularly suitable if your work is \TeX-related (such as a
+ \LaTeX\ package), but it is written in such a way that you can use
+ it even if your work is unrelated to \TeX.
+
+ The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS
+ LICENSE', below, gives instructions, examples, and recommendations
+ for authors who are considering distributing their works under this
+ license.
+
+ This license gives conditions under which a work may be distributed
+ and modified, as well as conditions under which modified versions of
+ that work may be distributed.
+
+ We, the \LaTeX3 Project, believe that the conditions below give you
+ the freedom to make and distribute modified versions of your work
+ that conform with whatever technical specifications you wish while
+ maintaining the availability, integrity, and reliability of that
+ work. If you do not see how to achieve your goal while meeting
+ these conditions, then read the document \LPPLdocfile{cfgguide} and
+ \LPPLdocfile{modguide} in the base \LaTeX\ distribution for suggestions.
+
+
+ \LPPLsubsection{Definitions}
+ \label{LPPL:Definitions}
+
+ In this license document the following terms are used:
+
+ \begin{description}
+ \item[Work] Any work being distributed under this License.
+
+ \item[Derived Work] Any work that under any applicable law is
+ derived from the Work.
+
+ \item[Modification] Any procedure that produces a Derived Work under
+ any applicable law -- for example, the production of a file
+ containing an original file associated with the Work or a
+ significant portion of such a file, either verbatim or with
+ modifications and/or translated into another language.
+
+ \item[Modify] To apply any procedure that produces a Derived Work
+ under any applicable law.
+
+ \item[Distribution] Making copies of the Work available from one
+ person to another, in whole or in part. Distribution includes
+ (but is not limited to) making any electronic components of the
+ Work accessible by file transfer protocols such as \textsc{ftp} or
+ \textsc{http} or by shared file systems such as Sun's Network File
+ System (\textsc{nfs}).
+
+ \item[Compiled Work] A version of the Work that has been processed
+ into a form where it is directly usable on a computer system.
+ This processing may include using installation facilities provided
+ by the Work, transformations of the Work, copying of components of
+ the Work, or other activities. Note that modification of any
+ installation facilities provided by the Work constitutes
+ modification of the Work.
+
+ \item[Current Maintainer] A person or persons nominated as such
+ within the Work. If there is no such explicit nomination then it
+ is the `Copyright Holder' under any applicable law.
+
+ \item[Base Interpreter] A program or process that is normally needed
+ for running or interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these are
+ not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `\LaTeX-Format' or in the case of files belonging to the
+ `\LaTeX-format' a program implementing the `\TeX{} language'.
+ \end{description}
+
+ \LPPLsubsection{Conditions on Distribution and Modification}
+ \label{LPPL:Conditions}
+
+ \begin{enumerate}
+ \item Activities other than distribution and/or modification of the
+ Work are not covered by this license; they are outside its scope.
+ In particular, the act of running the Work is not restricted and
+ no requirements are made concerning any offers of support for the
+ Work.
+
+ \item\label{LPPL:item:distribute} You may distribute a complete, unmodified
+ copy of the Work as you received it. Distribution of only part of
+ the Work is considered modification of the Work, and no right to
+ distribute such a Derived Work may be assumed under the terms of
+ this clause.
+
+ \item You may distribute a Compiled Work that has been generated
+ from a complete, unmodified copy of the Work as distributed under
+ Clause~\ref{LPPL:item:distribute} above, as long as that Compiled Work is
+ distributed in such a way that the recipients may install the
+ Compiled Work on their system exactly as it would have been
+ installed if they generated a Compiled Work directly from the
+ Work.
+
+ \item\label{LPPL:item:currmaint} If you are the Current Maintainer of the
+ Work, you may, without restriction, modify the Work, thus creating
+ a Derived Work. You may also distribute the Derived Work without
+ restriction, including Compiled Works generated from the Derived
+ Work. Derived Works distributed in this manner by the Current
+ Maintainer are considered to be updated versions of the Work.
+
+ \item If you are not the Current Maintainer of the Work, you may
+ modify your copy of the Work, thus creating a Derived Work based
+ on the Work, and compile this Derived Work, thus creating a
+ Compiled Work based on the Derived Work.
+
+ \item\label{LPPL:item:conditions} If you are not the Current Maintainer
+ of the
+ Work, you may distribute a Derived Work provided the following
+ conditions are met for every component of the Work unless that
+ component clearly states in the copyright notice that it is exempt
+ from that condition. Only the Current Maintainer is allowed to
+ add such statements of exemption to a component of the Work.
+ \begin{enumerate}
+ \item If a component of this Derived Work can be a direct
+ replacement for a component of the Work when that component is
+ used with the Base Interpreter, then, wherever this component of
+ the Work identifies itself to the user when used interactively
+ with that Base Interpreter, the replacement component of this
+ Derived Work clearly and unambiguously identifies itself as a
+ modified version of this component to the user when used
+ interactively with that Base Interpreter.
+
+ \item\label{LPPL:item:changelog} Every component of the Derived Work
+ contains prominent
+ notices detailing the nature of the changes to that component,
+ or a prominent reference to another file that is distributed as
+ part of the Derived Work and that contains a complete and
+ accurate log of the changes.
+
+ \item No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original
+ version of the Work, provide any support, including (but not
+ limited to) the reporting and handling of errors, to recipients
+ of the Derived Work unless those persons have stated explicitly
+ that they do provide such support for the Derived Work.
+
+ \item\label{LPPL:item:unmodifiedcopy} You distribute at least one of
+ the following with the Derived Work:
+ \begin{enumerate}
+ \item A complete, unmodified copy of the Work; if your
+ distribution of a modified component is made by offering
+ access to copy the modified component from a designated place,
+ then offering equivalent access to copy the Work from the same
+ or some similar place meets this condition, even though third
+ parties are not compelled to copy the Work along with the
+ modified component;
+
+ \item Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+ \end{enumerate}
+ \end{enumerate}
+ \item If you are not the Current Maintainer of the Work, you may
+ distribute a Compiled Work generated from a Derived Work, as long
+ as the Derived Work is distributed to all recipients of the
+ Compiled Work, and as long as the conditions of
+ Clause~\ref{LPPL:item:conditions}, above, are met with regard to the
+ Derived Work.
+
+ \item The conditions above are not intended to prohibit, and hence
+ do not apply to, the modification, by any method, of any component
+ so that it becomes identical to an updated version of that
+ component of the Work as it is distributed by the Current
+ Maintainer under Clause~\ref{LPPL:item:currmaint}, above.
+
+ \item Distribution of the Work or any Derived Work in an alternative
+ format, where the Work or that Derived Work (in whole or in part)
+ is then produced by applying some process to that format, does not
+ relax or nullify any sections of this license as they pertain to
+ the results of applying that process.
+
+ \item
+ \begin{enumerate}
+ \item A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause~\ref{LPPL:item:conditions} above, in regard to the Work, though it
+ does not have to honor the rest of the conditions in this
+ license.
+
+ \item If a Derived Work is distributed under a different license,
+ that Derived Work must provide sufficient documentation as part
+ of itself to allow each recipient of that Derived Work to honor
+ the restrictions in Clause~\ref{LPPL:item:conditions} above, concerning
+ changes from the Work.
+ \end{enumerate}
+ \item This license places no restrictions on works that are
+ unrelated to the Work, nor does this license place any
+ restrictions on aggregating such works with the Work by any means.
+
+ \item Nothing in this license is intended to, or may be used to,
+ prevent complete compliance by all parties with all applicable
+ laws.
+ \end{enumerate}
+
+ \LPPLsubsection{No Warranty}
+ \label{LPPL:Warranty}
+
+ There is no warranty for the Work. Except when otherwise stated in
+ writing, the Copyright Holder provides the Work `as is', without
+ warranty of any kind, either expressed or implied, including, but
+ not limited to, the implied warranties of merchantability and
+ fitness for a particular purpose. The entire risk as to the quality
+ and performance of the Work is with you. Should the Work prove
+ defective, you assume the cost of all necessary servicing, repair,
+ or correction.
+
+ In no event unless required by applicable law or agreed to in
+ writing will The Copyright Holder, or any author named in the
+ components of the Work, or any other party who may distribute and/or
+ modify the Work as permitted above, be liable to you for damages,
+ including any general, special, incidental or consequential damages
+ arising out of any use of the Work or out of inability to use the
+ Work (including, but not limited to, loss of data, data being
+ rendered inaccurate, or losses sustained by anyone as a result of
+ any failure of the Work to operate with any other programs), even if
+ the Copyright Holder or said author or said other party has been
+ advised of the possibility of such damages.
+
+ \LPPLsubsection{Maintenance of The Work}
+ \label{LPPL:Maintenance}
+
+ The Work has the status `author-maintained' if the Copyright Holder
+ explicitly and prominently states near the primary copyright notice
+ in the Work that the Work can only be maintained by the Copyright
+ Holder or simply that it is `author-maintained'.
+
+ The Work has the status `maintained' if there is a Current
+ Maintainer who has indicated in the Work that they are willing to
+ receive error reports for the Work (for example, by supplying a
+ valid e-mail address). It is not required for the Current Maintainer
+ to acknowledge or act upon these error reports.
+
+ The Work changes from status `maintained' to `unmaintained' if there
+ is no Current Maintainer, or the person stated to be Current
+ Maintainer of the work cannot be reached through the indicated means
+ of communication for a period of six months, and there are no other
+ significant signs of active maintenance.
+
+ You can become the Current Maintainer of the Work by agreement with
+ any existing Current Maintainer to take over this role.
+
+ If the Work is unmaintained, you can become the Current Maintainer
+ of the Work through the following steps:
+ \begin{enumerate}
+ \item Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of an
+ Internet or similar search.
+ \item If this search is successful, then enquire whether the Work is
+ still maintained.
+ \begin{enumerate}
+ \item If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ \item\label{LPPL:item:intention} If the search is unsuccessful or
+ no action to resume active maintenance is taken by the Current
+ Maintainer, then announce within the pertinent community your
+ intention to take over maintenance. (If the Work is a \LaTeX{}
+ work, this could be done, for example, by posting to
+ \texttt{comp.text.tex}.)
+ \end{enumerate}
+ \item {}
+ \begin{enumerate}
+ \item If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ \item\label{LPPL:item:announce} If the Current Maintainer is not
+ reachable and the Copyright Holder agrees that maintenance of
+ the Work be passed to you, then this takes effect immediately
+ upon announcement.
+ \end{enumerate}
+ \item\label{LPPL:item:change} If you make an `intention
+ announcement' as described in~\ref{LPPL:item:intention} above and
+ after three months your intention is challenged neither by the
+ Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as to
+ name you as the (new) Current Maintainer.
+
+ \item If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of~\ref{LPPL:item:announce}
+ or~\ref{LPPL:item:change}, then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided they
+ then update their communication data within one month.
+ \end{enumerate}
+ A change in the Current Maintainer does not, of itself, alter the
+ fact that the Work is distributed under the \LPPL\ license.
+
+ If you become the Current Maintainer of the Work, you should
+ immediately provide, within the Work, a prominent and unambiguous
+ statement of your status as Current Maintainer. You should also
+ announce your new status to the same pertinent community as
+ in~\ref{LPPL:item:intention} above.
+
+ \LPPLsubsection{Whether and How to Distribute Works under This License}
+ \label{LPPL:Distribute}
+
+ This section contains important instructions, examples, and
+ recommendations for authors who are considering distributing their
+ works under this license. These authors are addressed as `you' in
+ this section.
+
+ \LPPLsubsubsection{Choosing This License or Another License}
+ \label{LPPL:Choosing}
+
+ If for any part of your work you want or need to use
+ \emph{distribution} conditions that differ significantly from those
+ in this license, then do not refer to this license anywhere in your
+ work but, instead, distribute your work under a different license.
+ You may use the text of this license as a model for your own
+ license, but your license should not refer to the \LPPL\ or
+ otherwise give the impression that your work is distributed under
+ the \LPPL.
+
+ The document \LPPLdocfile{modguide} in the base \LaTeX\ distribution
+ explains the motivation behind the conditions of this license. It
+ explains, for example, why distributing \LaTeX\ under the
+ \textsc{gnu} General Public License (\textsc{gpl}) was considered
+ inappropriate. Even if your work is unrelated to \LaTeX, the
+ discussion in \LPPLdocfile{modguide} may still be relevant, and authors
+ intending to distribute their works under any license are encouraged
+ to read it.
+
+ \LPPLsubsubsection{A Recommendation on Modification Without Distribution}
+ \label{LPPL:WithoutDistribution}
+
+ It is wise never to modify a component of the Work, even for your
+ own personal use, without also meeting the above conditions for
+ distributing the modified component. While you might intend that
+ such modifications will never be distributed, often this will happen
+ by accident -- you may forget that you have modified that component;
+ or it may not occur to you when allowing others to access the
+ modified version that you are thus distributing it and violating the
+ conditions of this license in ways that could have legal
+ implications and, worse, cause problems for the community. It is
+ therefore usually in your best interest to keep your copy of the
+ Work identical with the public one. Many works provide ways to
+ control the behavior of that work without altering any of its
+ licensed components.
+
+ \LPPLsubsubsection{How to Use This License}
+ \label{LPPL:HowTo}
+
+ To use this license, place in each of the components of your work
+ both an explicit copyright notice including your name and the year
+ the work was authored and/or last substantially modified. Include
+ also a statement that the distribution and/or modification of that
+ component is constrained by the conditions in this license.
+
+ Here is an example of such a notice and statement:
+\begin{verbatim}
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % 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.3 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 M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+\end{verbatim}
+
+ Given such a notice and statement in a file, the conditions given in
+ this license document would apply, with the `Work' referring to the
+ three files `\LPPLfile{pig.dtx}', `\LPPLfile{pig.ins}', and
+ `\LPPLfile{pig.sty}' (the last being generated from
+ `\LPPLfile{pig.dtx}' using `\LPPLfile{pig.ins}'), the `Base
+ Interpreter' referring to any `\LaTeX-Format', and both `Copyright
+ Holder' and `Current Maintainer' referring to the person `M. Y.
+ Name'.
+
+ If you do not want the Maintenance section of \LPPL\ to apply to
+ your Work, change `maintained' above into `author-maintained'.
+ However, we recommend that you use `maintained' as the Maintenance
+ section was added in order to ensure that your Work remains useful
+ to the community even when you can no longer maintain and support it
+ yourself.
+
+ \LPPLsubsubsection{Derived Works That Are Not Replacements}
+ \label{LPPL:NotReplacements}
+
+ Several clauses of the \LPPL\ specify means to provide reliability
+ and stability for the user community. They therefore concern
+ themselves with the case that a Derived Work is intended to be used
+ as a (compatible or incompatible) replacement of the original
+ Work. If this is not the case (e.g., if a few lines of code are
+ reused for a completely different task), then clauses
+ \ref{LPPL:item:changelog} and \ref{LPPL:item:unmodifiedcopy}
+ shall not apply.
+
+ \LPPLsubsubsection{Important Recommendations}
+ \label{LPPL:Recommendations}
+
+ \LPPLparagraph{Defining What Constitutes the Work}
+
+ The \LPPL\ requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a way
+ for the licensee to determine which files constitute the Work. This
+ could, for example, be achieved by explicitly listing all the files
+ of the Work near the copyright notice of each file or by using a
+ line such as:
+\begin{verbatim}
+ % This work consists of all files listed in manifest.txt.
+\end{verbatim}
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
+\end{LPPLicense}
+\endinput
diff --git a/macros/latex-dev/base/ltboxes.dtx b/macros/latex-dev/base/ltboxes.dtx
index 61ea87235a..051922b6f3 100644
--- a/macros/latex-dev/base/ltboxes.dtx
+++ b/macros/latex-dev/base/ltboxes.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltboxes.dtx}
- [2019/08/27 v1.3b LaTeX Kernel (Box Commands)]
+ [2020/03/06 v1.3c LaTeX Kernel (Box Commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltboxes.dtx}
@@ -1290,13 +1290,21 @@
%
% \begin{macro}{\rlap}
% \begin{macro}{\llap}
+% \begin{macro}{\clap}
% These macros place text to the left or right of the current
% reference point without taking up space.
-% \end{macro}
% \begin{macrocode}
\DeclareRobustCommand\rlap[1]{\hb@xt@\z@{#1\hss}}
\DeclareRobustCommand\llap[1]{\hb@xt@\z@{\hss#1}}
% \end{macrocode}
+% And here is the version that centers, it was initially introduced by
+% \texttt{mathtools}.
+% \changes{v1.3c}{2020/03/06}{Macro \cs{clap} added}
+% \begin{macrocode}
+\DeclareRobustCommand\clap[1]{\hb@xt@\z@{\hss#1\hss}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
% \end{macro}
%
% \begin{macrocode}
diff --git a/macros/latex-dev/base/ltclass.dtx b/macros/latex-dev/base/ltclass.dtx
index f43e8f0c0d..dd35be9ae4 100644
--- a/macros/latex-dev/base/ltclass.dtx
+++ b/macros/latex-dev/base/ltclass.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2020/03/02 v1.3j LaTeX Kernel (Class & Package Interface)]
+ [2020/04/24 v1.3k LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -620,15 +620,60 @@
%
% \begin{macro}{\@ifpackagelater}
% \begin{macro}{\@ifclasslater}
-% |\@ifpackagelater{|\meta{name}|}{YYYY/MM/DD}|
-% Checks that the package loaded is more recent than the given date.
+% |\@ifpackagelater{|\meta{name}|}{YYYY/MM/DD}{|\meta{true
+% code}|}{|\meta{false code}|}|
+% Checks that the package loaded is more recent or equal to the
+% given date.
+% A better name for it would therefore been
+% |\@ifpackagelaterorequal| but it is in use for more than 30
+% years, so \ldots
% \begin{macrocode}
\def\@ifpackagelater{\@ifl@ter\@pkgextension}
\def\@ifclasslater{\@ifl@ter\@clsextension}
\@onlypreamble\@ifpackagelater
\@onlypreamble\@ifclasslater
% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
%
+%
+% \begin{macro}{\IfPackageAtLeastTF}
+% \begin{macro}{\IfClassAtLeastTF}
+% \begin{macro}{\IfFormatAtLeastTF}
+% |\IfFormatAtLeastTF{YYYY/MM/DD}{|\meta{true
+% code}|}{|\meta{false code}|}|
+% Test if the format is later or equal to the given date.
+% \changes{v1.3k}{2020/04/07}{Macro added; also in rollback (gh/168)}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\IfFormatAtLeastTF}{Test format date}%
+\def\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+\let\IfPackageAtLeastTF\@ifpackagelater
+\let\IfClassAtLeastTF\@ifclasslater
+\@onlypreamble\IfFormatAtLeastTF
+\@onlypreamble\IfPackageAtLeastTF
+\@onlypreamble\IfClassAtLeastTF
+% \end{macrocode}
+% For rollback pretend it was available since the beginning of dawn.
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\IfFormatAtLeastTF}{Test format date}%
+%<latexrelease>\def\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+%<latexrelease>\let\IfPackageAtLeastTF\@ifpackagelater
+%<latexrelease>\let\IfClassAtLeastTF\@ifclasslater
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@ifl@ter}
% \begin{macrocode}
\def\@ifl@ter#1#2{%
\expandafter\@ifl@t@r
@@ -675,6 +720,7 @@
% \begin{macrocode}
\@onlypreamble\@ifl@t@r
% \end{macrocode}
+% \end{macro}
%
% \changes{v1.1j}{2016/06/20}
% {don't declare as \cs{@onlypreamble}}
@@ -695,8 +741,8 @@
%</2ekernel|latexreleasefirst>
%<*2ekernel>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+%
+%
%
% \begin{macro}{\@ifpackagewith}
% \begin{macro}{\@ifclasswith}
@@ -1050,6 +1096,10 @@
%
% The common part of |\ProcessOptions| and |\ProcessOptions*|.
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@process@pti@ns}{Unused options issue}%
\def\@process@pti@ns{%
\@for\CurrentOption:=\@curroptions\do{%
\@ifundefined{ds@\CurrentOption}%
@@ -1073,11 +1123,33 @@
% \end{macrocode}
% \changes{v1.0r}{1995/10/17}
% {Reset \cs{CurrentOption} for graphics/1873}
+% \changes{v1.3k}{2020/04/07}{Use different method to ignore
+% unprocessed options (gh/22)}
% \begin{macrocode}
\let\CurrentOption\@empty
\let\@fileswith@pti@ns\@@fileswith@pti@ns
- \AtEndOfPackage{\let\@unprocessedoptions\relax}}
+ \AtEndOfPackage{\expandafter\let
+ \csname unprocessedoptions-\@currname.\@currext\endcsname
+ \relax}}
\@onlypreamble\@process@pti@ns
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@process@pti@ns}{Unused options issue}%
+%<latexrelease>
+%<latexrelease>\def\@process@pti@ns{%
+%<latexrelease> \@for\CurrentOption:=\@curroptions\do{%
+%<latexrelease> \@ifundefined{ds@\CurrentOption}%
+%<latexrelease> {\@use@ption
+%<latexrelease> \default@ds}%
+%<latexrelease> \@use@ption}%
+%<latexrelease> \@for\CurrentOption:=\@declaredoptions\do{%
+%<latexrelease> \expandafter\let\csname ds@\CurrentOption\endcsname\relax}%
+%<latexrelease> \let\CurrentOption\@empty
+%<latexrelease> \let\@fileswith@pti@ns\@@fileswith@pti@ns
+%<latexrelease> \AtEndOfPackage{\let\@unprocessedoptions\relax}}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1243,13 +1315,45 @@
% \changes{v1.0v}{1996/10/04}{Reset \cs{@unprocessedoptions} for /2269}
% Load package `|#1|' with the current option list.
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\RequirePackageWithOptions}{Unused options issue}%
\def\RequirePackageWithOptions{%
- \AtEndOfPackage{\let\@unprocessedoptions\relax}%
+% \end{macrocode}
+% The resetting of the unprocessed options is now done on a par package basis.
+% \changes{v1.3k}{2020/04/07}{Use different method to ignore
+% unprocessed options (gh/22)}
+% \begin{macrocode}
+ \AtEndOfPackage{\expandafter\let
+ \csname unprocessedoptions-\@currname.\@currext\endcsname
+ \relax}%
\@loadwithoptions\@pkgextension\RequirePackage}
\@onlypreamble\RequirePackageWithOptions
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\RequirePackageWithOptions}{Unused options issue}%
+%<latexrelease>
+%<latexrelease>\def\RequirePackageWithOptions{%
+%<latexrelease> \AtEndOfPackage{\let\@unprocessedoptions\relax}%
+%<latexrelease> \@loadwithoptions\@pkgextension\RequirePackage}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
+%
+
+
+
+
+
+
+%
% \begin{macro}{\usepackage}
% To begin with, |\usepackage| produces an error. This is reset by
% |\documentclass|.
@@ -1482,6 +1586,10 @@
% \changes{v1.3d}{2019/10/18}{Initialize \cs{...-h@@k} only when loading
% the package or class (gh/198)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@onefilewithoptions}{Unused options issue}%
\def\@onefilewithoptions#1[#2][#3]#4{%
\@pushfilename
\xdef\@currname{#1}%
@@ -1531,19 +1639,49 @@
{}%
{\@missingfileerror\@currname\@currext}%
% \end{macrocode}
-% |\@unprocessedoptions| will generate an error for each specified
-% option in a package unless a |\ProcessOptions| has appeared in the
-% package file.
+% In older versions of the code |\@unprocessedoptions| would
+% generate an error for each specified
+% option in a package unless a |\ProcessOptions| has appeared in the
+% package file.
% \changes{v0.2v}{1994/01/29}
% {All options raise error if no \cs{ProcessOptions} appears}
% \changes{v0.2x}{1994/02/02}
-% {Only run the hook and options check if the file was loaded.}
-% \begin{macrocode}
- \let\@unprocessedoptions\@@unprocessedoptions
+% {Only run the hook and options check if the file was
+% loaded.}
+%
+% This has changed in 2020. We now use a separate macro per package
+% to avoid interferences in case of nested packages. The whole
+% code for handling this issue (GitHub 22) was provided by Hironobu
+% Yamashita, thanks for that.
+% \changes{v1.3k}{2020/04/07}{Use different method to ignore
+% unprocessed options (gh/22)}
+% \begin{macrocode}
+ \expandafter\let\csname unprocessedoptions-\@currname.\@currext\endcsname
+ \@@unprocessedoptions
\csname\@currname.\@currext-h@@k\endcsname
\expandafter\let\csname\@currname.\@currext-h@@k\endcsname
\@undefined
- \@unprocessedoptions}%
+% \end{macrocode}
+% Catch the case where the packages has handled the options and
+% redefined \cs{@unprocessedoptions} to \cs{relax} (old interface).
+% In that case no error should be produced.
+% \changes{v1.3k}{2020/04/07}{Use different method to ignore
+% unprocessed options (gh/22)}
+% \begin{macrocode}
+ \ifx\@unprocessedoptions\relax
+ \let\@unprocessedoptions\@undefined
+% \end{macrocode}
+% Otherwise run the per package set of unused options.
+% \begin{macrocode}
+ \else
+ \csname unprocessedoptions-\@currname.\@currext\endcsname
+ \fi
+% \end{macrocode}
+% In either case we drop the macro afterwards as it is no longer needed.
+% \begin{macrocode}
+ \expandafter\let
+ \csname unprocessedoptions-\@currname.\@currext\endcsname
+ \@undefined}%
% \end{macrocode}
%
% \begin{macrocode}
@@ -1565,8 +1703,82 @@
\reserved@a}
\@onlypreamble\@onefilewithoptions
% \end{macrocode}
+%
+% The kernel no longer uses \cs{@unprocessedoptions}
+% \begin{macrocode}
+\let\@unprocessedoptions\@undefined
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@onefilewithoptions}{Unused options issue}%
+%<latexrelease>
+% \end{macrocode}
+% Because of the way \cs{@onfilewithoptions} is changed for
+% rollback handling below we have to define
+% \cs{load@onefilewithoptions} when rollowing back!
+% \begin{macrocode}
+%<latexrelease>\def\load@onefilewithoptions#1[#2][#3]#4{%
+%<latexrelease> \@pushfilename
+%<latexrelease> \xdef\@currname{#1}%
+%<latexrelease> \global\let\@currext#4%
+%<latexrelease> \let\CurrentOption\@empty
+%<latexrelease> \@reset@ptions
+%<latexrelease> \makeatletter
+%<latexrelease> \def\reserved@a{%
+%<latexrelease> \@ifl@aded\@currext{#1}%
+%<latexrelease> {\@if@ptions\@currext{#1}{#2}{}%
+%<latexrelease> {\@latex@error
+%<latexrelease> {Option clash for \@cls@pkg\space #1}%
+%<latexrelease> {The package #1 has already been loaded
+%<latexrelease> with options:\MessageBreak
+%<latexrelease> \space\space[\@ptionlist{#1.\@currext}]\MessageBreak
+%<latexrelease> There has now been an attempt to load it
+%<latexrelease> with options\MessageBreak
+%<latexrelease> \space\space[#2]\MessageBreak
+%<latexrelease> Adding the global options:\MessageBreak
+%<latexrelease> \space\space
+%<latexrelease> \@ptionlist{#1.\@currext},#2\MessageBreak
+%<latexrelease> to your \noexpand\documentclass declaration may fix this.%
+%<latexrelease> \MessageBreak
+%<latexrelease> Try typing \space <return> \space to proceed.}}}%
+%<latexrelease> {\@pass@ptions\@currext{#2}{#1}%
+%<latexrelease> \global\expandafter
+%<latexrelease> \let\csname ver@\@currname.\@currext\endcsname\@empty
+%<latexrelease> \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
+%<latexrelease> \InputIfFileExists
+%<latexrelease> {\@currname.\@currext}%
+%<latexrelease> {}%
+%<latexrelease> {\@missingfileerror\@currname\@currext}%
+%<latexrelease> \let\@unprocessedoptions\@@unprocessedoptions
+%<latexrelease> \csname\@currname.\@currext-h@@k\endcsname
+%<latexrelease> \expandafter\let\csname\@currname.\@currext-h@@k\endcsname
+%<latexrelease> \@undefined
+%<latexrelease> \@unprocessedoptions}%
+%<latexrelease> \@ifl@ter\@currext{#1}{#3}{}%
+%<latexrelease> {\@latex@warning@no@line
+%<latexrelease> {You have requested,\on@line,
+%<latexrelease> version\MessageBreak
+%<latexrelease> `#3' of \@cls@pkg\space #1,\MessageBreak
+%<latexrelease> but only version\MessageBreak
+%<latexrelease> `\csname ver@#1.\@currext\endcsname'\MessageBreak
+%<latexrelease> is available}}%
+%<latexrelease> \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi
+%<latexrelease> \@popfilename
+%<latexrelease> \@reset@ptions}%
+%<latexrelease> \reserved@a}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
% \end{macro}
%
+%
+%
+%
+%
+%
% \begin{macro}{\@@fileswith@pti@ns}
% Save the definition (for error checking).
% \changes{v0.2c}{1993/11/17}
@@ -1593,6 +1805,9 @@
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
% \subsection{Hooks}
%
% Allow code do be saved to be executed at specific later times.
@@ -1760,6 +1975,7 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{environment}{filecontents}
% \begin{macro}{\filecontents}
% \begin{macro}{\endfilecontents}
% This environment implements inline files.
@@ -1776,13 +1992,12 @@
% \changes{v1.0m}{1995/04/21}
% {Close input check stream: latex/1487}
% \changes{v1.0p}{1995/05/25}{Delete \cs{filec@ntents} after preamble}
-% \begin{macrocode}
% \changes{v1.3a}{2019/07/01}{Support UTF8 and spaces in
% 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}
-%
+% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2019/10/01}%
@@ -2142,6 +2357,7 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{environment}
%
%
%
diff --git a/macros/latex-dev/base/ltdefns.dtx b/macros/latex-dev/base/ltdefns.dtx
index 303b9e5604..8b7a307ad2 100644
--- a/macros/latex-dev/base/ltdefns.dtx
+++ b/macros/latex-dev/base/ltdefns.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdefns.dtx}
- [2020/02/27 v1.5g LaTeX Kernel (definition commands)]
+ [2020/05/15 v1.5h LaTeX Kernel (definition commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdefns.dtx}
@@ -118,9 +118,25 @@
%
% \begin{macro}{\typeout}
% Display something on the terminal.
+% \changes{v1.5g}{2020/05/15}{Allow \cs{par} in the argument (gh/335)}
% \begin{macrocode}
-\def\typeout#1{\begingroup\set@display@protect
- \immediate\write\@unused{#1}\endgroup}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\typeout}{Allow "par" in \typeout}%
+\protected\long\def\typeout#1{\begingroup
+ \set@display@protect
+ \def\par{^^J^^J}%
+ \immediate\write\@unused{#1}\endgroup}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\typeout}{Allow "par" in \typeout}%
+%<latexrelease>
+%<latexrelease>\def\typeout#1{\begingroup\set@display@protect
+%<latexrelease> \immediate\write\@unused{#1}\endgroup}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -1560,6 +1576,7 @@
% \changes{v1.0g}{1994/04/12}
% {Define \cs{@dischyph}, was previously in ltboxes.dtx}
% \changes{v1.5b}{2017/03/27}{Define \cs{@dischyph} after \cs{-}}
+% \changes{v1.5h}{2020/05/11}{Do not overwrite \cs{-} under Lua\TeX}
% \end{macro}
% Moved here to be after the definition of |\DeclareRobustCommand|.
%
@@ -1589,35 +1606,56 @@
% older \LaTeX\ definition accessible via \textsf{latexrelease}
% as usual.
%
-% \begin{macrocode}
-%</2ekernel>
-%<latexrelease>\IncludeInRelease{2017/04/15}{\-}{Use \hyphenchar in \-}%
-% \end{macrocode}
+% In Lua\LaTeX\ the primitive definition of \cs{-} is used directly
+% because it's use of extended hyphenation parameters means that \cs{-}
+% works correctly even with \cs{hyphenchar} set to $-1$. This change
+% makes \cs{-} under Lua\LaTeX\ compatible with language specific
+% hyphenation characters.
+%
% Temporary definition of |\@latex@info|, final definition is later.
% \begin{macrocode}
-%<*2ekernel>
\def\@latex@info#1{}
-%</2ekernel>
% \end{macrocode}
%
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2020/10/01}{\-}{Use primitive \- in Lua\LaTeX}%
%<*2ekernel|latexrelease>
-\DeclareRobustCommand{\-}{%
- \discretionary{%
- \char \ifnum\hyphenchar\font<\z@
- \defaulthyphenchar
- \else
- \hyphenchar\font
- \fi
- }{}{}%
-}
-\let\@dischyph=\-
+\ifx\directlua\@undefined
+ \DeclareRobustCommand{\-}{%
+ \discretionary{%
+ \char \ifnum\hyphenchar\font<\z@
+ \defaulthyphenchar
+ \else
+ \hyphenchar\font
+ \fi
+ }{}{}%
+ }
+\else
+ \let\-\@@hyph
+\fi
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2017/04/15}{\-}{Use \hyphenchar in \-}%
+%<latexrelease>\DeclareRobustCommand{\-}{%
+%<latexrelease> \discretionary{%
+%<latexrelease> \char \ifnum\hyphenchar\font<\z@
+%<latexrelease> \defaulthyphenchar
+%<latexrelease> \else
+%<latexrelease> \hyphenchar\font
+%<latexrelease> \fi
+%<latexrelease> }{}{}%
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}{\-}{Use \hyphenchar in \-}%
%<latexrelease>\def\-{\discretionary{-}{}{}}
-%<latexrelease>\let\@dischyph=\-
%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*2ekernel|latexrelease>
+\let\@dischyph=\-
+%</2ekernel|latexrelease>
%<*2ekernel>
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex-dev/base/ltexpl.dtx b/macros/latex-dev/base/ltexpl.dtx
index e86b80acaf..5e726298b2 100644
--- a/macros/latex-dev/base/ltexpl.dtx
+++ b/macros/latex-dev/base/ltexpl.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltexpl.dtx}
- [2020-03-05 v1.1 LaTeX Kernel (expl3-dependent code)]
+ [2020-05-03 v1.2b LaTeX Kernel (expl3-dependent code)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -75,7 +75,8 @@
% \changes{v1.0a}{2020/03/02}
% {Don't load expl3 if already in the format (gh/295)}
% \changes{v1.1}{2020/03/05}
-% {Load xparse.ltx if \cs{NewDocumentCommand} is not defined by expl3.ltx}
+% {Load xparse.ltx if \cs{NewDocumentCommand} is not defined
+% by expl3.ltx}
% \begin{macrocode}
\expandafter\ifx\csname tex\string _let:D\endcsname\relax
\IfFileExists{expl3.ltx}
@@ -111,6 +112,44 @@
\fi
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \subsection{Using expl3 code}
+%
+% \begin{macrocode}
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@expl@tl@trim@spaces@apply@@nN}
+%<latexrelease> {l3 macro for use in include}%
+% \end{macrocode}
+% In order to ease the implemantation of some new features in
+% \LaTeXe\ we may (temporarily) use some coding based on the
+% \pkg{expl3}-code.
+% Such macros will eventually vanish and may be changed
+% unannounced. They are there for internal use in the \LaTeXe\
+% kernel and are not meant to be used in third-party
+% packages. These macros will always have the \verb|@expl@|
+% prefix in their name.
+%
+% \changes{v1.2a}{2020/05/02}
+% {Define a macro based on l3 language to support inclusion of
+% files with space in the name (gh/217)}
+% \begin{macrocode}
+\ExplSyntaxOn
+\cs_new_eq:NN \@expl@tl@trim@spaces@apply@@nN \tl_trim_spaces_apply:nN
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@expl@tl@trim@spaces@apply@@nN}
+%<latexrelease> {l3 macro for use in include}%
+%<latexrelease>
+%<latexrelease>\let\@expl@tl@trim@spaces@apply@@nN\@undefined
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
%
diff --git a/macros/latex-dev/base/ltfiles.dtx b/macros/latex-dev/base/ltfiles.dtx
index 33594a7b91..8e9611d918 100644
--- a/macros/latex-dev/base/ltfiles.dtx
+++ b/macros/latex-dev/base/ltfiles.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfiles.dtx}
- [2019/11/11 v1.2f LaTeX Kernel (File Handling)]
+ [2020-05-05 v1.2g LaTeX Kernel (File Handling)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfiles.dtx}
@@ -542,15 +542,32 @@
% \begin{macro}{\includeonly}
% \changes{v1.0p}{1995/04/22}{Allow blanks in argument}
% \changes{v1.2a}{2019/07/01}{Support UTF-8}
+% \changes{v1.2g}{2020/05/02}{Improved support for spaces in filenames
+% (gh/217)}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2019/10/01}%
+%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease> {\includeonly}{Spaces in file names}%
\def\includeonly#1{%
\@partswtrue
- \set@curr@file{\zap@space#1 \@empty}%
- \let\@partlist\@curr@file
+% \end{macrocode}
+% Because the argument to |\includeonly| is a comma-separated list
+% of filenames where there may be comma's precedeing some of the
+% filenames or trailing them. Therefore we need to take the list
+% apart, remove the unwanted spaces while leaving the spaces
+% \emph{in} the filenames intact.
+% \begin{macrocode}
+ \let\@partlist\@empty
+ \@for\reserved@a:=#1 \do
+ {
+ \expandafter\set@curr@file@trim@spaces\expandafter{\reserved@a}%
+ \ifx\@partlist\@empty
+ \edef\@partlist{\@curr@file}%
+ \else
+ \edef\@partlist{\@partlist,\@curr@file}%
+ \fi
+ }%
}
\@onlypreamble\includeonly
% \end{macrocode}
@@ -572,21 +589,68 @@
%
% Made |\include| check for being used inside an |\include|'d file, as
% this will not work and cause surprising results.
+% \changes{v1.2g}{2020/05/02}{Get rid of leading and trailing spaces
+% from the filename (gh/217)}
+% \changes{v1.2g}{2020-05-02}{Pass the filename to \cs{@include} by
+% value instead of by reference (gh/217)}
% \begin{macrocode}
\def\include#1{\relax
\ifnum\@auxout=\@partaux
\@latex@error{\string\include\space cannot be nested}\@eha
\else
- \set@curr@file{#1 }%
- \expandafter\@include\@curr@file
+ \set@curr@file@trim@spaces{#1}%
+% \end{macrocode}
+% For historical reasons \cs{@include} expects an argument
+% delimited by a space. This is kept (though uncessary now) to avoid
+% errors in other packages that use \cs{@include} directly.
+% \begin{macrocode}
+ \expandafter\@include\expandafter{\@curr@file} % deliberate space
\fi}
% \end{macrocode}
% \end{macro}
%
%
+%
+% \begin{macro}{\set@curr@file@trim@spaces}
+%
+% For |\include| and |\includeonly| we need a variant that removes
+% any leading and trailing spaces from the filename, while leaving
+% any spaces \emph{inside} the filename intact. In order simplify
+% the implementaion we borrow some code from the \texttt{expl3}
+% language, \textbf{\emph{beware}: this may change unannounced}.
+% \begin{macrocode}
+\def\set@curr@file@trim@spaces#1{%
+ \@expl@tl@trim@spaces@apply@@nN {#1} \set@curr@file }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2019/10/01}%
+%<latexrelease> {\includeonly}{Spaces in file names}%
+%<latexrelease>
+%<latexrelease>\def\includeonly#1{%
+%<latexrelease> \@partswtrue
+%<latexrelease> \set@curr@file{\zap@space#1 \@empty}%
+%<latexrelease> \let\@partlist\@curr@file
+%<latexrelease> }
+%<latexrelease>
+%<latexrelease>\def\include#1{\relax
+%<latexrelease> \ifnum\@auxout=\@partaux
+%<latexrelease> \@latex@error{\string\include\space cannot be nested}\@eha
+%<latexrelease> \else
+%<latexrelease> \set@curr@file{#1 }%
+%<latexrelease> \expandafter\@include\@curr@file
+%<latexrelease> \fi}
+%<latexrelease>
+%<latexrelease>\let\set@curr@file@trim@spaces\@undefined
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\includeonly}{Spaces in file names}%
%<latexrelease>\def\includeonly#1{%
@@ -604,11 +668,20 @@
%
% \begin{macro}{\@include}
+% \changes{v1.2g}{2020/05/02}{Support spaces in filenames by enclosing
+% the names of \texttt{.aux}-files in quotes (gh/217)}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@include}{Spaces in file names}%
+% \end{macrocode}
+%
% \begin{macrocode}
\def\@include#1 {%
\clearpage
\if@filesw
- \immediate\write\@mainaux{\string\@input{#1.aux}}%
+ \immediate\write\@mainaux{\string\@input{"#1.aux"}}%
\fi
\@tempswatrue
\if@partsw
@@ -620,7 +693,7 @@
\if@tempswa
\let\@auxout\@partaux
\if@filesw
- \immediate\openout\@partaux #1.aux
+ \immediate\openout\@partaux "#1.aux"
\immediate\write\@partaux{\relax}%
\fi
\@input@{#1.tex}%
@@ -640,6 +713,42 @@
\@nameuse{cp@#1}%
\fi
\let\@auxout\@mainaux}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@include}{Spaces in file names}%
+%<latexrelease>\def\@include#1 {%
+%<latexrelease> \clearpage
+%<latexrelease> \if@filesw
+%<latexrelease> \immediate\write\@mainaux{\string\@input{#1.aux}}%
+%<latexrelease> \fi
+%<latexrelease> \@tempswatrue
+%<latexrelease> \if@partsw
+%<latexrelease> \@tempswafalse
+%<latexrelease> \edef\reserved@b{#1}%
+%<latexrelease> \@for\reserved@a:=\@partlist\do
+%<latexrelease> {\ifx\reserved@a\reserved@b\@tempswatrue\fi}%
+%<latexrelease> \fi
+%<latexrelease> \if@tempswa
+%<latexrelease> \let\@auxout\@partaux
+%<latexrelease> \if@filesw
+%<latexrelease> \immediate\openout\@partaux #1.aux
+%<latexrelease> \immediate\write\@partaux{\relax}%
+%<latexrelease> \fi
+%<latexrelease> \@input@{#1.tex}%
+%<latexrelease> \clearpage
+%<latexrelease> \@writeckpt{#1}%
+%<latexrelease> \if@filesw
+%<latexrelease> \immediate\closeout\@partaux
+%<latexrelease> \fi
+%<latexrelease> \else
+%<latexrelease> \deadcycles\z@
+%<latexrelease> \@nameuse{cp@#1}%
+%<latexrelease> \fi
+%<latexrelease> \let\@auxout\@mainaux}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -698,8 +807,8 @@
% the code in \texttt{utf8.def}). By setting \cs{escapchar} to
% \texttt{-1} we ensure that we don't get a backslash in front. As a
% result we end up with all characters as catcode 12 (plus
-% spaces). We then sometimes add quotes around the contruct
-% (removing any existing inner quotes. Somes we only remove the
+% spaces). We then sometimes add quotes around the construct
+% (removing any existing inner quotes. Sometimes we only remove the
% quotes if they have been supplied by the user. There is clearly
% some room for improvement.
%
diff --git a/macros/latex-dev/base/ltfloat.dtx b/macros/latex-dev/base/ltfloat.dtx
index 23c3f464d3..dee9a10197 100644
--- a/macros/latex-dev/base/ltfloat.dtx
+++ b/macros/latex-dev/base/ltfloat.dtx
@@ -31,7 +31,7 @@
%
%<*driver>
% \fi
-\ProvidesFile{ltfloat.dtx}[2015/02/21 v1.2c LaTeX Kernel (Floats)]
+\ProvidesFile{ltfloat.dtx}[2020/04/09 v1.2d LaTeX Kernel (Floats)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfloat.dtx}
@@ -1327,13 +1327,36 @@
% always start with a font selection command, to activate the font
% size switch.
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@textsuperscript}{superscript baseline}%
\def\@textsuperscript#1{%
- {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}}
+ {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\sf@size#1}}}}}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@textsuperscript}{superscript baseline}%
+%<latexrelease>
+%<latexrelease>\def\@textsuperscript#1{%
+%<latexrelease> {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
+%
+%
+%
% \begin{macro}{\textsubscript}
% \changes{v1.2a}{2014/12/30}{Command added (latexrelease)}
+% \changes{v1.2d}{2020/04/09}{Set non-zero baseline (gh/249)}
% \begin{macrocode}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2015/01/01}%
@@ -1345,27 +1368,54 @@
\DeclareRobustCommand*\textsubscript[1]{%
\@textsubscript{\selectfont#1}}%
% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\textsubscript}{\textsubscript}%
+%<latexrelease>\let\textsubscript\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
% \end{macro}
%
+%
+%
+%
% \begin{macro}{\@textsubscript}
% \changes{v1.2a}{2014/12/30}{Command added (latexrelease)}
-%
+% \changes{v1.2d}{2020/04/09}{Set non-zero baseline (gh/249)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@textsubscript}{subscript baseline}%
\def\@textsubscript#1{%
- {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
+ {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\sf@size#1}}}}}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2015/01/01}%
+%<latexrelease> {\@textsubscript}{subscript baseline}%
+%<latexrelease>
+%<latexrelease>\def\@textsubscript#1{%
+%<latexrelease> {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
% \end{macrocode}
-% \end{macro}
%
% \begin{macrocode}
-%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\textsubscript}{\textsubscript}%
-%<latexrelease>\let\textsubscript\@undefined
+%<latexrelease> {\@textsubscript}{subscript baseline}%
%<latexrelease>\let\@textsubscript\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
+% \end{macro}
+%
+%
%
% \begin{macro}{\footnotesep}
% \begin{macrocode}
diff --git a/macros/latex-dev/base/ltfssaxes.dtx b/macros/latex-dev/base/ltfssaxes.dtx
index 58d9aa159e..08a0ff1b4c 100644
--- a/macros/latex-dev/base/ltfssaxes.dtx
+++ b/macros/latex-dev/base/ltfssaxes.dtx
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssaxes.dtx}
- [2020/03/02 v1.0e LaTeX Kernel (NFSS Axes handing)]
+ [2020/05/19 v1.0f LaTeX Kernel (NFSS Axes handing)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -695,7 +695,7 @@
%
% \begin{macro}{\fontseriesforce}
% To change unconditionally to a new series you can use
-% \cs{fontseriesforce}. If course, if the series doesn't exist for
+% \cs{fontseriesforce}. Of course, if the series doesn't exist for
% the current family substitution still happens, but there is not
% dependency on the current series.
% \changes{v1.0c}{2020/02/10}{Switch \cs{if@forced@series} added}
@@ -881,7 +881,16 @@
,ulm,elm,lm,slm,mm,sbm,bm,ebm,ubm,muc,mec,mc,msc,msx,mx,mex,mux,{}{},#1,}%
\edef\in@@{\the\series@check@toks}%
\ifx\in@@\@empty
- \def#2{#1}%
+% \end{macrocode}
+% The default definition for \cs{bfdefault} etc is actually
+% \texttt{b\cs{@empty}} so that we can detect if the user has
+% changed the default. However that means a) the above test will
+% definitely fail (maybe something to change) and b) we better use
+% \cs{edef} on the next line to get rid of it as otherwise the test
+% against \verb=#2= (e.g. \cs{bfdef@ult}) will fail in other places.
+% \changes{v1.0e}{2020/05/19}{Need to use \cs{edef} (gh/336)}
+% \begin{macrocode}
+ \edef#2{#1}%
\else
\edef#2{\expandafter\series@drop@one@m #1m\series@drop@one@m}%
\fi
diff --git a/macros/latex-dev/base/ltfssbas.dtx b/macros/latex-dev/base/ltfssbas.dtx
index 5715106ca6..4a6afca3ac 100644
--- a/macros/latex-dev/base/ltfssbas.dtx
+++ b/macros/latex-dev/base/ltfssbas.dtx
@@ -1850,7 +1850,7 @@
% Finally, it is not possible to simply call the new definition
% since we
% have an argument (the third argument of |\use@mathgroup|
-% or more exactly the argument od |\math@egroup| if the {\ttfamily
+% or more exactly the argument of |\math@egroup| if the {\ttfamily
% margid} option is in force)
% which would swallow our closing |\fi|. So
% we use the |\expandafter| technique to remove the |\fi|
diff --git a/macros/latex-dev/base/ltfssdcl.dtx b/macros/latex-dev/base/ltfssdcl.dtx
index 951c6de2e5..291cd1368f 100644
--- a/macros/latex-dev/base/ltfssdcl.dtx
+++ b/macros/latex-dev/base/ltfssdcl.dtx
@@ -36,7 +36,7 @@
%
%
\ProvidesFile{ltfssdcl.dtx}
- [2020/01/20 v3.0t LaTeX Kernel (NFSS Declarative Interface)]
+ [2020/03/19 v3.0v LaTeX Kernel (NFSS Declarative Interface)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -465,7 +465,7 @@
% \changes{v3.0q}{2015/03/18}{Introduce \cs{e@mathgroup@top}}
% \begin{macrocode}
%</2ekernel>
-%<latexrelease>\IncludeInRelease{2015/01/01}
+%<latexrelease>\IncludeInRelease{2020/10/01}
%<latexrelease> {\document@select@group}{\document@select@group}%
%<*2ekernel|latexrelease>
\def\document@select@group#1#2#3#4{%
@@ -491,13 +491,54 @@
\@eha
\fi
\else \expandafter\non@alpherr\fi
- #1{#4}%
+% \end{macrocode}
+% If the legacy interface is used, e.g., \verb=$\sf -1$= the math
+% alphabet \verb=#1= does not take an argument so we better do not
+% surround \verb=#4= with braces, because then we get
+% \verb={\relax}= into the formula and introduce an extra Ord
+% atom. The two different cases can be distinguished by looking at
+% the current value of \cs{math@bgroup}.
+% \changes{v3.0u}{2020/03/19}{fix for (gnats/3357)}
+% \begin{macrocode}
+ \expandafter#1\ifx\math@bgroup\bgroup{#4}\else#4\fi
}%
}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2015/01/01}
+%<latexrelease> {\document@select@group}{\document@select@group}%
+%<latexrelease>
+%<latexrelease>\def\document@select@group#1#2#3#4{%
+%<latexrelease> \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
+%<latexrelease> {%
+%<latexrelease> \ifmmode
+%<latexrelease> \ifnum\csname c@mv@\math@version\endcsname<\e@mathgroup@top
+%<latexrelease> \begingroup
+%<latexrelease> \escapechar\m@ne
+%<latexrelease> \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
+%<latexrelease> \globaldefs\@ne \math@fonts
+%<latexrelease> \endgroup
+%<latexrelease> \expandafter\extract@alph@from@version
+%<latexrelease> \csname mv@\math@version\expandafter\endcsname
+%<latexrelease> \expandafter{\number\csname
+%<latexrelease> c@mv@\math@version\endcsname}%
+%<latexrelease> #1%
+%<latexrelease> \global\advance\csname c@mv@\math@version\endcsname\@ne
+%<latexrelease> \else
+%<latexrelease> \let#1\relax
+%<latexrelease> \@latex@error{Too many math alphabets used
+%<latexrelease> in version \math@version}%
+%<latexrelease> \@eha
+%<latexrelease> \fi
+%<latexrelease> \else \expandafter\non@alpherr\fi
+%<latexrelease> #1{#4}%
+%<latexrelease> }%
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>
%<latexrelease>\IncludeInRelease{0000/00/00}
%<latexrelease> {\document@select@group}{\document@select@group}%
+%<latexrelease>
%<latexrelease>\def\document@select@group#1#2#3#4{%
%<latexrelease> \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
%<latexrelease> {%
@@ -582,17 +623,19 @@
% \begin{macrocode}
\let\select@group\document@select@group
% \end{macrocode}
-% Install the default font attributes they are currently pointing
-% to error font shape.
+% Install the default font attributes as they are currently pointing
+% to error font face. We can speed up the process by just using
+% \cs{edef}, thereby avoiding all kind of extra processing.
% Don't use |\reset@font| since that would trigger |\selectfont|.
+% \changes{v3.0v}{2020/04/13}{Small update for speed.}
% \begin{macrocode}
- \fontencoding{\encodingdefault}%
- \fontfamily{\familydefault}%
- \fontseries{\seriesdefault}%
- \fontshape{\shapedefault}%
+ \fontencoding\encodingdefault
+ \edef\f@family{\familydefault}%
+ \edef\f@series{\seriesdefault}%
+ \edef\f@shape{\shapedefault}%
% \end{macrocode}
-% kill all macros not longer needed.
-% we need to add many more!!!!!!
+% Drop stuff not longer needed.
+% We need to add many more!!!!!!
% \begin{macrocode}
\everyjob{}%
}
diff --git a/macros/latex-dev/base/ltfssini.dtx b/macros/latex-dev/base/ltfssini.dtx
index 3947b4d953..952025375b 100644
--- a/macros/latex-dev/base/ltfssini.dtx
+++ b/macros/latex-dev/base/ltfssini.dtx
@@ -36,7 +36,7 @@
%
%
\ProvidesFile{ltfssini.dtx}
- [2020/03/02 v3.1k LaTeX Kernel (NFSS Initialisation)]
+ [2020/05/19 v3.2a LaTeX Kernel (NFSS Initialisation)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -288,8 +288,16 @@
\ifx\reserved@a\@empty
\ifcsname #2series\endcsname % supported are
% \[md/bf]default
+% \end{macrocode}
+% Adding \cs{@empty} allows us to detect if the default gets
+% redefined with \cs{renewcommand} or \cs{def} by the user.
+% \changes{v3.1k}{2020/03/19}{Support legacy use of \cs{bfdefault}
+% and \cs{mddefault} (gh/306)}
+% \begin{macrocode}
\expandafter\def
- \csname #2default\endcsname{#3}%
+ \csname #2default\endcsname{#3\@empty}%
+ \expandafter\def
+ \csname #2default@previous\endcsname{#3\@empty}%
\else
% \end{macrocode}
%
@@ -381,6 +389,11 @@
% \begin{macro}{\expand@font@defaults}
+% \begin{macro}{\rm@def@ult}
+% \begin{macro}{\sf@def@ult}
+% \begin{macro}{\tt@def@ult}
+% \begin{macro}{\md@def@ult}
+% \begin{macro}{\bf@def@ult}
%
% The family specific defaults are fully expanded, i.e., they are
% defined via \cs{edef} inside \cs{DeclareFontSeriesDefault}.
@@ -402,10 +415,19 @@
% \begin{macrocode}
\series@maybe@drop@one@m\bfdefault\bfdef@ult
\series@maybe@drop@one@m\mddefault\mddef@ult
- \edef\famdef@ult{\familydefault}%
+% \end{macrocode}
+% Formats that set up parallel fonts, e.g., for Japanese, can use
+% this hook to add additional code here.
+% \changes{v3.1m}{2020/04/06}{Hook added (gh/306)}
+% \begin{macrocode}
+ \@expandfontdefaultshook
}
% \end{macrocode}
-%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
% \end{macro}
@@ -425,6 +447,41 @@
% of \cs{fontseries} argument so that it is not done several times}
% \begin{macrocode}
\expand@font@defaults
+% \end{macrocode}
+% If \cs{bfdefault} and \cs{befdefault@previous} are different then
+% the default got changed directly through the legacy interface
+% (i.e., via \cs{def} or \cs{renewcommand}. In that case we reset
+% all meta family defaults so that the document behaves like it was
+% the case before the new mechanism was introduced.
+% \changes{v3.1k}{2020/03/19}{Support legacy use of \cs{bfdefault}
+% and \cs{mddefault} (gh/306)}
+% \begin{macrocode}
+ \ifx\bfdefault\bfdefault@previous\else
+% \end{macrocode}
+% We add \cs{@empty} and then let \cs{bfdefault@previous} to
+% \cs{bfdefault} so that we can detect any further change.
+% \begin{macrocode}
+ \expandafter\def\expandafter\bfdefault
+ \expandafter{\bfdefault\@empty}%
+ \let\bfseries@previous\bfdefault
+% \end{macrocode}
+% And we reset the meta family defaults (\cs{bfdef@ult} is an
+% expanded version of \cs{bfdefault}.
+% \begin{macrocode}
+ \let\bfseries@rm\bfdef@ult
+ \let\bfseries@sf\bfdef@ult
+ \let\bfseries@tt\bfdef@ult
+% \end{macrocode}
+%
+% Formats that set up parallel fonts, e.g., for Japanese, can use
+% this hook to add resets here.
+% \changes{v3.1m}{2020/04/06}{Hook added (gh/306)}
+% \begin{macrocode}
+ \@setbfseriesdefaultshook
+ \fi
+% \end{macrocode}
+%
+% \begin{macrocode}
\ifx\f@family\rmdef@ult \fontseries\bfseries@rm
\else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf
\else\ifx\f@family\ttdef@ult \fontseries\bfseries@tt
@@ -444,10 +501,26 @@
% This document command switches to the medium series.
% \changes{v3.1i}{2020/02/18}{Make the \cs{ifx} selection outside
% of \cs{fontseries} argument so that it is not done several times}
+% \changes{v3.1k}{2020/03/19}{Support legacy use of \cs{bfdefault}
+% and \cs{mddefault} (gh/306)}
% \begin{macrocode}
\DeclareRobustCommand\mdseries{%
\not@math@alphabet\mdseries\relax
\expand@font@defaults
+ \ifx\mddefault\mddefault@previous\else
+ \expandafter\def\expandafter\mddefault\expandafter{\mddefault\@empty}%
+ \let\mdseries@previous\mddefault
+ \let\mdseries@rm\mddef@ult
+ \let\mdseries@sf\mddef@ult
+ \let\mdseries@tt\mddef@ult
+% \end{macrocode}
+%
+% Formats that set up parallel fonts, e.g., for Japanese, can use
+% this hook to add resets here.
+% \changes{v3.1m}{2020/04/06}{Hook added (gh/306)}
+% \begin{macrocode}
+ \@setmdseriesdefaultshook
+ \fi
\ifx\f@family\rmdef@ult \fontseries\mdseries@rm
\else\ifx\f@family\sfdef@ult \fontseries\mdseries@sf
\else\ifx\f@family\ttdef@ult \fontseries\mdseries@tt
@@ -610,11 +683,20 @@
% \end{macro}
%
%
+% \begin{macro}{\@expandfontdefaultshook}
+% \begin{macro}{\@setbfseriesdefaultshook}
+% \begin{macro}{\@setmdseriesdefaultshook}
% \begin{macro}{\@rmfamilyhook}
% \begin{macro}{\@sffamilyhook}
% \begin{macro}{\@ttfamilyhook}
% By default the hooks do nothing.
% \begin{macrocode}
+\let\@expandfontdefaultshook\@empty
+\let\@setbfseriesdefaultshook\@empty
+\let\@setmdseriesdefaultshook\@empty
+% \end{macrocode}
+%
+% \begin{macrocode}
\let\@rmfamilyhook\@empty
\let\@sffamilyhook\@empty
\let\@ttfamilyhook\@empty
@@ -622,6 +704,9 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
%
%
@@ -873,23 +958,42 @@
% \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
+% the if the \cs{rmdefault} contains a new font family, we may 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
+%
+% Similarly, if the user has changed the \cs{mddefault} or the
+% medium series for the family selected as document font we may
+% also have to adjust the \cs{seriesdefault}.
+%
+% On the other hand if the document font is still CM or LM then
+% \cs{bfdefault} is wrong, because it is now saying \texttt{b} and not
+% \texttt{bx} as it should for such fonts.
+%
+% To fix all this we first run \cs{reset@font} (the internal kernel
+% name for \cs{normalfont}). This will set up the document encoding,
+% family, series and shape based on the current values of
+% \cs{encodingdefault}, \cs{familydefault}, \cs{seriesdefault} and
+% \cs{shapedefault}.
+% However, if the family (from \cs{familydefault}) has special medium
+% default we should switch to that (and not use what is current
+% value from \cs{seriesdefault}). This can be achieved by afterwards
+% calling \cs{mediumseries} and then changing \cs{seriesdefault} to
+% the now current series value (in \cs{f@series}).
+%
+% But what should happen if \cs{seriesdefault} got explicitly
+% changed? In that case the explicit change should surive and we
+% should not alter \cs{seriesdefault}. This is solved by comparing
+% the current value of \cs{seriesdefault} with a kernel version
+% saved in the format and if they differ we do not call
+% \cs{mdseries} or change \cs{seriesdefault}.
+% \changes{v3.1n}{2020/04/13}{Handling \cs{seriesdefault} changes (gh/315)}
+% \begin{macrocode}
+ \reset@font
+ \ifx\seriesdefault\seriesdefault@kernel
+ \mdseries
+ \let\seriesdefault\f@series
+ \fi
}%
% \end{macrocode}
% \end{macro}
@@ -948,6 +1052,9 @@
%<latexrelease> {\not@math@alphabet\ttfamily\mathtt
%<latexrelease> \fontfamily\ttdefault\selectfont}
%<latexrelease>
+%<latexrelease>\let\@expandfontdefaultshook\@undefined
+%<latexrelease>\let\@setbfseriesdefaultshook\@undefined
+%<latexrelease>\let\@setmdseriesdefaultshook\@undefined
%<latexrelease>\let\@rmfamilyhook\@undefined
%<latexrelease>\let\@sffamilyhook\@undefined
%<latexrelease>\let\@ttfamilyhook\@undefined
@@ -963,9 +1070,166 @@
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
+%
+%
+%
+% \begin{macro}{\IfFontSeriesContextTF}
+%
+% With the ability for \cs{bfseries} or \cs{mdseries} to be mapped
+% to different NFSS axis values it becomes important to have the
+% ability to determine the current context as we can no longer look
+% at \cs{f@series} to answer a question such as ``am I currently
+% typsetting in a bold typeface?''
+%
+% This is provided by the test \cs{IfFontSeriesContextTF}. It takes
+% three arguments:
+% \begin{itemize}
+% \item
+% The context we try to check (either \texttt{bf} for bold or
+% \texttt{md} for medium, i.e., the same that can go into the
+% first mandatory argument of \cs{DeclareFontSeriesDefault}),
+%
+% \item
+% what to do if we are in this context (true case) and
+%
+% \item
+% what to do if we are not (false case).
+% \end{itemize}
+% This allows you to define commands like \cs{IfBold}, e.g.,
+%\begin{verbatim}
+% \newcommand\IfBold[2]{\IfSeriesContextTF{bf}{#1}{#2}}
+%\end{verbatim}
+% and then do
+%\begin{verbatim}
+% This is \IfBold{bold}{non-bold} text.
+%\end{verbatim}
+% and get the appropriate result.
+%
+% \changes{v3.2a}{2020/05/19}{Macros added (gh/335)}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\IfFontSeriesContext}{Font series context}%
+\DeclareRobustCommand\IfFontSeriesContextTF[1]{%
+ \expand@font@defaults
+% \end{macrocode}
+% In the beginning we haven't found the context we are loking for.
+% \begin{macrocode}
+ \@font@series@contextfalse
+% \end{macrocode}
+% We store the requested context away for use in the tests.
+% \begin{macrocode}
+ \def\requested@test@context{#1}%
+% \end{macrocode}
+% The next definition is there to ensure that get a final match
+% during testing
+% even if the current family is non of the meta families
+% (\texttt{rm}, \texttt{sf} or \texttt{tt}). This will then
+% basically tests if the current font family matches the overall default.
+% \begin{macrocode}
+ \expandafter\edef\csname ??def@ult\endcsname{\f@family}%
+% \end{macrocode}
+% Then we run through the meta family list (currently containing
+% just the three values) followed by the artifical meta family
+% \texttt{??} and test each of them in turn using
+% \cs{test@font@series@context} as the testing command.
+% \begin{macrocode}
+ \let\@elt\test@font@series@context
+ \@meta@family@list
+ \@elt{??}%
+ \let\@elt\relax
+% \end{macrocode}
+% Following that we evaluate the status of
+% \cs{if@font@series@context} to determine which of the remaining
+% arguments (true/false case) we have to execute.
+% \begin{macrocode}
+ \if@font@series@context
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\test@font@series@context}
+% This tests the context (stored in \cs{requested@test@context})
+% and updates the bookean if the right context is found.
+% \begin{macrocode}
+\def\test@font@series@context#1{%
+% \end{macrocode}
+% First task is to figure out whether the current family matches
+% \cs{rmfamily}, \cs{sffamily}, etc.\ so in \cs{reserved@a} we
+% store the value of \cs{rmdef@ult} (or whatever the given meta
+% family is) and compare that to \cs{f@family}.
+% \begin{macrocode}
+ \edef\reserved@a{\csname #1def@ult\endcsname}%
+ \ifx\f@family\reserved@a
+% \end{macrocode}
+% If they match we have found the right meta family so we don't
+% need to test any of the remaining meta family and therefore
+% change \cs{@elt} to \cs{@gobble}.
+% \begin{macrocode}
+ \let\@elt\@gobble
+% \end{macrocode}
+% Now we have to test if \cs{f@series} matches the requested
+% context (e.g., whether \cs{bfseries@rm} has that value if the
+% current meta family is \texttt{rm} and we are looking for the
+% \texttt{bf} context).
+% \begin{macrocode}
+ \expandafter\ifx
+ \csname\requested@test@context series@#1\endcsname\f@series
+% \end{macrocode}
+% If yes we change the boolean and are done.
+% \begin{macrocode}
+ \@font@series@contexttrue
+% \end{macrocode}
+% If not then maybe the reason is that nothing special was set up
+% for that meta family so we also check now check if \cs{f@series}
+% matches the overall default (e.g., \cs{bfdef@ult} if we are
+% looking for the bold context). If that matches we change the boolean.
+% \begin{macrocode}
+ \else
+ \expandafter\ifx
+ \csname\requested@test@context def@ult\endcsname\f@series
+ \@font@series@contexttrue
+ \fi\fi\fi
+}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\if@font@series@context}
+% The boolean to signal if we found the requested font series context.
+% \begin{macrocode}
+\newif\if@font@series@context
+% \end{macrocode}
+% \end{macro}
%
%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\IfFontSeriesContext}{Font series context}%
+%<latexrelease>
+%<latexrelease>\let\IfFontSeriesContextTF\@undefined
+%<latexrelease>\let\test@font@series@context\@undefined
+%<latexrelease>\let\if@font@series@context\@undefined
+%<latexrelease>\let\@font@series@contexttrue\@undefined
+%<latexrelease>\let\@font@series@contextfalse\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+
+
+
%
% \section{Supporting nested emphasis}
%
@@ -1565,6 +1829,26 @@
% \end{macrocode}
%
%
+%
+% \begin{macro}{\seriesdefault}
+% \begin{macro}{\seriesdefault@kernel}
+% After \cs{seriesdefault} got defined inside \texttt{fonttext.ltx}
+% or a \texttt{.cfg} file overwriting it, we alter its value by
+% appending \cs{@empty} to it. This will vanish if expanded but
+% allows us to check if the default gets altered (even to the same
+% value) in the document preamble. All we have to do is to save the
+% current value somewhere and later compare the two. For this we
+% use \cs{seriesdefault@kernel}.
+% \changes{v3.1n}{2020/04/13}{Handling \cs{seriesdefault} changes (gh/315)}
+% \begin{macrocode}
+\expandafter\def\expandafter\seriesdefault\expandafter{\seriesdefault\@empty}
+\let\seriesdefault@kernel\seriesdefault
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+%
% \begin{macro}{\@acci}
% \begin{macro}{\@accii}
% \begin{macro}{\@acciii}
diff --git a/macros/latex-dev/base/ltlists.dtx b/macros/latex-dev/base/ltlists.dtx
index e8c9ebc16b..653e4e2edd 100644
--- a/macros/latex-dev/base/ltlists.dtx
+++ b/macros/latex-dev/base/ltlists.dtx
@@ -31,7 +31,7 @@
%<*driver>
% \fi
\ProvidesFile{ltlists.dtx}
- [2015/05/10 v1.0t LaTeX Kernel (List Environments)]
+ [2020/04/24 v1.0t LaTeX Kernel (List Environments)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltlists.dtx}
@@ -546,6 +546,7 @@
% \end{macrocode}
% \end{macro}\end{macro}\end{macro}
%
+% \begin{environment}{list}
% \begin{macro}{\list}
% \begin{macrocode}
\def\list#1#2{%
@@ -572,6 +573,7 @@
\ignorespaces}
% \end{macrocode}
% \end{macro}
+% \end{environment}
%
% \begin{macro}{\par@deathcycles}
% \begin{macrocode}
@@ -626,8 +628,9 @@
% \end{macrocode}
% \end{macro}
%
-% \changes{0.0}{1992/03/18}{RmS: added \cs{@nmbrlistfalse}}
+% \begin{environment}{trivlist}
% \begin{macro}{\trivlist}
+% \changes{0.0}{1992/03/18}{RmS: added \cs{@nmbrlistfalse}}
% \begin{macrocode}
\def\trivlist{%
\parsep\parskip
@@ -647,6 +650,7 @@
\def\makelabel##1{##1}}
% \end{macrocode}
% \end{macro}
+% \end{environment}
%
% \begin{macro}{\endlist}
% \begin{macrocode}
diff --git a/macros/latex-dev/base/ltluatex.dtx b/macros/latex-dev/base/ltluatex.dtx
index 1f9ab8d133..d7ca7d05ec 100644
--- a/macros/latex-dev/base/ltluatex.dtx
+++ b/macros/latex-dev/base/ltluatex.dtx
@@ -28,7 +28,7 @@
\ProvidesFile{ltluatex.dtx}
%</driver>
%<*tex>
-[2020/02/02 v1.1l
+[2020/03/07 v1.1m
%</tex>
%<plain> LuaTeX support for plain TeX (core)
%<*tex>
@@ -1716,6 +1716,7 @@ luatexbase.add_to_callback = add_to_callback
% \changes{v1.0a}{2015/09/24}{Function added}
% \changes{v1.0k}{2015/12/02}{adjust initialisation of cb local (PHG)}
% \changes{v1.0k}{2015/12/02}{Give more specific error messages (PHG)}
+% \changes{v1.1m}{2020/03/07}{Do not call callback.register for user-defined callbacks}
% Remove a function from a callback. First check arguments.
% \begin{macrocode}
local function remove_from_callback(name, description)
@@ -1761,7 +1762,9 @@ local function remove_from_callback(name, description)
)
if #l == 0 then
callbacklist[name] = nil
- callback_register(name, nil)
+ if user_callbacks_defaults[name] == nil then
+ callback_register(name, nil)
+ end
end
return cb.func,cb.description
end
diff --git a/macros/latex-dev/base/ltluatex.pdf b/macros/latex-dev/base/ltluatex.pdf
index 86769bca60..eaada989fa 100644
--- a/macros/latex-dev/base/ltluatex.pdf
+++ b/macros/latex-dev/base/ltluatex.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltmath.dtx b/macros/latex-dev/base/ltmath.dtx
index 86e62e7bf5..c4963cf0c6 100644
--- a/macros/latex-dev/base/ltmath.dtx
+++ b/macros/latex-dev/base/ltmath.dtx
@@ -38,7 +38,7 @@
%<*driver>
% \fi
\ProvidesFile{ltmath.dtx}
- [2020/02/18 v1.2d LaTeX Kernel (Math Setup)]
+ [2020/04/21 v1.2f LaTeX Kernel (Math Setup)]
% \iffalse
%</driver>
%
@@ -509,18 +509,103 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\>}
-% \begin{macro}{\;}
-% \begin{macro}{\!}
+
+
+%
+% \begin{macro}{\tmspace}
+% \begin{macro}{\,}
+% \begin{macro}{\thinspace}
+% \begin{macro}{\!}
+% \begin{macro}{\negthinspace}
+% \begin{macro}{\:}
+% \begin{macro}{\medspace}
+% \begin{macro}{\negmedspace}
+% \begin{macro}{\;}
+% \begin{macro}{\thickspace}
+% \begin{macro}{\negthickspace}
+%
+% Originally \LaTeX{} only provided a small set of spacing commands
+% for use in text and math, some of the commands like \cs{;} were
+% only supported in manth mode. \texttt{amsmath} normalized and
+% provided all of them in text and math. This code has now been
+% moved to the kernel so that it is generally available.
+%
+%
% \begin{macrocode}
-%\def\,{\mskip\thinmuskip} % already defined in ltspace
-\def\>{\mskip\medmuskip}
-\def\;{\mskip\thickmuskip}
-\def\!{\mskip-\thinmuskip}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\tmspace}{amsmath spacing commands}%
+% \end{macrocode}
+% \cs{tmspace} is really meant to be an internal command so it
+% doesn't necessarily has to be robust but it was robust in
+% \texttt{amsmath} so we leave it like that.
+% \changes{v1.2e}{2020/03/07}{Add \texttt{amsmath} math/text spacing
+% commands to the kernel (gh/303)}
+% \begin{macrocode}
+\DeclareRobustCommand\tmspace[3]{%
+ \ifmmode\mskip#1#2\else\leavevmode@ifvmode\kern#1#3\fi\relax}
+% \end{macrocode}
+% In \texttt{amsmath} the text kern is \texttt{.1667em}. For
+% compatibility reasons we keep the longer one.
+% \begin{macrocode}
+\DeclareRobustCommand\,{\tmspace+\thinmuskip{.16667em}}
+\let\thinspace\,
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+%
+% \begin{macrocode}
+\DeclareRobustCommand\!{\tmspace-\thinmuskip{.16667em}}
+\let\negthinspace\!
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareRobustCommand\:{\tmspace+\medmuskip{.2222em}}
+\let\medspace\:
+% \end{macrocode}
+% \LaTeX{} has a second name for this in its manual:
+% \begin{macrocode}
+\let\>=\:
+\DeclareRobustCommand\negmedspace{\tmspace-\medmuskip{.2222em}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareRobustCommand\;{\tmspace+\thickmuskip{.2777em}}
+\let\thickspace\;
+\DeclareRobustCommand\negthickspace{\tmspace-\thickmuskip{.2777em}}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\tmspace}{amsmath spacing commands}%
+%<latexrelease>
+%<latexrelease>\let\tmspace\@undefined
+%<latexrelease>\DeclareRobustCommand{\,}{%
+%<latexrelease> \relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
+%<latexrelease>\DeclareRobustCommand\thinspace{\leavevmode@ifvmode\kern .16667em }
+%<latexrelease>\DeclareRobustCommand\negthinspace{\leavevmode@ifvmode\kern-.16667em }
+%<latexrelease>\def\>{\mskip\medmuskip}
+%<latexrelease>\let\:=\>
+%<latexrelease>\def\;{\mskip\thickmuskip}
+%<latexrelease>\def\!{\mskip-\thinmuskip}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
%
% \begin{macro}{\*}
% \begin{macrocode}
@@ -532,7 +617,7 @@
% Nickname for the medium space since |\>| is not available inside
% \texttt{tabbing}.
% \begin{macrocode}
-\let\:=\>
+%\let\:=\>
% \end{macrocode}
% \end{macro}
%
@@ -884,12 +969,32 @@
\def\@yeqncr{\@testopt\@xeqncr\z@skip}
% \end{macrocode}
%
+% \changes{v1.2f}{2020/04/21}{Support calc syntax (gh/152)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@xeqncr}{eqnarray support calc syntax}%
\def\@xeqncr[#1]{%
\ifnum0=`{\fi}%
\@@eqncr
- \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}%
+ \noalign{\penalty\@eqpen\vskip\jot\@vspace@calcify{#1}}%
}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@xeqncr}{eqnarray support calc syntax}%
+%<latexrelease>
+%<latexrelease>\def\@xeqncr[#1]{%
+%<latexrelease> \ifnum0=`{\fi}%
+%<latexrelease> \@@eqncr
+%<latexrelease> \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}%
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
%
% \end{macro}
diff --git a/macros/latex-dev/base/ltmiscen.dtx b/macros/latex-dev/base/ltmiscen.dtx
index 97b1f4a572..5fb4e77d90 100644
--- a/macros/latex-dev/base/ltmiscen.dtx
+++ b/macros/latex-dev/base/ltmiscen.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltmiscen.dtx}
- [2019/11/02 v1.1s LaTeX Kernel (Misc. Environments)]
+ [2020/04/24 v1.1t LaTeX Kernel (Misc. Environments)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltmiscen.dtx}
@@ -182,6 +182,7 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{environment}{document}
% \begin{macro}{\enddocument}
% \changes{LaTeX2.09}{1993/08/03}
% {Changed redefinition of \cs{global} to redefinition
@@ -294,6 +295,7 @@
\deadcycles\z@\@@end}
% \end{macrocode}
% \end{macro}
+% \end{environment}
%
% \begin{macro}{\@testdef}
% \begin{macrocode}
@@ -738,10 +740,25 @@
% \end{macro}
%
% \begin{macro}{\@icentercr}
+% \changes{v1.1t}{2020/04/21}{Support calc syntax (gh/152)}
% \begin{macrocode}
-\def\@icentercr[#1]{\vskip #1\ignorespaces}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@icentercr}{centering, etc support calc}%
+\def\@icentercr[#1]{\@vspace@calcify{#1}\ignorespaces}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@icentercr}{centering, etc support calc}%
+%<latexrelease>
+%<latexrelease>\def\@icentercr[#1]{\vskip #1\ignorespaces}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
-%
% \end{macro}
%
%
@@ -983,6 +1000,7 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{environment}{verbatim}
% \begin{macro}{\verbatim}
% \begin{macro}{\endverbatim}
% (RmS 93/09/19) Protected against `missing item' error message
@@ -993,6 +1011,7 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{environment}
%
% \begin{macro}{\verbatim@font}
% \changes{v0.9a}{1993/11/21}{Macro added}
@@ -1010,7 +1029,7 @@
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2018/12/01}%
-%<latexrelease> {\verbvisiblespace}{Setup visible space for verb}%
+%<latexrelease> {\verbvisiblespace}{Setup visible space for \verb}%
% \end{macrocode}
%
%
@@ -1092,15 +1111,71 @@
% \end{macrocode}
% \end{macro}
%
+%^^A \@sverb was here
+%
+% \begin{environment}{verbatim*}
+% For \texttt{verbatim*} we also set up the correct visible space
+% character definition and then run |\@vobeyspaces|. As this code
+% is not called as part of the normal verbatim environment (the
+% method is done the other way around this time) we don't have to
+% check if space is already active---it shouldn't be.
+% \changes{v1.1o}{2018/10/11}
+% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)}
+% \begin{macrocode}
+\@namedef{verbatim*}{\@verbatim
+ \@setupverbvisiblespace
+ \frenchspacing\@vobeyspaces\@sxverbatim}
+\expandafter\let\csname endverbatim*\endcsname =\endverbatim
+% \end{macrocode}
+% \end{environment}
+%
+%
+%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\verbvisiblespace}{Setup visible space for \verb}%
+%<latexrelease>
+%<latexrelease>\@namedef{verbatim*}{\@verbatim\@sxverbatim}
+%<latexrelease>
+%<latexrelease>\let\asciispace \@undefined
+%<latexrelease>\let\verbvisiblespace \@undefined
+%<latexrelease>\let\@setupverbvisiblespace\@undefined
+%<latexrelease>\let\@verbvisiblespacebox \@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+%
%
% \begin{macro}{\@sverb}
+% \begin{macro}{\@@sverb}
% \changes{v1.0j}{1994/05/10}{Slight change in error message text.}
% Definitions of |\@sverb| and |\@verb| changed so |\verb+ foo+|
% does not lose leading blanks when it comes at the beginning of a line.
% Change made 24 May 89. Suggested by Frank Mittelbach and Rainer
% Sch\"opf.
% \begin{macrocode}
-\def\@sverb#1{%
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@sverb}{Drop spaces before \verb delimiter}%
+% \end{macrocode}
+%
+% If the users types \verb=\verb !~! foo= then surprisingly we would
+% get the space as the delimiter and thus
+% ``\verb=!~!foo='' in the output.
+% To avoid this scenario we check if \verb=#1= has the character
+% code of a space, if so we recurse otherwise we call \cs{@@sverb}
+% (which is the original definition of \cs{@sverb}.
+% \changes{v1.1u}{2020/04/22}{Drop spaces before \cs{verb} delimiter (gh/327)}
+% \begin{macrocode}
+\def\@sverb#1{\if\noexpand#1 \expandafter\@sverb\else\@@sverb{#1}\fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@@sverb#1{%
\catcode`#1\active
\lccode`\~`#1%
\gdef\verb@balance@group{\verb@egroup
@@ -1120,39 +1195,28 @@
\else \@setupverbvisiblespace \@vobeyspaces \fi
}
% \end{macrocode}
-% \end{macro}
-%
-% \begin{environment}{verbatim*}
-% For \texttt{verbatim*} we also set up the correct visible space
-% character definition and then run |\@vobeyspaces|. As this code
-% is not called as part of the normal verbatim environment (the
-% method is done the other way around this time) we don't have to
-% check if space is already active---it shouldn't be.
-% \changes{v1.1o}{2018/10/11}
-% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)}
-% \begin{macrocode}
-\@namedef{verbatim*}{\@verbatim
- \@setupverbvisiblespace
- \frenchspacing\@vobeyspaces\@sxverbatim}
-\expandafter\let\csname endverbatim*\endcsname =\endverbatim
-% \end{macrocode}
-% \end{environment}
-%
-%
-%
+%
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
-%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\verbvisiblespace}{Setup visible space for verb}%
-%<latexrelease>
-%<latexrelease>\@namedef{verbatim*}{\@verbatim\@sxverbatim}
+%<latexrelease>\IncludeInRelease{2018/12/01}%
+%<latexrelease> {\@sverb}{Setup visible space for \verb}%
%<latexrelease>
-%<latexrelease>\let\asciispace \@undefined
-%<latexrelease>\let\verbvisiblespace \@undefined
-%<latexrelease>\let\@setupverbvisiblespace\@undefined
-%<latexrelease>\let\@verbvisiblespacebox \@undefined
+%<latexrelease>\def\@sverb#1{%
+%<latexrelease> \catcode`#1\active
+%<latexrelease> \lccode`\~`#1%
+%<latexrelease> \gdef\verb@balance@group{\verb@egroup
+%<latexrelease> \@latex@error{\noexpand\verb illegal in command argument}\@ehc}%
+%<latexrelease> \aftergroup\verb@balance@group
+%<latexrelease> \lowercase{\let~\verb@egroup}%
+%<latexrelease> \ifnum\catcode`\ =\active
+%<latexrelease> \else \@setupverbvisiblespace \@vobeyspaces \fi
+%<latexrelease>}
+%<latexrelease>\let\@@sverb\@undefined
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@sverb}{Setup visible space for \verb}%
%<latexrelease>\def\@sverb#1{%
%<latexrelease> \catcode`#1\active
%<latexrelease> \lccode`\~`#1%
@@ -1164,8 +1228,8 @@
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
-%
-%
+% \end{macro}
+% \end{macro}
%
%
% \begin{macro}{\@makeother}
diff --git a/macros/latex-dev/base/ltnews.pdf b/macros/latex-dev/base/ltnews.pdf
index ef7aa51e08..ced28ce0e1 100644
--- a/macros/latex-dev/base/ltnews.pdf
+++ b/macros/latex-dev/base/ltnews.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews.tex b/macros/latex-dev/base/ltnews.tex
index c69054aa82..ffc34da26c 100644
--- a/macros/latex-dev/base/ltnews.tex
+++ b/macros/latex-dev/base/ltnews.tex
@@ -30,11 +30,13 @@
% * Fix TOC issue
% 2020/01/30 v1.4b:
% * Fix TOC issue more generally and add page numbers
+% 2020/04/13 v1.4d:
+% * Use titletoc for partial toc'sa in the separate issues
% \fi
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltnews.tex}%
- [2020/01/30 v1.4c Master file for ltnews*.tex (LaTeX Project)]
+ [2020/04/13 v1.4d Master file for ltnews*.tex (LaTeX Project)]
\providecommand*{\lastissue}{32}
@@ -73,10 +75,11 @@
\RequirePackage{hologo}
\RequirePackage{graphicx}
-
\documentclass{ltnews}
\RequirePackage{url,csquotes}
+% 1.4d (JLB) also load the titletoc package
+\RequirePackage{titletoc}
% \small already robust so better not ...
%\expandafter
@@ -88,6 +91,9 @@
\RequirePackage{multicol}
\makeatletter
+% 1.4d (JLB) Titletoc thinks \contentsline has three arguments
+% but it has 4 in our case
+\def\ttl@gobblecontents#1#2#3#4{\ignorespaces}
\newcounter{issue}
\renewcommand*{\theissue}{%
@@ -178,6 +184,9 @@
\makefirsttitle
\pdfbookmark[0]{\contentsname}{toc}
+% 1.4d(JLB) Now that titletoc is used we can limit the depth
+% of the main toc
+\setcounter{tocdepth}{2}
\tableofcontents
\clearpage
@@ -219,14 +228,16 @@
\setcounter{footnote}{0}%
\gobbleopt
}%
+% 1.4d (JLB) Removed the extra lines that were written to the toc-files
\newcommand*{\gobbleopt}[1][]{}%
\let\org@twocolumn\twocolumn
\renewcommand\NeedsTeXFormat[1]{\NeedsTeXFormatdate}% ignore that inside
\newcommand\NeedsTeXFormatdate[1][]{}% % inidividual issues
\renewenvironment{document}{%
\clearpage
+% 1.4d (JLB) Normally |\ltn@tocend| shoud do nothing
+ \let\ltn@tocend\relax
\ifnum\@issue=20 %
- \addtocontents{toc}{\protect\setcounter{tocdepth}{5}}%
\addtocontents{toc}{%
\protect\makeatletter
}%
@@ -243,19 +254,14 @@
}%
\def\toclevel@subsection{1}%
\def\toclevel@subsubsection{2}%
- \addtocontents{toc}{\protect\setcounter{tocdepth}{4}}%
\renewcommand*{\tableofcontents}{%
\section*{\contentsname}%
- \@starttoc{toc\theissue}%
- }%
- \let\saved@addtocontents\addtocontents
- \renewcommand*{\addtocontents}[2]{%
- \saved@addtocontents{##1}{##2}%
- \def\temp@toc{toc}%
- \def\temp@param{##1}%
- \ifx\temp@toc\temp@param
- \saved@addtocontents{toc\theissue}{##2}%
- \fi
+% 1.4d (JLB) Start the partial contents
+ \startcontents[Issue\theissue]
+% 1.4d (JLB) Show it
+ \printcontents[Issue\theissue]{}{1}[3]{}
+% 1.4d (JLB)and make sure that |\end{document}| stops it again.
+ \gdef\ltn@tocend{\stopcontents[Issue\theissue]}
}%
\let\l@subsubsection\l@subsection
\let\l@subsection\l@section
@@ -278,6 +284,8 @@
\endgroup
}%
}{%
+% 1.4d (JLB) Adde |\ltn@tocend|
+ \ltn@tocend
\clearpage
}%
\makeatother
diff --git a/macros/latex-dev/base/ltnews01.pdf b/macros/latex-dev/base/ltnews01.pdf
index 44694047ca..fc3ed1119d 100644
--- a/macros/latex-dev/base/ltnews01.pdf
+++ b/macros/latex-dev/base/ltnews01.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews02.pdf b/macros/latex-dev/base/ltnews02.pdf
index b43d192424..34d40b49ec 100644
--- a/macros/latex-dev/base/ltnews02.pdf
+++ b/macros/latex-dev/base/ltnews02.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews03.pdf b/macros/latex-dev/base/ltnews03.pdf
index 4ccdc3613b..df30947cd9 100644
--- a/macros/latex-dev/base/ltnews03.pdf
+++ b/macros/latex-dev/base/ltnews03.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews04.pdf b/macros/latex-dev/base/ltnews04.pdf
index 7c8c60445d..8b18c27fda 100644
--- a/macros/latex-dev/base/ltnews04.pdf
+++ b/macros/latex-dev/base/ltnews04.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews05.pdf b/macros/latex-dev/base/ltnews05.pdf
index e4e3b4a417..7a079ebd73 100644
--- a/macros/latex-dev/base/ltnews05.pdf
+++ b/macros/latex-dev/base/ltnews05.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews06.pdf b/macros/latex-dev/base/ltnews06.pdf
index 33b0dd42c9..e6ca705920 100644
--- a/macros/latex-dev/base/ltnews06.pdf
+++ b/macros/latex-dev/base/ltnews06.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews07.pdf b/macros/latex-dev/base/ltnews07.pdf
index 45aab0c757..66a1457566 100644
--- a/macros/latex-dev/base/ltnews07.pdf
+++ b/macros/latex-dev/base/ltnews07.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews08.pdf b/macros/latex-dev/base/ltnews08.pdf
index 20e8980064..2732f77234 100644
--- a/macros/latex-dev/base/ltnews08.pdf
+++ b/macros/latex-dev/base/ltnews08.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews09.pdf b/macros/latex-dev/base/ltnews09.pdf
index 5c59f4537b..b81df70446 100644
--- a/macros/latex-dev/base/ltnews09.pdf
+++ b/macros/latex-dev/base/ltnews09.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews10.pdf b/macros/latex-dev/base/ltnews10.pdf
index 93cabf0b38..1fa4ff2997 100644
--- a/macros/latex-dev/base/ltnews10.pdf
+++ b/macros/latex-dev/base/ltnews10.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews11.pdf b/macros/latex-dev/base/ltnews11.pdf
index c569713011..33b9db87fc 100644
--- a/macros/latex-dev/base/ltnews11.pdf
+++ b/macros/latex-dev/base/ltnews11.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews12.pdf b/macros/latex-dev/base/ltnews12.pdf
index b0cebe5ef1..3df0f8da10 100644
--- a/macros/latex-dev/base/ltnews12.pdf
+++ b/macros/latex-dev/base/ltnews12.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews13.pdf b/macros/latex-dev/base/ltnews13.pdf
index 99a85c75db..9f250dda69 100644
--- a/macros/latex-dev/base/ltnews13.pdf
+++ b/macros/latex-dev/base/ltnews13.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews14.pdf b/macros/latex-dev/base/ltnews14.pdf
index e9c7b3c0e6..aeef5a6352 100644
--- a/macros/latex-dev/base/ltnews14.pdf
+++ b/macros/latex-dev/base/ltnews14.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews15.pdf b/macros/latex-dev/base/ltnews15.pdf
index 9cb9472821..e2df12335b 100644
--- a/macros/latex-dev/base/ltnews15.pdf
+++ b/macros/latex-dev/base/ltnews15.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews16.pdf b/macros/latex-dev/base/ltnews16.pdf
index 61ddf3036f..1eb4b41399 100644
--- a/macros/latex-dev/base/ltnews16.pdf
+++ b/macros/latex-dev/base/ltnews16.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews17.pdf b/macros/latex-dev/base/ltnews17.pdf
index 1136df63b6..d3c7bbda62 100644
--- a/macros/latex-dev/base/ltnews17.pdf
+++ b/macros/latex-dev/base/ltnews17.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews18.pdf b/macros/latex-dev/base/ltnews18.pdf
index 6b925fb64c..3f78dcfaeb 100644
--- a/macros/latex-dev/base/ltnews18.pdf
+++ b/macros/latex-dev/base/ltnews18.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews19.pdf b/macros/latex-dev/base/ltnews19.pdf
index e307c301b8..a5c96735c9 100644
--- a/macros/latex-dev/base/ltnews19.pdf
+++ b/macros/latex-dev/base/ltnews19.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews20.pdf b/macros/latex-dev/base/ltnews20.pdf
index 4115da16dd..fcf4ef9a2b 100644
--- a/macros/latex-dev/base/ltnews20.pdf
+++ b/macros/latex-dev/base/ltnews20.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews21.pdf b/macros/latex-dev/base/ltnews21.pdf
index 890e6ca687..948dec8917 100644
--- a/macros/latex-dev/base/ltnews21.pdf
+++ b/macros/latex-dev/base/ltnews21.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews22.pdf b/macros/latex-dev/base/ltnews22.pdf
index 9b46a67049..c7576c9e0e 100644
--- a/macros/latex-dev/base/ltnews22.pdf
+++ b/macros/latex-dev/base/ltnews22.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews23.pdf b/macros/latex-dev/base/ltnews23.pdf
index 6b95b99e63..513c215ff4 100644
--- a/macros/latex-dev/base/ltnews23.pdf
+++ b/macros/latex-dev/base/ltnews23.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews24.pdf b/macros/latex-dev/base/ltnews24.pdf
index 9100081fad..5d826a3aa1 100644
--- a/macros/latex-dev/base/ltnews24.pdf
+++ b/macros/latex-dev/base/ltnews24.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews25.pdf b/macros/latex-dev/base/ltnews25.pdf
index 24c36ca0b7..60f2c7f203 100644
--- a/macros/latex-dev/base/ltnews25.pdf
+++ b/macros/latex-dev/base/ltnews25.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews26.pdf b/macros/latex-dev/base/ltnews26.pdf
index bfda22ad97..4dce56adfa 100644
--- a/macros/latex-dev/base/ltnews26.pdf
+++ b/macros/latex-dev/base/ltnews26.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews27.pdf b/macros/latex-dev/base/ltnews27.pdf
index a4a4e355f6..483ff44824 100644
--- a/macros/latex-dev/base/ltnews27.pdf
+++ b/macros/latex-dev/base/ltnews27.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews28.pdf b/macros/latex-dev/base/ltnews28.pdf
index 3fd460e397..694668f4e7 100644
--- a/macros/latex-dev/base/ltnews28.pdf
+++ b/macros/latex-dev/base/ltnews28.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews28.tex b/macros/latex-dev/base/ltnews28.tex
index 71bdfc4711..6a683c83af 100644
--- a/macros/latex-dev/base/ltnews28.tex
+++ b/macros/latex-dev/base/ltnews28.tex
@@ -227,7 +227,7 @@ earlier than this release.
\subsection{BOM: byte order mark handling}
When using Unicode the first bytes of a file may be a, so called, BOM
-character (byte order mark) to indicate the byte oder used in the
+character (byte order mark) to indicate the byte order used in the
file. While this is not required with UTF-8 encoded files (where the
byte order is known) it is nevertheless allowed by the standard and
some editors add that byte sequence to the beginning of a file. In the
@@ -285,7 +285,7 @@ for this. For the programming level we also added
is defined. Unfortunately this had the side effect of \emph{defining}
the command to \verb|\relax| in the case that it had no definition.
The new release uses a modified definition
-(using extra testing possibilities available in \hologo{eTeX}. The new definition
+(using extra testing possibilities available in \hologo{eTeX}). The new definition
is more natural, however code that was relying on the side effect of the
command being tested being defined if it was previously undefined may have to add
\verb|\let\|\meta{command}\verb|\relax|.
diff --git a/macros/latex-dev/base/ltnews29.pdf b/macros/latex-dev/base/ltnews29.pdf
index 63b0467137..db198ebdd8 100644
--- a/macros/latex-dev/base/ltnews29.pdf
+++ b/macros/latex-dev/base/ltnews29.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews30.pdf b/macros/latex-dev/base/ltnews30.pdf
index bef0c7e194..5d045c4cf1 100644
--- a/macros/latex-dev/base/ltnews30.pdf
+++ b/macros/latex-dev/base/ltnews30.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews31.pdf b/macros/latex-dev/base/ltnews31.pdf
index 62024ac7f8..d4eea094cc 100644
--- a/macros/latex-dev/base/ltnews31.pdf
+++ b/macros/latex-dev/base/ltnews31.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews32.pdf b/macros/latex-dev/base/ltnews32.pdf
index c820928b65..7c8dc3fac7 100644
--- a/macros/latex-dev/base/ltnews32.pdf
+++ b/macros/latex-dev/base/ltnews32.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews32.tex b/macros/latex-dev/base/ltnews32.tex
index bd1ebffb10..fdf8211ef0 100644
--- a/macros/latex-dev/base/ltnews32.tex
+++ b/macros/latex-dev/base/ltnews32.tex
@@ -43,6 +43,7 @@
\providecommand\meta[1]{$\langle$\textit{#1}$\rangle$}
\providecommand\option[1]{\texttt{#1}}
\providecommand\env[1]{\texttt{#1}}
+\providecommand\Arg[1]{\texttt\{\meta{#1}\texttt\}}
\providecommand\XeTeX{\hologo{XeTeX}}
@@ -141,6 +142,51 @@ This document is under construction \ldots
+\section{Providing \pkg{xparse} in the format}
+
+The official interface in the \LaTeXe{} kernel for creating
+document-level commands has always been \cs{newcommand}. This was a
+big step forward from \LaTeX~2.09. However, it was still very limited
+in the types of command it can create: those taking at most one
+optional argument in square brackets, then zero or more mandatory
+arguments. Richer syntaxes required use of the \TeX{} \cs{def}
+primitive along with appropriate low-level macro programming.
+
+The \LaTeX{} team started work on a comprehensive document-command
+parser, \pkg{xparse}, in the late 1990s. In the past decade, the
+experimental ideas it provides have been carefully worked through and
+moved to a stable footing. As such, \pkg{xparse} is now used to define
+a very large number of document and package commands. It does this by
+providing a rich and self-consistent syntax to describe a wide range
+interfaces seen in \LaTeX{} packages.
+
+The ideas developed in \pkg{xparse} are now sufficiently well-tested
+that the majority can be transferred into the \LaTeX{} kernel. Thus
+the following commands have been added
+\begin{itemize}
+ \item \cs{NewDocumentCommand}, \cs{RenewDocumentCommand},
+ \cs{ProvideDocumentCommand}, \cs{DeclareDocumentCommand}
+ \item \cs{NewExpandableDocumentCommand}, \cs{RenewExpandableDocumentCommand},
+ \cs{ProvideExpandableDocumentCommand}, \cs{DeclareExpandableDocumentCommand}
+ \item \cs{NewDocumentEnvironment}, \cs{RenewDocumentEnvironment},
+ \cs{ProvideDocumentEnvironment}, \cs{DeclareDocumentEnvironment}
+ \item \cs{BooleanTrue} \cs{BooleanFalse}
+ \item \cs{IfBooleanTF}, \cs{IfBooleanT}, \cs{IfBooleanF}
+ \item \cs{IfNoValueTF}, \cs{IfNoValueT}, \cs{IfNoValueF}
+ \item \cs{IfValueTF}, \cs{IfValueT}, \cs{IfValueF}
+ \item \cs{SplitArgument}, \cs{SplitList}, \cs{TrimSpaces},
+ \cs{ProcessList}, \cs{ReverseBoolean}
+ \item \cs{GetDocumentCommandArgSpec}
+ \cs{GetDocumentEnvironmentArgSpec}
+\end{itemize}
+
+Most, but not all, of the argument types defined by \pkg{xparse} are
+now supported at the kernel level. In particular, the types
+\texttt{g}/\texttt{G}, \texttt{l} and \texttt{u} are \emph{not} provided by
+the kernel code; these are deprecated but still available by
+explicitly loading \pkg{xparse}. All other argument types \emph{are}
+now available directly within the \LaTeXe{} kernel.
+
\section{Other changes to the \LaTeX{} kernel}
@@ -149,7 +195,7 @@ This document is under construction \ldots
The \LaTeXe{} kernel defines the command \cs{symbol}, which allows
characters to be typeset by entering their `slot number'. With the
\LuaTeX{} and \XeTeX{} engines, these slot numbers can extend to very
-large values to accomodate Unicode characters in the upper Unicode
+large values to accommodate Unicode characters in the upper Unicode
planes (e.g., bold mathematical capital A is slot number
\texttt{"1D400} in hex or \texttt{119808} in decimal). The \XeTeX{}
engine did not allow \cs{symbol} in math mode for values above
@@ -158,23 +204,108 @@ $2^{16}$, and this limitation has now been lifted.
\githubissue{124}
+\subsection{Correct Unicode value of \cs{=y} (\=y)}
+
+The Unicode slot for \=y was incorrectly pointing to the slot for
+\=Y. This has been corrected.
+%
+\githubissue{326}
+
+\subsection{Add support for Unicode soft hyphens}
+
+For a long time, the UTF-8 option for \pkg{inputenc} made the Unicode
+soft hyphen character (U+00AD) an alias for the \LaTeX\ soft hyphen
+\cs{-}. The Unicode engines \XeTeX{} and \LuaTeX{} behaved
+different though: They either ignored U+00AD or interpreted it as an
+unconditional hyphen. This inconsistency is fixed now and \LaTeX{}
+always treats \texttt{U+00AD} as \cs{-}.
+%
+\githubissue{323}
+
+
+
+\subsection{Fix capital accents in Unicode engines}
+
+In Unicode engines the capital accents such as \cs{capitalcedilla},
+etc.\ have been implemented as trival short hands for the normal
+accents (because other than Computer Modern virtually no fonts support
+them), but that failed when \pkg{hyperref} got loaded. This has been
+corrected.
+%
+\githubissue{332}
+
+
+
+\subsection{Support \pkg{calc} in various kernel commands}
+
+The \cs{hspace}, \cs{vspace}, \cs{addvspace}, \cs{\textbackslash} and
+other commands simply passed their argument to a \TeX{} primitive to
+produce the necessary space. As a result it was impossible to specify
+anything other than a simple dimension value in such arguments. This
+has been changed, so that now \pkg{calc} syntax is also supported with
+these commands.
+%
+\githubissue{152}
+
+\subsection{Spaces in filenames of included files}
+
+File names containing spaces lead to unexpected results when used in
+the commands \cs{include} and \cs{includeonly}. This has now been
+fixed and the argument to \cs{include} can contain file name
+containing spaces. Leading or trailing spaces will be stripped off
+but spaces within the file name are kept. The argument to
+\cs{includeonly}, which is a comma-separated list of files to process,
+can also contain spaces with any leading and trailing spaces stripped
+from the individual filenames while the spaces \emph{in} the file
+names will remain intact.
+%
+\githubissue{217}
+
+
+
+\subsection{Set a non-zero \cs{baselineskip} in text scripts}
+
+As \cs{textsuperscript} and \cs{textsubscript} usually contain only a
+few characters on a single line the \cs{baselineskip} was set to
+zero. However, \pkg{hyperref} uses that value to determine the height
+of a link box which consequently came out far too small. This has
+been adjusted.
+%
+\githubissue{249}
+
+
\subsection{Spacing issues when using \cs{linethickness}}
In some circumstances the use of \cs{linethickness} introduced a
spurious space that shifted objects in a \texttt{picture} environments
to the right. This has been corrected.
%
-\githubissue{270}
+\githubissue{274}
+
+
+
+\subsection{Better support for the legacy series default interface}
+
+In the initial implementation of \LaTeX's font selection scheme (NFSS)
+changes to any default where always carried out by redefining some
+commands, e.g., \cs{seriesdefault}. In 2019 we introduced various
+extensions and with it new methods of customising certain parts of
+NFSS, e.g., the recommended way for changing the series default(s) is
+now through \cs{DeclareFontSeriesDefault}~\cite{32:ltnews31}. In this
+release we improved the support for legacy documents using the old
+method was improved to cover additional edge cases.
+%
+\githubissue[s]{306,315}
-\subsection{Better support for uncommon font series defaults}
+\subsection{Support for uncommon font series defaults}
If a font family was set up with fairly unusual font series defaults,
e.g.,
\begin{verbatim}
-\renewcommand\ttdefault{lmvtt}
-\DeclareFontSeriesDefault[tt]{md}{lm}
-\DeclareFontSeriesDefault[tt]{bf}{bm}
+ \renewcommand\ttdefault{lmvtt}
+ \DeclareFontSeriesDefault[tt]{md}{lm}
+ \DeclareFontSeriesDefault[tt]{bf}{bm}
\end{verbatim}
then a switch between the main document families, e.g.,
\verb=\ttfamily...\rmfamily= did not always correctly continued
@@ -185,6 +316,49 @@ been corrected.
\githubissue{291}
+\subsection{Checking the current font series context}
+
+Sometimes it is necessary to define commands that act differently when
+used in bold context (e.g., inside \cs{textbf}. Now that it is
+possible in \LaTeX{} to specify different \enquote{\texttt{bf}}
+defaults based for each of the three meta families (\texttt{rm},
+\texttt{sf} and \texttt{tt}) via \cs{DeclareFontSeriesDefault}, it is
+not any longer easy to answer the question \enquote{am I typsetting in
+ a bold context?}. To help with this problem a new command was provided:
+\begin{quote}
+ \cs{IfFontSeriesContextTF}\Arg{context}\\
+ \hspace*{4em} \Arg{true code}\Arg{false code}
+\end{quote}
+The \meta{context} can be either \texttt{bf} (bold) or \texttt{md}
+(medium) and depending on whether or not the current font is
+recognized as being selected through \cs{bfseries} or \cs{mdseries}
+the \meta{true code} or \meta{false code} is executed.
+As an example
+\begin{verbatim}
+\usepackage{bm} % (bold math)
+\newcommand\vbeta{\IfFontSeriesContextTF{bf}%
+ {\ensuremath{\bm{\beta}}}%
+ {\ensuremath{\beta}}}
+\end{verbatim}
+This way you can write \cs{vbeta}\texttt{-isotopes} and if used in a
+heading it comes out in a bolder version.
+%
+\githubissue{336}
+
+
+\subsection{Avoid spurious package option warning}
+
+When a package is loaded with a number of options, say \texttt{X},
+\texttt{Y} and \texttt{Z}, and then later another loading attempt was
+made with a subset of the options or no options, it was possible that
+you got an error message that option \texttt{X} is not known to the
+package. This obviously incorrect error was due to some timing issue
+where the list of available options got lost prematurely. This has now
+been fixed.
+%
+\githubissue{22}
+
+
\subsection{Adjusting \texttt{fleqn}}
In \pkg{amsmath} the \cs{mathindent} parameter used with the
@@ -193,7 +367,7 @@ it to a value such as \texttt{1em minus 1em}, i.e., so the the normal
indentation can be reduced in case of very wide math displays.
This is now also supported by the \LaTeX{} standard classes.
-In addition a compressable space between formula and equation number
+In addition a compressible space between formula and equation number
in the \texttt{equation} environment got added when the \texttt{fleqn}
option is used so that a very wide formula doesn't bump into the
equation number.
@@ -201,6 +375,121 @@ equation number.
\githubissue{252}
+\subsection{Provide \cs{clap}}
+
+\LaTeX{} has inherited \cs{llap} and \cs{rlap} from plain \TeX{}
+(zero-sized boxes whose content sticks out to the left or right,
+respectively) but there isn't a corresponding \cs{clap} command that
+centers the material. This missing command was added by several
+addon packages, e.g., \pkg{mathtools}, and has now been added to the
+kernel.
+
+
+\subsection{Fix to legacy math alphabet interface}
+
+When using the \LaTeX{}~2.09 legacy math alphabet interface, e.g.,
+\verb=$\sf -1$= instead of \verb=$\mathsf{-1}$=, an extra math Ord atom
+was added to the formula in case the math alphabet was used for the first
+time. In some cases this math atom would change the spacing, e.g.,
+change the unary minus sign into a binary minus in the above example. This
+has finally be fixed.
+%
+\gnatsissue{latex}{3357}
+
+
+
+\subsection{Added tests for format, package and class dates}
+
+To implement compatibility code or to ensure that certain features are
+available it is helpful and often necessary to check the date of the
+format or that of a package or class and execute different code based
+on the result. For that \LaTeX\ only had some internal commands
+(\cs{@ifpackagelater} and \cs{@ifclasslater}) for testting package or
+class names but nothing really for testing the format date. For the
+latter one had to resort to some obscure command \cs{@ifl@t@r} that,
+given its cryptic name, was clearly never intended for use even in
+package or class code. Furthermore, even the existing interface
+commands where defective as they are testing for \enquote{equal or
+ later} and not for \enquote{later} as their names indicate.
+
+We have therefore introduced three new CamelCase commands as the
+official interface for such tests
+\begin{quote}
+ \cs{IfFormatAtLeastTF}\Arg{date}\\
+ \hspace*{4em} \Arg{true code}\Arg{false code}
+\end{quote}
+and for package and class tests
+\begin{quote}
+ \cs{IfClassAtLeastTF}\Arg{class name}\Arg{date}\\
+ \hspace*{4em} \Arg{true code}\Arg{false code} \\
+ \cs{IfPackageAtLeastTF}\Arg{package name}\Arg{date}\\
+ \hspace*{4em} \Arg{true code}\Arg{false code}
+\end{quote}
+For compatibility reasons the legacy commands remain available, but we
+suggest to replace them over time and use the new interfaces in new
+code.
+%
+\githubissue{186}
+
+
+\subsection{Avoid a problem with \cs{verb}}
+
+If a user typed \verb*=\verb !~! foo= instead of
+\verb*=\verb!~! foo= by mistake, then surprisingly the result was
+``\verb=!~!=foo'' without any warning or error.
+%
+What happened was that the
+\verb*= = became the argument delimiter due to the rather complex
+processing done by \cs{verb} to render verbatim. This now got
+fixed and spaces directly following the command \cs{verb} or \cs{verb*}
+are ignored as elsewhere.
+%
+\githubissue{327}
+
+
+\subsection{Record the counter name stepped by \cs{refstepcounter}}
+
+\cs{refstepcounter} now stores the name of counter in \cs{\@currentcounter}.
+This allows packages like \pkg{zref} and \pkg{hyperref} to store the name without
+having to patch \cs{refstepcounter}.
+%
+\githubissue{300}
+
+
+\subsection{Add support for Unicode soft hyphens}
+
+For a long time, the UTF-8 option for \pkg{inputenc} made the Unicode
+soft hyphen character (U+00AD) an alias for the \LaTeX\ soft hyphen
+\cs{-}. The Unicode engines \XeTeX{} and \LuaTeX{} behaved
+different though: They either ignored U+00AD or interpreted it as an
+unconditional hyphen. This inconsistency is fixed now and \LaTeX{}
+always treats \texttt{U+00AD} as \cs{-}.
+%
+\githubissue{323}
+
+
+
+\subsection{Native Lua\TeX\ behaviour for \cs{-}}
+
+\LaTeX\ changes \cs{-} to add a discretionary hyphen even if \cs{hyphenchar}
+is set to $-1$. This change is not necessary under Lua\TeX\ because in there
+\cs{-} is not affected by \cs{hyphenchar} in the first place. Therefore this
+behaviour has been changed to ensure that Lua\TeX's (language specific)
+hyphenation characters are respected by \cs{-}.
+
+
+
+\subsection{Allow \cs{par} commands inside \cs{typeout}}
+
+\cs{typeout} used to choke when seeing an empty line or a \cs{par}
+command in its argument. However, sometimes it is used to display
+arbitrary user input or code (wrapped, for example, in
+\cs{unexpanded}) which may contain explicit \cs{par} commands. This is
+now allowed.
+%
+\githubissue{335}
+
+
\section{Changes to packages in the \pkg{graphics} category}
@@ -215,7 +504,7 @@ to the log file, because of a typo in the check. This has been corrected.
\section{Changes to packages in the \pkg{tools} category}
-\subsection{Support stretchable glue in \texttt{w}-columns}
+\subsection{\pkg{array}: Support stretchable glue in \texttt{w}-columns}
If stretchable glue, e.g., \cs{dotfill}, is used in \env{tabular}
columns made with the \pkg{array} package, it stretches as it would in
@@ -227,19 +516,118 @@ types in this respect.
%
\githubissue{270}
+\subsection{\pkg{array}: Use math mode for \texttt{w} and
+ \texttt{W}-cells in \env{array}}
+
+The \texttt{w} and \texttt{W}-columns are LR-columns very similar to
+\texttt{l}, \texttt{c} and \texttt{r}. It is therefore natural to
+expect their cell content to be typeset in math mode instead of text
+mode if they are used in an \env{array} environment. This has now
+been adjusted. Note that this is a breaking change in version v2.5!
+If you have used \texttt{w} or \texttt{W}-columns in older documents
+either add \texttt{\detokenize{>{$}...<{$}}} for such columns or
+remove the \texttt{\$} signs in the cells. Alternatively, you can roll
+back to the old version by loading \pkg{array} with
+\begin{verbatim}
+ \usepackage{array}[=v2.4]
+\end{verbatim}
+in such documents.
+%
+\githubissue{297}
+
+\subsection{\pkg{xr}: Support for spaces in filenames}
+The commannd \cs{externaldocument}, provided by \pkg{xr}, now also
+supports filenames with spaces, just like \cs{include} and
+\cs{includeonly}.
+%
+\githubissue{223}
\section{Changes to packages in the \pkg{amsmath} category}
\subsection{Placement corrections for two accent commands}
The accent commands \cs{dddot} and \cs{ddddot} (producing triple and
-quatruple dot accents) moved the base character vertically in certain
+quadruple dot accents) moved the base character vertically in certain
situations if it was a single glyph,
e.g., \verb=$Q \dddot{Q}$=
were not at the same baseline. This has been corrected.
%
\githubissue{126}
+\subsection{Fixes to \texttt{aligned} and \texttt{gathered}}
+
+The environments \texttt{aligned} and \texttt{gathered} have a
+trailing optional argument to specify the vertical position of the
+environment with respect to the rest of the line. Allowed values are
+\texttt{t}, \texttt{b} and \texttt{c} but the code only tested for
+\texttt{b} and \texttt{t} and assumed anything else is must be
+\texttt{c}. As a result, a formula starting with a bracket group would
+get mangled without warning---the group being dropped and interpreted
+as a request for centering. After more than 25 years this has now been
+corrected. If such a group is found a warning is given and the data is
+processed as part of the formula.
+%
+\githubissue{5}
+
+
+\section{Changes to the \pkg{babel} package}
+
+Multilingual typesetting has much evolved in the past years, and
+\pkg{babel}, like \LaTeX{} itself, has followed the footsteps of
+Unicode and the W3C consortiums to produce proper output in many
+languages.
+
+Furthermore, the traditional model to define and select languages
+(which can be called \enquote{vertical}), based on closed files, which
+is still the preferred one in monolingual documents, is being extended
+with a new model (which can be called \enquote{horizontal}) based on
+\emph{services} provided by \pkg{babel}, which allows to define and
+redefine locales with the help of simple |ini| files based on
+key/value pairs. Babel provides about of 250 of these files, which
+have been generated with the help of the Unicode Common Language Data
+Repository.
+
+Thanks to the recent advances in \texttt{lualatex} and
+\pkg{luaotfload}, babel currently provides \emph{services} for bidi
+typesetting, line breaking for South East Asian and CJK scripts,
+non-standard hyphenation (like ff to ff-f), alphabetic and additive
+counters, automatic selection of fonts and languages based on the
+script, etc. This means babel can be used to typeset such a variety of
+languages as Russian, Arabic, Hindi, Thai, Japanese, Bangla, Amharic,
+Greek, and many others.
+
+And since these \texttt{ini} files they are easily parsable, they can
+serve as a source for other packages.
+
+For further details take a look at the \pkg{babel}
+documentation~\cite{32:babel}.
+
+
+\begin{thebibliography}{9}
+
+\fontsize{9.3}{11.3}\selectfont
+
+\bibitem{32:ltnews31} \LaTeX{} Project Team:
+ \emph{\LaTeXe{} news 31}.\\
+ \url{https://latex-project.org/news/latex2e-news/ltnews31.pdf}
+
+\bibitem{32:site-doc}
+ \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\
+ \url{https://latex-project.org/help/documentation/}
+
+\bibitem{32:issue-tracker}
+ \emph{\LaTeX{} issue tracker}.
+ \url{https://github.com/latex3/latex2e/issues/}
+
+\bibitem{32:babel}
+ Javier Bezos and Johannes Braams.
+ \emph{Babel --- Localization and internationalization}.\\
+ \url{https://www.ctan.org/pkg/babel}
+
+\end{thebibliography}
+
+
+
\end{document}
diff --git a/macros/latex-dev/base/ltoutenc.dtx b/macros/latex-dev/base/ltoutenc.dtx
index f3c19000ed..8831b5655f 100644
--- a/macros/latex-dev/base/ltoutenc.dtx
+++ b/macros/latex-dev/base/ltoutenc.dtx
@@ -37,14 +37,14 @@
%<TS1>\ProvidesFile{ts1enc.def}[2001/06/05 v3.0e (jk/car/fm)
%<TU>\ProvidesFile{tuenc.def}
%<package>\ProvidesPackage{fontenc}
-%<OT1|T1|OMS|OML|OT4|TU|package> [2020/02/11 v2.0o
+%<OT1|T1|OMS|OML|OT4|TU|package> [2020/04/22 v2.0p
%<OT1|T1|OMS|OML|OT4|TS1|TU> Standard LaTeX file]
%<package> Standard LaTeX package]
%
%<*driver>
% \fi
\ProvidesFile{ltoutenc.dtx}
- [2020/02/11 v2.0o LaTeX Kernel (font encodings)]
+ [2020/04/22 v2.0p LaTeX Kernel (font encodings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutenc.dtx}
@@ -188,6 +188,8 @@
% like.}
% \changes{v1.99m}{2015/02/21}
% {Removed autoload code}
+% \changes{v2.0p}{2020/04/22}
+% {corrected \=y unicode value in tuenc.def}
%
%
% \section{Font encodings}
@@ -3370,7 +3372,7 @@
\DeclareUnicodeComposite{\textcommabelow}{T}{"021A}
\DeclareUnicodeComposite{\textcommabelow}{t}{"021B}
\DeclareUnicodeComposite{\=} {Y}{"0232}
-\DeclareUnicodeComposite{\=} {y}{"0232}
+\DeclareUnicodeComposite{\=} {y}{"0233}
\DeclareUnicodeComposite{\.} {B}{"1E02}
\DeclareUnicodeComposite{\.} {b}{"1E03}
\DeclareUnicodeComposite{\d} {B}{"1E04}
@@ -3601,7 +3603,7 @@
\xdef\@fontenc@load@list{\@fontenc@load@list
\@elt{\csname opt@fontenc.sty\endcsname}}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\global\expandafter\let\csname ver@fontenc.sty\endcsname\relax
\global\expandafter\let\csname opt@fontenc.sty\endcsname\relax
diff --git a/macros/latex-dev/base/ltpictur.dtx b/macros/latex-dev/base/ltpictur.dtx
index 4018adba59..bdac744e83 100644
--- a/macros/latex-dev/base/ltpictur.dtx
+++ b/macros/latex-dev/base/ltpictur.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltpictur.dtx}
- [2020/02/14 v1.1n LaTeX Kernel (Picture Mode)]
+ [2020/05/12 v1.1o LaTeX Kernel (Picture Mode)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltpictur.dtx}
@@ -191,6 +191,7 @@
% \end{macro}
% \end{macro}
%
+% \begin{environment}{picture}
% \begin{macro}{\picture}
% \changes{v0.1c}{1994/04/28}{(DPC) Ignore spaces before (}
% |#1| should be white space.
@@ -229,6 +230,7 @@
\mbox{\box\@picbox}}
% \end{macrocode}
% \end{macro}
+% \end{environment}
%
% In the definitions of |\put| and |\multiput|, |\hskip| was replaced by
% |\kern| just in case arg |#3| = ``plus''. (Bug detected by Don Knuth.
@@ -275,9 +277,11 @@
% \begin{macro}{\thinlines}
% \begin{macro}{\thicklines}
% \begin{macrocode}
-\DeclareRobustCommand\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
+\DeclareRobustCommand\thinlines{\let\@linefnt\tenln
+ \let\@circlefnt\tencirc
\@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth}
-\DeclareRobustCommand\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
+\DeclareRobustCommand\thicklines{\let\@linefnt\tenlnw
+ \let\@circlefnt\tencircw
\@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth}
% \end{macrocode}
% \end{macro}
@@ -333,8 +337,24 @@
% \end{macro}
%
% \begin{macro}{\@istackcr}
+% \changes{v1.1o}{2020/04/21}{Support calc syntax (gh/152)}
% \begin{macrocode}
-\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@istackcr}{\shortstack calc support}%
+\def\@istackcr[#1]{\cr\noalign{\@vspace@calcify{#1}}\ignorespaces}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@istackcr}{\shortstack calc support}%
+%<latexrelease>
+%<latexrelease>\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -1341,7 +1361,7 @@
% \end{macro}
%
% \begin{macro}{\@xdim}
-% \begin{macro}{\yxdim}
+% \begin{macro}{\@ydim}
% Length registers.
% \begin{macrocode}
\newdimen\@xdim
diff --git a/macros/latex-dev/base/ltspace.dtx b/macros/latex-dev/base/ltspace.dtx
index 16d7dcb43a..1a672c6455 100644
--- a/macros/latex-dev/base/ltspace.dtx
+++ b/macros/latex-dev/base/ltspace.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltspace.dtx}
- [2019/11/02 v1.3k LaTeX Kernel (spacing)]
+ [2020/05/06 v1.3n LaTeX Kernel (spacing)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltspace.dtx}
@@ -63,6 +63,8 @@
% \changes{v1.2r}{1996/07/27}{Correct documentation of problems}
% \changes{v1.2w}{1998/08/17}{Documentation fixes.}
% \changes{v1.3j}{2019/08/27}{Make various commands robust}
+% \changes{v1.3l}{2020/03/07}{Moved \cs{thinspace}, \cs{negthinspace}
+% and \cs{,} to ltmath.dtx (gh/303)}
%
%
% \section{Spacing}
@@ -428,6 +430,37 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
+%
+%
+%
+% \begin{macro}{\@vspace@calcify}
+% Helper command to produce a \cs{vskip} that is first run through
+% \cs{setlength}. This way the \texttt{calc} package can operate on
+% the argument value.
+% \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@vspace@calcify}{Add calc support}%
+\def\@vspace@calcify#1{\begingroup\setlength\skip@{#1}\vskip\skip@\endgroup}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@vspace@calcify}{Add calc support}%
+%<latexrelease>
+%<latexrelease>\let\@vspace@calcify\@undefined
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+%
+%
+
+
% \begin{macro}{\newline}
% A simple form of the `normal' definition of |\\|.
% \changes{v1.2v}{1997/05/07}{Made completely robust.}
@@ -445,12 +478,31 @@
% \end{macro}
%
% \begin{macro}{\@newline}
+% \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@newline}{\newline calc support}%
\def\@newline[#1]{\let \reserved@e \vadjust
- \@gnewline {\vskip #1}}
+ \@gnewline {\@vspace@calcify{#1}}}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@newline}{\newline calc support}%
+%<latexrelease>
+%<latexrelease>\def\@newline[#1]{\let \reserved@e \vadjust
+%<latexrelease> \@gnewline {\vskip #1}}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
+%
+%
% \begin{macro}{\@gnewline}
% \changes{v1.2u}{1996/10/29}{Added macro}
% The |\nobreak| added to prevent null lines when |\\|
@@ -518,7 +570,7 @@
% |\begin{@float}| \ldots |\end{@float}|
% that want to be invisible --- i.e.,
% not leave any extra space when used in the middle of text. Such
-% a macro should begin with |\@bsphack| and end with |\@esphack|
+% a macro should begin with |\@bsphack| and end with |\@esphack|.
% The macro in question should not create any text, nor change the
% mode.
%
@@ -823,20 +875,48 @@
% \changes{v1.2c}{1994/11/13}{Recorrected error message}
% Add vertical space taking into account space already added, as
% described above.
+% \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\addvspace}{\addvspace calc support}%
\def\addvspace#1{%
\ifvmode
\if@minipage\else
\ifdim \lastskip =\z@
- \vskip #1\relax
+ \@vspace@calcify{#1}%
\else
- \@tempskipb#1\relax
+ \setlength\@tempskipb{#1}%
\@xaddvskip
\fi
\fi
\else
\@noitemerr
\fi}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\addvspace}{\addvspace calc support}%
+%<latexrelease>
+%<latexrelease>\def\addvspace#1{%
+%<latexrelease> \ifvmode
+%<latexrelease> \if@minipage\else
+%<latexrelease> \ifdim \lastskip =\z@
+%<latexrelease> \vskip #1\relax
+%<latexrelease> \else
+%<latexrelease> \@tempskipb#1\relax
+%<latexrelease> \@xaddvskip
+%<latexrelease> \fi
+%<latexrelease> \fi
+%<latexrelease> \else
+%<latexrelease> \@noitemerr
+%<latexrelease> \fi}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -938,6 +1018,8 @@
% \end{macrocode}
% \end{macro}
%
+%
+%
% \begin{macro}{\vspace}
% \changes{v1.2m}{1996/01/20}{Made robust}
% \begin{macro}{\@vspace}
@@ -957,14 +1039,25 @@
% \end{itemize}
% \begin{macrocode}
\DeclareRobustCommand\vspace{\@ifstar\@vspacer\@vspace}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@vspace}{Support calc in \vspace}%
+% \end{macrocode}
+% We support calc syntax in the argument and therefore use \cs{setlength}.
+% \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)}
+% \begin{macrocode}
\def\@vspace #1{%
\ifvmode
- \vskip #1
+ \@vspace@calcify{#1}%
\vskip\z@skip
\else
\@bsphack
\vadjust{\@restorepar
- \vskip #1
+ \@vspace@calcify{#1}%
\vskip\z@skip
}%
\@esphack
@@ -977,7 +1070,7 @@
\dimen@\prevdepth
\hrule \@height\z@
\nobreak
- \vskip #1
+ \@vspace@calcify{#1}%
\vskip\z@skip
\prevdepth\dimen@
\else
@@ -985,10 +1078,46 @@
\vadjust{\@restorepar
\hrule \@height\z@
\nobreak
- \vskip #1
+ \@vspace@calcify{#1}%
\vskip\z@skip}%
\@esphack
\fi}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@vspace}{Support calc in \vspace}%
+%<latexrelease>
+%<latexrelease>\def\@vspace #1{%
+%<latexrelease> \ifvmode
+%<latexrelease> \vskip #1
+%<latexrelease> \vskip\z@skip
+%<latexrelease> \else
+%<latexrelease> \@bsphack
+%<latexrelease> \vadjust{\@restorepar
+%<latexrelease> \vskip #1
+%<latexrelease> \vskip\z@skip
+%<latexrelease> }%
+%<latexrelease> \@esphack
+%<latexrelease> \fi}
+%<latexrelease>\def\@vspacer#1{%
+%<latexrelease> \ifvmode
+%<latexrelease> \dimen@\prevdepth
+%<latexrelease> \hrule \@height\z@
+%<latexrelease> \nobreak
+%<latexrelease> \vskip #1
+%<latexrelease> \vskip\z@skip
+%<latexrelease> \prevdepth\dimen@
+%<latexrelease> \else
+%<latexrelease> \@bsphack
+%<latexrelease> \vadjust{\@restorepar
+%<latexrelease> \hrule \@height\z@
+%<latexrelease> \nobreak
+%<latexrelease> \vskip #1
+%<latexrelease> \vskip\z@skip}%
+%<latexrelease> \@esphack
+%<latexrelease> \fi}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1094,17 +1223,6 @@
% \end{macrocode}
%
%
-% \begin{macro}{\,}
-% Used in paragraph mode produces a |\thinspace|. It has the
-% ordinary definition in math mode. Useful for quotes inside quotes,
-% as in |``\,`Foo', he said.''|
-% \changes{v1.0o}{1994/05/11}{Use \cs{DeclareRobustCommand}. ASAJ.}
-% \begin{macrocode}
-\DeclareRobustCommand{\,}{%
- \relax\ifmmode\mskip\thinmuskip\else\thinspace\fi
-}
-% \end{macrocode}
-% \end{macro}
%
% \begin{macro}{\@}
% Placed before a '.', makes it a sentence-ending period. Does the
@@ -1142,20 +1260,37 @@
% \changes{LaTeX2e}{1993/08/05}
% {(RmS) Removed superfluous \cs{leavevmode} in \cs{@hspace} and
% \cs{@hspacer}, as suggested by CAR.}
+% \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)}
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@hspace}{Support calc with \hspace}%
+\def\@hspace#1{\begingroup\setlength\skip@{#1}\hskip\skip@\endgroup}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
% \begin{macrocode}
-\def\@hspace#1{\hskip #1\relax}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@hspace}{Support calc with \hspace}%
+
+%<latexrelease>
+%<latexrelease>\def\@hspace#1{\hskip #1\relax}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}{\@hspacer}
-% extra |\hskip 0pt| added 1985/17/12 to guard
+% Extra |\hskip 0pt| added 1985/17/12 to guard
% against a following |\unskip|
% |\relax| added 13 Oct 88 for usual \TeX\ lossage
% replaced both changes by |\hskip\z@skip| 27 Nov 91
% \begin{macrocode}
\def\@hspacer#1{\vrule \@width\z@\nobreak
- \hskip #1\hskip \z@skip}
+ \@hspace{#1}\hskip \z@skip}
% \end{macrocode}
% \end{macro}
%
@@ -1184,19 +1319,12 @@
%<latexrelease> {\thinspace}{Start LR-mode}%
% \end{macrocode}
%
-%
-% \begin{macro}{\thinspace}
-% \begin{macro}{\negthinspace}
% \begin{macro}{\enspace}
% \changes{v1.3h}{2018/09/24}{Start LR-mode if necessary (git/49)}
% \begin{macrocode}
-\DeclareRobustCommand\thinspace{\leavevmode@ifvmode\kern .16667em }
-\DeclareRobustCommand\negthinspace{\leavevmode@ifvmode\kern-.16667em }
\DeclareRobustCommand\enspace{\leavevmode@ifvmode\kern.5em }
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macro}{\leavevmode@ifvmode}
% Leave vmode but only if we are really in vmode, otherwise the
@@ -1234,6 +1362,18 @@
% \end{macro}
% \end{macro}
%
+% \changes{v1.3n}{2020/05/06}{Made softhyphen active in TU engines}
+%
+% For Unicode engines, make the Unicode soft hyphen an active
+% character defined as \cs{-}.
+%
+% \begin{macrocode}
+\ifx\Umathcode\@undefined\else
+ \catcode "AD=13
+ \def^^ad{\-}
+\fi
+% \end{macrocode}
+%
% \begin{macro}{\obeycr}
% \begin{macro}{\restorecr}
% The following definitions will probably get deleted or moved to
diff --git a/macros/latex-dev/base/lttab.dtx b/macros/latex-dev/base/lttab.dtx
index 47cf4a6618..dedd9e5d37 100644
--- a/macros/latex-dev/base/lttab.dtx
+++ b/macros/latex-dev/base/lttab.dtx
@@ -31,7 +31,7 @@
%%% From File: lttab.dtx
%<*driver>
% \fi
-\ProvidesFile{lttab.dtx}[2019/10/07 v1.1q LaTeX Kernel (Columns)]
+\ProvidesFile{lttab.dtx}[2020/04/24 v1.1r LaTeX Kernel (Columns)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{lttab.dtx}
@@ -475,11 +475,28 @@
% \end{macro}
%
% \begin{macro}{\@itabcr}
+% \changes{v1.1r}{2020/04/21}{Support calc syntax (gh/152)}
% \begin{macrocode}
-\def\@itabcr[#1]{\vskip #1\@startline\ignorespaces}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@itabcr}{Tabbing calc syntax}%
+\def\@itabcr[#1]{\@vspace@calcify{#1}\@startline\ignorespaces}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@itabcr}{Tabbing calc syntax}%
+%<latexrelease>
+%<latexrelease>\def\@itabcr[#1]{\vskip #1\@startline\ignorespaces}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
%
%
+% \begin{environment}{tabbing}
% \begin{macro}{\tabbing}
% \changes{v1.1f}{1995/10/23}{(CAR)Make \cs{@hightab} consistently a
% local variable}
@@ -513,6 +530,8 @@
\@stopline\ifnum\@tabpush >\z@ \@badpoptabs \fi\endtrivlist}
% \end{macrocode}
% \end{macro}
+% \end{environment}
+%
%
% \begin{macro}{\@rtab}
% Omitted |\global| added to |\@rtab| 17 Jun 86
@@ -815,6 +834,7 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{environment}{array}
% \begin{macro}{\array}
% \begin{macrocode}
\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz
@@ -822,6 +842,7 @@
\let\\\@arraycr\let\@halignto\@empty\@tabarray}
% \end{macrocode}
% \end{macro}
+% \end{environment}
%
% \begin{macro}{\endarray}
% \begin{macro}{\endtabular}
@@ -835,11 +856,13 @@
% \end{macro}
% \end{macro}
%
+% \begin{environment}{tabular}
% \begin{macro}{\tabular}
% \begin{macrocode}
\def\tabular{\let\@halignto\@empty\@tabular}
% \end{macrocode}
% \end{macro}
+% \end{environment}
%
% \begin{macro}{\tabular*}
% \changes{v1.1j}{1998/05/18}{Use \cs{setlength}, so that
@@ -1003,8 +1026,24 @@
% \end{macro}
%
% \begin{macro}{\@yargarraycr}
+% \changes{v1.1r}{2020/04/21}{Support calc syntax (gh/152)}
% \begin{macrocode}
-\def\@yargarraycr#1{\cr\noalign{\vskip #1}}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@yargarraycr}{tabular support calc syntax}%
+\def\@yargarraycr#1{\cr\noalign{\@vspace@calcify{#1}}}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@yargarraycr}{tabular support calc syntax}%
+%<latexrelease>
+%<latexrelease>\def\@yargarraycr#1{\cr\noalign{\vskip #1}}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex-dev/base/lttextcomp.dtx b/macros/latex-dev/base/lttextcomp.dtx
index dc2c2c49c7..3b6231dafd 100644
--- a/macros/latex-dev/base/lttextcomp.dtx
+++ b/macros/latex-dev/base/lttextcomp.dtx
@@ -33,7 +33,7 @@
%
%
\ProvidesFile{lttextcomp.dtx}
- [2020/02/20 v1.0c LaTeX Kernel (text companion symbols)]
+ [2020/04/29 v1.0d LaTeX Kernel (text companion symbols)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -565,24 +565,25 @@
%
% In Unicode engines we just execute the simple accents:
% \changes{v1.0c}{2020/02/10}{Use \cs{@tabacckludge} for tabbing where necessary (gh/271)}
+% \changes{v1.0d}{2020/04/29}{Make all captial accents text commands for hyperref (gh/332)}
% \begin{macrocode}
\else
- \def\capitalacute{\@tabacckludge'}
- \def\capitalbreve{\u}
- \def\capitalcaron{\v}
- \def\capitalcedilla{\c}
- \def\capitalcircumflex{\^}
- \def\capitaldieresis{\"}
- \def\capitaldotaccent{\.}
- \def\capitalgrave{\@tabacckludge`}
- \def\capitalhungarumlaut{\H}
- \def\capitalmacron{\@tabacckludge=}
- \def\capitalnewtie{\t}
- \def\capitalogonek{\k}
- \def\capitalring{\r}
- \def\capitaltie{\t}
- \def\capitaltilde{\~}
- \def\newtie{\t}
+ \DeclareTextCommandDefault\capitalacute{\@tabacckludge'}
+ \DeclareTextCommandDefault\capitalbreve{\u}
+ \DeclareTextCommandDefault\capitalcaron{\v}
+ \DeclareTextCommandDefault\capitalcedilla{\c}
+ \DeclareTextCommandDefault\capitalcircumflex{\^}
+ \DeclareTextCommandDefault\capitaldieresis{\"}
+ \DeclareTextCommandDefault\capitaldotaccent{\.}
+ \DeclareTextCommandDefault\capitalgrave{\@tabacckludge`}
+ \DeclareTextCommandDefault\capitalhungarumlaut{\H}
+ \DeclareTextCommandDefault\capitalmacron{\@tabacckludge=}
+ \DeclareTextCommandDefault\capitalnewtie{\t}
+ \DeclareTextCommandDefault\capitalogonek{\k}
+ \DeclareTextCommandDefault\capitalring{\r}
+ \DeclareTextCommandDefault\capitaltie{\t}
+ \DeclareTextCommandDefault\capitaltilde{\~}
+ \DeclareTextCommandDefault\newtie{\t}
\fi
% \end{macrocode}
%
diff --git a/macros/latex-dev/base/ltvers.dtx b/macros/latex-dev/base/ltvers.dtx
index ed2abe1088..dd39a67896 100644
--- a/macros/latex-dev/base/ltvers.dtx
+++ b/macros/latex-dev/base/ltvers.dtx
@@ -115,7 +115,7 @@
{2020-10-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{-5}
+\def\patch@level{-6}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/macros/latex-dev/base/ltx3info.pdf b/macros/latex-dev/base/ltx3info.pdf
index b0b6c36690..cee525e113 100644
--- a/macros/latex-dev/base/ltx3info.pdf
+++ b/macros/latex-dev/base/ltx3info.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltxdoc.pdf b/macros/latex-dev/base/ltxdoc.pdf
index f7d0cc4d62..ed04747867 100644
--- a/macros/latex-dev/base/ltxdoc.pdf
+++ b/macros/latex-dev/base/ltxdoc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltxref.dtx b/macros/latex-dev/base/ltxref.dtx
index c20a324558..9818757149 100644
--- a/macros/latex-dev/base/ltxref.dtx
+++ b/macros/latex-dev/base/ltxref.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltxref.dtx}
- [2019/09/16 v1.1m LaTeX Kernel (Cross Referencing)]
+ [2020/05/07 v1.1n LaTeX Kernel (Cross Referencing)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltxref.dtx}
@@ -311,14 +311,16 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2019/10/01}%
-%<latexrelease> {\refstepcounter}{Add \labelformat and \Ref}%
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\refstepcounter}{Add \@currentcounter}%
% \end{macrocode}
%
% \begin{macro}{\refstepcounter}
% Step the counter and allow for labels to point to its current value.
+% \changes{v1.1n}{2020/05/05}{record the counter name in \cs{@currentcounter}}
% \begin{macrocode}
\def\refstepcounter#1{\stepcounter{#1}%
+ \edef\@currentcounter{#1}%
\protected@edef\@currentlabel
% \end{macrocode}
% By generating the second csname first the |\p@...| command can
@@ -381,6 +383,16 @@
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2019/10/01}%
+%<latexrelease> {\refstepcounter}{Add \labelformat and \Ref}%
+%<latexrelease>\def\refstepcounter#1{\stepcounter{#1}%
+%<latexrelease> \protected@edef\@currentlabel
+%<latexrelease> {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
+%<latexrelease>}
+%<latexrelease>\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1}
+%<latexrelease>\DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}%
+%<latexrelease> \expandafter\MakeUppercase\@tempa}
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\refstepcounter}{Add \labelformat and \Ref}%
%<latexrelease>
diff --git a/macros/latex-dev/base/makeindx.pdf b/macros/latex-dev/base/makeindx.pdf
index d6c2172b6e..fc3f0bb507 100644
--- a/macros/latex-dev/base/makeindx.pdf
+++ b/macros/latex-dev/base/makeindx.pdf
Binary files differ
diff --git a/macros/latex-dev/base/manifest.txt b/macros/latex-dev/base/manifest.txt
index 6d5462aeb9..20866ec2d9 100644
--- a/macros/latex-dev/base/manifest.txt
+++ b/macros/latex-dev/base/manifest.txt
@@ -1,5 +1,5 @@
%
-% The following files form the LaTeX2e distribution of 2017-04-15
+% The following files form the LaTeX2e distribution of 2020-10-01
%
%
% CONTENTS OF THE LaTeX DISTRIBUTION
@@ -8,13 +8,12 @@
% Documentation:
% --------------
%
-% README.txt -- The distribution guide. START BY READING THIS FILE
+% README.md -- The distribution guide. START BY READING THIS FILE
% manifest.txt -- This file.
%
% tex2.txt -- Extras for installing LaTeX on TeX2.
%
% texpert.txt -- Documentation for TeX experts.
-% patches.txt -- Explains the patch mechanism.
%
% legal.txt -- Copyright notice; warranty; copying conditions.
% lppl.txt -- The LaTeX Project Public License (current version).
@@ -27,6 +26,7 @@
%
% source2e.tex -- File to produce kernel documentation.
% changes.txt -- List of changes in reverse chronological order.
+% latexchanges.tex -- Describes the changes to the LaTeX format since 2014-05-01
%
% sample2e.tex -- Sample LaTeX input file.
% small2e.tex -- Small sample LaTeX input file.
@@ -65,6 +65,12 @@
% ltnews24.tex -- What was new in the release dated 2016/02.
% ltnews25.tex -- What was new in the release dated 2016/03.
% ltnews26.tex -- What was new in the release dated 2017/01.
+% ltnews27.tex -- What was new in the release dated 2017/04.
+% ltnews28.tex -- What was new in the release dated 2018/04.
+% ltnews29.tex -- What was new in the release dated 2018/12.
+% ltnews30.tex -- What was new in the release dated 2019/10.
+% ltnews31.tex -- What was new in the release dated 2020/02.
+% ltnews32.tex -- What was new in the release dated 2020/10.
%
% ltx3info.tex -- Information about the LaTeX3 project.
@@ -116,6 +122,7 @@
% ltpage.dtx -- Page styles and related commands.
% ltplain.dtx -- Things borrowed from the plain format.
% lttab.dtx -- The tabbing, tabular and array environments.
+% lttextcomp -- The text companion symbols
% ltthm.dtx -- The theorem-like environments.
% ltsect.dtx -- Sectioning and title commands.
% ltvers.dtx -- Version identification code.
@@ -183,15 +190,17 @@
% alltt.ins -- Installation script for the alltt package.
% classes.ins -- Installation script for standard classes.
% cmfonts.ins -- Installation script for OT* Computer Modern fonts.
+% ec.ins -- Installation script for T1 and TS1 EC fonts.
% newdc.ins -- Installation script for T* Computer Modern fonts.
% docstrip.ins -- Installation script for docstrip.
% exscale.ins -- Installation script for scaling the cmex font.
-% fixltx2e.ins -- Installation script for the fixltx2e package.
+% fix-cm.ins -- Installation script for modified cm font choices
% format.ins -- Installation script for latex.ltx.
% graphpap.ins -- Installation script for graphpap.dtx.
% inputenc.ins -- Installation script for inputenc.dtx.
% ifthen.ins -- Installation script for ifthen.dtx.
% latex209.ins -- Installation script for compatibility mode.
+% latexrelease.ins-- Installation script for release stability
% latexsym.ins -- Installation script for latexsym.dtx.
% letter.ins -- Installation script for document class letter.
% ltoutenc.ins -- Installation script for output encoding files.
@@ -206,7 +215,6 @@
% ----------------------------------------------
%
% cmextra.ins -- Installation script for additional CM fonts.
-% ec.ins -- Installation script for T1 and TS1 EC fonts.
% olddc.ins -- Installation script for obsolete dc fonts (v1.1).
%
%
diff --git a/macros/latex-dev/base/manual.pdf b/macros/latex-dev/base/manual.pdf
index 787714470f..19aca62958 100644
--- a/macros/latex-dev/base/manual.pdf
+++ b/macros/latex-dev/base/manual.pdf
Binary files differ
diff --git a/macros/latex-dev/base/modguide.pdf b/macros/latex-dev/base/modguide.pdf
index 9bcc7f9956..8b9cf82d07 100644
--- a/macros/latex-dev/base/modguide.pdf
+++ b/macros/latex-dev/base/modguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/nfssfont.pdf b/macros/latex-dev/base/nfssfont.pdf
index f64d059903..bd5c9aef0f 100644
--- a/macros/latex-dev/base/nfssfont.pdf
+++ b/macros/latex-dev/base/nfssfont.pdf
Binary files differ
diff --git a/macros/latex-dev/base/proc.pdf b/macros/latex-dev/base/proc.pdf
index 9c1d27f4e1..4a2bf11846 100644
--- a/macros/latex-dev/base/proc.pdf
+++ b/macros/latex-dev/base/proc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/slides.pdf b/macros/latex-dev/base/slides.pdf
index 30e0437bec..5922db016b 100644
--- a/macros/latex-dev/base/slides.pdf
+++ b/macros/latex-dev/base/slides.pdf
Binary files differ
diff --git a/macros/latex-dev/base/slifonts.pdf b/macros/latex-dev/base/slifonts.pdf
index 24093386ef..638b84873b 100644
--- a/macros/latex-dev/base/slifonts.pdf
+++ b/macros/latex-dev/base/slifonts.pdf
Binary files differ
diff --git a/macros/latex-dev/base/source2e.pdf b/macros/latex-dev/base/source2e.pdf
index 2ff5360a99..882d7b2cc6 100644
--- a/macros/latex-dev/base/source2e.pdf
+++ b/macros/latex-dev/base/source2e.pdf
Binary files differ
diff --git a/macros/latex-dev/base/syntonly.pdf b/macros/latex-dev/base/syntonly.pdf
index f653c51bba..e2387a21b2 100644
--- a/macros/latex-dev/base/syntonly.pdf
+++ b/macros/latex-dev/base/syntonly.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tlc2.pdf b/macros/latex-dev/base/tlc2.pdf
index 230d37b431..90de5dd226 100644
--- a/macros/latex-dev/base/tlc2.pdf
+++ b/macros/latex-dev/base/tlc2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tulm.pdf b/macros/latex-dev/base/tulm.pdf
index b0f9e7b62d..483f155a56 100644
--- a/macros/latex-dev/base/tulm.pdf
+++ b/macros/latex-dev/base/tulm.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide.pdf b/macros/latex-dev/base/usrguide.pdf
index 93bf90b2ac..a2dcf1b785 100644
--- a/macros/latex-dev/base/usrguide.pdf
+++ b/macros/latex-dev/base/usrguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide.tex b/macros/latex-dev/base/usrguide.tex
index c76b27c0f0..4c2ddf24af 100644
--- a/macros/latex-dev/base/usrguide.tex
+++ b/macros/latex-dev/base/usrguide.tex
@@ -34,10 +34,10 @@
\title{\LaTeXe~for authors}
-\author{\copyright~Copyright 1995--2019, \LaTeX3 Project Team.\\
+\author{\copyright~Copyright 1995--2020, \LaTeX3 Project Team.\\
All rights reserved.}
-\date{27 January 2019}
+\date{25 May 2020}
\begin{document}
@@ -505,44 +505,6 @@ This section describes the new commands available in \LaTeXe.
They are covered in more detail in \emph{\LaTeXbook} and in
\emph{\LaTeXcomp}.
-\subsection{Initial commands}
-
-Initial commands can appear only before the |\documentclass|
-line.
-
-\begin{decl}
-|\begin{filecontents}| \arg{file-name} \\
- \m{file-contents} \\
-|\end{filecontents}|
-\end{decl}
-
-The |filecontents| environment is intended for bundling within a
-single document file the contents of packages, options, or other
-files. When the document file is run through \LaTeXe{} the body of
-this environment is written verbatim (preceded by a comment line) to a
-file whose name is given as the environment's only argument. However,
-if that file already exists then nothing happens except for an
-information message.
-
-Only normal ASCII text characters (7-bit visible text) should be
-included in a |filecontents| environment. Anything else, such as tab
-characters, form-feeds or 8-bit characters, should not be included in a
-|filecontents| environment.
-
-Tabs and form feeds produce a warning, explaining that they are turned
-into spaces or blank lines, respectively.
-What happens to 8-bit characters depends on the \TeX{} installation and
-is in general unpredictable.
-
-The |filecontents| environment is used for including \LaTeX{} files.
-For other plain text files (such as Encapsulated PostScript files),
-you should use the |filecontents*| environment which does not add a
-comment line.
-
-These environments are allowed only before |\documentclass|. This
-ensures that any packages that have been bundled in the document are
-present when needed.
-
\subsection{Preamble commands}
\label{Sec:pre}
@@ -559,8 +521,10 @@ This command replaces the
\LaTeX~2.09 command |\documentstyle|.
There must be exactly one |\documentclass| command in a document; and
-it must come after the |filecontents| environments, if any, but before
-any other commands.
+it should normally come before any other command. (There are some
+exceptions, e.g., you can have |filecontents| environments before it
+or |\RequirePackage| but these should be only used in special
+scenarios as discussed elsewhere.)
The \m{option-list} is a list of options, each of which may modify the
formatting of elements which are defined in the \m{class-name} file,
@@ -657,6 +621,52 @@ through the standard |\setcounter| command. As most \LaTeX\ users do
not want to see the internal definitions of \LaTeX\ commands each time
they make an error, \LaTeXe{} sets this to $-1$ by default.
+
+\subsection{Environments to write out support files}
+
+\NEWfeature{2019}
+%
+Until the \LaTeX\ release in 2019 the |filecontents| environment was
+restricted to a place before the |\documentclass| command. These days
+it can be used anywhere, though we still think that in most cases it is
+best to only use it a the top of your document or in the preamble.
+
+\begin{decl}
+|\begin{filecontents}| \oarg{option-list} \arg{file-name} \\
+ \m{file-contents} \\
+|\end{filecontents}|
+\end{decl}
+
+The |filecontents| environment is intended for bundling within a
+single document file the contents of packages, options, or other
+files. When the document file is run through \LaTeXe{} the body of
+this environment is written verbatim (preceded by a comment line) to a
+file whose name is given as the environment's only argument. However,
+if that file already exists then nothing happens except for an
+information message.
+
+These days most UTF-8 text characters can be used in a
+|filecontents| envi\-ronment---they will be written unchanged to the
+output file. However, tabs and form feeds produce a warning,
+explaining that they are turned into spaces or blank lines,
+respectively.
+
+By default the environment does not overwrite an existing file and it
+even refuses to write out the data if there exists a file that is
+anywhere in the path that \TeX\ searches when inputting files. With
+the option |nosearch| you can ask it to look only into the current
+directory and with the option |overwrite| (or |force|) you can request
+it to write the file regardless. It will, however, never write to
+|\jobname.tex| to avoid overwriting itself.
+
+The |filecontents| environment is used for including \LaTeX{} files.
+For other plain text files (such as Encapsulated PostScript files),
+you should use the |filecontents*| environment which does not add a
+comment line.
+
+
+
+
\subsection{Document structure}
The |book| document class introduces new commands to indicate
diff --git a/macros/latex-dev/base/utf8ienc.pdf b/macros/latex-dev/base/utf8ienc.pdf
index a4794e4ba3..c27ce9669b 100644
--- a/macros/latex-dev/base/utf8ienc.pdf
+++ b/macros/latex-dev/base/utf8ienc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/webcomp.pdf b/macros/latex-dev/base/webcomp.pdf
index e576a8cda0..32a69c71c9 100644
--- a/macros/latex-dev/base/webcomp.pdf
+++ b/macros/latex-dev/base/webcomp.pdf
Binary files differ