summaryrefslogtreecommitdiff
path: root/macros/latex/base
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-11-02 03:09:43 +0000
committerNorbert Preining <norbert@preining.info>2022-11-02 03:09:43 +0000
commit2281af8ba8fd52341e706f3979712f3280fcfdad (patch)
tree5e83a2779b732f03b430cf208b732ce611ee2cff /macros/latex/base
parent7ad25021e74ea26e33d705fbb402d29aabaf6314 (diff)
CTAN sync 202211020309
Diffstat (limited to 'macros/latex/base')
-rw-r--r--macros/latex/base/README.md19
-rw-r--r--macros/latex/base/alltt.pdfbin223831 -> 223831 bytes
-rw-r--r--macros/latex/base/cfgguide.pdfbin242888 -> 264112 bytes
-rw-r--r--macros/latex/base/cfgguide.tex7
-rw-r--r--macros/latex/base/changes.txt3368
-rw-r--r--macros/latex/base/classes.dtx4
-rw-r--r--macros/latex/base/classes.pdfbin560350 -> 560611 bytes
-rw-r--r--macros/latex/base/clsguide.pdfbin402780 -> 414419 bytes
-rw-r--r--macros/latex/base/clsguide.tex7
-rw-r--r--macros/latex/base/cmfonts.fdd40
-rw-r--r--macros/latex/base/cmfonts.pdfbin292376 -> 292160 bytes
-rw-r--r--macros/latex/base/cyrguide.pdfbin239689 -> 257314 bytes
-rw-r--r--macros/latex/base/cyrguide.tex7
-rw-r--r--macros/latex/base/doc-code.pdfbin1081839 -> 1077527 bytes
-rw-r--r--macros/latex/base/doc.dtx126
-rw-r--r--macros/latex/base/doc.pdfbin755306 -> 755064 bytes
-rw-r--r--macros/latex/base/docstrip.dtx20
-rw-r--r--macros/latex/base/docstrip.pdfbin503671 -> 504553 bytes
-rw-r--r--macros/latex/base/encguide.pdfbin1318126 -> 1318126 bytes
-rw-r--r--macros/latex/base/exscale.pdfbin204711 -> 204711 bytes
-rw-r--r--macros/latex/base/fix-cm.pdfbin287733 -> 287733 bytes
-rw-r--r--macros/latex/base/fntguide.pdfbin502880 -> 517838 bytes
-rw-r--r--macros/latex/base/fntguide.tex39
-rw-r--r--macros/latex/base/graphpap.pdfbin161713 -> 161713 bytes
-rw-r--r--macros/latex/base/ifthen.pdfbin221211 -> 221211 bytes
-rw-r--r--macros/latex/base/inputenc.pdfbin318204 -> 318204 bytes
-rw-r--r--macros/latex/base/lamport-manual.pdfbin170878 -> 170878 bytes
-rw-r--r--macros/latex/base/latexrelease.pdfbin281906 -> 281906 bytes
-rw-r--r--macros/latex/base/latexsym.pdfbin200760 -> 200760 bytes
-rw-r--r--macros/latex/base/lb2.pdfbin252140 -> 252140 bytes
-rw-r--r--macros/latex/base/letter.pdfbin337850 -> 337630 bytes
-rw-r--r--macros/latex/base/lgc2.pdfbin215684 -> 215684 bytes
-rw-r--r--macros/latex/base/lppl.pdfbin132382 -> 132382 bytes
-rw-r--r--macros/latex/base/ltboxes.dtx34
-rw-r--r--macros/latex/base/ltclass.dtx39
-rw-r--r--macros/latex/base/ltcmd.dtx386
-rw-r--r--macros/latex/base/ltcmdhooks-code.pdfbin720074 -> 719104 bytes
-rw-r--r--macros/latex/base/ltcmdhooks-doc.pdfbin478906 -> 478606 bytes
-rw-r--r--macros/latex/base/ltdefns.dtx17
-rw-r--r--macros/latex/base/ltfilehook-code.pdfbin802907 -> 803024 bytes
-rw-r--r--macros/latex/base/ltfilehook-doc.pdfbin548594 -> 547895 bytes
-rw-r--r--macros/latex/base/ltfilehook.dtx23
-rw-r--r--macros/latex/base/ltfinal.dtx62
-rw-r--r--macros/latex/base/ltfssdcl.dtx322
-rw-r--r--macros/latex/base/lthooks-code.pdfbin1097030 -> 1091409 bytes
-rw-r--r--macros/latex/base/lthooks-doc.pdfbin703906 -> 701468 bytes
-rw-r--r--macros/latex/base/ltkeys.dtx60
-rw-r--r--macros/latex/base/ltluatex.dtx287
-rw-r--r--macros/latex/base/ltluatex.pdfbin317700 -> 325457 bytes
-rw-r--r--macros/latex/base/ltmarks-code.pdfbin715715 -> 715524 bytes
-rw-r--r--macros/latex/base/ltmarks-doc.pdfbin587167 -> 585896 bytes
-rw-r--r--macros/latex/base/ltmath.dtx34
-rw-r--r--macros/latex/base/ltnews.pdfbin1180993 -> 1243036 bytes
-rw-r--r--macros/latex/base/ltnews.tex6
-rw-r--r--macros/latex/base/ltnews01.pdfbin161518 -> 161518 bytes
-rw-r--r--macros/latex/base/ltnews02.pdfbin159792 -> 159792 bytes
-rw-r--r--macros/latex/base/ltnews03.pdfbin159332 -> 159332 bytes
-rw-r--r--macros/latex/base/ltnews04.pdfbin152525 -> 152525 bytes
-rw-r--r--macros/latex/base/ltnews05.pdfbin174494 -> 174494 bytes
-rw-r--r--macros/latex/base/ltnews06.pdfbin142849 -> 142849 bytes
-rw-r--r--macros/latex/base/ltnews07.pdfbin137811 -> 137811 bytes
-rw-r--r--macros/latex/base/ltnews08.pdfbin155053 -> 155053 bytes
-rw-r--r--macros/latex/base/ltnews09.pdfbin129570 -> 129570 bytes
-rw-r--r--macros/latex/base/ltnews10.pdfbin169416 -> 169416 bytes
-rw-r--r--macros/latex/base/ltnews11.pdfbin111948 -> 111948 bytes
-rw-r--r--macros/latex/base/ltnews12.pdfbin156551 -> 156551 bytes
-rw-r--r--macros/latex/base/ltnews13.pdfbin182225 -> 182225 bytes
-rw-r--r--macros/latex/base/ltnews14.pdfbin170473 -> 170473 bytes
-rw-r--r--macros/latex/base/ltnews15.pdfbin130309 -> 130309 bytes
-rw-r--r--macros/latex/base/ltnews16.pdfbin138073 -> 138073 bytes
-rw-r--r--macros/latex/base/ltnews17.pdfbin166228 -> 166228 bytes
-rw-r--r--macros/latex/base/ltnews18.pdfbin38033 -> 38033 bytes
-rw-r--r--macros/latex/base/ltnews19.pdfbin230028 -> 230028 bytes
-rw-r--r--macros/latex/base/ltnews20.pdfbin318548 -> 318548 bytes
-rw-r--r--macros/latex/base/ltnews21.pdfbin244867 -> 244867 bytes
-rw-r--r--macros/latex/base/ltnews22.pdfbin317773 -> 317773 bytes
-rw-r--r--macros/latex/base/ltnews23.pdfbin286591 -> 286591 bytes
-rw-r--r--macros/latex/base/ltnews24.pdfbin265279 -> 265279 bytes
-rw-r--r--macros/latex/base/ltnews25.pdfbin204935 -> 204935 bytes
-rw-r--r--macros/latex/base/ltnews26.pdfbin379462 -> 379462 bytes
-rw-r--r--macros/latex/base/ltnews27.pdfbin250592 -> 250592 bytes
-rw-r--r--macros/latex/base/ltnews28.pdfbin376643 -> 376643 bytes
-rw-r--r--macros/latex/base/ltnews29.pdfbin455107 -> 455107 bytes
-rw-r--r--macros/latex/base/ltnews30.pdfbin511909 -> 511909 bytes
-rw-r--r--macros/latex/base/ltnews31.pdfbin526323 -> 526323 bytes
-rw-r--r--macros/latex/base/ltnews32.pdfbin546160 -> 546160 bytes
-rw-r--r--macros/latex/base/ltnews33.pdfbin522412 -> 522412 bytes
-rw-r--r--macros/latex/base/ltnews34.pdfbin508044 -> 508044 bytes
-rw-r--r--macros/latex/base/ltnews35.pdfbin563513 -> 563089 bytes
-rw-r--r--macros/latex/base/ltnews35.tex6
-rw-r--r--macros/latex/base/ltnews36.pdfbin0 -> 517577 bytes
-rw-r--r--macros/latex/base/ltnews36.tex541
-rw-r--r--macros/latex/base/ltoutput.dtx13
-rw-r--r--macros/latex/base/ltpara-code.pdfbin667279 -> 667097 bytes
-rw-r--r--macros/latex/base/ltpara-doc.pdfbin560756 -> 559976 bytes
-rw-r--r--macros/latex/base/ltshipout-code.pdfbin820981 -> 818741 bytes
-rw-r--r--macros/latex/base/ltshipout-doc.pdfbin565273 -> 563518 bytes
-rw-r--r--macros/latex/base/ltshipout.dtx4
-rw-r--r--macros/latex/base/lttextcomp.dtx10
-rw-r--r--macros/latex/base/ltvers.dtx4
-rw-r--r--macros/latex/base/ltx3info.pdfbin219349 -> 219349 bytes
-rw-r--r--macros/latex/base/ltxdoc.pdfbin242645 -> 242645 bytes
-rw-r--r--macros/latex/base/makeindx.pdfbin165821 -> 165821 bytes
-rw-r--r--macros/latex/base/manifest.txt4
-rw-r--r--macros/latex/base/modguide.pdfbin243605 -> 257804 bytes
-rw-r--r--macros/latex/base/modguide.tex7
-rw-r--r--macros/latex/base/nfssfont.pdfbin211180 -> 211180 bytes
-rw-r--r--macros/latex/base/proc.pdfbin227059 -> 227059 bytes
-rw-r--r--macros/latex/base/slides.pdfbin375518 -> 375518 bytes
-rw-r--r--macros/latex/base/slifonts.pdfbin234191 -> 234191 bytes
-rw-r--r--macros/latex/base/source2e.pdfbin5767995 -> 5767668 bytes
-rw-r--r--macros/latex/base/syntonly.pdfbin189919 -> 189704 bytes
-rw-r--r--macros/latex/base/tlc2.pdfbin290615 -> 290615 bytes
-rw-r--r--macros/latex/base/tulm.pdfbin162772 -> 162772 bytes
-rw-r--r--macros/latex/base/usrguide-historic.pdfbin0 -> 438515 bytes
-rw-r--r--macros/latex/base/usrguide-historic.tex1832
-rw-r--r--macros/latex/base/usrguide.pdfbin430994 -> 473980 bytes
-rw-r--r--macros/latex/base/usrguide.tex2577
-rw-r--r--macros/latex/base/usrguide3.pdfbin410688 -> 0 bytes
-rw-r--r--macros/latex/base/usrguide3.tex1112
-rw-r--r--macros/latex/base/utf8ienc.dtx4
-rw-r--r--macros/latex/base/utf8ienc.pdfbin353634 -> 353237 bytes
-rw-r--r--macros/latex/base/webcomp.pdfbin146198 -> 146198 bytes
123 files changed, 6289 insertions, 4732 deletions
diff --git a/macros/latex/base/README.md b/macros/latex/base/README.md
index 8dba55fe14..18b3a5fcc2 100644
--- a/macros/latex/base/README.md
+++ b/macros/latex/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2022-06-01 patch level 5
+Release 2022-11-01
Overview
--------
@@ -9,7 +9,7 @@ Overview
This bundle provides the core LaTeX kernel. In addition to this bundle,
a minimal LaTeX system also needs the files contained in the
-- LaTeX team documentation (`doc`)
+
- L3 programming layer (`l3kernel`)
- L3 backend interfaces (`l3backend`)
- L3 unicode support (`unicode-data`)
@@ -55,18 +55,12 @@ The following files contain further information:
- `ltx3info.tex` gives you some historical information about the LaTeX3
project
-- `manual.err` lists errata in _LaTeX: A Document Preparation System_ (Lamport)
+- `lamport-manual.err` lists errata in _LaTeX: A Document Preparation System_ (Lamport)
- `tlc2.err` lists errata in _The LaTeX Companion_ (Mittelbach et al.)
The files `ltnews*.tex` (part of the `doc` bundle) contain the LaTeX
newsletters, the highest number being the most recent.
-For historical reasons, the base distribution and the core documentation
-are bundled separately. Documentation is found in the `doc` bundle. In an
-installed TeX system, `base` and `doc` should be placed within the same
-location; the distinction is therefore primarily of importance when looking
-at the development code.
-
Installation
------------
@@ -80,10 +74,9 @@ Requirements
------------
The LaTeX kernel requires the e-TeX extensions to TeX, which were finalised
-in the late 1990s and are available in modern TeX-derived engines. Some new
-features require `\ifincsname`, which is currently available in release
-versions of pdfTeX, XeTeX and LuaTeX, and is being introduced shortly in
-e-pTeX and e-upTeX.
+in the late 1990s and are available in modern TeX-derived engines. It also
+requires a set of common post-e-TeX extensions, generally known as the
+pdfTeX additions. These are available in all modern TeX engines.
License
-------
diff --git a/macros/latex/base/alltt.pdf b/macros/latex/base/alltt.pdf
index d4173fd416..cf447a5d61 100644
--- a/macros/latex/base/alltt.pdf
+++ b/macros/latex/base/alltt.pdf
Binary files differ
diff --git a/macros/latex/base/cfgguide.pdf b/macros/latex/base/cfgguide.pdf
index 49ecab6d41..1a63114bf0 100644
--- a/macros/latex/base/cfgguide.pdf
+++ b/macros/latex/base/cfgguide.pdf
Binary files differ
diff --git a/macros/latex/base/cfgguide.tex b/macros/latex/base/cfgguide.tex
index 7694ef9b63..53f53d90b4 100644
--- a/macros/latex/base/cfgguide.tex
+++ b/macros/latex/base/cfgguide.tex
@@ -40,7 +40,12 @@
\title{Configuration options for \LaTeXe}
\author{\copyright~Copyright 1998, 2001, 2003 \LaTeX\ Project Team.\\
- All rights reserved.}
+ All rights reserved.%
+ \footnote{This file may distributed and/or modified under the
+ conditions of the \LaTeX{} Project Public License, either version 1.3c
+ of this license or (at your option) any later version. See the source
+ \texttt{cfgguide.tex} for full details.}%
+}
\date{14 February 2003}
diff --git a/macros/latex/base/changes.txt b/macros/latex/base/changes.txt
index 217efcf626..0ae9b55c03 100644
--- a/macros/latex/base/changes.txt
+++ b/macros/latex/base/changes.txt
@@ -8,7 +8,129 @@ are not part of the distribution.
================================================================================
All changes above are only part of the development branch for the next release.
-================================================================================
+================================================================================
+
+#########################
+# 2022-11-01 Release
+#########################
+
+2022-10-26 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltfinal.dtx:
+ Introduce optional argument for case-changing commands
+ Make case changing commands language-aware
+ Auto-detect babel locale for case changing
+
+2022-10-22 David Carlisle <David.Carlisle@latex-project.org>
+
+ * ltclass.dtx, ltdefns.dtx: Further \protect guards for gh/932
+
+ * utf8ienc.dtx: Correct the description of UTF-8 octets.
+
+2022-10-22 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx: Correct handling of unknown option list
+
+2022-10-20 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltclass.dtx, ltkeys.dtx:
+ Correct an argument for a message
+ Define key option handler in ltkeys
+
+2022-10-10 David Carlisle <David.Carlisle@latex-project.org>
+
+ * ltclass.dtx: use \protected@edef rather than \edef when expanding option lists
+
+2022-10-03 Marcel Krüger <marcel.krueger@latex-project.org>
+
+ * ltluatex.dtx:
+ Add ordering rules for callback handlers
+
+2022-09-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltfssdcl.dtx (section{Interface Commands}):
+ Drop any surplus 'm' in series argument of \DeclareSymbolFont and
+ \SetSymbolFont (gh/918)
+
+2022-09-17 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltfssdcl.dtx:
+ New logic for freezing math versions to avoid issues with \mathchoice (gh/921)
+
+2022-09-07 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltboxes.dtx (section{\LaTeX\ Box commands}):
+ Check for nested minipages and warn if the outer one contains footnotes (gh/168)
+
+2022-09-03 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltmath.dtx (subsubsection{The UNSORTED Rest}):
+ Guard \smash against reboxing (gh/517)
+
+2022-09-03 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * docstrip.dtx (subsection{The handling of options}):
+ Complete the handling of @@-modules from l3docstrip.dtx (gh/337)
+ for +/- lines it was not done (gh/903)
+
+2022-08-21 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltkeys.dtx (subsection{Option usage scope}):
+ Correct error message text for load-only keys.
+
+2022-08-18 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * ltfilehook.dtx (subsection{Preventing a package from loading}):
+ Inhibit checking the loaded version when package is load-disabled,
+ and write to the .log (gh/888).
+
+2022-08-13 Marcel Krüger <Marcel.Krueger@latex-project.org>
+
+ * ltluatex.dtx:
+ Unregister mlist_to_hlist callback when no related callbacks are registered
+
+2022-08-10 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltcmd.dtx:
+ Add support for keyval detection using "={...}" syntax
+
+2022-08-07 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * lttextcomp.dtx: Make \DeclareEncodingSubset act globally so that
+ it can be used in fd files (gh/905)
+
+2022-07-23 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx: Output 'friendly' package names in messages
+
+2022-07-10 David Carlisle <David.Carlisle@latex-project.org>
+
+ * cmfonts.fdd: avoid EC sans serif fonts at small design sizes.
+ The medium weight is bolder and wider than the bold extended.
+ Scale the 8pt font for sizes 5,6,7. gh/879
+
+2022-06-23 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltoutput.dtx
+ Add registers \stockheight and \stockwidth
+
+2022-06-22 David Carlisle <David.Carlisle@latex-project.org>
+
+ * ltkeys.dtx:
+ add .ifnot property (.legacy_if_set_inverse:n)
+
+ * doc.dtx
+ recast Package Option declarations using \DeclareKeys
+
+2022-06-10 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * cmfonts.fdd
+ Add font definitions for slanted small caps (gh/782)
+
+2022-06-10 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * cmfonts.fdd
+ Add font definitions for slanted small caps (gh/782)
#########################
# 2022-06-01 PL5 Release
@@ -38,7 +160,7 @@ All changes above are only part of the development branch for the next release.
2022-06-30 David Carlisle <David.Carlisle@latex-project.org>
- * ltfinal.dtx: update MakeUppercase and \MakeLowercase fo gh/881
+ * ltfinal.dtx: update MakeUppercase and \MakeLowercase for gh/881
\protectd@edef no longer needed with latest l3 code.
added \AddToNoCaseChangeList
@@ -101,7 +223,7 @@ All changes above are only part of the development branch for the next release.
2022-06-02 David Carlisle <David.Carlisle@latex-project.org>
* ltfinal.dtx: add \NoCaseChange (previously available in the
- textcase package)
+ textcase package)
2022-06-01 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -143,7 +265,7 @@ All changes above are only part of the development branch for the next release.
2022-05-08 Marcel Krüger <Marcel.Krueger@latex-project.org>
- * utf8ienc.dtx:
+ * utf8ienc.dtx:
Declare Unicode codepoints U+3008 and U+3009 to be equivalent
to their canonical equivalent codepoints 2329/232A (corresponding
to \textlangle/\textrangle)
@@ -233,7 +355,7 @@ All changes above are only part of the development branch for the next release.
2022-02-21 Joseph Wright <Joseph.Wright@latex-project.org>
- * ltkeys.dtx:
+ * ltkeys.dtx:
More efficient module expansion
2022-02-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -249,15 +371,15 @@ All changes above are only part of the development branch for the next release.
2022-02-16 Joseph Wright <Joseph.Wright@latex-project.org>
- * ltkeys.dtx:
+ * ltkeys.dtx:
Allow for active characters in module argument
\DeclareUnknownKeyHandler better than with the "s"
2022-02-15 Joseph Wright <Joseph.Wright@latex-project.org>
- * ltkeys.dtx:
- Expand optional module argument in design-level commands
- Add \DeclareUnknownKeysHandler
+ * ltkeys.dtx:
+ Expand optional module argument in design-level commands
+ Add \DeclareUnknownKeysHandler
2022-02-07 Joseph Wright <Joseph.Wright@latex-project.org>
@@ -274,7 +396,7 @@ All changes above are only part of the development branch for the next release.
* ltplain.dtx (section{Plain \TeX}):
Alter \obeyspaces and \obeylines to use a redirection for special
- use cases (gh/367)}
+ use cases (gh/367)
2022-01-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -284,7 +406,7 @@ All changes above are only part of the development branch for the next release.
2022-01-15 Joseph Wright <Joseph.Wright-project.org>
* ltkeys.dtx:
- Clear option data in \AtEndOfPackage hook
+ Clear option data in \AtEndOfPackage hook
2022-01-06 Joseph Wright <Joseph.Wright-project.org>
@@ -367,12 +489,12 @@ All changes above are only part of the development branch for the next release.
2021-11-30 Joseph Wright <joseph.wright@latex-project.org>
- * ltclasses.dtx
+ * ltclasses.dtx
New option handling routine using ltkeys
2021-11-26 Joseph Wright <joseph.wright@latex-project.org>
- * ltkeys.dtx
+ * ltkeys.dtx
New file to integrate keyval option processing into the kernel
2021-11-17 Marcel Krüger <Marcel.Krueger@latex-project.org>
@@ -397,7 +519,7 @@ All changes above are only part of the development branch for the next release.
* doc.dtx: Replaced doc.dtx with V3 version.
The old doc can be reactivated with \usepackage{doc}[=v2].
Hyperref usage (on by default) can be turned off with
- \usepackage[hyperref=false]{doc}.
+ \usepackage[hyperref=false]{doc}.
New options etc are documented: use texdoc doc
(code documentation only partly done).
@@ -413,9 +535,9 @@ All changes above are only part of the development branch for the next release.
2021-12-02 Joseph Wright <Joseph.Wright@latex-project.org>
- * ltcmd.dtx
- Insert correct default values for optional arguments into the end
- of environments
+ * ltcmd.dtx
+ Insert correct default values for optional arguments into the end
+ of environments
#########################
# 2021-11-15 Release
@@ -519,11 +641,11 @@ All changes above are only part of the development branch for the next release.
Use \msg_... instead of \__kernel_msg... commands for normalized
error and warning commands.
- * ltfilehooks.dtx, lthooks.dtx, ltpara.dtx:
- Internal changes to message names
+ * ltfilehook.dtx, lthooks.dtx, ltpara.dtx:
+ Internal changes to message names
* ltcmd.dtx:
- Check for end-of-enviroment commands
+ Check for end-of-enviroment commands
2021-08-25 Phelype Oleinik <phelype.oleinik@latex-project.org>
@@ -815,7 +937,7 @@ All changes above are only part of the development branch for the next release.
* ltplain.dtx (section{Plain \TeX}):
Allocate \@inputcheck and \@unused early
- so that they are before expl3 allocates more streams.
+ so that they are before expl3 allocates more streams.
In the past this was done in ltfiles (gh/538).
2021-03-18 Phelype Oleinik <phelype.oleinik@latex-project.org>
@@ -948,7 +1070,7 @@ All changes above are only part of the development branch for the next release.
2021-01-31 David Carlisle <David.Carlisle@latex-project.org>
* ltfilehook.dtx: set \protect to \string to avoid bad
- expansion and possible non termination. github/481
+ expansion and possible non termination. github/481
2021-01-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -1216,13 +1338,13 @@ All changes above are only part of the development branch for the next release.
* ltxdoc.dtx (section{DocInclude}):
Quotes around the aux file name removed,
- they are not needed and upset BibTeX (gh/400)
+ they are not needed and upset BibTeX (gh/400)
2020-10-04 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* ltfiles.dtx (section{File Handling}):
Quotes around the aux file name removed,
- they are not needed and upset BibTeX (gh/400)
+ they are not needed and upset BibTeX (gh/400)
2020-10-04 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -1243,7 +1365,7 @@ All changes above are only part of the development branch for the next release.
* ltfssini.dtx (section{Custom series settings for main document families}):
\bfdefault@previous was called \bfseries@previous by mistake
\mddefault@previous was called \mdseries@previous by mistake
- (gh/395)
+ (gh/395)
2020-09-26 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -1693,7 +1815,7 @@ All changes above are only part of the development branch for the next release.
* ltfssini.dtx:
Added some debugging code, but not extracted at the moment.
Make the \ifx selection in \bfseries outside
- of \fontseries argument so that it is not done several times.
+ of \fontseries argument so that it is not done several times.
When \fontseriesforce is used do not auto-update the series if the
family changes (gh/277)
Recognize current family if it is not a ``meta'' family and
@@ -1728,8 +1850,8 @@ All changes above are only part of the development branch for the next release.
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
+ * 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
@@ -1798,11 +1920,11 @@ All changes above are only part of the development branch for the next release.
2020-01-05 David Carlisle <David.Carlisle@latex-project.org>
* base/ltclass.dtx: Support more write streams for
- filecontents in LuaTeX (gh/238)
+ filecontents in LuaTeX (gh/238)
2020-01-05 Marcel Fabian Krüger <Marcel@latex-project.org>
- * base/ltluatex.dtx: New reverselist callback type.
+ * base/ltluatex.dtx: New reverselist callback type.
2019-12-24 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -1884,13 +2006,13 @@ All changes above are only part of the development branch for the next release.
2019-11-14 Joseph Wright <joseph.wright@morningstar2.co.uk>
- * ltfinal.dtx: Add loader for ltexpl
- * ltexpl.dtx: New file for pre-loading expl3
+ * ltfinal.dtx: Add loader for ltexpl
+ * ltexpl.dtx: New file for pre-loading expl3
2019-11-11 David Carlisle <David.Carlisle@latex-project.org>
* ltfiles.dtx: use \quote@name again for \@filef@und in
- \@iffileonpath
+ \@iffileonpath
2019-11-02 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -1918,7 +2040,7 @@ All changes above are only part of the development branch for the next release.
2019-11-09 David Carlisle <David.Carlisle@latex-project.org>
* ltfiles.dtx: More filename normalisation: expand before
- removing quotes.
+ removing quotes.
#########################
# 2019-10-01 PL 3 Release
@@ -1936,7 +2058,7 @@ All changes above are only part of the development branch for the next release.
2019-11-09 David Carlisle <David.Carlisle@latex-project.org>
* ltfiles.dtx: More filename normalisation: expand before
- removing quotes.
+ removing quotes.
#########################
# 2019-10-01 PL 2 Release
@@ -2148,7 +2270,7 @@ All changes above are only part of the development branch for the next release.
2018-11-18 Enrico Gregorio <Enrico.Gregorio@latex-project.org>
- * ltoutenc.dtx
+ * ltoutenc.dtx
Added \Hwithstroke and \hwithstroke
2018-11-09 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -2250,17 +2372,17 @@ All changes above are only part of the development branch for the next release.
* ltfinal.dtx: Make \UTFviii@undefined@err and \UTFviii@invalid@err
also safe for initial file name for invalid UTF-8 and non-UTF-8 filesystems.
- issue #48
+ issue #48
2018-05-08 David Carlisle <David.Carlisle@latex-project.org>
* ltclass.dtx:
Update to suspicious rollback code for issue #43
- Make the suspicious rollback message a warning not error.
+ Make the suspicious rollback message a warning not error.
Make the current and latest options to latexrelease set the
- default rollback request to 0 so package rollback is disabled.
+ default rollback request to 0 so package rollback is disabled.
#########################
# 2018-04-01 PL 4 Release
@@ -2322,7 +2444,7 @@ All changes above are only part of the development branch for the next release.
2018-03-30 David Carlisle <David.Carlisle@latex-project.org>
* ltfinal.dtx: add \UseRawInputEncoding and further
- adjustments to the input encoding setup.
+ adjustments to the input encoding setup.
2018-03-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -2336,7 +2458,7 @@ All changes above are only part of the development branch for the next release.
* utf8ienc.dtx: Add \UTFviii@invalid
* inputenc.dtx: Make \inputencoding{..} do nothing if it
- specified the current encoding.
+ specified the current encoding.
* ltfinal.dtx: Default to UTF-8 input encoding
@@ -2360,7 +2482,7 @@ All changes above are only part of the development branch for the next release.
2018-02-01 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* doc.dtx: Only use\DocStyleParms if defined
- (previously the test defined it but this will change in the kernel)
+ (previously the test defined it but this will change in the kernel)
2018-01-08 David Carlisle <latex-bugs@latex-project.org>
@@ -2373,12 +2495,12 @@ All changes above are only part of the development branch for the next release.
* ltvers.dtx: possible 2018-02-01 release
* ltdefns.dtx: new \@ifundefined definitions to avoid setting
- csname to \relax
+ csname to \relax
2017-12-17 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* latexrelease.dtx: Add \latexreleaseversion info
- to \ProvidesPackage output so that different versions announce
+ to \ProvidesPackage output so that different versions announce
themselves properly
2017-04-20 David Carlisle <latex-bugs@latex-project.org>
@@ -2483,7 +2605,7 @@ All changes above are only part of the development branch for the next release.
2017-02-18 Joseph Wright <latex-bugs@latex-project.org>
* ltluatex.dtx: parametrise Lua access to register
- allocation count data
+ allocation count data
2017-02-12 David Carlisle <latex-bugs@latex-project.org>
@@ -2493,7 +2615,7 @@ All changes above are only part of the development branch for the next release.
2017-01-28 David Carlisle <latex-bugs@latex-project.org>
* build.lua bugs.txt, manifest.txt: drop latexbug.tex from the
- distribution
+ distribution
* ltoutenc.dtx, utf8ienc.dtx: add \= for YyGg
U+0232, U+0233, U+1E20, U+1E21
@@ -2592,12 +2714,12 @@ All changes above are only part of the development branch for the next release.
2016-10-15 Joseph Wright <latex-bugs@latex-project.org>
- * ltdirchk.dtx: Require e-TeX
+ * ltdirchk.dtx: Require e-TeX
2016-10-04 David Carlisle <latex-bugs@latex-project.org>
* ltoutput.dtx: Avoid deadcycles error building float pages
- with negative sized floats
+ with negative sized floats
2016-10-02 David Carlisle <latex-bugs@latex-project.org>
@@ -2716,8 +2838,8 @@ All changes above are only part of the development branch for the next release.
2016-01-04 Joseph Wright <latex-bugs@latex-project.org>
- * ltfinal.dtx: Drop loading XeTeX character class data,
- adjust \newXeTeXintercharclass to allocate from 1 not 4.
+ * ltfinal.dtx: Drop loading XeTeX character class data,
+ adjust \newXeTeXintercharclass to allocate from 1 not 4.
2015-12-30 David Carlisle <latex-bugs@latex-project.org>
@@ -2729,8 +2851,8 @@ All changes above are only part of the development branch for the next release.
2015-12-10 Joseph Wright <latex-bugs@latex-project.org>
- * ltfinal.dtx: Load Unicode settings via new common system
- (generic package "unicode-data").
+ * ltfinal.dtx: Load Unicode settings via new common system
+ (generic package "unicode-data").
2015-12-02 David Carlisle <latex-bugs@latex-project.org>
@@ -2780,10 +2902,10 @@ All changes above are only part of the development branch for the next release.
2015-10-02 Joseph Wright <latex-bugs@latex-project.org>
- * ltvers.dtx: PL1
+ * ltvers.dtx: PL1
- * ltdirchk.dtx: Allow for full reversal of LuaTeX support
- * ltluatex.dtx
+ * ltdirchk.dtx: Allow for full reversal of LuaTeX support
+ * ltluatex.dtx
#########################
# 2015/10/01 Release
@@ -2833,12 +2955,12 @@ All changes above are only part of the development branch for the next release.
2015-08-06 Joseph Wright <latex-bugs@latex-project.org>
- * Store Unicode data more efficiently
+ * Store Unicode data more efficiently
2015-07-30 Joseph Wright <latex-bugs@latex-project.org>
* README.txt: Retain extension when releasing
- (CTAN policy change)
+ (CTAN policy change)
#########################
@@ -2864,18 +2986,18 @@ All changes above are only part of the development branch for the next release.
* ltfinal.dtx: set version to 2015/01/01 PL 1, and remove ltpatch.ltx system.
- * ltfsscmp.dtx: use 0000/00/00 date for old version.
+ * ltfsscmp.dtx: use 0000/00/00 date for old version.
2015-06-20 Joseph Wright <latex-bugs@latex-project.org>
- * ltunicode.dtx: Include first token in a range in
- catcode settings.
+ * ltunicode.dtx: Include first token in a range in
+ catcode settings.
2015-06-19 David Carlisle <latex-bugs@latex-project.org>
* ltvers.dtx: date
- * ltplain.dtx: remove duplicated (old) definition of \newtoks and
+ * ltplain.dtx: remove duplicated (old) definition of \newtoks and
use -1 for the first upper bound on register types that need a
contiguous range so that the allocation is never restarted at 256.
@@ -2889,7 +3011,7 @@ All changes above are only part of the development branch for the next release.
2015-05-11 Joseph Wright <joseph.wright@morningstar2.co.uk>
- * ltunicode.dtx: Apply East Asian catcode settings to LuaTeX
+ * ltunicode.dtx: Apply East Asian catcode settings to LuaTeX
2015-05-10 <Frank.Mittelbach@latex-project.org>
@@ -2955,7 +3077,7 @@ All changes above are only part of the development branch for the next release.
2015-02-22 <Frank.Mittelbach@latex-project.org>
* latex209.dtx: Dropped \@no@font@optfalse in various places
- - no longer provided by ltfsscmp.dtx.
+ - no longer provided by ltfsscmp.dtx.
2015-02-22 <Frank.Mittelbach@latex-project.org>
@@ -3013,7 +3135,7 @@ All changes above are only part of the development branch for the next release.
2015-01-14 David Carlisle <latex-bugs@latex-project.org>
* ltspace.dtx: Modify \addpenalty so it doesn't add redundant
- skips (+ and - the same value)
+ skips (+ and - the same value)
* fixltx2e.dtx: remove code from fixltx2e, add a stub package warning.
@@ -3056,7 +3178,7 @@ All changes above are only part of the development branch for the next release.
* latexversion.dtx: New option handling
* ltvers.dtx: define \IncludeInRelease and latexvesrsion date
- docstrip guards
+ docstrip guards
2015-01-03 Joseph Wright <latex-bugs@latex-project.org>
@@ -3096,8 +3218,8 @@ All changes above are only part of the development branch for the next release.
2014-11-07 Joseph Wright <latex-bugs@latex-project.org>
- * Rename 00readme.txt to README (named README.txt in the development
- repository)
+ * Rename 00readme.txt to README (named README.txt in the development
+ repository)
######################
# 2014/05/01 Release
@@ -3141,7 +3263,7 @@ All changes above are only part of the development branch for the next release.
2014-04-30 David Carlisle <latex-bugs@latex-project.org>
* inputenc.dtx: Allow (x-)ascii and utf8x aliases for utf8 in
- xetex/luatex
+ xetex/luatex
2014-04-27 <Frank.Mittelbach@latex-project.org>
@@ -3200,7 +3322,7 @@ All changes above are only part of the development branch for the next release.
2011-02-24 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* lppl.tex: removed spurious \null from the source that generates
- an empty line.
+ an empty line.
2010-08-17 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -3221,7 +3343,7 @@ All changes above are only part of the development branch for the next release.
2009-10-20 Will Robertson <will.robertson@latex-project.org>
- * ltfssdcl.dtx: Improve the definition of \in@ thanks to Heiko
+ * ltfssdcl.dtx: Improve the definition of \in@ thanks to Heiko
######################
# 2009/09/24 Release
@@ -3251,12 +3373,12 @@ All changes above are only part of the development branch for the next release.
2007-10-29 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* exscale.dtx: Use box 0 within group to avoid changing this
- scratch register (some bug reported on ctt)
+ scratch register (some bug reported on ctt)
2007-10-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* classes.dtx: Explain why \@mkboth is insde the heading
- arg for \tableofcontents (pr/3285 and pr/3984)
+ arg for \tableofcontents (pr/3285 and pr/3984)
2007-08-31 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -3424,7 +3546,7 @@ All changes above are only part of the development branch for the next release.
2004-07-23 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* doc.dtx: environment names incorrectly sorted in
- index (pr/3615)
+ index (pr/3615)
2004-05-08 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -3472,13 +3594,13 @@ All changes above are only part of the development branch for the next release.
2004-02-16 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* classes.dtx (section*{\indexname}]): Moved setting of \columnsep and
- \columnseprule later to avoid affecting the wrong page (pr/3616)
+ \columnseprule later to avoid affecting the wrong page (pr/3616)
2004-02-15 Chris Rowley <latex-bugs@latex-project.org>
* ltspace.dtx
- Added better \nobreakdashes
+ Added better \nobreakdashes
2004-02-13 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -3498,7 +3620,7 @@ All changes above are only part of the development branch for the next release.
* utf8ienc.dtx: no newlines in error messages allowed
(due to inputenc)
space in the wrong place "\count @64"
- added commands already defined in the kernel (found by BG)
+ added commands already defined in the kernel (found by BG)
added test file pr/3480
2004-02-04 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -3512,31 +3634,31 @@ All changes above are only part of the development branch for the next release.
* ltoutput.dtx
- Small fix for \enlargethispage, pr/3528
+ Small fix for \enlargethispage, pr/3528
2004-02-02 Chris Rowley <latex-bugs@latex-project.org>
* inputenc.dtx
- Tidied up a bit more of the code
+ Tidied up a bit more of the code
2004-02-02 Chris Rowley <latex-bugs@latex-project.org>
* fontdef.dtx
- Many math things made robust
+ Many math things made robust
- Added two `bigtriangle synonyms' for compatibility with the
- stmaryrd symbols package
+ Added two `bigtriangle synonyms' for compatibility with the
+ stmaryrd symbols package
2004-02-02 Chris Rowley <latex-bugs@latex-project.org>
* ltoutenc.dtx
- Added \textbigcircle to OMS
+ Added \textbigcircle to OMS
- Fixed bad bug in \DeclareTextSymbol as per Heiko
- in pr/3563
+ Fixed bad bug in \DeclareTextSymbol as per Heiko
+ in pr/3563
2004-02-02 Chris Rowley <latex-bugs@latex-project.org>
@@ -3590,7 +3712,7 @@ All changes above are only part of the development branch for the next release.
2003-12-16 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* ltoutput.dtx: Ensure that \@elt has a defined
- state in \@makecol (pr/3586)
+ state in \@makecol (pr/3586)
2003-12-11 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -3716,9 +3838,9 @@ All changes above are only part of the development branch for the next release.
being too old (though in fact it is 30 months)
* ltoutenc.dtx: Corrected \cs{c} for T1 (pr/3442)
- Added \cs{textbardbl} (pr/3400)
+ Added \cs{textbardbl} (pr/3400)
Definition of \textexclamdown changed (pr/3368)
- Definition of \textquestiondown changed (pr/3368)
+ Definition of \textquestiondown changed (pr/3368)
Changed def for \textregistered to avoid small caps (pr/3420)
2002-06-16 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -3742,9 +3864,9 @@ All changes above are only part of the development branch for the next release.
2001-07-12 Chris Rowley <latex-bugs@latex-project.org>
- * inputenc.dtx:
+ * inputenc.dtx:
- Added latin9.def (from Karsten Tinnefeld)
+ Added latin9.def (from Karsten Tinnefeld)
2001-07-12 Chris Rowley <latex-bugs@latex-project.org>
@@ -3782,20 +3904,20 @@ All changes above are only part of the development branch for the next release.
* ltoutenc.dtx
- Added \NeedsTeXFormat{LaTeX2e}[2000/06/01] to .def
- files, pr/3255
+ Added \NeedsTeXFormat{LaTeX2e}[2000/06/01] to .def
+ files, pr/3255
- Made compatible T1 and OT1 accents (on i and \i), pr/3295
+ Made compatible T1 and OT1 accents (on i and \i), pr/3295
2001-05-28 Chris Rowley <latex-bugs@latex-project.org>
* usrguide.tex
- Described short-form for guillemets in T1 encoding, pr/3192
+ Described short-form for guillemets in T1 encoding, pr/3192
2001-05-28 Chris Rowley <latex-bugs@latex-project.org>
- * ltxguide.cls:
+ * ltxguide.cls:
Added some definitions
@@ -3889,9 +4011,9 @@ All changes above are only part of the development branch for the next release.
2000-07-31 Chris Rowley <latex-bugs@latex-project.org>
- * ltoutput.dtx:
+ * ltoutput.dtx:
- Changed handling of space above footnotes.
+ Changed handling of space above footnotes.
2000-07-29 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -3937,13 +4059,13 @@ All changes above are only part of the development branch for the next release.
2000-06-01 Chris Rowley <latex-bugs@latex-project.org>
- * ltpage.dtx:
+ * ltpage.dtx:
- Changed grouping method in \markboth and \markright
- (see also pr/3203)
+ Changed grouping method in \markboth and \markright
+ (see also pr/3203)
- Less expansion by using token register in \markboth
- and \markright
+ Less expansion by using token register in \markboth
+ and \markright
2000-05-26 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -3953,14 +4075,14 @@ All changes above are only part of the development branch for the next release.
2000-05-22 Chris Rowley <latex-bugs@latex-project.org>
- * doc.dtx:
+ * doc.dtx:
- Less obscure wording at start of index? (pr/3202)
+ Less obscure wording at start of index? (pr/3202)
- * inputenc.dtx:
+ * inputenc.dtx:
- Added latin2 option for textdegree (pr/3207)
- Updated documantaion
+ Added latin2 option for textdegree (pr/3207)
+ Updated documantaion
* ltpage.dtx: reimplementation of \markboth and \markright to
avoid problem with expanion at wrong point in time in some cases
@@ -4008,7 +4130,7 @@ All changes above are only part of the development branch for the next release.
2000-01-07 Rainer Schoepf <latex-bugs@latex-project.org>
* ltmiscen.dtx: Disable hyphenation in verbatim even if the font
- allows it.
+ allows it.
1999-12-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -4048,7 +4170,7 @@ All changes above are only part of the development branch for the next release.
1999-10-28 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* ltoutenc.dtx (subsubsection{Declaration commands}):
- Give \accent@spacefactor a default definition to prevent horrible
+ Give \accent@spacefactor a default definition to prevent horrible
death in case or incorrect input (pr/3084)
1999-10-26 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -4175,7 +4297,7 @@ All changes above are only part of the development branch for the next release.
1999-05-09 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* cmfonts.fdd: docstrip `nowarn' guard was the wrong way around
- for font OT1/cmr/bx/ui (pr/3036)
+ for font OT1/cmr/bx/ui (pr/3036)
1999-04-04 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -4183,21 +4305,21 @@ All changes above are only part of the development branch for the next release.
1999-04-02 Chris Rowley <latex-bugs@latex-project.org>
- * inputenc.dtx
+ * inputenc.dtx
- Corrected cp852 for pr/2992
+ Corrected cp852 for pr/2992
- * ltboxex.dtx
+ * ltboxex.dtx
- Made robust the flag in \@iiiparbox: pr/2975}
+ Made robust the flag in \@iiiparbox: pr/2975}
- * ltdefns.dtx
+ * ltdefns.dtx
- Fixed new version of \@yargdef: pr/3013
+ Fixed new version of \@yargdef: pr/3013
- * usrguide.tex
+ * usrguide.tex
- Added to documentation of uc/lc list
+ Added to documentation of uc/lc list
1999-03-22 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -4205,11 +4327,11 @@ All changes above are only part of the development branch for the next release.
1999-03-12 Chris Rowley <latex-bugs@latex-project.org>
- * clsguide.tex
+ * clsguide.tex
Added to documentation of options
- * cyrguide.tex:
+ * cyrguide.tex:
Further editing
@@ -4231,7 +4353,7 @@ All changes above are only part of the development branch for the next release.
1999-03-03 Chris Rowley <latex-bugs@latex-project.org>
- * ltxguide.cls:
+ * ltxguide.cls:
Added some definitions
@@ -4247,7 +4369,7 @@ All changes above are only part of the development branch for the next release.
* handbuch.err: Added.
* install.txt: Add link to truetex.txt and vtex.txt. Remove
- timings for slow computers.
+ timings for slow computers.
1999-02-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -4282,7 +4404,7 @@ All changes above are only part of the development branch for the next release.
1999-02-10 Rainer Schoepf <latex-bugs@latex-project.org>
- * letter.dtx: Reset footnote counter for every new letter (PR
+ * letter.dtx: Reset footnote counter for every new letter (PR
2957).
1999-02-09 Chris Rowley <latex-bugs@latex-project.org>
@@ -4351,10 +4473,10 @@ All changes above are only part of the development branch for the next release.
* bugs.txt: Added description how to follow up a problem report.
* latexbugs.tex: Added description how to follow up a problem
- report.
+ report.
* classes.dtx: Added check of @noskipsec switch in \part for
- article class.
+ article class.
1999-01-07 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -4367,7 +4489,7 @@ All changes above are only part of the development branch for the next release.
1999-01-06 Rainer Schoepf <latex-bugs@latex-project.org>
* emtextds.txt: Added to distribution. Installation procedure for
- Walter Schmidt's emTeX/TDS for OS/2.
+ Walter Schmidt's emTeX/TDS for OS/2.
* ltoutenc.dtx: Minor documentation fix (PR 2939).
@@ -4387,24 +4509,24 @@ All changes above are only part of the development branch for the next release.
1999-01-05 Rainer Schoepf <latex-bugs@latex-project.org>
* fontdef.dtx: Need special protection for character
- \texttt{\char62} in \cs{changes} entry, as this is the makeindex
- actualchar.
+ \texttt{\char62} in \cs{changes} entry, as this is the makeindex
+ actualchar.
1998-12-28 Rainer Schoepf <latex-bugs@latex-project.org>
* doc.dtx: The case-changing trick in the definition of
- \short@macro didn't work, as the category code was changed inside
- the macro replacement text, not during the definition.
+ \short@macro didn't work, as the category code was changed inside
+ the macro replacement text, not during the definition.
1998-12-27 Rainer Schoepf <latex-bugs@latex-project.org>
* doc.dtx (subsection{Macros for generating index entries}): Use
- \string, not \protect in argument of \special@index.
+ \string, not \protect in argument of \special@index.
1998-12-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* doc.dtx (subsection{Macros for generating index entries}):
- Correctly handle second index entry for \SpecialMainEnvIndex
+ Correctly handle second index entry for \SpecialMainEnvIndex
by using \special@index not \index (pr/2928)
1998-12-01 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -4431,7 +4553,7 @@ All changes above are only part of the development branch for the next release.
1998-09-17 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* cfgguide.tex (section Configuration files for
- standard packages and classes]):
+ standard packages and classes]):
added info about ltnews.cfg (pr/2875)
* ltoutenc.dtx: Explicitly set \spacefactor after \accent in
@@ -4446,10 +4568,10 @@ All changes above are only part of the development branch for the next release.
1998-08-17 Rainer Schoepf <latex-bugs@latex-project.org>
* (Various source files): Replaced old form `commandname by
- \cs{commandname} in changes entries.
+ \cs{commandname} in changes entries.
* (Various source files): Replaced \cmd{\commandname} by
- \cs{commandname} in changes entries.
+ \cs{commandname} in changes entries.
* ltfssdcl.dtx: Corrected documentation glitch in changes entry.
@@ -4496,7 +4618,7 @@ All changes above are only part of the development branch for the next release.
Fixed wrong code in \t
Added masc/fem ords defaults
Swapped acutedbl and gravedbl in TS1
- Renamed macron in TS1
+ Renamed macron in TS1
* pict2e.dtx:
@@ -4556,8 +4678,8 @@ All changes above are only part of the development branch for the next release.
1998-05-13 Rainer Schoepf <latex-bugs@latex-project.org>
* lttab.dtx Use \setlength to set size of p-column and for
- argument of tabular* environment, so that the benefits of the
- calc package apply.
+ argument of tabular* environment, so that the benefits of the
+ calc package apply.
1998-05-10 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -4636,8 +4758,8 @@ All changes above are only part of the development branch for the next release.
1998-03-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* cmfonts.fdd: added substiution for cmss/bx/sc to produce
- cmr/m/sc; much better would be to have the real thing ---
- anybody cares to contribute those to the ec fonts? (pr2586)
+ cmr/m/sc; much better would be to have the real thing ---
+ anybody cares to contribute those to the ec fonts? (pr2586)
1998-03-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -4668,7 +4790,7 @@ All changes above are only part of the development branch for the next release.
1998-02-06 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* inputenc.dtx: fixed typo iso-8859-5 should have been iso-8859-9
- (pr/2748)
+ (pr/2748)
1998-01-31 Chris Rowley <latex-bugs@latex-project.org>
@@ -4687,16 +4809,16 @@ All changes above are only part of the development branch for the next release.
anything to the stripped file (pr/2726)
* ltclass.dtx: make \& locally safe in \ProvidesFile /2702
- fix up pkgindoc.sty which probably hasn't worked since
- {v1.0p}{1995/05/25}{Delete \cs{filec@ntents} after preamble}
+ fix up pkgindoc.sty which probably hasn't worked since
+ {v1.0p}{1995/05/25}{Delete \cs{filec@ntents} after preamble}
1998-01-16 David Carlisle <latex-bugs@latex-project.org>
* ltoutenc.dtx: Fix \t for latex/2734.
* ltclass.dtx: make \& locally safe in \ProvidesFile /2702
- fix up pkgindoc.sty which probably hasn't worked since
- {v1.0p}{1995/05/25}{Delete \cs{filec@ntents} after preamble}
+ fix up pkgindoc.sty which probably hasn't worked since
+ {v1.0p}{1995/05/25}{Delete \cs{filec@ntents} after preamble}
1998-01-16 David Carlisle <latex-bugs@latex-project.org>
@@ -4768,7 +4890,7 @@ All changes above are only part of the development branch for the next release.
Changed \mathdegree to \textdegree
\inputencoding now works only in vmode
Temporarily fixed \IeC
- Merged latin1 code with ansinew/cp1252
+ Merged latin1 code with ansinew/cp1252
Changed `\k{}' to `\k\ '
Added textcomp package
Corrections and additions to documentation
@@ -4786,7 +4908,7 @@ All changes above are only part of the development branch for the next release.
* doc.dtx: Fix small documentation glitch.
* ltpatch.ltx: Replace reference to ,,June'' release by ,,last''
- release.
+ release.
1997-12-17 David Carlisle <latex-bugs@latex-project.org>
@@ -4801,13 +4923,13 @@ All changes above are only part of the development branch for the next release.
1997-12-15 Rainer Schoepf <latex-bugs@latex-project.org>
* clsguide.tex (section{Upgrading \LaTeX~2.09 classes and
- packages}): Added documentation for \if@compatibility switch
- (supplied by Barbara Beeton).
+ packages}): Added documentation for \if@compatibility switch
+ (supplied by Barbara Beeton).
1997-12-11 Rainer Schoepf <latex-bugs@latex-project.org>
* usrguide.tex (subsection{\LaTeXe---The new \LaTeX~release}):
- Improved the sentence about formerly separate formats.
+ Improved the sentence about formerly separate formats.
* ltoutput.dtx: Documentation fixes.
@@ -4821,11 +4943,11 @@ All changes above are only part of the development branch for the next release.
* ltnews08.tex:
- Revised text
+ Revised text
* ltnews.cls:
- Added definition environment
+ Added definition environment
1997-11-23 David Carlisle <latex-bugs@latex-project.org>
@@ -4883,23 +5005,23 @@ All changes above are only part of the development branch for the next release.
1997-10-21 Rainer Schoepf <latex-bugs@latex-project.org>
* ltfssbas.dtx: Added \makeatletter to \nfss@catcodes (and removed
- it from \try@load@font@shape).
+ it from \try@load@font@shape).
* ltdefns.dtx: Change \renew@command to use \begingroup/\endgroup
- for grouping, to avoid generation of empty math atoms.
+ for grouping, to avoid generation of empty math atoms.
1997-10-20 Rainer Schoepf <latex-bugs@latex-project.org>
* ltfinal.dtx: Removed \aa and \AA from \@uclclist as these are
- macros.
+ macros.
* slifonts.fdd(ullasy.fd): Removed superfluous pair of braces at
- end of \DeclareFontFamily command.
+ end of \DeclareFontFamily command.
1997-10-17 Rainer Schoepf <latex-bugs@latex-project.org>
* ltfntcmd.dtx: Moved check for vertical mode from
- \DeclareTextFontCommand to \check@nocorr@.
+ \DeclareTextFontCommand to \check@nocorr@.
1997-10-14 David Carlisle <latex-bugs@latex-project.org>
@@ -4912,7 +5034,7 @@ All changes above are only part of the development branch for the next release.
* patches.txt: --release--date--goes--here--
* Makefile: install.txt patches.txt ltpatch.ltx
- --release--date--goes--here--
+ --release--date--goes--here--
1997-10-11 David Carlisle <latex-bugs@latex-project.org>
@@ -4940,13 +5062,13 @@ All changes above are only part of the development branch for the next release.
1997-10-08 Rainer Schoepf <latex-bugs@latex-project.org>
* ltlogos.dtx: Simplified macro \LaTeX: use only \check@mathfonts
- to force loading of fonts suitable for the letter `A'.
+ to force loading of fonts suitable for the letter `A'.
1997-10-06 Rainer Schoepf <latex-bugs@latex-project.org>
* ltcounts.dtx: Replaced \@Roman by a new version that is fully
- expandable, so that the correct sequence of letters is written to
- files.
+ expandable, so that the correct sequence of letters is written to
+ files.
1997-09-30 Johannes Braams <latex-bugs@latex-project.org>
@@ -4966,7 +5088,7 @@ All changes above are only part of the development branch for the next release.
1997-09-09 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* ltdefns.dtx: Use \begingroup \endgroup instead of { ... }
- to avoid generating math ords if used in math mode. (pr/2573)
+ to avoid generating math ords if used in math mode. (pr/2573)
1997-09-08 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -4976,28 +5098,28 @@ All changes above are only part of the development branch for the next release.
1997-08-19 Rainer Schoepf <latex-bugs@latex-project.org>
* inputenc.dtx(latin2.def,cp852.def): Replaced \dh and \DH by \dj
- and \DJ.
+ and \DJ.
* inputenc.dtx(ansinew.def): Exchanged codes for \textendash and
- \textemdash.
+ \textemdash.
* inputenc.dtx: Enclosed all encoding definition files by
- \makeatletter/\makeatother.
+ \makeatletter/\makeatother.
1997-08-15 Rainer Schoepf <latex-bugs@latex-project.org>
* slides.dtx: Added initialization of \leftmargin to \@listi
- (obviously forgotten and never noticed before).
+ (obviously forgotten and never noticed before).
1997-08-05 Rainer Schoepf <latex-bugs@latex-project.org>
* ltoutenc.dtx: Corrected order of arguments in \UseTextSymbol
- example (PR latex/2572).
+ example (PR latex/2572).
1997-07-31 Rainer Schoepf <latex-bugs@latex-project.org>
* cfgguide.tex: Put braces around argument of \sffamily,
- to keep latex2html happy.
+ to keep latex2html happy.
1997-07-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -5021,7 +5143,7 @@ All changes above are only part of the development branch for the next release.
* slides.ins: Replaced slides.fdd by slifonts.fdd.
* slides.fdd: Renamed to slifonts.fdd, there is a name clash with
- slides.dtx when run through LaTeX.
+ slides.dtx when run through LaTeX.
* truetex.txt: New version by Richard Kinch.
@@ -5186,7 +5308,7 @@ All changes above are only part of the development branch for the next release.
internal/2513
* latexbug.tex: Fix save stack problem, internal/2514, and
- other minor improvements.
+ other minor improvements.
1997-06-02 David Carlisle <latex-bugs@latex-project.org>
@@ -5195,10 +5317,10 @@ All changes above are only part of the development branch for the next release.
1997-05-26 Rainer Schoepf <latex-bugs@latex-project.org>
* slides.fdd: Removed spaces in and around arguments to
- \DeclareFontShape.
+ \DeclareFontShape.
* cmfonts.fdd: Removed spaces in and around arguments to
- \DeclareFontShape and \EC@family.
+ \DeclareFontShape and \EC@family.
1997-05-22 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -5206,7 +5328,7 @@ All changes above are only part of the development branch for the next release.
the logo works with non-zero values of \mathsurround.
* ltfsstrc.dtx (section{Handling Options}): Replaced \\ by
- \MessageBreak in Option `pausing' (suggested by Donald Arseneau).
+ \MessageBreak in Option `pausing' (suggested by Donald Arseneau).
1997-05-10 Chris Rowley <latex-bugs@latex-project.org>
@@ -5226,11 +5348,11 @@ All changes above are only part of the development branch for the next release.
Added latin3.def
Some rearrangments
- Removed long lines
+ Removed long lines
* ltspace.dtx
- Made \newline robust
+ Made \newline robust
* ltoutenc.dtx
@@ -5443,9 +5565,9 @@ All changes above are only part of the development branch for the next release.
* inputenc.dtx: resend patch from Sept 11
- Added ts1enc.def (but it is not unpacked)
+ Added ts1enc.def (but it is not unpacked)
Changed copyright, underscore (\_) and registered
- Added \leavevmode to compwordmark
+ Added \leavevmode to compwordmark
Added hex index tabs (experimental)
1996-11-05 Chris Rowley <latex-bugs@latex-project.org>
@@ -5463,13 +5585,13 @@ All changes above are only part of the development branch for the next release.
* ltplain.dtx:
- Use \hbox to in \dotfill
+ Use \hbox to in \dotfill
1996-11-04 Rainer Schoepf <latex-bugs@latex-project.org>
* lterror.dtx (autoload version): Move \@nodocument into kernel,
- so that it can be \let to \relax in \begin{document}.
+ so that it can be \let to \relax in \begin{document}.
1996-11-01 David Carlisle <latex-bugs@latex-project.org>
@@ -5503,22 +5625,22 @@ All changes above are only part of the development branch for the next release.
* ltoutenc.dtx
- Removed defs of \aa \AA
- Removed \@strip@args (no longer used)
- Corrected documentation
+ Removed defs of \aa \AA
+ Removed \@strip@args (no longer used)
+ Corrected documentation
* inputenc.dtx
- Added cp865.def
- Added \textasteriskcentered
- Removed \aa \AA as internal forms
- Other minor additions and corrections to .def files
+ Added cp865.def
+ Added \textasteriskcentered
+ Removed \aa \AA as internal forms
+ Other minor additions and corrections to .def files
* ltplain.dtx
Removed math from \dotfill
- Added \aa and \AA
- Updated and corrected documention
+ Added \aa and \AA
+ Updated and corrected documention
1996-10-25 Chris Rowley <latex-bugs@latex-project.org>
@@ -5536,7 +5658,7 @@ All changes above are only part of the development branch for the next release.
Added local settings of flags in
\@arrayparboxrestore: dangerous!
- Used \@setminipage in minipages
+ Used \@setminipage in minipages
* ltfloat.dtx:
@@ -5560,14 +5682,14 @@ All changes above are only part of the development branch for the next release.
* ltlists.dtx
- Use \setboz\z@ to remove parindent in \@item
+ Use \setboz\z@ to remove parindent in \@item
Set \clubpenalty correctly in \@item
Do not reset \@nobreak unconditionally
Added documentation
* ltsect.dtx
- Use \setboz\z@ to remove parindent in \@xsect
+ Use \setboz\z@ to remove parindent in \@xsect
Added documentation
1996-10-23 David Carlisle <latex-bugs@latex-project.org>
@@ -5611,7 +5733,7 @@ All changes above are only part of the development branch for the next release.
1996-10-11 David Carlisle <latex-bugs@latex-project.org>
* ds/docstrip.dtx: Add initex support, and
- auto setting of \batchfile from \jobname to the new
+ auto setting of \batchfile from \jobname to the new
`TDS' version from Marcin.
1996-10-09 David Carlisle <latex-bugs@latex-project.org>
@@ -5671,21 +5793,21 @@ All changes above are only part of the development branch for the next release.
* ltspace.dtx
- Added \@xobeysp linked to \nobreakspace
+ Added \@xobeysp linked to \nobreakspace
1996-09-26 Rainer Schoepf <latex-bugs@latex-project.org>
* cmfonts.ins: Added guard `nowarn' to generation of OT1cmtt.fd
- file, to avoid annoying substitution messages if a bold typewriter
- font is selected (as, for example, in section headings).
+ file, to avoid annoying substitution messages if a bold typewriter
+ font is selected (as, for example, in section headings).
* newdc.ins: Added guard `nowarn' to generation of T1cmtt.fd file,
- to avoid annoying substitution messages if a bold typewriter font
- is selected (as, for example, in section headings).
+ to avoid annoying substitution messages if a bold typewriter font
+ is selected (as, for example, in section headings).
* cmfonts.fdd (subsubsection{Computer Modern Typewriter}), Added
- silent substitutions for T1 bold extended typewriter fonts (new
- version).
+ silent substitutions for T1 bold extended typewriter fonts (new
+ version).
1996-09-21 Chris Rowley <latex-bugs@latex-project.org>
@@ -5858,8 +5980,8 @@ All changes above are only part of the development branch for the next release.
* clsguide.tex:
- Updated for new release
- General minor edits
+ Updated for new release
+ General minor edits
1996-06-13 David Carlisle <latex-bugs@latex-project.org>
@@ -5900,18 +6022,18 @@ All changes above are only part of the development branch for the next release.
* ltnews05.tex:
- Revised text
+ Revised text
* ltnews.cls:
- Changed fonts for lw35 option, for logical and aesthetic
- reasons
- Added support for T1 encoding with lw35 option
- Corrected grammar in footer
+ Changed fonts for lw35 option, for logical and aesthetic
+ reasons
+ Added support for T1 encoding with lw35 option
+ Corrected grammar in footer
* fntguide.tex:
- Updated for new release
+ Updated for new release
1996-06-06 David Carlisle <latex-bugs@latex-project.org>
@@ -5930,7 +6052,7 @@ All changes above are only part of the development branch for the next release.
1996-06-04 Rainer Schoepf <latex-bugs@latex-project.org>
* ltmiscen.dtx: \verbatim@noligs@list now processed after
- \dospecials (PR 2138).
+ \dospecials (PR 2138).
1996-06-03 Chris Rowley <latex-bugs@latex-project.org>
@@ -5959,14 +6081,14 @@ All changes above are only part of the development branch for the next release.
1996-05-23 Chris Rowley <latex-bugs@latex-project.org>
- * ltoutenc.dtx
+ * ltoutenc.dtx
- Extra documentation
+ Extra documentation
- * ltoutput.dtx
+ * ltoutput.dtx
- Changed test for a text page full of floats
- Tidied documentation
+ Changed test for a text page full of floats
+ Tidied documentation
1996-05-23 David Carlisle <latex-bugs@latex-project.org>
@@ -6001,23 +6123,23 @@ All changes above are only part of the development branch for the next release.
1996-05-17 Chris Rowley <latex-bugs@latex-project.org>
- * fontdef.dtx
+ * fontdef.dtx
- Removed \@@sqrt
+ Removed \@@sqrt
- * slides.dtx
+ * slides.dtx
- Removed \@@sqrt
+ Removed \@@sqrt
1996-05-17 David Carlisle <latex-bugs@latex-project.org>
* slides.fdd: Force \hyphenchar of OT1 fonts to 45, in case
- \defaulthyphenchar has changed.
- Remove some spurious extra empty arguments to \DeclareFontFamily
+ \defaulthyphenchar has changed.
+ Remove some spurious extra empty arguments to \DeclareFontFamily
* cmfonts.fdd: Force \hyphenchar of OT1 fonts to 45, in case
- \defaulthyphenchar has changed.
- Remove some spurious extra empty arguments to \DeclareFontFamily
+ \defaulthyphenchar has changed.
+ Remove some spurious extra empty arguments to \DeclareFontFamily
* ltfiles.dtx: Add \write\m@ne{} to \nofiles so that
\label (and other things) don't change the vertical spacing when
@@ -6025,13 +6147,13 @@ All changes above are only part of the development branch for the next release.
1996-05-09 Chris Rowley <latex-bugs@latex-project.org>
- * ltfntcmd.dtx
+ * ltfntcmd.dtx
- Made more robust to errors
+ Made more robust to errors
- * slides.dtx
+ * slides.dtx
- Made \include mechanism work
+ Made \include mechanism work
1996-05-09 David Carlisle <latex-bugs@latex-project.org>
@@ -6134,7 +6256,7 @@ All changes above are only part of the development branch for the next release.
problems with combinations of \PageIndex \makeindex etc. pr/2048
* letter.dtx:
- Made redefinition of \vspace robust. pr/2049
+ Made redefinition of \vspace robust. pr/2049
Nevertheless, they syntax used in the pr is considered
incorrect!
@@ -6153,7 +6275,7 @@ All changes above are only part of the development branch for the next release.
1996-01-10 David Carlisle <latex-bugs@latex-project.org>
* ltfiles.dtx: latex/2024 ensure setting \input@path does not
- change behaviour of ##1 in \IfFileExists.
+ change behaviour of ##1 in \IfFileExists.
1996-01-03 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -6191,130 +6313,130 @@ All changes above are only part of the development branch for the next release.
1995-12-13 Chris Rowley <latex-bugs@latex-project.org>
- * copypre.txt
+ * copypre.txt
- New version, removing long lines
+ New version, removing long lines
- * copyins.txt
+ * copyins.txt
- New version, removing long lines
+ New version, removing long lines
- * copyhead.txt
+ * copyhead.txt
- New version, removing long lines
+ New version, removing long lines
- * bugs.txt
+ * bugs.txt
- Additions, updates and corrections
+ Additions, updates and corrections
- * autoload.txt
+ * autoload.txt
- Additions, updates and corrections
+ Additions, updates and corrections
- * texpert.txt
+ * texpert.txt
- Additions, updates and corrections
+ Additions, updates and corrections
- * ltnews.cls
+ * ltnews.cls
- Removed long lines
- Changed capitalisation
+ Removed long lines
+ Changed capitalisation
- * cmfonts.fdd
+ * cmfonts.fdd
- Removed long lines
+ Removed long lines
- * slides.fdd
+ * slides.fdd
- Removed long lines
+ Removed long lines
- * olddc.dst
+ * olddc.dst
- New preambles
+ New preambles
- * newdc.dst
+ * newdc.dst
- New preambles
+ New preambles
- * cmextra.dst
+ * cmextra.dst
- New preambles
+ New preambles
- * cmfonts.dst
+ * cmfonts.dst
- New preambles
+ New preambles
- * latexsym.dst
+ * latexsym.dst
- New preambles
+ New preambles
- * autoload.dst
+ * autoload.dst
- New preambles
+ New preambles
- * unpack2e.ins
+ * unpack2e.ins
- New preambles
+ New preambles
- * slides.dst
+ * slides.dst
- New preambles
+ New preambles
- * legal.txt
+ * legal.txt
- New version
+ New version
- * readme.txt
+ * readme.txt
- New version
+ New version
- * ltclass.dtx
+ * ltclass.dtx
- Documentation added
+ Documentation added
- * fontdef.dtx
+ * fontdef.dtx
- Documentation added
+ Documentation added
- * latex209.dst
+ * latex209.dst
- Smaller batches for old emtex
+ Smaller batches for old emtex
- * modguide.tex
+ * modguide.tex
- Additions, updates and corrections
+ Additions, updates and corrections
- * cfgguide.tex
+ * cfgguide.tex
- Additions, updates and corrections
+ Additions, updates and corrections
- * clsguide.tex
+ * clsguide.tex
- Additions, updates and corrections
+ Additions, updates and corrections
- * fntguide.tex
+ * fntguide.tex
- Additions, updates and corrections
+ Additions, updates and corrections
- * ltx3info.tex
+ * ltx3info.tex
- Additions, updates and corrections
+ Additions, updates and corrections
- * usrguide.tex
+ * usrguide.tex
- Additions, updates and corrections
+ Additions, updates and corrections
- * ltxguide.cls
+ * ltxguide.cls
- Corrected cfg loading
+ Corrected cfg loading
- * inputenc.dtx
+ * inputenc.dtx
- Detailed corrections
+ Detailed corrections
- * ltdefns.dtx
+ * ltdefns.dtx
- Added documentation
+ Added documentation
######################
# 1995/12/01 Release
@@ -6340,7 +6462,7 @@ All changes above are only part of the development branch for the next release.
1995-12-08 Alan Jeffrey <latex-bugs@latex-project.org>
- * latex209.dtx: Switched off \@inmathwarn.
+ * latex209.dtx: Switched off \@inmathwarn.
1995-12-07 David Carlisle <latex-bugs@latex-project.org>
@@ -6360,9 +6482,9 @@ All changes above are only part of the development branch for the next release.
1995-12-06 Alan Jeffrey <latex-bugs@latex-project.org>
- * encguide.tex: Added examples of new \text* commands.
+ * encguide.tex: Added examples of new \text* commands.
- * usrguide.tex: Added documentation for new \text* commands.
+ * usrguide.tex: Added documentation for new \text* commands.
1995-12-05 David Carlisle <latex-bugs@latex-project.org>
@@ -6378,7 +6500,7 @@ All changes above are only part of the development branch for the next release.
1995-12-05 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Changed text of \TextSymbolUnavailable.
+ * ltoutenc.dtx: Changed text of \TextSymbolUnavailable.
1995-12-04 David Carlisle <latex-bugs@latex-project.org>
@@ -6394,15 +6516,15 @@ All changes above are only part of the development branch for the next release.
1995-12-04 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dst: Added cp437de.def.
+ * inputenc.dst: Added cp437de.def.
- * inputenc.dtx: Added \@tabacckludge commands to the Next encoding.
- Replaced ~ by \nobreakspace.
- Added a `test version' to the \ProvidesFile.
- Made <pounds> and <uumlaut> text char in cp437.
- Made <fraction> a math char in Next.
- Made <cdot> and <bullet> text chars in all encodings.
- Added cp437de (cp437 but with ss rather than beta).
+ * inputenc.dtx: Added \@tabacckludge commands to the Next encoding.
+ Replaced ~ by \nobreakspace.
+ Added a `test version' to the \ProvidesFile.
+ Made <pounds> and <uumlaut> text char in cp437.
+ Made <fraction> a math char in Next.
+ Made <cdot> and <bullet> text chars in all encodings.
+ Added cp437de (cp437 but with ss rather than beta).
1995-12-01 David Carlisle <latex-bugs@latex-project.org>
@@ -6412,10 +6534,10 @@ All changes above are only part of the development branch for the next release.
1995-12-01 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dtx: Removed extraneous {} from the <superior> glyphs.
+ * inputenc.dtx: Removed extraneous {} from the <superior> glyphs.
- * ltoutenc.dtx: Made \SS a default command rather than making the
- OT1 definition the default.
+ * ltoutenc.dtx: Made \SS a default command rather than making the
+ OT1 definition the default.
1995-11-30 Johannes Braams <latex-bugs@latex-project.org>
@@ -6446,12 +6568,12 @@ All changes above are only part of the development branch for the next release.
1995-11-29 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Added \textless, \textgreater, et al.
+ * ltoutenc.dtx: Added \textless, \textgreater, et al.
- * inputenc.dtx: Replaced \textsterling with \pounds.
- Added default error-message definitions for \textyen et al.
- Added a \NeedsTeXFormat line.
- Tidied up the Next encoding.
+ * inputenc.dtx: Replaced \textsterling with \pounds.
+ Added default error-message definitions for \textyen et al.
+ Added a \NeedsTeXFormat line.
+ Tidied up the Next encoding.
1995-11-28 David Carlisle <latex-bugs@latex-project.org>
@@ -6489,8 +6611,8 @@ All changes above are only part of the development branch for the next release.
1995-11-28 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Added test for math mode to text commands.
- Renamed \@changed@x@err to \TextSymbolUnavailable.
+ * ltoutenc.dtx: Added test for math mode to text commands.
+ Renamed \@changed@x@err to \TextSymbolUnavailable.
1995-11-27 David Carlisle <latex-bugs@latex-project.org>
@@ -6500,9 +6622,9 @@ All changes above are only part of the development branch for the next release.
1995-11-24 Chris Rowley <latex-bugs@latex-project.org>
- * ltspace.dtx
+ * ltspace.dtx
- \nobreakspace added
+ \nobreakspace added
1995-11-22 David Carlisle <latex-bugs@latex-project.org>
@@ -6519,7 +6641,7 @@ All changes above are only part of the development branch for the next release.
* ltnews04.tex: New TUG Address, \LoadClassWithOptions
* doc.dtx: Make \MakeShortVerb use an \PackageInfo rather
- than \tyepout. internal/1938
+ than \tyepout. internal/1938
1995-11-18 David Carlisle <latex-bugs@latex-project.org>
@@ -6530,21 +6652,21 @@ All changes above are only part of the development branch for the next release.
1995-11-17 David Carlisle <latex-bugs@latex-project.org>
* docstrip.dtx: Merge in Marcin's new code restoring
- \inFileName functionality.
- Remove generation date/version number from generated files
- Add \AddGenerationDate batchfile command to put them back.
- Force whole file through ispell!!
+ \inFileName functionality.
+ Remove generation date/version number from generated files
+ Add \AddGenerationDate batchfile command to put them back.
+ Force whole file through ispell!!
* ltoutenc.dtx: Use \@wrong@font@char in \UseTextSymbol. /1676
* ltfssbas.dtx: Make missing fd file \typeout a Font Info
- and add \@wrong@font@char for use in \UseTextSymbol. /1676
- Clean up many \changes entries.
+ and add \@wrong@font@char for use in \UseTextSymbol. /1676
+ Clean up many \changes entries.
1995-11-15 David Carlisle <latex-bugs@latex-project.org>
* source2e.tex: Exchange order of ltdefns and ltalloc
- (Matches code change of 24th May.)
+ (Matches code change of 24th May.)
Modify \changes def to match doc.sty 1.9u
1995-11-14 David Carlisle <latex-bugs@latex-project.org>
@@ -6553,9 +6675,9 @@ All changes above are only part of the development branch for the next release.
dc fonts are installed.
* ltclass.dtx: Add \LoadClassWithOptions for latex/1556
- Add \RequirePackageWithOptions to match.
- Stop \@unprocessedoptions complaining about empty options
- noticed whilest debugging the above change...
+ Add \RequirePackageWithOptions to match.
+ Stop \@unprocessedoptions complaining about empty options
+ noticed whilest debugging the above change...
* inputenc.dtx: remove rogue \endinput. Wrap long lines.
@@ -6578,20 +6700,20 @@ All changes above are only part of the development branch for the next release.
1995-11-07 Rainer Schoepf <latex-bugs@latex-project.org>
* ltoutenc.dtx (subsection{Definitions for the OT1 encoding}):
- Changed \char32 to \@xxxii (two tokens less). Replaced octal
- number 27 by decimal number 23 to protect against the quote
- character being active. Added \leavevmode at start of \c,
- otherwise the output routine might be invoked within the macro
- (suggested by Donald Arseneau). Replaced some 0's by \z@
- (faster).
+ Changed \char32 to \@xxxii (two tokens less). Replaced octal
+ number 27 by decimal number 23 to protect against the quote
+ character being active. Added \leavevmode at start of \c,
+ otherwise the output routine might be invoked within the macro
+ (suggested by Donald Arseneau). Replaced some 0's by \z@
+ (faster).
* ltlists.dtx (\@doendpe): Enclosed \setbox0 assignment by a
- group so that it leaves the contents of box $0$ intact.
- Discovered by Donald Arseneau.
+ group so that it leaves the contents of box $0$ intact.
+ Discovered by Donald Arseneau.
* cmfonts.fdd: Use decimal rather than octal character
- specification for \hyphenchar and \skewchar so that there is
- no problem with an active quote character.
+ specification for \hyphenchar and \skewchar so that there is
+ no problem with an active quote character.
1995-11-03 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -6627,44 +6749,44 @@ All changes above are only part of the development branch for the next release.
1995-11-02 Chris Rowley <latex-bugs@latex-project.org>
- * classes.dtx
+ * classes.dtx
- Made \footnote always work in frontmatter
+ Made \footnote always work in frontmatter
1995-11-02 David Carlisle <latex-bugs@latex-project.org>
* ltfssbas.dtx: Remove spurious space from NFSS font warning
- latex/1676
+ latex/1676
* ltxdoc.dtx: Add silent font substitutions.
1995-11-02 Rainer Schoepf <latex-bugs@latex-project.org>
* latex209.dtx: Added code for fleqn.sty, leqno.sty,
- openbib.sty.
+ openbib.sty.
* latex209.dst: Added generation of files fleqn.sty, leqno.sty,
- openbib.sty for compatibility mode.
+ openbib.sty for compatibility mode.
* inputenc.dtx: Changed internal name \a to \@tabacckludge to
- protect against redefinition by malicicous users. Wrapped long
- lines.
+ protect against redefinition by malicicous users. Wrapped long
+ lines.
* ltoutenc.dtx: Changed internal name \a to \@tabacckludge to
- protect against redefinition by malicicous users.
+ protect against redefinition by malicicous users.
1995-11-01 David Carlisle <latex-bugs@latex-project.org>
* latexbug.tex: Only list `configuration' input files.
* ltfinal.dtx: Modify \@addtofilelist during initex so only
- non-standard (cfg) inputs listed.
+ non-standard (cfg) inputs listed.
* ltfssini.dtx: Modify \@addtofilelist during initex so only
- non-standard (cfg) inputs listed.
+ non-standard (cfg) inputs listed.
* ltdirchk.dtx: Modify \@addtofilelist during initex so only
- non-standard (cfg) inputs listed.
+ non-standard (cfg) inputs listed.
* Makefile: Add newdc/olddc
@@ -6675,7 +6797,7 @@ All changes above are only part of the development branch for the next release.
* cmfonts.dst: remove dc font generation.
* olddc.dst: NEW: Generate fd files for obsolete dcfonts 1.1
- and earlier.
+ and earlier.
* newdc.dst: NEW: Generate fd files for dcfonts 1.2
@@ -6687,7 +6809,7 @@ All changes above are only part of the development branch for the next release.
* ltboxes.dtx: CHANGE: Add \nobreak to \@finalstrut to allow
hyphenation of the last word of a p-column (and footnotes).
- internal/1931
+ internal/1931
* ltdirchk.dtx: more robust checking of dc fonts.
@@ -6717,7 +6839,7 @@ All changes above are only part of the development branch for the next release.
1995-10-27 David Carlisle <latex-bugs@latex-project.org>
* ltpictur.dtx: Initialise \@wholewidth in autoload kernel.
- General doc cleanup.
+ General doc cleanup.
* usrguide.tex: Describe minimal.cls
@@ -6729,14 +6851,14 @@ All changes above are only part of the development branch for the next release.
1995-10-25 Chris Rowley <latex-bugs@latex-project.org>
- * ltfloat.dtx
+ * ltfloat.dtx
- Corrected bug in \end@dblfloat, made code more robust
+ Corrected bug in \end@dblfloat, made code more robust
1995-10-25 David Carlisle <latex-bugs@latex-project.org>
* ltmath.dtx: modify docstrip guards so
- \ProvidesFile{ltmath.dtx} seen by source2e.tex.
+ \ProvidesFile{ltmath.dtx} seen by source2e.tex.
* ltidxglo.dtx: General doc cleanup.
@@ -6746,57 +6868,57 @@ All changes above are only part of the development branch for the next release.
1995-10-24 Chris Rowley <latex-bugs@latex-project.org>
- * ltfiles.dtx
+ * ltfiles.dtx
- Removed one-way switches from \endocument
+ Removed one-way switches from \endocument
- * ltxref.dtx
+ * ltxref.dtx
- Removed one-way switches from \endocument
- Tidying.
+ Removed one-way switches from \endocument
+ Tidying.
- * ltfssbas.dtx
+ * ltfssbas.dtx
- Removed one-way switches from \endocument
+ Removed one-way switches from \endocument
- * ltbibl.dtx
+ * ltbibl.dtx
- Removed one-way switches from \endocument
+ Removed one-way switches from \endocument
- * ltmiscen.dtx
+ * ltmiscen.dtx
- Removed one-way switches from \endocument
- Tidying.
+ Removed one-way switches from \endocument
+ Tidying.
1995-10-24 David Carlisle <latex-bugs@latex-project.org>
* ltdefns.dtx: Make \@autoload files ignore EOL.
* lterror.dtx: modify autoload \@preamerr.
- Add % to some lines as \@autoload files now ignore line ends.
+ Add % to some lines as \@autoload files now ignore line ends.
1995-10-23 Chris Rowley <latex-bugs@latex-project.org>
- * lttab.dtx
+ * lttab.dtx
- Made poptabs more robust
- Tidied up documentation
+ Made poptabs more robust
+ Tidied up documentation
1995-10-23 Rainer Schoepf <latex-bugs@latex-project.org>
* classes.dtx (subsubsection{Abstract}): Added setting of
- \cs{beginparpenalty} to discourage page break before abstract
- heading.
+ \cs{beginparpenalty} to discourage page break before abstract
+ heading.
1995-10-22 Rainer Schoepf <latex-bugs@latex-project.org>
* cmfonts.fdd: Added support for new (version 1.2) DC fonts and
- text companion fonts in encoding TS1.
+ text companion fonts in encoding TS1.
* inputenc.dst: Added generation of ansinew.def file.
* inputenc.dtx: Added ansinew encoding (Windows 3.1 ANSI), as
- contributed by Berthold K.P. Horn (bkph@ai.mit.edu).
+ contributed by Berthold K.P. Horn (bkph@ai.mit.edu).
1995-10-20 David Carlisle <latex-bugs@latex-project.org>
@@ -6809,19 +6931,19 @@ All changes above are only part of the development branch for the next release.
* ltfssbas.dtx: Keep autofss2 code in kernel until
\begin{document}.
- use \@undefined not \undefined
+ use \@undefined not \undefined
* ltfinal.dtx: \@filelist zapped too early.
1995-10-19 Rainer Schoepf <latex-bugs@latex-project.org>
* inputenc.dtx: Replaced \' \` \= by \a' \a` \a in order to get
- correct accents in a tabbing environment.
+ correct accents in a tabbing environment.
1995-10-18 Rainer Schoepf <latex-bugs@latex-project.org>
* ltspace.dtx (subsection{Horizontal space}): Moved \changes
- from \@ to \hspace where it belongs.
+ from \@ to \hspace where it belongs.
1995-10-17 David Carlisle <latex-bugs@latex-project.org>
@@ -6829,7 +6951,7 @@ All changes above are only part of the development branch for the next release.
\reserved@a
* ltclass.dtx: Remove \ProvidesFile redefinition to ltfinal.
- Reset \CurrentOption in \ProcessOptions for graphics/1873
+ Reset \CurrentOption in \ProcessOptions for graphics/1873
* ltdirchk.dtx: Modify \ProvidesFile during initex to save
debugging info and not waste \ver@... csnames.
@@ -6849,37 +6971,37 @@ All changes above are only part of the development branch for the next release.
* ltbibl.dtx: make \cite robust /1808
* ltmath.dtx: Make \sqrt robust /1808
- Use \@testopt in eqnarray's \\ /1911.
+ Use \@testopt in eqnarray's \\ /1911.
* ltspace.dtx: Use \@testopt in \[no]{line|page}preak (/1911)
* ltdefns.dtx: new \@ifstar CHANGE: require ##1 in both arguments
- not ####1 in one and ##1 in the other. (internal/1910)
- Use \@testopt in \newcommand and \newenvironment (/1911)
+ not ####1 in one and ##1 in the other. (internal/1910)
+ Use \@testopt in \newcommand and \newenvironment (/1911)
* ltboxes.dtx: Clarify \makebox(,)[b] description.
* ltthm.dtx: Allow \newtheorem after \begin{document} again.
- (LaTeX Book, page 57)
+ (LaTeX Book, page 57)
1995-10-16 Rainer Schoepf <latex-bugs@latex-project.org>
* ltfssini.dtx: Added \relax at the end of the definition of
- \normalfont to prevent it and \textnormal from eating up leading
- spaces.
+ \normalfont to prevent it and \textnormal from eating up leading
+ spaces.
1995-10-11 Chris Rowley <latex-bugs@latex-project.org>
- * ltoutput.dtx
+ * ltoutput.dtx
- New check in \clearpage.
+ New check in \clearpage.
1995-10-10 David Carlisle <latex-bugs@latex-project.org>
* ltfssdcl.dtx: autoload error message
* ltthm.dtx: Make \newtheorem and its internals `only preamble'
- to save memory.
+ to save memory.
* ltplain.dtx: autoload tracing code
@@ -6888,7 +7010,7 @@ All changes above are only part of the development branch for the next release.
1995-10-10 Rainer Schoepf <latex-bugs@latex-project.org>
* slides.dtx (subsection{The title}): In \maketitle, move \par
- inside the scope of \Large, to get even line spacing.
+ inside the scope of \Large, to get even line spacing.
1995-10-09 David Carlisle <latex-bugs@latex-project.org>
@@ -6937,11 +7059,11 @@ All changes above are only part of the development branch for the next release.
1995-10-02 David Carlisle <latex-bugs@latex-project.org>
* ltplain.dtx: Move \newif to ltdefns.dtx.
- Use \sbox in \underbar (saves tokens, and works with colour)
+ Use \sbox in \underbar (saves tokens, and works with colour)
* ltdefns.dtx: \futurelet with \@let@token for internal/924
New implementation of \@xargdef in terms of the new
- \@protected@testopt. Saves tokens and makes user defined
+ \@protected@testopt. Saves tokens and makes user defined
commands with optional arguments robust. internal/1733
Move \newif here from ltplain.
Autoload support. Add \aut@global and \@autoload. internal/1617.
@@ -6949,26 +7071,26 @@ All changes above are only part of the development branch for the next release.
1995-09-27 David Carlisle <latex-bugs@latex-project.org>
* ltdirchk.dtx: Check \filename parser in ltxcheck.tex
- for latex/1624 latex/1754 and graphics/1336
+ for latex/1624 latex/1754 and graphics/1336
Check for dc fonts in ltxcheck.tex
1995-09-27 Rainer Schoepf <latex-bugs@latex-project.org>
* slides.dtx, slides.fdd: Globally replaced scale factor 19.91
- by 19.907 in \DeclareFontShape, as this gives better rounded
- font sizes at 600dpi (suggested by Denis Roegel).
+ by 19.907 in \DeclareFontShape, as this gives better rounded
+ font sizes at 600dpi (suggested by Denis Roegel).
* docstrip.dtx: Changed address of Johannes Braams.
1995-09-25 David Carlisle <latex-bugs@latex-project.org>
* latex209.dtx: Declare 2 count registers previously used
- in \cline. /1723
+ in \cline. /1723
1995-09-25 Rainer Schoepf <latex-bugs@latex-project.org>
* web2ctex.txt: Added some comments about using non-csh, index
- style files and some other missing files.
+ style files and some other missing files.
1995-09-21 David Carlisle <latex-bugs@latex-project.org>
@@ -6981,8 +7103,8 @@ All changes above are only part of the development branch for the next release.
* inputenc.dst: Added generation of next.def file.
* inputenc.dtx: Added next encoding, as contributed by
- Stefan Ried <stef@theo-phys.uni-essen.de> and Holger Uhr
- <huhr@uni-paderborn.de>.
+ Stefan Ried <stef@theo-phys.uni-essen.de> and Holger Uhr
+ <huhr@uni-paderborn.de>.
1995-09-20 David Carlisle <latex-bugs@latex-project.org>
@@ -6991,19 +7113,19 @@ All changes above are only part of the development branch for the next release.
1995-09-20 Rainer Schoepf <latex-bugs@latex-project.org>
* cmextra.dst: Added generation of OMLccm.fd file, which had
- previsouly been removed from cmfonts.dst.
+ previsouly been removed from cmfonts.dst.
* slides.dtx: Replace \@tempa by \reserved@a. Wrap some long
- lines and use \null instead of \hbox{} (by DPC).
+ lines and use \null instead of \hbox{} (by DPC).
1995-09-19 Rainer Schoepf <latex-bugs@latex-project.org>
* slides.fdd: Corrected names of .fd file names in argument to
- \ProvidesFile commands.
+ \ProvidesFile commands.
* ltmiscen.dtx: Moved call to \@noligs macro after call to
- \verbatim@font in \verb command, just as it is already in the
- verbatim environment.
+ \verbatim@font in \verb command, just as it is already in the
+ verbatim environment.
1995-09-15 David Carlisle <latex-bugs@latex-project.org>
@@ -7029,9 +7151,9 @@ All changes above are only part of the development branch for the next release.
1995-08-31 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dtx: Added 0 to the beginning of every number.
- Changed the definition of "AD in latin1 and latin2 to be \-.
- Swapped ordfeminine and ordmasculine around in latin1.
+ * inputenc.dtx: Added 0 to the beginning of every number.
+ Changed the definition of "AD in latin1 and latin2 to be \-.
+ Swapped ordfeminine and ordmasculine around in latin1.
1995-08-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -7081,15 +7203,15 @@ All changes above are only part of the development branch for the next release.
1995-08-16 Chris Rowley <latex-bugs@latex-project.org>
- * tex2.txt:
+ * tex2.txt:
- Clearer wordings
+ Clearer wordings
- * ltcntrl.dtx:
+ * ltcntrl.dtx:
- Made most loop macros \long
- Removed unnecessary \...noop macros
- Tidied up documentation
+ Made most loop macros \long
+ Removed unnecessary \...noop macros
+ Tidied up documentation
1995-08-16 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -7155,25 +7277,25 @@ All changes above are only part of the development branch for the next release.
1995-07-23 Chris Rowley <latex-bugs@latex-project.org>
- * clsguide.tex:
+ * clsguide.tex:
- Added notices concerning use of `Standard LaTeX'
+ Added notices concerning use of `Standard LaTeX'
- * cfgguide.tex:
+ * cfgguide.tex:
- Started major expansion and rewrite
+ Started major expansion and rewrite
- * modguide.tex:
+ * modguide.tex:
- Rewrite adding section on modfying LaTeX
+ Rewrite adding section on modfying LaTeX
- * legal.txt:
+ * legal.txt:
- Further expansion and changes
+ Further expansion and changes
- * ltxguide.cls:
+ * ltxguide.cls:
- Changed configuration file messages
+ Changed configuration file messages
1995-07-20 David Carlisle <latex-bugs@latex-project.org>
@@ -7211,9 +7333,9 @@ All changes above are only part of the development branch for the next release.
1995-07-16 Chris Rowley <latex-bugs@latex-project.org>
- * ltoutput.dtx:
+ * ltoutput.dtx:
- New version of \@outputpage
+ New version of \@outputpage
1995-07-14 David Carlisle <latex-bugs@latex-project.org>
@@ -7229,7 +7351,7 @@ All changes above are only part of the development branch for the next release.
* ltfssbas.dtx:
Updates to documentation
Use macro rather than switch to flag default font
- substitutions pr/1236
+ substitutions pr/1236
* ltfiles.dtx:
Updates to documentation
@@ -7360,67 +7482,67 @@ All changes above are only part of the development branch for the next release.
1995-06-19 David Carlisle <latex-bugs@latex-project.org>
* ltbibl.dtx: Modify \bibcite so a repeated key produces
- LaTeX Warning: Label `aaa' multiply defined.
- ...
- LaTeX Warning: There were multiply-defined labels.
- instead of
- LaTeX Warning: Label(s) may have changed.
- Rerun to get cross-references right.
+ LaTeX Warning: Label `aaa' multiply defined.
+ ...
+ LaTeX Warning: There were multiply-defined labels.
+ instead of
+ LaTeX Warning: Label(s) may have changed.
+ Rerun to get cross-references right.
* ltxref.dtx: Modify \newlabel so \bibcite can share code.
* ltclass.dtx: Stop \documentstyle re-enabling \usepackage
- After it has been disabled by latex209.def (latex/1634)
+ After it has been disabled by latex209.def (latex/1634)
1995-06-18 Chris Rowley <latex-bugs@latex-project.org>
- * Makefile:
+ * Makefile:
- Changed to use copypre.txt and copyhead.txt
+ Changed to use copypre.txt and copyhead.txt
- * cfgguide.tex:
+ * cfgguide.tex:
- Configuration stuff transferred from texpert.txt
+ Configuration stuff transferred from texpert.txt
- * autoload.txt:
+ * autoload.txt:
- Tidying, removed long lines
+ Tidying, removed long lines
- * cm*.dst, docstrip.dst,latex*.dst,exscale.dst
+ * cm*.dst, docstrip.dst,latex*.dst,exscale.dst
- New preambles
+ New preambles
- * inputenc.dst,ltoutenc.dst,slides.dst:
+ * inputenc.dst,ltoutenc.dst,slides.dst:
- New preambles
+ New preambles
- * unpack2e.ins:
+ * unpack2e.ins:
- New preambles
+ New preambles
- * copyright.txt:
+ * copyright.txt:
- No longer used
+ No longer used
- * copyins.txt:
+ * copyins.txt:
- New text
+ New text
- * copypre.txt:
+ * copypre.txt:
- New file
+ New file
- * copyhead.txt:
+ * copyhead.txt:
- New file
+ New file
- * copydisf.txt:
+ * copydisf.txt:
- New file
+ New file
- * copydisg.tex:
+ * copydisg.tex:
- New file
+ New file
1995-06-15 David Carlisle <latex-bugs@latex-project.org>
@@ -7431,12 +7553,12 @@ All changes above are only part of the development branch for the next release.
* ltfssbas.dtx: Minor documentation edits.
* ltfsstrc.dtx: Take \ProvidesFile out of \iffalse clause
- so it shows up in \listfiles in source2e.tex.
- Wrap some long lines to 72.
+ so it shows up in \listfiles in source2e.tex.
+ Wrap some long lines to 72.
1995-06-15 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltnews03.tex: Added pointer to autoload.txt.
+ * ltnews03.tex: Added pointer to autoload.txt.
1995-06-14 David Carlisle <latex-bugs@latex-project.org>
@@ -7454,125 +7576,125 @@ All changes above are only part of the development branch for the next release.
1995-06-14 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dst: Fixed typo cp850 -> cp437
+ * inputenc.dst: Fixed typo cp850 -> cp437
1995-06-14 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dst: Fixed typo cp850 -> cp437
+ * inputenc.dst: Fixed typo cp850 -> cp437
1995-06-13 David Carlisle <latex-bugs@latex-project.org>
* ltpictur.dtx: Add \ProvidesFile to autoload file.
* ltfinal.dtx: Moddify method of adding patchlevel banner
- Force format to be in errorstopmode, even if an installer
- scrolled past an error during initex run.
+ Force format to be in errorstopmode, even if an installer
+ scrolled past an error during initex run.
1995-06-12 David Carlisle <latex-bugs@latex-project.org>
* ltvers.dtx: Add Auotoload banner
- Check for old source files (older than a year).
+ Check for old source files (older than a year).
1995-06-11 Chris Rowley <latex-bugs@latex-project.org>
- * legal.txt:
+ * legal.txt:
- Major changes
+ Major changes
- * usrguide.tex:
+ * usrguide.tex:
- Added ltx3info.tex info
+ Added ltx3info.tex info
- * fntguide.tex:
+ * fntguide.tex:
- Added note re using non-cmr fonts in T1
+ Added note re using non-cmr fonts in T1
- * clsguide.tex:
+ * clsguide.tex:
- Hash marks in option declarations OK
- Added Case cHANGING commands
+ Hash marks in option declarations OK
+ Added Case cHANGING commands
- * cfgguide.tex:
+ * cfgguide.tex:
- Configuration stuff transferred from texpert.txt
+ Configuration stuff transferred from texpert.txt
- * lablst.tex:
+ * lablst.tex:
- Improved version: lists all bibitems separately
- Changed internal commands
+ Improved version: lists all bibitems separately
+ Changed internal commands
- * Makefile:
+ * Makefile:
- Added modguide.tex
+ Added modguide.tex
- * manifest.txt:
+ * manifest.txt:
- Added ltnews03.tex and modguide.tex
+ Added ltnews03.tex and modguide.tex
- * install.txt:
+ * install.txt:
- File name corrected
- Added ltx3info.tex info
+ File name corrected
+ Added ltx3info.tex info
- * emtex.txt:
+ * emtex.txt:
- Added info re batch file
+ Added info re batch file
- * texpert.txt:
+ * texpert.txt:
- Configuration details transferred to cfgguide.tex
+ Configuration details transferred to cfgguide.tex
- * readme.txt:
+ * readme.txt:
- Added pointers to various other info files
+ Added pointers to various other info files
- * ltspace.dtx:
+ * ltspace.dtx:
- Added \relax to \obeycr
+ Added \relax to \obeycr
1995-06-09 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Made composites declared with DeclareTextComposite
- use no-argument macros rather than one-argument macros.
+ * ltoutenc.dtx: Made composites declared with DeclareTextComposite
+ use no-argument macros rather than one-argument macros.
- * ltnews03.tex: Changed modify.tex to modguide.tex, updated
- figures for space savings.
+ * ltnews03.tex: Changed modify.tex to modguide.tex, updated
+ figures for space savings.
1995-06-08 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltnews03.tex: New issue of LaTeX News.
+ * ltnews03.tex: New issue of LaTeX News.
1995-06-06 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltfinal.dtx: Made \MakeUppercase and \MakeLowercase grab their
- argument and brace it.
+ * ltfinal.dtx: Made \MakeUppercase and \MakeLowercase grab their
+ argument and brace it.
1995-06-05 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltpatch.ltx: Removed patch for latex/1240 (now in ltoutenc.dtx).
- Removed patch for tools/1296 (now in ltoutenc.dtx).
- Removed patch for latex/1322 (now in ltoutenc.dtx).
- We now have an empty patch file again!
+ * ltpatch.ltx: Removed patch for latex/1240 (now in ltoutenc.dtx).
+ Removed patch for tools/1296 (now in ltoutenc.dtx).
+ Removed patch for latex/1322 (now in ltoutenc.dtx).
+ We now have an empty patch file again!
- * fontdef.dtx: Moved math commands from ltoutenc.dtx.
+ * fontdef.dtx: Moved math commands from ltoutenc.dtx.
- * ltoutenc.dtx: Redid protection in DeclareTextCommand so that it
- uses \noexpand rather than \protect. This should stop the
- problems with \'\i putting the acute on a \protect rather than
- on the \i. Commented out the defaults for textless and
- textgreater. Allow \ProvideTextCommandDefault after
- \begin{document} so it can be used in inputenc.def files.
- Save some tokens in \textvisiblespace and \textunderscore.
- Moved math commands to fontdef.dtx.
+ * ltoutenc.dtx: Redid protection in DeclareTextCommand so that it
+ uses \noexpand rather than \protect. This should stop the
+ problems with \'\i putting the acute on a \protect rather than
+ on the \i. Commented out the defaults for textless and
+ textgreater. Allow \ProvideTextCommandDefault after
+ \begin{document} so it can be used in inputenc.def files.
+ Save some tokens in \textvisiblespace and \textunderscore.
+ Moved math commands to fontdef.dtx.
- * classes.dtx: Replaced \uppercase with \MakeUppercase
+ * classes.dtx: Replaced \uppercase with \MakeUppercase
- * ltfinal.dtx: Added \MakeUppercase and \MakeLowercase.
+ * ltfinal.dtx: Added \MakeUppercase and \MakeLowercase.
1995-05-30 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dtx: Made hex numbers safe against active ". Added
- docstrip commands to applemac.def.
+ * inputenc.dtx: Made hex numbers safe against active ". Added
+ docstrip commands to applemac.def.
1995-05-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -7587,12 +7709,12 @@ All changes above are only part of the development branch for the next release.
* ltplain.dtx (section{Plain \TeX}):
- Made \loop long
- Made \underbar use \box \tw@
+ Made \loop long
+ Made \underbar use \box \tw@
* ltdefns.dtx (subsection{Command definitions}):
- Made \@gobble commands \long
+ Made \@gobble commands \long
1995-05-26 Johannes Braams <latex-bugs@latex-project.org>
@@ -7637,27 +7759,27 @@ All changes above are only part of the development branch for the next release.
* latex209.dtx:
- Changed float reset hooks to empty
+ Changed float reset hooks to empty
* ltfloat.dtx:
- Moved new resettings into hooks so that they can be removed in
- latex209.dtx
+ Moved new resettings into hooks so that they can be removed in
+ latex209.dtx
* ltspace.dtx/ltlists.dtx
- Moved \endtrivlist and friends to ltlists.dtx
+ Moved \endtrivlist and friends to ltlists.dtx
* ltfiles.dtx (section{File Handling}):
- Added check for zero \topskip to \begin{document}
- Added some \longs
+ Added check for zero \topskip to \begin{document}
+ Added some \longs
- * ltspace.dtx
+ * ltspace.dtx
- Made \vspace and \vspace* more efficient and more robust
+ Made \vspace and \vspace* more efficient and more robust
- Commented out unused code
+ Commented out unused code
1995-05-25 Johannes Braams <latex-bugs@latex-project.org>
@@ -7676,14 +7798,14 @@ All changes above are only part of the development branch for the next release.
1995-05-24 David Carlisle <latex-bugs@latex-project.org>
* unpack2e.ins: Exchange order of ltdefns and ltalloc
- as latter now needs \@gobbletwo from former.
+ as latter now needs \@gobbletwo from former.
* usrguide.tex (subsection{Setting text susperscripts}):
- \textsuperscript now access the current font (except for size
+ \textsuperscript now access the current font (except for size
attribute)
* ltfloat.dtx: redefine \textsuperscript in terms of
- \@textsuperscript
+ \@textsuperscript
* ltdefns.dtx: new \typein implementation
@@ -7691,24 +7813,24 @@ All changes above are only part of the development branch for the next release.
1995-05-23 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dst: Added applemac.def.
+ * inputenc.dst: Added applemac.def.
- * inputenc.dtx: Added applemac.def.
- Added test for whether definition of a text character ends in a
- macro.
- Corrected \mathordfeminine and \mathordmasculine.
+ * inputenc.dtx: Added applemac.def.
+ Added test for whether definition of a text character ends in a
+ macro.
+ Corrected \mathordfeminine and \mathordmasculine.
- * inputenc.dst: Added applemac.def.
+ * inputenc.dst: Added applemac.def.
1995-05-22 David Carlisle <latex-bugs@latex-project.org>
* lttab.dtx: Add code and docstrip modules to support
- autoloading of tabbing.
+ autoloading of tabbing.
1995-05-22 Rainer Schoepf <latex-bugs@latex-project.org>
* ltplain.dtx/ltfloat.dtx: Moved definitions of \footins and
- \footnoterule from ltplain to ltfloat.
+ \footnoterule from ltplain to ltfloat.
1995-05-21 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -7748,7 +7870,7 @@ All changes above are only part of the development branch for the next release.
1995-05-19 David Carlisle <latex-bugs@latex-project.org>
* ltpictur.dtx: Add code and docstrip modules to support
- autoloading feature.
+ autoloading feature.
1995-05-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -7802,7 +7924,7 @@ All changes above are only part of the development branch for the next release.
* ltboxes.dtx: Removed surplus { } in \@irsbox
* ltlists.dtx: Start of documented version from Tobi.
- Removed surplus { } and used `\thr@@' not `3 ' to save tokens.
+ Removed surplus { } and used `\thr@@' not `3 ' to save tokens.
1995-05-17 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -7863,18 +7985,18 @@ All changes above are only part of the development branch for the next release.
1995-05-12 David Carlisle <latex-bugs@latex-project.org>
* ltclass.dtx: Use a token register in \DeclareOption(*)
- So that # need not be written as ##
- INCOMPATIBLE CHANGE: see latex/1557
+ So that # need not be written as ##
+ INCOMPATIBLE CHANGE: see latex/1557
* ltpictur.dtx: Modify \picture so a missing ( in the first
argument generates an error. latex/1355
- Add a few more macro environments.
+ Add a few more macro environments.
* latex209.dtx: Restore old definition of \@footnotemark
* ltfloat.dtx: Add \nobreak to allow hyphenation before a
footnotemark.
- Add loads of macro environments to the docs.
+ Add loads of macro environments to the docs.
1995-05-11 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -7930,7 +8052,7 @@ All changes above are only part of the development branch for the next release.
1995-05-06 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* ltsect.dtx (paragraph{...}):
- Use \quad instead of \hskip 1em in \@seccntformat. pr/1596
+ Use \quad instead of \hskip 1em in \@seccntformat. pr/1596
Add \relax to prevent `plus/minus' problem with improper redefinition
of \@seccntformat. pr/1596
@@ -7946,14 +8068,14 @@ All changes above are only part of the development branch for the next release.
* ltsect.dtx:
Surround the . in \@dottedcontextline by \hbox to typeset it in the text
- font. pr/1503
+ font. pr/1503
Don't reset to \rmfamily just to \normalfont in case the document font is
not the roman one. pr/1578
1995-05-01 David Carlisle <latex-bugs@latex-project.org>
* ltpar.dtx: Documentation reworked by Tobias Oetiker.
- (Thanks to Tobi for volunteering.)
+ (Thanks to Tobi for volunteering.)
1995-04-29 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -7975,7 +8097,7 @@ All changes above are only part of the development branch for the next release.
* latex209.dtx: Add \hang and \textindent
* ltplain.dtx: Move \hang and \textindent to latex209.dtx
- Remove some commands which are (re)defined later.
+ Remove some commands which are (re)defined later.
1995-04-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -7987,7 +8109,7 @@ All changes above are only part of the development branch for the next release.
* ltmiscen.dtx (subsection{Environments}):
Limited support for \AtBeginDocument{\begin{foo}}
- \AtEndDocument{\end{foo}}.
+ \AtEndDocument{\end{foo}}.
Be careful to get the order right if you do it more than once. pr/1121
* unpacked.txt:
@@ -7996,18 +8118,18 @@ All changes above are only part of the development branch for the next release.
1995-04-25 David Carlisle <latex-bugs@latex-project.org>
* ltfiles.dtx: remove \the\every@math@size from \document
- for latex/1407 + 1420 (from patch file)
+ for latex/1407 + 1420 (from patch file)
* ltdefns.dtx: From patch file: make \@check@c \long
- (latex/1346) \newenvironment argument handling /1507.
+ (latex/1346) \newenvironment argument handling /1507.
* ifthen.dtx: Fix `driver' docstrip guard. Reported by
- Martin Schr"oder.
+ Martin Schr"oder.
1995-04-24 David Carlisle <latex-bugs@latex-project.org>
* ltpage.dtx: Reset \emergencystretch in \fussy latex /1344
- (fom patch file). Clean up documentation slightly.
+ (fom patch file). Clean up documentation slightly.
* ltcntrl.dtx: fix for /1317 (internal) \@for expanding its
argument incorectly
@@ -8016,18 +8138,18 @@ All changes above are only part of the development branch for the next release.
* ltbibl.dtx: Add \mbox to \cite for latex/1239 from patch file.
Make \@onlypreamble\bibcite /1388 (from patch file)
- Add some macro envs to documentation.
+ Add some macro envs to documentation.
* ltoutput.dtx: Modify docstrip guards to keep trace code out of
the kernel, unless `trace' specified.
- 2 more fixes from patch file
- latex/1451: newline command \\ in eqnarray and output routine
- %%% latex/1392: AtBeginDvi broken
+ 2 more fixes from patch file
+ latex/1451: newline command \\ in eqnarray and output routine
+ %%% latex/1392: AtBeginDvi broken
* latex209.dtx: Add \proclaim and \ttraggedright
* ltplain.dtx: Make \new... non outer: /1405 (from patch file)
- Move \proclaim and \ttragedright to latex209.dtx
+ Move \proclaim and \ttragedright to latex209.dtx
1995-04-23 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -8041,9 +8163,9 @@ All changes above are only part of the development branch for the next release.
* inputenc.dtx (section{The ISO Latin-1 encoding}):
\textonequarter and friends incorrectly declared as math chars.
(section{Default definitions for characters}):
- Default values moved to own section.
+ Default values moved to own section.
(section{The ISO Latin-2 encoding}):
- latin2 added. pr/1447.
+ latin2 added. pr/1447.
(section{The IBM code page 850}):
cp850 added. pr/1330.
@@ -8069,10 +8191,10 @@ All changes above are only part of the development branch for the next release.
* Makefile (cleanupsrc): set date to June 1995
* ltclass.dtx: Fix filecontents and \DeclareOption
- pr's 1487 and 1498 . (moved from patch file.)
+ pr's 1487 and 1498 . (moved from patch file.)
* ltfinal.dtx: Modify to allow ltpatch.ltx (patch level 0)
- For a full release. To solve problems of initial install picking
+ For a full release. To solve problems of initial install picking
up old patch files.
1995-04-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -8123,7 +8245,7 @@ All changes above are only part of the development branch for the next release.
* latex209.dtx: Fixes for latex/1460 (infinite looping on 2nd
\documentstyle command) and latex/1424 (\newcommand{\r}{})
- Also wrap some long lines to 72.
+ Also wrap some long lines to 72.
1995-03-20 David Carlisle <latex-bugs@latex-project.org>
@@ -8142,7 +8264,7 @@ All changes above are only part of the development branch for the next release.
1995-03-17 David Carlisle <latex-bugs@latex-project.org>
* latexbug.el (report-latex-bug): Support transient mark mode
- Also use shell-command so that shell variables are initialised.
+ Also use shell-command so that shell variables are initialised.
1995-03-14 Johannes Braams <latex-bugs@latex-project.org>
@@ -8176,8 +8298,8 @@ All changes above are only part of the development branch for the next release.
1994-12-17 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltnews02.tex: Edited description of AMS-LaTeX to get everything
- to fit onto one page.
+ * ltnews02.tex: Edited description of AMS-LaTeX to get everything
+ to fit onto one page.
1994-12-16 Johannes Braams <latex-bugs@latex-project.org>
@@ -8191,21 +8313,21 @@ All changes above are only part of the development branch for the next release.
1994-12-15 David Carlisle <latex-bugs@latex-project.org>
* latexbug.el: (Matt Swift) Support old emacs (tested with 18.57
- in addition to 19.28)
+ in addition to 19.28)
1994-12-14 Chris Rowley <latex-bugs@latex-project.org>
- * ltoutenc.dtx
+ * ltoutenc.dtx
- Corrected typo
+ Corrected typo
- * usrguide.tex
+ * usrguide.tex
- Removed some commands
+ Removed some commands
- * cfgguide.tex
+ * cfgguide.tex
- Tidying
+ Tidying
1994-12-14 David Carlisle <latex-bugs@latex-project.org>
@@ -8213,14 +8335,14 @@ All changes above are only part of the development branch for the next release.
1994-12-14 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Added braces to \copyright so it works unbraced in
- subscripts.
- Added \ifmmode check to \@changed@cmd so that redefinitions aren't
- made in math mode (which can also foul up unbraced subscripts).
- Commented out \textasciicircum,
- \textasciitilde, \textbackslash, \textbar,
- \textgreater, \texthyphenchar, \texthyphen and
- \textless to save memory.
+ * ltoutenc.dtx: Added braces to \copyright so it works unbraced in
+ subscripts.
+ Added \ifmmode check to \@changed@cmd so that redefinitions aren't
+ made in math mode (which can also foul up unbraced subscripts).
+ Commented out \textasciicircum,
+ \textasciitilde, \textbackslash, \textbar,
+ \textgreater, \texthyphenchar, \texthyphen and
+ \textless to save memory.
1994-12-13 David Carlisle <latex-bugs@latex-project.org>
@@ -8248,7 +8370,7 @@ All changes above are only part of the development branch for the next release.
1994-12-12 David Carlisle <latex-bugs@latex-project.org>
* latexbug.el: Add missing (defvar ltxbug-mail-headers
- (Matt Swift: latex/1255)
+ (Matt Swift: latex/1255)
* ltxguide.cls: Stop \small in verbatim affecting previous para.
@@ -8258,15 +8380,15 @@ All changes above are only part of the development branch for the next release.
1994-12-12 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Tidied up documentation.
+ * ltoutenc.dtx: Tidied up documentation.
1994-12-11 Chris Rowley <latex-bugs@latex-project.org>
- * ltfloat.dtx
+ * ltfloat.dtx
- * cfgguide.tex
+ * cfgguide.tex
- Major editing
+ Major editing
1994-12-11 Johannes Braams <latex-bugs@latex-project.org>
@@ -8293,13 +8415,13 @@ All changes above are only part of the development branch for the next release.
1994-12-10 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dtx: Removed useless catcode setting of ~.
- Made letters active and undefined by default, rather than illegal.
- Added `beta test' message.
+ * inputenc.dtx: Removed useless catcode setting of ~.
+ Made letters active and undefined by default, rather than illegal.
+ Added `beta test' message.
- * ltoutenc.dtx: Added documentation for the OML encoding, after
- the last lot got lost by the server...
- Replaced width with \@width in vrules.
+ * ltoutenc.dtx: Added documentation for the OML encoding, after
+ the last lot got lost by the server...
+ Replaced width with \@width in vrules.
1994-12-09 Johannes Braams <latex-bugs@latex-project.org>
@@ -8319,22 +8441,22 @@ All changes above are only part of the development branch for the next release.
* usrguide.tex: \arraynewline RIP.
* lttab.dtx: Make \tabularnewline work in array.
- \arraynewline deleted.
+ \arraynewline deleted.
* latexbug.el: mention public database.
* latexbug.tex: Call category 0 LaTeX not base
- Add >Confidential no field to all messages by default.
- Add message about public database to final typeout.
- Compress messages to fit on 25-line screen.
+ Add >Confidential no field to all messages by default.
+ Add message about public database to final typeout.
+ Compress messages to fit on 25-line screen.
* usrguide.tex: mention list of packages in LaTeXBook.
1994-12-08 Alan Jeffrey <latex-bugs@latex-project.org>
- * bugs.txt: Added pointer to ltxbugs2html.
+ * bugs.txt: Added pointer to ltxbugs2html.
- * ltoutenc.dtx: Added \null and \sh@ft to \b and \d.
+ * ltoutenc.dtx: Added \null and \sh@ft to \b and \d.
1994-12-07 Johannes Braams <latex-bugs@latex-project.org>
@@ -8343,15 +8465,15 @@ All changes above are only part of the development branch for the next release.
1994-12-07 David Carlisle <latex-bugs@latex-project.org>
* usrguide.tex: Document ltx3pub papers on ctan.
- Other small corrections.
+ Other small corrections.
1994-12-07 Alan Jeffrey <latex-bugs@latex-project.org>
- * tlb1042.lvt: Rewrote test file to avoid printing out internal
- details of how \ENC-cmd is implemented.
+ * tlb1042.lvt: Rewrote test file to avoid printing out internal
+ details of how \ENC-cmd is implemented.
- * tlb0552.lvt: Rewrote test file to do a showbox on $\_$ rather
- than a \tracingall.
+ * tlb0552.lvt: Rewrote test file to do a showbox on $\_$ rather
+ than a \tracingall.
1994-12-06 David Carlisle <latex-bugs@latex-project.org>
@@ -8369,37 +8491,37 @@ All changes above are only part of the development branch for the next release.
(subsection{Macros for loading fonts}):
set \nfss@catcodes locally to \relax in \try@load@fontshape
so that it isn't executed several times when an .fd file is
- read in.
+ read in.
* updated various test files.
1994-12-05 David Carlisle <latex-bugs@latex-project.org>
* latexbug.tex: Add \pause so messages do not scroll off screen.
- Suggested by Rosemary Bailey.
+ Suggested by Rosemary Bailey.
* lablst.tex: Print labels verbatim, and input packages.
- Fixing problems reported via c.t.t.
+ Fixing problems reported via c.t.t.
1994-12-05 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Added braces round the \ooalign in \textcircled.
+ * ltoutenc.dtx: Added braces round the \ooalign in \textcircled.
- * tlb1233.lvt: Added test file for unbraced \ooalign's.
+ * tlb1233.lvt: Added test file for unbraced \ooalign's.
1994-12-02 Alan Jeffrey <latex-bugs@latex-project.org>
- * fontdef.dtx: Commented out \ldots.
+ * fontdef.dtx: Commented out \ldots.
- * lfonts.dtx: Commented out \copyright.
+ * lfonts.dtx: Commented out \copyright.
- * tlb1214.lvt: Test file for symbols like \pounds.
+ * tlb1214.lvt: Test file for symbols like \pounds.
- * tlb1217.lvt: Test file for \a.
+ * tlb1217.lvt: Test file for \a.
- * ltoutenc.dtx: Fixed a bug with \a.
+ * ltoutenc.dtx: Fixed a bug with \a.
- * cmfonts.fdd: Added font substitutions for \pounds.
+ * cmfonts.fdd: Added font substitutions for \pounds.
1994-12-01 Johannes Braams <latex-bugs@latex-project.org>
@@ -8424,7 +8546,7 @@ All changes above are only part of the development branch for the next release.
* lthyphen.dtx: lthyphen.ltx|cfg now hyphen.ltx|cfg
* texpert.txt: Document ltxcheck font checks.
- lthyphen.cfg now (or soon will be) hyphen.cfg
+ lthyphen.cfg now (or soon will be) hyphen.cfg
* ltplain.dtx: remove some {oldcomments} and other tidying up.
@@ -8440,7 +8562,7 @@ All changes above are only part of the development branch for the next release.
* ltfiles.dtx: Use new \@dofilelist.
* ltmiscen.dtx: Add new \@dofilelist to \enddocument
- Move some of the warnings in \enddocument out of \if@filesw.
+ Move some of the warnings in \enddocument out of \if@filesw.
* Makefile (TEXTS): add latexbug.el
@@ -8448,11 +8570,11 @@ All changes above are only part of the development branch for the next release.
1994-11-30 Alan Jeffrey <latex-bugs@latex-project.org>
- * fam.dtx: Set \FOO-cmd to \@current@cmd rather than \relax when
- entering encoding FOO.
+ * fam.dtx: Set \FOO-cmd to \@current@cmd rather than \relax when
+ entering encoding FOO.
- * ltoutenc.dtx: Made text commands expand (almost) entirely in the
- mouth.
+ * ltoutenc.dtx: Made text commands expand (almost) entirely in the
+ mouth.
1994-11-28 David Carlisle <latex-bugs@latex-project.org>
@@ -8460,30 +8582,30 @@ All changes above are only part of the development branch for the next release.
1994-11-28 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltdefns.dtx: Corrected \changes entries.
+ * ltdefns.dtx: Corrected \changes entries.
- * ltfiles.dtx: Corrected \changes entries.
+ * ltfiles.dtx: Corrected \changes entries.
- * lterror.dtx: Corrected \changes entries.
+ * lterror.dtx: Corrected \changes entries.
- * ltxref.dtx: Corrected \changes entries.
+ * ltxref.dtx: Corrected \changes entries.
- * ltsect.dtx: Corrected \changes entries.
+ * ltsect.dtx: Corrected \changes entries.
- * ltidxglo.dtx: Corrected \changes entries.
+ * ltidxglo.dtx: Corrected \changes entries.
- * lttab.dtx: Corrected \changes entries (wrong format).
+ * lttab.dtx: Corrected \changes entries (wrong format).
- * ltoutenc.dtx: Added new definitions of \b, \c and \d.
- Fixed bug with accents on commands which aren't allowed in
- \csname.
+ * ltoutenc.dtx: Added new definitions of \b, \c and \d.
+ Fixed bug with accents on commands which aren't allowed in
+ \csname.
- * inputenc.dtx: Moved a docstrip option to it's correct home.
+ * inputenc.dtx: Moved a docstrip option to it's correct home.
- * latex209.dtx: Added hacks for space around floats.
+ * latex209.dtx: Added hacks for space around floats.
- * tlb1184.lvt: Added check file for default accent and symbol
- definitions.
+ * tlb1184.lvt: Added check file for default accent and symbol
+ definitions.
1994-11-25 David Carlisle <latex-bugs@latex-project.org>
@@ -8496,8 +8618,8 @@ All changes above are only part of the development branch for the next release.
* unpack2e.dst: Correct the preamble written to generated files.
* ltdefns.dtx: modify \newenvironment so that a graf environment
- is not allowed (Piet van Oostrum latex/1037). Previous attemt
- to do this removed...
+ is not allowed (Piet van Oostrum latex/1037). Previous attemt
+ to do this removed...
1994-11-23 David Carlisle <latex-bugs@latex-project.org>
@@ -8516,68 +8638,68 @@ All changes above are only part of the development branch for the next release.
* latint.dtx: wrap long lines.
* source2e.tex: Make frontmatter \pagenumbering{roman}
- So can be processed with only 2 latex runs. (Ulrik Vieth)
- Add lthyphen.dtx.
+ So can be processed with only 2 latex runs. (Ulrik Vieth)
+ Add lthyphen.dtx.
1994-11-22 Alan Jeffrey <latex-bugs@latex-project.org>
- * tlb0574.lvt: Added check file for empyt accents and accents in
- tocs.
+ * tlb0574.lvt: Added check file for empyt accents and accents in
+ tocs.
- * ltoutenc.dtx: Fixed `empty accent' bug.
+ * ltoutenc.dtx: Fixed `empty accent' bug.
- * inputenc.dtx: Fixed typo A1 -> A0.
+ * inputenc.dtx: Fixed typo A1 -> A0.
1994-11-21 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Fixed \dots so that it has no extra space in a
- monowidth font.
- Corrected typo in the definition of \mathunderscore.
+ * ltoutenc.dtx: Fixed \dots so that it has no extra space in a
+ monowidth font.
+ Corrected typo in the definition of \mathunderscore.
- * inputenc.dtx: Added \textregistered.
- Added "A0 (nbs) to Latin-1.
+ * inputenc.dtx: Added \textregistered.
+ Added "A0 (nbs) to Latin-1.
1994-11-20 Chris Rowley <latex-bugs@latex-project.org>
- * ltfloat.dtx
+ * ltfloat.dtx
- * ltoutput.dtx
+ * ltoutput.dtx
- * ltxguide.cls
+ * ltxguide.cls
- Tidied formatting
+ Tidied formatting
- * patches.txt
+ * patches.txt
- Updated
+ Updated
- * bugs.txt
+ * bugs.txt
- Updated
+ Updated
- * install.txt
+ * install.txt
- Updated
+ Updated
- * template.txt
+ * template.txt
- Updated
+ Updated
- * texpert.txt
+ * texpert.txt
- Updated
+ Updated
- * usrguide.tex
+ * usrguide.tex
- Major update
+ Major update
- * clsguide.tex
+ * clsguide.tex
- Major update
+ Major update
- * fntguide.tex
+ * fntguide.tex
- Major update
+ Major update
1994-11-18 David Carlisle <latex-bugs@latex-project.org>
@@ -8590,12 +8712,12 @@ All changes above are only part of the development branch for the next release.
* fam.dtx: \next renamed to \reserved@f
* latint.dtx: use \expandafter instead of \next in
- \DeclareMathDelimiter.
+ \DeclareMathDelimiter.
* ltplain.dtx: Remove \pt, now defined elsewhere.
* ltmath.dtx Use \expandafter trick instead of \next
- in a' \phantom and \smash. Colour support to \phantom and \smash
+ in a' \phantom and \smash. Colour support to \phantom and \smash
1994-11-17 David Carlisle <latex-bugs@latex-project.org>
@@ -8645,9 +8767,9 @@ All changes above are only part of the development branch for the next release.
1994-11-16 Chris Rowley <latex-bugs@latex-project.org>
- * latex209.dtx
+ * latex209.dtx
- Restored 2e logo
+ Restored 2e logo
1994-11-16 David Carlisle <latex-bugs@latex-project.org>
@@ -8656,7 +8778,7 @@ All changes above are only part of the development branch for the next release.
1994-11-15 David Carlisle <latex-bugs@latex-project.org>
* ifthen.dtx: Use \@unexpandable@protect and modify
- \@setref to fix bug /946 (/1023) \pageref breaking tests.
+ \@setref to fix bug /946 (/1023) \pageref breaking tests.
1994-11-14 David Carlisle <latex-bugs@latex-project.org>
@@ -8666,21 +8788,21 @@ All changes above are only part of the development branch for the next release.
1994-11-12 Chris Rowley <latex-bugs@latex-project.org>
- * ltmiscen.dtx
+ * ltmiscen.dtx
- Tidied \endtrivlists
+ Tidied \endtrivlists
- * ltspace.dtx
+ * ltspace.dtx
- Attempted to improve error messages
+ Attempted to improve error messages
- * ltfntcmd.dtx
+ * ltfntcmd.dtx
- Added line-break to error message
+ Added line-break to error message
- * lablst.tex
+ * lablst.tex
- Simpler with better layout
+ Simpler with better layout
1994-11-12 David Carlisle <latex-bugs@latex-project.org>
@@ -8692,11 +8814,11 @@ All changes above are only part of the development branch for the next release.
1994-11-10 Chris Rowley <latex-bugs@latex-project.org>
- * ltbibl.dtx
+ * ltbibl.dtx
- Patched \nocite{*}
+ Patched \nocite{*}
- * ltplain.dtx
+ * ltplain.dtx
1994-11-10 Johannes Braams <latex-bugs@latex-project.org>
@@ -8731,7 +8853,7 @@ All changes above are only part of the development branch for the next release.
* fontdef.dtx: Add \DeclareMathSizes (from setsize.dtx).
* Makefile: Generate new release date 1994/12/01
- Remove setfile.dtx from generation of ltfss.dtx
+ Remove setfile.dtx from generation of ltfss.dtx
* ltpatch.ltx: Change to patch 1994/12/01 release.
@@ -8788,81 +8910,81 @@ All changes above are only part of the development branch for the next release.
Fix bug that produced extra "No math setup" message if
tracefont was loaded with default options.
- Patched \loop
+ Patched \loop
1994-11-05 Chris Rowley <latex-bugs@latex-project.org>
- * ltfloat.dtx (subsection{Floating Environments}):
+ * ltfloat.dtx (subsection{Floating Environments}):
- Introduced \color@hbox
- Changed colour resetting for footnotes (again)
- Introduced a simulacrum of compatibility to old \@xfloat
- Changed float setup
+ Introduced \color@hbox
+ Changed colour resetting for footnotes (again)
+ Introduced a simulacrum of compatibility to old \@xfloat
+ Changed float setup
- * ltboxes.dtx (section{\LaTeX\ Box commands}):
+ * ltboxes.dtx (section{\LaTeX\ Box commands}):
- Introduced \color@hbox
- Changed colour resetting for minipage footnotes
- Added to documentation
+ Introduced \color@hbox
+ Changed colour resetting for minipage footnotes
+ Added to documentation
- * ltoutput.dtx (subsection{Floats}):
+ * ltoutput.dtx (subsection{Floats}):
- Introduced \color@hbox
- New style protect settings in shipout
- Tidied shipout and added to documentation
- Added begindvi stuff
+ Introduced \color@hbox
+ New style protect settings in shipout
+ Tidied shipout and added to documentation
+ Added begindvi stuff
1994-11-05 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Added setting of \@typeset@protect to \patterns
- and \hyphenation.
+ * ltoutenc.dtx: Added setting of \@typeset@protect to \patterns
+ and \hyphenation.
- * ltnews02.tex: First draft.
+ * ltnews02.tex: First draft.
1994-11-04 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltfloat.dtx: Added \protected@xdef to \footnote, \@footnotetext,
- and \footnotemark.
+ * ltfloat.dtx: Added \protected@xdef to \footnote, \@footnotetext,
+ and \footnotemark.
- * ltoutenc.dtx: Added \_.
+ * ltoutenc.dtx: Added \_.
- * ltpage.dtx: Added \@unexpandable@protect to \markboth and
- \markright.
+ * ltpage.dtx: Added \@unexpandable@protect to \markboth and
+ \markright.
- * lttab.dtx: Added \set@typeset@protect to \@array and
- \multicolumn.
- Added \@unexpandable@protect to \@mkpream.
+ * lttab.dtx: Added \set@typeset@protect to \@array and
+ \multicolumn.
+ Added \@unexpandable@protect to \@mkpream.
- * ltboxes.dtx: Added \protected@edef to \@mpfootnotetext.
+ * ltboxes.dtx: Added \protected@edef to \@mpfootnotetext.
- * ltidxglo.dtx: Added \protected@write to \index and \glossary.
- Removed \if@filesw from \makeindex and \makeglossary.
+ * ltidxglo.dtx: Added \protected@write to \index and \glossary.
+ Removed \if@filesw from \makeindex and \makeglossary.
- * ltsect.dtx: Added \protected@write to \addtocontents and
- \addcontentsline.
- Added \protected@edef to \@sect.
- Added \protected@xdef to \thanks.
+ * ltsect.dtx: Added \protected@write to \addtocontents and
+ \addcontentsline.
+ Added \protected@edef to \@sect.
+ Added \protected@xdef to \thanks.
- * ltxref.dtx: Added \protected@write to \label.
- Added \protected@edef to \refstepcounter.
+ * ltxref.dtx: Added \protected@write to \label.
+ Added \protected@edef to \refstepcounter.
- * ltmiscen.dtx: Removed setting of \protect from \@writefile.
+ * ltmiscen.dtx: Removed setting of \protect from \@writefile.
- * lterror.dtx: Added \set@display@protect to messages.
+ * lterror.dtx: Added \set@display@protect to messages.
- * ltfiles.dtx: Added \protected@write and a new definition of
- \nofiles.
+ * ltfiles.dtx: Added \protected@write and a new definition of
+ \nofiles.
- * ltdefns.dtx: Added \x@protect and a new mechanism for protecting
- short commands.
- Added commands for safely performing edefs.
- Added \set@display@protect to \typeout
+ * ltdefns.dtx: Added \x@protect and a new mechanism for protecting
+ short commands.
+ Added commands for safely performing edefs.
+ Added \set@display@protect to \typeout
1994-11-03 David Carlisle <latex-bugs@latex-project.org>
* ltdirchk.dtx: Check that latex.ltx is used with an initex with
- no format preloaded. (VMS initex defaults to loading
- plain.fmt)
+ no format preloaded. (VMS initex defaults to loading
+ plain.fmt)
* ltdefns.dtx: rename \long@def to \l@ngrel@x
@@ -8878,7 +9000,7 @@ All changes above are only part of the development branch for the next release.
1994-11-02 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Wrapped long lines.
+ * ltoutenc.dtx: Wrapped long lines.
1994-10-31 David Carlisle <latex-bugs@latex-project.org>
@@ -8886,63 +9008,63 @@ All changes above are only part of the development branch for the next release.
1994-10-31 Alan Jeffrey <latex-bugs@latex-project.org>
- * Makefile: Added inputenc.dst and ltoutenc.dst, and inputenc.dtx.
+ * Makefile: Added inputenc.dst and ltoutenc.dst, and inputenc.dtx.
- * fontdef.dtx: Added OMLenc.def.
+ * fontdef.dtx: Added OMLenc.def.
- * unpack2e.ins: Added inputenc.ins.
+ * unpack2e.ins: Added inputenc.ins.
- * unpacked.txt: Added inputenc.sty, font encoding and input
- encoding files.
+ * unpacked.txt: Added inputenc.sty, font encoding and input
+ encoding files.
- * fntguide.tex: Added documentation on the new text declaration
- commands.
+ * fntguide.tex: Added documentation on the new text declaration
+ commands.
- * usrguide.tex: Added documentation on the new text commands.
+ * usrguide.tex: Added documentation on the new text commands.
1994-10-30 Chris Rowley <latex-bugs@latex-project.org>
- * ltfloat.dtx (subsection{Floating Environments}):
+ * ltfloat.dtx (subsection{Floating Environments}):
- In float handling:
- major changes to parameter parsing, setting of local
- variables, etc;
- two-column and one-column cases merged; space hacks moved;
- colour support improved and corrected, including extra boxes.
- In marginpars:
- colour support improved and corrected, including extra boxes.
- In footnotes:
- colour support improved.
+ In float handling:
+ major changes to parameter parsing, setting of local
+ variables, etc;
+ two-column and one-column cases merged; space hacks moved;
+ colour support improved and corrected, including extra boxes.
+ In marginpars:
+ colour support improved and corrected, including extra boxes.
+ In footnotes:
+ colour support improved.
- * ltoutput.dtx (subsection{Floats}):
+ * ltoutput.dtx (subsection{Floats}):
- Small changes to documentation
- Added colour support to \@topnewpage
- Added colour support for footnotes to \@makecol
- Added warning to \@fpsadddefault
+ Small changes to documentation
+ Added colour support to \@topnewpage
+ Added colour support for footnotes to \@makecol
+ Added warning to \@fpsadddefault
- * ltdefns.dtx (subsection{Internal defining commands}):
+ * ltdefns.dtx (subsection{Internal defining commands}):
- Added \@onelevel@sanitize
+ Added \@onelevel@sanitize
1994-10-30 Alan Jeffrey <latex-bugs@latex-project.org>
- * cmfonts.dst: Added OMScmnr and OMLcmr.
+ * cmfonts.dst: Added OMScmnr and OMLcmr.
- * cmfonts.fdd: Added OMScmr and OMLcmr.
+ * cmfonts.fdd: Added OMScmr and OMLcmr.
- * ltxguide.cls: Added \NEWdescription, \NEWfeature and the
- optional argument to desc.
+ * ltxguide.cls: Added \NEWdescription, \NEWfeature and the
+ optional argument to desc.
- * ltoutenc.dst: Added OMLenc.def.
+ * ltoutenc.dst: Added OMLenc.def.
- * ltoutenc.dtx: added encoding-specific commands from ltmath.
- Added OML encoding.
- Added \textcircled and removed \textregistered.
- Added \DeclareTextCompositeCommand.
- Added \t.
+ * ltoutenc.dtx: added encoding-specific commands from ltmath.
+ Added OML encoding.
+ Added \textcircled and removed \textregistered.
+ Added \DeclareTextCompositeCommand.
+ Added \t.
- * ltmath.dtx: Removed encoding-specific commands to ltoutenc.
+ * ltmath.dtx: Removed encoding-specific commands to ltoutenc.
1994-10-29 Johannes Braams <latex-bugs@latex-project.org>
@@ -8964,17 +9086,17 @@ All changes above are only part of the development branch for the next release.
1994-10-29 Alan Jeffrey <latex-bugs@latex-project.org>
- * fontsmpl.dtx: Added tests for \copyright, \dots and
- \textregistered.
+ * fontsmpl.dtx: Added tests for \copyright, \dots and
+ \textregistered.
- * ltmath.dtx: Added \mathellipsis, \mathparagraph, etc.
- Removed all of the oldcomments and generally tidied up.
- Added \DeclareMathOperator.
+ * ltmath.dtx: Added \mathellipsis, \mathparagraph, etc.
+ Removed all of the oldcomments and generally tidied up.
+ Added \DeclareMathOperator.
- * ltoutenc.dtx: Added copyright and textregistered.
- Renamed the text versions of \P, \S, etc. to \textparagraph,
- \textsection, etc.
- Added the definitions of \dots etc. which work in math and text.
+ * ltoutenc.dtx: Added copyright and textregistered.
+ Renamed the text versions of \P, \S, etc. to \textparagraph,
+ \textsection, etc.
+ Added the definitions of \dots etc. which work in math and text.
1994-10-28 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -8983,17 +9105,17 @@ All changes above are only part of the development branch for the next release.
1994-10-28 Alan Jeffrey <latex-bugs@latex-project.org>
- * unpack2e.ins: Added OMSenc.def.
+ * unpack2e.ins: Added OMSenc.def.
- * fontsmpl.dtx: Added the text commands defined in ltoutenc.dtx.
+ * fontsmpl.dtx: Added the text commands defined in ltoutenc.dtx.
- * asajtest.ins: An installation file for asajtest.dtx.
+ * asajtest.ins: An installation file for asajtest.dtx.
- * asajtest.tex: A test file for ltoutenc.dtx. This should become
- part of the test suite eventually.
+ * asajtest.tex: A test file for ltoutenc.dtx. This should become
+ part of the test suite eventually.
- * asajtest.dtx: This is a scratch version of ltoutenc.dtx.
- Rewrote the enc.def files to use the new default settings.
+ * asajtest.dtx: This is a scratch version of ltoutenc.dtx.
+ Rewrote the enc.def files to use the new default settings.
1994-10-27 David Carlisle <latex-bugs@latex-project.org>
@@ -9001,11 +9123,11 @@ All changes above are only part of the development branch for the next release.
1994-10-27 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Removed loading of enc.def files.
+ * ltoutenc.dtx: Removed loading of enc.def files.
- * fontdef.dtx: Added OMSenc.def.
+ * fontdef.dtx: Added OMSenc.def.
- * ltoutenc.dst: Added OMSenc.def.
+ * ltoutenc.dst: Added OMSenc.def.
1994-10-26 David Carlisle <latex-bugs@latex-project.org>
@@ -9014,22 +9136,22 @@ All changes above are only part of the development branch for the next release.
1994-10-25 David Carlisle <latex-bugs@latex-project.org>
* ltdefns.dtx: Add documentation of star form of \newcommand.
- Remove all `oldcomments' environments.
- Add lots of `macro' environments.
+ Remove all `oldcomments' environments.
+ Add lots of `macro' environments.
* ltboxes.dtx: missing % in \@isavepicbox (was in ltpatch.ltx)
1994-10-25 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Added default encodings.
- Added \ProvideTextCommand and \ProvideTextCommandDefault.
- Added the OMS encoding.
+ * ltoutenc.dtx: Added default encodings.
+ Added \ProvideTextCommand and \ProvideTextCommandDefault.
+ Added the OMS encoding.
1994-10-24 Chris Rowley <latex-bugs@latex-project.org>
* ltmath.dtx:
- Removed a TAB
+ Removed a TAB
1994-10-24 David Carlisle <latex-bugs@latex-project.org>
@@ -9040,8 +9162,8 @@ All changes above are only part of the development branch for the next release.
* ltmath.dtx:
- Added \normalcolor to \@eqnnum
- Removed braces from \ensuremath
+ Added \normalcolor to \@eqnnum
+ Removed braces from \ensuremath
1994-10-20 David Carlisle <latex-bugs@latex-project.org>
@@ -9054,11 +9176,11 @@ All changes above are only part of the development branch for the next release.
1994-10-20 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dtx: Split characters into text-only and math-only.
- Reded some of the \providecommand's in latin1.def.
+ * inputenc.dtx: Split characters into text-only and math-only.
+ Reded some of the \providecommand's in latin1.def.
- * latex209.dtx: Corrected a typo---\mark{}{} should have been
- \mark{{}{}}.
+ * latex209.dtx: Corrected a typo---\mark{}{} should have been
+ \mark{{}{}}.
1994-10-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -9069,8 +9191,8 @@ All changes above are only part of the development branch for the next release.
1994-10-18 David Carlisle <latex-bugs@latex-project.org>
* ltdefns.dtx: Add *-forms to define non-long variants of
- commands.
- Add extra check so \newenvironment{graf} generates an error.
+ commands.
+ Add extra check so \newenvironment{graf} generates an error.
* ltfiles.dtx: move \listfiles and \@addtofilelist here.
@@ -9078,29 +9200,29 @@ All changes above are only part of the development branch for the next release.
1994-10-17 Alan Jeffrey <latex-bugs@latex-project.org>
- * latex209.dtx: Added empty initial mark.
- New method of switching off 2e commands.
- Allow \newcommand on 2e commands.
+ * latex209.dtx: Added empty initial mark.
+ New method of switching off 2e commands.
+ Allow \newcommand on 2e commands.
1994-10-16 Chris Rowley <latex-bugs@latex-project.org>
* ltsect.dtx:
- Added \normalcolor to page-numbers in toc
+ Added \normalcolor to page-numbers in toc
* ltfntcmd.dtx:
- Tidying, and typos fixed in documentation
- Added check for empty text
- Removed space from \nfss@text
- Renamed \check@nocorr to \text@command:
- to improve error messages
+ Tidying, and typos fixed in documentation
+ Added check for empty text
+ Removed space from \nfss@text
+ Renamed \check@nocorr to \text@command:
+ to improve error messages
* ltboxes.dtx (section{\LaTeX\ Box commands}):
Added \long to \fbox, \mbox, \sbox (from ltpatch)
\leavevmode corrected for frame boxes (from ltpatch)
- \@parboxto macro added to \@iiiparbox,
+ \@parboxto macro added to \@iiiparbox,
to remove misuse of \@empty
1994-10-16 David Carlisle <latex-bugs@latex-project.org>
@@ -9130,7 +9252,7 @@ All changes above are only part of the development branch for the next release.
1994-10-14 David Carlisle <latex-bugs@latex-project.org>
* latexbug.tex: Add latexbug.cfg system, so that personal
- details do not need to be entered every time.
+ details do not need to be entered every time.
1994-10-14 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -9173,16 +9295,16 @@ All changes above are only part of the development branch for the next release.
1994-10-11 David Carlisle <latex-bugs@latex-project.org>
* ltdirchk.dtx: Redo ltxcheck: more friendly messages, check
- for TeX3.14, and missing fonts.
- Add automatic detection of TeX3.14 (previously in ltpatch.ltx)
+ for TeX3.14, and missing fonts.
+ Add automatic detection of TeX3.14 (previously in ltpatch.ltx)
* latexbug.tex: Modify to prompt for synopsis information.
1994-10-07 Alan Jeffrey <latex-bugs@latex-project.org>
- * pastex.txt: Installation guide for PasTeX on the Amiga.
+ * pastex.txt: Installation guide for PasTeX on the Amiga.
- * ltoutenc.dtx: Moved ogonek accent.
+ * ltoutenc.dtx: Moved ogonek accent.
1994-09-26 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -9212,10 +9334,10 @@ All changes above are only part of the development branch for the next release.
1994-09-23 Alan Jeffrey <latex-bugs@latex-project.org>
- * latex209.dtx: Added spaces to \@halfmag and friends.
+ * latex209.dtx: Added spaces to \@halfmag and friends.
- * ltxguide.cls: Replaced \PassOptionsToPackage{article} by
- \PassOptionsToClass{article}.
+ * ltxguide.cls: Replaced \PassOptionsToPackage{article} by
+ \PassOptionsToClass{article}.
1994-09-21 David Carlisle <latex-bugs@latex-project.org>
@@ -9237,17 +9359,17 @@ All changes above are only part of the development branch for the next release.
1994-09-04 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dtx: Added \cs{DeclareInputComposite} and the
- \cs{ProvidesCommand}s to the encoding files.
- Removed the definition of the accent slots in Latin-1.
+ * inputenc.dtx: Added \cs{DeclareInputComposite} and the
+ \cs{ProvidesCommand}s to the encoding files.
+ Removed the definition of the accent slots in Latin-1.
1994-08-31 Alan Jeffrey <latex-bugs@latex-project.org>
- * oztex.txt: Checked in revised version from Andrew.
+ * oztex.txt: Checked in revised version from Andrew.
1994-08-30 Alan Jeffrey <latex-bugs@latex-project.org>
- * yandytex.txt: Checked in revised version from Berthold.
+ * yandytex.txt: Checked in revised version from Berthold.
1994-08-26 Johannes Braams <latex-bugs@latex-project.org>
@@ -9261,8 +9383,8 @@ All changes above are only part of the development branch for the next release.
1994-08-24 Alan Jeffrey <latex-bugs@latex-project.org>
- * tlb0143.lvt, tlb0162.lvt, tlb0380.lvt, tlb0498.lvt, tlb0642.lvt,
- tlb0830.lvt: Checked in.
+ * tlb0143.lvt, tlb0162.lvt, tlb0380.lvt, tlb0498.lvt, tlb0642.lvt,
+ tlb0830.lvt: Checked in.
1994-08-09 David Carlisle <latex-bugs@latex-project.org>
@@ -9280,11 +9402,11 @@ All changes above are only part of the development branch for the next release.
1994-07-27 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltnews.cls: Replaced \PassOptionToClass by \PassOptionsToClass.
+ * ltnews.cls: Replaced \PassOptionToClass by \PassOptionsToClass.
1994-07-25 Alan Jeffrey <latex-bugs@latex-project.org>
- * microtex.txt: Removed extraneous \dump.
+ * microtex.txt: Removed extraneous \dump.
1994-07-18 David Carlisle <latex-bugs@latex-project.org>
@@ -9293,13 +9415,13 @@ All changes above are only part of the development branch for the next release.
1994-07-18 Alan Jeffrey <latex-bugs@latex-project.org>
- * microtex.txt: Added installation guide for MicroTeX.
+ * microtex.txt: Added installation guide for MicroTeX.
1994-07-14 Alan Jeffrey <latex-bugs@latex-project.org>
- * inputenc.dtx: Replaced \Dh by \DH and \Th by \TH.
- Added \ensuremath to the math commands.
- Added \inputencoding.
+ * inputenc.dtx: Replaced \Dh by \DH and \Th by \TH.
+ Added \ensuremath to the math commands.
+ Added \inputencoding.
1994-07-13 Johannes Braams <latex-bugs@latex-project.org>
@@ -9331,7 +9453,7 @@ All changes above are only part of the development branch for the next release.
1994-07-13 Alan Jeffrey <latex-bugs@latex-project.org>
- * fontsmpl.dtx: Added an \upshape.
+ * fontsmpl.dtx: Added an \upshape.
1994-07-11 Johannes Braams <latex-bugs@latex-project.org>
@@ -9364,9 +9486,9 @@ All changes above are only part of the development branch for the next release.
* ltpatch.ltx:
Added patches for:
- \mathit in text mode
- \loop could do one iteration too much in certain situations
- T1 breaks german 2.4a (this is a german.sty problem actually)
+ \mathit in text mode
+ \loop could do one iteration too much in certain situations
+ T1 breaks german 2.4a (this is a german.sty problem actually)
* patches.txt:
Added descritions of further patch level 3 patches.
@@ -9374,33 +9496,33 @@ All changes above are only part of the development branch for the next release.
1994-06-30 Chris Rowley <latex-bugs@latex-project.org>
- * fntguide.tex
+ * fntguide.tex
Warning about enc.def commands added
Stuff on font definition files and encoding definition files
changed
- <cdp> removed, for consistency, use <encoding> throughout
- Small edits
+ <cdp> removed, for consistency, use <encoding> throughout
+ Small edits
- * clsguide.tex
+ * clsguide.tex
Michael's amendments added
1994-06-26 Chris Rowley <latex-bugs@latex-project.org>
- * usrguide.tex
+ * usrguide.tex
Minor edits
- * clsguide.tex
+ * clsguide.tex
Added stuff
Changed usage of <>
Reordered update stuff
Added Summary sheet
- Removed draft status
+ Removed draft status
- * ltxguide.cls
+ * ltxguide.cls
1994-06-23 Johannes Braams <latex-bugs@latex-project.org>
@@ -9423,7 +9545,7 @@ All changes above are only part of the development branch for the next release.
\test..{} problem
Changed usage of <>
- Changed definition of verbatim
+ Changed definition of verbatim
1994-06-22 Chris Rowley <latex-bugs@latex-project.org>
@@ -9432,17 +9554,17 @@ All changes above are only part of the development branch for the next release.
Removed space from \DeclareTextCommand
Improved error messages from \DeclareTextCommand
- * usrguide.tex
+ * usrguide.tex
Changed usage of <>
- * clsguide.tex
+ * clsguide.tex
Added stuff
Changed usage of <>
Rationalised encoding stuff
- * fntguide.tex
+ * fntguide.tex
Rationalised usage of cdp, ENC, encoding
Changed usage of <>
@@ -9460,18 +9582,18 @@ All changes above are only part of the development branch for the next release.
* usrguide.tex
- Added stuff on project, money etc.
+ Added stuff on project, money etc.
* fntguide.tex
- Corrcted largesymbols stuff.
+ Corrcted largesymbols stuff.
- * clsguide.tex
+ * clsguide.tex
Major revision and additons.
- Spell checked.
- Removed \typeouts.
- Removed overfull boxes.
+ Spell checked.
+ Removed \typeouts.
+ Removed overfull boxes.
* ltfntcmd.dtx:
@@ -9491,15 +9613,15 @@ All changes above are only part of the development branch for the next release.
* template.txt
- Changed 2e to new.
+ Changed 2e to new.
* fntguide.tex
- Tidying.
+ Tidying.
- * directex.txt
+ * directex.txt
- Corrected layout.
+ Corrected layout.
1994-06-12 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -9507,7 +9629,7 @@ All changes above are only part of the development branch for the next release.
distrib/unpacked.
* ltpatch.dtx: Don't set catcodes of upper 128 characters in
- TeX2.
+ TeX2.
* manifest.txt: Added directex.txt.
@@ -9523,42 +9645,42 @@ All changes above are only part of the development branch for the next release.
Removed these typeouts:
\typeout{CONTENTS OF THE TOOLS BUNDLE: needs checking}
\typeout{Marion said: Perhaps the different uses of
- `newcommand and `providecommand can be shown a bit clearer}
+ `newcommand and `providecommand can be shown a bit clearer}
\typeout{List of stuff in mfnfss, psnfss, babel not done}
* fntguide.tex
- Editorial changes.
- Removed duplicated text.
- Removed unwanted blank lines.
+ Editorial changes.
+ Removed duplicated text.
+ Removed unwanted blank lines.
* emtex.txt
- Added section on memory problems.
+ Added section on memory problems.
- * directex.txt
+ * directex.txt
- New file added.
+ New file added.
- * install.txt
+ * install.txt
- Added new file to list.
+ Added new file to list.
- * readme.txt
+ * readme.txt
- Editorial changes.
- Added patches.txt, etc.
+ Editorial changes.
+ Added patches.txt, etc.
* patches.txt
- Editorial changes.
- Removed references to lists.
+ Editorial changes.
+ Removed references to lists.
Documented lack of lists.
* ltfntcmd.dtx
- Corrected documentation, title etc.
- Corrected dates in changes entries.
+ Corrected documentation, title etc.
+ Corrected dates in changes entries.
1994-06-11 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -9613,13 +9735,13 @@ All changes above are only part of the development branch for the next release.
1994-06-06 Rainer Schoepf <latex-bugs@latex-project.org>
* Makefile.dist: Changed mv to cp, added installation of *.ist
- files, added target `clean'.
+ files, added target `clean'.
* manifest.txt: Changed name of distributed Makefile from
- Makefile to Makefile.unx.
+ Makefile to Makefile.unx.
* Makefile: Changed name of distributed Makefile from Makefile
- to Makefile.unx.
+ to Makefile.unx.
1994-06-03 Chris Rowley <latex-bugs@latex-project.org>
@@ -9688,7 +9810,7 @@ All changes above are only part of the development branch for the next release.
1994-06-01 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltnews01.tex: Corrected grammar.
+ * ltnews01.tex: Corrected grammar.
1994-05-31 Chris Rowley <latex-bugs@latex-project.org>
@@ -9718,15 +9840,15 @@ All changes above are only part of the development branch for the next release.
1994-05-31 Alan Jeffrey <latex-bugs@latex-project.org>
- * latex209.dtx: Added SLiTeX logo again.
+ * latex209.dtx: Added SLiTeX logo again.
- * ltnews01.tex: Finished off.
+ * ltnews01.tex: Finished off.
- * ltnews.cls: Added downloaded PS fonts options.
- Removed angle brackets from <...> since these were the last
- remaining bitmaps!
- Added variants of the LaTeX logo.
- Added the ltnews.cfg file.
+ * ltnews.cls: Added downloaded PS fonts options.
+ Removed angle brackets from <...> since these were the last
+ remaining bitmaps!
+ Added variants of the LaTeX logo.
+ Added the ltnews.cfg file.
1994-05-30 Johannes Braams <latex-bugs@latex-project.org>
@@ -9746,8 +9868,8 @@ All changes above are only part of the development branch for the next release.
eufrak from main distribution to extra package directory..
* manifest.txt: Moved pandora, oldgerm, amsfonts, euscript,
- eufrak from main distribution to extra package directory.
- Removed features.tex from distribution.
+ eufrak from main distribution to extra package directory.
+ Removed features.tex from distribution.
1994-05-30 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -9756,21 +9878,21 @@ All changes above are only part of the development branch for the next release.
1994-05-30 Alan Jeffrey <latex-bugs@latex-project.org>
- * usrguide.tex: Removed the description of mfnfss and tools
- packages.
- Removed sections that were commented out.
- Removed typeouts.
- Wrapped long lines.
- Rewrote to remove overfull hboxes.
- Moved the stuff on \newmathalphabet to the section on LaTeX
- errors.
- Rewrote the stuff on latex209.cfg, and replaced
- \PassOptionsToClass (which requires you to list all the
- known classes) with \ds@oldlfont.
- Added the `LaTeX2e command in LaTeX 2.09 document' error.
- Added the SLiTeX logo to the list of unsupported commands.
- Added the full list of \text..., \...family, \...series, \...shape
- and \math... commands.
+ * usrguide.tex: Removed the description of mfnfss and tools
+ packages.
+ Removed sections that were commented out.
+ Removed typeouts.
+ Wrapped long lines.
+ Rewrote to remove overfull hboxes.
+ Moved the stuff on \newmathalphabet to the section on LaTeX
+ errors.
+ Rewrote the stuff on latex209.cfg, and replaced
+ \PassOptionsToClass (which requires you to list all the
+ known classes) with \ds@oldlfont.
+ Added the `LaTeX2e command in LaTeX 2.09 document' error.
+ Added the SLiTeX logo to the list of unsupported commands.
+ Added the full list of \text..., \...family, \...series, \...shape
+ and \math... commands.
1994-05-29 Johannes Braams <latex-bugs@latex-project.org>
@@ -9799,40 +9921,40 @@ All changes above are only part of the development branch for the next release.
1994-05-29 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltxguide.cls: Added italic correction to <...>.
- Added \sourcecode.
-
- * fntguide.tex: Corrected typos spotted by FMi.
- Added the `math selection commands' section.
- Replaced the notion of math font attributes with a description
- closer to that in the Companion.
- Moved stuff on declaring encodings into its own section
- Moved stuff on font installation into its own section.
- Moved stuff on initialization into its own section.
- Moved stuff on naming conventions into its own section.
- Moved DeclareFixedFont into text font selection.
- Added text to the introduction.
- Moved all of the enc.def file commands into one subsection.
- Moved everything that's left without a home into the `miscellania'
- section.
- Generally tidied up.
+ * ltxguide.cls: Added italic correction to <...>.
+ Added \sourcecode.
+
+ * fntguide.tex: Corrected typos spotted by FMi.
+ Added the `math selection commands' section.
+ Replaced the notion of math font attributes with a description
+ closer to that in the Companion.
+ Moved stuff on declaring encodings into its own section
+ Moved stuff on font installation into its own section.
+ Moved stuff on initialization into its own section.
+ Moved stuff on naming conventions into its own section.
+ Moved DeclareFixedFont into text font selection.
+ Added text to the introduction.
+ Moved all of the enc.def file commands into one subsection.
+ Moved everything that's left without a home into the `miscellania'
+ section.
+ Generally tidied up.
1994-05-28 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltxguide.cls: Made << and >> produce < and > inside verbatim.
- Added ltxguide.cfg.
-
- * fntguide.tex: Created file out of features.tex.
- Redid document structure to fit with usrguide and clsguide.
- Removed stuff on old style digits.
- Moved text font stuff before math font stuff.
- Removed `utilities' section.
- Removed the author font commands (covered by usrguide).
- Added description of the text font attributes.
- Redid the description of the \f@... commands.
- Redid the description of the \...default commands.
- Added the section on the \DeclareTextWidget commands.
- Added the section on math attributes.
+ * ltxguide.cls: Made << and >> produce < and > inside verbatim.
+ Added ltxguide.cfg.
+
+ * fntguide.tex: Created file out of features.tex.
+ Redid document structure to fit with usrguide and clsguide.
+ Removed stuff on old style digits.
+ Moved text font stuff before math font stuff.
+ Removed `utilities' section.
+ Removed the author font commands (covered by usrguide).
+ Added description of the text font attributes.
+ Redid the description of the \f@... commands.
+ Redid the description of the \...default commands.
+ Added the section on the \DeclareTextWidget commands.
+ Added the section on math attributes.
1994-05-27 Johannes Braams <latex-bugs@latex-project.org>
@@ -9864,17 +9986,17 @@ All changes above are only part of the development branch for the next release.
* tlb0438.tlg: Line number change in exscale package.
* Makefile: Renamed unpack2e.ins to unpack.ins and latex2e.ltx
- to latex.ltx, renamed format file to latex.fmt. Added test
- tlb0483.
+ to latex.ltx, renamed format file to latex.fmt. Added test
+ tlb0483.
* manifest.txt: Renamed unpack2e.ins to unpack.ins and
- latex2e.ltx to latex.ltx, rearranged a few lines.
+ latex2e.ltx to latex.ltx, rearranged a few lines.
* unpack2e.ins: Renamed unpack2e.ins to unpack.ins and
- latex2e.ltx to latex.ltx.
+ latex2e.ltx to latex.ltx.
* unpacked.txt: Renamed unpack2e.ins to unpack.ins and
- latex2e.ltx to latex.ltx.
+ latex2e.ltx to latex.ltx.
* tracefnt.dtx: Changed copyright line.
@@ -9905,15 +10027,15 @@ All changes above are only part of the development branch for the next release.
1994-05-27 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltnews01.tex: Corrected filenames of usrguie and clsguide.
- Removed ltnews.cls from filecontents.
+ * ltnews01.tex: Corrected filenames of usrguie and clsguide.
+ Removed ltnews.cls from filecontents.
- * ltnews.cls: Checked this in. Added angle brackets to <...>.
- Added AMS and SliTeX logos.
+ * ltnews.cls: Checked this in. Added angle brackets to <...>.
+ Added AMS and SliTeX logos.
- * latex209.dtx: Added SliTeX logo.
+ * latex209.dtx: Added SliTeX logo.
- * ltxguide.cls: Added SliTeX logo.
+ * ltxguide.cls: Added SliTeX logo.
1994-05-26 Johannes Braams <latex-bugs@latex-project.org>
@@ -9963,7 +10085,7 @@ All changes above are only part of the development branch for the next release.
* ltxdoc.dtx: Add silent substitution for bold tt.
* ltdirchk.dtx: Fix bug in Mac parser. typo " should have been :
- (reported by Andrew Trevorrow)
+ (reported by Andrew Trevorrow)
* ltbibl.dtx: Add initial documentation section.
@@ -10072,12 +10194,12 @@ All changes above are only part of the development branch for the next release.
* manifest.txt: Added changes.txt.
* ltsect.dtx (\@dottedtocline): Put braces around argument 4
- (the actual toc entry) to avoid font (and possibly other)
- changes leaking out to the leaders.
+ (the actual toc entry) to avoid font (and possibly other)
+ changes leaking out to the leaders.
* vlatex01.tlg: Updated for extra lines around warning
- messages, removed trailing space in error help messages.
- Change in strut for footnotes causes blank line to disappear.
+ messages, removed trailing space in error help messages.
+ Change in strut for footnotes causes blank line to disappear.
* tnfss7.tlg: Update for new \protect handling, updated for new
values of \sfcode and correct \hbar accent.
@@ -10110,12 +10232,12 @@ All changes above are only part of the development branch for the next release.
1994-05-25 Alan Jeffrey <latex-bugs@latex-project.org>
- * clsguide.tex: Added introduction.
- Added section on command naming.
- Added section on docstrip.
- Added details of option processing.
- Added example of DeclareRobustCommand.
- Checked the document in with the server.
+ * clsguide.tex: Added introduction.
+ Added section on command naming.
+ Added section on docstrip.
+ Added details of option processing.
+ Added example of DeclareRobustCommand.
+ Checked the document in with the server.
1994-05-24 Chris Rowley <latex-bugs@latex-project.org>
@@ -10173,19 +10295,19 @@ All changes above are only part of the development branch for the next release.
1994-05-24 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltxguide.tex: Checked in document class.
+ * ltxguide.tex: Checked in document class.
- * clsguide.tex: Added sections on 2e font commands, defining \rm
- etc., and obsolete commands.
- Added stuff about \normalsize, \textheight and \textwidth being the
- only mandatory commands.
- Implemented Frank's suggestions for additions to the `loading other
- files' section (which is now a subsection of `upgrading').
- Added stuff on why primitive \input is a bad idea.
- Added stuff on boxes and colour.
- Moved general style stuff to overview section rather than 2.09
- section.
- Added newsletter example.
+ * clsguide.tex: Added sections on 2e font commands, defining \rm
+ etc., and obsolete commands.
+ Added stuff about \normalsize, \textheight and \textwidth being the
+ only mandatory commands.
+ Implemented Frank's suggestions for additions to the `loading other
+ files' section (which is now a subsection of `upgrading').
+ Added stuff on why primitive \input is a bad idea.
+ Added stuff on boxes and colour.
+ Moved general style stuff to overview section rather than 2.09
+ section.
+ Added newsletter example.
1994-05-23 David Carlisle <latex-bugs@latex-project.org>
@@ -10323,10 +10445,10 @@ All changes above are only part of the development branch for the next release.
1994-05-23 Alan Jeffrey <latex-bugs@latex-project.org>
- * clsguide.tex: Redid document structure to be more like
- usrguide.
- Added section on class/package structure.
- Restructured the commands list.
+ * clsguide.tex: Redid document structure to be more like
+ usrguide.
+ Added section on class/package structure.
+ Restructured the commands list.
1994-05-22 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -10383,27 +10505,27 @@ All changes above are only part of the development branch for the next release.
1994-05-22 Alan Jeffrey <latex-bugs@latex-project.org>
- * usrguide.tex: Rewrote description of the new argument to
- \newcommand.
- Added section on classes and packages, on package options, and on
- standard classes and packages.
- Added some examples.
- Added filecontents* and paragraph on what files can be sent.
- Added section on latexsym in `old commands'.
- Rewrote some stuff on 2.09 documents.
- Added section on \frontmatter, \mainmatter and \backmatter.
- Wrote `problems' section, including new error messages, stuff on
- \tenrm and friends, old versions of files, and submitting a bug
- report.
- Added overview.
-
- * lterror.dtx: Replaced braces with begingroup, to stop mathords
- from sneaking into math mode.
- Replaced \@generic@message and \@generic@error by \GenericError,
- \GenericWarning and \GenericInfo.
- Made \GenericError, \GenericWarning and \GenericInfor robust.
- Replaced \\ and ~ by \MessageBreak and \space.
- Replaced \string by \protect in some messages.
+ * usrguide.tex: Rewrote description of the new argument to
+ \newcommand.
+ Added section on classes and packages, on package options, and on
+ standard classes and packages.
+ Added some examples.
+ Added filecontents* and paragraph on what files can be sent.
+ Added section on latexsym in `old commands'.
+ Rewrote some stuff on 2.09 documents.
+ Added section on \frontmatter, \mainmatter and \backmatter.
+ Wrote `problems' section, including new error messages, stuff on
+ \tenrm and friends, old versions of files, and submitting a bug
+ report.
+ Added overview.
+
+ * lterror.dtx: Replaced braces with begingroup, to stop mathords
+ from sneaking into math mode.
+ Replaced \@generic@message and \@generic@error by \GenericError,
+ \GenericWarning and \GenericInfo.
+ Made \GenericError, \GenericWarning and \GenericInfor robust.
+ Replaced \\ and ~ by \MessageBreak and \space.
+ Replaced \string by \protect in some messages.
1994-05-21 David Carlisle <latex-bugs@latex-project.org>
@@ -10455,20 +10577,20 @@ All changes above are only part of the development branch for the next release.
1994-05-21 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltnews01.tex: Wrote 1st draft of LaTeX News #1.
+ * ltnews01.tex: Wrote 1st draft of LaTeX News #1.
- * lterror.dtx: Made \@generic@message robust.
+ * lterror.dtx: Made \@generic@message robust.
1994-05-20 Rainer Schoepf <latex-bugs@latex-project.org>
* vtl2e06.tlg: Update for new \protect handling, change in
- format of error messages, change in glue for framed boxes.
+ format of error messages, change in glue for framed boxes.
* vlatex06.tlg: Update for new \protect handling, change in
- format of error messages, change in glue for framed boxes.
+ format of error messages, change in glue for framed boxes.
* ltpage.dtx (\marboth, \markright): Changed setting for
- \protect.
+ \protect.
* tl2e7.tlg: Update for new \protect handling.
@@ -10507,7 +10629,7 @@ All changes above are only part of the development branch for the next release.
* ltmiscen.dtx (\@writefile): Added correct setting of \protect.
* ltfloat.dtx (\@xfloat): Restore @nobreak switch inside float
- to default value false.
+ to default value false.
* ltoutput.dtx (\@outputpage): Added setting of \protect during
\shipout.
@@ -10549,19 +10671,19 @@ All changes above are only part of the development branch for the next release.
1994-05-20 Alan Jeffrey <latex-bugs@latex-project.org>
- * lterror.dtx: Fixed a bug with \@inmatherr.
+ * lterror.dtx: Fixed a bug with \@inmatherr.
- * ltfinal.dtx: Corrected checksum.
+ * ltfinal.dtx: Corrected checksum.
- * lterror.dtx: Added \@latex@info@no@line.
- Added missing full stops.
+ * lterror.dtx: Added \@latex@info@no@line.
+ Added missing full stops.
- * ltdefns.dtx: Renamed @checkcommand to CheckCommand.
+ * ltdefns.dtx: Renamed @checkcommand to CheckCommand.
- * latex209.dst: Added t1enc.sty.
+ * latex209.dst: Added t1enc.sty.
- * latex209.dtx: Changed \@finalstrut.
- Added t1enc.sty.
+ * latex209.dtx: Changed \@finalstrut.
+ Added t1enc.sty.
1994-05-19 David Carlisle <latex-bugs@latex-project.org>
@@ -10659,8 +10781,8 @@ All changes above are only part of the development branch for the next release.
reappear.
* tltc001.tlg: Change in test2e setup causes box printout to
- reappear, strut in footnotes back to old version for
- compatibility mode.
+ reappear, strut in footnotes back to old version for
+ compatibility mode.
1994-05-18 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -10689,18 +10811,18 @@ All changes above are only part of the development branch for the next release.
1994-05-18 Alan Jeffrey <latex-bugs@latex-project.org>
- * latex209.dtx: Added \@finalstrut.
+ * latex209.dtx: Added \@finalstrut.
- * ltlogos.dtx: Added the TeX logo.
- Made the LaTeX2e logo use the text font 2 rather than the math
- font 2.
+ * ltlogos.dtx: Added the TeX logo.
+ Made the LaTeX2e logo use the text font 2 rather than the math
+ font 2.
- * ltoutenc.dtx: Fixed a typo with fontenc.sty... it's
- \encodingdefault, not \defaultencoding!
+ * ltoutenc.dtx: Fixed a typo with fontenc.sty... it's
+ \encodingdefault, not \defaultencoding!
- * ltfinal.dtx: Corrected the lccode for d-bar.
+ * ltfinal.dtx: Corrected the lccode for d-bar.
- * ltoutenc.dtx: Made \.i produce i.
+ * ltoutenc.dtx: Made \.i produce i.
1994-05-17 David Carlisle <latex-bugs@latex-project.org>
@@ -10766,19 +10888,19 @@ All changes above are only part of the development branch for the next release.
1994-05-17 Alan Jeffrey <latex-bugs@latex-project.org>
- * lterror.dtx: Moved error commands from ltdefns.dtx.
+ * lterror.dtx: Moved error commands from ltdefns.dtx.
- * ltdefns.dtx: Added section on \protect. Moved error commands to
- lterror.dtx.
+ * ltdefns.dtx: Added section on \protect. Moved error commands to
+ lterror.dtx.
- * ltoutenc.dtx: Removed braces from \$ since they're now in
- nfss@text.
+ * ltoutenc.dtx: Removed braces from \$ since they're now in
+ nfss@text.
- * latex209.dtx: Fixed a bug with \ds@newlfont.
- Removed extra spaces from the missing file error.
- Commented out bezier with \iffalse...\fi rather than %% to avoid
- bezier turning up in every file.
- Corrected some documentation.
+ * latex209.dtx: Fixed a bug with \ds@newlfont.
+ Removed extra spaces from the missing file error.
+ Commented out bezier with \iffalse...\fi rather than %% to avoid
+ bezier turning up in every file.
+ Corrected some documentation.
1994-05-16 David Carlisle <latex-bugs@latex-project.org>
@@ -10786,7 +10908,7 @@ All changes above are only part of the development branch for the next release.
and add extra braces so a_\ensuremath{foo} works.
* ltoutput.dtx: Add \color@begingroup to protect \normalcolor.
- move \normalcolor out of the inner box.
+ move \normalcolor out of the inner box.
1994-05-16 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -10828,33 +10950,33 @@ All changes above are only part of the development branch for the next release.
1994-05-16 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltcntrl.dtx: Split file from ltinit.dtx.
+ * ltcntrl.dtx: Split file from ltinit.dtx.
- * ltcounts.dtx: Split file from ltinit.dtx.
+ * ltcounts.dtx: Split file from ltinit.dtx.
- * ltdefns.dtx: Split file from ltinit.dtx.
+ * ltdefns.dtx: Split file from ltinit.dtx.
- * lterror.dtx: Split file from ltinit.dtx.
+ * lterror.dtx: Split file from ltinit.dtx.
- * ltlogos.dtx: Split file from ltinit.dtx.
+ * ltlogos.dtx: Split file from ltinit.dtx.
- * ltpar.dtx: Split file from ltinit.dtx.
+ * ltpar.dtx: Split file from ltinit.dtx.
- * ltspace.dtx: Split file from ltinit.dtx.
+ * ltspace.dtx: Split file from ltinit.dtx.
- * ltoutenc.dtx: Removed \P, since it's not in the T1 encoding.
- Added \r and \k accents.
- Added \NG, \ng, \TH, \th, \DH, \dh, \DJ and \dj.
+ * ltoutenc.dtx: Removed \P, since it's not in the T1 encoding.
+ Added \r and \k accents.
+ Added \NG, \ng, \TH, \th, \DH, \dh, \DJ and \dj.
- * latex209.dtx: Fixed a bug with \mediumseries.
+ * latex209.dtx: Fixed a bug with \mediumseries.
- * ltoutenc.dtx: Redid fontenc.sty to use the new mixed-case
- encoding files.
- Fixed a bug with \pounds.
+ * ltoutenc.dtx: Redid fontenc.sty to use the new mixed-case
+ encoding files.
+ Fixed a bug with \pounds.
- * latex209.dtx: Fixed a bug with the margid option.
+ * latex209.dtx: Fixed a bug with the margid option.
- * ltfinal.dtx: Removed ot1enc.sty.
+ * ltfinal.dtx: Removed ot1enc.sty.
1994-05-15 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -10867,7 +10989,7 @@ All changes above are only part of the development branch for the next release.
1994-05-15 Alan Jeffrey <latex-bugs@latex-project.org>
- * latex209.dtx: Added the nomargid and margid options.
+ * latex209.dtx: Added the nomargid and margid options.
1994-05-14 David Carlisle <latex-bugs@latex-project.org>
@@ -10898,7 +11020,7 @@ All changes above are only part of the development branch for the next release.
code.
* tracefnt.dtx (section{Macros common to \texttt{fam.tex} and
- \texttt{tracefnt.sty}}): Added \enc@update to selectfont.
+ \texttt{tracefnt.sty}}): Added \enc@update to selectfont.
* fam.dtx (section{Macros for setting up the tables}):
Initialise \<enc>@cmd in \DeclareFontEncoding.
@@ -10910,25 +11032,25 @@ All changes above are only part of the development branch for the next release.
1994-05-14 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltoutenc.dtx: Renamed \ENC@cmd to \ENC-cmd, to avoid collisions
- with commands like \U@cmd.
+ * ltoutenc.dtx: Renamed \ENC@cmd to \ENC-cmd, to avoid collisions
+ with commands like \U@cmd.
- * ltoutenc.dst: Updated the dst file to match ltoutenc.dtx.
+ * ltoutenc.dst: Updated the dst file to match ltoutenc.dtx.
- * latex209.dtx: Redid the oldlfont and newlfont options to set the
- \@no@font@optfalse flag.
+ * latex209.dtx: Redid the oldlfont and newlfont options to set the
+ \@no@font@optfalse flag.
- * fontsmpl.dtx: Split font sample document and package out of
- ltoutenc.
+ * fontsmpl.dtx: Split font sample document and package out of
+ ltoutenc.
- * ltoutenc.dtx: Stopped commands declared with DeclareTextWidget
- from going into an infinite loop if f@encoding isn't the current
- encoding.
- Added fontenc package.
- Made ot1enc.def and t1enc.def files rather than packages.
+ * ltoutenc.dtx: Stopped commands declared with DeclareTextWidget
+ from going into an infinite loop if f@encoding isn't the current
+ encoding.
+ Added fontenc package.
+ Made ot1enc.def and t1enc.def files rather than packages.
- * latex209.dtx: Changed how 2e commands are switched off.
- Removed the date from the announcement of 2.09 mode.
+ * latex209.dtx: Changed how 2e commands are switched off.
+ Removed the date from the announcement of 2.09 mode.
1994-05-13 David Carlisle <latex-bugs@latex-project.org>
@@ -10948,10 +11070,10 @@ All changes above are only part of the development branch for the next release.
* ltboxes.dtx: New accent handling in parboxrestore.
* newlfont.dtx: \DeclareProtectedCommand now
- \DeclareRobustCommand
+ \DeclareRobustCommand
* oldlfont.dtx: \DeclareProtectedCommand now
- \DeclareRobustCommand
+ \DeclareRobustCommand
* ltpictur.dtx: Removed unnecessary braces from \@ifnextchar and
\@ifstar constructions.
@@ -11018,35 +11140,35 @@ All changes above are only part of the development branch for the next release.
1994-05-13 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltinit.dtx: Added \@backslashchar.
- Improved coding of \@ifdefinable.
+ * ltinit.dtx: Added \@backslashchar.
+ Improved coding of \@ifdefinable.
- * testdist.dtx: Improved documentation.
+ * testdist.dtx: Improved documentation.
- * emtex.l2e: Created this file.
+ * emtex.l2e: Created this file.
- * ltfinal.dtx: Loaded package ot1enc, and defined \@acci and
- friends.
+ * ltfinal.dtx: Loaded package ot1enc, and defined \@acci and
+ friends.
- * ltinit.dtx: Added logging to DeclareProtectedCommand.
+ * ltinit.dtx: Added logging to DeclareProtectedCommand.
- * ltoutenc.dtx: Renamed accents.dtx to ltoutenc.dtx.
- After all these months It's now a real bit of kernel! :-)
+ * ltoutenc.dtx: Renamed accents.dtx to ltoutenc.dtx.
+ After all these months It's now a real bit of kernel! :-)
- * accents.dtx: Replaces \space by ` ' in csname.
+ * accents.dtx: Replaces \space by ` ' in csname.
- * ltinit.dtx: Replaced \space by ` ' in \csname
+ * ltinit.dtx: Replaced \space by ` ' in \csname
- * accents.dtx: Added \{, \} and \$.
+ * accents.dtx: Added \{, \} and \$.
- * ltinit.dtx: Renamed DeclareProtectedCommand to
- DeclareRobustCommand.
- Moved DeclareRobustCommand after @gobble.
- Removed @if@short@command.
- Removed \{ and \}.
+ * ltinit.dtx: Renamed DeclareProtectedCommand to
+ DeclareRobustCommand.
+ Moved DeclareRobustCommand after @gobble.
+ Removed @if@short@command.
+ Removed \{ and \}.
- * accents.dtx: Redid all the kernel commands. Made t1.def and
- ot1.def into t1enc.sty and ot1enc.sty.
+ * accents.dtx: Redid all the kernel commands. Made t1.def and
+ ot1.def into t1enc.sty and ot1enc.sty.
1994-05-12 Braams J.L. <latex-bugs@latex-project.org>
@@ -11129,7 +11251,7 @@ All changes above are only part of the development branch for the next release.
1994-05-12 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltinit.dtx: Fixed a bug with DeclareProtectedCommand.
+ * ltinit.dtx: Fixed a bug with DeclareProtectedCommand.
1994-05-11 Braams J.L. <latex-bugs@latex-project.org>
@@ -11148,18 +11270,18 @@ All changes above are only part of the development branch for the next release.
1994-05-11 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltinit.dtx: Moved the logos to after \DeclareProtectedCommand.
- Defined them using \DeclareProtectedCommand.
- Made the SLiTeX logo use the TeX logo.
- Made \, and \hspace use \DeclareProtectedCommand.
+ * ltinit.dtx: Moved the logos to after \DeclareProtectedCommand.
+ Defined them using \DeclareProtectedCommand.
+ Made the SLiTeX logo use the TeX logo.
+ Made \, and \hspace use \DeclareProtectedCommand.
- * ltfinal.dtx: Added %%% ltfinal.dtx line.
+ * ltfinal.dtx: Added %%% ltfinal.dtx line.
- * ltinit.dtx: Added %%% ltinit.dtx line.
+ * ltinit.dtx: Added %%% ltinit.dtx line.
- * latex209.dst: Added dummy bezier.sty.
+ * latex209.dst: Added dummy bezier.sty.
- * latex209.dtx: Added dummy bezier.sty.
+ * latex209.dtx: Added dummy bezier.sty.
1994-05-10 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -11168,10 +11290,10 @@ All changes above are only part of the development branch for the next release.
1994-05-10 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltinit.dtx: Added documentation sent by DPC.
- Moved \makeatletter and \maketother into ltinit.
- Added extra ^^Js to \@latexerr.
- Removed a couple of spurious braces.
+ * ltinit.dtx: Added documentation sent by DPC.
+ Moved \makeatletter and \maketother into ltinit.
+ Added extra ^^Js to \@latexerr.
+ Removed a couple of spurious braces.
1994-05-09 Rainer Schoepf <latex-bugs@latex-project.org>
@@ -11230,9 +11352,9 @@ All changes above are only part of the development branch for the next release.
1994-05-08 Alan Jeffrey <latex-bugs@latex-project.org>
- * somedefs.dtx: Produced v0.01.
+ * somedefs.dtx: Produced v0.01.
- * rawfonts.dtx: Produced v0.01, using somedefs.dtx.
+ * rawfonts.dtx: Produced v0.01, using somedefs.dtx.
1994-05-07 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -11282,7 +11404,7 @@ All changes above are only part of the development branch for the next release.
1994-05-05 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltfinal.dtx: Added empty \errhelp.
+ * ltfinal.dtx: Added empty \errhelp.
1994-05-04 David Carlisle <latex-bugs@latex-project.org>
@@ -11334,7 +11456,7 @@ All changes above are only part of the development branch for the next release.
1994-05-03 Alan Jeffrey <latex-bugs@latex-project.org>
- * ltfinal.dtx: Set the catcode of ^^J to other.
+ * ltfinal.dtx: Set the catcode of ^^J to other.
Removed \@undefinedfonterror.
@@ -11350,16 +11472,16 @@ All changes above are only part of the development branch for the next release.
1994-05-02 Alan Jeffrey <latex-bugs@latex-project.org>
- * latex209.dtx: Redid the method of switching off 2e commands.
+ * latex209.dtx: Redid the method of switching off 2e commands.
- * ltfinal.dtx: Set all the catcodes before dumping. Made 127
- illegal.
+ * ltfinal.dtx: Set all the catcodes before dumping. Made 127
+ illegal.
- * install.l2e: Added yandytex.l2e
+ * install.l2e: Added yandytex.l2e
- * accents.dtx: Rewrote almost everything from scratch.
+ * accents.dtx: Rewrote almost everything from scratch.
- * yandytex.l2e: Installed a file from Berthold
+ * yandytex.l2e: Installed a file from Berthold
Corrected \@fontswitch.
@@ -11367,9 +11489,9 @@ All changes above are only part of the development branch for the next release.
* ltfloat.dtx (subsection{Floating Environments}):
- Added \@largefloatcheck.
+ Added \@largefloatcheck.
- Removed unnecessary braces from arguments of \@ifnextchar.
+ Removed unnecessary braces from arguments of \@ifnextchar.
1994-05-01 Braams J.L. <latex-bugs@latex-project.org>
@@ -11394,7 +11516,7 @@ All changes above are only part of the development branch for the next release.
1994-04-30 Chris Rowley <latex-bugs@latex-project.org>
- * ltinit.dtx:
+ * ltinit.dtx:
Added latexinfo commands.
@@ -11407,11 +11529,11 @@ All changes above are only part of the development branch for the next release.
Changed to, eg, v1.0l.
- * ltoutput.dtx:
+ * ltoutput.dtx:
- Rogue space removed.
+ Rogue space removed.
- Cut-off points for adding \@emptycol changed.
+ Cut-off points for adding \@emptycol changed.
Empty column action added: \@emptycol.
@@ -11577,10 +11699,10 @@ All changes above are only part of the development branch for the next release.
1994-04-21 Alan Jeffrey <latex-bugs@latex-project.org>
- * install.l2e: Corrected the wording of the bug report.
+ * install.l2e: Corrected the wording of the bug report.
- * ltfinal.dtx: Added some documentation, incorporated ltcodes.dtx.
- This now includes setting the catcodes of 128--255 to `illegal'.
+ * ltfinal.dtx: Added some documentation, incorporated ltcodes.dtx.
+ This now includes setting the catcodes of 128--255 to `illegal'.
1994-04-20 David Carlisle <latex-bugs@latex-project.org>
@@ -11606,7 +11728,7 @@ All changes above are only part of the development branch for the next release.
1994-04-20 Alan Jeffrey <latex-bugs@latex-project.org>
- * latex209.dtx: Redefined \verbatim@noligs@list.
+ * latex209.dtx: Redefined \verbatim@noligs@list.
1994-04-19 David Carlisle <latex-bugs@latex-project.org>
@@ -11639,7 +11761,7 @@ All changes above are only part of the development branch for the next release.
\no@alphabet@help removed.
* tracefnt.dtx:
- Changed line breaks and wording in some messages.
+ Changed line breaks and wording in some messages.
Removed surplus "." from some warning messages.
All warning/error messages changed to start "LaTeX Font Warning" etc.
Continuation lines are changed to "(Font)".
@@ -11650,15 +11772,15 @@ All changes above are only part of the development branch for the next release.
1994-04-18 Alan Jeffrey <latex-bugs@latex-project.org>
- * web2ctex.l2e: Changed name from unixtex.l2e. Changed the
- example shell script to look for a LATEX209INPUTS environment
- variable.
+ * web2ctex.l2e: Changed name from unixtex.l2e. Changed the
+ example shell script to look for a LATEX209INPUTS environment
+ variable.
- * install.l2e: Changed name of unixtex.l2e to
- web2ctex.l2e.
+ * install.l2e: Changed name of unixtex.l2e to
+ web2ctex.l2e.
- * latint.dtx: Changed \font@warning to \font@log for redefining
- math alphabets and symbol fonts.
+ * latint.dtx: Changed \font@warning to \font@log for redefining
+ math alphabets and symbol fonts.
1994-04-17 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -11713,10 +11835,10 @@ All changes above are only part of the development branch for the next release.
1994-04-14 Alan Jeffrey <latex-bugs@latex-project.org>
- * latexbug.tex: Changed the prompt for `a list of files' to a
- prompt for a single filename. Made latexbug look to see if it
- could find the file, and if it can, it includes the file and the
- logfile in the latexbug.msg.
+ * latexbug.tex: Changed the prompt for `a list of files' to a
+ prompt for a single filename. Made latexbug look to see if it
+ could find the file, and if it can, it includes the file and the
+ logfile in the latexbug.msg.
1994-04-12 David Carlisle <latex-bugs@latex-project.org>
@@ -11740,7 +11862,7 @@ All changes above are only part of the development branch for the next release.
1994-04-12 Alan Jeffrey <latex-bugs@latex-project.org>
- * oztex.l2e: Added warning that lines are > 80 chars
+ * oztex.l2e: Added warning that lines are > 80 chars
1994-04-11 Braams J.L. <latex-bugs@latex-project.org>
@@ -11772,18 +11894,18 @@ All changes above are only part of the development branch for the next release.
1994-04-11 Alan Jeffrey <latex-bugs@latex-project.org>
- * fam.dtx: Added `defaultscriptratio and
- `defaultscriptscriptratio.
+ * fam.dtx: Added `defaultscriptratio and
+ `defaultscriptscriptratio.
- * latex209.dtx: Switched off `enlargethispage and the `!' float
- option.
+ * latex209.dtx: Switched off `enlargethispage and the `!' float
+ option.
1994-04-10 Alan Jeffrey <latex-bugs@latex-project.org>
- * install.l2e: Split the installation guide into install.l2e,
- texpert.l2e, and system-specific oztex.l2e and unixtex.l2e files.
+ * install.l2e: Split the installation guide into install.l2e,
+ texpert.l2e, and system-specific oztex.l2e and unixtex.l2e files.
- * template.l2e: Created a template for system.l2e files.
+ * template.l2e: Created a template for system.l2e files.
1994-04-09 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -11800,15 +11922,15 @@ All changes above are only part of the development branch for the next release.
1994-04-05 Alan Jeffrey <latex-bugs@latex-project.org>
- * latex209.dtx: Switched off `lrbox, `width, `height and `depth in
- 2.09 mode.
+ * latex209.dtx: Switched off `lrbox, `width, `height and `depth in
+ 2.09 mode.
- Removed optional arguments to `parbox, `minipage and `newcommand.
+ Removed optional arguments to `parbox, `minipage and `newcommand.
- Made `ProvidesPackage and `ProvidesClass produce log entries
- rather than warnings.
+ Made `ProvidesPackage and `ProvidesClass produce log entries
+ rather than warnings.
- Removed `filedate.
+ Removed `filedate.
1994-03-31 David Carlisle <latex-bugs@latex-project.org>
@@ -12015,13 +12137,13 @@ All changes above are only part of the development branch for the next release.
Corrected unpacking for ltxdoc.cls (change of docstrip module).
* classes.dtx
- (subsubsection{The dimension of text}):
+ (subsubsection{The dimension of text}):
Use same default values for native mode as in old styles.
(section{Identification}):
Added file versions to the \Provides... commands
- (subsection{Footnotes}):
+ (subsection{Footnotes}):
Use \@makefnmark rather than its expansion in the definition
of \@makefntext.
@@ -12058,7 +12180,7 @@ All changes above are only part of the development branch for the next release.
1994-03-12 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* classes.dtx
- (section{Identification}):
+ (section{Identification}):
Removed \typeout statements since this is now handled by
\Provide...
@@ -12337,7 +12459,7 @@ All changes above are only part of the development branch for the next release.
* ltxdoc.dtx:
Added driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
Set counter StandardModuleDepth to 1, since all ltx documentation
needs that setting anyway.
@@ -12408,7 +12530,7 @@ All changes above are only part of the development branch for the next release.
* oldgerm.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
Removed extra pair of braces after \DeclareFontFamily which has
only three arguments not four.
@@ -12422,7 +12544,7 @@ All changes above are only part of the development branch for the next release.
* varioref.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
1994-02-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -12436,994 +12558,994 @@ All changes above are only part of the development branch for the next release.
* eufrak.dtx:
Changed driver code slightly.
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* euscript.dtx:
Changed driver code slightly.
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* exscale.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* nfssfont.dtx:
Added to the distribution.
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* docstrip.dtx (section{Producing the documentation}):
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* oldlfont.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* latexsym.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* newlfont.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* pandora.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* preload.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* lhyphen.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* fontdef.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
* fontcmds.dtx:
Moved the driver code in front so that the documentation can be
- processed by simply running the file through LaTeX2e.
+ processed by simply running the file through LaTeX2e.
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" \noboundaryis \relax not undef in
+ TeX2 (initialised in 2e format)
- * ltdirchk.dtx: 0.2j "General" Remove need for drv file
+ * 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
+ 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 \@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.
+ * 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 \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 \@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)
+ * 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
+ * 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.
+ * 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 \thispagestyle (DPC) Modify to get nicer
+ error message
- * ltherest.dtx: LaTeX2e \pagestyle (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
+ * ltinit.dtx: LaTeX2e "General" use \@normalsize instead of
+ \normalsizeinternally
- * ltfiles.dtx: v0.9t \document set `@normalsize or `normalsize if
- necessary
+ * 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
+ * ltclass.dtx: 0.2w \g@addto@macro Use toks register to avoid
+ `hash' problems
- * fontcmds.dtx: v3.1b "General" `@normalsize no longer defined
+ * 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 \@fileswithoptions All options raise error if
+ no \ProcessOptions\ appears
- * ltclass.dtx: 0.2v \@@unprocessedoptions Macro added.
+ * 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.
+ * 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
+ * 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.
+ * ltplain.dtx: LaTeX2e \bordermatrix Removed \p@renwd.
- * ltdirchk.dtx: 0.2i "General" Protect against looping on
- \@@input and \@@end
+ * 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.
+ * ltherest.dtx: LaTeX2e \pagestyle (DPC) Complain if pagestyle is
+ undefined.
- * ltdirchk.dtx: 0.2h \IfFileExists Stop testing once texsys.aux
- has been found
+ * 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.
+ * ltmiscen.dtx: v0.9s \verbatim@font Removed unnecessary category
+ code hackery.
- * ltherest.dtx: LaTeX2e \@xfloat Added missing percent
- characters.
+ * ltherest.dtx: LaTeX2e \@xfloat Added missing percent
+ characters.
- * ltdirchk.dtx: 0.2g \today Name changeed from \stamp, to save
- memory
+ * 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 \filename@parse Minor changes, and add Mac
+ version (:)
- * ltdirchk.dtx: 0.2g "General" Improve documentation, reorganise
- docstrip module
+ * ltdirchk.dtx: 0.2g "General" Improve documentation, reorganise
+ docstrip module
- * ltclass.dtx: 0.2u \documentstyle compatibility file now
- latex209.def.
+ * 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 \IfFileExists \@copytexsys removed
- * ltdirchk.dtx: 0.2f "General" \@copytexsys and the texsys.new
- file removed
+ * ltdirchk.dtx: 0.2f "General" \@copytexsys and the texsys.new
+ file removed
- * ltdirchk.dtx: 0.2f "General" Modify all of ltxcheck
+ * 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 \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 \input@path No longer check that an empty
+ group is in the path
- * ltdirchk.dtx: 0.2e \IfFileExists name changed from \test
+ * 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
+ * ltmiscen.dtx: v0.9p \@verbatim Only add \penaltyif in hmode
- * ltherest.dtx: LaTeX2e \bibliography Use \@input@ so include
- files are listed.
+ * 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 \include Use \@input@ so include files are
+ listed.
- * ltfiles.dtx: v0.9p \InputIfFileExists New Definition
+ * ltfiles.dtx: v0.9p \InputIfFileExists New Definition
- * ltfiles.dtx: v0.9p \IfFileExists New Definition
+ * ltfiles.dtx: v0.9p \IfFileExists New Definition
- * ltfiles.dtx: v0.9p \@input@ Macro added
+ * 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 \@input do not use a different definition
+ for \input@path
- * ltfiles.dtx: v0.9p \@iffileonpath Macro added
+ * ltfiles.dtx: v0.9p \@iffileonpath Macro added
- * ltfiles.dtx: v0.9p \@break@loop Macro added
+ * ltfiles.dtx: v0.9p \@break@loop Macro added
- * ltclass.dtx: 0.2t \@ifclassloaded Fix typo \@pkgetension
+ * 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 \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" Wrapped long lines to column 72
- * ltclass.dtx: 0.2s "General" Added many more \@onlypreamble
- commands
+ * 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
- * 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
+ * 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
+ * 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
+ * ltinit.dtx: LaTeX2e \@reargdef Kept old version of \@reargdef,
+ for array.sty
- * ltfiles.dtx: 0.9m \@obsoletefile Added this command, removed
- @oldfilewarning
+ * 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
+ * ltinit.dtx: LaTeX2e \@esphack There seem to be problems with
+ selfmade birthday presents
- * ltclass.dtx: 0.2r \endfilecontents Different message when
- ignoring a file
+ * 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" Untidying added, so this is now a
+ TEMPORARY version.
- * fontcmds.dtx: v3.0b "General" Some more tidying done.
+ * fontcmds.dtx: v3.0b "General" Some more tidying done.
- * fontcmds.dtx: v3.0b "General" Other tidying
+ * fontcmds.dtx: v3.0b "General" Other tidying
- * fontcmds.dtx: v3.0b "General" @pdef comand added
+ * fontcmds.dtx: v3.0b "General" @pdef comand added
- * fontcmds.dtx: v3.0b \@protecteddef Command added
+ * fontcmds.dtx: v3.0b \@protecteddef Command added
- * fontcmds.dtx: v3.0b \@newtextcmd Corrected and tidied
+ * fontcmds.dtx: v3.0b \@newtextcmd Corrected and tidied
- * fontcmds.dtx: v3.0b \@newfontswitch 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" 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" Made \@newfontswitch produce an
+ error if the command already exists, and added
+ \@renewfontswitch. ASAJ.
- * fontcmds.dtx: 3.0b "General" Added by 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 \@tracemessage tracefloatvals made a
+ document command
- * ltoutput.dtx: v1.0j \@topnewpage check for vsize too small
- added
+ * ltoutput.dtx: v1.0j \@topnewpage check for vsize too small
+ added
- * ltoutput.dtx: v1.0j \@startpagehook Hook removed
+ * ltoutput.dtx: v1.0j \@startpagehook Hook removed
- * ltoutput.dtx: v1.0j \@opcol Hook removed
+ * ltoutput.dtx: v1.0j \@opcol Hook removed
- * ltoutput.dtx: 1.0j \@topnewpage Page room test added
+ * ltoutput.dtx: 1.0j \@topnewpage Page room test added
- * ltoutput.dtx: 1.0j \@specialoutput Page room test added
+ * ltoutput.dtx: 1.0j \@specialoutput Page room test added
- * ltoutput.dtx: 1.0j \@addtocurcol Extra space 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.
+ * 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 \documentstyle Match Alan's new code.
- * ltclass.dtx: 0.2q \@fileswithoptions Add \ompatibility hook
+ * ltclass.dtx: 0.2q \@fileswithoptions Add \ompatibility hook
- * ltclass.dtx: 0.2q \@documentclasshook Macro added
+ * ltclass.dtx: 0.2q \@documentclasshook Macro added
- * ltmiscen.dtx: v0.9i \literal 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 \LaTeXe Extended logo by DPC
- * ltinit.dtx: LaTeX2e \@esphack Corrected optimisation :-)
+ * ltinit.dtx: LaTeX2e \@esphack Corrected optimisation :-)
- * ltherest.dtx: LaTeX2e \mark Init \mark at begin document
+ * 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
+ * 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 \parbox Changed default from `c' to `s'
- * ltboxes.dtx: 0.1d \minipage extra space removed.
+ * ltboxes.dtx: 0.1d \minipage extra space removed.
- * ltboxes.dtx: 0.1d \minipage Changed default from `c' to `s'
+ * 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 \@iparbox Changed default from `c' to `s'
- * ltboxes.dtx: 0.1d \@iminipage 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
+ * 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
+ * ltlists.dtx: LaTeX2e Initialised \@itemlabel
- * ltmiscen.dtx: v0.9h \@verbatim Removed optional argument of
- \item
+ * ltmiscen.dtx: v0.9h \@verbatim Removed optional argument of
+ \item
- * ltmiscen.dtx: v0.9h \@verbatim Readded \@noligs
+ * ltmiscen.dtx: v0.9h \@verbatim Readded \@noligs
- * ltmiscen.dtx: v0.9h \@noligs Readded \@noligs
+ * ltmiscen.dtx: v0.9h \@noligs Readded \@noligs
- * ltdirchk.dtx: 0.2a \strip@prefix modified, name changed from
- \stripmeaning
+ * 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 \IfFileExists Removed interactive prompting
+ for current directory syntax
- * ltdirchk.dtx: 0.2a "General" on the `docstrip' pass, do not
- check openin path
+ * 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 \usepackage Fixed error handling
- * ltclass.dtx: 0.2o \documentstyle compatibility file now
- latex209.sty.
+ * ltclass.dtx: 0.2o \documentstyle compatibility file now
+ latex209.sty.
- * ltclass.dtx: 0.2o "General" Removed setting \errcontextlines\
- (now in latex.tex)
+ * 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 \@tracemessage Commands changed
- * ltoutput.dtx: v1.0h \@testfp defs changed to lets
+ * ltoutput.dtx: v1.0h \@testfp defs changed to lets
- * ltoutput.dtx: v1.0h \@startdblcolumn 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 \@startcolumn defs changed to lets
- * ltoutput.dtx: v1.0h \@resethfps Warnings added: minimal
+ * ltoutput.dtx: v1.0h \@resethfps Warnings added: minimal
- * ltoutput.dtx: v1.0h \@makecol defs changed to lets
+ * 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 \@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 \@cflt name changed
- * ltoutput.dtx: v1.0h \@ccflb defs changed to lets
+ * ltoutput.dtx: v1.0h \@ccflb defs changed to lets
- * ltoutput.dtx: v1.0h \@ccflb boxmaxdepth setting moved
+ * 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 \ref Macro reimplemented
- * ltmiscen.dtx: v0.9g \pageref Macro reimplemented
+ * ltmiscen.dtx: v0.9g \pageref Macro reimplemented
- * ltmiscen.dtx: v0.9g \frac Added group around first arg
+ * ltmiscen.dtx: v0.9g \frac Added group around first arg
- * ltmiscen.dtx: v0.9g \@setref Macro added
+ * ltmiscen.dtx: v0.9g \@setref Macro added
- * ltherest.dtx: LaTeX2e \@title Added default
+ * ltherest.dtx: LaTeX2e \@title Added default
- * ltherest.dtx: LaTeX2e \@author Added default
+ * ltherest.dtx: LaTeX2e \@author Added default
- * fontcmds.dtx: v3.0a \textup Macros changed
+ * fontcmds.dtx: v3.0a \textup Macros changed
- * fontcmds.dtx: v3.0a \sw@slant Macro 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 and name changed
- * fontcmds.dtx: v3.0a \maybe@ic Macro name changed
+ * fontcmds.dtx: v3.0a \maybe@ic Macro name changed
- * fontcmds.dtx: v3.0a \fix@penalty Macro added
+ * fontcmds.dtx: v3.0a \fix@penalty Macro added
- * fontcmds.dtx: v3.0a \emph Macro changed
+ * fontcmds.dtx: v3.0a \emph Macro changed
- * fontcmds.dtx: v3.0a "General" newfontswitch command corrected
- and 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" newcommands replaced by defs
- * fontcmds.dtx: v3.0a "General" italic correction now put in
- front of penalty before glue
+ * 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 "General" Complete reworking of all text
+ commands, using just one creator function
- * fontcmds.dtx: v3.0a \@newtextcmd Macro changed
+ * fontcmds.dtx: v3.0a \@newtextcmd Macro changed
1993-12-09 N.N. <latex-bugs@latex-project.org>
- * ltmiscen.dtx: v0.9e \enddocument Hook added
+ * ltmiscen.dtx: v0.9e \enddocument Hook added
- * ltfiles.dtx: v0.9e \document Hook added
+ * ltfiles.dtx: v0.9e \document Hook added
- * ltclass.dtx: 0.2n \documentstyle input 209 compatibility file.
+ * ltclass.dtx: 0.2n \documentstyle input 209 compatibility file.
- * ltboxes.dtx: 0.1c \@irsbox fix another typo
+ * 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
+ * ltlists.dtx: LaTeX2e \@item use \sboxto support colour
- * ltinit.dtx: LaTeX2e \@vbsphack Command added
+ * ltinit.dtx: LaTeX2e \@vbsphack Command added
- * ltinit.dtx: LaTeX2e \@esphack Command reimplemented
+ * ltinit.dtx: LaTeX2e \@esphack Command reimplemented
- * ltinit.dtx: LaTeX2e \@bsphack Command reimplemented; late
- birthday present for Chris
+ * 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 \lrbox move \@endpefalse out of the inner
+ group
- * ltboxes.dtx: 0.1b \@irsbox fix typo
+ * 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 \@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)
+ * 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:
+ * 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.2m \@fileswithoptions Reset \CurrentOption
- * ltclass.dtx: 0.2l \ProvidesFile Macro added
+ * 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.0g \@topnewpage \@floatplacement placement bug
+ fixed
- * ltoutput.dtx: v1.0f \@specialoutput Unboxing of 255 added to
- rescue writes
+ * ltoutput.dtx: v1.0f \@specialoutput Unboxing of 255 added to
+ rescue writes
- * ltclass.dtx: 0.2k \ExecuteOptions Preserve \CurrentOption
+ * 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 \output Command changed
- * ltoutput.dtx: v1.0f @\getfpsbit Command added
+ * ltoutput.dtx: v1.0f @\getfpsbit Command added
- * ltoutput.dtx: v1.0f @\boxfpsbit Command added
+ * ltoutput.dtx: v1.0f @\boxfpsbit Command added
- * ltoutput.dtx: v1.0f \@topnewpage Commands changed
+ * ltoutput.dtx: v1.0f \@topnewpage Commands changed
- * ltoutput.dtx: v1.0f \@textfloatsheight Commands added
+ * ltoutput.dtx: v1.0f \@textfloatsheight Commands added
- * ltoutput.dtx: v1.0f \@testfp Command changed
+ * ltoutput.dtx: v1.0f \@testfp Command changed
- * ltoutput.dtx: v1.0f \@testfp Command added
+ * ltoutput.dtx: v1.0f \@testfp Command added
- * ltoutput.dtx: v1.0f \@startpagehook Hook added
+ * ltoutput.dtx: v1.0f \@startpagehook Hook added
- * ltoutput.dtx: v1.0f \@startdblcolumn Command changed
+ * ltoutput.dtx: v1.0f \@startdblcolumn Command changed
- * ltoutput.dtx: v1.0f \@startcolumn Command changed
+ * ltoutput.dtx: v1.0f \@startcolumn Command changed
- * ltoutput.dtx: v1.0f \@shipoutsetup Command added
+ * ltoutput.dtx: v1.0f \@shipoutsetup Command added
- * ltoutput.dtx: v1.0f \@setfpsbit Command added
+ * ltoutput.dtx: v1.0f \@setfpsbit Command added
- * ltoutput.dtx: v1.0f \@setfloattypecounts Command added
+ * ltoutput.dtx: v1.0f \@setfloattypecounts Command added
- * ltoutput.dtx: v1.0f \@resethfps Command added
+ * ltoutput.dtx: v1.0f \@resethfps Command added
- * ltoutput.dtx: v1.0f \@outputpage Command changed
+ * ltoutput.dtx: v1.0f \@outputpage Command changed
- * ltoutput.dtx: v1.0f \@opcol Hook added
+ * ltoutput.dtx: v1.0f \@opcol Hook added
- * ltoutput.dtx: v1.0f \@opcol Command changed
+ * ltoutput.dtx: v1.0f \@opcol Command changed
- * ltoutput.dtx: v1.0f \@fpsadddefault Command added
+ * ltoutput.dtx: v1.0f \@fpsadddefault Command added
- * ltoutput.dtx: v1.0f \@flupdates Command added
+ * ltoutput.dtx: v1.0f \@flupdates Command added
- * ltoutput.dtx: v1.0f \@flstop Commands added
+ * ltoutput.dtx: v1.0f \@flstop Commands added
- * ltoutput.dtx: v1.0f \@flsettextmin Command added
+ * ltoutput.dtx: v1.0f \@flsettextmin Command added
- * ltoutput.dtx: v1.0f \@flsetnum Command added
+ * ltoutput.dtx: v1.0f \@flsetnum Command added
- * ltoutput.dtx: v1.0f \@flcheckspace Command added
+ * ltoutput.dtx: v1.0f \@flcheckspace Command added
- * ltoutput.dtx: v1.0f \@addtotoporbot Command changed
+ * ltoutput.dtx: v1.0f \@addtotoporbot Command changed
- * ltoutput.dtx: v1.0f \@addtonextcol Command changed
+ * ltoutput.dtx: v1.0f \@addtonextcol Command changed
- * ltoutput.dtx: v1.0f \@addtodblcol Command changed
+ * ltoutput.dtx: v1.0f \@addtodblcol Command changed
- * ltoutput.dtx: v1.0f \@addtocurcol Command changed
+ * ltoutput.dtx: v1.0f \@addtocurcol Command changed
- * ltoutput.dtx: v1.0f \@addtobot Command changed
+ * ltoutput.dtx: v1.0f \@addtobot Command changed
- * ltherest.dtx: LaTeX2e \@xfloat Command changed
+ * ltherest.dtx: LaTeX2e \@xfloat Command changed
- * ltherest.dtx: LaTeX2e \@dblfloatplacement 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 \input Macro reimplemented
- * ltfiles.dtx: v0.9b \InputIfFileExists Macro added
+ * ltfiles.dtx: v0.9b \InputIfFileExists Macro added
- * ltfiles.dtx: v0.9b \IfFileExists Macro added
+ * ltfiles.dtx: v0.9b \IfFileExists Macro added
- * ltfiles.dtx: v0.9b \@input Macro reimplemented
+ * ltfiles.dtx: v0.9b \@input Macro reimplemented
- * ltfiles.dtx: v0.9b \@iinput 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
+ * ltinit.dtx: v0.9b \@latexerr Set \c@errorcontextlines to -1
- * ltclass.dtx: 0.2i "General" \@onlypreamble: Many commands
- declared.
+ * ltclass.dtx: 0.2i "General" \@onlypreamble: Many commands
+ declared.
- * ltclass.dtx: 0.2i "General" Removed obsolete \@documentclass
+ * ltclass.dtx: 0.2i "General" Removed obsolete \@documentclass
- * ltclass.dtx: 0.2i \@cls@pkg Name changed to avoid clash with
- output routine.
+ * 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 macro added
- * ltboxes.dtx: 0.1a \set@color color support
+ * ltboxes.dtx: 0.1a \set@color color support
- * ltboxes.dtx: 0.1a \sbox extra group
+ * ltboxes.dtx: 0.1a \sbox extra group
- * ltboxes.dtx: 0.1a \sbox color support
+ * ltboxes.dtx: 0.1a \sbox color support
- * ltboxes.dtx: 0.1a \raisebox redefined to support \height
+ * ltboxes.dtx: 0.1a \raisebox redefined to support \height
- * ltboxes.dtx: 0.1a \parbox Redefined to support extra optional
- arguments
+ * 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 \newsavebox Pass the whole of arg 1 to
+ \@ifdefinable
- * ltboxes.dtx: 0.1a \minipage Redefined to support extra optional
- arguments
+ * ltboxes.dtx: 0.1a \minipage Redefined to support extra optional
+ arguments
- * ltboxes.dtx: 0.1a \mbox extra group
+ * ltboxes.dtx: 0.1a \mbox extra group
- * ltboxes.dtx: 0.1a \makebox modified
+ * ltboxes.dtx: 0.1a \makebox modified
- * ltboxes.dtx: 0.1a \lrbox macro added
+ * ltboxes.dtx: 0.1a \lrbox macro added
- * ltboxes.dtx: 0.1a \lrbox color support
+ * ltboxes.dtx: 0.1a \lrbox color support
- * ltboxes.dtx: 0.1a \fbox extra group
+ * ltboxes.dtx: 0.1a \fbox extra group
- * ltboxes.dtx: 0.1a \endlrbox macro added
+ * ltboxes.dtx: 0.1a \endlrbox macro added
- * ltboxes.dtx: 0.1a \bm@b macros added
+ * ltboxes.dtx: 0.1a \bm@b macros added
- * ltboxes.dtx: 0.1a \@savebox default c not x
+ * ltboxes.dtx: 0.1a \@savebox default c not x
- * ltboxes.dtx: 0.1a \@makepicbox macro modified
+ * ltboxes.dtx: 0.1a \@makepicbox macro modified
- * ltboxes.dtx: 0.1a \@makebox default changed from x to c
+ * ltboxes.dtx: 0.1a \@makebox default changed from x to c
- * ltboxes.dtx: 0.1a \@isavepicbox extra group
+ * ltboxes.dtx: 0.1a \@isavepicbox extra group
- * ltboxes.dtx: 0.1a \@isavebox extra group
+ * ltboxes.dtx: 0.1a \@isavebox extra group
- * ltboxes.dtx: 0.1a \@isavebox color support
+ * ltboxes.dtx: 0.1a \@isavebox color support
- * ltboxes.dtx: 0.1a \@irsbox redefined to support \height
+ * ltboxes.dtx: 0.1a \@irsbox redefined to support \height
- * ltboxes.dtx: 0.1a \@imakebox macro modified
+ * ltboxes.dtx: 0.1a \@imakebox macro modified
- * ltboxes.dtx: 0.1a \@iirsbox redefined to support \height
+ * ltboxes.dtx: 0.1a \@iirsbox redefined to support \height
- * ltboxes.dtx: 0.1a \@end@tempboxa macro added
+ * ltboxes.dtx: 0.1a \@end@tempboxa macro added
- * ltboxes.dtx: 0.1a \@begin@tempboxa macro added
+ * ltboxes.dtx: 0.1a \@begin@tempboxa macro added
- * ltboxes.dtx: 0.1a \@argrsbox macro removed
+ * ltboxes.dtx: 0.1a \@argrsbox macro removed
1993-12-01 N.N. <latex-bugs@latex-project.org>
- * ltoutput.dtx: v1.0e \@reinserts Command added
+ * ltoutput.dtx: v1.0e \@reinserts Command added
1993-11-30 N.N. <latex-bugs@latex-project.org>
- * ltoutput.dtx: v1.0c \@tracemessage Commands added
+ * ltoutput.dtx: v1.0c \@tracemessage Commands added
- * ltmiscen.dtx: LaTeX2e \eqnarray initialised everycr to {}
+ * 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
+ * ltplain.dtx: ??? "General" All accents in decimals; suggested
+ by Paul Taylor
- * ltoutput.dtx: v1.0b \@makespecialcolbox Command added
+ * ltoutput.dtx: v1.0b \@makespecialcolbox Command added
- * ltoutput.dtx: v1.0b \@makecol \@makespecialcolbox 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 \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" 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" Directory syntax checing moved to
+ dircheck.dtx:
- * ltclass.dtx: 0.2h "General" Assorted commands now in the kernel
- removed.
+ * ltclass.dtx: 0.2h "General" Assorted commands now in the kernel
+ removed.
- * ltclass.dtx: 0.2h \@twoclasseserror Macro added
+ * ltclass.dtx: 0.2h \@twoclasseserror Macro added
- * ltclass.dtx: 0.2h \@missingfileerror Use filename parser from
- dircheck
+ * 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
+ * ltinit.dtx: LaTeX2e \P@LaTeX Macro changed
- * fontcmds.dtx: v2.1a \test@next Macro added
+ * fontcmds.dtx: v2.1a \test@next Macro added
- * fontcmds.dtx: v2.1a \maybe@ic@ Use \test@next
+ * 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 \enlargethispage* Commands added
- * ltoutput.dtx: v0.1c \@specialoutput Command changed
+ * ltoutput.dtx: v0.1c \@specialoutput Command changed
- * ltoutput.dtx: v0.1c \@makecol Command changed
+ * ltoutput.dtx: v0.1c \@makecol Command changed
- * ltoutput.dtx: v0.1c \@kludgeins Insert added
+ * ltoutput.dtx: v0.1c \@kludgeins Insert added
- * ltoutput.dtx: v0.1c \@enlargepage Command added
+ * ltoutput.dtx: v0.1c \@enlargepage Command added
- * ltoutput.dtx: v0.1a \paperwidth Register added
+ * ltoutput.dtx: v0.1a \paperwidth Register added
- * ltoutput.dtx: v0.1a \paperheight Register added
+ * ltoutput.dtx: v0.1a \paperheight Register added
- * ltinit.dtx: LaTeX2e \two@digits Macro added
+ * ltinit.dtx: LaTeX2e \two@digits Macro added
- * ltinit.dtx: LaTeX2e \renewenvironment Macro reimplemented and
- extended
+ * ltinit.dtx: LaTeX2e \renewenvironment Macro reimplemented and
+ extended
- * ltinit.dtx: LaTeX2e \renewcommand Macro reimplemented and
- extended
+ * ltinit.dtx: LaTeX2e \renewcommand Macro reimplemented and
+ extended
- * ltinit.dtx: LaTeX2e \newcommand 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 "General" replaced plus by \@plus if
+ appropriate
- * ltinit.dtx: LaTeX2e \@yargdef Macro interface changed
+ * ltinit.dtx: LaTeX2e \@yargdef Macro interface changed
- * ltinit.dtx: LaTeX2e \@yargdef Avoid \@?@? token
+ * ltinit.dtx: LaTeX2e \@yargdef Avoid \@?@? token
- * ltinit.dtx: LaTeX2e \@xargdef Macro interface changed
+ * ltinit.dtx: LaTeX2e \@xargdef Macro interface changed
- * ltinit.dtx: LaTeX2e \@xargdef Macro added
+ * ltinit.dtx: LaTeX2e \@xargdef Macro added
- * ltinit.dtx: LaTeX2e \@newenv Macro interface changed
+ * ltinit.dtx: LaTeX2e \@newenv Macro interface changed
- * ltinit.dtx: LaTeX2e \@newcommand Macro added
+ * ltinit.dtx: LaTeX2e \@newcommand Macro added
- * ltinit.dtx: LaTeX2e \@ifundefined Redefined to remove a
- trailing \fi
+ * 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" Warnings and errors now directly
+ coded.
- * ltclass.dtx: 0.2g "General" Various macros now moved to
- latex.tex.
+ * ltclass.dtx: 0.2g "General" Various macros now moved to
+ latex.tex.
- * ltclass.dtx: 0.2g \@use@ption Name changed from \@executeoption
+ * 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 \providecommand Macro added
- * ltinit.dtx: LaTeX2e \c@errorcontextlines Macro added
+ * ltinit.dtx: LaTeX2e \c@errorcontextlines Macro added
- * ltinit.dtx: LaTeX2e \LaTeXe Macro added
+ * ltinit.dtx: LaTeX2e \LaTeXe Macro added
- * ltinit.dtx: LaTeX2e \@plus Macro added
+ * ltinit.dtx: LaTeX2e \@plus Macro added
- * ltinit.dtx: LaTeX2e \@minus Macro added
+ * ltinit.dtx: LaTeX2e \@minus Macro added
- * ltinit.dtx: LaTeX2e \@checkcommand Macro added
+ * ltinit.dtx: LaTeX2e \@checkcommand Macro added
- * ltherest.dtx: LaTeX2e \settoheight Macro added
+ * ltherest.dtx: LaTeX2e \settoheight Macro added
- * ltherest.dtx: LaTeX2e \settodepth Macro added
+ * ltherest.dtx: LaTeX2e \settodepth Macro added
- * ltherest.dtx: LaTeX2e \@settopoint Macro added
+ * ltherest.dtx: LaTeX2e \@settopoint Macro added
- * ltherest.dtx: LaTeX2e \@settodim Macro added
+ * ltherest.dtx: LaTeX2e \@settodim Macro added
- * ltclass.dtx: 0.2f \listfiles Removed checking for
- \@unknownversion
+ * ltclass.dtx: 0.2f \listfiles Removed checking for
+ \@unknownversion
- * ltclass.dtx: 0.2f \@unknownversion Macro removed
+ * 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 \@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 initial version
+ [] not [\@unknownversion]
- * ltclass.dtx: 0.2f \@fileswithoptions Made the default [] 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 \verbatim@font Macro added
- * ltmiscen.dtx: v0.9a \verb use \verbatim@font instead of \tt
+ * 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
+ * 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 \tt by \ttfamily if
+ appropriate
- * ltinit.dtx: LaTeX2e "General" replaced \sf by \sffamily 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 \sc by \scshape if
+ appropriate
- * ltinit.dtx: LaTeX2e "General" replaced \rm by \rmfamily 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 \it by \itshape if
+ appropriate
- * ltinit.dtx: LaTeX2e "General" replaced \bf by \bfseries if
- appropriate
+ * ltinit.dtx: LaTeX2e "General" replaced \bf by \bfseries if
+ appropriate
- * ltclass.dtx: 0.2e \@missingfileerror Stop infinite looping on
- \@er@ext
+ * 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 \documentstyle Modified \RequirePackage stuff.
- * ltclass.dtx: 0.2d \NeedsTeXFormat \fmtname \fmtversion not
- \@\pldots
+ * ltclass.dtx: 0.2d \NeedsTeXFormat \fmtname \fmtversion not
+ \@\pldots
- * ltclass.dtx: 0.2d \ExecuteOptions Use \CurrentOption not \@tempa
+ * 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 \ProcessOptions* restoring \@fileswith@pti@ns
+ added.
- * ltclass.dtx: 0.2c \NeedsTeXFormat Name changed from
- \NeedsFormat
+ * ltclass.dtx: 0.2c \NeedsTeXFormat Name changed from
+ \NeedsFormat
- * ltclass.dtx: 0.2c \DeclareOption* Error checking added
+ * ltclass.dtx: 0.2c \DeclareOption* Error checking added
- * ltclass.dtx: 0.2c \CurrentOption Name changed from \@curroption
+ * ltclass.dtx: 0.2c \CurrentOption Name changed from \@curroption
- * ltclass.dtx: 0.2c \@twoloadclasserror Macro added
+ * ltclass.dtx: 0.2c \@twoloadclasserror Macro added
- * ltclass.dtx: 0.2c \@fileswithoptions Added trap for two
- \LoadClass commands.
+ * ltclass.dtx: 0.2c \@fileswithoptions Added trap for two
+ \LoadClass commands.
- * ltclass.dtx: 0.2c \@badrequireerror Macro added
+ * ltclass.dtx: 0.2c \@badrequireerror Macro added
- * ltclass.dtx: 0.2c \@@fileswith@pti@ns 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 \documentstyle Modified to match
+ \ProcessOption*
- * ltclass.dtx: 0.2b \ProcessOptions* Star form added.
+ * 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 \g@addto@macro Made global
- * ltclass.dtx: 0.2a \documentstyle Added \RequirePackage
- \@unusedoptionlist stuff.
+ * 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* Stop adding the global
+ option list inside class files.
- * ltclass.dtx: 0.2a \ProcessOptions* Optimise `empty option'
- code.
+ * 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 \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 \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 \@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 \@fileswithoptions Moved reseting of
+ \default@ds, \ds@ and \@declaredoptions here, from the end of
+ \ProcessOptions.
- * ltclass.dtx: 0.2a \@currext Name changed from \@currextension
+ * 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
+ * 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.
+ * 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.
+ * 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
+ * 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>
+ * 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.
+ * 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
+ * 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 \footnote (RmS) Changed all to
+ \def\protect{\noexpand\protect\noexpand}
- * ltherest.dtx: LaTeX2.09 \@footnotetext (RmS) added protection
- for \edef
+ * ltherest.dtx: LaTeX2.09 \@footnotetext (RmS) added protection
+ for \edef
- * ltboxes.dtx: LaTeX2.09 \@mpfootnotetext (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
+ * 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
+ * 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 `='.
+ * 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
+ * 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 \end@float (RmS) changed \@esphack to
+ \@Esphack
- * ltherest.dtx: LaTeX2.09 \@xympar (RmS) added
- \global\@ignorefalse
+ * 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
+ * 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.
+ * 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
+ * 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
+ * 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.
+ * 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
+ * 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)
+ * 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 \@footnotetext (RmS) added \reset@font
- * ltherest.dtx: LaTeX2.09 \@dottedtocline (RmS) added
- \reset@font for page number
+ * ltherest.dtx: LaTeX2.09 \@dottedtocline (RmS) added
+ \reset@font for page number
- * ltboxes.dtx: LaTeX2.09 \@mpfootnotetext (RmS) added
- \reset@font
+ * 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
+ * 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
+ * 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
+ * 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
+ * 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
+ * ltmiscen.dtx: LaTeX2.09 \@verbatim Added
+ \penalty\interlinepenalty to definition of \par so that
+ \samepage works
diff --git a/macros/latex/base/classes.dtx b/macros/latex/base/classes.dtx
index 857cfc799e..188679d4d9 100644
--- a/macros/latex/base/classes.dtx
+++ b/macros/latex/base/classes.dtx
@@ -53,7 +53,7 @@
%<*driver>
\ProvidesFile{classes.drv}
%</driver>
- [2021/10/04 v1.4n
+ [2022/07/02 v1.4n
%<article|report|book> Standard LaTeX document class]
%<10pt|11pt|12pt> Standard LaTeX file (size option)]
% \end{macrocode}
@@ -2538,7 +2538,7 @@
% The macro above uses |\@makechapterhead|\meta{text} to format the
% heading of the chapter.
%
-% We begin by leaving some white space. The we open a group in
+% We begin by leaving some white space. Then we open a group in
% which we have a paragraph indent of 0pt, and in which we have the
% text set ragged right. We also reset the font.
% \changes{v1.3c}{1995/05/25}{replace \cs{reset@font} with
diff --git a/macros/latex/base/classes.pdf b/macros/latex/base/classes.pdf
index f4e8a51d5b..6df3b9b2eb 100644
--- a/macros/latex/base/classes.pdf
+++ b/macros/latex/base/classes.pdf
Binary files differ
diff --git a/macros/latex/base/clsguide.pdf b/macros/latex/base/clsguide.pdf
index c86a168e45..c9f85a5f52 100644
--- a/macros/latex/base/clsguide.pdf
+++ b/macros/latex/base/clsguide.pdf
Binary files differ
diff --git a/macros/latex/base/clsguide.tex b/macros/latex/base/clsguide.tex
index 6f4d1cf027..0ed5e60817 100644
--- a/macros/latex/base/clsguide.tex
+++ b/macros/latex/base/clsguide.tex
@@ -35,7 +35,12 @@
\title{\LaTeXe~for class and package writers}
\author{Copyright \copyright~1995--2006 The \LaTeX\ Project\\
- All rights reserved}
+ All rights reserved.%
+ \footnote{This file may distributed and/or modified under the
+ conditions of the \LaTeX{} Project Public License, either version 1.3c
+ of this license or (at your option) any later version. See the source
+ \texttt{clsguide.tex} for full details.}%
+}
\date{15 February 2006}
diff --git a/macros/latex/base/cmfonts.fdd b/macros/latex/base/cmfonts.fdd
index f991ee564e..477085eaef 100644
--- a/macros/latex/base/cmfonts.fdd
+++ b/macros/latex/base/cmfonts.fdd
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2019
+% Copyright 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -67,7 +67,7 @@
%<*driver, >
\ProvidesFile{cmfonts.drv}
%</driver, >
- [2019/12/16 v2.5j Standard LaTeX font definitions]
+ [2022/07/10 v2.5l Standard LaTeX font definitions]
%
%<*driver>
\documentclass{ltxdoc}
@@ -261,13 +261,13 @@
% (thanks to Christian Cornelssen)}
% \begin{macrocode}
%<*new|ec>
-%<*!tt>
+%<*!tt&!T1cmss>
\providecommand{\EC@family}[5]{%
\DeclareFontShape{#1}{#2}{#3}{#4}%
{<5><6><7><8><9><10><10.95><12><14.4>%
%<ec> <17.28><20.74><24.88><29.86><35.83>genb*#5}{}}
%<!ec> <17.28><20.74><24.88>genb*#5}{}}
-%</!tt>
+%</!tt&!T1cmss>
% \end{macrocode}
% For monospaced fonts, the normal interpolation breaks down below
% 8pt, so scale the 8pt fonts instead.
@@ -282,6 +282,21 @@
%<ec> <35.83>genb*#5}{}}
%<!ec> <9><10><10.95><12><14.4><17.28><20.74><24.88>genb*#5}{}}
%</tt>
+% \end{macrocode}
+% \changes{v2.5l}{2022/07/10}%
+% {Avoid ec ss fonts at design size 5, 6, 7. gh/879}
+% For ec cmss fonts avoid the small design sizes which have incorrect
+% definitions.
+% (Medium weight bolder and wider than bold extended for 5pt and 6pt,
+% 7pt does not have expected contrast. Scale 8pt, matching |fix-cm|).
+% gh/879
+% \begin{macrocode}
+%<*T1cmss>
+\providecommand{\EC@ssfamily}[5]{%
+ \DeclareFontShape{#1}{#2}{#3}{#4}%
+ {<5><6><7><8>#50800%
+ <9><10><10.95><12><14.4><17.28><20.74><24.88><29.86><35.83>genb*#5}{}}
+%</T1cmss>
%</new|ec>
% \end{macrocode}
%
@@ -375,6 +390,8 @@
% \changes{v2.5a}{1997/01/14}
% {EC fonts}
% \changes{v2.5d}{1997/06/02}{bold sc fonts latex/2497}
+% \changes{v2.5k}{2022/06/10}{add support for slanted small caps github/782}
+%
% \begin{macrocode}
%<*ec>
\EC@family{T1}{cmr}{m}{n}{ecrm}
@@ -387,6 +404,9 @@
\EC@family{T1}{cmr}{bx}{sl}{ecbl}
\EC@family{T1}{cmr}{bx}{sc}{ecxc}
\EC@family{T1}{cmr}{m}{ui}{ecui}
+\EC@family{T1}{cmr}{m}{scsl}{ecsc}
+\EC@family{T1}{cmr}{bx}{scsl}{ecoc}
+\EC@family{T1}{cmr}{b}{scsl}{ecoc}
%</ec>
%</T1cmr>
% \end{macrocode}
@@ -489,12 +509,12 @@
% {EC fonts}
% \begin{macrocode}
%<*ec>
-\EC@family{T1}{cmss}{m}{n}{ecss}
-\EC@family{T1}{cmss}{m}{sl}{ecsi}
-\EC@family{T1}{cmss}{m}{it}{ecsi}
-\EC@family{T1}{cmss}{bx}{n}{ecsx}
-\EC@family{T1}{cmss}{bx}{it}{ecso}
-\EC@family{T1}{cmss}{bx}{sl}{ecso}
+\EC@ssfamily{T1}{cmss}{m}{n}{ecss}
+\EC@ssfamily{T1}{cmss}{m}{sl}{ecsi}
+\EC@ssfamily{T1}{cmss}{m}{it}{ecsi}
+\EC@ssfamily{T1}{cmss}{bx}{n}{ecsx}
+\EC@ssfamily{T1}{cmss}{bx}{it}{ecso}
+\EC@ssfamily{T1}{cmss}{bx}{sl}{ecso}
%</ec>
% \end{macrocode}
% The next substitution is very questionable.
diff --git a/macros/latex/base/cmfonts.pdf b/macros/latex/base/cmfonts.pdf
index 708ec8a389..5eda3d0e00 100644
--- a/macros/latex/base/cmfonts.pdf
+++ b/macros/latex/base/cmfonts.pdf
Binary files differ
diff --git a/macros/latex/base/cyrguide.pdf b/macros/latex/base/cyrguide.pdf
index ee3a68232b..e7ac0140e4 100644
--- a/macros/latex/base/cyrguide.pdf
+++ b/macros/latex/base/cyrguide.pdf
Binary files differ
diff --git a/macros/latex/base/cyrguide.tex b/macros/latex/base/cyrguide.tex
index 3b16687f39..7304a586e4 100644
--- a/macros/latex/base/cyrguide.tex
+++ b/macros/latex/base/cyrguide.tex
@@ -33,7 +33,12 @@
\title{Cyrillic languages support in \LaTeX}
\author{\copyright~Copyright 1998--1999,\\ Vladimir Volovich,
- Werner Lemberg and \LaTeX\ Project Team.\\ All rights reserved.}
+ Werner Lemberg and \LaTeX\ Project Team.\\ All rights reserved.%
+ \footnote{This file may distributed and/or modified under the
+ conditions of the \LaTeX{} Project Public License, either version 1.3c
+ of this license or (at your option) any later version. See the source
+ \texttt{cyrguide.tex} for full details.}%
+}
\date{12 March 1999}
diff --git a/macros/latex/base/doc-code.pdf b/macros/latex/base/doc-code.pdf
index 681bc85143..01ad1c42bb 100644
--- a/macros/latex/base/doc-code.pdf
+++ b/macros/latex/base/doc-code.pdf
Binary files differ
diff --git a/macros/latex/base/doc.dtx b/macros/latex/base/doc.dtx
index d6b21744df..d137038d63 100644
--- a/macros/latex/base/doc.dtx
+++ b/macros/latex/base/doc.dtx
@@ -45,7 +45,7 @@
%<+package>
%<+package>\ProvidesPackage{doc}
%<+shortvrb>\ProvidesPackage{shortvrb}
-%<+package|shortvrb> [2022/06/08 v3.0j
+%<+package|shortvrb> [2022/07/03 v3.0k
%<+package|shortvrb> Standard LaTeX documentation package V3 (FMi)]
%\catcode`\<=12
%
@@ -260,8 +260,8 @@
% \begin{abstract}
% Roughly 30 years ago (version 1.0 was dated 1988/05/05) I wrote
% the first version of the \DOC package, a package to provide code
-% documentation for \TeX{} code. Since then it has be used all over
-% the place to document the \LaTeX{} kernel and most of the
+% documentation for \TeX{} code. Since then it has been used all
+% over the place to document the \LaTeX{} kernel and most of the
% packages that are nowadays available. The core code of version 2
% (which is the current version) exists since 1998, i.e., for 20
% years.
@@ -1909,112 +1909,38 @@
% should be altered further.
% \fmi{cleanup replacement of kvoptions}
%
-% \begin{macrocode}
-\ExplSyntaxOn
-% \end{macrocode}
% Some keys are available as options for use in \cs{usepackage} some are
% for the generated item \api's:
-% \fmi{cleanup documentation (and code once the new key interface is there)}
-% \begin{macrocode}
-\newif \ifdoc@noprint
-\newif \ifdoc@noindex
-\newif \ifdoc@hyperref \doc@hyperreftrue
-\newif \ifdoc@multicol \doc@multicoltrue
-\newif \ifdoc@debugshow
-\newif \ifdoc@reportchangedates
-\keys_define:nn {doc}
- {
- noprint .choice:,
- noprint / true .code:n = { \legacy_if_set_true:n { doc@noprint } },
- noprint / false .code:n = { \legacy_if_set_false:n { doc@noprint } },
- noprint .default:n = { true },
- noindex .choice:,
- noindex / true .code:n = { \legacy_if_set_true:n { doc@noindex } },
- noindex / false .code:n = { \legacy_if_set_false:n { doc@noindex } },
- noindex .default:n = { true },
- hyperref .choice:,
- hyperref / true .code:n = { \legacy_if_set_true:n { doc@hyperref } },
- hyperref / false .code:n = { \legacy_if_set_false:n { doc@hyperref } },
- hyperref .default:n = { true },
-% \end{macrocode}
+% \changes{v3.0k}{2022/06/22}{Use \cs{DeclareKeys}}
% \changes{v3.0h}{2022/06/01}{fix choice key name (gh/750)}
-% \begin{macrocode}
- nohyperref .choice:,
- nohyperref / true .code:n = { \legacy_if_set_false:n { doc@hyperref } },
- nohyperref / false .code:n = { \legacy_if_set_true:n { doc@hyperref } },
- nohyperref .default:n = { true },
- multicol .choice:,
- multicol / true .code:n = { \legacy_if_set_true:n { doc@multicol } },
- multicol / false .code:n = { \legacy_if_set_false:n { doc@multicol } },
- multicol .default:n = { true },
- nomulticol .choice:,
- nomulticol / true .code:n = { \legacy_if_set_false:n { doc@multicol } },
- nomulticol / false .code:n = { \legacy_if_set_true:n { doc@multicol } },
-% \end{macrocode}
% \changes{v3.0h}{2022/06/01}{fix default key name (gh/750)}
% \begin{macrocode}
- nomulticol .default:n = { true },
- debugshow .choice:,
- debugshow / true .code:n = { \legacy_if_set_true:n { doc@debugshow } },
- debugshow / false .code:n = { \legacy_if_set_false:n { doc@debugshow } },
- debugshow .default:n = { true },
- reportchangedates .choice:,
- reportchangedates / true .code:n = { \legacy_if_set_true:n { doc@reportchangedates } },
- reportchangedates / false .code:n = { \legacy_if_set_false:n { doc@reportchangedates } },
- reportchangedates .default:n = { true },
- }
-% \end{macrocode}
-% This one is for \cs{usepackage} and \cs{NewDocElement}:
-% \begin{macrocode}
-\newif \ifdoc@toplevel \doc@topleveltrue
-\keys_define:nn {doc}
+\DeclareKeys
{
- toplevel .choice:,
- toplevel / true .code:n = { \legacy_if_set_true:n { doc@toplevel } },
- toplevel / false .code:n = { \legacy_if_set_false:n { doc@toplevel } },
- toplevel .default:n = { true },
- notoplevel .choice:,
- notoplevel / true .code:n = { \legacy_if_set_false:n { doc@toplevel } },
- notoplevel / false .code:n = { \legacy_if_set_true:n { doc@toplevel } },
- notoplevel .default:n = { true }
+ noprint .if = {doc@noprint},
+ noindex .if = {doc@noindex},
+ hyperref .if = {doc@hyperref},
+ nohyperref .ifnot = {doc@hyperref},
+ multicol .if = {doc@multicol},
+ nomulticol .ifnot = {doc@multicol},
+ debugshow .if = {doc@debugshow},
+ reportchangedates .if = {doc@reportchangedates},
+ toplevel .if = {doc@toplevel},
+ notoplevel .ifnot = {doc@toplevel},
+ macrolike .if = {doc@macrolike},
+ envlike .ifnot = {doc@macrolike},
+ idxtype .store = \doc@idxtype,
+ idxgroup .store = \doc@idxgroup,
+ printtype .store = \doc@printtype,
+ outer .if = {doc@outer},
}
% \end{macrocode}
-% These are for \cs{NewDocElement}:
-% \begin{macrocode}
-\newif \ifdoc@macrolike
-\keys_define:nn {doc}
- {
- macrolike .choice:,
- macrolike / true .code:n = { \legacy_if_set_true:n { doc@macrolike } },
- macrolike / false .code:n = { \legacy_if_set_false:n { doc@macrolike } },
- macrolike .default:n = { true },
- envlike .choice:,
- envlike / true .code:n = { \legacy_if_set_false:n { doc@macrolike } },
- envlike / false .code:n = { \legacy_if_set_true:n { doc@macrolike } },
- envlike .default:n = { true }
- }
-
-\keys_define:nn { doc }
- {
- idxtype .tl_set:N = \doc@idxtype,
- idxgroup .tl_set:N = \doc@idxgroup,
- printtype .tl_set:N = \doc@printtype
- }
-% \end{macrocode}
-% And this one only for instances of doc elements in the document, it
-% covers the case where you want to document a macro which is
-% declared to be \cs{outer}. This is not a concept officially
-% supported by \LaTeX{} but there are cases when it gets used.
+%
+% Setting these options to true initially.
% \begin{macrocode}
-\newif\ifdoc@outer
-\keys_define:nn {doc}
- {
- outer .choice:,
- outer / true .code:n = { \legacy_if_set_true:n { doc@outer } },
- outer / false .code:n = { \legacy_if_set_false:n { doc@outer } },
- outer .default:n = { true },
- }
-\ExplSyntaxOff
+\doc@hyperreftrue
+\doc@multicoltrue
+\doc@topleveltrue
% \end{macrocode}
%
% \subsection{Processing the package keys}
diff --git a/macros/latex/base/doc.pdf b/macros/latex/base/doc.pdf
index 41b3bd0270..64981124a6 100644
--- a/macros/latex/base/doc.pdf
+++ b/macros/latex/base/doc.pdf
Binary files differ
diff --git a/macros/latex/base/docstrip.dtx b/macros/latex/base/docstrip.dtx
index 22c1f69aa0..de20073c48 100644
--- a/macros/latex/base/docstrip.dtx
+++ b/macros/latex/base/docstrip.dtx
@@ -29,9 +29,9 @@
\catcode`\{=1
\catcode`\}=2
\def\filename{docstrip.dtx}
-\def\fileversion{v2.6a}
-\def\filedate{2020-11-23}
-\def\docdate {2020-11-23}
+\def\fileversion{v2.6b}
+\def\filedate{2022-09-03}
+\def\docdate {2022-09-03}
%%
%
%\iffalse
@@ -42,7 +42,7 @@
%% Frank Mittelbach
%% Copyright (C) 1995 Marcin Woli\'nski
%% Copyright (C) 1996-1997 Mark Wooding, Marcin Woli\'nski
-%% Copyright (C) 1998-2021 LaTeX Project and the above authors.
+%% Copyright (C) 1998-2022 LaTeX Project and the above authors.
%% All rights are reserved.
%%
%
@@ -2537,12 +2537,16 @@ Z
% |\plusOption| is called. This macro is very similar to
% |\doOption|, the only difference being that displayed
% message now contains `\texttt{+}'.
+% \changes{v2.6b}{2022-09-03}{Complete the handling of @@-modules from
+% \texttt{l3docstrip.dtx} (gh/337) also for +/- lines (gh/903)}
% \begin{macrocode}
\def\plusOption+#1>#2\endLine{%
\maybeMsg{<+#1 . >}%
\Evaluate{#1}%
\def\do##1##2##3{%
- \if1\Expr{##2}\StreamPut##1{#2}\fi
+ \if1\Expr{##2}%
+ \def\inLine{#2}\replaceModuleInLine
+ \StreamPut##1{\inLine}\fi
}%
\activefiles
}
@@ -2553,12 +2557,16 @@ Z
% When a `\texttt{-}' is found as a guard modifier,
% |\minusOption| is called. This macro is very similar to
% |\plusOption|, the difference is that condition is negated.
+% \changes{v2.6b}{2022-09-03}{Complete the handling of @@-modules from
+% \texttt{l3docstrip.dtx} (gh/337) also for +/- lines (gh/903)}
% \begin{macrocode}
\def\minusOption-#1>#2\endLine{%
\maybeMsg{<-#1 . >}%
\Evaluate{#1}%
\def\do##1##2##3{%
- \if1\Expr{##2}\else \StreamPut##1{#2}\fi
+ \if1\Expr{##2}\else
+ \def\inLine{#2}\replaceModuleInLine
+ \StreamPut##1{\inLine}\fi
}%
\activefiles
}
diff --git a/macros/latex/base/docstrip.pdf b/macros/latex/base/docstrip.pdf
index cf287333f6..355dbeed98 100644
--- a/macros/latex/base/docstrip.pdf
+++ b/macros/latex/base/docstrip.pdf
Binary files differ
diff --git a/macros/latex/base/encguide.pdf b/macros/latex/base/encguide.pdf
index 38a18aa70c..d18588a172 100644
--- a/macros/latex/base/encguide.pdf
+++ b/macros/latex/base/encguide.pdf
Binary files differ
diff --git a/macros/latex/base/exscale.pdf b/macros/latex/base/exscale.pdf
index aabccee5eb..2bdb881a90 100644
--- a/macros/latex/base/exscale.pdf
+++ b/macros/latex/base/exscale.pdf
Binary files differ
diff --git a/macros/latex/base/fix-cm.pdf b/macros/latex/base/fix-cm.pdf
index d95d45ed93..c983a8e947 100644
--- a/macros/latex/base/fix-cm.pdf
+++ b/macros/latex/base/fix-cm.pdf
Binary files differ
diff --git a/macros/latex/base/fntguide.pdf b/macros/latex/base/fntguide.pdf
index a8222b760c..a2ef00a6f8 100644
--- a/macros/latex/base/fntguide.pdf
+++ b/macros/latex/base/fntguide.pdf
Binary files differ
diff --git a/macros/latex/base/fntguide.tex b/macros/latex/base/fntguide.tex
index 62d3538304..65467339f1 100644
--- a/macros/latex/base/fntguide.tex
+++ b/macros/latex/base/fntguide.tex
@@ -42,12 +42,17 @@
\title{\LaTeXe{} font selection}
-\author{\copyright~Copyright 1995--2021, \LaTeX\ Project
+\author{\copyright~Copyright 1995--2022, \LaTeX\ Project
Team.\thanks{Thanks to Arash Esbati for documenting the
newer NFSS features of 2020}\\
- All rights reserved.}
+ All rights reserved.%
+ \footnote{This file may distributed and/or modified under the
+ conditions of the \LaTeX{} Project Public License, either version 1.3c
+ of this license or (at your option) any later version. See the source
+ \texttt{fntguide.tex} for full details.}%
+}
-\date{December 2021}
+\date{August 2022}
\begin{document}
@@ -1431,6 +1436,20 @@ Example:
\DeclareFontEncoding{OT1}{}{}
\end{verbatim}
+\NEWfeature{2021/06/01}
+Fonts in encoding \texttt{TS1} are usually not implementing the full encoding but only a subset.
+This subset should be declared with a |\DeclareEncodingSubset|
+declaration:
+
+\begin{decl}
+ |\DeclareEncodingSubset| \arg{encoding}
+ \arg{font family}
+ \arg{subset number}
+\end{decl}
+This should even be done if the font is implementing the full
+\texttt{TS1} encoding; see page~\pageref{page:declareencodingsubset} for
+further details.
+
Some author commands need to change their definition depending on which
encoding is currently in use. For example, in the |OT1| encoding, the
letter `\AE' is in slot |"1D|, whereas in the |T1| encoding it is in
@@ -2048,7 +2067,7 @@ glyphs from the math fonts instead of the current text font (this means
they always keep the same shape and do not nicely blend in with the text
font).
-\newpage
+%\newpage
The following tables show the macros available. The next commands are
`constructed' accents and are built via \TeX{} macros:
@@ -2234,7 +2253,8 @@ question arises: ``Which glyphs of the |TS1| encoding are implemented by
which font?''
\NEWfeature{2021/06/01}
-Fonts can be ordered in sub-encodings with the |\DeclareEncodingSubset|
+Fonts\label{page:declareencodingsubset}
+can be ordered in sub-encodings with the |\DeclareEncodingSubset|
macro:
\begin{decl}
|\DeclareEncodingSubset| \arg{encoding}
@@ -2577,7 +2597,14 @@ is the same as writing
If only some are needed then one can define them individually but in
many cases all four are wanted, hence the shortcut.
-
+Maintainers of font bundles that include \texttt{TS1} encoded font files
+should add an appropriate declaration into the corresponding
+\texttt{ts1}\textit{family}\texttt{.fd} file, because otherwise the
+default subencoding is assumed, which is probably disabling too many
+glyphs that are actually available in the font.\footnote{The \LaTeX{}
+ format contains declarations for many font families already, but this
+ is really the wrong place for the declarations. Thus for new fonts
+ they should be placed into the corresponding \texttt{.fd} file.}
\section{If you need to know more \ldots}
diff --git a/macros/latex/base/graphpap.pdf b/macros/latex/base/graphpap.pdf
index 81fc7ecaa7..003b7a087d 100644
--- a/macros/latex/base/graphpap.pdf
+++ b/macros/latex/base/graphpap.pdf
Binary files differ
diff --git a/macros/latex/base/ifthen.pdf b/macros/latex/base/ifthen.pdf
index 10c6f991ad..f108383366 100644
--- a/macros/latex/base/ifthen.pdf
+++ b/macros/latex/base/ifthen.pdf
Binary files differ
diff --git a/macros/latex/base/inputenc.pdf b/macros/latex/base/inputenc.pdf
index 063aa537db..a82e38bc08 100644
--- a/macros/latex/base/inputenc.pdf
+++ b/macros/latex/base/inputenc.pdf
Binary files differ
diff --git a/macros/latex/base/lamport-manual.pdf b/macros/latex/base/lamport-manual.pdf
index ff9c9f2890..228b5d5327 100644
--- a/macros/latex/base/lamport-manual.pdf
+++ b/macros/latex/base/lamport-manual.pdf
Binary files differ
diff --git a/macros/latex/base/latexrelease.pdf b/macros/latex/base/latexrelease.pdf
index cd9871e06e..eb8fc4bf80 100644
--- a/macros/latex/base/latexrelease.pdf
+++ b/macros/latex/base/latexrelease.pdf
Binary files differ
diff --git a/macros/latex/base/latexsym.pdf b/macros/latex/base/latexsym.pdf
index aa3dac63d5..27de765603 100644
--- a/macros/latex/base/latexsym.pdf
+++ b/macros/latex/base/latexsym.pdf
Binary files differ
diff --git a/macros/latex/base/lb2.pdf b/macros/latex/base/lb2.pdf
index 9ad793fdfd..e22f0b68d3 100644
--- a/macros/latex/base/lb2.pdf
+++ b/macros/latex/base/lb2.pdf
Binary files differ
diff --git a/macros/latex/base/letter.pdf b/macros/latex/base/letter.pdf
index 5a8ee46a91..13e36346bb 100644
--- a/macros/latex/base/letter.pdf
+++ b/macros/latex/base/letter.pdf
Binary files differ
diff --git a/macros/latex/base/lgc2.pdf b/macros/latex/base/lgc2.pdf
index c2bf5f2103..323fa18ce5 100644
--- a/macros/latex/base/lgc2.pdf
+++ b/macros/latex/base/lgc2.pdf
Binary files differ
diff --git a/macros/latex/base/lppl.pdf b/macros/latex/base/lppl.pdf
index 298b841732..526ce5730b 100644
--- a/macros/latex/base/lppl.pdf
+++ b/macros/latex/base/lppl.pdf
Binary files differ
diff --git a/macros/latex/base/ltboxes.dtx b/macros/latex/base/ltboxes.dtx
index 43db541b98..b82f5bdb8e 100644
--- a/macros/latex/base/ltboxes.dtx
+++ b/macros/latex/base/ltboxes.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltboxes.dtx}
- [2022/01/31 v1.4c LaTeX Kernel (Box Commands)]
+ [2022/09/07 v1.4d LaTeX Kernel (Box Commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltboxes.dtx}
@@ -1004,6 +1004,16 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\if@in@minipage@env}
+%
+% \changes{v1.4d}{2022/09/07}
+% {Check for nested minipages and warn (gh/168)}
+% \begin{macrocode}
+\newif\if@in@minipage@env
+% \end{macrocode}
+% \end{macro}
+%
+%
% \begin{macro}{\minipage}
% \changes{v0.1a}{1993/12/03}
% {Redefined to support extra optional arguments}
@@ -1060,6 +1070,28 @@
\color@begingroup
\hsize\@tempdima
\textwidth\hsize \columnwidth\hsize
+% \end{macrocode}
+% We check for nested minipages inside the box so that there is
+% always a group resetting the switch even if the code does not use
+% \cs{begin} to start the minipage.
+% \changes{v1.4d}{2022/09/07}
+% {Check for nested minipages and warn (gh/168)}
+% \begin{macrocode}
+ \if@in@minipage@env
+% \end{macrocode}
+% We only issue a warning if the outer minipage contained footnotes
+% because that is the problematical case.
+% \begin{macrocode}
+ \ifvoid\@mpfootins\else
+ \@latex@warning{Nested minipage:
+ footnotes may be misplaced}%
+ \fi
+ \else
+ \@in@minipage@envtrue
+ \fi
+% \end{macrocode}
+%
+% \begin{macrocode}
\@parboxrestore
\def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
\let\@footnotetext\@mpfootnotetext
diff --git a/macros/latex/base/ltclass.dtx b/macros/latex/base/ltclass.dtx
index 35c4251fce..a525b6f573 100644
--- a/macros/latex/base/ltclass.dtx
+++ b/macros/latex/base/ltclass.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2022/06/20 v1.5c LaTeX Kernel (Class & Package Interface)]
+ [2022/10/22 v1.5e LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -1302,7 +1302,10 @@
{\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}%
\reserved@a\reserved@b
\@expl@@@filehook@clear@replacement@flag@@
- \expandafter\xdef\csname opt@\reserved@a\endcsname{%
+% \end{macrocode}
+% \changes{v1.5d}{2022/10/10}{Use \cs{protected@xdef}.}
+% \begin{macrocode}
+ \expandafter\protected@xdef\csname opt@\reserved@a\endcsname{%
\@ifundefined{opt@\reserved@a}\@empty
{\csname opt@\reserved@a\endcsname,}%
\zap@space#2 \@empty}%
@@ -1476,10 +1479,12 @@
% {Star form added.}
% \changes{v0.2c}{1993/11/17}
% {restoring \cs{@fileswith@pti@ns} added.}
+% \changes{v1.5d}{2022/10/10}
+% {Use \cs{protected@edef}.}
% \begin{macrocode}
\def\ProcessOptions{%
\let\ds@\@empty
- \edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
+ \protected@edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
\@ifstar\@xprocess@ptions\@process@ptions}
\@onlypreamble\ProcessOptions
% \end{macrocode}
@@ -1505,6 +1510,7 @@
% \changes{v0.2y}{1994/02/07}
% {Add extra ,s so `two' is not matched with `twocolumn'}
% \changes{v1.3z}{2021/03/05}{modify so braces to not give errors (gh/513)}
+% \changes{v1.5e}{2022/10/22}{Use \cs{detokenize}}
% \begin{macrocode}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2021/06/01}%
@@ -1515,7 +1521,7 @@
\ifx\@classoptionslist\relax\else
\@for\CurrentOption:=\@classoptionslist\do{%
\ifx\CurrentOption\@empty\else
- \@ifundefined{ds@\CurrentOption}{}{%
+ \@ifundefined{ds@\detokenize\expandafter{\CurrentOption}}{}{%
\@use@ption
\expandafter\let\csname ds@\CurrentOption\endcsname\@empty
}%
@@ -1552,6 +1558,7 @@
% \end{macrocode}
%
% The common part of |\ProcessOptions| and |\ProcessOptions*|.
+% \changes{v1.5e}{2022/10/22}{Use \cs{detokenize}}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
@@ -1559,7 +1566,7 @@
%<latexrelease> {\@process@pti@ns}{Unused options issue}%
\def\@process@pti@ns{%
\@for\CurrentOption:=\@curroptions\do{%
- \@ifundefined{ds@\CurrentOption}%
+ \@ifundefined{ds@\detokenize\expandafter{\CurrentOption}}%
{\@use@ption
\default@ds}%
% \end{macrocode}
@@ -1627,6 +1634,7 @@
% \changes{v1.0e}{1994/05/17}
% {Execute option after removing from list, not before}
% \changes{v1.3x}{2021/02/18}{filter out =value from unused option list (gh/85)}
+% \changes{v1.5e}{2022/10/22}{Use \cs{detokenize}}
% \begin{macrocode}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2021/06/01}%
@@ -1636,7 +1644,7 @@
\@expandtwoargs\@removeelement
{\expandafter\@remove@eq@value\CurrentOption=\@nil}%
\@unusedoptionlist\@unusedoptionlist
- \csname ds@\CurrentOption\endcsname}
+ \csname ds@\detokenize\expandafter{\CurrentOption}\endcsname}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
@@ -1988,6 +1996,7 @@
% \changes{v2.1b}{2016/11/09}
% {Improve \cs{ifx} tests PR/4497}
% \changes{v1.3x}{2021/02/18}{save raw class option list (gh/85)}
+% \changes{v1.5e}{2022/10/22}{Use \cs{protected@xdef}.}
% \begin{macrocode}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2020/10/01}%
@@ -1996,7 +2005,7 @@
\def\@fileswith@pti@ns#1[#2]#3[#4]{%
\ifx#1\@clsextension
\ifx\@classoptionslist\relax
- \xdef\@classoptionslist{\zap@space#2 \@empty}%
+ \protected@xdef\@classoptionslist{\zap@space#2 \@empty}%
% \end{macrocode}
% Save raw class list.
% \begin{macrocode}
@@ -2177,21 +2186,24 @@
% \end{macrocode}
% \changes{v1.5b}{2022/03/18}{Switch to \cs{ProcessKeyOptions}}
% \changes{v1.5c}{2022/06/20}{Pass raw options to \cs{ProcessKeyOptions}}
+% \changes{v1.5e}{2022/10/20}
+% {Define key option handler in \pkg{ltkeys}}
% In the current preferred approach, a key family name will exist for
% processing using \pkg{ltkeys}. In that case, we replace the previous
% package options with the new ones, then call the key handler.
% Otherwise, we use the more classical clash handler.
% \begin{macrocode}
{%
- \@ifundefined{opt@fam@\@currname.\@currext}
+ \@ifundefined{opt@handler@\@currname.\@currext}
{\@onefilewithoptions@clashchk{#2}}
{%
- \expandafter\edef\csname opt@\@currname.\@currext\endcsname
+% \end{macrocode}
+% \changes{v1.5d}{2022/10/10}{Use \cs{protected@edef}.}
+% \begin{macrocode}
+ \expandafter\protected@edef\csname opt@\@currname.\@currext\endcsname
{\zap@space#2 \@empty}%
\@namedef{@raw@opt@\@currname.\@currext}{#2}%
- \expandafter\expandafter\expandafter\ProcessKeyOptions
- \expandafter\expandafter\expandafter
- [\csname opt@fam@\@currname.\@currext\endcsname]%
+ \@nameuse{opt@handler@\@currname.\@currext}%
}%
}%
{\makeatletter
@@ -2693,10 +2705,11 @@
% \changes{v0.2v}{1994/01/29}
% {Macro added.}
% \changes{v1.0t}{1995/11/14}{Allow empty option}
+% \changes{v1.5d}{2022/10/10}{Use \cs{protected@edef}.}
% \begin{macrocode}
\def\@@unprocessedoptions{%
\ifx\@currext\@pkgextension
- \edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
+ \protected@edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
\@for\CurrentOption:=\@curroptions\do{%
\ifx\CurrentOption\@empty\else\@unknownoptionerror\fi}%
\fi}
diff --git a/macros/latex/base/ltcmd.dtx b/macros/latex/base/ltcmd.dtx
index 59aa5bf475..14d6756f5c 100644
--- a/macros/latex/base/ltcmd.dtx
+++ b/macros/latex/base/ltcmd.dtx
@@ -34,8 +34,8 @@
%%% From File: ltcmd.dtx
%
% \begin{macrocode}
-\def\ltcmdversion{v1.0l}
-\def\ltcmddate{2022-03-18}
+\def\ltcmdversion{v1.1a}
+\def\ltcmddate{2022-08-16}
% \end{macrocode}
%
%<*driver>
@@ -247,6 +247,15 @@
% \end{macrocode}
% \end{variable}
%
+% \begin{variable}{\l_@@_suppress_strip_bool}
+% \changes{v1.1a}{2022/08/10}{New switch}
+% Used to indicate that an a pair of braces should not be stripped from
+% an optional argument.
+% \begin{macrocode}
+\bool_new:N \l_@@_suppress_strip_bool
+% \end{macrocode}
+% \end{variable}
+%
% \begin{variable}{\l_@@_m_args_int}
% The number of \texttt{m} arguments: if this is the same as the total
% number of arguments, then a short-cut can be taken in the creation of
@@ -315,6 +324,19 @@
% \end{macrocode}
% \end{variable}
%
+% \begin{variable}{\q_@@_recursion_tail,\q_@@_recursion_stop}
+% \begin{macro}{\@@_if_recursion_tail_stop_do:Nn}
+% \begin{macro}{\@@_use_i_delimit_by_q_recursion_stop:nw}
+% Quarks and functions for internal processing.
+% \begin{macrocode}
+\quark_new:N \q_@@_recursion_tail
+\quark_new:N \q_@@_recursion_stop
+\__kernel_quark_new_test:N \@@_if_recursion_tail_stop_do:Nn
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{variable}
+%
% \begin{variable}{\l_@@_tmp_prop, \l_@@_tmpa_tl, \l_@@_tmpb_tl}
% \begin{macro}{\@@_tmp:w}
% Scratch space.
@@ -874,7 +896,7 @@
% \item Check that each argument has the correct number of data items
% associated with it, and that where a single character is required,
% one has actually been supplied.
-% \item Check that processors and the markers~|+| and~|!| are followed
+% \item Check that processors and the markers~|+|, |!| and~|=| are followed
% by an argument for which they make sense, and are not redundant.
% \item Check the absence of forbidden types for expandable commands,
% namely \texttt{G}/\texttt{v} always, and \texttt{l}/\texttt{u}
@@ -918,6 +940,7 @@
\bool_set_true:N \l_@@_grab_expandably_bool
\bool_set_false:N \l_@@_obey_spaces_bool
\bool_set_false:N \l_@@_long_bool
+ \bool_set_false:N \l_@@_suppress_strip_bool
\bool_set_false:N \l_@@_some_obey_spaces_bool
\bool_set_false:N \l_@@_some_long_bool
\bool_set_false:N \l_@@_some_short_bool
@@ -1020,7 +1043,11 @@
% \@@_normalize_type_>:w,
% \@@_normalize_type_+:w,
% \@@_normalize_type_!:w,
+% \@@_normalize_type_=:w
% }
+% \changes{v1.1a}{2022/08/10}{Refactor to use common auxiliary}
+% \changes{v1.1a}{2022/08/10}{Add support for \texttt{=} modifier}
+% \begin{macro}{\@@_normalize_type_aux:NnNn}
% Check that these prefixes have arguments, namely that the next token
% is not \cs{q_recursion_tail}, and remember to leave it after the
% looping macro. Processors are forbidden in expandable commands.
@@ -1044,33 +1071,52 @@
}
\cs_new_protected:cpn { @@_normalize_type_+:w } #1
{
- \quark_if_recursion_tail_stop_do:nn {#1} { \@@_bad_arg_spec:wn }
- \bool_if:NT \l_@@_long_bool
+ \@@_normalize_type_aux:NnNn + {#1}
+ \l_@@_long_bool
+ { \bool_set_true:N \l_@@_long_bool }
+ }
+\cs_new_protected:cpn { @@_normalize_type_!:w } #1
+ {
+ \@@_normalize_type_aux:NnNn ! {#1}
+ \l_@@_obey_spaces_bool
{
- \msg_error:nnxx { cmd } { two-markers }
- { \@@_environment_or_command: } { + }
- \@@_bad_def:wn
+ \bool_set_true:N \l_@@_obey_spaces_bool
+ \bool_set_true:N \l_@@_some_obey_spaces_bool
}
- \bool_set_true:N \l_@@_long_bool
- \int_decr:N \l_@@_current_arg_int
- \@@_normalize_arg_spec_loop:n {#1}
}
-\cs_new_protected:cpn { @@_normalize_type_!:w } #1
+\cs_new_protected:cpn { @@_normalize_type_=:w } #1#2
+ {
+ \@@_normalize_type_aux:NnNn = {#2}
+ \l_@@_suppress_strip_bool
+ {
+ \bool_if:NT \l_@@_expandable_bool
+ {
+ \msg_error:nnxx { cmd } { keyval-in-expandable }
+ { \iow_char:N \\ \l_@@_function_tl } { \tl_to_str:n {#1} }
+ \@@_bad_def:wn
+ }
+ \bool_set_true:N \l_@@_suppress_strip_bool
+ \bool_set_false:N \l_@@_grab_expandably_bool
+ \tl_put_right:Nx \l_@@_arg_spec_tl
+ { = { \tl_trim_spaces:n {#1} } }
+ }
+ }
+\cs_new_protected:Npn \@@_normalize_type_aux:NnNn #1#2#3#4
{
- \quark_if_recursion_tail_stop_do:nn {#1} { \@@_bad_arg_spec:wn }
- \bool_if:NT \l_@@_obey_spaces_bool
+ \quark_if_recursion_tail_stop_do:nn {#2} { \@@_bad_arg_spec:wn }
+ \bool_if:NT #3
{
\msg_error:nnxx { cmd } { two-markers }
- { \@@_environment_or_command: } { ! }
+ { \@@_environment_or_command: } { #1 }
\@@_bad_def:wn
}
- \bool_set_true:N \l_@@_obey_spaces_bool
- \bool_set_true:N \l_@@_some_obey_spaces_bool
+ #4
\int_decr:N \l_@@_current_arg_int
- \@@_normalize_arg_spec_loop:n {#1}
+ \@@_normalize_arg_spec_loop:n {#2}
}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}
% {
@@ -1224,12 +1270,12 @@
% \end{macro}
%
% \begin{macro}{\@@_allowed_token_check:N}
-% Some tokens are now allowed as delimiters for some argument types,
+% Some tokens are not allowed as delimiters for some argument types,
% notably implicit begin/end-group tokens (|\bgroup|/|\egroup|).
% The major problem with these tokens is that for |\peek_...| functions,
-% a literal~|{|$_1$. is virtually indistinguishable from a |\bgroup| or
+% a literal~|{|$_1$ is virtually indistinguishable from a |\bgroup| or
% other token which was |\let| to a~|{|$_1$, and the same goes
-% for~|}|$_2$. All other tokens can be easily distingushed from their
+% for~|}|$_2$. All other tokens can be easily distinguished from their
% implicit counterparts by grabbing them and looking at the string
% length (see \cs{@@_token_if_cs:NTF}), but for begin/end group tokens
% that is not possible without the risk of mistakenly grabbing the
@@ -1324,13 +1370,13 @@
% \begin{macro}{\@@_add_arg_spec:n, \@@_add_arg_spec_mandatory:n}
% When adding an argument to the argument specification, set the
% \texttt{some_long} or \texttt{some_short} booleans as appropriate
-% and clear the booleans keeping track of |+| and |!| markers.
+% and clear the booleans keeping track of |+|, |!| and |=| markers.
% Before that, test for a short argument following some long
% arguments: this is forbidden for expandable commands and prevents
% grabbing arguments expandably.
%
% For mandatory arguments do some more work, in particular complain if
-% they were preceeded by~|!|.
+% they were preceded by~|!|.
% \begin{macrocode}
\cs_new_protected:Npn \@@_add_arg_spec:n #1
{
@@ -1387,6 +1433,7 @@
\int_zero:N \l_@@_current_arg_int
\bool_set_false:N \l_@@_long_bool
\bool_set_false:N \l_@@_obey_spaces_bool
+ \bool_set_false:N \l_@@_suppress_strip_bool
\int_zero:N \l_@@_m_args_int
\bool_set_false:N \l_@@_defaults_bool
\tl_clear:N \l_@@_defaults_tl
@@ -1484,6 +1531,23 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_add_type_=:}
+% \changes{v1.1a}{2022/08/10}{Add support for \texttt{=} modifier}
+% A mix of the ideas from above: set a flag and add a processor.
+% \begin{macrocode}
+\cs_new_protected:cpn { @@_add_type_=:w } #1
+ {
+ \@@_flush_m_args:
+ \bool_set_true:N \l_@@_prefixed_bool
+ \bool_set_true:N \l_@@_suppress_strip_bool
+ \bool_set_true:N \l_@@_process_some_bool
+ \tl_put_left:Nn \l_@@_process_one_tl
+ { { \@@_arg_to_keyvalue:nn {#1} } }
+ \@@_prepare_signature_bypass:N
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\@@_add_type_b:w}
% \begin{macrocode}
\cs_new_protected:Npn \@@_add_type_b:w
@@ -1677,11 +1741,16 @@
@@_grab_ #1
\bool_if:NT \l_@@_long_bool { _long }
\bool_if:NT \l_@@_obey_spaces_bool { _obey_spaces }
+ \bool_lazy_and:nnT
+ { \l_@@_suppress_strip_bool }
+ { \str_if_eq_p:nn {#1} { D } }
+ { _no_strip }
:w
}
}
\bool_set_false:N \l_@@_long_bool
\bool_set_false:N \l_@@_obey_spaces_bool
+ \bool_set_false:N \l_@@_suppress_strip_bool
\tl_put_right:Nx \l_@@_process_all_tl
{
{
@@ -2488,7 +2557,7 @@
\quark_if_nil:nF {#1}
{ \tl_const:cn { c_@@_show_type_#1_tl } {#2} \@@_tmp:w }
}
-\@@_tmp:w t0 r1 d1 R2 D2 O3 e4 E5 +6 !6 >7 \q_nil \q_nil
+\@@_tmp:w t0 r1 d1 R2 D2 O3 e4 E5 +6 !6 >7 =7 \q_nil \q_nil
% \end{macrocode}
%
% \begin{macro}{
@@ -2615,6 +2684,7 @@
% \@@_grab_b_aux:NNw,
% \@@_grab_b_end:Nw
% }
+% \changes{v1.1a}{2022/08/10}{Track changes in \texttt{D}-type implementation}
% This uses the well-tested code of \texttt{D}-type arguments,
% skipping the peeking step because the \texttt{b}-type argument is
% always present, and adding a cleanup stage at the end by hijacking
@@ -2640,7 +2710,7 @@
{ \@@_grab_b_aux:NNw \cs_set_protected:Npn \exp_not:n }
\cs_new_protected:Npn \@@_grab_b_aux:NNw #1#2#3 \@@_run_code:
{
- \@@_grab_D_aux:NNnN \begin \end {#3} #1
+ \@@_grab_D_aux:NNnNN \begin \end {#3} #1 \use_ii:nn
\tl_put_left:Nn \l_@@_signature_tl { \@@_grab_b_end:Nw #2 }
\tl_set_eq:NN \l_@@_saved_args_tl \l_@@_args_tl
\tl_clear:N \l_@@_args_tl
@@ -2660,37 +2730,69 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_grab_D:w}
-% \begin{macro}{\@@_grab_D_long:w}
-% \begin{macro}{\@@_grab_D_obey_spaces:w}
-% \begin{macro}{\@@_grab_D_long_obey_spaces:w}
+% \begin{macro}
+% {
+% \@@_grab_D:w ,
+% \@@_grab_D_long:w ,
+% \@@_grab_D_obey_spaces:w ,
+% \@@_grab_D_long_obey_spaces:w ,
+% \@@_grab_D_no_strip:w ,
+% \@@_grab_D_long_no_strip:w ,
+% \@@_grab_D_obey_spaces_no_strip:w ,
+% \@@_grab_D_long_obey_spaces_no_strip:w
+% }
+% \changes{v1.1a}{2022/08/10}{Add support for skipping brace stripping}
% The generic delimited argument grabber. The auxiliary function does
% a peek test before calling \cs{@@_grab_D_call:Nw}, so that the
% optional nature of the argument works as expected.
% \begin{macrocode}
\cs_new_protected:Npn \@@_grab_D:w #1#2#3 \@@_run_code:
{
- \@@_grab_D_aux:NNnNN #1 #2 {#3} \cs_set_protected_nopar:Npn
- \@@_peek_nonspace_remove:NTF
+ \@@_grab_D_aux:NNnNNN #1 #2 {#3} \cs_set_protected_nopar:Npn
+ \@@_peek_nonspace_remove:NTF \use_ii:nn
}
\cs_new_protected:Npn \@@_grab_D_long:w #1#2#3 \@@_run_code:
{
- \@@_grab_D_aux:NNnNN #1 #2 {#3} \cs_set_protected:Npn
- \@@_peek_nonspace_remove:NTF
+ \@@_grab_D_aux:NNnNNN #1 #2 {#3} \cs_set_protected:Npn
+ \@@_peek_nonspace_remove:NTF \use_ii:nn
}
\cs_new_protected:Npn \@@_grab_D_obey_spaces:w #1#2#3 \@@_run_code:
{
- \@@_grab_D_aux:NNnNN #1 #2 {#3} \cs_set_protected_nopar:Npn
- \@@_peek_meaning_remove:NTF
+ \@@_grab_D_aux:NNnNNN #1 #2 {#3} \cs_set_protected_nopar:Npn
+ \@@_peek_meaning_remove:NTF \use_ii:nn
}
\cs_new_protected:Npn \@@_grab_D_long_obey_spaces:w #1#2#3 \@@_run_code:
{
- \@@_grab_D_aux:NNnNN #1 #2 {#3} \cs_set_protected:Npn
- \@@_peek_meaning_remove:NTF
+ \@@_grab_D_aux:NNnNNN #1 #2 {#3} \cs_set_protected:Npn
+ \@@_peek_meaning_remove:NTF \use_ii:nn
+ }
+\cs_new_protected:Npn \@@_grab_D_no_strip:w
+ #1#2#3 \@@_run_code:
+ {
+ \@@_grab_D_aux:NNnNNN #1 #2 {#3} \cs_set_protected_nopar:Npn
+ \@@_peek_nonspace_remove:NTF \use_none:n
+ }
+\cs_new_protected:Npn \@@_grab_D_long_no_strip:w
+ #1#2#3 \@@_run_code:
+ {
+ \@@_grab_D_aux:NNnNNN #1 #2 {#3} \cs_set_protected:Npn
+ \@@_peek_nonspace_remove:NTF \use_none:n
+ }
+\cs_new_protected:Npn \@@_grab_D_obey_spaces_no_strip:w
+ #1#2#3 \@@_run_code:
+ {
+ \@@_grab_D_aux:NNnNNN #1 #2 {#3} \cs_set_protected_nopar:Npn
+ \@@_peek_meaning_remove:NTF \use_none:n
+ }
+\cs_new_protected:Npn \@@_grab_D_long_obey_spaces_no_strip:w
+ #1#2#3 \@@_run_code:
+ {
+ \@@_grab_D_aux:NNnNNN #1 #2 {#3} \cs_set_protected:Npn
+ \@@_peek_meaning_remove:NTF \use_none:n
}
% \end{macrocode}
+% \begin{macro}{\@@_grab_D_aux:NNnNNN}
% \begin{macro}{\@@_grab_D_aux:NNnNN}
-% \begin{macro}{\@@_grab_D_aux:NNnN}
% This is a bit complicated. The idea is that, in order to check for
% nested optional argument tokens (\texttt{[[...]]} and so on) the
% argument needs to be grabbed without removing any braces at all. If
@@ -2699,9 +2801,9 @@
% prevents loss of braces, and there is then a test to see if there are
% nested delimiters to handle.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_grab_D_aux:NNnNN #1#2#3#4#5
+\cs_new_protected:Npn \@@_grab_D_aux:NNnNNN #1#2#3#4#5#6
{
- \@@_grab_D_aux:NNnN #1#2 {#3} #4
+ \@@_grab_D_aux:NNnNN #1#2 {#3} #4 #6
#5 #1
{ \@@_grab_D_call:Nw #1 }
{ \@@_add_arg:o \c_novalue_tl }
@@ -2712,9 +2814,10 @@
% extra factors to allow for: the argument might be entirely empty, and
% spaces at the start and end of the input must be retained around a brace
% group. Also notice that a \emph{blank} argument might still contain
-% spaces.
+% spaces. To allow for suppression of brace stripping, the business end
+% is passed here as |#5|.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_grab_D_aux:NNnN #1#2#3#4
+\cs_new_protected:Npn \@@_grab_D_aux:NNnNN #1#2#3#4#5
{
\tl_set:Nn \l_@@_signature_tl {#3}
\exp_after:wN #4 \l_@@_fn_tl ##1 #2
@@ -2728,7 +2831,7 @@
\str_if_eq:eeTF
{ \exp_not:o { \use_none:n ##1 } }
{ { \exp_not:o { \use_ii:nnn ##1 \q_nil } } }
- { \@@_add_arg:o { \use_ii:nn ##1 } }
+ { \@@_add_arg:o { #5 ##1 } }
{ \@@_add_arg:o { \use_none:n ##1 } }
}
}
@@ -2738,9 +2841,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macro}{\@@_grab_D_nested:NNnN}
% \begin{macro}{\@@_grab_D_nested:w}
@@ -3039,6 +3139,7 @@
%
% \begin{macro}{\@@_grab_R:w, \@@_grab_R_long:w}
% \begin{macro}{\@@_grab_R_aux:NNnN}
+% \changes{v1.1a}{2022/08/10}{Track changes in \texttt{D}-type implementation}
% The grabber for \texttt{R}-type arguments is basically the same as
% that for \texttt{D}-type ones, but always skips spaces (as it is mandatory)
% and has a hard-coded error message.
@@ -3049,7 +3150,7 @@
{ \@@_grab_R_aux:NNnN #1 #2 {#3} \cs_set_protected:Npn }
\cs_new_protected:Npn \@@_grab_R_aux:NNnN #1#2#3#4
{
- \@@_grab_D_aux:NNnN #1 #2 {#3} #4
+ \@@_grab_D_aux:NNnNN #1 #2 {#3} #4 \use_ii:nn
\@@_peek_nonspace_remove:NTF #1
{ \@@_grab_D_call:Nw #1 }
{
@@ -3873,6 +3974,190 @@
% \end{macrocode}
% \end{macro}
%
+% \subsection{Conversion to key--value form}
+%
+% This is implemented as a process but with no public interfaces,
+% hence is treated separately from the others: it's a feature of
+% \pkg{ltcmd} which just happens to use the same mechanism as a processor.
+%
+% \begin{macro}{\@@_arg_to_keyvalue:nn}
+% \changes{v1.1a}{2022/08/10}{New internal arg-to-keyval processor}
+% \begin{macro}{\@@_arg_to_keyvalue_braces:nnn}
+% \begin{macro}{\@@_arg_to_keyvalue_auxi:nnn}
+% \begin{macro}{\@@_arg_to_keyvalue_auxii:Nnnn}
+% \begin{macro}{\@@_arg_to_keyvalue_auxiii:nnn}
+% \begin{macro}{\@@_arg_to_keyvalue_auxiv:Nnnn}
+% \begin{macro}{\@@_arg_to_keyvalue_auxv:nn}
+% \begin{macro}{\@@_arg_to_keyvalue_loop:w}
+% \begin{macro}{\@@_arg_to_keyvalue_loop_group:n}
+% \begin{macro}{\@@_arg_to_keyvalue_loop_space:w}
+% \begin{macro}{\@@_arg_to_keyvalue_loop_N_type:N}
+% \begin{macro}{\@@_arg_to_keyvalue_math:w}
+% \begin{macro}{\@@_arg_to_keyvalue_math_N_type:N}
+% \begin{macro}{\@@_arg_to_keyvalue_math_group:n}
+% \begin{macro}{\@@_arg_to_keyvalue_math_space:w}
+% \begin{macro}{\@@_arg_to_keyvalue_set_default:nn}
+% \begin{macro}{\@@_arg_to_keyvalue_set_keyvalue:nn}
+% \begin{macro}[EXP]{\@@_split_N_head_apply:Nn}
+% \begin{macro}[EXP]{\@@_split_N_head_apply_aux:NNw}
+% If the entire argument is braced, we treat as free text and return as
+% the value for the text key. Alternatively, if the start of the input is
+% |=,| then it is forced to be key--value. To avoid needing to worry about
+% catcodes for this, and to allow spaces around the |=|, we use a
+% series of steps rather than a delimited argument.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_arg_to_keyvalue:nn #1#2
+ {
+ \tl_trim_spaces_apply:nN {#2} \@@_arg_to_keyvalue_braces:nnn
+ {#1} {#2}
+ }
+\cs_new_protected:Npn \@@_arg_to_keyvalue_braces:nnn #1#2#3
+ {
+ \tl_if_head_is_group:nT {#1}
+ {
+ \tl_if_blank:oT { \use_none:n #1 }
+ {
+ \tl_set:Nx \ProcessedArgument { #2 = { \exp_not:n #1 } }
+ \use_none:nnnn
+ }
+ }
+ \@@_arg_to_keyvalue_auxi:nnn {#1} {#2} {#3}
+ }
+\cs_new:Npn \@@_arg_to_keyvalue_auxi:nnn #1
+ {
+ \tl_if_head_is_N_type:nTF {#1}
+ { \@@_split_N_head_apply:Nn \@@_arg_to_keyvalue_auxii:Nnnn {#1} }
+ { \@@_arg_to_keyvalue_auxv:nn }
+ }
+\cs_new:Npn \@@_arg_to_keyvalue_auxii:Nnnn #1#2
+ {
+ \str_if_eq:eeTF { \exp_not:n {#1} } { = }
+ { \tl_trim_spaces_apply:nN {#2} \@@_arg_to_keyvalue_auxiii:nnn }
+ { \@@_arg_to_keyvalue_auxv:nn }
+ }
+\cs_new:Npn \@@_arg_to_keyvalue_auxiii:nnn #1
+ {
+ \tl_if_head_is_N_type:nTF {#1}
+ { \@@_split_N_head_apply:Nn \@@_arg_to_keyvalue_auxiv:Nnnn {#1} }
+ { \@@_arg_to_keyvalue_auxv:nn }
+ }
+\cs_new:Npn \@@_arg_to_keyvalue_auxiv:Nnnn #1#2
+ {
+ \str_if_eq:eeTF { \exp_not:n {#1} } { , }
+ { \tl_set:Nn \ProcessedArgument {#2} \use_none:nn }
+ { \@@_arg_to_keyvalue_auxv:nn }
+ }
+% \end{macrocode}
+% The two clear-cut cases have been eliminated, and we therefore have to deal
+% with a search for |=| signs. We need an \enquote{action} loop here
+% so we do not get mislead by for example |{=}|. As the code here is for
+% very much predictable types of input, we hard-code what constitutes
+% math mode opening and closing. At the very beginning, the default
+% key (|#1|) and the argument as given by the user (|#2|) are placed
+% right after the \cs{q_@@_recursion_stop}, so that when the recursion
+% ends, the macros \cs{@@_arg_to_keyvalue_set_default:nn} or
+% \cs{@@_arg_to_keyvalue_set_keyvalue:nn} can be used to grab these
+% two items and set the \cs{ProcessedArgument} accordingly.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_arg_to_keyvalue_auxv:nn #1#2
+ {
+ \@@_arg_to_keyvalue_loop:w #2
+ \q_@@_recursion_tail \q_@@_recursion_stop {#1} {#2}
+ }
+\cs_new_protected:Npn \@@_arg_to_keyvalue_loop:w #1 \q_@@_recursion_stop
+ {
+ \tl_if_head_is_N_type:nTF {#1}
+ { \@@_arg_to_keyvalue_loop_N_type:N }
+ {
+ \tl_if_head_is_group:nTF {#1}
+ { \@@_arg_to_keyvalue_loop_group:n }
+ { \@@_arg_to_keyvalue_loop_space:w }
+ }
+ #1 \q_@@_recursion_stop
+ }
+\cs_new_protected:Npn \@@_arg_to_keyvalue_loop_group:n #1
+ { \@@_arg_to_keyvalue_loop:w }
+\use:n { \cs_new_protected:Npn \@@_arg_to_keyvalue_loop_space:w } ~
+ { \@@_arg_to_keyvalue_loop:w }
+\cs_new_protected:Npn \@@_arg_to_keyvalue_loop_N_type:N #1
+ {
+ \@@_if_recursion_tail_stop_do:Nn #1
+ { \@@_arg_to_keyvalue_set_default:nn }
+ \str_if_eq:nnTF {#1} { = }
+ {
+ \@@_use_i_delimit_by_q_recursion_stop:nw
+ { \@@_arg_to_keyvalue_set_keyvalue:nn }
+ }
+ {
+ \bool_lazy_or:nnTF
+ { \token_if_math_toggle_p:N #1 }
+ { \str_if_eq_p:nn {#1} { \( } }
+ { \@@_arg_to_keyvalue_math:w }
+ { \@@_arg_to_keyvalue_loop:w }
+ }
+ }
+\cs_new_protected:Npn \@@_arg_to_keyvalue_math:w #1 \q_@@_recursion_stop
+ {
+ \tl_if_head_is_N_type:nTF {#1}
+ { \@@_arg_to_keyvalue_math_N_type:N }
+ {
+ \tl_if_head_is_group:nTF {#1}
+ { \@@_arg_to_keyvalue_math_group:n }
+ { \@@_arg_to_keyvalue_math_space:w }
+ }
+ #1 \q_@@_recursion_stop
+ }
+\cs_new_protected:Npn \@@_arg_to_keyvalue_math_N_type:N #1
+ {
+ \@@_if_recursion_tail_stop_do:Nn #1
+ { \@@_arg_to_keyvalue_set_default:nn }
+ \bool_lazy_or:nnTF
+ { \token_if_math_toggle_p:N #1 }
+ { \str_if_eq_p:nn {#1} { \) } }
+ { \@@_arg_to_keyvalue_loop:w }
+ { \@@_arg_to_keyvalue_math:w }
+ }
+\cs_new_protected:Npn \@@_arg_to_keyvalue_math_group:n #1
+ { \@@_arg_to_keyvalue_math:w }
+\use:n { \cs_new_protected:Npn \@@_arg_to_keyvalue_math_space:w } ~
+ { \@@_arg_to_keyvalue_math:w }
+\cs_new_protected:Npn \@@_arg_to_keyvalue_set_default:nn #1#2
+ { \tl_set:Nn \ProcessedArgument { #1 = {#2} } }
+\cs_new_protected:Npn \@@_arg_to_keyvalue_set_keyvalue:nn #1#2
+ { \tl_set:Nn \ProcessedArgument {#2} }
+% \end{macrocode}
+% A utility to allow us to grab the first \texttt{N}-type token without
+% risking brace stripping the rest of the input.
+% \begin{macrocode}
+\cs_new:Npn \@@_split_N_head_apply:Nn #1#2
+ { \exp:w \if_false: { \fi: \@@_split_N_head_apply_aux:NNw #1#2 } }
+\cs_new:Npn \@@_split_N_head_apply_aux:NNw #1#2
+ {
+ \exp_after:wN \exp_end:
+ \exp_after:wN #1 \exp_after:wN #2 \exp_after:wN { \if_false: } \fi:
+ }
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \subsection{Access to the argument specification}
%
% \begin{macro}{\@@_get_arg_spec_error:N, \@@_get_arg_spec_error:n}
@@ -4372,6 +4657,13 @@
This~is~only~supported~for~robust~commands,~but~not~for~expandable~ones.
\c_@@_ignore_def_tl
}
+\msg_new:nnnn { cmd } { keyval-in-expandable }
+ { Invalid~argument~prefix~'='~in~command~'#1'. }
+ {
+ The~argument~specification~for~'#1'~contains~a~key--value~marker~'={#2}'.~
+ This~is~only~supported~for~robust~commands,~but~not~for~expandable~ones.
+ \c_@@_ignore_def_tl
+ }
\msg_new:nnnn { cmd } { too-many-args }
{ Too~many~arguments~for~#1. }
{
diff --git a/macros/latex/base/ltcmdhooks-code.pdf b/macros/latex/base/ltcmdhooks-code.pdf
index c5ea646d28..0ff4218c8d 100644
--- a/macros/latex/base/ltcmdhooks-code.pdf
+++ b/macros/latex/base/ltcmdhooks-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltcmdhooks-doc.pdf b/macros/latex/base/ltcmdhooks-doc.pdf
index f584f9915f..4e902ecb97 100644
--- a/macros/latex/base/ltcmdhooks-doc.pdf
+++ b/macros/latex/base/ltcmdhooks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltdefns.dtx b/macros/latex/base/ltdefns.dtx
index 9e1fa43fad..bd820e7cf2 100644
--- a/macros/latex/base/ltdefns.dtx
+++ b/macros/latex/base/ltdefns.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdefns.dtx}
- [2022/05/13 v1.5q LaTeX Kernel (definition commands)]
+ [2022/05/22 v1.5r LaTeX Kernel (definition commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdefns.dtx}
@@ -966,9 +966,22 @@
%
% \begin{macro}{\@expandtwoargs}
% A macro to totally expand two arguments to another macro
+% \changes{v1.5r}{2022/10/22}{Use \cs{protected@edef}.}
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2022/11/01}%
+%<latexrelease> {\@expandtwoargs}{protected edef}%
+%<*2ekernel|latexrelease>
\def\@expandtwoargs#1#2#3{%
-\edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a}
+\protected@edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{00/00/00}%
+%<latexrelease> {\@expandtwoargs}{protected edef}%
+%<latexrelease>\def\@expandtwoargs#1#2#3{%
+%<latexrelease>\edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/base/ltfilehook-code.pdf b/macros/latex/base/ltfilehook-code.pdf
index 2ff4c09418..77472b7457 100644
--- a/macros/latex/base/ltfilehook-code.pdf
+++ b/macros/latex/base/ltfilehook-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltfilehook-doc.pdf b/macros/latex/base/ltfilehook-doc.pdf
index c29c190154..c3d3c87cb6 100644
--- a/macros/latex/base/ltfilehook-doc.pdf
+++ b/macros/latex/base/ltfilehook-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltfilehook.dtx b/macros/latex/base/ltfilehook.dtx
index 8b5e982591..c8503de891 100644
--- a/macros/latex/base/ltfilehook.dtx
+++ b/macros/latex/base/ltfilehook.dtx
@@ -31,8 +31,8 @@
%%% From File: ltfilehook.dtx
%
% \begin{macrocode}
-\providecommand\ltfilehookversion{v1.0m}
-\providecommand\ltfilehookdate{2022/04/01}
+\providecommand\ltfilehookversion{v1.0n}
+\providecommand\ltfilehookdate{2022/08/18}
% \end{macrocode}
%
%<*driver>
@@ -1513,10 +1513,25 @@
\global\@namedef{@pkg-disable@#1.\@pkgextension}{#2}}
% \end{macrocode}
%
+% \changes{v1.0n}{2022/08/18}{Inhibit checking the loaded version when
+% package is load-disabled, and write to the .log (gh/888)}
+% Here we check if a control sequence named
+% \cs[no-index]{@pkg-disable@\meta{name}.sty} is defined, and if so
+% don't use the package loading code |#2|, but use the replacement
+% code stored in that control sequence, write something to the log,
+% and then prevent \cs{@onefilewithoptions} from sanity-checking the
+% requested package date (the \tn{expandafter} here triggers one in
+% \cs{@onefilewithoptions} that ends a conditional there, and the
+% \tn{@gobbletwo} removes the date checking code from the input
+% stream).
% \begin{macrocode}
\def\@disable@packageload@do#1#2{%
- \@ifundefined{@pkg-disable@#1}{#2}%
- {\@nameuse{@pkg-disable@#1}}}
+ \@ifundefined{@pkg-disable@#1}%
+ {#2}%
+ {\@nameuse{@pkg-disable@#1}%
+ \@latex@info{Package '#1' has been disabled.%
+ \MessageBreak Load request ignored}%
+ \expandafter\@gobbletwo}}
% \end{macrocode}
%
% \cs{reenable@package@load} undefines
diff --git a/macros/latex/base/ltfinal.dtx b/macros/latex/base/ltfinal.dtx
index fafd0c6912..7f4bef3bcc 100644
--- a/macros/latex/base/ltfinal.dtx
+++ b/macros/latex/base/ltfinal.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfinal.dtx}
- [2022/07/05 v2.2w LaTeX Kernel (Final Settings)]
+ [2022/10/26 v2.2x LaTeX Kernel (Final Settings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -1085,6 +1085,9 @@
% \changes{v2.2t}{2022/04/21}{Support \cs{noexpand} in argument of \cs{@expl@text@uppercase@@n}}
% \changes{v2.2v}{2022/06/30}{Just use \cs{text_lowercase:n} without \cs{protectd@edf} gh/881x}%
% \changes{v2.2w}{2022/07/04}{Introduced \cs{CaseSwitch}, \cs{DeclareCaseChangeEquivalent} and \cs{MakeTitlecase} to support hooking into case changing gh/889}%
+% \changes{v2.2x}{2022/10/26}{Introduce optional argument for case-changing commands}
+% \changes{v2.2x}{2022/10/26}{Make case changing commands language-aware}
+% \changes{v2.2x}{2022/10/26}{Auto-detect \pkg{babel} locale}
% Wrappers around the L3 case changing functions.
% |\protected| to make them mostly safe as replacements for |uppercase|
% and |\lowercase|.
@@ -1103,18 +1106,61 @@
% In order to get round this, we redefine |\MakeUppercase| and
% |\MakeLowercase| to grab their argument and brace it.
%
-% Earlier versions needed to procsss |\@uclclist| in an |\edef|
+% Earlier versions needed to process |\@uclclist| in an |\edef|
% to handle legacy input encodings, but recent (2022) expl3 versions
% handle non-UTF8 text natively so we simply call the |\text_...case:n|
% functions.
% \begin{macrocode}
\ExplSyntaxOn
-\cs_new_protected_nopar:cpn{MakeUppercase~}{\text_uppercase:n}
-\cs_set_nopar:Npx\MakeUppercase#1{\use:c{MakeUppercase~}{#1}}
-\cs_new_protected_nopar:cpn{MakeLowercase~}{\text_lowercase:n}
-\cs_set_nopar:Npx\MakeLowercase#1{\use:c{MakeLowercase~}{#1}}
-\cs_new_protected_nopar:cpn{MakeTitlecase~}{\text_titlecase:n}
-\cs_set_nopar:Npx\MakeTitlecase#1{\use:c{MakeTitlecase~}{#1}}
+\keys_define:nn { __kernel }
+ {
+ lang .str_set:N = \reserved@a ,
+ locale .str_set:N = \reserved@a
+ }
+\cs_new_protected:Npn \@@text@case@aux #1#2#3
+ {
+ \cs_set_nopar:Npn \reserved@a { }
+ \tl_if_blank:nTF {#2}
+ { \@@text@case@aux@ }
+ { \keys_set:nn { __kernel } {#2} }
+ \use:c { text_ #1 case:Vn } \reserved@a {#3}
+ }
+\cs_new_protected:Npn \@@text@case@aux@ { }
+\tl_gput_right:Nn \@kernel@after@begindocument
+ {
+ \@ifpackageloaded { babel }
+ {
+ \@ifpackagelater { babel } { 2020-01-15 }
+ {
+ \cs_gset_protected:Npn \@@text@case@aux@
+ {
+ \str_set:Nx \reserved@a
+ { \localeinfo* { tag.bcp47 } }
+ }
+ }
+ { }
+ }
+ { }
+ }
+\exp_args_generate:n { cnx }
+% \end{macrocode}
+% The odd use of \emph{three} spaces here is needed as \pkg{ltcmd} uses the
+% name with one and two spaces to give a `friendly' error message for a runaway
+% argument: that means we can't use it here.
+% \begin{macrocode}
+\cs_set_protected:Npn \reserved@a #1
+ {
+ \cs_generate_variant:cn { text_ \str_lowercase:n {#1} case:nn } { V }
+ \cs_new_protected:cpx { Make#1case \c_space_tl \c_space_tl \c_space_tl } [##1] ##2
+ { \exp_not:N \@@text@case@aux { \str_lowercase:n {#1} } {##1} {##2} }
+ \ExpandArgs { cnx } \NewExpandableDocumentCommand
+ { Make#1case }
+ { O{} +m }
+ { \exp_not:c { Make#1case \c_space_tl \c_space_tl \c_space_tl } [####1] {####2} }
+ }
+\reserved@a { Upper }
+\reserved@a { Lower }
+\reserved@a { Title }
% \end{macrocode}
%
% \changes{v2.2u}{2022/06/02}{Add \cs{NoCaseChange}}
diff --git a/macros/latex/base/ltfssdcl.dtx b/macros/latex/base/ltfssdcl.dtx
index dd9f12f802..49041605e9 100644
--- a/macros/latex/base/ltfssdcl.dtx
+++ b/macros/latex/base/ltfssdcl.dtx
@@ -36,7 +36,7 @@
%
%
\ProvidesFile{ltfssdcl.dtx}
- [2022/07/04 v3.0z LaTeX Kernel (NFSS Declarative Interface)]
+ [2022/09/20 v3.1b LaTeX Kernel (NFSS Declarative Interface)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -457,7 +457,7 @@
%
%
%
-% \begin{macro}{\c@localalphabets}
+% \begin{macro}{\c@localmathalphabets}
% \changes{v3.0x}{2021/09/26}{Counter added for (gh/676)}
% To avoid hitting the ``no more math fams available'' limit of 16, we
% keep a defined number of math alphabets flexible/local. If we have to
@@ -577,118 +577,6 @@
}
% \end{macrocode}
%
-%
-%
-% \begin{macro}{\freeze@math@version}
-% \changes{v3.0x}{2021/09/26}{Macro added for (gh/676)}
-% This command stores the current state of the math version and sets
-% things up to return to it after each formula from now on. We use
-% L3 programming layer code to set it up.
-% \begin{macrocode}
-\ExplSyntaxOn
-\cs_new_protected:Npn\freeze@math@version #1 {
-% \end{macrocode}
-% Save the current \cs{mv@\meta{version}} code and the number of
-% allocated mathgroups inside.
-% \begin{macrocode}
- \@font@info{Freeze~ math~ alphabet~ allocation~ in~ version~
- #1.\MessageBreak
- Allocated~math~groups:~\int_use:c{ c@mv@ #1 }~
- (local:~ \int_use:N\c@localmathalphabets) }
- \cs_gset_eq:cc { mv@#1@frozen }{ mv@#1 }
- \tl_gset:cx { g__nfss_frozen_mv_ #1 _tl }{ \int_use:c { c@mv@#1 } }
-% \end{macrocode}
-% Doing the reset the first time, we wait until we are out of
-% math mode, so we use some recursive \cs{group_insert_after:N} for this
-% before we execute \cs{mv@\meta{version}@reset}.
-% \begin{macrocode}
- \group_insert_after:N \__nfss_init_mv_freeze:N
- \exp_after:wN \group_insert_after:N \cs:w mv@#1@reset \cs_end:
-% \end{macrocode}
-% The \cs{check@mathfonts} is called at the very beginning of each
-% math formula, so it is a good way to hook in the resetting.
-% Again that has to happen after the formula has ended, but we know
-% because of the place where \cs{check@mathfonts} is used
-% that a single \cs{aftergoup} is sufficient.
-% \begin{macrocode}
- \tl_gput_right:No \check@mathfonts
- {
- \exp_after:wN \group_insert_after:N \cs:w mv@#1@reset \cs_end:
- }
-% \end{macrocode}
-% Here is the definition of \cs{mv@\meta{version}@reset}. If there
-% has been no new math alphabet allocation, doing a reset would
-% just cause a lot of unnecessary processing, so we do a quick
-% check upfront for this.
-% \begin{macrocode}
- \cs_gset:cpn{mv@#1@reset}
- {
- \int_compare:nNnTF { \int_use:c{c@mv@#1} } >
- { \tl_use:c{g__nfss_frozen_mv_ #1 _tl} }
- {
- \@font@info{Undo~ math~ alphabet~ allocation~ in~ version~ #1}
-% \end{macrocode}
-% If the undo is necessary, we restore the \cs{mv@\meta{version}} code.
-% \begin{macrocode}
- \cs_gset_eq:cc { mv@#1 }{ mv@#1@frozen }
- \int_gset:cn { c@mv@#1 }{ \tl_use:c {g__nfss_frozen_mv_ #1 _tl} }
-% \end{macrocode}
-% But we also should undo changes to the math alphabet
-% definitions. We therefore run this code with a modified
-% definition for \cs{getanddefine@fonts} because there is no need
-% to do anything to the symbol fonts that are permanently allocated.
-% \begin{macrocode}
- \group_begin:
- \cs_set_eq:NN \getanddefine@fonts \use_none:nn
- \use:c {mv@#1}
- \group_end:
- }
- {
-% \end{macrocode}
-% If there was no change, we report that in the log (but this
-% branch could go completely).
-% \begin{macrocode}
- \@font@info{No~ math~ alphabet~ change~ to~ frozen~ version~ #1}
- }
-% \end{macrocode}
-% If this is executed after a math display, we may have to arrange
-% for ignoring spaces, because they are now hidden if
-% the tokens from above intervene. This is signaled by the 2e
-% switch \texttt{@ignore} which is set in \cs{frozen@everymath} and
-% \cs{frozen@everydisplay}.
-%
-% This is all 2e code so we use that syntax.
-% \changes{v3.0z}{2022/07/04}{Ignore spaces if necessary (gh/886)}
-% \begin{macrocode}
- \if@ignore \ignorespaces \fi
- }
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\__nfss_init_mv_freeze:N}
-% \changes{v3.0x}{2021/09/26}{Macro added for (gh/676)}
-% To do the initial freeze in a safe place, we check if we are in
-% math mode and if so try again after the group has ended by pushing
-% the command and its single token argument with two
-% \cs{group_insert_after:N}s after the current group. If we are no longer in
-% math mode we bypass the
-% conditional and so the next token is our argument
-% which is then finally executed.
-% \begin{macrocode}
-\cs_new_protected:Npn \__nfss_init_mv_freeze:N #1 {%
- \mode_if_math:T { \group_insert_after:N \__nfss_init_mv_freeze:N
- \group_insert_after:N } #1
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macrocode}
-\ExplSyntaxOff
-% \end{macrocode}
-%
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
@@ -786,7 +674,132 @@
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
-% \end{macro}
+% \end{macro}
+%
+%
+%
+%
+% \begin{macro}{\freeze@math@version}
+% \changes{v3.0x}{2021/09/26}{Macro added for (gh/676)}
+% \changes{v3.1a}{2022/09/17}{New logic for freezing math versions (gh/921)}
+% This command stores the current state of the math version and sets
+% things up to return to it after each formula from now on. We use
+% L3 programming layer code to set it up.
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/11/01}%
+%<latexrelease> {\freeze@math@version}{freeze math version}%
+\ExplSyntaxOn
+\cs_new_protected:Npn\freeze@math@version #1 {
+% \end{macrocode}
+% Save the current \cs{mv@\meta{version}} code and the number of
+% allocated mathgroups inside.
+% \begin{macrocode}
+ \@font@info{Freeze~ math~ alphabet~ allocation~ in~ version~
+ #1.\MessageBreak
+ Allocated~math~groups:~\int_use:c{ c@mv@ #1 }~
+ (local:~ \int_use:N\c@localmathalphabets) }
+ \cs_gset_eq:cc { mv@#1@frozen }{ mv@#1 }
+ \tl_gset:cx { g__nfss_frozen_mv_ #1 _tl }{ \int_use:c { c@mv@#1 } }
+% \end{macrocode}
+% Here is the definition of \cs{mv@\meta{version}@reset}. If there
+% has been no new math alphabet allocation, doing a reset would
+% just cause a lot of unnecessary processing, so we do a quick
+% check upfront for this.
+% \begin{macrocode}
+ \cs_gset:cpn{mv@#1@reset}
+ {
+ \int_compare:nNnTF { \int_use:c{c@mv@#1} } >
+ { \tl_use:c{g__nfss_frozen_mv_ #1 _tl} }
+ {
+ \@font@info{Undo~ math~ alphabet~ allocation~ in~ version~ #1}
+% \end{macrocode}
+% If the undo is necessary, we restore the \cs{mv@\meta{version}} code.
+% \begin{macrocode}
+ \cs_gset_eq:cc { mv@#1 }{ mv@#1@frozen }
+ \int_gset:cn { c@mv@#1 }{ \tl_use:c {g__nfss_frozen_mv_ #1 _tl} }
+% \end{macrocode}
+% But we also should undo changes to the math alphabet
+% definitions. We therefore run this code with a modified
+% definition for \cs{getanddefine@fonts} because there is no need
+% to do anything to the symbol fonts that are permanently allocated.
+% \begin{macrocode}
+ \group_begin:
+ \cs_set_eq:NN \getanddefine@fonts \use_none:nn
+ \use:c {mv@#1}
+ \group_end:
+ }
+ {
+% \end{macrocode}
+% If there was no change, we report that in the log (but this
+% branch could go completely).
+% \begin{macrocode}
+ \@font@info{No~ math~ alphabet~ change~ to~ frozen~ version~ #1}
+ }
+% \end{macrocode}
+% If this is executed after a math display, we may have to arrange
+% for ignoring spaces, because they are now hidden if
+% the tokens from above intervene. This is signaled by the 2e
+% switch \texttt{@ignore} which is set in \cs{frozen@everymath} and
+% \cs{frozen@everydisplay}.
+%
+% This is all 2e code so we use that syntax.
+% \changes{v3.0z}{2022/07/04}{Ignore spaces if necessary (gh/886)}
+% \begin{macrocode}
+ \if@ignore \ignorespaces \fi
+ }
+}
+\ExplSyntaxOff
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2021/11/15}
+%<latexrelease> {\freeze@math@version}{freeze math version}%
+%<latexrelease>
+%<latexrelease>\ExplSyntaxOn
+%<latexrelease>\cs_set_protected:Npn\freeze@math@version #1 {
+%<latexrelease> \@font@info{Freeze~ math~ alphabet~ allocation~ in~ version~
+%<latexrelease> #1.\MessageBreak
+%<latexrelease> Allocated~math~groups:~\int_use:c{ c@mv@ #1 }~
+%<latexrelease> (local:~ \int_use:N\c@localmathalphabets) }
+%<latexrelease> \cs_gset_eq:cc { mv@#1@frozen }{ mv@#1 }
+%<latexrelease> \tl_gset:cx { g__nfss_frozen_mv_ #1 _tl }{ \int_use:c { c@mv@#1 } }
+%<latexrelease> \group_insert_after:N \__nfss_init_mv_freeze:N
+%<latexrelease> \exp_after:wN \group_insert_after:N \cs:w mv@#1@reset \cs_end:
+%<latexrelease> \tl_gput_right:No \check@mathfonts
+%<latexrelease> {
+%<latexrelease> \exp_after:wN \group_insert_after:N \cs:w mv@#1@reset \cs_end:
+%<latexrelease> }
+%<latexrelease> \cs_gset:cpn{mv@#1@reset}
+%<latexrelease> {
+%<latexrelease> \int_compare:nNnTF { \int_use:c{c@mv@#1} } >
+%<latexrelease> { \tl_use:c{g__nfss_frozen_mv_ #1 _tl} }
+%<latexrelease> {
+%<latexrelease> \@font@info{Undo~ math~ alphabet~ allocation~ in~ version~ #1}
+%<latexrelease> \cs_gset_eq:cc { mv@#1 }{ mv@#1@frozen }
+%<latexrelease> \int_gset:cn { c@mv@#1 }{ \tl_use:c {g__nfss_frozen_mv_ #1 _tl} }
+%<latexrelease> \group_begin:
+%<latexrelease> \cs_set_eq:NN \getanddefine@fonts \use_none:nn
+%<latexrelease> \use:c {mv@#1}
+%<latexrelease> \group_end:
+%<latexrelease> }
+%<latexrelease> {
+%<latexrelease> \@font@info{No~ math~ alphabet~ change~ to~ frozen~ version~ #1}
+%<latexrelease> }
+%<latexrelease> \if@ignore \ignorespaces \fi
+%<latexrelease> }
+%<latexrelease>}
+%<latexrelease>\cs_set_protected:Npn \__nfss_init_mv_freeze:N #1 {%
+%<latexrelease> \mode_if_math:T { \group_insert_after:N \__nfss_init_mv_freeze:N
+%<latexrelease> \group_insert_after:N } #1
+%<latexrelease>}
+%<latexrelease>\ExplSyntaxOff
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+% \end{macro}
+%
%
% \begin{macro}{\process@table}
% \begin{macrocode}
@@ -868,7 +881,7 @@
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2021/11/15}%
+%<latexrelease>\IncludeInRelease{2022/11/01}%
%<latexrelease> {\DeclareMathVersion}{local alphabets}%
\def\DeclareMathVersion#1{%
% \end{macrocode}
@@ -881,6 +894,21 @@
% \begin{macrocode}
\@namedef{g__nfss_frozen_mv_#1_tl}{}%
% \end{macrocode}
+% We also extend \cs{check@mathfonts} to call a version reset (once
+% frozen) after a formula has finished.
+% \changes{v3.1a}{2022/09/17}{New logic for freezing math versions (gh/921)}
+% \begin{macrocode}
+ \expandafter\ifx\csname mv@#1\endcsname \relax
+ \expandafter \g@addto@macro \expandafter \check@mathfonts
+ \expandafter {\expandafter \aftergroup \csname mv@#1@reset\endcsname}%
+% \end{macrocode}
+% Initially this macro does nothing. It is, however, important that
+% it doesn't stop any \cs{ignorespaces}, so we make it expandable
+% and not \cs{relax}.
+% \begin{macrocode}
+ \@namedef{mv@#1@reset}{}%
+ \fi
+% \end{macrocode}
%
% \begin{macrocode}
\expandafter\new@mathversion\csname mv@#1\endcsname}
@@ -890,6 +918,12 @@
% \end{macrocode}
%
% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2021/11/15}%
+%<latexrelease> {\DeclareMathVersion}{local alphabets}%
+%<latexrelease>\def\DeclareMathVersion#1{%
+%<latexrelease> \@namedef{g__nfss_frozen_mv_#1_tl}{}%
+%<latexrelease> \expandafter\new@mathversion\csname mv@#1\endcsname}
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\DeclareMathVersion}{local alphabets}%
%<latexrelease>\def\DeclareMathVersion#1{%
@@ -963,8 +997,24 @@
% \end{macro}
%
% \begin{macro}{\DeclareSymbolFont}
+% First drop any surplus \texttt{m} from the series argument then
+% do what has been done since 1994.
+% \changes{v3.1b}{2022/09/20}{Drop any surplus 'm' in series argument (gh/918)}
% \begin{macrocode}
-\def\DeclareSymbolFont#1#2#3#4#5{%
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/11/01}%
+%<latexrelease> {\DeclareSymbolFont}{maybe drop m}%
+\def\DeclareSymbolFont #1#2#3#4#5{%
+ \def\reserved@a{\DeclareSymbolFont@m@dropped{#1}{#2}{#3}}%
+ \edef\reserved@b{#4}%
+ \series@maybe@drop@one@m\reserved@b\reserved@b
+ \expandafter\reserved@a\expandafter{\reserved@b}{#5}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\DeclareSymbolFont@m@dropped #1#2#3#4#5{%
\@tempswafalse
\edef\reserved@b{#2}%
\def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
@@ -1018,6 +1068,16 @@
\fi
}
\@onlypreamble\DeclareSymbolFont
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\DeclareSymbolFont}{maybe drop m}%
+%<latexrelease>
+%<latexrelease>\let\DeclareSymbolFont\DeclareSymbolFont@m@dropped
+%<latexrelease>\let\DeclareSymbolFont@m@dropped\@undefined
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
@@ -1054,8 +1114,24 @@
% \end{macro}
%
% \begin{macro}{\SetSymbolFont}
+% First drop any surplus \texttt{m} from the series argument then
+% do what has been done since 1994.
+% \changes{v3.1b}{2022/09/20}{Drop any surplus 'm' in series argument (gh/918)}
% \begin{macrocode}
-\def\SetSymbolFont#1#2#3#4#5#6{%
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/11/01}%
+%<latexrelease> {\SetSymbolFont}{maybe drop m}%
+\def\SetSymbolFont #1#2#3#4#5#6{%
+ \def\reserved@a{\SetSymbolFont@m@dropped{#1}{#2}{#3}{#4}}%
+ \edef\reserved@b{#5}%
+ \series@maybe@drop@one@m\reserved@b\reserved@b
+ \expandafter\reserved@a\expandafter{\reserved@b}{#6}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\SetSymbolFont@m@dropped#1#2#3#4#5#6{%
\@tempswafalse
\edef\reserved@b{#3}%
\def\cdp@elt##1##2##3##4{\def\reserved@c{##1}%
@@ -1070,6 +1146,16 @@
\fi
}
\@onlypreamble\SetSymbolFont
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\SetSymbolFont}{maybe drop m}%
+%<latexrelease>
+%<latexrelease>\let\SetSymbolFont\SetSymbolFont@m@dropped
+%<latexrelease>\let\SetSymbolFont@m@dropped\@undefined
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/base/lthooks-code.pdf b/macros/latex/base/lthooks-code.pdf
index 250950b91c..aacbd95c9d 100644
--- a/macros/latex/base/lthooks-code.pdf
+++ b/macros/latex/base/lthooks-code.pdf
Binary files differ
diff --git a/macros/latex/base/lthooks-doc.pdf b/macros/latex/base/lthooks-doc.pdf
index ae0db8168a..ceddafad9f 100644
--- a/macros/latex/base/lthooks-doc.pdf
+++ b/macros/latex/base/lthooks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltkeys.dtx b/macros/latex/base/ltkeys.dtx
index 3de2a0582f..edf12f7cb2 100644
--- a/macros/latex/base/ltkeys.dtx
+++ b/macros/latex/base/ltkeys.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltkeys.dtx}
- [2022/07/05 v1.0i LaTeX Kernel (Kevyal options)]
+ [2022/10/22 v1.0l LaTeX Kernel (Keyval options)]
% \iffalse
\documentclass{l3doc}
\GetFileInfo{ltkeys.dtx}
@@ -72,6 +72,7 @@
% \begin{itemize}
% \item \texttt{.code} --- execute arbitrary code
% \item \texttt{.if} --- sets a \TeX{} \cs{if...} switch
+% \item \texttt{.ifnot} --- sets an inverted \TeX{} \cs{if...} switch
% \item \texttt{.store} --- stores a value in a macro
% \item \texttt{.usage} -- defines whether the option can be given only
% when loading (\texttt{load}), in the preamble (\texttt{preamble}) or
@@ -152,11 +153,13 @@
%
% \subsection{Key properties}
%
-% \begin{macro}{.code, .if, .store, .usage}
+% \begin{macro}{.code, .if, .ifnot, .store, .usage}
% \changes{v1.0b}{2022/02/05}
% {Create properties in \texttt{ltlkeys}}
% \changes{v1.0c}{2022/02/07}
% {Correct \texttt.{.code} property}
+% \changes{v1.0i}{2022/06/22}
+% {Add \texttt.{.notif} property}
% \begin{macrocode}
\group_begin:
\cs_set_protected:Npn \@@_tmp:nn #1#2
@@ -170,6 +173,7 @@
\@@_tmp:nn
{ code:n } { code }
{ legacy_if_set:n } { if }
+ { legacy_if_set_inverse:n } { ifnot }
{ tl_set:N } { store }
{ usage:n } { usage }
{ \q_recursion_tail } { }
@@ -205,6 +209,8 @@
% \begin{macro}{\@@_options_aux:n}
% \changes{v1.0b}{2022/01/15}
% {Clear option list in end-of-package hook}
+% \changes{v1.0l}{2022/10/20}
+% {Define key option handler in \pkg{ltkeys}}
% \changes{v1.0i}{2022/07/05}{Support \cs{CurrentOption}}
% \begin{macro}{\@@_options_end:}
% The main function calls functions to collect up the global and local
@@ -221,7 +227,8 @@
{ \@@_options_expand_module:Nn \@@_options_aux:n {#1} }
\cs_new_protected:Npn \@@_options_aux:n #1
{
- \cs_gset_nopar:cpn { opt@fam@\@currname.\@currext } {#1}
+ \cs_gset_protected:cpn { opt@handler@\@currname.\@currext }
+ { \ProcessKeyOptions [ #1 ] }
\cs_set_protected:Npn \@@_option_end: { }
\clist_clear:N \l_@@_options_clist
\@@_options_global:n {#1}
@@ -247,11 +254,15 @@
\@@_option_end:
\@@_options_loaded:n {#1}
}
+% \end{macrocode}
+% \changes{v1.0j}{2022/07/23}
+% {Output `public' package name in messages}
+% \begin{macrocode}
\msg_new:nnnn { keys } { option-unknown }
{ Unknown~option~'#1'~for~package~#2. }
{
LaTeX~has~been~asked~to~set~an~option~called~'#1'~
- but~the~#2~package~has~not~created~an~option~with~this~name.
+ but~the~package~"\msg_module_name:n {#2}"~has~not~created~an~option~with~this~name.
}
% \end{macrocode}
% \end{macro}
@@ -286,6 +297,7 @@
% \begin{macro}{\@@_options_class:nnn}
% \changes{v1.0h}{2022/06/20}{New function}
% \changes{v1.0i}{2022/07/05}{Correct naming of raw class options storage}
+% \changes{v1.0l}{2022/10/22}{Correct handling of unused option list}
% For classes, each option (stripped of any content after |=|)
% is checked for existence as a key. If found, the option is added to
% the combined list for processing. On the other hand, unused options
@@ -315,11 +327,12 @@
\cs_new_protected:Npn \@@_options_class:nnn #1#2#3
{
\keys_if_exist:nnTF {#3} {#1}
- { \clist_put_right:Nn \l_@@_options_clist {#2} }
{
- \str_if_eq:eeF
- { \exp_not:v { @raw@opt@ \@currname . \@currext } }
- { \exp_not:V \@raw@classoptionslist }
+ \clist_put_right:Nn \l_@@_options_clist {#2}
+ \clist_remove_all:Nn \@unusedoptionlist {#1}
+ }
+ {
+ \clist_if_in:NnF \@unusedoptionlist {#1}
{ \clist_put_right:Nn \@unusedoptionlist {#1} }
}
}
@@ -467,6 +480,7 @@
%
% \begin{macro}{\@@_options_loaded:n}
% \begin{macro}{\@@_options_loaded:nn}
+% \changes{v1.0l}{2022/10/20}{Correct an argument for a message}
% Indicates that the load-time options for a package have been processed:
% once this has happened, make them unavailable either with a warning or
% an error.
@@ -488,19 +502,33 @@
\cs_new_protected:Npn \@@_options_loaded:nn #1#2
{
\bool_if:NTF \l_@@_options_loading_bool
- {
- \msg_warning:nnxx { keys } { load-option-ignored }
- { \use:c { opt@fam@\@currname.\@currext } } {#2}
- }
- { \msg_error:nnnn { keys } { load-only } {#1} {#2} }
+ { \msg_warning:nnnn { keys } { load-option-ignored } }
+ { \msg_error:nnnn { keys } { load-only } }
+ {#1} {#2}
}
+% \end{macrocode}
+% \changes{v1.0j}{2022/07/23}
+% {Output `public' package name in messages}
+% \begin{macrocode}
\msg_new:nnn { keys } { load-option-ignored }
- { Package~"#1"~has~already~been~loaded:~ignoring~load-time~option~"#2". }
+ {
+ Package~"\msg_module_name:n {#1}"~has~already~been~loaded:~
+ ignoring~load-time~option~"#2".
+ }
+% \end{macrocode}
+% \changes{v1.0j}{2022/07/23}
+% {Output `public' package name in messages}
+% \changes{v1.0k}{2022/08/21}
+% {Correct error message}
+% \begin{macrocode}
\msg_new:nnnn { keys } { load-only }
- { Key~"#2"~may~only~be~used~in~the~during~loading~of~package~"#1". }
+ {
+ Key~"#2"~may~only~be~used~during~loading~of~package~
+ "\msg_module_name:n {#1}".
+ }
{
LaTeX~was~asked~to~set~a~key~called~"#2",~but~this~is~only~allowed~
- in~the~optional~argument~when~loading~package~"#1".
+ in~the~optional~argument~when~loading~package~"\msg_module_name:n{#1}".
}
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/base/ltluatex.dtx b/macros/latex/base/ltluatex.dtx
index 18623fd677..6c66a96be0 100644
--- a/macros/latex/base/ltluatex.dtx
+++ b/macros/latex/base/ltluatex.dtx
@@ -28,7 +28,7 @@
\ProvidesFile{ltluatex.dtx}
%</driver>
%<*tex>
-[2021/12/27 v1.1x
+[2022/10/03 v1.2a
%</tex>
%<plain> LuaTeX support for plain TeX (core)
%<*tex>
@@ -380,7 +380,7 @@
%
% \noindent
% \DescribeMacro{create_callback}
-% |luatexbase.create_callback(|\meta{name},meta{type},\meta{default}|)|
+% |luatexbase.create_callback(|\meta{name},\meta{type},\meta{default}|)|
% Defines a user defined callback. The last argument is a default
% function or |false|.
%
@@ -389,6 +389,34 @@
% |luatexbase.call_callback(|\meta{name},\ldots|)|
% Calls a user defined callback with the supplied arguments.
%
+% \noindent
+% \DescribeMacro{declare_callback_rule}
+% |luatexbase.declare_callback_rule(|\meta{name}, \meta{first}, \meta{relation}, \meta{second}|)|
+% Adds an ordering constraint between two callback functions for callback \meta{name}.
+%
+% The kind of constraint added depends on \meta{relation}:
+% \begin{description}
+% \item[before] The callback function with description \meta{first} will be
+% executed before the function with description \meta{second}.
+% \item[after] The callback function with description \meta{first} will be
+% executed after the function with description \meta{second}.
+% \item[incompatible-warning] When both a callback function with description \meta{first}
+% and with description \meta{second} is registered, then a warning is printed when
+% the callback is executed.
+% \item[incompatible-error] When both a callback function with description \meta{first}
+% and with description \meta{second} is registered, then an error is printed when
+% the callback is executed.
+% \item[unrelated] Any previously declared callback rule between \meta{first}
+% and \meta{second} gets disabled.
+% \end{description}
+% Every call to \texttt{declare_callback_rule} with a specific callback \meta{name}
+% and descriptions \meta{first} and \meta{second} overwrites all previous calls with
+% same callback and descriptions.
+%
+% The callback functions do not have to be registered yet when the functions is called.
+% Ony the constraints for which both callback descriptions refer to callbacks
+% registered at the time the callback is called will have an effect.
+%
% \endgroup
%
% \MaybeStop{}
@@ -1288,8 +1316,120 @@ luatexbase.new_luafunction = new_luafunction
% actual function as |func| and the identifying description as |description|.
% Only callbacks with a non-empty list of functions have an entry in this
% list.
-% \begin{macrocode}
-local callbacklist = callbacklist or { }
+%
+% Actually there are two tables: |realcallbacklist| directly contains the entries
+% as described above while |callbacklist| only directly contains the already sorted
+% entries. Other entries can be queried through |callbacklist| too which triggers a
+% resort.
+%
+% Additionally |callbackrules| describes the ordering constraints: It contains two
+% element tables with the descriptions of the constrained callback implementations.
+% It can additionally contain a |type| entry indicating the kind of rule. A missing
+% value indicates a normal ordering contraint.
+%
+% \changes{v1.2a}{2022/10/03}{Add rules for callback ordering}
+% \begin{macrocode}
+local realcallbacklist = {}
+local callbackrules = {}
+local callbacklist = setmetatable({}, {
+ __index = function(t, name)
+ local list = realcallbacklist[name]
+ local rules = callbackrules[name]
+ if list and rules then
+ local meta = {}
+ for i, entry in ipairs(list) do
+ local t = {value = entry, count = 0, pos = i}
+ meta[entry.description], list[i] = t, t
+ end
+ local count = #list
+ local pos = count
+ for i, rule in ipairs(rules) do
+ local rule = rules[i]
+ local pre, post = meta[rule[1]], meta[rule[2]]
+ if pre and post then
+ if rule.type then
+ if not rule.hidden then
+ assert(rule.type == 'incompatible-warning' and luatexbase_warning
+ or rule.type == 'incompatible-error' and luatexbase_error)(
+ "Incompatible functions \"" .. rule[1] .. "\" and \"" .. rule[2]
+ .. "\" specified for callback \"" .. name .. "\".")
+ rule.hidden = true
+ end
+ else
+ local post_count = post.count
+ post.count = post_count+1
+ if post_count == 0 then
+ local post_pos = post.pos
+ if post_pos ~= pos then
+ local new_post_pos = list[pos]
+ new_post_pos.pos = post_pos
+ list[post_pos] = new_post_pos
+ end
+ list[pos] = nil
+ pos = pos - 1
+ end
+ pre[#pre+1] = post
+ end
+ end
+ end
+ for i=1, count do -- The actual sort begins
+ local current = list[i]
+ if current then
+ meta[current.value.description] = nil
+ for j, cur in ipairs(current) do
+ local count = cur.count
+ if count == 1 then
+ pos = pos + 1
+ list[pos] = cur
+ else
+ cur.count = count - 1
+ end
+ end
+ list[i] = current.value
+ else
+ -- Cycle occured. TODO: Show cycle for debugging
+ -- list[i] = ...
+ local remaining = {}
+ for name, entry in next, meta do
+ local value = entry.value
+ list[#list + 1] = entry.value
+ remaining[#remaining + 1] = name
+ end
+ table.sort(remaining)
+ local first_name = remaining[1]
+ for j, name in ipairs(remaining) do
+ local entry = meta[name]
+ list[i + j - 1] = entry.value
+ for _, post_entry in ipairs(entry) do
+ local post_name = post_entry.value.description
+ if not remaining[post_name] then
+ remaining[post_name] = name
+ end
+ end
+ end
+ local cycle = {first_name}
+ local index = 1
+ local last_name = first_name
+ repeat
+ cycle[last_name] = index
+ last_name = remaining[last_name]
+ index = index + 1
+ cycle[index] = last_name
+ until cycle[last_name]
+ local length = index - cycle[last_name] + 1
+ table.move(cycle, cycle[last_name], index, 1)
+ for i=2, length//2 do
+ cycle[i], cycle[length + 1 - i] = cycle[length + 1 - i], cycle[i]
+ end
+ error('Cycle occured at ' .. table.concat(cycle, ' -> ', 1, length))
+ end
+ end
+ end
+ realcallbacklist[name] = list
+ t[name] = list
+ return list
+ end
+})
% \end{macrocode}
%
% Numerical codes for callback types, and name-to-value association (the
@@ -1398,9 +1538,7 @@ local callbacktypes = callbacktypes or {
ligaturing = simple,
kerning = simple,
insert_local_par = simple,
- pre_mlist_to_hlist_filter = list,
- mlist_to_hlist = exclusive,
- post_mlist_to_hlist_filter = reverselist,
+% mlist_to_hlist = exclusive,
new_graf = exclusive,
% \end{macrocode}
% Section 8.5: information reporting callbacks.
@@ -1461,6 +1599,30 @@ local callbacktypes = callbacktypes or {
luatexbase.callbacktypes=callbacktypes
% \end{macrocode}
%
+% \changes{v1.1y}{2022/08/13}{shared\_callbacks added}
+% Sometimes multiple callbacks correspond to a single underlying engine level callback.
+% Then the engine level callback should be registered as long as at least one of these
+% callbacks is in use. This is implemented though a shared table which counts how many
+% of the involved callbacks are currently in use. The enging level callback is registered
+% iff this count is not 0.
+%
+% We add |mlist_to_hlist| directly to the list to demonstrate this, but the handler gets
+% added later when it is actually defined.
+%
+% All callbacks in this list are treated as user defined callbacks.
+%
+% \begin{macrocode}
+local shared_callbacks = {
+ mlist_to_hlist = {
+ callback = "mlist_to_hlist",
+ count = 0,
+ handler = nil,
+ },
+}
+shared_callbacks.pre_mlist_to_hlist_filter = shared_callbacks.mlist_to_hlist
+shared_callbacks.post_mlist_to_hlist_filter = shared_callbacks.mlist_to_hlist
+% \end{macrocode}
+%
% \begin{macro}{callback.register}
% \changes{v1.0a}{2015/09/24}{Function modified}
% Save the original function for registering callbacks and prevent the
@@ -1639,11 +1801,7 @@ local defaults = {
% If a default function is not required, it may be declared as |false|.
% First we need a list of user callbacks.
% \begin{macrocode}
-local user_callbacks_defaults = {
- pre_mlist_to_hlist_filter = list_handler_default,
- mlist_to_hlist = node.mlist_to_hlist,
- post_mlist_to_hlist_filter = list_handler_default,
-}
+local user_callbacks_defaults = {}
% \end{macrocode}
%
% \begin{macro}{create_callback}
@@ -1713,6 +1871,7 @@ luatexbase.call_callback=call_callback
% \changes{v1.0a}{2015/09/24}{Function added}
% Add a function to a callback. First check arguments.
% \changes{v1.0k}{2015/12/02}{Give more specific error messages (PHG)}
+% \changes{v1.2a}{2022/10/03}{Add rules for callback ordering}
% \begin{macrocode}
local function add_to_callback(name, func, description)
if not name or name == "" then
@@ -1733,18 +1892,29 @@ local function add_to_callback(name, func, description)
% Then test if this callback is already in use. If not, initialise its list
% and register the proper handler.
% \begin{macrocode}
- local l = callbacklist[name]
+ local l = realcallbacklist[name]
if l == nil then
l = { }
- callbacklist[name] = l
+ realcallbacklist[name] = l
+% \end{macrocode}
+% \changes{v1.1y}{2022/08/13}{Adapted code for shared\_callbacks}
+% Handle count for shared engine callbacks.
+% \begin{macrocode}
+ local shared = shared_callbacks[name]
+ if shared then
+ shared.count = shared.count + 1
+ if shared.count == 1 then
+ callback_register(shared.callback, shared.handler)
+ end
% \end{macrocode}
% If it is not a user defined callback use the primitive callback register.
% \begin{macrocode}
- if user_callbacks_defaults[name] == nil then
+ elseif user_callbacks_defaults[name] == nil then
callback_register(name, handlers[callbacktypes[name]](name))
end
end
% \end{macrocode}
+% \changes{v1.2a}{2022/10/03}{Add rules for callback ordering}
% Actually register the function and give an error if more than one
% |exclusive| one is registered.
% \begin{macrocode}
@@ -1752,7 +1922,6 @@ local function add_to_callback(name, func, description)
func = func,
description = description,
}
- local priority = #l + 1
if callbacktypes[name] == exclusive then
if #l == 1 then
luatexbase_error(
@@ -1760,24 +1929,76 @@ local function add_to_callback(name, func, description)
name .. "'")
end
end
- table.insert(l, priority, f)
+ table.insert(l, f)
+ callbacklist[name] = nil
% \end{macrocode}
% Keep user informed.
% \begin{macrocode}
luatexbase_log(
- "Inserting `" .. description .. "' at position "
- .. priority .. " in `" .. name .. "'."
+ "Inserting `" .. description .. "' in `" .. name .. "'."
)
end
luatexbase.add_to_callback = add_to_callback
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{declare_callback_rule}
+% \changes{v1.2a}{2022/10/03}{Add function}
+% Add an ordering constraint between two callback implementations
+% \begin{macrocode}
+local function declare_callback_rule(name, desc1, relation, desc2)
+ if not callbacktypes[name] or
+ not desc1 or not desc2 or
+ desc1 == "" or desc2 == "" then
+ luatexbase_error(
+ "Unable to create ordering constraint. "
+ .. "Correct usage:\n"
+ .. "declare_callback_rule(<callback>, <description_a>, <description_b>)"
+ )
+ end
+ if relation == 'before' then
+ relation = nil
+ elseif relation == 'after' then
+ desc2, desc1 = desc1, desc2
+ relation = nil
+ elseif relation == 'incompatible-warning' or relation == 'incompatible-error' then
+ elseif relation == 'unrelated' then
+ else
+ luatexbase_error(
+ "Unknown relation type in declare_callback_rule"
+ )
+ end
+ callbacklist[name] = nil
+ local rules = callbackrules[name]
+ if rules then
+ for i, rule in ipairs(rules) do
+ if rule[1] == desc1 and rule[2] == desc2 or rule[1] == desc2 and rule[2] == desc1 then
+ if relation == 'unrelated' then
+ table.remove(rules, i)
+ else
+ rule[1], rule[2], rule.type = desc1, desc2, relation
+ end
+ return
+ end
+ end
+ if relation ~= 'unrelated' then
+ rules[#rules + 1] = {desc1, desc2, type = relation}
+ end
+ elseif relation ~= 'unrelated' then
+ callbackrules[name] = {{desc1, desc2, type = relation}}
+ end
+end
+luatexbase.declare_callback_rule = declare_callback_rule
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{remove_from_callback}
% \changes{v1.0a}{2015/09/24}{Function added}
% \changes{v1.0k}{2015/12/02}{adjust initialization 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}
+% \changes{v1.1y}{2022/08/13}{Adapted code for shared\_callbacks}
+% \changes{v1.2a}{2022/10/03}{Add rules for callback ordering}
% Remove a function from a callback. First check arguments.
% \begin{macrocode}
local function remove_from_callback(name, description)
@@ -1794,7 +2015,7 @@ local function remove_from_callback(name, description)
.. "remove_from_callback(<callback>, <description>)"
)
end
- local l = callbacklist[name]
+ local l = realcallbacklist[name]
if not l then
luatexbase_error(
"No callback list for `" .. name .. "'\n")
@@ -1822,8 +2043,15 @@ local function remove_from_callback(name, description)
"Removing `" .. description .. "' from `" .. name .. "'."
)
if #l == 0 then
+ realcallbacklist[name] = nil
callbacklist[name] = nil
- if user_callbacks_defaults[name] == nil then
+ local shared = shared_callbacks[name]
+ if shared then
+ shared.count = shared.count - 1
+ if shared.count == 0 then
+ callback_register(shared.callback, nil)
+ end
+ elseif user_callbacks_defaults[name] == nil then
callback_register(name, nil)
end
end
@@ -1841,12 +2069,12 @@ luatexbase.remove_from_callback = remove_from_callback
local function in_callback(name, description)
if not name
or name == ""
- or not callbacklist[name]
+ or not realcallbacklist[name]
or not callbacktypes[name]
or not description then
return false
end
- for _, i in pairs(callbacklist[name]) do
+ for _, i in pairs(realcallbacklist[name]) do
if i.description == description then
return true
end
@@ -1863,7 +2091,7 @@ luatexbase.in_callback = in_callback
% this functionality.
% \begin{macrocode}
local function disable_callback(name)
- if(callbacklist[name] == nil) then
+ if(realcallbacklist[name] == nil) then
callback_register(name, false)
else
luatexbase_error("Callback list for " .. name .. " not empty")
@@ -1877,12 +2105,13 @@ luatexbase.disable_callback = disable_callback
% \changes{v1.0a}{2015/09/24}{Function added}
% \changes{v1.0h}{2015/11/27}{Match test in in-callback latex/4445}
% List the descriptions of functions registered for the given callback.
+% This will sort the list if necessary.
% \begin{macrocode}
local function callback_descriptions (name)
local d = {}
if not name
or name == ""
- or not callbacklist[name]
+ or not realcallbacklist[name]
or not callbacktypes[name]
then
return d
@@ -1917,10 +2146,14 @@ luatexbase.uninstall = uninstall
% \end{macro}
% \begin{macro}{mlist_to_hlist}
% \changes{v1.1l}{2020/02/02}{|pre/post_mlist_to_hlist| added}
+% \changes{v1.1y}{2022/08/13}{Use shared\_callback system for pre/post/mlist_to_hlist}
% To emulate these callbacks, the ``real'' |mlist_to_hlist| is replaced by a
% wrapper calling the wrappers before and after.
% \begin{macrocode}
-callback_register("mlist_to_hlist", function(head, display_type, need_penalties)
+create_callback('pre_mlist_to_hlist_filter', 'list')
+create_callback('mlist_to_hlist', 'exclusive', node.mlist_to_hlist)
+create_callback('post_mlist_to_hlist_filter', 'list')
+function shared_callbacks.mlist_to_hlist.handler(head, display_type, need_penalties)
local current = call_callback("pre_mlist_to_hlist_filter", head, display_type, need_penalties)
if current == false then
flush_list(head)
@@ -1933,7 +2166,7 @@ callback_register("mlist_to_hlist", function(head, display_type, need_penalties)
return nil
end
return post
-end)
+end
% \end{macrocode}
% \end{macro}
% \endgroup
diff --git a/macros/latex/base/ltluatex.pdf b/macros/latex/base/ltluatex.pdf
index 145035b41c..de961e8de6 100644
--- a/macros/latex/base/ltluatex.pdf
+++ b/macros/latex/base/ltluatex.pdf
Binary files differ
diff --git a/macros/latex/base/ltmarks-code.pdf b/macros/latex/base/ltmarks-code.pdf
index c1d9b03a2f..4533a3c4f1 100644
--- a/macros/latex/base/ltmarks-code.pdf
+++ b/macros/latex/base/ltmarks-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltmarks-doc.pdf b/macros/latex/base/ltmarks-doc.pdf
index 2be35c3b57..3ce8f3780f 100644
--- a/macros/latex/base/ltmarks-doc.pdf
+++ b/macros/latex/base/ltmarks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltmath.dtx b/macros/latex/base/ltmath.dtx
index 1bd979f7de..60394460f5 100644
--- a/macros/latex/base/ltmath.dtx
+++ b/macros/latex/base/ltmath.dtx
@@ -38,7 +38,7 @@
%<*driver>
% \fi
\ProvidesFile{ltmath.dtx}
- [2022/05/08 v1.2l LaTeX Kernel (Math Setup)]
+ [2022/09/07 v1.2m LaTeX Kernel (Math Setup)]
% \iffalse
%</driver>
%
@@ -370,9 +370,39 @@
% \begin{macrocode}
\def\makesm@sh#1{%
\setbox\z@\hbox{\color@begingroup#1\color@endgroup}\finsm@sh}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/11/01}%
+%<latexrelease> {\mathsm@sh}{Guard against reboxing}%
\def\mathsm@sh#1#2{%
- \setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh}
+ \setbox\z@\hbox{$\m@th#1{#2}$}%
+% \end{macrocode}
+% The empty brace groups in front of the smashed box (which is
+% placed by \cs{finsm@sh}) ensures that a \cs{smash} in math is not
+% just producing a single box with its dimensions altered, but a
+% box plus this second ord atom. The reason is that \TeX{} sometimes reboxes a
+% box if its the only thing in a place like the denominator of a
+% fraction. This would then undo the smashing and the additional
+% ord atom prevents that. Two ord atoms in a row do not alter the
+% horizontal spacing in a formula so this is otherwise transparent.
+% \changes{v1.2m}{2022/09/03}{Guard against reboxing in fractions (gh/517)}
+% \begin{macrocode}
+ {}\finsm@sh}
% \end{macrocode}
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\mathsm@sh}{Guard against reboxing}%
+%<latexrelease>\def\mathsm@sh#1#2{%
+%<latexrelease> \setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
% \changes{v1.2b}{2018/09/24}{Start LR-mode if necessary (git/49)}
% \begin{macrocode}
%</2ekernel>
diff --git a/macros/latex/base/ltnews.pdf b/macros/latex/base/ltnews.pdf
index 034754546d..1f8e4ea789 100644
--- a/macros/latex/base/ltnews.pdf
+++ b/macros/latex/base/ltnews.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews.tex b/macros/latex/base/ltnews.tex
index cba11c3ce3..8d45f77cda 100644
--- a/macros/latex/base/ltnews.tex
+++ b/macros/latex/base/ltnews.tex
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
% Copyright (C) 2006, 2009, 2011, 2014 Heiko Oberdiek
-% Copyright (C) 2014-2021
+% Copyright (C) 2014-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -38,9 +38,9 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltnews.tex}%
- [2021/11/12 v1.4d Master file for ltnews*.tex (LaTeX Project)]
+ [2022/06/10 v1.4e Master file for ltnews*.tex (LaTeX Project)]
-\providecommand*{\lastissue}{35}
+\providecommand*{\lastissue}{36}
\InputIfFileExists{ltnews-lastissue.cfg}{}{}
diff --git a/macros/latex/base/ltnews01.pdf b/macros/latex/base/ltnews01.pdf
index 990d35848d..6e56630f2b 100644
--- a/macros/latex/base/ltnews01.pdf
+++ b/macros/latex/base/ltnews01.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews02.pdf b/macros/latex/base/ltnews02.pdf
index d6d78abcc1..c3c70a8b5e 100644
--- a/macros/latex/base/ltnews02.pdf
+++ b/macros/latex/base/ltnews02.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews03.pdf b/macros/latex/base/ltnews03.pdf
index 55c4f73b7f..34bcb747fd 100644
--- a/macros/latex/base/ltnews03.pdf
+++ b/macros/latex/base/ltnews03.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews04.pdf b/macros/latex/base/ltnews04.pdf
index 03b34f71f2..0846a4453e 100644
--- a/macros/latex/base/ltnews04.pdf
+++ b/macros/latex/base/ltnews04.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews05.pdf b/macros/latex/base/ltnews05.pdf
index 693d87c824..65cac33031 100644
--- a/macros/latex/base/ltnews05.pdf
+++ b/macros/latex/base/ltnews05.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews06.pdf b/macros/latex/base/ltnews06.pdf
index a205d98386..0b21c52a0b 100644
--- a/macros/latex/base/ltnews06.pdf
+++ b/macros/latex/base/ltnews06.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews07.pdf b/macros/latex/base/ltnews07.pdf
index 1b927a766e..bf73ba4b4e 100644
--- a/macros/latex/base/ltnews07.pdf
+++ b/macros/latex/base/ltnews07.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews08.pdf b/macros/latex/base/ltnews08.pdf
index 7b5b895edf..5e0e023b98 100644
--- a/macros/latex/base/ltnews08.pdf
+++ b/macros/latex/base/ltnews08.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews09.pdf b/macros/latex/base/ltnews09.pdf
index 8ccfc74922..a0f5a68f40 100644
--- a/macros/latex/base/ltnews09.pdf
+++ b/macros/latex/base/ltnews09.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews10.pdf b/macros/latex/base/ltnews10.pdf
index 2a991a0611..b06683fbf6 100644
--- a/macros/latex/base/ltnews10.pdf
+++ b/macros/latex/base/ltnews10.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews11.pdf b/macros/latex/base/ltnews11.pdf
index d69729c8c5..fc8aedc500 100644
--- a/macros/latex/base/ltnews11.pdf
+++ b/macros/latex/base/ltnews11.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews12.pdf b/macros/latex/base/ltnews12.pdf
index 68b649e244..0f35c8ab0a 100644
--- a/macros/latex/base/ltnews12.pdf
+++ b/macros/latex/base/ltnews12.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews13.pdf b/macros/latex/base/ltnews13.pdf
index 44b1755b94..b42e6b04aa 100644
--- a/macros/latex/base/ltnews13.pdf
+++ b/macros/latex/base/ltnews13.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews14.pdf b/macros/latex/base/ltnews14.pdf
index d852638b7d..8951745573 100644
--- a/macros/latex/base/ltnews14.pdf
+++ b/macros/latex/base/ltnews14.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews15.pdf b/macros/latex/base/ltnews15.pdf
index 84f9092d45..6453f789a7 100644
--- a/macros/latex/base/ltnews15.pdf
+++ b/macros/latex/base/ltnews15.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews16.pdf b/macros/latex/base/ltnews16.pdf
index e2b4c586ed..a645558f61 100644
--- a/macros/latex/base/ltnews16.pdf
+++ b/macros/latex/base/ltnews16.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews17.pdf b/macros/latex/base/ltnews17.pdf
index 9f645aa690..1f745f203e 100644
--- a/macros/latex/base/ltnews17.pdf
+++ b/macros/latex/base/ltnews17.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews18.pdf b/macros/latex/base/ltnews18.pdf
index 1356eb153e..c3a8941a76 100644
--- a/macros/latex/base/ltnews18.pdf
+++ b/macros/latex/base/ltnews18.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews19.pdf b/macros/latex/base/ltnews19.pdf
index 35e0bda64b..dc7a6820ba 100644
--- a/macros/latex/base/ltnews19.pdf
+++ b/macros/latex/base/ltnews19.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews20.pdf b/macros/latex/base/ltnews20.pdf
index 65ebafbf08..417ec12536 100644
--- a/macros/latex/base/ltnews20.pdf
+++ b/macros/latex/base/ltnews20.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews21.pdf b/macros/latex/base/ltnews21.pdf
index 2583506089..1dbfc15e11 100644
--- a/macros/latex/base/ltnews21.pdf
+++ b/macros/latex/base/ltnews21.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews22.pdf b/macros/latex/base/ltnews22.pdf
index 7069bbd881..4e70eb7c6c 100644
--- a/macros/latex/base/ltnews22.pdf
+++ b/macros/latex/base/ltnews22.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews23.pdf b/macros/latex/base/ltnews23.pdf
index ca66955afa..5316031397 100644
--- a/macros/latex/base/ltnews23.pdf
+++ b/macros/latex/base/ltnews23.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews24.pdf b/macros/latex/base/ltnews24.pdf
index f2c8066238..f248fc3459 100644
--- a/macros/latex/base/ltnews24.pdf
+++ b/macros/latex/base/ltnews24.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews25.pdf b/macros/latex/base/ltnews25.pdf
index 142bf7b039..2d705f9819 100644
--- a/macros/latex/base/ltnews25.pdf
+++ b/macros/latex/base/ltnews25.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews26.pdf b/macros/latex/base/ltnews26.pdf
index 6c5d647d64..a653967936 100644
--- a/macros/latex/base/ltnews26.pdf
+++ b/macros/latex/base/ltnews26.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews27.pdf b/macros/latex/base/ltnews27.pdf
index 1f0bcbc27a..27201797d9 100644
--- a/macros/latex/base/ltnews27.pdf
+++ b/macros/latex/base/ltnews27.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews28.pdf b/macros/latex/base/ltnews28.pdf
index de3a29db79..093ed9aa3f 100644
--- a/macros/latex/base/ltnews28.pdf
+++ b/macros/latex/base/ltnews28.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews29.pdf b/macros/latex/base/ltnews29.pdf
index 4a094a88af..9aa2007043 100644
--- a/macros/latex/base/ltnews29.pdf
+++ b/macros/latex/base/ltnews29.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews30.pdf b/macros/latex/base/ltnews30.pdf
index db62aea7a8..f67a613556 100644
--- a/macros/latex/base/ltnews30.pdf
+++ b/macros/latex/base/ltnews30.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews31.pdf b/macros/latex/base/ltnews31.pdf
index 579fd7e2a8..2773922f5f 100644
--- a/macros/latex/base/ltnews31.pdf
+++ b/macros/latex/base/ltnews31.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews32.pdf b/macros/latex/base/ltnews32.pdf
index 1eaa53b6e1..7367054b65 100644
--- a/macros/latex/base/ltnews32.pdf
+++ b/macros/latex/base/ltnews32.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews33.pdf b/macros/latex/base/ltnews33.pdf
index 76c720e3b5..fc08d010c3 100644
--- a/macros/latex/base/ltnews33.pdf
+++ b/macros/latex/base/ltnews33.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews34.pdf b/macros/latex/base/ltnews34.pdf
index 3d7ae3a8d7..9a5115132b 100644
--- a/macros/latex/base/ltnews34.pdf
+++ b/macros/latex/base/ltnews34.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews35.pdf b/macros/latex/base/ltnews35.pdf
index c0dd1b20ea..b1c446c642 100644
--- a/macros/latex/base/ltnews35.pdf
+++ b/macros/latex/base/ltnews35.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews35.tex b/macros/latex/base/ltnews35.tex
index 0e0cda79b1..0230ef6e58 100644
--- a/macros/latex/base/ltnews35.tex
+++ b/macros/latex/base/ltnews35.tex
@@ -208,7 +208,7 @@ means that existing documents are in no way affected by the work that
is carried out and is in a wider alpha or beta test phase.
Documentation about the new command and
-already existing keys are in \file{l3meta.pdf} and \file{documentmetadata-support.pdf}
+already existing keys are in \file{ltmeta} (part of \file{source2e.pdf}) and \file{documentmetadata-support.pdf}
and also in the documentation of the \pkg{pdfmanagement-testphase} package.
Package and class authors can test if a user has used \cs{DocumentMetadata}
@@ -443,10 +443,6 @@ selects a true or false code branch. As usual, the variants
branch leads to some action. Further details and examples are given
in \file{usrguide3.pdf}.
-This test can also be useful if you set up key/value options and want
-to test if a key was specified without giving a value, vs.\
-specifying \enquote{\textit{key}\texttt{ = ,}}.
-
\subsection{Better allocator for Lua command ids}
diff --git a/macros/latex/base/ltnews36.pdf b/macros/latex/base/ltnews36.pdf
new file mode 100644
index 0000000000..5272f171d4
--- /dev/null
+++ b/macros/latex/base/ltnews36.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews36.tex b/macros/latex/base/ltnews36.tex
new file mode 100644
index 0000000000..d6df801db2
--- /dev/null
+++ b/macros/latex/base/ltnews36.tex
@@ -0,0 +1,541 @@
+% \iffalse meta-comment
+%
+% Copyright 2021-2022
+% The LaTeX Project and any individual authors listed elsewhere
+% in this file.
+%
+% This file is part of the LaTeX base system.
+% -——————————————
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% The list of all files belonging to the LaTeX base distribution is
+% given in the file `manifest.txt'. See also `legal.txt' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% \fi
+% Filename: ltnews36.tex
+%
+% This is issue 36 of LaTeX News.
+
+\NeedsTeXFormat{LaTeX2e}[2020-02-02]
+
+\documentclass{ltnews}
+
+%% Maybe needed only for Chris' inadequate system:
+\providecommand\Dash {\unskip \textemdash}
+
+%% NOTE: Chris' preferred hyphens!
+%%\showhyphens{parameters}
+%% \hyphenation{because parameters parameter}
+
+\usepackage[T1]{fontenc}
+
+\usepackage{lmodern,url,hologo}
+
+\usepackage{csquotes}
+\usepackage{multicol}
+\usepackage{color}
+
+\providecommand\hook[1]{\texttt{#1}}
+
+\providecommand\meta[1]{$\langle$\textrm{\itshape#1}$\rangle$}
+\providecommand\option[1]{\texttt{#1}}
+\providecommand\env[1]{\texttt{#1}}
+\providecommand\Arg[1]{\texttt\{\meta{#1}\texttt\}}
+
+
+\providecommand\eTeX{\hologo{eTeX}}
+\providecommand\XeTeX{\hologo{XeTeX}}
+\providecommand\LuaTeX{\hologo{LuaTeX}}
+\providecommand\pdfTeX{\hologo{pdfTeX}}
+\providecommand\MiKTeX{\hologo{MiKTeX}}
+\providecommand\CTAN{\textsc{ctan}}
+\providecommand\TL{\TeX\,Live}
+\providecommand\githubissue[2][]{\ifhmode\unskip\fi
+ \quad\penalty500\strut\nobreak\hfill
+ \mbox{\small\slshape(%
+ \href{https://github.com/latex3/latex2e/issues/\getfirstgithubissue#2 \relax}%
+ {github issue#1 #2}%
+ )}%
+ \par\smallskip}
+%% But Chris has to mostly disable \href for his TEXPAD app:
+%% \def\href #1{} % Only For Chris' deficient TeX engine
+
+% simple solution right now (just link to the first issue if there are more)
+\def\getfirstgithubissue#1 #2\relax{#1}
+
+\providecommand\sxissue[1]{\ifhmode\unskip
+ \else
+ % githubissue preceding
+ \vskip-\smallskipamount
+ \vskip-\parskip
+ \fi
+ \quad\penalty500\strut\nobreak\hfill
+ \mbox{\small\slshape(\url{https://tex.stackexchange.com/#1})}\par}
+
+\providecommand\gnatsissue[2]{\ifhmode\unskip\fi
+ \quad\penalty500\strut\nobreak\hfill
+ \mbox{\small\slshape(%
+ \href{https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=#1\%2F\getfirstgithubissue#2 \relax}%
+ {gnats issue #1/#2}%
+ )}%
+ \par}
+
+\let\cls\pkg
+\providecommand\env[1]{\texttt{#1}}
+\providecommand\acro[1]{\textsc{#1}}
+
+\vbadness=1400 % accept slightly empty columns
+
+
+\makeatletter
+% maybe not the greatest design but normally we wouldn't have subsubsections
+\renewcommand{\subsubsection}{%
+ \@startsection {subsubsection}{2}{0pt}{1.5ex \@plus 1ex \@minus .2ex}%
+ {-1em}{\@subheadingfont\colonize}%
+}
+\providecommand\colonize[1]{#1:}
+\makeatother
+
+\let\finalvspace\vspace % for document layout fixes
+
+% Undo ltnews's \verbatim@font with active < and >
+\makeatletter
+\def\verbatim@font{%
+ \normalsize\ttfamily}
+\makeatletter
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\providecommand\tubcommand[1]{}
+\tubcommand{\input{tubltmac}}
+
+\publicationmonth{November}
+\publicationyear{2022} % --- DRAFT version for upcoming release}
+
+\publicationissue{36}
+
+\begin{document}
+
+\tubcommand{\addtolength\textheight{4.2pc}} % only for TUB
+
+\maketitle
+{\hyphenpenalty=10000 \exhyphenpenalty=10000 \spaceskip=3.33pt \hbadness=10000
+\tableofcontents}
+
+\setlength\rightskip{0pt plus 3em}
+
+
+\medskip
+
+
+\section{Introduction}
+
+The 2022-11 release of \LaTeX{} is largely a consolidation release
+where we made a number of minor improvements to fix some bugs or
+improve one or the other interface.
+
+The only really important functionality that was added is described in
+the next section: the ability to easily define document-level commands
+and environments that accept a key/value list in one of its (usually
+optional) arguments, including the ability to determine if the argument
+does in fact contain such a key/value list or just a single
+\enquote{classical} value.
+
+For the \enquote{Tagged \LaTeX{} Project} this functionality is very
+important because many document-level commands will need to accept
+such key/value lists, for example, to specify alternative text or
+overwrite default tagging if that becomes necessary in a document.
+
+
+\section{Auto-detecting key/value arguments}
+
+To allow extension of the core \LaTeX{} syntax, \pkg{ltcmd} now supports
+a \texttt{={...}}\ modifier when grabbing arguments. This modifier instructs
+\LaTeX{} that the argument should be passed to the underlying code as
+a set of key/values. If the argument does not \enquote{look like} a set
+of key/values, it will be converted into a single key/value pair, with
+the argument to \texttt{=} specifying the name of that key. For
+example, the \cs{caption} command could be defined as
+\begin{verbatim}
+ \DeclareDocumentCommand\caption
+ {s ={short-text}+O{#3} +m}
+ {...}
+\end{verbatim}
+which would mean that if the optional argument does \emph{not}
+contain key/value data, it will be converted to a single key/value
+pair with the key name \texttt{short-text}.
+
+Arguments which begin with \texttt{=,} are always interpreted as
+key/values even if they do not contain further \texttt{=} signs.
+Any \texttt{=} signs enclosed within \verb|$...$| or \verb|\(...\)|,
+i.e.~in inline math mode, are ignored, meaning that
+only \texttt{=} outside of math mode will generally cause
+interpretation as key/value material.
+
+In case the argument contains a \enquote{textual} \texttt{=} sign that
+is mistaken as a key/value indicator you can hide it using a brace
+group as you would do in other places, e.g.,
+\begin{verbatim}
+\caption[{Use of = signs}]
+ {Use of = signs in optional arguments}
+\end{verbatim}
+However, because \texttt{=} signs in math mode are already ignored, this
+should seldom be necessary.
+
+
+\section{A note for font package developers}
+
+\subsection{Encoding subsets for \texttt{TS1} encoded fonts}
+
+The text companion encoding \texttt{TS1} is unfortunately not very
+faithfully supported in fonts that are not close cousins to the
+Computer Modern fonts. It was therefore necessary to provide the
+notion of \enquote{sub-encodings} on a per font basis. These
+sub-encodings are declared for a font family with the help of a
+\cs{DeclareEncodingSubset} declaration, see \cite{36:fntguide} for
+details.
+
+Maintainers of font bundles that include \texttt{TS1} encoded font
+files should add an appropriate declaration into the corresponding
+\texttt{ts1}\textit{family}\texttt{.fd} file, because otherwise the
+default subencoding is assumed, which is probably disabling too many
+glyphs that are actually available in the font.\footnote{The \LaTeX{}
+ format contains declarations for many font families already. This
+ was done in 2020 to quickstart the use of the symbols in the kernel,
+ but it is really the wrong place for such declarations. Thus, for
+ new fonts the declarations should be placed into the corresponding
+ \texttt{.fd} files.}
+%
+\githubissue{905}
+
+\section{New or improved commands}
+
+\subsection{Better language handling for case-changing commands}
+
+The commands \cs{MakeUppercase}, \cs{MakeLowercase} and \cs{MakeTitlecase} now
+automatically detect the locale currently in use when \pkg{babel} is loaded.
+This allows automatic adjustment of letter mappings where appropriate. They
+also accept a leading optional argument. This accepts a key--value list of
+control settings. At present, there is one key available: \texttt{locale},
+which can also be accessed via the alias \texttt{lang}. This is intended to
+allow local setting of the language, which can be done using a BCP-47
+descriptor. For example, this could be used to force Turkish case changing in
+otherwise English input
+\begin{verbatim}
+\MakeUppercase[lang = tr]{Ragıp Hulûsi Özdem}
+\end{verbatim}
+yields
+ \MakeUppercase[lang = tr]{Ragıp Hulûsi Özdem}.
+% RAGIP HULÛS\.I ÖZDEM. %TUB
+
+\section{Code improvements}
+
+\subsection{Support for slanted small caps in the EC fonts}
+For some time \LaTeX{} has supported the combination of the shapes
+small caps and italic/slanted. The EC fonts contain slanted small caps fonts
+but using them required the loading of an external package. Suitable font definitions
+have now been added to \pkg{t1cmd.fd} and so from now on
+\begin{verbatim}
+\usepackage[T1]{fontenc}
+...
+ \textsc{\textsl{Slanted Small Caps}};
+ \textsc{\textit{Italic Small Caps}};
+ \bfseries
+ \textsc{\textsl{Bold Slanted Small Caps}};
+ \textsc{\textit{Bold Italic Small Caps}}.
+\end{verbatim}
+will give the expected result: {\fontfamily{cmr}
+\textsc{\textsl{Slanted Small Caps}}; \textsc{\textit{Italic Small Caps}};
+\bfseries
+\textsc{\textsl{Bold Slanted Small Caps}}; \textsc{\textit{Bold Italic Small Caps}}}.
+
+Given that the Computer Modern fonts in \texttt{T1} do not have real italic small caps but only
+slanted small caps, the latter is substituted for the former, which is
+why above both work but you see no difference between the two (and in the log you get a
+substitution warning for the \cs{textit}\cs{textsc} shape combination).
+%
+\githubissue{782}
+
+
+\subsection{EC sans serif at small sizes}
+
+The EC (T1 encoded Computer Modern) sans serif fonts have errors at
+small sizes: the medium weight is bolder and wider than the bold
+extended. This makes them unusable at these small sizes. The default
+\texttt{.fd} file has therefore been adjusted to use a scaled down 8pt
+font instead.
+%
+\githubissue{879}
+
+
+
+\subsection{Improve font series handling with incorrect \texttt{.fd} files}
+
+By convention, the font series value is supposed to contain no
+\texttt{m}, unless you refer to the \enquote{medium} series (which is
+represented by a single \texttt{m}). For example, one should write
+\texttt{c} for \enquote{medium weight, condensed width} and not
+\texttt{mc}. This was one of the many space-conserving methods
+necessary in the early days of \LaTeXe.
+
+Some older \texttt{.fd} files
+do not obey that convention but use \texttt{mc}, \texttt{bm}, etc., in
+their declarations. As a result, some font selection scheme
+functionality was not working when confronted with such \texttt{.fd}
+files. We have therefore augmented \cs{DeclareSymbolFont} and
+\cs{SetSymbolFont} to strip any surplus \texttt{m} from their series argument
+so that they do not unnecessarily trigger font
+substitutions. Regardless of this support such
+\texttt{.fd} files should get fixed by their maintainers.
+%
+\githubissue{918}
+
+
+
+
+\subsection{Detect nested \texttt{minipage} environments}
+
+Nesting of \texttt{minipage} environments is only partially supported
+in \LaTeX{} and can lead to incorrect output, such as overfull boxes
+or footnotes appearing in the wrong place;
+see~\cite[p.~106]{36:Lamport}. However, until now there was no warning
+if that happened. This has been changed and the environment now
+warns if you nest it in another \texttt{minipage} environment that
+already contains footnotes.
+%
+\githubissue{168}
+
+
+\subsection{Robust commands in package options}
+With the standard key-based option handler added in the last release,
+or with contributed packages offering similar features, users may
+expect to be able to use a package option such as
+\verb|[font=\bfseries]|.
+Previously this failed with internal errors as the option list was
+expanded via \verb|\edef|. This has now been changed to use the
+existing command \verb|\protected@edef| so that any \LaTeX\ robust
+command should be safe to pass to a key value option.
+%
+\githubissue{932}
+
+
+
+
+\subsection{Improve \pkg{l3docstrip} integration into \pkg{docstrip}}
+
+In 2020 we merged \pkg{l3docstrip.tex} into \pkg{docstrip.tex} to
+support the \texttt{\%\string<@@=\meta{module}\string>} syntax of
+\pkg{expl3}; see~\cite{36:ltnews32}. However, this support was
+incomplete, because it didn't cover \pkg{docstrip} lines of the form
+\texttt{\%<+...>} or \texttt{\%<-...>}. This was never noticed until
+now, because usually \texttt{\%<*...>} blocks are used. Now all lines
+in a \texttt{.dtx} file are subject to the \texttt{@@} replacement
+approach.
+%
+\githubissue{903}
+
+
+
+\subsection{\LuaTeX\ callback efficiency improvement}
+
+The mechanism for providing the
+\texttt{pre/post\_mlist\_to\_hlist\_filter} callbacks in \LuaTeX\ has
+been improved to make it more reusable and to avoid overhead if these
+callbacks are not used.
+%
+\githubissue{830}
+
+
+\subsection{Rule-based ordering for \LuaTeX\ callback handlers}
+
+In \hologo{LuaLaTeX} the callback handlers used to be called in the order
+in which they were registered in, but this was often rather fragile.
+It depends a lot on the load order and any attempts to enforce a
+different order required unregistering and reregistering the handlers to
+be reordered. Additionally, even if some ordering constraints where
+enforced that way, another package loaded later could accidentally
+overwrite it.
+
+To improve this, we now order the callback handlers based on ordering
+rules similar to the hook rules.
+
+When registering a callback which should run before or after another
+callback, \verb+luatexbase.declare_callback_rule+ can now be used to
+record this ordering constraint.
+For example
+\begin{verbatim}
+luatexbase.add_to_callback
+ ('pre_shaping_filter', my_handler, 'my_name')
+luatexbase.declare_callback_rule
+ ('pre_shaping_filter',
+ 'my_name', 'before', 'other_name')
+\end{verbatim}
+will ensure that \verb+my_handler+ will always be called before the
+handler registered as \verb+other_name+.
+
+This also means that the order in which callbacks are registered no
+longer implicitly defines an order.
+Code which relied on this implicit order should now define the order
+rules explicitly.
+
+
+
+\section{Bug fixes}
+
+\subsection{Prevent \TeX{} from losing a \cs{smash}}
+
+When \TeX{} is typesetting a fraction, it will rebox the material in
+either the numerator or denominator, depending on which is wider. If
+the repackaged part consists of a single box, that box gets new
+dimensions and if it was built using a \cs{smash} that effect vanishes
+(because a smash is nothing other than zeroing some box dimension,
+which now got undone). For example, in the line
+\begin{verbatim}
+\frac{1}{2} = \frac{1}{\smash{2^X}}
+ \neq \frac{100}{\smash{2^X}}
+\end{verbatim}
+the $2$ in the denominators was not always at the same vertical position, because
+the second \cs{smash} was ignored due to reboxing:
+\vspace{-1.2\baselineskip}
+\[
+\makeatletter
+\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh} % old definition
+\makeatother
+\newcommand*\drawbaseline{\rlap{\vrule width 60pt height 0.1pt depth 0pt }}
+\qquad
+\frac{1}{\drawbaseline2} = \frac{1}{\smash{2^X}} \neq
+\frac{100}{\smash{2^X}}
+\pagebreak % not TUB
+\]
+The differences are subtle but noticeable.
+This is now corrected and the \cs{smash} is always
+honored. Thus now you get this output:
+\vspace{-1.2\baselineskip}
+\[
+\newcommand*\drawbaseline{\rlap{\vrule width 60pt height 0.1pt depth 0pt }}
+\qquad
+\frac{1}{\drawbaseline2} = \frac{1}{\smash{2^X}} \neq
+\frac{100}{\smash{2^X}}
+\]
+\par
+\vspace{-1.5\baselineskip}
+%
+\githubissue{517}
+
+
+\subsection{Resolve an issue with \cs{mathchoice} and \texttt{localalphabets}}
+
+The code for keeping a number of math alphabets local (introduced in
+2021; see~\cite{36:ltnews34}) used \cs{aftergroup} to do some cleanup actions after a
+formula had finished. Unfortunately, \cs{aftergroup} can't be used
+inside the arguments of the \cs{mathchoice} primitive and as a result one
+got low-level errors if the freezing happened in such a place. The
+implementation was therefore revised to avoid the \cs{aftergroup}
+approach altogether.
+%
+\githubissue{921}
+
+\subsection{Reporting of unused global options when using key/value processing}
+
+Using the new key/value option processor did not properly report any unused
+global options when it was used in handling class options. This has now been
+corrected.
+%
+\githubissue{938}
+
+
+%\section{Changes to packages in the \pkg{amsmath} category}
+
+
+%\newpage TUB?
+
+\section{Changes to packages in the \pkg{graphics} category}
+
+\subsection{Fix a \cs{mathcolor} bug}
+
+The \cs{mathcolor} command introduced in \cite{36:ltnews35} needs to
+scan for following sub- and superscripts, but if it did so at the end
+of an alignment cell, e.g., in a \texttt{array} environment, the
+\texttt{\&} was evaluated too early, causing some internal errors. This
+is now properly guarded for.
+%
+\githubissue{901}
+
+
+
+\section{Changes to packages in the \pkg{tools} category}
+
+\subsection{\pkg{array}: Correctly identify single-line m-cells}
+
+Cells in m-columns that contain only a single line are supposed to
+behave like single-line p-cells and align at the same baseline. To
+test for the condition, \pkg{array} used to compare the height of the cell to
+the height of the strut used for the table rows. However, the height of that
+strut depends on the setting of \cs{arraystretch} and if you made this
+negative (or very large) the test came out wrong. Therefore, we now
+test against the height of a normal strut to ensure that single-line
+cells are correctly identified as such (unless their content is truly very
+tall, in which case aligning is pointless anyway).
+%
+\githubissue{766}
+
+
+%\medskip
+
+\begin{thebibliography}{9}
+
+\fontsize{9.3}{11.3}\selectfont
+
+%\bibitem{36:blueprint} Frank Mittelbach and Chris Rowley:
+% \emph{\LaTeX{} Tagged PDF \Dash A blueprint for a large project}.\\
+% \url{https://latex-project.org/publications/indexbyyear/2020/}
+
+%\bibitem{36:source2e}
+% \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\
+% \url{https://latex-project.org/help/documentation/}
+
+\bibitem{36:Lamport}
+Leslie Lamport.
+\newblock {\LaTeX}: {A} Document Preparation System: User's Guide and Reference
+ Manual.
+\newblock \mbox{Addison}-Wesley, Reading, MA, USA, 2nd edition, 1994.
+\newblock ISBN 0-201-52983-1.
+\newblock Reprinted with corrections in 1996.
+
+\bibitem{36:ltnews32} \LaTeX{} Project Team:
+ \emph{\LaTeXe{} news 32}.\\
+ \url{https://latex-project.org/news/latex2e-news/ltnews32.pdf}
+
+\bibitem{36:ltnews34} \LaTeX{} Project Team:
+ \emph{\LaTeXe{} news 34}.\\
+ \url{https://latex-project.org/news/latex2e-news/ltnews34.pdf}
+
+\bibitem{36:ltnews35} \LaTeX{} Project Team:
+ \emph{\LaTeXe{} news 35}.\\
+ \url{https://latex-project.org/news/latex2e-news/ltnews35.pdf}
+
+\bibitem{36:fntguide} \LaTeX{} Project Team:
+ \emph{\LaTeXe{} font selection}.\\
+ \url{https://latex-project.org/help/documentation/}
+
+%\bibitem{36:ltfilehook-doc} Frank Mittelbach, Phelype Oleinik, \LaTeX{}~Project~Team:
+% \emph{The \texttt{\upshape ltfilehook} documentation}.\\
+% Run \texttt{texdoc} \texttt{ltfilehook-doc} to view.
+\end{thebibliography}
+
+
+
+\end{document}
diff --git a/macros/latex/base/ltoutput.dtx b/macros/latex/base/ltoutput.dtx
index c2cb8f66b3..1cbc7ab0b1 100644
--- a/macros/latex/base/ltoutput.dtx
+++ b/macros/latex/base/ltoutput.dtx
@@ -37,7 +37,7 @@
%<*driver>
% \fi
\ProvidesFile{ltoutput.dtx}
- [2022/04/03 v1.4i LaTeX Kernel (Output Routine)]
+ [2022/08/20 v1.4j LaTeX Kernel (Output Routine)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutput.dtx}
@@ -829,6 +829,17 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \begin{macro}{\stockheight}
+% \changes{v1.4j}{2022/08/20}{Register added}
+% \begin{macro}{\stockwidth}
+% \changes{v1.4j}{2022/08/20}{Register added}
+% New |\stock|\ldots\ registers.
+% \begin{macrocode}
+\newdimen\stockheight
+\newdimen\stockwidth
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\if@insert}
% \begin{macro}{\if@fcolmade}
diff --git a/macros/latex/base/ltpara-code.pdf b/macros/latex/base/ltpara-code.pdf
index 80045a16e1..228405ba00 100644
--- a/macros/latex/base/ltpara-code.pdf
+++ b/macros/latex/base/ltpara-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltpara-doc.pdf b/macros/latex/base/ltpara-doc.pdf
index b068275c12..ff7268a831 100644
--- a/macros/latex/base/ltpara-doc.pdf
+++ b/macros/latex/base/ltpara-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout-code.pdf b/macros/latex/base/ltshipout-code.pdf
index a677a7f9ec..53b30f4165 100644
--- a/macros/latex/base/ltshipout-code.pdf
+++ b/macros/latex/base/ltshipout-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout-doc.pdf b/macros/latex/base/ltshipout-doc.pdf
index ec355c1a3f..dcd312f0dd 100644
--- a/macros/latex/base/ltshipout-doc.pdf
+++ b/macros/latex/base/ltshipout-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout.dtx b/macros/latex/base/ltshipout.dtx
index 83fab820a9..ae29c1acad 100644
--- a/macros/latex/base/ltshipout.dtx
+++ b/macros/latex/base/ltshipout.dtx
@@ -33,7 +33,7 @@
%
% \begin{macrocode}
\providecommand\ltshipoutversion{v1.0m}
-\providecommand\ltshipoutdate{2022/05/08}
+\providecommand\ltshipoutdate{2022/08/26}
% \end{macrocode}
%
%<*driver>
@@ -330,7 +330,7 @@
% \begin{syntax}
% \cs{AtBeginDvi} \Arg{code}
% \end{syntax}
- % \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
+% \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
% \hook{shipout/firstpage} hook. This is not really a good name
% as it is not just supporting \texttt{.dvi} but also \texttt{.pdf}
% output or \texttt{.xdv}.
diff --git a/macros/latex/base/lttextcomp.dtx b/macros/latex/base/lttextcomp.dtx
index de6b221b6c..8f5ec0d200 100644
--- a/macros/latex/base/lttextcomp.dtx
+++ b/macros/latex/base/lttextcomp.dtx
@@ -37,7 +37,7 @@
%
%
\ProvidesFile{lttextcomp.dtx}
- [2021/12/09 v1.0f LaTeX Kernel (text companion symbols)]
+ [2022/08/07 v1.0g LaTeX Kernel (text companion symbols)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -226,7 +226,13 @@
\@ifundefined{#1:#2}%
{\@font@info{Setting #2 sub-encoding to #1/#3}}%
{\@font@info{Changing #2 sub-encoding to #1/#3}}%
- \@namedef{#1:#2}{#3}}
+% \end{macrocode}
+% This declaration should be usable in \texttt{.fd} files and
+% therefore has to make its definition globally, because such files
+% can get loaded in random places.
+% \changes{v1.0g}{2022/08/07}{Make global declaration (gh/905)}
+% \begin{macrocode}
+ \global\@namedef{#1:#2}{#3}}
% \end{macrocode}
%
% Any reason to allow those in the middle of documents?
diff --git a/macros/latex/base/ltvers.dtx b/macros/latex/base/ltvers.dtx
index 37b91d2231..e1282139e1 100644
--- a/macros/latex/base/ltvers.dtx
+++ b/macros/latex/base/ltvers.dtx
@@ -112,10 +112,10 @@
%</2ekernel>
%<latexrelease>\edef\latexreleaseversion
%<*2ekernel|latexrelease>
- {2022-06-01}
+ {2022-11-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{5}
+\def\patch@level{0}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/macros/latex/base/ltx3info.pdf b/macros/latex/base/ltx3info.pdf
index 3b1653af0b..ebe0b29cbb 100644
--- a/macros/latex/base/ltx3info.pdf
+++ b/macros/latex/base/ltx3info.pdf
Binary files differ
diff --git a/macros/latex/base/ltxdoc.pdf b/macros/latex/base/ltxdoc.pdf
index 7e39f14d7e..972547143f 100644
--- a/macros/latex/base/ltxdoc.pdf
+++ b/macros/latex/base/ltxdoc.pdf
Binary files differ
diff --git a/macros/latex/base/makeindx.pdf b/macros/latex/base/makeindx.pdf
index 91e05501c9..bfa6da1e8c 100644
--- a/macros/latex/base/makeindx.pdf
+++ b/macros/latex/base/makeindx.pdf
Binary files differ
diff --git a/macros/latex/base/manifest.txt b/macros/latex/base/manifest.txt
index daebefee06..d63945fa0e 100644
--- a/macros/latex/base/manifest.txt
+++ b/macros/latex/base/manifest.txt
@@ -33,8 +33,8 @@
% encguide.tex -- Guide to font encodings.
% fntguide.tex -- Guide to font selection.
% modguide.tex -- Guide to modifying and distributing LaTeX.
-% usrguide.tex -- User guide for this release.
-% usrguide3.tex -- User guide for expl3-based methods.
+% usrguide.tex -- User guide for the 2020s onward.
+% usrguide-historic.tex -- User guide for move from LaTeX2.09 to LaTeX2e.
%
% ltnews01.tex -- What was new in the release dated 1994/06.
% ltnews02.tex -- What was new in the release dated 1994/12.
diff --git a/macros/latex/base/modguide.pdf b/macros/latex/base/modguide.pdf
index 8afd8046aa..5ba6e7f6b1 100644
--- a/macros/latex/base/modguide.pdf
+++ b/macros/latex/base/modguide.pdf
Binary files differ
diff --git a/macros/latex/base/modguide.tex b/macros/latex/base/modguide.tex
index b0651da0a5..3474d8a5fc 100644
--- a/macros/latex/base/modguide.tex
+++ b/macros/latex/base/modguide.tex
@@ -41,7 +41,12 @@
\title{Modifying \LaTeX}
\author{\copyright~Copyright 1995, \LaTeX\ Project Team.\\
- All rights reserved.}
+ All rights reserved.%
+ \footnote{This file may distributed and/or modified under the
+ conditions of the \LaTeX{} Project Public License, either version 1.3c
+ of this license or (at your option) any later version. See the source
+ texttt{modguide.tex} for full details.}%
+}
\date{12 December 1995}
diff --git a/macros/latex/base/nfssfont.pdf b/macros/latex/base/nfssfont.pdf
index 316a5afd99..8300d6d57b 100644
--- a/macros/latex/base/nfssfont.pdf
+++ b/macros/latex/base/nfssfont.pdf
Binary files differ
diff --git a/macros/latex/base/proc.pdf b/macros/latex/base/proc.pdf
index 67e5dcf235..adb946d0dc 100644
--- a/macros/latex/base/proc.pdf
+++ b/macros/latex/base/proc.pdf
Binary files differ
diff --git a/macros/latex/base/slides.pdf b/macros/latex/base/slides.pdf
index be6cc79358..4995bb85fa 100644
--- a/macros/latex/base/slides.pdf
+++ b/macros/latex/base/slides.pdf
Binary files differ
diff --git a/macros/latex/base/slifonts.pdf b/macros/latex/base/slifonts.pdf
index 4bb21df481..cbfc3a4611 100644
--- a/macros/latex/base/slifonts.pdf
+++ b/macros/latex/base/slifonts.pdf
Binary files differ
diff --git a/macros/latex/base/source2e.pdf b/macros/latex/base/source2e.pdf
index 625e2df5d4..55c125f099 100644
--- a/macros/latex/base/source2e.pdf
+++ b/macros/latex/base/source2e.pdf
Binary files differ
diff --git a/macros/latex/base/syntonly.pdf b/macros/latex/base/syntonly.pdf
index c93990d55a..7a33b0979e 100644
--- a/macros/latex/base/syntonly.pdf
+++ b/macros/latex/base/syntonly.pdf
Binary files differ
diff --git a/macros/latex/base/tlc2.pdf b/macros/latex/base/tlc2.pdf
index 5edfe4b178..ec25aed916 100644
--- a/macros/latex/base/tlc2.pdf
+++ b/macros/latex/base/tlc2.pdf
Binary files differ
diff --git a/macros/latex/base/tulm.pdf b/macros/latex/base/tulm.pdf
index 650e4ded6a..3e8a257fce 100644
--- a/macros/latex/base/tulm.pdf
+++ b/macros/latex/base/tulm.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide-historic.pdf b/macros/latex/base/usrguide-historic.pdf
new file mode 100644
index 0000000000..b7dae16ef3
--- /dev/null
+++ b/macros/latex/base/usrguide-historic.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide-historic.tex b/macros/latex/base/usrguide-historic.tex
new file mode 100644
index 0000000000..ce35aaa77c
--- /dev/null
+++ b/macros/latex/base/usrguide-historic.tex
@@ -0,0 +1,1832 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 1993-2022
+% The LaTeX Project and any individual authors listed elsewhere
+% in this file.
+%
+% This file is part of the LaTeX base system.
+% -------------------------------------------
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% The list of all files belonging to the LaTeX base distribution is
+% given in the file `manifest.txt'. See also `legal.txt' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% \fi
+% Filename: usrguide-historic.tex
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+
+\documentclass{ltxguide}[2001/05/28]
+
+\title{\LaTeX\ for authors --- historic version}
+
+\author{\copyright~Copyright 1995--2022, \LaTeX\ Project Team.\\
+ All rights reserved.%
+ \footnote{This file may distributed and/or modified under the
+ conditions of the \LaTeX{} Project Public License, either version 1.3c
+ of this license or (at your option) any later version. See the source
+ \texttt{usrguide.tex} for full details.}%
+}
+
+\date{30 August 2022}
+
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{Introduction}
+
+Welcome to \LaTeXe, the new standard version of the \LaTeX{} Document
+Preparation System.
+
+This document describes how to take advantage of the new features of
+\LaTeX, and how to process your old \LaTeX{} documents with
+\LaTeXe. However, this document is only a brief introduction to the
+new facilities and is intended for authors who are already familiar
+with the old version of \LaTeX{}. It is \emph{not} a reference manual
+for \LaTeXe{} nor is it a complete introduction to \LaTeX.
+
+It is somewhat of an historical document now, since \LaTeXe{} came into
+existence in 1994.
+
+\subsection[\LaTeXe---The new \LaTeX~release]
+ {\LaTeXe---The new \LaTeX~release\\ (well, for more than 10 years now)}
+
+The previous version of \LaTeX{} was known as \LaTeX~2.09. Over the
+years many extensions have been developed for \LaTeX. This is, of
+course, a sure sign of its continuing popularity but it has had one
+unfortunate result: incompatible \LaTeX{} formats came into use at
+different sites. This included `standard \LaTeX~2.09', \LaTeX{} built
+with the \emph{New Font Selection Scheme}~(\NFSS), \SLiTeX, \AmSLaTeX,
+and so on. Thus, to process documents from various places, a site
+maintainer was forced to keep multiple versions of the \LaTeX{}
+program. In addition, when looking at a source file it was not always
+clear for which format the document was written.
+
+To put an end to this unsatisfactory situation, \LaTeXe{} has been
+produced; it brings all such extensions back under a single format and
+thus prevents the proliferation of mutually incompatible dialects of
+\LaTeX~2.09. With \LaTeXe{} the `new font selection scheme' is
+standard and, for example, \textsf{amsmath} (formerly the \AmSLaTeX{}
+format) or \textsf{slides} (formerly the \SLiTeX{} format) are simply
+extensions, which may be loaded by documents using the same base format.
+
+The introduction of a new release also made it possible to add a small
+number of often-requested features and to make the task of writing
+packages and classes simpler.
+
+\subsection{\LaTeX3---The long-term future of \LaTeX}
+\label{Sec:ltx3}
+
+\LaTeXe{} is the consolidation step in a comprehensive
+reimplementation of the \LaTeX{} system. The next major release of
+\LaTeX{} will be \LaTeX3, which will include a radical overhaul of the
+document designers' and package writers' interface to \LaTeX.
+
+\LaTeX3 is a long-term research project but, until it is completed,
+the project team are committed to the active maintenance of \LaTeXe{}.
+Thus the experience gained from the production and maintenance of
+\LaTeXe{} will be a major influence on the design of \LaTeX3.
+A brief description of the project can be found in the document
+|ltx3info.tex|.
+
+If you would like to support the project then you are welcome to send
+donations to the \LaTeX\ Project Fund; this has been set up to help
+the research team by financing various expenses associated with this
+voluntary work of maintaining the current \LaTeX{} and developing
+\LaTeX\ further.
+
+The fund is administered by The \TeX{} Users Group and by various
+local user groups. Information about making donations and joining
+these groups is available from:
+\begin{quote}\small\label{addrs}
+ \texttt{http://www.tug.org/lugs.html}
+\end{quote}
+
+The \LaTeX3{} project has its home page
+on the World Wide Web at:
+\begin{verbatim}
+ http://www.latex-project.org/
+\end{verbatim}
+This page describes \LaTeX{} and the \LaTeX3 project, and contains
+pointers to other \LaTeX{} resources, such as the user guides, the
+\TeX{} Frequently Asked Questions, and the \LaTeX{} bugs database.
+
+Older articles covering aspects of the \LaTeX3 project are also
+available for anonymous ftp from the Comprehensive \TeX{} Archive, in
+the directory:
+\begin{verbatim}
+ ctan:info/ltx3pub
+\end{verbatim}
+The file |ltx3pub.bib| in that directory contains an abstract of each
+of the files.
+
+\subsection{Overview}
+
+This document contains an overview of the new structure and features
+of \LaTeX. It is \emph{not} a self-contained document, as it contains
+only the features of \LaTeX{} which have changed since version 2.09.
+You should read this document in conjunction with an introduction to
+\LaTeX{}.
+
+\begin{description}
+
+\item[Section~\ref{Sec:class+packages}]
+ contains an overview of the new structure of
+ \LaTeX{} documents. It describes how classes and packages work and
+ how class and package options can be used. It lists the standard
+ packages and classes which come with \LaTeX.
+
+\item[Section~\ref{Sec:commands}] describes the new commands available
+ to authors in \LaTeXe.
+
+\item[Section~\ref{Sec:209}] shows how to process old \LaTeX{}
+ documents with \LaTeXe.
+
+\item[Section~\ref{Sec:problems}] contains advice on dealing with
+ problems you may encounter in running \LaTeXe.
+ It lists some error messages which are new in \LaTeXe{} and
+ it describes some of the more common problems and how to cure them,
+ or where to find further information.
+
+\end{description}
+
+\subsection{Further information}
+
+For a general introduction to \LaTeX, including the new features of
+\LaTeXe, you should read \emph{\LaTeXbook}
+by Leslie Lamport~\cite{A-W:LLa94}.
+
+A more detailed description of the new features of \LaTeX, including an
+overview of more than 200 packages and nearly 1000 ready to run examples, is
+to be found in \emph{\LaTeXcomp second edition} by Frank Mittelbach and
+Michel Goossens~\cite{A-W:MG2004}.
+
+Packages and programs for producing and manipulating graphics are
+discussed at length in \emph{\LaTeXGcomp} by Michel Goossens,
+Sebastian Rahtz and Frank Mittelbach~\cite{A-W:GRM97}.
+
+Solutions for publishing with \LaTeX{} on the World Wide Web are given
+in \emph{\LaTeXWcomp} by Michel Goossens and Sebastian
+Rahtz~\cite{A-W:GR99}.
+
+For more information about the many new \LaTeX{} packages you should
+read the package documentation, which should be available from the
+same source as your copy of \LaTeX.
+
+There are a number of documentation files which accompany every copy
+of \LaTeX. A copy of \emph{\LaTeX{} News} will come out with each
+six-monthly release of \LaTeX; it will be found in the files
+|ltnews*.tex|. The class- and package-writer's guide \emph{\clsguide}
+describes the new \LaTeX{} features for writers of document classes
+and packages; it is in |clsguide.tex|. The guide \emph{\fntguide}
+describes the \LaTeX{} font selection scheme for class- and
+package-writers; it is in |fntguide.tex|. Support for Cyrillic languages
+in \LaTeX{} is described in \emph{\cyrguide}.
+
+The documented source code (from the files used to produce the kernel
+format via |latex.ltx|) is now available as
+\emph{The \LaTeXe\ Sources}. ]
+This very large document also includes an index of
+\LaTeX{} commands. It can be typeset from the \LaTeX{} file
+|source2e.tex| in the |base| directory, using the source files and
+the class file |ltxdoc.cls| from this directory.
+
+For more information about \TeX{} and \LaTeX{}, please contact your
+local \TeX{} Users Group, or the international \TeX{} Users Group (see
+page \pageref{addrs}).
+
+
+\section{Classes and packages}
+\label{Sec:class+packages}
+
+This section describes the new structure of \LaTeX{} documents and the
+new types of file: \emph{classes} and \emph{packages}.
+
+\subsection{What are classes and packages?}
+
+The main difference between \LaTeX~2.09 and \LaTeXe{} is in the
+commands before |\begin{document}|.
+
+In \LaTeX~2.09, documents had \emph{styles},
+such as \textsf{article} or \textsf{book}, and \emph{options},
+such as \textsf{twoside} or \textsf{epsfig}.
+These were indicated by the |\documentstyle| command:
+\begin{quote}
+ |\documentstyle|\oarg{options}\arg{style}
+\end{quote}
+For example, to specify a two-sided article with encapsulated
+PostScript figures, you said:
+\begin{verbatim}
+ \documentstyle[twoside,epsfig]{article}
+\end{verbatim}
+However, there were two different types of document style option:
+\emph{built-in options} such as |twoside|; and \emph{packages} such as
+|epsfig.sty|. These were very different, since any \LaTeX{} document
+style could use the \textsf{epsfig} package but only document styles
+which declared the \textsf{twoside} option could use that option.
+
+To avoid this confusion, \LaTeXe{} differentiates between built-in
+options and packages. These are given by the new |\documentclass| and
+|\usepackage| commands:
+\begin{quote}
+ |\documentclass|\oarg{options}\arg{class} \\
+ |\usepackage|\oarg{options}\arg{packages}
+\end{quote}
+For example, to specify a two-sided article with encapsulated
+PostScript figures, you now write:
+\begin{verbatim}
+ \documentclass[twoside]{article}
+ \usepackage{epsfig}
+\end{verbatim}
+You can load more than one package with a single |\usepackage|
+command; for example, rather than writing:
+\begin{verbatim}
+ \usepackage{epsfig}
+ \usepackage{multicol}
+\end{verbatim}
+you can specify:
+\begin{verbatim}
+ \usepackage{epsfig,multicol}
+\end{verbatim}
+Note that \LaTeXe{} still understands the \LaTeX~2.09 |\documentstyle|
+command. This command causes \LaTeXe{} to enter \emph{\LaTeX~2.09
+compatibility mode}, which is described in Section~\ref{Sec:209}.
+
+You should not, however, use the |\documentstyle| command for new
+documents because this compatibility mode is very slow and the new
+features of \LaTeXe{} are not available in this mode.
+
+To help differentiate between classes and packages, document classes
+now end with |.cls| rather than |.sty|. Packages still end with
+|.sty|, since most \LaTeX~2.09 packages work well with \LaTeXe.
+
+\subsection{Class and package options}
+
+In \LaTeX~2.09, only document styles could have options such as
+|twoside| or |draft|. In \LaTeXe{}, both classes and packages are
+allowed to have options. For example, to specify a two-sided article
+with graphics using the |dvips| driver, you write:
+
+\begin{verbatim}
+ \documentclass[twoside]{article}
+ \usepackage[dvips]{graphics}
+\end{verbatim}
+It is possible for packages to share common options. For example,
+you could, in addition, load the \textsf{color} package by specifying:
+\begin{verbatim}
+ \documentclass[twoside]{article}
+ \usepackage[dvips]{graphics}
+ \usepackage[dvips]{color}
+\end{verbatim}
+But because |\usepackage| allows more than one package to be listed,
+this can be shortened to:
+\begin{verbatim}
+ \documentclass[twoside]{article}
+ \usepackage[dvips]{graphics,color}
+\end{verbatim}
+In addition, packages will also use each option given to
+the |\documentclass| command (if they know what to do with it), so you
+could also write:
+\begin{verbatim}
+ \documentclass[twoside,dvips]{article}
+ \usepackage{graphics,color}
+\end{verbatim}
+Class and package options are covered in more detail in
+\emph{\LaTeXcomp} and in \emph{\clsguide}.
+
+\subsection{Standard classes}
+
+The following classes are distributed with \LaTeX:
+\begin{description}
+
+\item[article] The |article| class described in \emph{\LaTeXbook}.
+\item[book] The |book| class described in \emph{\LaTeXbook}.
+\item[report] The |report| class described in \emph{\LaTeXbook}.
+\item[letter] The |letter| class described in \emph{\LaTeXbook}.
+\item[slides] The |slides| class described in \emph{\LaTeXbook},
+ formerly \SLiTeX.
+\item[proc] A document class for proceedings, based on |article|.
+ Formerly the |proc| package.
+\item[ltxdoc] The document class for documenting the \LaTeX{}
+ program, based on |article|.
+\item[ltxguide] The document class for \emph{\usrguide} and
+ \emph{\clsguide}, based on |article|. The document you are reading
+ now uses the |ltxguide| class. The layout for this class is likely
+ to change in future releases of \LaTeX.
+\item[ltnews] The document class for the \emph{\LaTeX{} News}
+ information sheet, based on |article|. The layout for this class
+ is likely to change in future releases of \LaTeX.
+\item[minimal]
+\NEWfeature{1995/12/01}
+ This class is the bare minimum (3 lines) that is needed in a
+ \LaTeX\ class file. It just sets the text width and height, and
+ defines |\normalsize|. It is principally intended for debugging
+ and testing \LaTeX\ code in situations where you do not need to
+ load a `full' class such as |article|. If, however, you are
+ designing a completely new class that is aimed for documents with
+ structure radically different from the structure supplied by the
+ article class, then it may make sense to use this as a base and add
+ to it code implementing the required structure, rather than
+ starting from |article| and modifying the code there.
+\end{description}
+
+\subsection{Standard packages}
+\label{Sec:st-pack}
+
+The following packages are distributed with \LaTeX:
+\begin{description}
+\item[alltt]
+\NEWfeature{1994/12/01}
+ This package provides the |alltt| environment, which is like
+ the |verbatim| environment except that |\|, |{|, and |}|
+ have their usual meanings. It is described in |alltt.dtx| and
+ \emph{\LaTeXbook}.
+\item[doc] This is the basic package for typesetting the documentation
+ of \LaTeX{} programs. It is described in |doc.dtx| and in
+ \emph{\LaTeXcomp}.
+\item[exscale] This provides scaled versions of the math extension
+ font. It is described in |exscale.dtx| and \emph{\LaTeXcomp}.
+ \item[fontenc] This is used to specify which font encoding \LaTeX{}
+ should use. It is described in |ltoutenc.dtx|.
+\item[graphpap]
+\NEWfeature{1994/12/01}
+ This package defines the |\graphpaper| command; this
+ can be used in a |picture| environment.
+\item[ifthen] Provides commands of the form `if\dots then do\dots
+ otherwise do\dots'.
+ It is described in |ifthen.dtx| and \emph{\LaTeXcomp}.
+\item[inputenc]
+\NEWfeature{1994/12/01}
+ This is used to specify which input encoding \LaTeX{} should use.
+ It is described in |inputenc.dtx|.
+\item[latexsym] \LaTeXe{} no longer loads the \LaTeX{} symbol font by
+ default. To access it, you should use the |latexsym| package. It
+ is described in |latexsym.dtx| and in \emph{\LaTeXcomp}; see also
+ Section~\ref{Sec:problems}.
+ \item[makeidx] This provides commands for producing indexes. It is
+ described in \emph{\LaTeXbook} and in \emph{\LaTeXcomp}.
+ \item[newlfont] This is used to emulate the font commands of
+ \LaTeX~2.09 with the New Font Selection Scheme. It is described in
+ \emph{\LaTeXcomp}.
+ \item[oldlfont] This is used to emulate the font commands of
+ \LaTeX~2.09. It is described in \emph{\LaTeXcomp}.
+ \item[showidx]
+ This causes the argument of each |\index| command to
+ be printed on the page where it occurs.
+ It is described in \emph{\LaTeXbook}.
+ \item[syntonly] This is used to process a document without
+ typesetting it. It is described in |syntonly.dtx| and in
+ \emph{\LaTeXcomp}.
+ \item[tracefnt] This allows you to control how much information about
+ \LaTeX's font loading is displayed. It is described in
+ \emph{\LaTeXcomp}.
+\end{description}
+
+\subsection{Related software}
+
+\NEWdescription{1998/12/01}
+The following software should be available from the same distributor
+as your copy of \LaTeXe. You should obtain at least the
+\textsf{graphics} and \textsf{tools} collections in order to have all
+the files described in \emph{\LaTeXbook}. The |amsmath| package (part
+of \textsf{amslatex} and formerly known as |amstex|)
+and \textsf{babel} are also mentioned in the list
+of `standard packages' in section C.5.2 of that book.
+\begin{description}
+\item[amslatex] Advanced mathematical typesetting from the American
+ Mathematical Society. This includes the |amsmath| package; it
+ provides many commands for typesetting mathematical formulas of
+ higher complexity. It is produced and supported by the American
+ Mathematical Society and it is described in \emph{\LaTeXcomp}.
+\item[babel] This package and related files support typesetting in
+ many languages. It is described in \emph{\LaTeXcomp}.
+\item[cyrillic]
+\NEWfeature{1998/12/01}
+ Everything you need (except the fonts themselves) for
+ typesetting with Cyrillic fonts.
+\item[graphics] This includes the |graphics| package which
+ provides support for the inclusion and transformation of graphics,
+ including files produced by other software. Also included, is the
+ |color| package which provides support for typesetting in colour.
+ Both these packages are described in \emph{\LaTeXbook}.
+\item[psnfss] Everything you need (except the fonts themselves) for
+ typesetting with a large range of Type~1 (PostScript) fonts.
+\item[tools] Miscellaneous packages written by the \LaTeX3
+ project team.
+\end{description}
+These packages come with documentation and each of them is also
+described in at least one of the books \emph{\LaTeXcomp} and
+\emph{\LaTeXbook}.
+
+\subsubsection{Tools}
+
+This collection of packages includes, at least, the following (some
+files may have slightly different names on certain systems):
+
+\begin{description}
+\item[array]
+ Extended versions of the environments |array|, |tabular|
+ and |tabular*|, with many extra features.
+\item[calc]
+\NEWfeature{1996/12/01}
+ Enables the use of certain algebraic notation when specifying
+ values for lengths and counters.
+\item[dcolumn]
+ Alignment on `decimal points' in tabular entries. Requires the
+ |array| package.
+\item[delarray]
+ Adds `large delimiters' around arrays. Requires |array|.
+\item[hhline]
+ Finer control over horizontal rules in tables. Requires |array|.
+\item[longtable]
+ Multi-page tables. (Does not require |array|, but it uses the
+ extended features if both are loaded.)
+\item[tabularx]
+ Defines a |tabularx| environment that is similar to |tabular*|
+ but it modifies the column widths, rather than the inter-column
+ space, to achieve the desired table width.
+\item[afterpage]
+ Place text after the current page.
+\item[bm]
+ Access bold math symbols.
+\item[enumerate]
+ Extended version of the |enumerate| environment.
+\item[fontsmpl]
+ Package and test file for producing `font samples'.
+\item[ftnright]
+ Place all footnotes in the right-hand column in two-column mode.
+\item[indentfirst]
+ Indent the first paragraph of sections, etc.
+\item[layout]
+ Show the page layout defined by the current document class.
+\item[multicol]
+ Typeset text in columns, with the length of the columns
+ `balanced'.
+\item[rawfonts]
+ Preload fonts using the old internal font names of \LaTeX~2.09.
+ See Section~\ref{Sec:oldinternals}.
+\item[somedefs]
+ Selective handling of package options. (Used by the rawfonts
+ package.)
+\item[showkeys]
+ Prints the `keys' used by |\label|, |\ref|, |\cite| etc.; useful
+ whilst drafting.
+\item[theorem]
+ Flexible declaration of `theorem-like' environments.
+\item[varioref]
+ `Smart' handling of page references.
+\item[verbatim]
+ Flexible extension of the verbatim environment.
+\item[xr]
+ Cross reference other `external' documents.
+\item[xspace]
+ `Smart space' command that helps you to avoid the common mistake
+ of missing spaces after command names.
+\end{description}
+
+
+\section{Commands}
+\label{Sec:commands}
+
+This section describes the new commands available in \LaTeXe.
+They are covered in more detail in \emph{\LaTeXbook} and in
+\emph{\LaTeXcomp}.
+
+\subsection{Preamble commands}
+\label{Sec:pre}
+
+The changes to the preamble commands are intentionally designed to make
+\LaTeXe{} documents look clearly different from old documents. The
+commands should be used only before |\begin{document}|.
+
+\begin{decl}
+|\documentclass| \oarg{option-list} \arg{class-name}
+ \oarg{release-date}
+\end{decl}
+
+This command replaces the
+\LaTeX~2.09 command |\documentstyle|.
+
+There must be exactly one |\documentclass| command in a document; and
+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,
+as well as those in all following |\usepackage| commands (see
+below).
+
+The optional argument \m{release-date} can be used to specify the
+earliest desired release date of the class file; it should contain a
+date in the format \textsc{yyyy/mm/dd}. If a version of the class
+older than this date is found, a warning is issued.
+
+For example, to specify a two-column article, using a version of
+|article.cls| released after June 1994, you specify:
+\begin{verbatim}
+ \documentclass[twocolumn]{article}[1994/06/01]
+\end{verbatim}
+
+\begin{decl}
+|\documentstyle| \oarg{option-list} \arg{class-name}
+\end{decl}
+
+This command is still supported for compatibility with old files. It
+is essentially the same as |\documentclass| except that it invokes
+\emph{\LaTeX~2.09 compatibility mode}. It also causes any options in
+the \m{option-list} that are not processed by the class file to be
+loaded as packages after the class has been loaded. See
+Section~\ref{Sec:209} for more details on \LaTeX~2.09 compatibility
+mode.
+
+\begin{decl}
+|\usepackage| \oarg{option-list} \arg{package-name} \oarg{release-date}
+\end{decl}
+
+Any number of |\usepackage| commands is allowed. Each package file
+(as denoted by \m{package-name}) defines new elements (or modifies
+those defined in the class file loaded by the \m{class-name} argument
+of the |\documentclass| command). A package file thus extends the
+range of documents which can be processed.
+
+The \m{option-list} argument can contain a list of options, each of
+which can modify the formatting of elements which are defined in this
+\m{package-name} file.
+
+As above, \m{release-date} can contain the earliest desired release
+date of the package file in the format \textsc{yyyy/mm/dd}; if an
+older version of the package is found, a warning is issued.
+
+For example, to load the |graphics| package for the |dvips| driver,
+using a version of |graphics.sty| released after June 1994, you write:
+\begin{verbatim}
+ \usepackage[dvips]{graphics}[1994/06/01]
+\end{verbatim}
+Each package is loaded only once. If the same package is requested
+more than once, nothing happens in the second or following attempt
+unless the package has been requested with options that were not given
+in the original |\usepackage|. If such extra options are specified
+then an error message is produced. See Section~\ref{Sec:problems} how
+to resolve this problem.
+
+As well as processing the options given in the \m{option-list} of the
+|\usepackage| command, each package processes the
+\m{option-list} of the |\documentclass| command as well. This
+means that any option which should be processed by every package (to
+be precise, by every package that specifies an action for it) can be
+specified just once, in the |\documentclass| command, rather than
+being repeated for each package that needs it.
+
+\begin{decl}
+|\listfiles|
+\end{decl}
+
+If this command is placed in the preamble then a list of the files
+read in (as a result of processing the document) will be displayed
+on the terminal (and in the log file) at the end of the run. Where
+possible, a short description will also be produced.
+
+\NEWdescription{1995/12/01}
+\emph{Warning}: this command will list only files which were read
+using \LaTeX{} commands such as |\input|\arg{file} or
+|\include|\arg{file}. If the file was read using the primitive \TeX{}
+syntax |\input |\emph{file} (without |{ }| braces around the file name)
+then it will not be listed; failure to use the \LaTeX{} form with the
+braces can cause more severe problems, possibly leading to overwriting
+important files, so \textbf{always put in the braces}.
+
+
+\begin{decl}
+|\setcounter{errorcontextlines}| \arg{num}
+\end{decl}
+
+\TeX~3 introduced a new primitive |\errorcontextlines| which controls
+the format of error messages. \LaTeXe\ provides an interface to this
+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
+document structure.
+\begin{decl}
+|\frontmatter| \\ |\mainmatter| \\ |\backmatter|
+\end{decl}
+These commands indicate the beginning of the front matter (title page,
+table of contents and prefaces), main matter (main text) and back
+matter (bibliography, indexes and colophon).
+
+\subsection{Definitions}
+
+In \LaTeX, commands can have both mandatory and optional arguments,
+for example in:
+\begin{verbatim}
+ \documentclass[11pt]{article}
+\end{verbatim}
+the |11pt| argument is optional, whereas the |article| class name is
+mandatory.
+
+In \LaTeX~2.09 users could define commands with arguments, but these
+had to be mandatory arguments. With \LaTeXe, users can now define
+commands and environments which also have one optional argument.
+
+\begin{decl}
+|\newcommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\
+|\newcommand*| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\
+|\renewcommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\
+|\renewcommand*| \arg{cmd} \oarg{num} \oarg{default} \arg{definition}
+\end{decl}
+
+These commands have a new, second, optional argument; this is used for
+defining commands which themselves take one optional argument. This
+new argument is best introduced by means of a simple (and hence not
+very practical) example:
+\begin{verbatim}
+ \newcommand{\example}[2][YYY]{Mandatory arg: #2;
+ Optional arg: #1.}
+\end{verbatim}
+This defines |\example| to be a command with two arguments, referred
+to as |#1| and |#2| in the \arg{definition}---nothing new so far. But
+by adding a second optional argument to this |\newcommand| (the
+|[YYY]|) the first argument (|#1|) of the newly defined command
+|\example| is made optional with its default value being |YYY|.
+
+Thus the usage of |\example| is either:
+\begin{verbatim}
+ \example{BBB}
+\end{verbatim}
+which prints:
+\begin{quote}
+ Mandatory arg: BBB;
+ Optional arg: YYY.
+\end{quote}
+or:
+\begin{verbatim}
+ \example[XXX]{AAA}
+\end{verbatim}
+which prints:
+\begin{quote}
+ Mandatory arg: AAA;
+ Optional arg: XXX.
+\end{quote}
+
+The default value of the optional argument is \texttt{YYY}.
+This value is specified as the \oarg{default} argument of the
+|\newcommand| that created |\example|.
+
+As another more useful example, the definition:
+\begin{verbatim}
+ \newcommand{\seq}[2][n]{\lbrace #2_{0},\ldots,\,#2_{#1} \rbrace}
+\end{verbatim}
+means that the input |$\seq{a}$| produces
+the formula $\lbrace a_{0},\ldots,\,a_{n} \rbrace$,
+whereas the input |$\seq[k]{x}$| produces the formula
+$\lbrace x_{0},\ldots,\,x_{k} \rbrace$.
+
+In summary, the command:
+\begin{quote}
+ |\newcommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition}
+\end{quote}
+defines \m{cmd} to be a command with \m{num} arguments, the first of
+which is optional and has default value \m{default}.
+
+Note that there can only be one optional argument but, as before,
+there can be up to nine arguments in total.
+
+\begin{decl}
+|\newenvironment|
+ \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def} \\
+|\newenvironment*|
+ \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def} \\
+|\renewenvironment|
+ \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def} \\
+|\renewenvironment*|
+ \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def}
+\end{decl}
+
+\LaTeXe\ also supports the creation of environments that have one
+optional argument. Thus the syntax of these two commands has
+been extended in the same way as that of |\newcommand|.
+
+\begin{decl}
+|\providecommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\
+|\providecommand*| \arg{cmd} \oarg{num} \oarg{default} \arg{definition}
+\end{decl}
+
+This takes the same arguments as |\newcommand|. If \m{cmd} is already
+defined then the existing definition is kept; but if it is currently
+undefined then the effect of |\providecommand| is to define \m{cmd}
+just as if |\newcommand| had been used.
+
+\NEWfeature{1994/12/01}
+ All the above five `defining commands' now have \texttt{*}-forms that
+ are usually the better form to use when defining commands with
+ arguments, unless any of these arguments is intended to contain
+ whole paragraphs of text. Moreover, if you ever do find yourself
+ needing to use the non-star form then you should ask whether
+ that argument would not better be treated as the contents of a
+ suitably defined environment.
+
+\NEWfeature{1995/12/01}
+ The commands produced by the above five `defining commands' are
+ now robust.
+
+\subsection{Boxes}
+
+These next three commands for making LR-boxes all existed in
+\LaTeX~2.09. They have been enhanced in two ways.
+
+\begin{decl}
+|\makebox| \oarg{width} \oarg{pos} \arg{text} \\
+|\framebox| \oarg{width} \oarg{pos} \arg{text} \\
+|\savebox| \arg{cmd} \oarg{width} \oarg{pos} \arg{text}
+\end{decl}
+
+One small but far-reaching change for \LaTeXe\ is that, within the
+\m{width} argument only, four special lengths can be used. These are
+all dimensions of the box that would be produced by using simply
+|\mbox|\arg{text}:
+\begin{itemize}
+\item [] |\height|\quad its height above the baseline;
+\item [] |\depth|\quad its depth below the baseline;
+\item [] |\totalheight|\quad the sum of |\height| and |\depth|;
+\item [] |\width|\quad its width.
+\end{itemize}
+Thus, to put `hello' in the centre of a box of twice its natural
+width, you would use:
+\begin{verbatim}
+ \makebox[2\width]{hello}
+\end{verbatim}
+Or you could put \textit{f} into a square box, like
+this:
+ \framebox{\makebox[\totalheight]{\itshape f\/}}
+\begin{verbatim}
+ \framebox{\makebox[\totalheight]{\itshape f\/}}
+\end{verbatim}
+Note that it is the total width of the framed box, including the
+frame, which is set to |\totalheight|.
+
+The other change is a new possibility for \m{pos}: |s| has been added
+to |l| and |r|. If \m{pos} is |s| then the text is stretched the full
+length of the box, making use of any `rubber lengths' (including any
+inter-word spaces) in the contents of the box. If no such `rubber
+length' is present, an `underfull box' will probably be produced.
+
+\begin{decl}
+|\parbox| \oarg{pos} \oarg{height} \oarg{inner-pos} \arg{width}
+ \arg{text} \\
+|\begin{minipage}|
+ \oarg{pos} \oarg{height} \oarg{inner-pos} \arg{width}\\
+\m{text}\\
+|\end{minipage}|
+\end{decl}
+
+As for the box commands above, |\height|, |\width|, etc.~may be used
+in the \oarg{height} argument to denote the natural dimensions of the
+box.
+
+The \m{inner-pos} argument is new in \LaTeXe. It is the vertical
+equivalent to the \m{pos} argument for |\makebox|, etc, determining
+the position of \m{text} within the box. The \m{inner-pos} may be any
+one of |t|, |b|, |c|, or |s|, denoting top, bottom, centered, or
+`stretched' alignment respectively. When the \m{inner-pos} argument
+is not specified, \LaTeX\ gives it same value as \m{pos} (this could be
+the latter's default value).
+
+
+\begin{decl}
+|\begin{lrbox}| \arg{cmd}\\
+\m{text}\\
+|\end{lrbox}|
+\end{decl}
+
+This is an environment which does not directly print anything.
+Its effect is to save the typeset \m{text} in the bin \m{cmd}. Thus
+it is like |\sbox| \arg{cmd} \arg{text}, except that any white space
+before or after the contents \m{text} is ignored.
+
+This is very useful as it enables both the |\verb| command and the
+\texttt{verbatim} environment to be used within \m{text}.
+
+It also makes it possible to define, for example, a `framed box'
+environment. This is done by first using this environment to save
+some text in a bin \m{cmd} and then calling
+|\fbox{\usebox{|\m{cmd}|}}|.
+
+The following example defines an environment, called |fmpage|, that is
+a framed version of |minipage|.
+\begin{verbatim}
+ \newsavebox{\fmbox}
+ \newenvironment{fmpage}[1]
+ {\begin{lrbox}{\fmbox}\begin{minipage}{#1}}
+ {\end{minipage}\end{lrbox}\fbox{\usebox{\fmbox}}}
+\end{verbatim}
+
+
+\subsection{Measuring things}
+
+The first of these next commands was in \LaTeX~2.09. The two new
+commands are the obvious analogues.
+
+\begin{decl}
+|\settowidth| \arg{length-cmd} \arg{lr text} \\
+|\settoheight| \arg{length-cmd} \arg{lr text} \\
+|\settodepth| \arg{length-cmd} \arg{lr text}
+\end{decl}
+
+\subsection{Line endings}
+
+\NEWdescription{1994/12/01}
+The command |\\|, which is used to indicate a line-end in various
+places, is now a robust command when used within arguments such as
+section titles.
+
+Also, because it is often necessary to distinguish which type of line
+is to be ended, we have introduced the following new command; it
+has the same argument syntax as that of |\\|.
+\begin{decl}[1994/12/01]
+|\tabularnewline| \oarg{vertical-space}
+\end{decl}
+One example of its use is when the text in the last
+column of a |tabular| environment is set with |\raggedright|; then
+|\tabularnewline| can be used to indicate the end of a row of the
+|tabular|, whilst |\\| will indicate the end of a line of text in a
+paragraph within the column. This command can be used in the |array|
+environment as well as |tabular|, and also the extended versions of
+these environments offered by the \textsf{array} and \textsf{longtable}
+packages in the tools collection.
+
+\subsection{Controlling page breaks}
+
+Sometimes it is necessary, for a final version of a document, to
+`help' \LaTeX\ break the pages in the best way. \LaTeX~2.09 had a
+variety of commands for this situation: |\clearpage|, |\pagebreak|
+etc. \LaTeXe\ provides, in addition, commands which can produce
+longer pages as well as shorter ones.
+
+
+\begin{decl}
+|\enlargethispage| \arg{size} \\
+|\enlargethispage*| \arg{size}
+\end{decl}
+
+These commands increase the height of a page (from its normal value of
+|\textheight|) by the specified amount \m{size}, a rigid length. This
+change affects \emph{only} the current page.
+
+This can be used, for example, to allow an extra line to be fitted
+onto the page or, with a negative length, to produce a page
+shorter than normal.
+
+The star form also shrinks any vertical white space on the page as
+much as possible, so as to fit the maximum amount of text on the
+page.
+
+\NEWdescription{1995/12/01}
+These commands do not change the position of the footer text; thus, if
+a page is lengthened too far, the main text may overprint the footer.
+
+\subsection{Floats}
+
+There is a new command, |\suppressfloats|, and a new `float
+specifier'. These will enable people to gain better
+control of \LaTeX's float placement algorithm.
+
+\begin{decl}
+|\suppressfloats| \oarg{placement}
+\end{decl}
+
+This command stops any further floating environments from being placed
+on the current page. With an optional argument, which should be either
+|t| or |b| (not both), this restriction applies only to putting
+further floats at the top or at the bottom. Any floats which would
+normally be placed on this page are placed on the next page instead.
+
+\begin{decl}
+The extra float location specifier: \ \texttt{!}
+\end{decl}
+
+This can be used, along with at least one of \texttt{h}, \texttt{t},
+\texttt{b} and \texttt{p}, in the location optional argument of a
+float.
+
+If a \texttt{!} is present then, just for this particular float,
+whenever it is processed by the float mechanism the following are
+ignored:
+\begin{itemize}
+\item all restrictions on the number of floats which can appear;
+\item all explicit restrictions on the amount of space on a text page
+which may be occupied by floats or must be occupied by text.
+\end{itemize}
+The mechanism will, however, still attempt to ensure that pages are
+not overfull and that floats of the same type are printed in the
+correct order.
+
+Note that its presence has no effect on the production of float pages.
+
+A \texttt{!} specifier overrides the effect of any |\suppressfloats|
+command for this particular float.
+
+\subsection{Font changing: text}
+
+The font selection scheme used in \LaTeXe{} differs a lot from that
+used in \LaTeX~2.09. In this section, we give a brief description of
+the new commands. A more detailed description with examples is given
+in \emph{\LaTeXcomp}, and the interface for class- and package-writers
+is described in \emph{\fntguide}.
+
+\begin{decl}
+|\normalfont|\\
+|\rmfamily|\\
+|\sffamily|\\
+|\ttfamily|\\
+|\mdseries|\\
+|\bfseries|\\
+|\upshape|\\
+|\itshape|\\
+|\slshape|\\
+|\scshape|
+\end{decl}
+
+These are font commands whose use is the same as the commands |\rm|,
+|\bf|, etc. The difference is that each command changes just one
+attribute of the font (the attribute changed is part of the name).
+One result of this is that, for example, |\bfseries\itshape| produces
+both a change of series and a change of shape, to give a bold italic
+font.
+
+\begin{decl}
+|\textnormal|\arg{text}\\
+|\textrm|\arg{text}\\
+|\textsf|\arg{text}\\
+|\texttt|\arg{text}\\
+|\textmd|\arg{text}\\
+|\textbf|\arg{text}\\
+|\textup|\arg{text}\\
+|\textit|\arg{text}\\
+|\textsl|\arg{text}\\
+|\textsc|\arg{text}\\
+|\emph|\arg{text}
+\end{decl}
+
+These are one-argument commands; they take as an argument the
+text which is to be typeset in the particular font. They also
+automatically insert italic corrections where appropriate; if you do
+not like the result, you can add an italic correction with |\/| or
+remove it with |\nocorr|. The |\nocorr| should always be the first or
+last thing within the \arg{text} argument.
+
+\subsection{Font changing: math}
+
+Most of the fonts used within math mode do not need to be explicitly
+invoked; but to use letters from a range of fonts, the following
+class of commands is provided.
+
+\begin{decl}
+|\mathrm| \arg{letters}\\
+|\mathnormal| \arg{letters}\\
+|\mathcal| \arg{letters}\\
+|\mathbf| \arg{letters}\\
+|\mathsf| \arg{letters}\\
+|\mathtt| \arg{letters}\\
+|\mathit| \arg{letters}
+\end{decl}
+
+These are also one-argument commands which take as an argument the
+letters which are to be typeset in the particular font. The argument
+is processed in math mode so spaces within it will be ignored. Only
+letters, digits and accents have their font changed, for example
+|$\mathbf{\tilde A \times 1}$| produces $\mathbf{\tilde A \times 1}$.
+
+\subsection{Ensuring math mode}
+
+\begin{decl}
+|\ensuremath| \arg{math commands}
+\end{decl}
+
+In \LaTeX~2.09, if you wanted a command to work both in math mode and
+in text mode, the suggested method was to define something like:
+\begin{verbatim}
+ \newcommand{\Gp}{\mbox{$G_p$}}
+\end{verbatim}
+Unfortunately, the |\mbox| stops |\Gp| changing size correctly in (for
+instance) subscripts or a fraction.
+
+In \LaTeXe{} you can define it thus:
+\begin{verbatim}
+ \newcommand{\Gp}{\ensuremath{G_p}}
+\end{verbatim}
+Now |\Gp| will work correctly in all contexts.
+
+This is because the |\ensuremath| does nothing, producing simply
+|G_p|, when |\Gp| is used within math mode; but it ensures that math
+mode is entered (and exited) as required when |\Gp| is used in text
+mode.
+
+
+\subsection{Setting text superscripts}
+
+\begin{decl}
+|\textsuperscript| \arg{text}
+\end{decl}
+
+\NEWfeature{1995/06/01} In \LaTeX~2.09 textual superscripts such as
+footnote markers were produced by internally entering math mode and
+typesetting the number as a math superscript. This normally looked
+fine since the digits in math fonts are the same as those in text
+fonts when Computer Modern fonts are used. But when a different
+document font (such as Times) is selected, the results look rather
+strange. For this reason the command |\textsuperscript| has been
+introduced which typesets its argument in the current text font, in a
+superscript position and in the correct size.
+
+\subsection{Text commands: all encodings}
+
+\NEWdescription{1994/12/01}
+ One of the main differences between \LaTeXe{} and \LaTeX~2.09 is
+ that \LaTeXe{} can deal with fonts in arbitrary \emph{encodings}.
+ (A font encoding is the sequence of characters in the font---for
+ example a Cyrillic font would have a different encoding from a Greek
+ font.)
+
+ The two major font encodings that are used for Latin languages such
+ as English or German are |OT1| (Donald Knuth's 7-bit encoding, which
+ has been used during most of \TeX's lifetime) and |T1| (the new
+ 8-bit `Cork' encoding).
+
+ \LaTeX~2.09 only supported the |OT1| encoding, whereas \LaTeXe{} has
+ support for both |OT1| and |T1| built-in. The next section will
+ cover the new commands which are available if you have |T1|-encoded
+ fonts. This section describes new commands which are available in
+ all encodings.
+
+ Most of these commands provide characters which were available in
+ \LaTeX~2.09 already. For example |\textemdash| gives an `em dash',
+ which was available in \LaTeX~2.09 by typing |---|. However, some
+ fonts (for example a Greek font) may not have the |---| ligature,
+ but you will still be able to access an em dash by typing
+ |\textemdash|.
+
+\begin{decl}[1994/12/01]
+ |\r{<text>}|
+\end{decl}
+ This command gives a `ring' accent, for example `\r{o}' can be typed
+ |\r{o}|.
+
+\begin{decl}[1994/12/01]
+ |\SS|
+\end{decl}
+ This command produces a German `SS', that is a capital `\ss'. This
+ letter can hyphenate differently from `SS', so is needed for entering
+ all-caps German.
+
+\begin{decl}[1994/12/01]
+ |\textcircled{<text>}|
+\end{decl}
+ This command is used to build `circled characters' such as
+ |\copyright|. For example |\textcircled{a}| produces
+ \textcircled{a}.
+
+\begin{decl}[1994/12/01]
+ |\textcompwordmark|
+\end{decl}
+ This command is used to separate letters which would normally
+ ligature. For example `f\textcompwordmark i' is produced with
+ |f\textcompwordmark i|. Note that the `f' and `i' have not
+ ligatured to produce `fi'. This is rarely useful in English
+ (`shelf\textcompwordmark ful' is a rare example of where it might be
+ used) but is used in languages such as German.
+
+\begin{decl}[1994/12/01]
+ |\textvisiblespace|
+\end{decl}
+ This command produces a `visible space' character
+ `\textvisiblespace'. This is sometimes used in computer listings,
+ for example `type \textsf{hello\textvisiblespace world}'.
+
+\begin{decl}[1994/12/01]
+ |\textemdash|
+ |\textendash|
+ |\textexclamdown|
+ |\textquestiondown| \\
+ |\textquotedblleft|
+ |\textquotedblright|
+ |\textquoteleft|
+ |\textquoteright|
+\end{decl}
+ These commands produce characters which would otherwise be
+ accessed via ligatures:
+ \begin{center}
+ \begin{tabular}{ccl}
+ \emph{ligature} & \emph{character} & \emph{command} \\
+ |---| & --- & |\textemdash| \\
+ |--| & -- & |\textendash| \\
+ |!`| & !` & |\textexclamdown| \\
+ |?`| & ?` & |\textquestiondown| \\
+ |``| & `` & |\textquotedblleft| \\
+ |''| & '' & |\textquotedblright| \\
+ |`| & ` & |\textquoteleft| \\
+ |'| & ' & |\textquoteright|
+ \end{tabular}
+ \end{center}
+ The reason for making these characters directly accessible is so
+ that they will work in encodings which do not have these characters.
+
+\begin{decl}[1994/12/01]
+ |\textbullet|
+ |\textperiodcentered|
+\end{decl}
+ These commands allow access to characters which were previously only
+ available in math mode:
+ \begin{center}
+ \begin{tabular}{lcl}
+ \emph{math command} & \emph{character} & \emph{text command} \\
+ |\bullet| & $\bullet$ & |\textbullet| \\
+ |\cdot| & $\cdot$ & |\textperiodcentered|
+ \end{tabular}
+ \end{center}
+
+\begin{decl}[1995/12/01]
+ |\textbackslash|
+ |\textbar|
+ |\textless|
+ |\textgreater|
+\end{decl}
+ These commands allow access to ASCII characters which were
+ only available in verbatim or math mode:
+ \begin{center}
+ \begin{tabular}{lcl}
+ \emph{math command} & \emph{character} & \emph{text command} \\
+ |\backslash| & $\backslash$ & |\textbackslash| \\
+ |\mid| & $\mid$ & |\textbar| \\
+ |<<| & $<$ & |\textless| \\
+ |>>| & $>$ & |\textgreater|
+ \end{tabular}
+ \end{center}
+
+\begin{decl}[1995/12/01]
+ |\textasciicircum|
+ |\textasciitilde|
+\end{decl}
+ These commands allow access to ASCII characters which were
+ previously only available in verbatim:
+ \begin{center}
+ \begin{tabular}{cl}
+ \emph{verbatim} & \emph{text command} \\
+ |^| & |\textasciicircum| \\
+ |~| & |\textasciitilde|
+ \end{tabular}
+ \end{center}
+
+\begin{decl}[1995/12/01]
+ |\textregistered|
+ |\texttrademark|
+\end{decl}
+ These commands provide the `registered trademark' (R) and
+ `trademark' (TM) symbols.
+
+\subsection{Text commands: the T1 encoding}
+
+\NEWdescription{1994/12/01}
+ The |OT1| font encoding is fine for typesetting in English, but has
+ problems when typesetting other languages. The |T1| encoding solves
+ some of these problems, by providing extra characters (such as `eth'
+ and `thorn'), and it allows words containing accented letters to be
+ hyphenated (as long as you have a package like |babel| which allows
+ for non-American hyphenation).
+
+ This section describes the commands you can use if you have the |T1|
+ fonts. To use them, you need to get the `ec fonts', or the
+ |T1|-encoded PostScript fonts, as used by \textsf{psnfss}.
+ All these fonts are
+ available by anonymous ftp in the Comprehensive \TeX{} Archive, and
+ are also available on the CD-ROMs \emph{4all \TeX} and
+ \emph{\TeX{} Live} (both available from the \TeX{} Users Group).
+
+ You can then select the |T1| fonts by saying:
+\begin{verbatim}
+ \usepackage[T1]{fontenc}
+\end{verbatim}
+ This will allow you to use the commands in this section.
+
+ \emph{Note:} Since this document must be processable on any site
+ running an up-to-date \LaTeX, it does not contain any characters
+ that are present only in |T1|-encoded fonts. This means that this
+ document cannot show you what these glyphs look like! If you want
+ to see them then run \LaTeX{} on the document |fontsmpl| and
+ respond `|cmr|' when it prompts you for a family name.
+
+\begin{decl}[1994/12/01]
+ |\k{<text>}|
+\end{decl}
+ This command produces an `ogonek' accent.
+
+\begin{decl}[1994/12/01]
+ |\DH|
+ |\DJ|
+ |\NG|
+ |\TH|
+ |\dh|
+ |\dj|
+ |\ng|
+ |\th|
+\end{decl}
+ These commands produce characters `eth', `dbar', `eng', and `thorn'.
+
+\begin{decl}[1994/12/01]
+ |\guillemotleft|
+ |\guillemotright|
+ |\guilsinglleft|
+ |\guilsinglright| \\
+ |\quotedblbase|
+ |\quotesinglbase|
+ |\textquotedbl|
+\end{decl}
+ % A local hack (could be improved):
+ \newcommand{\fauxguillemet}[1]{$\vcenter{\hbox{$\scriptscriptstyle#1$}}$}
+ These commands produce various sorts of quotation mark.
+ Rough representations of them are:
+ \fauxguillemet\ll a\fauxguillemet\gg{}
+ \fauxguillemet<a\fauxguillemet>
+ ,\kern -0.1em,\kern 0.05em a\kern -0.05em``
+ ,\kern 0.05em a\kern -0.05em` and |"|a|"|.
+
+\NEWdescription{2001/06/01}
+ There are therefore some extra short-form ligatures available for
+ use in documents that will only be used with |T1|-encoded fonts.
+
+ The guillemets |\guillemotleft| and |\guillemotright|%
+ \footnote{We apologise once again for maintaining Adobe's
+ enormous solipsism~(sic) of confusing a diving bird with
+ punctuation marks!}
+ can be obtained by typing |<<<<| and |>>>>| and |\quotedblbase|
+ by typing |,,|\,.
+
+ Also, unlike the unexpected results with
+ |OT1|-encoded fonts, |<<| and |>>| will produce \textless{} and
+ \textgreater{}.
+
+ Note also that the single character |"| will no longer produce ''
+ but rather |\textquotedbl|.
+
+\subsection{Logos}
+
+\begin{decl}
+|\LaTeX|\\
+|\LaTeXe|
+\end{decl}
+
+|\LaTeX| (producing `\LaTeX') is still the `main' logo command,
+but if you need to refer to the new features, you can write
+|\LaTeXe| (producing `\LaTeXe').
+
+\subsection{Picture commands}
+
+\begin{decl}
+ |\qbezier[<N>](<AX>,<AY>)(<BX>,<BY>)(<CX>,<CY>)| \\
+ | \bezier{<N>}(<AX>,<AY>)(<BX>,<BY>)(<CX>,<CY>)|
+\end{decl}
+The |\qbezier| command can be used in |picture| mode to draw a
+quadratic Bezier curve from position |(<AX>,<AY>)| to |(<CX>,<CY>)| with
+control point |(<BX>,<BY>)|. The optional argument \m{N} gives the
+number of points on the curve.
+
+For example, the diagram:
+\begin{center}
+ \begin{picture}(50,50)
+ \thicklines
+ \qbezier(0,0)(0,50)(50,50)
+ \qbezier[20](0,0)(50,0)(50,50)
+ \thinlines
+ \put(0,0){\line(1,1){50}}
+ \end{picture}
+\end{center}
+is drawn with:
+\begin{verbatim}
+ \begin{picture}(50,50)
+ \thicklines
+ \qbezier(0,0)(0,50)(50,50)
+ \qbezier[20](0,0)(50,0)(50,50)
+ \thinlines
+ \put(0,0){\line(1,1){50}}
+ \end{picture}
+\end{verbatim}
+The |\bezier| command is the same, except that the argument \m{N} is not
+optional. It is provided for compatibility with the \LaTeX~2.09
+|bezier| document style option.
+
+\subsection{Old commands}
+
+\begin{decl}
+|\samepage|
+\end{decl}
+
+The |\samepage| command still exists but is no longer being
+maintained.
+This is because it only ever worked erratically; it does not
+guarantee that there will be no page-breaks within its scope; and
+it can cause footnotes and marginals to be wrongly placed.
+
+We recommend using |\enlargethispage| in conjunction with page-break
+commands such as |\newpage| and |\pagebreak| to help control page
+breaks.
+
+\begin{decl}
+ |\SLiTeX|
+\end{decl}
+Since \SLiTeX{} no longer exists, the logo is no longer defined in the
+\LaTeX{} kernel. A suitable replacement is |\textsc{Sli\TeX}|. The
+\SLiTeX{} logo is defined in \LaTeX~2.09 compatibility mode.
+
+\begin{decl}
+|\mho| |\Join| |\Box| |\Diamond| |\leadsto| \\
+|\sqsubset| |\sqsupset| |\lhd| |\unlhd| |\rhd| |\unrhd|
+\end{decl}
+
+These symbols are contained in the \LaTeX{} symbol font, which was
+automatically loaded by \LaTeX~2.09. However, \TeX{} has room for
+only sixteen math font families; thus many users discovered that they
+ran out. Because of this, \LaTeX{} does not load the \LaTeX{} symbol
+font unless you use the \textsf{latexsym} package.
+
+These symbols are also made available, using different fonts, by the
+\textsf{amsfonts} package, which also defines a large number of other
+symbols. It is supplied by the American Mathematical Society.
+
+The \textsf{latexsym} package is loaded automatically in \LaTeX~2.09
+compatibility mode.
+
+\section{\LaTeX~2.09 documents}
+\label{Sec:209}
+
+\LaTeXe{} can process (almost) any \LaTeX~2.09 document, by entering
+\emph{\LaTeX~2.09 compatibility mode}. Nothing has changed, you run
+\LaTeX{} in the same way you always did, and you will get much the
+same results.
+
+The reason for the `almost' is that some \LaTeX~2.09 packages made use
+of low-level unsupported features of \LaTeX. If you discover such a
+package, you should find out if it has been updated to work with
+\LaTeXe. Most packages will still work with \LaTeXe---the easiest way
+to find out whether a package still works is to try it!
+
+\LaTeX~2.09 compatibility mode is a comprehensive emulation of
+\LaTeX~2.09, but at the cost of time. Documents can run up to 50\%
+slower in compatibility mode than they did under \LaTeX~2.09.
+In addition, many of the new features of \LaTeXe{} are not available in
+\LaTeX~2.09 compatibility mode.
+
+\subsection{Warning}
+
+\NEWdescription{1995/12/01}
+This \emph{\LaTeX~2.09 compatibility mode} is provided solely to allow
+you to process 2.09 documents, i.e.~documents that were written (we
+hope, a long time ago) for a very old system and therefore could be
+processed by using a genuine antique \LaTeX~2.09 system.
+
+This mode is therefore \emph{not} intended to provide access to the
+enhanced features of \LaTeXe{}. Thus it must not be used to process
+new documents which masquerade as 2.09 documents (i.e.~they begin with
+|\documentstyle|) but which could not be processed using that genuine
+antique \LaTeX~2.09 system because they contain some new,
+\LaTeXe{}-only, commands or environments.
+
+To prevent such misuse of the system, and the consequent trouble it
+causes when such misleadingly encoded documents are distributed, the
+\emph{\LaTeX~2.09 compatibility mode} turns off most of these new
+features and commands. Any attempt to use them will give you an error
+message and, moreover, many of them simply will not work, whilst
+others will produce unpredictable results.
+So don't bother sending us any bug reports about such occurrences since
+they are intentional.
+
+
+\subsection{Font selection problems}
+\label{Sec:fsprob}
+
+When using compatibility mode, it is possible that you will find
+problems with font-changing commands in some old documents. These
+problems are of two types:
+
+\begin{itemize}
+\item producing error messages;
+\item not producing the font changes you expected.
+\end{itemize}
+
+In case of error messages it is possible that the document (or an old
+style file used therein) contains references to old internal commands
+which are no longer defined, see Section~\ref{Sec:oldinternals} for
+more information if this is the case.
+
+\NEWdescription{1995/12/01}
+One example of the unexpected is if you use one of the new style of
+math-mode font changing command as follows:
+\begin{verbatim}
+$ \mathbf{xy} A $
+\end{verbatim}
+You may well find that this behaves as if you had put:
+\begin{verbatim}
+$ \bf {xy} A $
+\end{verbatim}
+everything including the $A$ coming out bold.
+
+\LaTeX~2.09 allowed sites to customize their \LaTeX{} installation,
+which resulted in documents producing different results on different
+\LaTeX{} installations. \LaTeXe{} no longer allows so much
+customization but, for compatibility with old documents, the local
+configuration file |latex209.cfg| is loaded every time \LaTeXe{}
+enters \LaTeX~2.09 compatibility mode.
+
+For example, if your site was customized to use the New Font
+Selection Scheme (\NFSS) with the |oldlfont| option, then you can
+make \LaTeXe{} emulate this by creating a |latex209.cfg| file
+containing the commands:
+\begin{verbatim}
+\ExecuteOptions{oldlfont}\RequirePackage{oldlfont}
+\end{verbatim}
+Similarly, to emulate \NFSS{} with the |newlfont| option, you can
+create a |latex209.cfg| file containing:
+\begin{verbatim}
+\ExecuteOptions{newlfont}\RequirePackage{newlfont}
+\end{verbatim}
+
+
+\subsection{Native mode}
+\label{Sec:native}
+
+To run an old document faster, and use the new features of
+\LaTeXe, you should try using \emph{\LaTeXe{} native mode}.
+This is done by replacing the command:
+\begin{quote}
+ |\documentstyle[|\m{options}|,|\m{packages}|]|\arg{class}
+\end{quote}
+with:
+\begin{quote}
+ |\documentclass|\oarg{options}\arg{class} \\
+ |\usepackage{latexsym,|\m{packages}|}|
+\end{quote}
+However, some documents which can be processed in \LaTeX~2.09
+compatibility mode may not work in native mode. Some \LaTeX~2.09
+packages will only work with \LaTeXe{} in 2.09 compatibility mode.
+Some documents will cause errors because of \LaTeXe's improved error
+detection abilities.
+
+But most \LaTeX~2.09 documents can be processed by \LaTeXe{}'s native
+mode with the above change. Again, the easiest way to find out
+whether your documents can be processed in native mode is to try it!
+
+
+\section{Local modifications}
+\label{sec:loc}
+
+\NEWdescription{1995/12/01}
+There are two common types of local modifications that can be done
+very simply. Do not forget that documents produced using such
+modifications will not be usable at other places (such documents are
+called `non-portable').
+
+One type of modification is the use of personal commands for commonly
+used symbols or constructions. These should be put into a package
+file (for example, one called \texttt{mymacros.sty}) and loaded by
+putting |\usepackage{mymacros}| in the document preamble.
+
+Another type is a local document class that is very similar to one of
+the standard classes but contains some straightforward modifications
+such as extra environments, different values for some parameters, etc.
+These should be put into a class file; here we shall describe a simple
+method of constructing such a file using, as an example, a class
+called \textsf{larticle} that is very similar to the \textsf{article}
+class.
+
+\NEWfeature{1995/12/01}
+The class file called \texttt{larticle.cls} should (after the
+preliminary identification commands) start as follows:
+\begin{verbatim}
+ \LoadClassWithOptions{article}
+\end{verbatim}
+This command should be followed by whatever additions and changes you
+wish to make to the results of reading in the file
+\texttt{article.sty}.
+
+The effect of using the above |\LoadClassWithOptions| command is to
+load the standard class file \textsf{article} with whatever options
+are asked for by the document. Thus a document using your
+\textsf{larticle} class can specify any option that could be specified
+when using the standard \textsf{article} class; for example:
+\begin{verbatim}
+ \documentclass[a4paper,twocolumn,dvips]{larticle}
+\end{verbatim}
+
+
+\section{Problems}
+\label{Sec:problems}
+
+This section describes some of the things which may go wrong when
+using \LaTeXe, and what you can do about it.
+
+\subsection{New error messages}
+
+\LaTeXe{} has a number of new error messages.
+Please also note that many error messages now produce further helpful
+information if you press |h| in response to the error prompt.
+
+\begin{decl}
+|Option clash for package |\m{package}|.|
+\end{decl}
+The named package has been loaded twice with different options. If
+you enter |h| you will be told what the options were, for example, if
+your document contained:
+\begin{verbatim}
+ \usepackage[foo]{fred}
+ \usepackage[baz]{fred}
+\end{verbatim}
+then you will get the error message:
+\begin{verbatim}
+ Option clash for package fred.
+\end{verbatim}
+and typing |h| at the |?| prompt will give you:
+\begin{verbatim}
+ The package fred has already been loaded with options:
+ [foo]
+ There has now been an attempt to load it with options:
+ [baz]
+ Adding the line:
+ \usepackage[foo,baz]{fred}
+ to your document may fix this.
+ Try typing <<return>> to proceed.
+\end{verbatim}
+The cure is, as suggested, to load the package with both sets of
+options. Note that since \LaTeX{} packages can call other packages,
+it is possible to get a package option clash without explicitly
+requesting the same package twice.
+
+\begin{decl}
+ |Command |\m{command}| not provided in base NFSS.|
+\end{decl}
+The \m{command} is not provided by default in \LaTeXe. This error is
+generated by using one of the commands:
+\begin{verbatim}
+ \mho \Join \Box \Diamond \leadsto
+ \sqsubset \sqsupset \lhd \unlhd \rhd \unrhd
+\end{verbatim}
+which are now part of the \textsf{latexsym} package.
+The cure is to add:
+\begin{verbatim}
+ \usepackage{latexsym}
+\end{verbatim}
+in the preamble of your document.
+
+\begin{decl}
+ |LaTeX2e command <command> in LaTeX 2.09 document.|
+\end{decl}
+The \m{command} is a \LaTeXe{} command but this is a \LaTeX~2.09
+document. The cure is to replace the command by a \LaTeX~2.09
+command, or to run document in native mode, as described in
+Section~\ref{Sec:native}.
+
+\begin{decl}
+ |NFSS release 1 command \newmathalphabet found.|
+\end{decl}
+The command |\newmathalphabet| was used by the New Font Selection
+Scheme Release 1 but it has now been replaced by
+|\DeclareMathAlphabet|, the use of which is described in
+\emph{\fntguide}.
+
+The best cure is to update the package which contained the
+|\newmathalphabet| command. Find out if there is a new release of
+the package, or (if you wrote the package yourself) consult
+\emph{\fntguide} for the new syntax of font commands.
+
+If there is no updated version of the package then you can cure this
+error by using the \textsf{newlfont} or \textsf{oldlfont} package,
+which tells \LaTeX{} which version of |\newmathalphabet| should be
+emulated.
+
+You should use \textsf{oldlfont} if the document selects math fonts with
+syntax such as this:
+\begin{quote}
+ |{\cal A}|, etc.
+\end{quote}
+Use \textsf{newlfont} if the document's syntax is like this:
+\begin{quote}
+ |\cal{A}|, etc.
+\end{quote}
+
+
+\begin{decl}
+ |Text for \verb command ended by end of line.|
+\end{decl}
+The |\verb| command has been begun but not ended on that line. This
+usually means that you have forgotten to put in the end-character of
+the |\verb| command.
+
+\begin{decl}
+ |Illegal use of \verb command.|
+\end{decl}
+The |\verb| command has been used inside the argument of another
+command. This has never been allowed in \LaTeX{}---often producing
+incorrect output without any warning---and so \LaTeXe{} produces
+an error message.
+
+\subsection{Old internal commands}
+\label{Sec:oldinternals}
+
+A number of \LaTeX~2.09 internal commands have been removed, since
+their functionality is now provided in a different way. See
+\emph{\clsguide} for more details of the new, supported interface for
+class and package writers.
+
+\begin{decl}
+ |\tenrm| |\elvrm| |\twlrm| \dots\\
+ |\tenbf| |\elvbf| |\twlbf| \dots\\
+ |\tensf| |\elvsf| |\twlsf| \dots\\
+ $\vdots$
+\end{decl}
+These commands provided access to the seventy fonts preloaded by
+\LaTeX~2.09. In contrast, \LaTeXe{} normally preloads at most
+fourteen fonts, which saves a lot of font memory; but a consequence is
+that any \LaTeX{} file which used the above commands to directly
+access fonts will no longer work.
+
+Their use will usually produce an error message such as:
+\begin{verbatim}
+ ! Undefined control sequence.
+ l.5 \tenrm
+\end{verbatim}
+The cure for this is to update the document to use the new
+font-changing commands provided by \LaTeXe; these are described in
+\emph{\fntguide}.
+
+If this is not possible then, as a last resort, you can
+use the \textsf{rawfonts} package, which loads the
+seventy \LaTeX~2.09 fonts and provides direct access to them using the
+old commands. This takes both time and memory. If you do not
+wish to load all seventy fonts, you can select some of them by using the
+|only| option to \textsf{rawfonts}. For example, to load only |tenrm|
+and |tenbf| you write:
+\begin{verbatim}
+ \usepackage[only,tenrm,tenbf]{rawfonts}
+\end{verbatim}
+
+The \textsf{rawfonts} package is distributed as part of the \LaTeX{}
+tools software, see Section~\ref{Sec:st-pack}.
+
+\subsection{Old files}
+
+One of the more common mistakes in running \LaTeX{} is to read in old
+versions of packages instead of the new versions. If you get an
+incomprehensible error message from a standard package, make sure you
+are loading the most recent version of the package. You can find out
+which version of the package has been loaded by looking in the log
+file for a line like:
+\begin{verbatim}
+ Package: fred 1994/06/01 v0.01 Fred's package.
+\end{verbatim}
+You can use the \m{release-date} options to |\documentclass| and
+|\usepackage| to make sure that you are getting a suitably recent copy
+of the document class or package. This is useful when sending a
+document to another site, which may have out-of-date software.
+
+\subsection{Where to go for more help}
+
+If you can't find the answer for your problem here, try looking in
+\emph{\LaTeXbook} or \emph{\LaTeXcomp}. If you have a problem with
+installing \LaTeX, look in the installation guide files which come with
+the distribution.
+
+If this doesn't help, contact your local \LaTeX{} guru or local
+\LaTeX{} mailing list.
+
+If you think you've discovered a bug then please report it! First,
+you should find out if the problem is with a third-party package or
+class. If the problem is caused by a package or class other than
+those listed in Section~\ref{Sec:class+packages} then please report
+the problem to the author of the package or class, not to the \LaTeX3
+project team.
+
+If the bug really is with core \LaTeX{} then you should create a
+\emph{short}, \emph{self-contained} document which exhibits the
+problem. You should run a \emph{recent} (less than a year old)
+version of \LaTeX{} on the file and then run \LaTeX{} on
+|latexbug.tex|. This will create an error report which you should
+send, together with the sample document and log file, to the
+\LaTeX{} bugs address which can be found in the file
+|latexbug.tex| or |bugs.txt|.
+
+
+\section{Enjoy!}
+\label{Sec:enjoy}
+
+We certainly hope you will enjoy using the new standard \LaTeX{} but,
+if this is not possible, we hope that you will enjoy success and
+fulfillment as a result of the documents which it will help you to
+create.
+
+If you find that the contribution of \LaTeX{} to your life is such
+that you would like to support the work of the project team, then
+please read Section~\ref{Sec:ltx3} and discover practical ways to do
+this.
+
+\begin{thebibliography}{1}
+
+\bibitem{A-W:GRM97}
+Michel Goossens, Sebastian Rahtz and Frank Mittelbach.
+\newblock {\em The {\LaTeX} Graphics Companion}.
+\newblock Addison-Wesley, Reading, Massachusetts, 1997.
+
+
+\bibitem{A-W:GR99}
+Michel Goossens and Sebastian Rahtz.
+\newblock {\em The {\LaTeX} Web Companion}.
+\newblock Addison-Wesley, Reading, Massachusetts, 1999.
+
+
+\bibitem{A-W:DEK91}
+Donald~E. Knuth.
+\newblock {\em The \TeX book}.
+\newblock Addison-Wesley, Reading, Massachusetts, 1986.
+\newblock Revised to cover \TeX3, 1991.
+
+
+\bibitem{A-W:LLa94}
+Leslie Lamport.
+\newblock {\em {\LaTeX:} A Document Preparation System}.
+\newblock Addison-Wesley, Reading, Massachusetts, second edition, 1994.
+
+\bibitem{A-W:MG2004}
+Frank Mittelbach and Michel Goossens.
+\newblock {\em The {\LaTeX} Companion second edition}.
+\newblock With Johannes Braams, David Carlisle, and Chris Rowley.
+\newblock Addison-Wesley, Reading, Massachusetts, 2004.
+
+
+\end{thebibliography}
+
+\end{document}
diff --git a/macros/latex/base/usrguide.pdf b/macros/latex/base/usrguide.pdf
index e07b34bdac..ae46e5ba7b 100644
--- a/macros/latex/base/usrguide.pdf
+++ b/macros/latex/base/usrguide.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide.tex b/macros/latex/base/usrguide.tex
index dfdf9443e6..32e12a1397 100644
--- a/macros/latex/base/usrguide.tex
+++ b/macros/latex/base/usrguide.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2022
+% Copyright (C) 2020-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -28,18 +28,44 @@
% \fi
% Filename: usrguide.tex
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\documentclass{ltxguide}
-\documentclass{ltxguide}[2001/05/28]
+\usepackage[T1]{fontenc} % needed for \textbackslash in tt
+\usepackage{csquotes}
-\title{\LaTeXe~for authors}
+\title{\LaTeX\ for authors --- current version}
+\author{\copyright~Copyright 2020-2022, \LaTeX\ Project Team.\\
+ All rights reserved.%
+ \footnote{This file may distributed and/or modified under the
+ conditions of the \LaTeX{} Project Public License, either version 1.3c
+ of this license or (at your option) any later version. See the source
+ \texttt{usrguide.tex} for full details.}%
+}
-\author{\copyright~Copyright 1995--2020, \LaTeX\ Project Team.\\
- All rights reserved.}
+\date{2022-07-05}
-\date{25 May 2020}
+\NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}}
+\NewDocumentCommand\marg{m}{\arg{#1}}
+\NewDocumentCommand\meta{m}{\ensuremath{\langle}\textit{#1}\ensuremath{\rangle}}
+\NewDocumentCommand\pkg{m}{\textsf{#1}}
+\NewDocumentCommand\text{m}{\ifmmode\mbox{#1}\else#1\fi}
+% Fix a 'feature'
+\makeatletter
+\renewcommand \verbatim@font {\normalfont \ttfamily}
+\makeatother
+% for fpeval documentation
+
+\providecommand\fpop[1]{\mathop{\texttt{#1}}}
+\providecommand\fpbin[1]{\mathbin{\texttt{#1}}}
+\providecommand\fprel[1]{\mathrel{\texttt{#1}}}
+\providecommand\nan{\texttt{NaN}}
+
+\ExplSyntaxOn
+\ProvideExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} }
+\ExplSyntaxOff
+
\begin{document}
\maketitle
@@ -48,1780 +74,1133 @@
\section{Introduction}
-Welcome to \LaTeXe, the new standard version of the \LaTeX{} Document
-Preparation System.
-
-This document describes how to take advantage of the new features of
-\LaTeX, and how to process your old \LaTeX{} documents with
-\LaTeXe. However, this document is only a brief introduction to the
-new facilities and is intended for authors who are already familiar
-with the old version of \LaTeX{}. It is \emph{not} a reference manual
-for \LaTeXe{} nor is it a complete introduction to \LaTeX.
-
-It is somewhat of an historical document now, since \LaTeXe{} came into
-existence in 1994.
-
-\subsection[\LaTeXe---The new \LaTeX~release]
- {\LaTeXe---The new \LaTeX~release\\ (well, for more than 10 years now)}
-
-The previous version of \LaTeX{} was known as \LaTeX~2.09. Over the
-years many extensions have been developed for \LaTeX. This is, of
-course, a sure sign of its continuing popularity but it has had one
-unfortunate result: incompatible \LaTeX{} formats came into use at
-different sites. This included `standard \LaTeX~2.09', \LaTeX{} built
-with the \emph{New Font Selection Scheme}~(\NFSS), \SLiTeX, \AmSLaTeX,
-and so on. Thus, to process documents from various places, a site
-maintainer was forced to keep multiple versions of the \LaTeX{}
-program. In addition, when looking at a source file it was not always
-clear for which format the document was written.
-
-To put an end to this unsatisfactory situation, \LaTeXe{} has been
-produced; it brings all such extensions back under a single format and
-thus prevents the proliferation of mutually incompatible dialects of
-\LaTeX~2.09. With \LaTeXe{} the `new font selection scheme' is
-standard and, for example, \textsf{amsmath} (formerly the \AmSLaTeX{}
-format) or \textsf{slides} (formerly the \SLiTeX{} format) are simply
-extensions, which may be loaded by documents using the same base format.
-
-The introduction of a new release also made it possible to add a small
-number of often-requested features and to make the task of writing
-packages and classes simpler.
-
-\subsection{\LaTeX3---The long-term future of \LaTeX}
-\label{Sec:ltx3}
-
-\LaTeXe{} is the consolidation step in a comprehensive
-reimplementation of the \LaTeX{} system. The next major release of
-\LaTeX{} will be \LaTeX3, which will include a radical overhaul of the
-document designers' and package writers' interface to \LaTeX.
-
-\LaTeX3 is a long-term research project but, until it is completed,
-the project team are committed to the active maintenance of \LaTeXe{}.
-Thus the experience gained from the production and maintenance of
-\LaTeXe{} will be a major influence on the design of \LaTeX3.
-A brief description of the project can be found in the document
-|ltx3info.tex|.
-
-If you would like to support the project then you are welcome to send
-donations to the \LaTeX\ Project Fund; this has been set up to help
-the research team by financing various expenses associated with this
-voluntary work of maintaining the current \LaTeX{} and developing
-\LaTeX\ further.
-
-The fund is administered by The \TeX{} Users Group and by various
-local user groups. Information about making donations and joining
-these groups is available from:
-\begin{quote}\small\label{addrs}
- \texttt{http://www.tug.org/lugs.html}
-\end{quote}
+\LaTeXe{} was released in 1994 and added a number of then-new concepts to
+\LaTeX{}. These are described in \texttt{usrguide-historic}, which has largely remained
+unchanged. Since then, the \LaTeX{} team have worked on a number of ideas,
+firstly a programming language for \LaTeX{} (\pkg{expl3}) and then a range of
+tools for document authors which build on that language. Here, we describe
+\emph{stable} and \emph{widely-usable} concepts that have resulted from that
+work. These `new' ideas have been transferred from development packages
+into the \LaTeXe{} kernel. As such, they are now available to \emph{all}
+\LaTeX{} users and have the \emph{same stability} as any other part of the
+kernel. The fact that `behind the scenes' they are built on \pkg{expl3}
+is useful for the development team, but is not directly important to users.
-The \LaTeX3{} project has its home page
-on the World Wide Web at:
-\begin{verbatim}
- http://www.latex-project.org/
-\end{verbatim}
-This page describes \LaTeX{} and the \LaTeX3 project, and contains
-pointers to other \LaTeX{} resources, such as the user guides, the
-\TeX{} Frequently Asked Questions, and the \LaTeX{} bugs database.
-
-Older articles covering aspects of the \LaTeX3 project are also
-available for anonymous ftp from the Comprehensive \TeX{} Archive, in
-the directory:
-\begin{verbatim}
- ctan:info/ltx3pub
-\end{verbatim}
-The file |ltx3pub.bib| in that directory contains an abstract of each
-of the files.
+\section{Creating document commands and environments}
\subsection{Overview}
-This document contains an overview of the new structure and features
-of \LaTeX. It is \emph{not} a self-contained document, as it contains
-only the features of \LaTeX{} which have changed since version 2.09.
-You should read this document in conjunction with an introduction to
-\LaTeX{}.
-
-\begin{description}
-
-\item[Section~\ref{Sec:class+packages}]
- contains an overview of the new structure of
- \LaTeX{} documents. It describes how classes and packages work and
- how class and package options can be used. It lists the standard
- packages and classes which come with \LaTeX.
-
-\item[Section~\ref{Sec:commands}] describes the new commands available
- to authors in \LaTeXe.
-
-\item[Section~\ref{Sec:209}] shows how to process old \LaTeX{}
- documents with \LaTeXe.
-
-\item[Section~\ref{Sec:problems}] contains advice on dealing with
- problems you may encounter in running \LaTeXe.
- It lists some error messages which are new in \LaTeXe{} and
- it describes some of the more common problems and how to cure them,
- or where to find further information.
-
-\end{description}
-
-\subsection{Further information}
-
-For a general introduction to \LaTeX, including the new features of
-\LaTeXe, you should read \emph{\LaTeXbook}
-by Leslie Lamport~\cite{A-W:LLa94}.
-
-A more detailed description of the new features of \LaTeX, including an
-overview of more than 200 packages and nearly 1000 ready to run examples, is
-to be found in \emph{\LaTeXcomp second edition} by Frank Mittelbach and
-Michel Goossens~\cite{A-W:MG2004}.
-
-Packages and programs for producing and manipulating graphics are
-discussed at length in \emph{\LaTeXGcomp} by Michel Goossens,
-Sebastian Rahtz and Frank Mittelbach~\cite{A-W:GRM97}.
-
-Solutions for publishing with \LaTeX{} on the World Wide Web are given
-in \emph{\LaTeXWcomp} by Michel Goossens and Sebastian
-Rahtz~\cite{A-W:GR99}.
-
-For more information about the many new \LaTeX{} packages you should
-read the package documentation, which should be available from the
-same source as your copy of \LaTeX.
+Creating document commands and environments using the \LaTeX3 toolset is based
+around the idea that a common set of descriptions can be used to cover almost
+all argument types used in real documents. Thus parsing is reduced to a simple
+description of which arguments a command takes: this description provides the
+`glue' between the document syntax and the implementation of the
+command.
+
+First, we will describe the argument types, then move on to explain how these
+can be used to create both document commands and environments. Various more
+specialized features are then described, which allow an even richer application
+of a simple interface set up.
+
+The details here are intended to help users create document commands in
+general. More technical detail, suitable for \TeX{} programmers, is included
+in \texttt{interface3}.
+
+\subsection{Describing argument types}
+
+In order to allow each argument to be defined independently, the parser does
+not simply need to know the number of arguments for a function, but also the
+nature of each one. This is done by constructing an \emph{argument
+specification}, which defines the number of arguments, the type of each
+argument and any additional information needed for the parser to read the user
+input and properly pass it through to internal functions.
+
+The basic form of the argument specifier is a list of letters, where each
+letter defines a type of argument. As will be described below, some of the
+types need additional information, such as default values. The argument types
+can be divided into two, those which define arguments that are mandatory
+(potentially raising an error if not found) and those which define optional
+arguments. The mandatory types
+\begin{itemize}
+ \item[\texttt{m}] A standard mandatory argument, which can either be a single token
+ alone or multiple tokens surrounded by curly braces |{}|. Regardless of the
+ input, the argument will be passed to the internal code without the outer
+ braces. This is the type specifier for a normal \TeX{} argument.
+ \item[\texttt{r}] Given as \texttt{r}\meta{token1}\meta{token2}, this denotes a
+ `required' delimited argument, where the delimiters are
+ \meta{token1} and \meta{token2}. If the opening delimiter \meta{token1} is
+ missing, the default marker |-NoValue-| will be inserted after a suitable
+ error.
+ \item[\texttt{R}] Given as \texttt{R}\meta{token1}\meta{token2}\marg{default},
+ this is a `required' delimited argument as for~\texttt{r},
+ but it has a user-definable recovery \meta{default} instead of
+ |-NoValue-|.
+ \item[\texttt{v}] Reads an argument `verbatim', between the following
+ character and its next occurrence, in a way similar to the argument
+ of the \LaTeXe{} command \cs{verb}. Thus a \texttt{v}-type argument
+ is read between two identical characters, which cannot be any of |%|, |\|,
+ |#|, |{|, |}| or \verb*| |. The verbatim argument can also be enclosed
+ between braces, |{| and |}|. A command with a verbatim argument will
+ produce an error when it appears within an argument of another function.
+ \item[\texttt{b}] Only suitable in the argument specification of an
+ environment, it denotes the body of the environment, between
+ |\begin|\marg{environment} and |\end|\marg{environment}. See
+ Section~\ref{sec:cmd:body} for details.
+\end{itemize}
+The types which define optional arguments are:
+\begin{itemize}
+ \item[\texttt{o}] A standard \LaTeX{} optional argument, surrounded with square
+ brackets, which will supply the special |-NoValue-| marker if not given
+ (as described later).
+ \item[\texttt{d}] Given as \texttt{d}\meta{token1}\meta{token2}, an optional
+ argument which is delimited by \meta{token1} and \meta{token2}. As with
+ \texttt{o}, if no value is given the special marker |-NoValue-| is
+ returned.
+ \item[\texttt{O}] Given as \texttt{O}\marg{default}, is like \texttt{o}, but returns
+ \meta{default} if no value is given.
+ \item[\texttt{D}] Given as \texttt{D}\meta{token1}\meta{token2}\marg{default}, it is
+ as for \texttt{d}, but returns \meta{default} if no value is given.
+ Internally, the \texttt{o}, \texttt{d} and \texttt{O} types are
+ short-cuts to an appropriated-constructed \texttt{D} type argument.
+ \item[\texttt{s}] An optional star, which will result in a value
+ \cs{BooleanTrue} if a star is present and \cs{BooleanFalse}
+ otherwise (as described later).
+ \item[\texttt{t}] An optional \meta{token}, which will result in a value
+ \cs{BooleanTrue} if \meta{token} is present and \cs{BooleanFalse}
+ otherwise. Given as \texttt{t}\meta{token}.
+ \item[\texttt{e}] Given as \texttt{e}\marg{tokens}, a set of optional
+ \emph{embellishments}, each of which requires a \emph{value}.
+ If an embellishment is not present, |-NoValue-| is returned. Each
+ embellishment gives one argument, ordered as for the list of
+ \meta{tokens} in the argument specification. All \meta{tokens}
+ must be distinct.
+ \item[\texttt{E}] As for \texttt{e} but returns one or more \meta{defaults}
+ if values are not given: \texttt{E}\marg{tokens}\marg{defaults}. See
+ Section~\ref{sec:cmd:embellishment} for more details.
+\end{itemize}
-There are a number of documentation files which accompany every copy
-of \LaTeX. A copy of \emph{\LaTeX{} News} will come out with each
-six-monthly release of \LaTeX; it will be found in the files
-|ltnews*.tex|. The class- and package-writer's guide \emph{\clsguide}
-describes the new \LaTeX{} features for writers of document classes
-and packages; it is in |clsguide.tex|. The guide \emph{\fntguide}
-describes the \LaTeX{} font selection scheme for class- and
-package-writers; it is in |fntguide.tex|. Support for Cyrillic languages
-in \LaTeX{} is described in \emph{\cyrguide}.
+\subsection{Modifying argument descriptions}
-The documented source code (from the files used to produce the kernel
-format via |latex.ltx|) is now available as
-\emph{The \LaTeXe\ Sources}. ]
-This very large document also includes an index of
-\LaTeX{} commands. It can be typeset from the \LaTeX{} file
-|source2e.tex| in the |base| directory, using the source files and
-the class file |ltxdoc.cls| from this directory.
+In addition to the argument \emph{types} discussed above, the argument
+description also gives special meaning to three other characters.
-For more information about \TeX{} and \LaTeX{}, please contact your
-local \TeX{} Users Group, or the international \TeX{} Users Group (see
-page \pageref{addrs}).
+First, \texttt{+} is used to make an argument long (to accept paragraph
+tokens). In contrast to \cs{newcommand}, this applies on an
+argument-by-argument basis. So modifying the example to `|s o o +m O{default}|'
+means that the mandatory argument is now \cs{long}, whereas the optional
+arguments are not.
+Secondly, \texttt{!} is used to control whether spaces are allowed before
+optional arguments. There are some subtleties to this, as \TeX{} itself
+has some restrictions on where spaces can be `detected': more detail
+is given in Section~\ref{sec:cmd:opt-space}.
-\section{Classes and packages}
-\label{Sec:class+packages}
+Thirdly, \texttt{=} is used to declare that the following argument should
+be interpreted as a series of keyvals. See Section~\ref{sec:cmd:keyval}
+for more details.
-This section describes the new structure of \LaTeX{} documents and the
-new types of file: \emph{classes} and \emph{packages}.
+Finally, the character \texttt{>} is used to declare so-called
+`argument processors', which can be used to modify the contents of an
+argument before it is passed to the macro definition. The use of argument
+processors is a somewhat advanced topic, (or at least a less commonly used
+feature) and is covered in Section~\ref{sec:cmd:processors}.
-\subsection{What are classes and packages?}
+\subsection{Creating document commands and environments}
-The main difference between \LaTeX~2.09 and \LaTeXe{} is in the
-commands before |\begin{document}|.
+\begin{decl}
+ |\NewDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
+ |\RenewDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
+ |\ProvideDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
+ |\DeclareDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code}
+\end{decl}
+This family of commands are used to create a \meta{cmd}. The argument
+specification for the function is given by \meta{arg spec}, and the command
+uses the \meta{code} with |#1|, |#2|, etc.\ replaced by the arguments found
+by the parser.
-In \LaTeX~2.09, documents had \emph{styles},
-such as \textsf{article} or \textsf{book}, and \emph{options},
-such as \textsf{twoside} or \textsf{epsfig}.
-These were indicated by the |\documentstyle| command:
-\begin{quote}
- |\documentstyle|\oarg{options}\arg{style}
-\end{quote}
-For example, to specify a two-sided article with encapsulated
-PostScript figures, you said:
+An example:
\begin{verbatim}
- \documentstyle[twoside,epsfig]{article}
+\NewDocumentCommand\chapter{s o m}
+ {%
+ \IfBooleanTF{#1}%
+ {\typesetstarchapter{#3}}%
+ {\typesetnormalchapter{#2}{#3}}%
+ }
\end{verbatim}
-However, there were two different types of document style option:
-\emph{built-in options} such as |twoside|; and \emph{packages} such as
-|epsfig.sty|. These were very different, since any \LaTeX{} document
-style could use the \textsf{epsfig} package but only document styles
-which declared the \textsf{twoside} option could use that option.
-
-To avoid this confusion, \LaTeXe{} differentiates between built-in
-options and packages. These are given by the new |\documentclass| and
-|\usepackage| commands:
-\begin{quote}
- |\documentclass|\oarg{options}\arg{class} \\
- |\usepackage|\oarg{options}\arg{packages}
-\end{quote}
-For example, to specify a two-sided article with encapsulated
-PostScript figures, you now write:
+would be a way to define a \cs{chapter} command which would essentially behave
+like the current \LaTeXe{} command (except that it would accept an optional
+argument even when a \texttt{*} was parsed). The \cs{typesetnormalchapter}
+could test its first argument for being |-NoValue-| to see if an optional
+argument was present. (See Section~\ref{sec:cmd:special} for details of
+\cs{IfBooleanTF} and testing for |-NoValue-|.)
+
+The difference between the \cs{New...} \cs{Renew...}, \cs{Provide...}
+and \cs{Declare...} versions is the behavior if \meta{cmd} is already
+defined.
+\begin{itemize}
+ \item \cs{NewDocumentCommand} will issue an error if \meta{cmd}
+ has already been defined.
+ \item \cs{RenewDocumentCommand} will issue an error if \meta{cmd}
+ has not previously been defined.
+ \item \cs{ProvideDocumentCommand} creates a new definition for
+ \meta{function} only if one has not already been given.
+ \item \cs{DeclareDocumentCommand} will always create the new
+ definition, irrespective of any existing \meta{cmd} with the
+ same name. This should be used sparingly.
+\end{itemize}
+
+If the \meta{cmd} can't be provided as a single token but needs
+\enquote{constructing}, you can use \cs{ExpandArgs} as explained in
+Section~\ref{sec:preconstructing-csnames} which also gives an example
+in which this is needed.
+
+\begin{decl}
+ |\NewDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\
+ |\RenewDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\
+ |\ProvideDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\
+ |\DeclareDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code}
+\end{decl}
+These commands work in the same way as \cs{NewDocumentCommand}, etc.\@, but
+create environments (\cs{begin}\arg{env} \ldots{}
+\cs{end}\arg{env}). Both the \meta{beg-code} and \meta{end-code}
+may access the arguments as defined by \meta{arg spec}. The arguments will be
+given following \cs{begin}\arg{env}.
+
+\subsection{Optional arguments}
+\label{sec:cmd:opt}
+
+In contrast to commands created using \LaTeXe{}'s \cs{newcommand}, optional
+arguments created using \cs{NewDocumentCommand} may safely be nested. Thus for
+example, following
\begin{verbatim}
- \documentclass[twoside]{article}
- \usepackage{epsfig}
+\NewDocumentCommand\foo{om}{I grabbed `#1' and `#2'}
+\NewDocumentCommand\baz{o}{#1-#1}
\end{verbatim}
-You can load more than one package with a single |\usepackage|
-command; for example, rather than writing:
+using the command as
\begin{verbatim}
- \usepackage{epsfig}
- \usepackage{multicol}
+\foo[\baz[stuff]]{more stuff}
\end{verbatim}
-you can specify:
+will print
+\begin{quote}
+I grabbed `stuff-stuff' and `more stuff'
+\end{quote}
+This is particularly useful when placing a command with an optional argument
+\emph{inside} the optional argument of a second command.
+
+When an optional argument is followed by a mandatory argument with the same
+delimiter, the parser issues a warning because the optional argument could not
+be omitted by the user, thus becoming in effect mandatory. This can apply to
+\texttt{o}, \texttt{d}, \texttt{O}, \texttt{D}, \texttt{s}, \texttt{t},
+\texttt{e}, and \texttt{E} type arguments followed by \texttt{r} or
+\texttt{R}-type required arguments.
+
+The default for \texttt{O}, \texttt{D} and \texttt{E} arguments can be
+the result of grabbing another argument. Thus for example
\begin{verbatim}
- \usepackage{epsfig,multicol}
+\NewDocumentCommand\foo{O{#2} m}
\end{verbatim}
-Note that \LaTeXe{} still understands the \LaTeX~2.09 |\documentstyle|
-command. This command causes \LaTeXe{} to enter \emph{\LaTeX~2.09
-compatibility mode}, which is described in Section~\ref{Sec:209}.
+would use the mandatory argument as the default for the leading optional
+one.
-You should not, however, use the |\documentstyle| command for new
-documents because this compatibility mode is very slow and the new
-features of \LaTeXe{} are not available in this mode.
-
-To help differentiate between classes and packages, document classes
-now end with |.cls| rather than |.sty|. Packages still end with
-|.sty|, since most \LaTeX~2.09 packages work well with \LaTeXe.
-
-\subsection{Class and package options}
-
-In \LaTeX~2.09, only document styles could have options such as
-|twoside| or |draft|. In \LaTeXe{}, both classes and packages are
-allowed to have options. For example, to specify a two-sided article
-with graphics using the |dvips| driver, you write:
+\subsection{Spacing and optional arguments}
+\label{sec:cmd:opt-space}
+\TeX{} will find the first argument after a function name irrespective of any
+intervening spaces. This is true for both mandatory and optional arguments. So
+|\foo[arg]| and \verb*|\foo [arg]| are equivalent. Spaces are also ignored when
+collecting arguments up to the last mandatory argument to be collected (as it
+must exist). So after
\begin{verbatim}
- \documentclass[twoside]{article}
- \usepackage[dvips]{graphics}
+\NewDocumentCommand\foo{m o m}{ ... }
\end{verbatim}
-It is possible for packages to share common options. For example,
-you could, in addition, load the \textsf{color} package by specifying:
+the user input |\foo{arg1}[arg2]{arg3}| and \verb*|\foo{arg1} [arg2] {arg3}|
+will both be parsed in the same way.
+
+The behavior of optional arguments \emph{after} any mandatory arguments is
+selectable. The standard settings will allow spaces here, and thus with
\begin{verbatim}
- \documentclass[twoside]{article}
- \usepackage[dvips]{graphics}
- \usepackage[dvips]{color}
+\NewDocumentCommand\foobar{m o}{ ... }
\end{verbatim}
-But because |\usepackage| allows more than one package to be listed,
-this can be shortened to:
+both |\foobar{arg1}[arg2]| and \verb*|\foobar{arg1} [arg2]| will find an
+optional argument. This can be changed by giving the modified |!| in the
+argument specification:
\begin{verbatim}
- \documentclass[twoside]{article}
- \usepackage[dvips]{graphics,color}
+\NewDocumentCommand\foobar{m !o}{ ... }
\end{verbatim}
-In addition, packages will also use each option given to
-the |\documentclass| command (if they know what to do with it), so you
-could also write:
+where \verb*|\foobar{arg1} [arg2]| will not find an optional argument.
+
+There is one subtlety here due to the difference in handling by \TeX{} of
+`control symbols', where the command name is made up of a single
+character, such as `\texttt{\textbackslash\textbackslash}'.
+Spaces are not ignored by \TeX{} here,
+and thus it is possible to require an optional argument directly follow such a
+command. The most common example is the use of \texttt{\textbackslash\textbackslash}
+in \pkg{amsmath} environments, which in the terms here would be defined as
\begin{verbatim}
- \documentclass[twoside,dvips]{article}
- \usepackage{graphics,color}
+\NewDocumentCommand\\{!s !o}{ ... }
\end{verbatim}
-Class and package options are covered in more detail in
-\emph{\LaTeXcomp} and in \emph{\clsguide}.
-
-\subsection{Standard classes}
-
-The following classes are distributed with \LaTeX:
-\begin{description}
-
-\item[article] The |article| class described in \emph{\LaTeXbook}.
-\item[book] The |book| class described in \emph{\LaTeXbook}.
-\item[report] The |report| class described in \emph{\LaTeXbook}.
-\item[letter] The |letter| class described in \emph{\LaTeXbook}.
-\item[slides] The |slides| class described in \emph{\LaTeXbook},
- formerly \SLiTeX.
-\item[proc] A document class for proceedings, based on |article|.
- Formerly the |proc| package.
-\item[ltxdoc] The document class for documenting the \LaTeX{}
- program, based on |article|.
-\item[ltxguide] The document class for \emph{\usrguide} and
- \emph{\clsguide}, based on |article|. The document you are reading
- now uses the |ltxguide| class. The layout for this class is likely
- to change in future releases of \LaTeX.
-\item[ltnews] The document class for the \emph{\LaTeX{} News}
- information sheet, based on |article|. The layout for this class
- is likely to change in future releases of \LaTeX.
-\item[minimal]
-\NEWfeature{1995/12/01}
- This class is the bare minimum (3 lines) that is needed in a
- \LaTeX\ class file. It just sets the text width and height, and
- defines |\normalsize|. It is principally intended for debugging
- and testing \LaTeX\ code in situations where you do not need to
- load a `full' class such as |article|. If, however, you are
- designing a completely new class that is aimed for documents with
- structure radically different from the structure supplied by the
- article class, then it may make sense to use this as a base and add
- to it code implementing the required structure, rather than
- starting from |article| and modifying the code there.
-\end{description}
-
-\subsection{Standard packages}
-\label{Sec:st-pack}
-
-The following packages are distributed with \LaTeX:
-\begin{description}
-\item[alltt]
-\NEWfeature{1994/12/01}
- This package provides the |alltt| environment, which is like
- the |verbatim| environment except that |\|, |{|, and |}|
- have their usual meanings. It is described in |alltt.dtx| and
- \emph{\LaTeXbook}.
-\item[doc] This is the basic package for typesetting the documentation
- of \LaTeX{} programs. It is described in |doc.dtx| and in
- \emph{\LaTeXcomp}.
-\item[exscale] This provides scaled versions of the math extension
- font. It is described in |exscale.dtx| and \emph{\LaTeXcomp}.
- \item[fontenc] This is used to specify which font encoding \LaTeX{}
- should use. It is described in |ltoutenc.dtx|.
-\item[graphpap]
-\NEWfeature{1994/12/01}
- This package defines the |\graphpaper| command; this
- can be used in a |picture| environment.
-\item[ifthen] Provides commands of the form `if\dots then do\dots
- otherwise do\dots'.
- It is described in |ifthen.dtx| and \emph{\LaTeXcomp}.
-\item[inputenc]
-\NEWfeature{1994/12/01}
- This is used to specify which input encoding \LaTeX{} should use.
- It is described in |inputenc.dtx|.
-\item[latexsym] \LaTeXe{} no longer loads the \LaTeX{} symbol font by
- default. To access it, you should use the |latexsym| package. It
- is described in |latexsym.dtx| and in \emph{\LaTeXcomp}; see also
- Section~\ref{Sec:problems}.
- \item[makeidx] This provides commands for producing indexes. It is
- described in \emph{\LaTeXbook} and in \emph{\LaTeXcomp}.
- \item[newlfont] This is used to emulate the font commands of
- \LaTeX~2.09 with the New Font Selection Scheme. It is described in
- \emph{\LaTeXcomp}.
- \item[oldlfont] This is used to emulate the font commands of
- \LaTeX~2.09. It is described in \emph{\LaTeXcomp}.
- \item[showidx]
- This causes the argument of each |\index| command to
- be printed on the page where it occurs.
- It is described in \emph{\LaTeXbook}.
- \item[syntonly] This is used to process a document without
- typesetting it. It is described in |syntonly.dtx| and in
- \emph{\LaTeXcomp}.
- \item[tracefnt] This allows you to control how much information about
- \LaTeX's font loading is displayed. It is described in
- \emph{\LaTeXcomp}.
-\end{description}
-
-\subsection{Related software}
-
-\NEWdescription{1998/12/01}
-The following software should be available from the same distributor
-as your copy of \LaTeXe. You should obtain at least the
-\textsf{graphics} and \textsf{tools} collections in order to have all
-the files described in \emph{\LaTeXbook}. The |amsmath| package (part
-of \textsf{amslatex} and formerly known as |amstex|)
-and \textsf{babel} are also mentioned in the list
-of `standard packages' in section C.5.2 of that book.
-\begin{description}
-\item[amslatex] Advanced mathematical typesetting from the American
- Mathematical Society. This includes the |amsmath| package; it
- provides many commands for typesetting mathematical formulas of
- higher complexity. It is produced and supported by the American
- Mathematical Society and it is described in \emph{\LaTeXcomp}.
-\item[babel] This package and related files support typesetting in
- many languages. It is described in \emph{\LaTeXcomp}.
-\item[cyrillic]
-\NEWfeature{1998/12/01}
- Everything you need (except the fonts themselves) for
- typesetting with Cyrillic fonts.
-\item[graphics] This includes the |graphics| package which
- provides support for the inclusion and transformation of graphics,
- including files produced by other software. Also included, is the
- |color| package which provides support for typesetting in colour.
- Both these packages are described in \emph{\LaTeXbook}.
-\item[psnfss] Everything you need (except the fonts themselves) for
- typesetting with a large range of Type~1 (PostScript) fonts.
-\item[tools] Miscellaneous packages written by the \LaTeX3
- project team.
-\end{description}
-These packages come with documentation and each of them is also
-described in at least one of the books \emph{\LaTeXcomp} and
-\emph{\LaTeXbook}.
-
-\subsubsection{Tools}
-
-This collection of packages includes, at least, the following (some
-files may have slightly different names on certain systems):
-
-\begin{description}
-\item[array]
- Extended versions of the environments |array|, |tabular|
- and |tabular*|, with many extra features.
-\item[calc]
-\NEWfeature{1996/12/01}
- Enables the use of certain algebraic notation when specifying
- values for lengths and counters.
-\item[dcolumn]
- Alignment on `decimal points' in tabular entries. Requires the
- |array| package.
-\item[delarray]
- Adds `large delimiters' around arrays. Requires |array|.
-\item[hhline]
- Finer control over horizontal rules in tables. Requires |array|.
-\item[longtable]
- Multi-page tables. (Does not require |array|, but it uses the
- extended features if both are loaded.)
-\item[tabularx]
- Defines a |tabularx| environment that is similar to |tabular*|
- but it modifies the column widths, rather than the inter-column
- space, to achieve the desired table width.
-\item[afterpage]
- Place text after the current page.
-\item[bm]
- Access bold math symbols.
-\item[enumerate]
- Extended version of the |enumerate| environment.
-\item[fontsmpl]
- Package and test file for producing `font samples'.
-\item[ftnright]
- Place all footnotes in the right-hand column in two-column mode.
-\item[indentfirst]
- Indent the first paragraph of sections, etc.
-\item[layout]
- Show the page layout defined by the current document class.
-\item[multicol]
- Typeset text in columns, with the length of the columns
- `balanced'.
-\item[rawfonts]
- Preload fonts using the old internal font names of \LaTeX~2.09.
- See Section~\ref{Sec:oldinternals}.
-\item[somedefs]
- Selective handling of package options. (Used by the rawfonts
- package.)
-\item[showkeys]
- Prints the `keys' used by |\label|, |\ref|, |\cite| etc.; useful
- whilst drafting.
-\item[theorem]
- Flexible declaration of `theorem-like' environments.
-\item[varioref]
- `Smart' handling of page references.
-\item[verbatim]
- Flexible extension of the verbatim environment.
-\item[xr]
- Cross reference other `external' documents.
-\item[xspace]
- `Smart space' command that helps you to avoid the common mistake
- of missing spaces after command names.
-\end{description}
-
-
-\section{Commands}
-\label{Sec:commands}
-
-This section describes the new commands available in \LaTeXe.
-They are covered in more detail in \emph{\LaTeXbook} and in
-\emph{\LaTeXcomp}.
-
-\subsection{Preamble commands}
-\label{Sec:pre}
-
-The changes to the preamble commands are intentionally designed to make
-\LaTeXe{} documents look clearly different from old documents. The
-commands should be used only before |\begin{document}|.
-\begin{decl}
-|\documentclass| \oarg{option-list} \arg{class-name}
- \oarg{release-date}
-\end{decl}
-
-This command replaces the
-\LaTeX~2.09 command |\documentstyle|.
-
-There must be exactly one |\documentclass| command in a document; and
-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.)
+\subsection{`Embellishments'}
+\label{sec:cmd:embellishment}
-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,
-as well as those in all following |\usepackage| commands (see
-below).
-
-The optional argument \m{release-date} can be used to specify the
-earliest desired release date of the class file; it should contain a
-date in the format \textsc{yyyy/mm/dd}. If a version of the class
-older than this date is found, a warning is issued.
-
-For example, to specify a two-column article, using a version of
-|article.cls| released after June 1994, you specify:
+The \texttt{E}-type argument allows one default value per test token. This is
+achieved by giving a list of defaults for each entry in the list, for example:
\begin{verbatim}
- \documentclass[twocolumn]{article}[1994/06/01]
+E{^_}{{UP}{DOWN}}
\end{verbatim}
+If the list of default values is \emph{shorter} than the list of test tokens,
+the special |-NoValue-| marker will be returned (as for the \texttt{e}-type
+argument). Thus for example
+\begin{verbatim}
+E{^_}{{UP}}
+\end{verbatim}
+has default \texttt{UP} for the |^| test character, but will return the
+|-NoValue-| marker as a default for |_|. This allows mixing of explicit
+defaults with testing for missing values.
-\begin{decl}
-|\documentstyle| \oarg{option-list} \arg{class-name}
-\end{decl}
-
-This command is still supported for compatibility with old files. It
-is essentially the same as |\documentclass| except that it invokes
-\emph{\LaTeX~2.09 compatibility mode}. It also causes any options in
-the \m{option-list} that are not processed by the class file to be
-loaded as packages after the class has been loaded. See
-Section~\ref{Sec:209} for more details on \LaTeX~2.09 compatibility
-mode.
-
-\begin{decl}
-|\usepackage| \oarg{option-list} \arg{package-name} \oarg{release-date}
-\end{decl}
-Any number of |\usepackage| commands is allowed. Each package file
-(as denoted by \m{package-name}) defines new elements (or modifies
-those defined in the class file loaded by the \m{class-name} argument
-of the |\documentclass| command). A package file thus extends the
-range of documents which can be processed.
+\subsection{Testing special values}
+\label{sec:cmd:special}
-The \m{option-list} argument can contain a list of options, each of
-which can modify the formatting of elements which are defined in this
-\m{package-name} file.
+Optional arguments make use of dedicated variables to return information about
+the nature of the argument received.
-As above, \m{release-date} can contain the earliest desired release
-date of the package file in the format \textsc{yyyy/mm/dd}; if an
-older version of the package is found, a warning is issued.
-For example, to load the |graphics| package for the |dvips| driver,
-using a version of |graphics.sty| released after June 1994, you write:
-\begin{verbatim}
- \usepackage[dvips]{graphics}[1994/06/01]
-\end{verbatim}
-Each package is loaded only once. If the same package is requested
-more than once, nothing happens in the second or following attempt
-unless the package has been requested with options that were not given
-in the original |\usepackage|. If such extra options are specified
-then an error message is produced. See Section~\ref{Sec:problems} how
-to resolve this problem.
-
-As well as processing the options given in the \m{option-list} of the
-|\usepackage| command, each package processes the
-\m{option-list} of the |\documentclass| command as well. This
-means that any option which should be processed by every package (to
-be precise, by every package that specifies an action for it) can be
-specified just once, in the |\documentclass| command, rather than
-being repeated for each package that needs it.
\begin{decl}
-|\listfiles|
+ |\IfNoValueTF| \arg{arg} \arg{true code} \arg{false code} \\
+ |\IfNoValueT| \arg{arg} \arg{true code} \\
+ |\IfNoValueF| \arg{arg} \arg{false code}
\end{decl}
+The \cs{IfNoValue(TF)} tests are used to check if \meta{argument} (|#1|,
+|#2|, \emph{etc.}) is the special |-NoValue-| marker. For example
+\begin{verbatim}
+\NewDocumentCommand\foo{o m}
+ {%
+ \IfNoValueTF {#1}%
+ {\DoSomethingJustWithMandatoryArgument{#2}}%
+ {\DoSomethingWithBothArguments{#1}{#2}}%
+ }
+\end{verbatim}
+will use a different internal function if the optional argument
+is given than if it is not present.
-If this command is placed in the preamble then a list of the files
-read in (as a result of processing the document) will be displayed
-on the terminal (and in the log file) at the end of the run. Where
-possible, a short description will also be produced.
+Note that three tests are available, depending on which outcome
+branches are required: \cs{IfNoValueTF}, \cs{IfNoValueT} and
+\cs{IfNoValueF}.
-\NEWdescription{1995/12/01}
-\emph{Warning}: this command will list only files which were read
-using \LaTeX{} commands such as |\input|\arg{file} or
-|\include|\arg{file}. If the file was read using the primitive \TeX{}
-syntax |\input |\emph{file} (without |{ }| braces around the file name)
-then it will not be listed; failure to use the \LaTeX{} form with the
-braces can cause more severe problems, possibly leading to overwriting
-important files, so \textbf{always put in the braces}.
+As the \cs{IfNoValue(TF)} tests are expandable, it is possible to
+test these values later, for example at the point of typesetting or
+in an expansion context.
+It is important to note that |-NoValue-| is constructed such that it
+will \emph{not} match the simple text input |-NoValue-|, i.e.~that
+\begin{verbatim}
+\IfNoValueTF{-NoValue-}
+\end{verbatim}
+will be logically \texttt{false}.
+When two optional arguments follow each other (a syntax we typically
+discourage), it can make sense to allow users of the command to
+specify only the second argument by providing an empty first
+argument.
+\NEWdescription{2022/06/01}
+Rather than testing separately for emptiness and for
+|-NoValue-| it is then best to use the argument type~|O| with an
+empty default value, and then test for emptiness using the
+conditional \cs{IfBlankTF} (described below) instead.
\begin{decl}
-|\setcounter{errorcontextlines}| \arg{num}
+ |\IfValueTF| \arg{arg} \arg{true code} \arg{false code} \\
+ |\IfValueT| \arg{arg} \arg{true code} \\
+ |\IfValueF| \arg{arg} \arg{false code}
\end{decl}
+The reverse form of the \cs{IfNoValue(TF)} tests are also available
+as \cs{IfValue(TF)}. The context will determine which logical
+form makes the most sense for a given code scenario.
-\TeX~3 introduced a new primitive |\errorcontextlines| which controls
-the format of error messages. \LaTeXe\ provides an interface to this
-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}|
+\begin{decl}[2022/06/01]
+ |\IfBlankTF| \arg{arg} \arg{true code} \arg{false code} \\
+ |\IfBlankT| \arg{arg} \arg{true code} \\
+ |\IfBlankF| \arg{arg} \arg{false code}
\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 \cs{IfNoValueTF} command chooses the \meta{true code} if the optional argument has not
+been used at all (and it returns the special \texttt{-NoValue-}
+marker), but not if it has been given an empty value. In contrast
+\cs{IfBlankTF} returns true if its argument is either truly empty or
+only contains one or more normal blanks.
+For example
+\begin{verbatim}
+\NewDocumentCommand\foo{m!o}{\par #1:
+ \IfNoValueTF{#2}
+ {No optional}%
+ {%
+ \IfBlankTF{#2}
+ {Blanks in or empty}%
+ {Real content in}%
+ }%
+ \space argument!}
+\foo{1}[bar] \foo{2}[ ] \foo{3}[] \foo{4}[\space] \foo{5} [x]
+\end{verbatim}
+results
+in the following output:
+\begin{quote}
+ \NewDocumentCommand\foo{m!o}{\par #1:
+ \IfNoValueTF{#2}{No optional}%
+ {\IfBlankTF{#2}{Blanks in or empty}%
+ {Real content in}}%
+ \space argument!}
+ \foo{1}[bar] \foo{2}[ ] \foo{3}[] \foo{4}[\space] \foo{5} [x]
+\end{quote}
-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.
+Note that the \cs{space} in (4) is considered real content---because it is
+a command and not a \enquote{space} character---even though it results
+in producing a space. You can also observe in (5) the effect of the
+\texttt{!} specifier, preventing the last \cs{foo}
+from interpreting \texttt{[x]} as its optional argument.
-\subsection{Document structure}
+\begin{decl}
+ |\BooleanFalse| \\
+ |\BooleanTrue|
+\end{decl}
+The \texttt{true} and \texttt{false} flags set when searching for
+an optional character (using \texttt{s} or \texttt{t\meta{char}}) have
+names which are accessible outside of code blocks.
-The |book| document class introduces new commands to indicate
-document structure.
\begin{decl}
-|\frontmatter| \\ |\mainmatter| \\ |\backmatter|
+ |\IfBooleanTF| \arg{arg} \arg{true code} \arg{false code} \\
+ |\IfBooleanT| \arg{arg} \arg{true code} \\
+ |\IfBooleanF| \arg{arg} \arg{false code}
\end{decl}
-These commands indicate the beginning of the front matter (title page,
-table of contents and prefaces), main matter (main text) and back
-matter (bibliography, indexes and colophon).
+Used to test if \meta{argument} (|#1|, |#2|, \emph{etc.}) is
+\cs{BooleanTrue} or \cs{BooleanFalse}. For example
+\begin{verbatim}
+\NewDocumentCommand\foo{sm}
+ {%
+ \IfBooleanTF {#1}%
+ {\DoSomethingWithStar{#2}}%
+ {\DoSomethingWithoutStar{#2}}%
+ }
+\end{verbatim}
+checks for a star as the first argument, then chooses the action to
+take based on this information.
+
+\subsection{Auto-converting to key--value format}
+\label{sec:cmd:keyval}
+
+Some document commands have a long history of accepting a `free text' optional
+argument, for example \cs{caption} and the sectioning commands \cs{section},
+etc. Introducing more sophisticated (keyval) options to these commands
+therefore needs a method to interpret the optional argument \emph{either} as
+free text \emph{or} as a series of keyvals. This needs to take place
+during argument grabbing as there is a need for careful treatment of
+braces to obtain the correct result.
+
+The \texttt{=} modifier is available to allow \pkg{ltcmd} to correctly
+implement this process. The modifier guarantees that the argument will be
+passed to further code as a series of keyvals. To do that, the \texttt{=}
+should be followed by an argument containing the default key name. This is used
+as the key in a key--value pair \emph{if} the `raw' argument does \emph{not}
+have the correct form to be interpreted as a set of keyvals.
+
+Taking \cs{caption} as an example, with the demonstration implementation
+\begin{verbatim}
+\DeclareDocumentCommand
+ \caption
+ {s ={short-text} +O{#3} +m}
+ {%
+ \showtokens{Grabbed arguments:^^J(#2)^^Jand^^J(#3)}%
+ }
+\end{verbatim}
+the default key name is \texttt{short-text}. When the command \cs{caption} is
+then used, if the optional argument is free text such as
+\begin{verbatim}
+\caption[Some short text]{A much longer and more detailed text for
+ demonstration purposes}
+\end{verbatim}
+then the output will be
+\begin{verbatim}
+Grabbed arguments:
+(short-text={Some short text})
+and
+(A much longer and more detailed text for demonstration purposes)
+\end{verbatim}
+On the other hand, if the caption is given with a keyval-form argument
+\begin{verbatim}
+\caption[label = cap:demo]%
+ {A much longer and more detailed text for demonstration purposes}
+\end{verbatim}
+then this will be respected
+\begin{verbatim}
+Grabbed arguments:
+(label = cap:demo)
+and
+(A much longer and more detailed text for demonstration purposes)
+\end{verbatim}
-\subsection{Definitions}
+Interpretation as keyval form is determined by the presence of \texttt{=}
+characters within the argument. Those in inline math mode (enclosed within
+\verb|$...$| or \verb|\(...\)|) are ignored. An argument can be forced to be
+read as keyvals by including an empty entry at the start
+\begin{verbatim}
+\caption[=,This is now a keyval]%
+% ...
+\caption[This is not $=$ keyval]%
+\end{verbatim}
-In \LaTeX, commands can have both mandatory and optional arguments,
-for example in:
+This empty entry is \emph{not} passed to the underlying code, so will not lead
+to issues with keyval parsers that do not allow an empty key name. Any text-mode
+\texttt{=} signs will need to be braced to avoid being misinterpreted: this
+is likely most conveniently handled by bracing the entire argument
\begin{verbatim}
- \documentclass[11pt]{article}
+\caption[{Not = to a keyval!}]%
+\end{verbatim}
+which will be passed correctly as
+\begin{verbatim}
+Grabbed arguments:
+(short-text = {Not = to a keyval!})
\end{verbatim}
-the |11pt| argument is optional, whereas the |article| class name is
-mandatory.
-In \LaTeX~2.09 users could define commands with arguments, but these
-had to be mandatory arguments. With \LaTeXe, users can now define
-commands and environments which also have one optional argument.
+\subsection{Argument processors}
+\label{sec:cmd:processors}
-\begin{decl}
-|\newcommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\
-|\newcommand*| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\
-|\renewcommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\
-|\renewcommand*| \arg{cmd} \oarg{num} \oarg{default} \arg{definition}
-\end{decl}
+Argument processor are applied to an argument \emph{after} it has been grabbed
+by the underlying system but before it is passed to \meta{code}. An argument
+processor can therefore be used to regularize input at an early stage, allowing
+the internal functions to be completely independent of input form. Processors
+are applied to user input and to default values for optional arguments, but
+\emph{not} to the special |-NoValue-| marker.
-These commands have a new, second, optional argument; this is used for
-defining commands which themselves take one optional argument. This
-new argument is best introduced by means of a simple (and hence not
-very practical) example:
+Each argument processor is specified by the syntax \texttt{>}\marg{processor}
+in the argument specification. Processors are applied from right to left, so
+that
\begin{verbatim}
- \newcommand{\example}[2][YYY]{Mandatory arg: #2;
- Optional arg: #1.}
+>{\ProcessorB} >{\ProcessorA} m
\end{verbatim}
-This defines |\example| to be a command with two arguments, referred
-to as |#1| and |#2| in the \arg{definition}---nothing new so far. But
-by adding a second optional argument to this |\newcommand| (the
-|[YYY]|) the first argument (|#1|) of the newly defined command
-|\example| is made optional with its default value being |YYY|.
+would apply \cs{ProcessorA} followed by \cs{ProcessorB} to the tokens grabbed
+by the \texttt{m} argument.
-Thus the usage of |\example| is either:
+\begin{decl}
+ |\SplitArgument| \arg{number} \arg{token(s)}
+\end{decl}
+This processor splits the argument given at each occurrence of the
+\meta{tokens} up to a maximum of \meta{number} tokens (thus
+dividing the input into $\text{\meta{number}} + 1$ parts).
+An error is given if too many \meta{tokens} are present in the
+input. The processed input is placed inside
+$\text{\meta{number}} + 1$ sets of braces for further use.
+If there are fewer than \arg{number} of \arg{tokens} in the argument
+then |-NoValue-| markers are added at the end of the processed
+argument.
\begin{verbatim}
- \example{BBB}
+\NewDocumentCommand \foo {>{\SplitArgument{2}{;}} m}
+ {\InternalFunctionOfThreeArguments#1}
\end{verbatim}
-which prints:
-\begin{quote}
- Mandatory arg: BBB;
- Optional arg: YYY.
-\end{quote}
-or:
+If only a single character \meta{token} is used for the split, any
+category code $13$ (active) character matching the \meta{token} will
+be replaced before the split takes place.
+Spaces are trimmed at each end of each item parsed.
+
+The \texttt{E} argument type is somewhat special, because with a single
+\texttt{E} in the command declaration you may end up with several
+arguments in a command (one formal argument per embellishment token).
+Therefore, when an argument processor is applied to an \texttt{E}-type
+argument, all the arguments pass through that processor before being fed
+to the \meta{code}. For example, this command
\begin{verbatim}
- \example[XXX]{AAA}
+\NewDocumentCommand \foo { >{\TrimSpaces} e{_^} }
+ { [#1](#2) }
\end{verbatim}
-which prints:
-\begin{quote}
- Mandatory arg: AAA;
- Optional arg: XXX.
-\end{quote}
-
-The default value of the optional argument is \texttt{YYY}.
-This value is specified as the \oarg{default} argument of the
-|\newcommand| that created |\example|.
+applies \cs{TrimSpaces} to both arguments.
-As another more useful example, the definition:
+\begin{decl}
+ |\SplitList| \arg{token(s)}
+\end{decl}
+This processor splits the argument given at each occurrence of the
+\meta{token(s)} where the number of items is not fixed. Each item is
+then wrapped in braces within |#1|. The result is that the
+processed argument can be further processed using a mapping function
+(see below).
\begin{verbatim}
- \newcommand{\seq}[2][n]{\lbrace #2_{0},\ldots,\,#2_{#1} \rbrace}
+\NewDocumentCommand \foo {>{\SplitList{;}} m}
+ {\MappingFunction#1}
\end{verbatim}
-means that the input |$\seq{a}$| produces
-the formula $\lbrace a_{0},\ldots,\,a_{n} \rbrace$,
-whereas the input |$\seq[k]{x}$| produces the formula
-$\lbrace x_{0},\ldots,\,x_{k} \rbrace$.
-
-In summary, the command:
-\begin{quote}
- |\newcommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition}
-\end{quote}
-defines \m{cmd} to be a command with \m{num} arguments, the first of
-which is optional and has default value \m{default}.
-
-Note that there can only be one optional argument but, as before,
-there can be up to nine arguments in total.
+If only a single character \meta{token} is used for the split, any
+category code $13$ (active) character matching the \meta{token} will
+be replaced before the split takes place.
+Spaces are trimmed at each end of each item parsed.
\begin{decl}
-|\newenvironment|
- \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def} \\
-|\newenvironment*|
- \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def} \\
-|\renewenvironment|
- \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def} \\
-|\renewenvironment*|
- \arg{cmd} \oarg{num} \oarg{default} \arg{beg-def} \arg{end-def}
+ |\ProcessList| \arg{list} \arg{function}
\end{decl}
-
-\LaTeXe\ also supports the creation of environments that have one
-optional argument. Thus the syntax of these two commands has
-been extended in the same way as that of |\newcommand|.
+To support \cs{SplitList}, the function \cs{ProcessList} is available
+to apply a \meta{function} to every entry in a \meta{list}. The
+\meta{function} should absorb one argument: the list entry. For example
+\begin{verbatim}
+\NewDocumentCommand \foo {>{\SplitList{;}} m}
+ {\ProcessList{#1}{\SomeDocumentCommand}}
+\end{verbatim}
\begin{decl}
-|\providecommand| \arg{cmd} \oarg{num} \oarg{default} \arg{definition} \\
-|\providecommand*| \arg{cmd} \oarg{num} \oarg{default} \arg{definition}
+ |\ReverseBoolean|
\end{decl}
-
-This takes the same arguments as |\newcommand|. If \m{cmd} is already
-defined then the existing definition is kept; but if it is currently
-undefined then the effect of |\providecommand| is to define \m{cmd}
-just as if |\newcommand| had been used.
-
-\NEWfeature{1994/12/01}
- All the above five `defining commands' now have \texttt{*}-forms that
- are usually the better form to use when defining commands with
- arguments, unless any of these arguments is intended to contain
- whole paragraphs of text. Moreover, if you ever do find yourself
- needing to use the non-star form then you should ask whether
- that argument would not better be treated as the contents of a
- suitably defined environment.
-
-\NEWfeature{1995/12/01}
- The commands produced by the above five `defining commands' are
- now robust.
-
-\subsection{Boxes}
-
-These next three commands for making LR-boxes all existed in
-\LaTeX~2.09. They have been enhanced in two ways.
+This processor reverses the logic of \cs{BooleanTrue} and
+\cs{BooleanFalse}, so that the example from earlier would become
+\begin{verbatim}
+\NewDocumentCommand\foo{>{\ReverseBoolean} s m}
+ {%
+ \IfBooleanTF#1%
+ {\DoSomethingWithoutStar{#2}}%
+ {\DoSomethingWithStar{#2}}%
+ }
+\end{verbatim}
\begin{decl}
-|\makebox| \oarg{width} \oarg{pos} \arg{text} \\
-|\framebox| \oarg{width} \oarg{pos} \arg{text} \\
-|\savebox| \arg{cmd} \oarg{width} \oarg{pos} \arg{text}
+ |\TrimSpaces|
\end{decl}
-
-One small but far-reaching change for \LaTeXe\ is that, within the
-\m{width} argument only, four special lengths can be used. These are
-all dimensions of the box that would be produced by using simply
-|\mbox|\arg{text}:
-\begin{itemize}
-\item [] |\height|\quad its height above the baseline;
-\item [] |\depth|\quad its depth below the baseline;
-\item [] |\totalheight|\quad the sum of |\height| and |\depth|;
-\item [] |\width|\quad its width.
-\end{itemize}
-Thus, to put `hello' in the centre of a box of twice its natural
-width, you would use:
+Removes any leading and trailing spaces (tokens with character code~$32$
+and category code~$10$) for the ends of the argument. Thus for example
+declaring a function
\begin{verbatim}
- \makebox[2\width]{hello}
+\NewDocumentCommand\foo {>{\TrimSpaces} m}
+ {\showtokens{#1}}
\end{verbatim}
-Or you could put \textit{f} into a square box, like
-this:
- \framebox{\makebox[\totalheight]{\itshape f\/}}
+and using it in a document as
+\begin{flushleft}
+ \verb= =\verb*=\foo{ hello world }=
+\end{flushleft}
+will show `\verb*=hello world=' at the terminal, with the space at each
+end removed. \cs{TrimSpaces} will remove multiple spaces from the ends of
+the input in cases where these have been included such that the standard
+\TeX{} conversion of multiple spaces to a single space does not apply.
+
+\subsection{Body of an environment}
+\label{sec:cmd:body}
+
+While environments |\begin|\marg{environment}\ \dots{}\,|\end|\marg{environment}
+are typically used in cases where the code implementing the \meta{environment}
+does not need to access the contents of the environment (its `body'),
+it is sometimes useful to have the body as a standard argument.
+
+This is achieved by ending the argument specification with~\texttt{b}, which is
+a dedicated argument type for this situation. For instance
\begin{verbatim}
- \framebox{\makebox[\totalheight]{\itshape f\/}}
+\NewDocumentEnvironment{twice} {O{\ttfamily} +b}
+ {#2#1#2} {}
+\begin{twice}[\itshape]
+ Hello world!
+\end{twice}
\end{verbatim}
-Note that it is the total width of the framed box, including the
-frame, which is set to |\totalheight|.
+typesets `Hello world!{\itshape Hello world!}'.
-The other change is a new possibility for \m{pos}: |s| has been added
-to |l| and |r|. If \m{pos} is |s| then the text is stretched the full
-length of the box, making use of any `rubber lengths' (including any
-inter-word spaces) in the contents of the box. If no such `rubber
-length' is present, an `underfull box' will probably be produced.
+The prefix |+| is used to allow multiple paragraphs in the environment's body.
+Argument processors can also be applied to \texttt{b}~arguments. By default,
+spaces are trimmed at both ends of the body: in the example there would
+otherwise be spaces coming from the ends the lines after |[\itshape]| and
+|world!|. Putting the prefix |!| before \texttt{b} suppresses space-trimming.
-\begin{decl}
-|\parbox| \oarg{pos} \oarg{height} \oarg{inner-pos} \arg{width}
- \arg{text} \\
-|\begin{minipage}|
- \oarg{pos} \oarg{height} \oarg{inner-pos} \arg{width}\\
-\m{text}\\
-|\end{minipage}|
-\end{decl}
+When \texttt{b} is used in the argument specification, the last
+argument of the environment declaration (e.g.,
+\cs{NewDocumentEnvironment}), which consists of an \meta{end code} to
+insert at |\end|\marg{environment}, is redundant since one can simply
+put that code at the end of the \meta{start code}. Nevertheless this
+(empty) \meta{end code} must be provided.
-As for the box commands above, |\height|, |\width|, etc.~may be used
-in the \oarg{height} argument to denote the natural dimensions of the
-box.
+Environments that use this feature can be nested.
-The \m{inner-pos} argument is new in \LaTeXe. It is the vertical
-equivalent to the \m{pos} argument for |\makebox|, etc, determining
-the position of \m{text} within the box. The \m{inner-pos} may be any
-one of |t|, |b|, |c|, or |s|, denoting top, bottom, centered, or
-`stretched' alignment respectively. When the \m{inner-pos} argument
-is not specified, \LaTeX\ gives it same value as \m{pos} (this could be
-the latter's default value).
+\subsection{Fully-expandable document commands}
+Document commands created using \cs{NewDocumentCommand}, etc.\@, are normally
+created so that they do not expand unexpectedly. This is done using engine
+features, so is more powerful than \LaTeXe{}'s \cs{protect} mechanism. There
+are \emph{very rare} occasion when it may be useful to create functions using a
+expansion-only grabber. This imposes a number of restrictions on the
+nature of the arguments accepted by a function, and the code it implements.
+This facility should only be used when \emph{absolutely necessary}.
\begin{decl}
-|\begin{lrbox}| \arg{cmd}\\
-\m{text}\\
-|\end{lrbox}|
+ |\NewExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
+ |\RenewExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
+ |\ProvideExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
+ |\DeclareExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code}
\end{decl}
+This family of commands is used to create a document-level \meta{function},
+which will grab its arguments in a fully-expandable manner. The
+argument specification for the function is given by \meta{arg spec},
+and the function will execute \meta{code}. In general, \meta{code} will
+also be fully expandable, although it is possible that this will
+not be the case (for example, a function for use in a table might
+expand so that \cs{omit} is the first non-expandable non-space token).
+
+Parsing arguments by pure expansion imposes a number of restrictions on
+both the type of arguments that can be read and the error checking
+available:
+\begin{itemize}
+ \item The last argument (if any are present) must be one of the
+ mandatory types \texttt{m}, \texttt{r} or \texttt{R}.
+ \item The `verbatim' argument type \texttt{v} is not available.
+ \item Argument processors (using \texttt{>}) are not available.
+ \item It is not possible to differentiate between, for example
+ |\foo[| and |\foo{[}|: in both cases the \texttt{[} will be
+ interpreted as the start of an optional argument. As a
+ result, checking for optional arguments is less robust than
+ in the standard version.
+\end{itemize}
-This is an environment which does not directly print anything.
-Its effect is to save the typeset \m{text} in the bin \m{cmd}. Thus
-it is like |\sbox| \arg{cmd} \arg{text}, except that any white space
-before or after the contents \m{text} is ignored.
-
-This is very useful as it enables both the |\verb| command and the
-\texttt{verbatim} environment to be used within \m{text}.
-
-It also makes it possible to define, for example, a `framed box'
-environment. This is done by first using this environment to save
-some text in a bin \m{cmd} and then calling
-|\fbox{\usebox{|\m{cmd}|}}|.
-
-The following example defines an environment, called |fmpage|, that is
-a framed version of |minipage|.
+\subsection{Details about argument delimiters}
+
+In normal (non-expandable) commands, the delimited types look for the
+initial delimiter by peeking ahead (using \pkg{expl3}'s |\peek_...|
+functions) looking for the delimiter token. The token has to have the
+same meaning and `shape' of the token defined as delimiter.
+There are three possible cases of delimiters: character tokens, control
+sequence tokens, and active character tokens. For all practical purposes
+of this description, active character tokens will behave exactly as
+control sequence tokens.
+
+\subsubsection{Character tokens}
+
+A character token is characterized by its character code, and its meaning
+is the category code~(|\catcode|). When a command is defined, the meaning
+of the character token is fixed into the definition of the command and
+cannot change. A command will correctly see an argument delimiter if
+the open delimiter has the same character and category codes as at the
+time of the definition. For example in:
\begin{verbatim}
- \newsavebox{\fmbox}
- \newenvironment{fmpage}[1]
- {\begin{lrbox}{\fmbox}\begin{minipage}{#1}}
- {\end{minipage}\end{lrbox}\fbox{\usebox{\fmbox}}}
+\NewDocumentCommand { \foobar } { D<>{default} } {(#1)}
+\foobar <hello> \par
+\char_set_catcode_letter:N <
+\foobar <hello>
\end{verbatim}
+the output would be:
+\begin{verbatim}
+(hello)
+(default)<hello>
+\end{verbatim}
+as the open-delimiter |<| changed in meaning between the two calls to
+|\foobar|, so the second one doesn't see the |<| as a valid delimiter.
+Commands assume that if a valid open-delimiter was found, a matching
+close-delimiter will also be there. If it is not (either by being
+omitted or by changing in meaning), a low-level \TeX{} error is raised
+and the command call is aborted.
+
+\subsubsection{Control sequence tokens}
+
+A control sequence (or control character) token is characterized by is
+its name, and its meaning is its definition.
+A token cannot have two different meanings at the same time.
+When a control sequence is defined as delimiter in a command,
+it will be detected as delimiter whenever the control sequence name
+is found in the document regardless of its current definition.
+For example in:
+\begin{verbatim}
+\cs_set:Npn \x { abc }
+\NewDocumentCommand { \foobar } { D\x\y{default} } {(#1)}
+\foobar \x hello\y \par
+\cs_set:Npn \x { def }
+\foobar \x hello\y
+\end{verbatim}
+the output would be:
+\begin{verbatim}
+(hello)
+(hello)
+\end{verbatim}
+with both calls to the command seeing the delimiter |\x|.
-
-\subsection{Measuring things}
-
-The first of these next commands was in \LaTeX~2.09. The two new
-commands are the obvious analogues.
+\subsection{Creating new argument processors}
\begin{decl}
-|\settowidth| \arg{length-cmd} \arg{lr text} \\
-|\settoheight| \arg{length-cmd} \arg{lr text} \\
-|\settodepth| \arg{length-cmd} \arg{lr text}
+ |\ProcessedArgument|
\end{decl}
+Argument processors allow manipulation of a grabbed argument before it is
+passed to the underlying code. New processor implementations may be created
+as functions which take one trailing argument, and which leave their result in
+the \cs{ProcessedArgument} variable. For example, \cs{ReverseBoolean} is
+defined as
+\begin{verbatim}
+\ExplSyntaxOn
+\cs_new_protected:Npn \ReverseBoolean #1
+ {
+ \bool_if:NTF #1
+ { \tl_set:Nn \ProcessedArgument { \c_false_bool } }
+ { \tl_set:Nn \ProcessedArgument { \c_true_bool } }
+ }
+\ExplSyntaxOff
+\end{verbatim}
+[As an aside: the code is written in \pkg{expl3}, so we don't have to
+ worry about spaces creeping into the definition.]
-\subsection{Line endings}
+\subsection{Access to the argument specification}
-\NEWdescription{1994/12/01}
-The command |\\|, which is used to indicate a line-end in various
-places, is now a robust command when used within arguments such as
-section titles.
+The argument specifications for document commands and environments are
+available for examination and use.
-Also, because it is often necessary to distinguish which type of line
-is to be ended, we have introduced the following new command; it
-has the same argument syntax as that of |\\|.
-\begin{decl}[1994/12/01]
-|\tabularnewline| \oarg{vertical-space}
+\begin{decl}
+ |\GetDocumentCommandArgSpec| \arg{function} \\
+ |\GetDocumentEnvironmentArgSpec| \arg{environment}
\end{decl}
-One example of its use is when the text in the last
-column of a |tabular| environment is set with |\raggedright|; then
-|\tabularnewline| can be used to indicate the end of a row of the
-|tabular|, whilst |\\| will indicate the end of a line of text in a
-paragraph within the column. This command can be used in the |array|
-environment as well as |tabular|, and also the extended versions of
-these environments offered by the \textsf{array} and \textsf{longtable}
-packages in the tools collection.
-
-\subsection{Controlling page breaks}
-
-Sometimes it is necessary, for a final version of a document, to
-`help' \LaTeX\ break the pages in the best way. \LaTeX~2.09 had a
-variety of commands for this situation: |\clearpage|, |\pagebreak|
-etc. \LaTeXe\ provides, in addition, commands which can produce
-longer pages as well as shorter ones.
-
+These functions transfer the current argument specification for the
+requested \meta{function} or \meta{environment} into the token list
+variable \cs{ArgumentSpecification}. If the \meta{function} or
+\meta{environment} has no known argument specification then an error
+is issued. The assignment to \cs{ArgumentSpecification} is local to
+the current \TeX{} group.
\begin{decl}
-|\enlargethispage| \arg{size} \\
-|\enlargethispage*| \arg{size}
+ |\ShowDocumentCommandArgSpec| \arg{function} \\
+ |\ShowDocumentEnvironmentArgSpec| \arg{environment}
\end{decl}
+These functions show the current argument specification for the
+requested \meta{function} or \meta{environment} at the terminal. If
+the \meta{function} or \meta{environment} has no known argument
+specification then an error is issued.
-These commands increase the height of a page (from its normal value of
-|\textheight|) by the specified amount \m{size}, a rigid length. This
-change affects \emph{only} the current page.
-This can be used, for example, to allow an extra line to be fitted
-onto the page or, with a negative length, to produce a page
-shorter than normal.
-The star form also shrinks any vertical white space on the page as
-much as possible, so as to fit the maximum amount of text on the
-page.
+\section{Copying and showing (robust) commands}
-\NEWdescription{1995/12/01}
-These commands do not change the position of the footer text; thus, if
-a page is lengthened too far, the main text may overprint the footer.
+If you want to (slightly) alter an existing command you may want to
+save the current definition under a new name and then use that in a
+new definition. If the existing command is robust, then the old trick of
+using the low-level \cs{let} for this doesn't work, because it only
+copies the top-level definition, but not the part that actually does
+the work. As most \LaTeX{} commands are nowadays robust, \LaTeX{}
+now offers some high-level declarations for this instead.
-\subsection{Floats}
-
-There is a new command, |\suppressfloats|, and a new `float
-specifier'. These will enable people to gain better
-control of \LaTeX's float placement algorithm.
+However, please note that it is usually better to make use of
+available hooks (e.g., the generic command or environment hooks),
+instead of copying the current definition and thereby freezing it; see
+the hook management documentation \texttt{lthooks-doc.pdf} for
+details.
\begin{decl}
-|\suppressfloats| \oarg{placement}
+ |\NewCommandCopy| \arg{cmd} \arg{existing-cmd} \\
+ |\RenewCommandCopy| \arg{cmd} \arg{existing-cmd} \\
+ |\DeclareCommandCopy| \arg{cmd} \arg{existing-cmd}
\end{decl}
-This command stops any further floating environments from being placed
-on the current page. With an optional argument, which should be either
-|t| or |b| (not both), this restriction applies only to putting
-further floats at the top or at the bottom. Any floats which would
-normally be placed on this page are placed on the next page instead.
-
-\begin{decl}
-The extra float location specifier: \ \texttt{!}
-\end{decl}
-
-This can be used, along with at least one of \texttt{h}, \texttt{t},
-\texttt{b} and \texttt{p}, in the location optional argument of a
-float.
-
-If a \texttt{!} is present then, just for this particular float,
-whenever it is processed by the float mechanism the following are
-ignored:
-\begin{itemize}
-\item all restrictions on the number of floats which can appear;
-\item all explicit restrictions on the amount of space on a text page
-which may be occupied by floats or must be occupied by text.
-\end{itemize}
-The mechanism will, however, still attempt to ensure that pages are
-not overfull and that floats of the same type are printed in the
-correct order.
+This copies the definition of \meta{existing-cmd} to \meta{cmd}. After
+this \meta{existing-cmd} can be redefined and \meta{cmd}
+still works! This allows you to then provide a new definition for
+\meta{existing-cmd} that makes use of \meta{cmd} (i.e., of its old
+definition). For example, after
+\begin{verbatim}
+\NewCommandCopy\LaTeXorig\LaTeX
+\RenewDocumentCommand\LaTeX{}{\textcolor{blue}{\LaTeXorig}}
+\end{verbatim}
+all \LaTeX{} logos generated with \cs{LaTeX} will come out in blue
+(assuming you have a color package loaded).
-Note that its presence has no effect on the production of float pages.
+The differences between \cs{New...} and \cs{Renew...} are as
+elsewhere: i.e., you get an error depending on whether or not
+\meta{cmd} already exists, or in case of \cs{Declare...} it is copied
+regardless. Note that there is no \cs{Provide...} declaration, because
+that would be of limited value.
-A \texttt{!} specifier overrides the effect of any |\suppressfloats|
-command for this particular float.
-\subsection{Font changing: text}
+If the \meta{cmd} or \meta{existing-cmd} can't be provided as a single
+token but need \enquote{constructing}, you can use \cs{ExpandArgs}
+as explained in
+Section~\ref{sec:preconstructing-csnames}.
-The font selection scheme used in \LaTeXe{} differs a lot from that
-used in \LaTeX~2.09. In this section, we give a brief description of
-the new commands. A more detailed description with examples is given
-in \emph{\LaTeXcomp}, and the interface for class- and package-writers
-is described in \emph{\fntguide}.
-\begin{decl}
-|\normalfont|\\
-|\rmfamily|\\
-|\sffamily|\\
-|\ttfamily|\\
-|\mdseries|\\
-|\bfseries|\\
-|\upshape|\\
-|\itshape|\\
-|\slshape|\\
-|\scshape|
-\end{decl}
-These are font commands whose use is the same as the commands |\rm|,
-|\bf|, etc. The difference is that each command changes just one
-attribute of the font (the attribute changed is part of the name).
-One result of this is that, for example, |\bfseries\itshape| produces
-both a change of series and a change of shape, to give a bold italic
-font.
\begin{decl}
-|\textnormal|\arg{text}\\
-|\textrm|\arg{text}\\
-|\textsf|\arg{text}\\
-|\texttt|\arg{text}\\
-|\textmd|\arg{text}\\
-|\textbf|\arg{text}\\
-|\textup|\arg{text}\\
-|\textit|\arg{text}\\
-|\textsl|\arg{text}\\
-|\textsc|\arg{text}\\
-|\emph|\arg{text}
+ |\ShowCommand| \arg{cmd}
\end{decl}
-These are one-argument commands; they take as an argument the
-text which is to be typeset in the particular font. They also
-automatically insert italic corrections where appropriate; if you do
-not like the result, you can add an italic correction with |\/| or
-remove it with |\nocorr|. The |\nocorr| should always be the first or
-last thing within the \arg{text} argument.
-
-\subsection{Font changing: math}
-
-Most of the fonts used within math mode do not need to be explicitly
-invoked; but to use letters from a range of fonts, the following
-class of commands is provided.
+This displays the meaning of the \meta{cmd} on the terminal and then
+stops (just like the primitive \cs{show}). The difference is that it
+correctly shows the meaning of more complex commands, e.g., in case of
+robust commands it displays not only the top-level definition but
+also the actual payload code and in case of commands declared with
+\cs{NewDocumentCommand}, etc.\ it also gives you detailed information
+about the argument signature.
-\begin{decl}
-|\mathrm| \arg{letters}\\
-|\mathnormal| \arg{letters}\\
-|\mathcal| \arg{letters}\\
-|\mathbf| \arg{letters}\\
-|\mathsf| \arg{letters}\\
-|\mathtt| \arg{letters}\\
-|\mathit| \arg{letters}
-\end{decl}
-These are also one-argument commands which take as an argument the
-letters which are to be typeset in the particular font. The argument
-is processed in math mode so spaces within it will be ignored. Only
-letters, digits and accents have their font changed, for example
-|$\mathbf{\tilde A \times 1}$| produces $\mathbf{\tilde A \times 1}$.
+\section[Preconstructing command names \\ (or otherwise expanding arguments)]
+ {Preconstructing command names (or otherwise expanding arguments)}
+\label{sec:preconstructing-csnames}
-\subsection{Ensuring math mode}
+When declaring new commands with \cs{NewDocumentCommand} or
+\cs{NewCommandCopy} or similar, it is sometimes necessary to
+``construct'' the csname. As a general mechanism the L3 programming
+layer has \cs{exp_args:N...} for this, but there is no mechanism for
+it if \cs{ExplSyntaxOn} is not active (and mixing programming and user
+interface level commands is not a good approach anyhow). We therefore
+offer a mechanism to access this ability using CamelCase naming.
\begin{decl}
-|\ensuremath| \arg{math commands}
+ |\UseName| \arg{string} \\
+ |\ExpandArgs| \arg{spec} \arg{cmd} \arg{arg1} \dots
\end{decl}
-In \LaTeX~2.09, if you wanted a command to work both in math mode and
-in text mode, the suggested method was to define something like:
+\cs{UseName} turns the \meta{string} directly into a csname and
+then executes it: this is equivalent to the long-standing
+\LaTeXe{} internal command \cs{@nameuse}, or the L3 programming
+equivalent \cs{use:c}. \cs{ExpandArgs} takes a \meta{spec} which
+describes how to expand the \meta{arguments}, carries out these
+operations then executes the \meta{cmd}. The \meta{spec} uses
+the descriptions offered by the L3 programming layer, and the
+relevant \cs{exp_args:N...} function must exist. Common cases will
+have a \meta{spec} of \texttt{c}, \texttt{cc} or \texttt{Nc}: see below.
+
+As an example, the following declaration provides a method to generate
+copyedit commands:
\begin{verbatim}
- \newcommand{\Gp}{\mbox{$G_p$}}
+\NewDocumentCommand\newcopyedit{mO{red}}
+ {%
+ \newcounter{todo#1}%
+ \ExpandArgs{c}\NewDocumentCommand{#1}{s m}%
+ {%
+ \stepcounter{todo#1}%
+ \IfBooleanTF {##1}%
+ {\todo[color=#2!10]{\UseName{thetodo#1}: ##2}}%
+ {\todo[inline,color=#2!10]{\UseName{thetodo#1}: ##2}}%
+ }%
+ }
\end{verbatim}
-Unfortunately, the |\mbox| stops |\Gp| changing size correctly in (for
-instance) subscripts or a fraction.
+Given that declaration you can then write
+\verb/\newcopyedit{note}[blue]/ which defines the command \cs{note}
+and the corresponding counter for you.
-In \LaTeXe{} you can define it thus:
+A second example is to copy a command by string name using
+\cs{NewCommandCopy}: here we might need to construct both command
+names.
\begin{verbatim}
- \newcommand{\Gp}{\ensuremath{G_p}}
+\NewDocumentCommand\savebyname{m}
+ {\ExpandArgs{cc}\NewCommandCopy{saved#1}{#1}}
\end{verbatim}
-Now |\Gp| will work correctly in all contexts.
-
-This is because the |\ensuremath| does nothing, producing simply
-|G_p|, when |\Gp| is used within math mode; but it ensures that math
-mode is entered (and exited) as required when |\Gp| is used in text
-mode.
-
-
-\subsection{Setting text superscripts}
-\begin{decl}
-|\textsuperscript| \arg{text}
-\end{decl}
-
-\NEWfeature{1995/06/01} In \LaTeX~2.09 textual superscripts such as
-footnote markers were produced by internally entering math mode and
-typesetting the number as a math superscript. This normally looked
-fine since the digits in math fonts are the same as those in text
-fonts when Computer Modern fonts are used. But when a different
-document font (such as Times) is selected, the results look rather
-strange. For this reason the command |\textsuperscript| has been
-introduced which typesets its argument in the current text font, in a
-superscript position and in the correct size.
-
-\subsection{Text commands: all encodings}
-
-\NEWdescription{1994/12/01}
- One of the main differences between \LaTeXe{} and \LaTeX~2.09 is
- that \LaTeXe{} can deal with fonts in arbitrary \emph{encodings}.
- (A font encoding is the sequence of characters in the font---for
- example a Cyrillic font would have a different encoding from a Greek
- font.)
-
- The two major font encodings that are used for Latin languages such
- as English or German are |OT1| (Donald Knuth's 7-bit encoding, which
- has been used during most of \TeX's lifetime) and |T1| (the new
- 8-bit `Cork' encoding).
-
- \LaTeX~2.09 only supported the |OT1| encoding, whereas \LaTeXe{} has
- support for both |OT1| and |T1| built-in. The next section will
- cover the new commands which are available if you have |T1|-encoded
- fonts. This section describes new commands which are available in
- all encodings.
-
- Most of these commands provide characters which were available in
- \LaTeX~2.09 already. For example |\textemdash| gives an `em dash',
- which was available in \LaTeX~2.09 by typing |---|. However, some
- fonts (for example a Greek font) may not have the |---| ligature,
- but you will still be able to access an em dash by typing
- |\textemdash|.
-
-\begin{decl}[1994/12/01]
- |\r{<text>}|
-\end{decl}
- This command gives a `ring' accent, for example `\r{o}' can be typed
- |\r{o}|.
-
-\begin{decl}[1994/12/01]
- |\SS|
-\end{decl}
- This command produces a German `SS', that is a capital `\ss'. This
- letter can hyphenate differently from `SS', so is needed for entering
- all-caps German.
-
-\begin{decl}[1994/12/01]
- |\textcircled{<text>}|
-\end{decl}
- This command is used to build `circled characters' such as
- |\copyright|. For example |\textcircled{a}| produces
- \textcircled{a}.
-
-\begin{decl}[1994/12/01]
- |\textcompwordmark|
-\end{decl}
- This command is used to separate letters which would normally
- ligature. For example `f\textcompwordmark i' is produced with
- |f\textcompwordmark i|. Note that the `f' and `i' have not
- ligatured to produce `fi'. This is rarely useful in English
- (`shelf\textcompwordmark ful' is a rare example of where it might be
- used) but is used in languages such as German.
-
-\begin{decl}[1994/12/01]
- |\textvisiblespace|
-\end{decl}
- This command produces a `visible space' character
- `\textvisiblespace'. This is sometimes used in computer listings,
- for example `type \textsf{hello\textvisiblespace world}'.
-
-\begin{decl}[1994/12/01]
- |\textemdash|
- |\textendash|
- |\textexclamdown|
- |\textquestiondown| \\
- |\textquotedblleft|
- |\textquotedblright|
- |\textquoteleft|
- |\textquoteright|
-\end{decl}
- These commands produce characters which would otherwise be
- accessed via ligatures:
- \begin{center}
- \begin{tabular}{ccl}
- \emph{ligature} & \emph{character} & \emph{command} \\
- |---| & --- & |\textemdash| \\
- |--| & -- & |\textendash| \\
- |!`| & !` & |\textexclamdown| \\
- |?`| & ?` & |\textquestiondown| \\
- |``| & `` & |\textquotedblleft| \\
- |''| & '' & |\textquotedblright| \\
- |`| & ` & |\textquoteleft| \\
- |'| & ' & |\textquoteright|
- \end{tabular}
- \end{center}
- The reason for making these characters directly accessible is so
- that they will work in encodings which do not have these characters.
-
-\begin{decl}[1994/12/01]
- |\textbullet|
- |\textperiodcentered|
-\end{decl}
- These commands allow access to characters which were previously only
- available in math mode:
- \begin{center}
- \begin{tabular}{lcl}
- \emph{math command} & \emph{character} & \emph{text command} \\
- |\bullet| & $\bullet$ & |\textbullet| \\
- |\cdot| & $\cdot$ & |\textperiodcentered|
- \end{tabular}
- \end{center}
-
-\begin{decl}[1995/12/01]
- |\textbackslash|
- |\textbar|
- |\textless|
- |\textgreater|
-\end{decl}
- These commands allow access to ASCII characters which were
- only available in verbatim or math mode:
- \begin{center}
- \begin{tabular}{lcl}
- \emph{math command} & \emph{character} & \emph{text command} \\
- |\backslash| & $\backslash$ & |\textbackslash| \\
- |\mid| & $\mid$ & |\textbar| \\
- |<<| & $<$ & |\textless| \\
- |>>| & $>$ & |\textgreater|
- \end{tabular}
- \end{center}
-
-\begin{decl}[1995/12/01]
- |\textasciicircum|
- |\textasciitilde|
-\end{decl}
- These commands allow access to ASCII characters which were
- previously only available in verbatim:
- \begin{center}
- \begin{tabular}{cl}
- \emph{verbatim} & \emph{text command} \\
- |^| & |\textasciicircum| \\
- |~| & |\textasciitilde|
- \end{tabular}
- \end{center}
-
-\begin{decl}[1995/12/01]
- |\textregistered|
- |\texttrademark|
-\end{decl}
- These commands provide the `registered trademark' (R) and
- `trademark' (TM) symbols.
-
-\subsection{Text commands: the T1 encoding}
-
-\NEWdescription{1994/12/01}
- The |OT1| font encoding is fine for typesetting in English, but has
- problems when typesetting other languages. The |T1| encoding solves
- some of these problems, by providing extra characters (such as `eth'
- and `thorn'), and it allows words containing accented letters to be
- hyphenated (as long as you have a package like |babel| which allows
- for non-American hyphenation).
-
- This section describes the commands you can use if you have the |T1|
- fonts. To use them, you need to get the `ec fonts', or the
- |T1|-encoded PostScript fonts, as used by \textsf{psnfss}.
- All these fonts are
- available by anonymous ftp in the Comprehensive \TeX{} Archive, and
- are also available on the CD-ROMs \emph{4all \TeX} and
- \emph{\TeX{} Live} (both available from the \TeX{} Users Group).
-
- You can then select the |T1| fonts by saying:
+In the \meta{spec} each \texttt{c} stands for one argument that is
+turned into a `\texttt{c}'ommand. An \texttt{n} represents a
+`\texttt{n}'ormal argument that is not altered and \texttt{N} stands for
+a `\texttt{N}'ormal argument which is also left unchanged, but one
+consisting only of a single token (and usually unbraced). Thus, to
+construct a command from a string only for the second argument of
+\cs{NewCommandCopy} you would write
\begin{verbatim}
- \usepackage[T1]{fontenc}
+\ExpandArgs{Nc}\NewCommandCopy\mysectionctr{c@section}
\end{verbatim}
- This will allow you to use the commands in this section.
+There are several other single letters supported in the L3 programming
+layer that \emph{could} be used in the \meta{spec} to manipulate
+arguments in other ways. If you are interested, take a look at the
+\enquote{Argument expansion} section in the L3 programming layer
+documentation in \texttt{interface3.pdf}.
- \emph{Note:} Since this document must be processable on any site
- running an up-to-date \LaTeX, it does not contain any characters
- that are present only in |T1|-encoded fonts. This means that this
- document cannot show you what these glyphs look like! If you want
- to see them then run \LaTeX{} on the document |fontsmpl| and
- respond `|cmr|' when it prompts you for a family name.
-\begin{decl}[1994/12/01]
- |\k{<text>}|
-\end{decl}
- This command produces an `ogonek' accent.
-
-\begin{decl}[1994/12/01]
- |\DH|
- |\DJ|
- |\NG|
- |\TH|
- |\dh|
- |\dj|
- |\ng|
- |\th|
-\end{decl}
- These commands produce characters `eth', `dbar', `eng', and `thorn'.
-
-\begin{decl}[1994/12/01]
- |\guillemotleft|
- |\guillemotright|
- |\guilsinglleft|
- |\guilsinglright| \\
- |\quotedblbase|
- |\quotesinglbase|
- |\textquotedbl|
-\end{decl}
- % A local hack (could be improved):
- \newcommand{\fauxguillemet}[1]{$\vcenter{\hbox{$\scriptscriptstyle#1$}}$}
- These commands produce various sorts of quotation mark.
- Rough representations of them are:
- \fauxguillemet\ll a\fauxguillemet\gg{}
- \fauxguillemet<a\fauxguillemet>
- ,\kern -0.1em,\kern 0.05em a\kern -0.05em``
- ,\kern 0.05em a\kern -0.05em` and |"|a|"|.
-
-\NEWdescription{2001/06/01}
- There are therefore some extra short-form ligatures available for
- use in documents that will only be used with |T1|-encoded fonts.
-
- The guillemets |\guillemotleft| and |\guillemotright|%
- \footnote{We apologise once again for maintaining Adobe's
- enormous solipsism~(sic) of confusing a diving bird with
- punctuation marks!}
- can be obtained by typing |<<<<| and |>>>>| and |\quotedblbase|
- by typing |,,|\,.
-
- Also, unlike the unexpected results with
- |OT1|-encoded fonts, |<<| and |>>| will produce \textless{} and
- \textgreater{}.
-
- Note also that the single character |"| will no longer produce ''
- but rather |\textquotedbl|.
-
-\subsection{Logos}
-\begin{decl}
-|\LaTeX|\\
-|\LaTeXe|
-\end{decl}
+\section{Expandable floating point (and other) calculations}
-|\LaTeX| (producing `\LaTeX') is still the `main' logo command,
-but if you need to refer to the new features, you can write
-|\LaTeXe| (producing `\LaTeXe').
+The \LaTeX3 programming layer which is part of the format offers a
+rich interface to manipulate floating point variables and values. To
+allow for (simpler) applications to use this on document-level or in
+packages otherwise not making use of the L3 programming layer a few
+interface commands are made available.
-\subsection{Picture commands}
\begin{decl}
- |\qbezier[<N>](<AX>,<AY>)(<BX>,<BY>)(<CX>,<CY>)| \\
- | \bezier{<N>}(<AX>,<AY>)(<BX>,<BY>)(<CX>,<CY>)|
-\end{decl}
-The |\qbezier| command can be used in |picture| mode to draw a
-quadratic Bezier curve from position |(<AX>,<AY>)| to |(<CX>,<CY>)| with
-control point |(<BX>,<BY>)|. The optional argument \m{N} gives the
-number of points on the curve.
-
-For example, the diagram:
-\begin{center}
- \begin{picture}(50,50)
- \thicklines
- \qbezier(0,0)(0,50)(50,50)
- \qbezier[20](0,0)(50,0)(50,50)
- \thinlines
- \put(0,0){\line(1,1){50}}
- \end{picture}
-\end{center}
-is drawn with:
-\begin{verbatim}
- \begin{picture}(50,50)
- \thicklines
- \qbezier(0,0)(0,50)(50,50)
- \qbezier[20](0,0)(50,0)(50,50)
- \thinlines
- \put(0,0){\line(1,1){50}}
- \end{picture}
-\end{verbatim}
-The |\bezier| command is the same, except that the argument \m{N} is not
-optional. It is provided for compatibility with the \LaTeX~2.09
-|bezier| document style option.
-
-\subsection{Old commands}
-
-\begin{decl}
-|\samepage|
+ |\fpeval| \arg{floating point expression}
\end{decl}
-The |\samepage| command still exists but is no longer being
-maintained.
-This is because it only ever worked erratically; it does not
-guarantee that there will be no page-breaks within its scope; and
-it can cause footnotes and marginals to be wrongly placed.
+The expandable command \cs{fpeval} takes as its argument a floating
+point expression and produces a result using the normal rules of
+mathematics. As this command is expandable it can be used where \TeX{}
+requires a number and for example within a low-level \cs{edef} operation
+to give a purely numerical result.
-We recommend using |\enlargethispage| in conjunction with page-break
-commands such as |\newpage| and |\pagebreak| to help control page
-breaks.
-\begin{decl}
- |\SLiTeX|
-\end{decl}
-Since \SLiTeX{} no longer exists, the logo is no longer defined in the
-\LaTeX{} kernel. A suitable replacement is |\textsc{Sli\TeX}|. The
-\SLiTeX{} logo is defined in \LaTeX~2.09 compatibility mode.
-
-\begin{decl}
-|\mho| |\Join| |\Box| |\Diamond| |\leadsto| \\
-|\sqsubset| |\sqsupset| |\lhd| |\unlhd| |\rhd| |\unrhd|
-\end{decl}
-
-These symbols are contained in the \LaTeX{} symbol font, which was
-automatically loaded by \LaTeX~2.09. However, \TeX{} has room for
-only sixteen math font families; thus many users discovered that they
-ran out. Because of this, \LaTeX{} does not load the \LaTeX{} symbol
-font unless you use the \textsf{latexsym} package.
-
-These symbols are also made available, using different fonts, by the
-\textsf{amsfonts} package, which also defines a large number of other
-symbols. It is supplied by the American Mathematical Society.
-
-The \textsf{latexsym} package is loaded automatically in \LaTeX~2.09
-compatibility mode.
-
-\section{\LaTeX~2.09 documents}
-\label{Sec:209}
-
-\LaTeXe{} can process (almost) any \LaTeX~2.09 document, by entering
-\emph{\LaTeX~2.09 compatibility mode}. Nothing has changed, you run
-\LaTeX{} in the same way you always did, and you will get much the
-same results.
-
-The reason for the `almost' is that some \LaTeX~2.09 packages made use
-of low-level unsupported features of \LaTeX. If you discover such a
-package, you should find out if it has been updated to work with
-\LaTeXe. Most packages will still work with \LaTeXe---the easiest way
-to find out whether a package still works is to try it!
-
-\LaTeX~2.09 compatibility mode is a comprehensive emulation of
-\LaTeX~2.09, but at the cost of time. Documents can run up to 50\%
-slower in compatibility mode than they did under \LaTeX~2.09.
-In addition, many of the new features of \LaTeXe{} are not available in
-\LaTeX~2.09 compatibility mode.
-
-\subsection{Warning}
-
-\NEWdescription{1995/12/01}
-This \emph{\LaTeX~2.09 compatibility mode} is provided solely to allow
-you to process 2.09 documents, i.e.~documents that were written (we
-hope, a long time ago) for a very old system and therefore could be
-processed by using a genuine antique \LaTeX~2.09 system.
-
-This mode is therefore \emph{not} intended to provide access to the
-enhanced features of \LaTeXe{}. Thus it must not be used to process
-new documents which masquerade as 2.09 documents (i.e.~they begin with
-|\documentstyle|) but which could not be processed using that genuine
-antique \LaTeX~2.09 system because they contain some new,
-\LaTeXe{}-only, commands or environments.
-
-To prevent such misuse of the system, and the consequent trouble it
-causes when such misleadingly encoded documents are distributed, the
-\emph{\LaTeX~2.09 compatibility mode} turns off most of these new
-features and commands. Any attempt to use them will give you an error
-message and, moreover, many of them simply will not work, whilst
-others will produce unpredictable results.
-So don't bother sending us any bug reports about such occurrences since
-they are intentional.
-
-
-\subsection{Font selection problems}
-\label{Sec:fsprob}
-
-When using compatibility mode, it is possible that you will find
-problems with font-changing commands in some old documents. These
-problems are of two types:
+Briefly, the floating point expressions may comprise:
\begin{itemize}
-\item producing error messages;
-\item not producing the font changes you expected.
+ \item Basic arithmetic: addition $x\fpbin{+}y$, subtraction $x\fpbin{-}y$,
+ multiplication $x\fpbin{*}y$, division $x\fpbin{/}y$, square root~$\sqrt{x}$,
+ and parentheses.
+ \item Comparison operators: $x\fprel{<}y$,
+ $x\fprel{<=}y$, $x\fprel{>?}y$,
+ $x\fprel{!=}y$ \emph{etc.}
+ \item Boolean logic: sign $\fpop{sign} x$,
+ negation $\fpop{!}x$, conjunction
+ $x\fprel{\&\&}y$, disjunction $x\fprel{\string|\string|}y$, ternary
+ operator $x\fprel{?}y\fprel{:}z$.
+ \item Exponentials: $\fpop{exp} x$, $\fpop{ln} x$, $x\mathord{\texttt{\^{}}}y$.
+ \item Integer factorial: $\fpop{fact} x$.
+ \item Trigonometry: $\fpop{sin} x$, $\fpop{cos} x$, $\fpop{tan} x$, $\fpop{cot} x$, $\fpop{sec}
+ x$, $\fpop{csc} x$ expecting their arguments in radians, and
+ $\fpop{sind} x$, $\fpop{cosd} x$,
+ $\fpop{tand} x$, $\fpop{cotd} x$,
+ $\fpop{secd} x$, $\fpop{cscd} x$ expecting their
+ arguments in degrees.
+ \item Inverse trigonometric functions: $\fpop{asin} x$,
+ $\fpop{acos} x$, $\fpop{atan} x$,
+ $\fpop{acot} x$, $\fpop{asec} x$,
+ $\fpop{acsc} x$ giving a result in radians, and
+ $\fpop{asind} x$, $\fpop{acosd} x$,
+ $\fpop{atand} x$, $\fpop{acotd} x$,
+ $\fpop{asecd} x$, $\fpop{acscd} x$ giving a result
+ in degrees.
+ \item Extrema: $\fpop{max}(x_{1},x_{2},\ldots)$, $\fpop{min}(x_{1},x_{2},\ldots)$,
+ $\fpop{abs}(x)$.
+ \item Rounding functions, controlled by two optional
+ values, $n$ (number of places, $0$ by default) and
+ $t$ (behavior on a tie, $\nan$ by default):
+ \begin{itemize}
+ \item $\fpop{trunc}(x,n)$ rounds towards zero,
+ \item $\fpop{floor}(x,n)$ rounds towards~$-\infty$,
+ \item $\fpop{ceil}(x,n)$ rounds towards~$+\infty$,
+ \item $\fpop{round}(x,n,t)$ rounds to the closest value, with
+ ties rounded to an even value by default, towards zero if $t=0$,
+ towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$.
+ \end{itemize}
+ \item Random numbers: $\fpop{rand}()$, $\fpop{randint}(m,n)$.
+ \item Constants: \texttt{pi}, \texttt{deg} (one degree in radians).
+ \item Dimensions, automatically expressed in points, \emph{e.g.},
+ \texttt{pc} is~$12$.
+ \item Automatic conversion (no need for \cs{number}) of
+ integer, dimension, and skip variables to floating points numbers,
+ expressing dimensions in points and ignoring the stretch and
+ shrink components of skips.
+ \item Tuples: $(x_1,\ldots{},x_n)$ that can be added together,
+ multiplied or divided by a floating point number, and nested.
\end{itemize}
-In case of error messages it is possible that the document (or an old
-style file used therein) contains references to old internal commands
-which are no longer defined, see Section~\ref{Sec:oldinternals} for
-more information if this is the case.
-
-\NEWdescription{1995/12/01}
-One example of the unexpected is if you use one of the new style of
-math-mode font changing command as follows:
-\begin{verbatim}
-$ \mathbf{xy} A $
-\end{verbatim}
-You may well find that this behaves as if you had put:
-\begin{verbatim}
-$ \bf {xy} A $
-\end{verbatim}
-everything including the $A$ coming out bold.
-
-\LaTeX~2.09 allowed sites to customize their \LaTeX{} installation,
-which resulted in documents producing different results on different
-\LaTeX{} installations. \LaTeXe{} no longer allows so much
-customization but, for compatibility with old documents, the local
-configuration file |latex209.cfg| is loaded every time \LaTeXe{}
-enters \LaTeX~2.09 compatibility mode.
-
-For example, if your site was customized to use the New Font
-Selection Scheme (\NFSS) with the |oldlfont| option, then you can
-make \LaTeXe{} emulate this by creating a |latex209.cfg| file
-containing the commands:
-\begin{verbatim}
-\ExecuteOptions{oldlfont}\RequirePackage{oldlfont}
-\end{verbatim}
-Similarly, to emulate \NFSS{} with the |newlfont| option, you can
-create a |latex209.cfg| file containing:
+An example of use could be the following:
\begin{verbatim}
-\ExecuteOptions{newlfont}\RequirePackage{newlfont}
+\LaTeX{} can now compute: $ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
+ = \fpeval{sin(3.5)/2 + 2e-3} $.
\end{verbatim}
-
-
-\subsection{Native mode}
-\label{Sec:native}
-
-To run an old document faster, and use the new features of
-\LaTeXe, you should try using \emph{\LaTeXe{} native mode}.
-This is done by replacing the command:
-\begin{quote}
- |\documentstyle[|\m{options}|,|\m{packages}|]|\arg{class}
-\end{quote}
-with:
+which produces the following output:
\begin{quote}
- |\documentclass|\oarg{options}\arg{class} \\
- |\usepackage{latexsym,|\m{packages}|}|
+ \LaTeX{} can now compute: $ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
+ = \fpeval{sin(3.5)/2 + 2e-3} $.
\end{quote}
-However, some documents which can be processed in \LaTeX~2.09
-compatibility mode may not work in native mode. Some \LaTeX~2.09
-packages will only work with \LaTeXe{} in 2.09 compatibility mode.
-Some documents will cause errors because of \LaTeXe's improved error
-detection abilities.
-
-But most \LaTeX~2.09 documents can be processed by \LaTeXe{}'s native
-mode with the above change. Again, the easiest way to find out
-whether your documents can be processed in native mode is to try it!
-
-
-\section{Local modifications}
-\label{sec:loc}
-
-\NEWdescription{1995/12/01}
-There are two common types of local modifications that can be done
-very simply. Do not forget that documents produced using such
-modifications will not be usable at other places (such documents are
-called `non-portable').
-
-One type of modification is the use of personal commands for commonly
-used symbols or constructions. These should be put into a package
-file (for example, one called \texttt{mymacros.sty}) and loaded by
-putting |\usepackage{mymacros}| in the document preamble.
-
-Another type is a local document class that is very similar to one of
-the standard classes but contains some straightforward modifications
-such as extra environments, different values for some parameters, etc.
-These should be put into a class file; here we shall describe a simple
-method of constructing such a file using, as an example, a class
-called \textsf{larticle} that is very similar to the \textsf{article}
-class.
-
-\NEWfeature{1995/12/01}
-The class file called \texttt{larticle.cls} should (after the
-preliminary identification commands) start as follows:
-\begin{verbatim}
- \LoadClassWithOptions{article}
-\end{verbatim}
-This command should be followed by whatever additions and changes you
-wish to make to the results of reading in the file
-\texttt{article.sty}.
-
-The effect of using the above |\LoadClassWithOptions| command is to
-load the standard class file \textsf{article} with whatever options
-are asked for by the document. Thus a document using your
-\textsf{larticle} class can specify any option that could be specified
-when using the standard \textsf{article} class; for example:
-\begin{verbatim}
- \documentclass[a4paper,twocolumn,dvips]{larticle}
-\end{verbatim}
-
-
-\section{Problems}
-\label{Sec:problems}
-
-This section describes some of the things which may go wrong when
-using \LaTeXe, and what you can do about it.
-
-\subsection{New error messages}
-
-\LaTeXe{} has a number of new error messages.
-Please also note that many error messages now produce further helpful
-information if you press |h| in response to the error prompt.
\begin{decl}
-|Option clash for package |\m{package}|.|
+ |\inteval| \arg{integer expression}
\end{decl}
-The named package has been loaded twice with different options. If
-you enter |h| you will be told what the options were, for example, if
-your document contained:
-\begin{verbatim}
- \usepackage[foo]{fred}
- \usepackage[baz]{fred}
-\end{verbatim}
-then you will get the error message:
-\begin{verbatim}
- Option clash for package fred.
-\end{verbatim}
-and typing |h| at the |?| prompt will give you:
-\begin{verbatim}
- The package fred has already been loaded with options:
- [foo]
- There has now been an attempt to load it with options:
- [baz]
- Adding the line:
- \usepackage[foo,baz]{fred}
- to your document may fix this.
- Try typing <<return>> to proceed.
-\end{verbatim}
-The cure is, as suggested, to load the package with both sets of
-options. Note that since \LaTeX{} packages can call other packages,
-it is possible to get a package option clash without explicitly
-requesting the same package twice.
-\begin{decl}
- |Command |\m{command}| not provided in base NFSS.|
-\end{decl}
-The \m{command} is not provided by default in \LaTeXe. This error is
-generated by using one of the commands:
+ The expandable command \cs{inteval} takes as its argument an integer
+ expression and produces a result using the normal rules of
+ mathematics with some restrictions, see below. The operations
+ recognized are |+|, |-|, |*| and |/| plus parentheses. As this
+ command is expandable it can be used where \TeX{} requires a number
+ and for example within a low-level \cs{edef} operation to give a
+ purely numerical result.
+
+ This is basically a thin wrapper for the primitive \cs{numexpr}
+ command and therefore has some syntax restrictions. These are:
+ \begin{itemize}
+ \item \texttt{/} denotes division rounded to the closest integer with
+ ties rounded away from zero;
+ \item there is an error and the overall expression evaluates to zero
+ whenever the absolute value of any intermediate result exceeds
+ $2^{31}-1$, except in the case of scaling operations
+ $a$\texttt{*}$b$\texttt{/}$c$, for which $a$\texttt{*}$b$ may be
+ arbitrarily large;
+ \item parentheses may not appear after unary \texttt{+} or
+ \texttt{-}, namely placing \texttt{+(} or \texttt{-(} at the start
+ of an expression or after \texttt{+}, \texttt{-}, \texttt{*},
+ \texttt{/} or~\texttt{(} leads to an error.
+ \end{itemize}
+
+An example of use could be the following.
\begin{verbatim}
- \mho \Join \Box \Diamond \leadsto
- \sqsubset \sqsupset \lhd \unlhd \rhd \unrhd
+\LaTeX{} can now compute: The sum of the numbers is $\inteval{1 + 2 + 3}$.
\end{verbatim}
-which are now part of the \textsf{latexsym} package.
-The cure is to add:
-\begin{verbatim}
- \usepackage{latexsym}
-\end{verbatim}
-in the preamble of your document.
-
-\begin{decl}
- |LaTeX2e command <command> in LaTeX 2.09 document.|
-\end{decl}
-The \m{command} is a \LaTeXe{} command but this is a \LaTeX~2.09
-document. The cure is to replace the command by a \LaTeX~2.09
-command, or to run document in native mode, as described in
-Section~\ref{Sec:native}.
-
-\begin{decl}
- |NFSS release 1 command \newmathalphabet found.|
-\end{decl}
-The command |\newmathalphabet| was used by the New Font Selection
-Scheme Release 1 but it has now been replaced by
-|\DeclareMathAlphabet|, the use of which is described in
-\emph{\fntguide}.
-
-The best cure is to update the package which contained the
-|\newmathalphabet| command. Find out if there is a new release of
-the package, or (if you wrote the package yourself) consult
-\emph{\fntguide} for the new syntax of font commands.
-
-If there is no updated version of the package then you can cure this
-error by using the \textsf{newlfont} or \textsf{oldlfont} package,
-which tells \LaTeX{} which version of |\newmathalphabet| should be
-emulated.
-
-You should use \textsf{oldlfont} if the document selects math fonts with
-syntax such as this:
-\begin{quote}
- |{\cal A}|, etc.
-\end{quote}
-Use \textsf{newlfont} if the document's syntax is like this:
-\begin{quote}
- |\cal{A}|, etc.
-\end{quote}
-
-
-\begin{decl}
- |Text for \verb command ended by end of line.|
-\end{decl}
-The |\verb| command has been begun but not ended on that line. This
-usually means that you have forgotten to put in the end-character of
-the |\verb| command.
+which results in
+\enquote{\LaTeX{} can now compute: The sum of the numbers is $\inteval{1 + 2 + 3}$.}
-\begin{decl}
- |Illegal use of \verb command.|
-\end{decl}
-The |\verb| command has been used inside the argument of another
-command. This has never been allowed in \LaTeX{}---often producing
-incorrect output without any warning---and so \LaTeXe{} produces
-an error message.
-
-\subsection{Old internal commands}
-\label{Sec:oldinternals}
-
-A number of \LaTeX~2.09 internal commands have been removed, since
-their functionality is now provided in a different way. See
-\emph{\clsguide} for more details of the new, supported interface for
-class and package writers.
\begin{decl}
- |\tenrm| |\elvrm| |\twlrm| \dots\\
- |\tenbf| |\elvbf| |\twlbf| \dots\\
- |\tensf| |\elvsf| |\twlsf| \dots\\
- $\vdots$
+ |\dimeval| \arg{dimen expression} \qquad
+ |\skipeval| \arg{skip expression}
\end{decl}
-These commands provided access to the seventy fonts preloaded by
-\LaTeX~2.09. In contrast, \LaTeXe{} normally preloads at most
-fourteen fonts, which saves a lot of font memory; but a consequence is
-that any \LaTeX{} file which used the above commands to directly
-access fonts will no longer work.
-Their use will usually produce an error message such as:
+Similar to \cs{inteval} but computing a length (\texttt{dimen}) or a
+rubber length (\texttt{skip}) value. Both are thin wrappers around
+the corresponding engine primitives, which makes them fast, but
+therefore shows the same syntax peculiars as discussed
+above. Nevertheless, in practice they are usually sufficient. For
+example
\begin{verbatim}
- ! Undefined control sequence.
- l.5 \tenrm
+\newcommand\calulateheight[1]{%
+ \setlength\textheight{\dimeval{\topskip+\baselineskip*\inteval{#1-1}}}}
\end{verbatim}
-The cure for this is to update the document to use the new
-font-changing commands provided by \LaTeXe; these are described in
-\emph{\fntguide}.
-
-If this is not possible then, as a last resort, you can
-use the \textsf{rawfonts} package, which loads the
-seventy \LaTeX~2.09 fonts and provides direct access to them using the
-old commands. This takes both time and memory. If you do not
-wish to load all seventy fonts, you can select some of them by using the
-|only| option to \textsf{rawfonts}. For example, to load only |tenrm|
-and |tenbf| you write:
-\begin{verbatim}
- \usepackage[only,tenrm,tenbf]{rawfonts}
-\end{verbatim}
-
-The \textsf{rawfonts} package is distributed as part of the \LaTeX{}
-tools software, see Section~\ref{Sec:st-pack}.
-
-\subsection{Old files}
-
-One of the more common mistakes in running \LaTeX{} is to read in old
-versions of packages instead of the new versions. If you get an
-incomprehensible error message from a standard package, make sure you
-are loading the most recent version of the package. You can find out
-which version of the package has been loaded by looking in the log
-file for a line like:
-\begin{verbatim}
- Package: fred 1994/06/01 v0.01 Fred's package.
-\end{verbatim}
-You can use the \m{release-date} options to |\documentclass| and
-|\usepackage| to make sure that you are getting a suitably recent copy
-of the document class or package. This is useful when sending a
-document to another site, which may have out-of-date software.
-
-\subsection{Where to go for more help}
-
-If you can't find the answer for your problem here, try looking in
-\emph{\LaTeXbook} or \emph{\LaTeXcomp}. If you have a problem with
-installing \LaTeX, look in the installation guide files which come with
-the distribution.
-
-If this doesn't help, contact your local \LaTeX{} guru or local
-\LaTeX{} mailing list.
-
-If you think you've discovered a bug then please report it! First,
-you should find out if the problem is with a third-party package or
-class. If the problem is caused by a package or class other than
-those listed in Section~\ref{Sec:class+packages} then please report
-the problem to the author of the package or class, not to the \LaTeX3
-project team.
-
-If the bug really is with core \LaTeX{} then you should create a
-\emph{short}, \emph{self-contained} document which exhibits the
-problem. You should run a \emph{recent} (less than a year old)
-version of \LaTeX{} on the file and then run \LaTeX{} on
-|latexbug.tex|. This will create an error report which you should
-send, together with the sample document and log file, to the
-\LaTeX{} bugs address which can be found in the file
-|latexbug.tex| or |bugs.txt|.
-
-
-\section{Enjoy!}
-\label{Sec:enjoy}
-
-We certainly hope you will enjoy using the new standard \LaTeX{} but,
-if this is not possible, we hope that you will enjoy success and
-fulfillment as a result of the documents which it will help you to
-create.
-
-If you find that the contribution of \LaTeX{} to your life is such
-that you would like to support the work of the project team, then
-please read Section~\ref{Sec:ltx3} and discover practical ways to do
-this.
-
-\begin{thebibliography}{1}
-
-\bibitem{A-W:GRM97}
-Michel Goossens, Sebastian Rahtz and Frank Mittelbach.
-\newblock {\em The {\LaTeX} Graphics Companion}.
-\newblock Addison-Wesley, Reading, Massachusetts, 1997.
-
-
-\bibitem{A-W:GR99}
-Michel Goossens and Sebastian Rahtz.
-\newblock {\em The {\LaTeX} Web Companion}.
-\newblock Addison-Wesley, Reading, Massachusetts, 1999.
-
-
-\bibitem{A-W:DEK91}
-Donald~E. Knuth.
-\newblock {\em The \TeX book}.
-\newblock Addison-Wesley, Reading, Massachusetts, 1986.
-\newblock Revised to cover \TeX3, 1991.
-
-
-\bibitem{A-W:LLa94}
-Leslie Lamport.
-\newblock {\em {\LaTeX:} A Document Preparation System}.
-\newblock Addison-Wesley, Reading, Massachusetts, second edition, 1994.
-
-\bibitem{A-W:MG2004}
-Frank Mittelbach and Michel Goossens.
-\newblock {\em The {\LaTeX} Companion second edition}.
-\newblock With Johannes Braams, David Carlisle, and Chris Rowley.
-\newblock Addison-Wesley, Reading, Massachusetts, 2004.
-
-
-\end{thebibliography}
+sets the \cs{textheight} to the appropriate value if a page should
+hold a specific number of text lines. Thus after |\calulateheight{40}|
+it is set to \dimeval{\topskip+\baselineskip*\inteval{40-1}}, given
+the values \cs{topskip} (\dimeval{\topskip}) and \cs{baselineskip}
+(\dimeval{\baselineskip}) in the current document.
+
+\section{Case changing}
+
+\TeX{} provides two primitives \cs{uppercase} and \cs{lowercase} for changing
+the case of text. However, these have a range of limitations: they only change
+the case of explicit characters, do not account for the surrounding context, do
+not support UTF-8 input with 8-bit engines, etc. To overcome this problem,
+\LaTeX{} provides the commands \cs{MakeUppercase}, \cs{MakeLowercase} and
+\cs{MakeTitlecase}: these offer significant enhancement over the \TeX{}
+primitives. These commands are engine-robust (\cs{protected}), and so
+can be used in moving arguments.
+
+Upper- and lower-casing are well-understood in general conversation.
+Titlecasing here follows the definition given by the Unicode Consortium: the
+first character of the input will be converted to (broadly) uppercase, and the
+rest of the input to lowercase. The full range of Unicode UTF-8 input can be
+supported, with the proviso that at present the characters set up with 8-bit
+engines match those available in standard input encodings (|T1|, |T2|, |LGR|).
+\begin{quotation}
+ \begin{tabular}{rl}
+ |\MakeUppercase{hello WORLD ßüé}| & \MakeUppercase{hello WORLD ßüé} \\
+ |\MakeLowercase{hello WORLD ßüé}| & \MakeLowercase{hello WORLD ßüé} \\
+ |\MakeTitlecase{hello WORLD ßüé}| & \MakeTitlecase{hello WORLD ßüé} \\
+ \end{tabular}
+\end{quotation}
+
+The case-changing commands take an optional argument which can be used to
+tailor the output. This optional argument accepts the key \texttt{locale},
+also available under the alias \texttt{lang},
+which can be used to give a language identifier in BCP-47
+format. This is then applied to select language-specific features during
+case-changing.
+
+The input given to these commands is `expanded' before case changing is
+applied. This means that any commands within the input that convert to pure
+text will be case changed. Mathematical content is automatically excluded, as
+are the arguments to the commands \cs{label}, \cs{ref}, \cs{cite}, \cs{begin}
+and \cs{end}. Additional exclusions can be added using the command
+\cs{AddToNoCaseChangeList}. Input can be excluded from case changing using the
+command \cs{NoCaseChange}.
+\begin{quotation}
+ \begin{tabular}{rl}
+ |\MakeUppercase{Some text $y = mx + c$}|
+ & \MakeUppercase{Some text $y = mx + c$} \\
+ |\MakeUppercase{\NoCaseChange{iPhone}}|
+ & \MakeLowercase{\NoCaseChange{iPhone}} \\
+ \end{tabular}
+\end{quotation}
+
+To allow robust commands to be used within case changing \emph{and} to produce
+the expected output, two additional control commands are available.
+\cs{CaseSwitch} allows the user to specify the result for the four possible
+cases
+\begin{itemize}
+ \item No case changing
+ \item Uppercasing
+ \item Lowercasing
+ \item Titlecasing (only applies for the start of the input)
+\end{itemize}
+The command \cs{DeclareCaseChangeEquivalent} provides a way to substitute a
+command by an alternative version when it is found inside a case changing
+situation.
\end{document}
diff --git a/macros/latex/base/usrguide3.pdf b/macros/latex/base/usrguide3.pdf
deleted file mode 100644
index 1a4d6d3b01..0000000000
--- a/macros/latex/base/usrguide3.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/base/usrguide3.tex b/macros/latex/base/usrguide3.tex
deleted file mode 100644
index a148c77ed5..0000000000
--- a/macros/latex/base/usrguide3.tex
+++ /dev/null
@@ -1,1112 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 2020-2022
-% The LaTeX Project and any individual authors listed elsewhere
-% in this file.
-%
-% This file is part of the LaTeX base system.
-% -------------------------------------------
-%
-% It may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3c
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX
-% version 2008 or later.
-%
-% This file has the LPPL maintenance status "maintained".
-%
-% The list of all files belonging to the LaTeX base distribution is
-% given in the file `manifest.txt'. See also `legal.txt' for additional
-% information.
-%
-% The list of derived (unpacked) files belonging to the distribution
-% and covered by LPPL is defined by the unpacking scripts (with
-% extension .ins) which are part of the distribution.
-%
-% \fi
-% Filename: usrguide3.tex
-
-\documentclass{ltxguide}
-
-\usepackage[T1]{fontenc} % needed for \textbackslash in tt
-\usepackage{csquotes}
-
-\title{New \LaTeX\ methods for authors (starting 2020)}
-\author{\copyright~Copyright 2020-2022, \LaTeX\ Project Team.\\
- All rights reserved.}
-
-\date{2022-07-05}
-
-\NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}}
-\NewDocumentCommand\marg{m}{\arg{#1}}
-\NewDocumentCommand\meta{m}{\ensuremath{\langle}\textit{#1}\ensuremath{\rangle}}
-\NewDocumentCommand\pkg{m}{\textsf{#1}}
-\NewDocumentCommand\text{m}{\ifmmode\mbox{#1}\else#1\fi}
-% Fix a 'feature'
-\makeatletter
-\renewcommand \verbatim@font {\normalfont \ttfamily}
-\makeatother
-
-
-% for fpeval documentation
-
-\providecommand\fpop[1]{\mathop{\texttt{#1}}}
-\providecommand\fpbin[1]{\mathbin{\texttt{#1}}}
-\providecommand\fprel[1]{\mathrel{\texttt{#1}}}
-\providecommand\nan{\texttt{NaN}}
-
-\ExplSyntaxOn
-\ProvideExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} }
-\ExplSyntaxOff
-
-\begin{document}
-
-\maketitle
-
-\tableofcontents
-
-\section{Introduction}
-
-\LaTeXe{} was released in 1994 and added a number of then-new concepts to
-\LaTeX{}. These are described in \texttt{usrguide}, which has largely remained
-unchanged. Since then, the \LaTeX{} team have worked on a number of ideas,
-firstly a programming language for \LaTeX{} (\pkg{expl3}) and then a range of
-tools for document authors which build on that language. Here, we describe
-\emph{stable} and \emph{widely-usable} concepts that have resulted from that
-work. These `new' ideas have been transferred from development packages
-into the \LaTeXe{} kernel. As such, they are now available to \emph{all}
-\LaTeX{} users and have the \emph{same stability} as any other part of the
-kernel. The fact that `behind the scenes' they are built on \pkg{expl3}
-is useful for the development team, but is not directly important to users.
-
-\section{Creating document commands and environments}
-
-\subsection{Overview}
-
-Creating document commands and environments using the \LaTeX3 toolset is based
-around the idea that a common set of descriptions can be used to cover almost
-all argument types used in real documents. Thus parsing is reduced to a simple
-description of which arguments a command takes: this description provides the
-`glue' between the document syntax and the implementation of the
-command.
-
-First, we will describe the argument types, then move on to explain how these
-can be used to create both document commands and environments. Various more
-specialized features are then described, which allow an even richer application
-of a simple interface set up.
-
-The details here are intended to help users create document commands in
-general. More technical detail, suitable for \TeX{} programmers, is included
-in \texttt{interface3}.
-
-\subsection{Describing argument types}
-
-In order to allow each argument to be defined independently, the parser does
-not simply need to know the number of arguments for a function, but also the
-nature of each one. This is done by constructing an \emph{argument
-specification}, which defines the number of arguments, the type of each
-argument and any additional information needed for the parser to read the user
-input and properly pass it through to internal functions.
-
-The basic form of the argument specifier is a list of letters, where each
-letter defines a type of argument. As will be described below, some of the
-types need additional information, such as default values. The argument types
-can be divided into two, those which define arguments that are mandatory
-(potentially raising an error if not found) and those which define optional
-arguments. The mandatory types
-\begin{itemize}
- \item[\texttt{m}] A standard mandatory argument, which can either be a single token
- alone or multiple tokens surrounded by curly braces |{}|. Regardless of the
- input, the argument will be passed to the internal code without the outer
- braces. This is the type specifier for a normal \TeX{} argument.
- \item[\texttt{r}] Given as \texttt{r}\meta{token1}\meta{token2}, this denotes a
- `required' delimited argument, where the delimiters are
- \meta{token1} and \meta{token2}. If the opening delimiter \meta{token1} is
- missing, the default marker |-NoValue-| will be inserted after a suitable
- error.
- \item[\texttt{R}] Given as \texttt{R}\meta{token1}\meta{token2}\marg{default},
- this is a `required' delimited argument as for~\texttt{r},
- but it has a user-definable recovery \meta{default} instead of
- |-NoValue-|.
- \item[\texttt{v}] Reads an argument `verbatim', between the following
- character and its next occurrence, in a way similar to the argument
- of the \LaTeXe{} command \cs{verb}. Thus a \texttt{v}-type argument
- is read between two identical characters, which cannot be any of |%|, |\|,
- |#|, |{|, |}| or \verb*| |. The verbatim argument can also be enclosed
- between braces, |{| and |}|. A command with a verbatim argument will
- produce an error when it appears within an argument of another function.
- \item[\texttt{b}] Only suitable in the argument specification of an
- environment, it denotes the body of the environment, between
- |\begin|\marg{environment} and |\end|\marg{environment}. See
- Section~\ref{sec:cmd:body} for details.
-\end{itemize}
-The types which define optional arguments are:
-\begin{itemize}
- \item[\texttt{o}] A standard \LaTeX{} optional argument, surrounded with square
- brackets, which will supply the special |-NoValue-| marker if not given
- (as described later).
- \item[\texttt{d}] Given as \texttt{d}\meta{token1}\meta{token2}, an optional
- argument which is delimited by \meta{token1} and \meta{token2}. As with
- \texttt{o}, if no value is given the special marker |-NoValue-| is
- returned.
- \item[\texttt{O}] Given as \texttt{O}\marg{default}, is like \texttt{o}, but returns
- \meta{default} if no value is given.
- \item[\texttt{D}] Given as \texttt{D}\meta{token1}\meta{token2}\marg{default}, it is
- as for \texttt{d}, but returns \meta{default} if no value is given.
- Internally, the \texttt{o}, \texttt{d} and \texttt{O} types are
- short-cuts to an appropriated-constructed \texttt{D} type argument.
- \item[\texttt{s}] An optional star, which will result in a value
- \cs{BooleanTrue} if a star is present and \cs{BooleanFalse}
- otherwise (as described later).
- \item[\texttt{t}] An optional \meta{token}, which will result in a value
- \cs{BooleanTrue} if \meta{token} is present and \cs{BooleanFalse}
- otherwise. Given as \texttt{t}\meta{token}.
- \item[\texttt{e}] Given as \texttt{e}\marg{tokens}, a set of optional
- \emph{embellishments}, each of which requires a \emph{value}.
- If an embellishment is not present, |-NoValue-| is returned. Each
- embellishment gives one argument, ordered as for the list of
- \meta{tokens} in the argument specification. All \meta{tokens}
- must be distinct.
- \item[\texttt{E}] As for \texttt{e} but returns one or more \meta{defaults}
- if values are not given: \texttt{E}\marg{tokens}\marg{defaults}. See
- Section~\ref{sec:cmd:embellishment} for more details.
-\end{itemize}
-
-\subsection{Modifying argument descriptions}
-
-In addition to the argument \emph{types} discussed above, the argument
-description also gives special meaning to three other characters.
-
-First, \texttt{+} is used to make an argument long (to accept paragraph
-tokens). In contrast to \cs{newcommand}, this applies on an
-argument-by-argument basis. So modifying the example to `|s o o +m O{default}|'
-means that the mandatory argument is now \cs{long}, whereas the optional
-arguments are not.
-
-Secondly, \texttt{!} is used to control whether spaces are allowed before
-optional arguments. There are some subtleties to this, as \TeX{} itself
-has some restrictions on where spaces can be `detected': more detail
-is given in Section~\ref{sec:cmd:opt-space}.
-
-Finally, the character \texttt{>} is used to declare so-called
-`argument processors', which can be used to modify the contents of an
-argument before it is passed to the macro definition. The use of argument
-processors is a somewhat advanced topic, (or at least a less commonly used
-feature) and is covered in Section~\ref{sec:cmd:processors}.
-
-\subsection{Creating document commands and environments}
-
-\begin{decl}
- |\NewDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
- |\RenewDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
- |\ProvideDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
- |\DeclareDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code}
-\end{decl}
-This family of commands are used to create a \meta{cmd}. The argument
-specification for the function is given by \meta{arg spec}, and the command
-uses the \meta{code} with |#1|, |#2|, etc.\ replaced by the arguments found
-by the parser.
-
-An example:
-\begin{verbatim}
- \NewDocumentCommand\chapter{s o m}
- {%
- \IfBooleanTF{#1}%
- {\typesetstarchapter{#3}}%
- {\typesetnormalchapter{#2}{#3}}%
- }
-\end{verbatim}
-would be a way to define a \cs{chapter} command which would essentially behave
-like the current \LaTeXe{} command (except that it would accept an optional
-argument even when a \texttt{*} was parsed). The \cs{typesetnormalchapter}
-could test its first argument for being |-NoValue-| to see if an optional
-argument was present. (See Section~\ref{sec:cmd:special} for details of
-\cs{IfBooleanTF} and testing for |-NoValue-|.)
-
-The difference between the \cs{New...} \cs{Renew...}, \cs{Provide...}
-and \cs{Declare...} versions is the behavior if \meta{cmd} is already
-defined.
-\begin{itemize}
- \item \cs{NewDocumentCommand} will issue an error if \meta{cmd}
- has already been defined.
- \item \cs{RenewDocumentCommand} will issue an error if \meta{cmd}
- has not previously been defined.
- \item \cs{ProvideDocumentCommand} creates a new definition for
- \meta{function} only if one has not already been given.
- \item \cs{DeclareDocumentCommand} will always create the new
- definition, irrespective of any existing \meta{cmd} with the
- same name. This should be used sparingly.
-\end{itemize}
-
-If the \meta{cmd} can't be provided as a single token but needs
-\enquote{constructing}, you can use \cs{ExpandArgs} as explained in
-Section~\ref{sec:preconstructing-csnames} which also gives an example
-in which this is needed.
-
-\begin{decl}
- |\NewDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\
- |\RenewDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\
- |\ProvideDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\
- |\DeclareDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code}
-\end{decl}
-These commands work in the same way as \cs{NewDocumentCommand}, etc.\@, but
-create environments (\cs{begin}\arg{env} \ldots{}
-\cs{end}\arg{env}). Both the \meta{beg-code} and \meta{end-code}
-may access the arguments as defined by \meta{arg spec}. The arguments will be
-given following \cs{begin}\arg{env}.
-
-\subsection{Optional arguments}
-\label{sec:cmd:opt}
-
-In contrast to commands created using \LaTeXe{}'s \cs{newcommand}, optional
-arguments created using \cs{NewDocumentCommand} may safely be nested. Thus for
-example, following
-\begin{verbatim}
-\NewDocumentCommand\foo{om}{I grabbed `#1' and `#2'}
-\NewDocumentCommand\baz{o}{#1-#1}
-\end{verbatim}
-using the command as
-\begin{verbatim}
-\foo[\baz[stuff]]{more stuff}
-\end{verbatim}
-will print
-\begin{quote}
-I grabbed `stuff-stuff' and `more stuff'
-\end{quote}
-This is particularly useful when placing a command with an optional argument
-\emph{inside} the optional argument of a second command.
-
-When an optional argument is followed by a mandatory argument with the same
-delimiter, the parser issues a warning because the optional argument could not
-be omitted by the user, thus becoming in effect mandatory. This can apply to
-\texttt{o}, \texttt{d}, \texttt{O}, \texttt{D}, \texttt{s}, \texttt{t},
-\texttt{e}, and \texttt{E} type arguments followed by \texttt{r} or
-\texttt{R}-type required arguments.
-
-The default for \texttt{O}, \texttt{D} and \texttt{E} arguments can be
-the result of grabbing another argument. Thus for example
-\begin{verbatim}
- \NewDocumentCommand\foo{O{#2} m}
-\end{verbatim}
-would use the mandatory argument as the default for the leading optional
-one.
-
-\subsection{Spacing and optional arguments}
-\label{sec:cmd:opt-space}
-
-\TeX{} will find the first argument after a function name irrespective of any
-intervening spaces. This is true for both mandatory and optional arguments. So
-|\foo[arg]| and \verb*|\foo [arg]| are equivalent. Spaces are also ignored when
-collecting arguments up to the last mandatory argument to be collected (as it
-must exist). So after
-\begin{verbatim}
- \NewDocumentCommand\foo{m o m}{ ... }
-\end{verbatim}
-the user input |\foo{arg1}[arg2]{arg3}| and \verb*|\foo{arg1} [arg2] {arg3}|
-will both be parsed in the same way.
-
-The behavior of optional arguments \emph{after} any mandatory arguments is
-selectable. The standard settings will allow spaces here, and thus with
-\begin{verbatim}
- \NewDocumentCommand\foobar{m o}{ ... }
-\end{verbatim}
-both |\foobar{arg1}[arg2]| and \verb*|\foobar{arg1} [arg2]| will find an
-optional argument. This can be changed by giving the modified |!| in the
-argument specification:
-\begin{verbatim}
- \NewDocumentCommand\foobar{m !o}{ ... }
-\end{verbatim}
-where \verb*|\foobar{arg1} [arg2]| will not find an optional argument.
-
-There is one subtlety here due to the difference in handling by \TeX{} of
-`control symbols', where the command name is made up of a single
-character, such as `\texttt{\textbackslash\textbackslash}'.
-Spaces are not ignored by \TeX{} here,
-and thus it is possible to require an optional argument directly follow such a
-command. The most common example is the use of \texttt{\textbackslash\textbackslash}
-in \pkg{amsmath} environments, which in the terms here would be defined as
-\begin{verbatim}
- \NewDocumentCommand\\{!s !o}{ ... }
-\end{verbatim}
-
-\subsection{`Embellishments'}
-\label{sec:cmd:embellishment}
-
-The \texttt{E}-type argument allows one default value per test token. This is
-achieved by giving a list of defaults for each entry in the list, for example:
-\begin{verbatim}
- E{^_}{{UP}{DOWN}}
-\end{verbatim}
-If the list of default values is \emph{shorter} than the list of test tokens,
-the special |-NoValue-| marker will be returned (as for the \texttt{e}-type
-argument). Thus for example
-\begin{verbatim}
- E{^_}{{UP}}
-\end{verbatim}
-has default \texttt{UP} for the |^| test character, but will return the
-|-NoValue-| marker as a default for |_|. This allows mixing of explicit
-defaults with testing for missing values.
-
-
-\subsection{Testing special values}
-\label{sec:cmd:special}
-
-Optional arguments make use of dedicated variables to return information about
-the nature of the argument received.
-
-
-
-\begin{decl}
- |\IfNoValueTF| \arg{arg} \arg{true code} \arg{false code} \\
- |\IfNoValueT| \arg{arg} \arg{true code} \\
- |\IfNoValueF| \arg{arg} \arg{false code}
-\end{decl}
-The \cs{IfNoValue(TF)} tests are used to check if \meta{argument} (|#1|,
-|#2|, \emph{etc.}) is the special |-NoValue-| marker. For example
-\begin{verbatim}
- \NewDocumentCommand\foo{o m}
- {%
- \IfNoValueTF {#1}%
- {\DoSomethingJustWithMandatoryArgument{#2}}%
- {\DoSomethingWithBothArguments{#1}{#2}}%
- }
-\end{verbatim}
-will use a different internal function if the optional argument
-is given than if it is not present.
-
-Note that three tests are available, depending on which outcome
-branches are required: \cs{IfNoValueTF}, \cs{IfNoValueT} and
-\cs{IfNoValueF}.
-
-As the \cs{IfNoValue(TF)} tests are expandable, it is possible to
-test these values later, for example at the point of typesetting or
-in an expansion context.
-
-It is important to note that |-NoValue-| is constructed such that it
-will \emph{not} match the simple text input |-NoValue-|, i.e.~that
-\begin{verbatim}
- \IfNoValueTF{-NoValue-}
-\end{verbatim}
-will be logically \texttt{false}.
-When two optional arguments follow each other (a syntax we typically
-discourage), it can make sense to allow users of the command to
-specify only the second argument by providing an empty first
-argument.
-\NEWdescription{2022/06/01}
-Rather than testing separately for emptiness and for
-|-NoValue-| it is then best to use the argument type~|O| with an
-empty default value, and then test for emptiness using the
-conditional \cs{IfBlankTF} (described below) instead.
-
-\begin{decl}
- |\IfValueTF| \arg{arg} \arg{true code} \arg{false code} \\
- |\IfValueT| \arg{arg} \arg{true code} \\
- |\IfValueF| \arg{arg} \arg{false code}
-\end{decl}
-The reverse form of the \cs{IfNoValue(TF)} tests are also available
-as \cs{IfValue(TF)}. The context will determine which logical
-form makes the most sense for a given code scenario.
-
-
-
-
-
-\begin{decl}[2022/06/01]
- |\IfBlankTF| \arg{arg} \arg{true code} \arg{false code} \\
- |\IfBlankT| \arg{arg} \arg{true code} \\
- |\IfBlankF| \arg{arg} \arg{false code}
-\end{decl}
-
-
-The \cs{IfNoValueTF} command chooses the \meta{true code} if the optional argument has not
-been used at all (and it returns the special \texttt{-NoValue-}
-marker), but not if it has been given an empty value. In contrast
-\cs{IfBlankTF} returns true if its argument is either truly empty or
-only contains one or more normal blanks.
-For example
-\begin{verbatim}
-\NewDocumentCommand\foo{m!o}{\par #1:
- \IfNoValueTF{#2}{No optional}%
- {\IfBlankTF{#2}{Blanks in or empty}%
- {Real content in}}%
- \space argument!}
-\foo{1}[bar] \foo{2}[ ] \foo{3}[] \foo{4}[\space] \foo{5} [x]
-\end{verbatim}
-results
-in the following output:
-\begin{quote}
- \NewDocumentCommand\foo{m!o}{\par #1:
- \IfNoValueTF{#2}{No optional}%
- {\IfBlankTF{#2}{Blanks in or empty}%
- {Real content in}}%
- \space argument!}
- \foo{1}[bar] \foo{2}[ ] \foo{3}[] \foo{4}[\space] \foo{5} [x]
-\end{quote}
-
-Note that the \cs{space} in (4) is considered real content---because it is
-a command and not a \enquote{space} character---even though it results
-in producing a space. You can also observe in (5) the effect of the
-\texttt{!} specifier, preventing the last \cs{foo}
-from interpreting \texttt{[x]} as its optional argument.
-
-
-
-
-\begin{decl}
- |\BooleanFalse| \\
- |\BooleanTrue|
-\end{decl}
-The \texttt{true} and \texttt{false} flags set when searching for
-an optional character (using \texttt{s} or \texttt{t\meta{char}}) have
-names which are accessible outside of code blocks.
-
-\begin{decl}
- |\IfBooleanTF| \arg{arg} \arg{true code} \arg{false code} \\
- |\IfBooleanT| \arg{arg} \arg{true code} \\
- |\IfBooleanF| \arg{arg} \arg{false code}
-\end{decl}
-Used to test if \meta{argument} (|#1|, |#2|, \emph{etc.}) is
-\cs{BooleanTrue} or \cs{BooleanFalse}. For example
-\begin{verbatim}
- \NewDocumentCommand\foo{sm}
- {%
- \IfBooleanTF {#1}%
- {\DoSomethingWithStar{#2}}%
- {\DoSomethingWithoutStar{#2}}%
- }
-\end{verbatim}
-checks for a star as the first argument, then chooses the action to
-take based on this information.
-
-\subsection{Argument processors}
-\label{sec:cmd:processors}
-
-Argument processor are applied to an argument \emph{after} it has been grabbed
-by the underlying system but before it is passed to \meta{code}. An argument
-processor can therefore be used to regularize input at an early stage, allowing
-the internal functions to be completely independent of input form. Processors
-are applied to user input and to default values for optional arguments, but
-\emph{not} to the special |-NoValue-| marker.
-
-Each argument processor is specified by the syntax \texttt{>}\marg{processor}
-in the argument specification. Processors are applied from right to left, so
-that
-\begin{verbatim}
- >{\ProcessorB} >{\ProcessorA} m
-\end{verbatim}
-would apply \cs{ProcessorA} followed by \cs{ProcessorB} to the tokens grabbed
-by the \texttt{m} argument.
-
-\begin{decl}
- |\SplitArgument| \arg{number} \arg{token(s)}
-\end{decl}
-This processor splits the argument given at each occurrence of the
-\meta{tokens} up to a maximum of \meta{number} tokens (thus
-dividing the input into $\text{\meta{number}} + 1$ parts).
-An error is given if too many \meta{tokens} are present in the
-input. The processed input is placed inside
-$\text{\meta{number}} + 1$ sets of braces for further use.
-If there are fewer than \arg{number} of \arg{tokens} in the argument
-then |-NoValue-| markers are added at the end of the processed
-argument.
-\begin{verbatim}
- \NewDocumentCommand \foo {>{\SplitArgument{2}{;}} m}
- {\InternalFunctionOfThreeArguments#1}
-\end{verbatim}
-If only a single character \meta{token} is used for the split, any
-category code $13$ (active) character matching the \meta{token} will
-be replaced before the split takes place.
-Spaces are trimmed at each end of each item parsed.
-
-The \texttt{E} argument type is somewhat special, because with a single
-\texttt{E} in the command declaration you may end up with several
-arguments in a command (one formal argument per embellishment token).
-Therefore, when an argument processor is applied to an \texttt{E}-type
-argument, all the arguments pass through that processor before being fed
-to the \meta{code}. For example, this command
-\begin{verbatim}
- \NewDocumentCommand \foo { >{\TrimSpaces} e{_^} }
- { [#1](#2) }
-\end{verbatim}
-applies \cs{TrimSpaces} to both arguments.
-
-\begin{decl}
- |\SplitList| \arg{token(s)}
-\end{decl}
-This processor splits the argument given at each occurrence of the
-\meta{token(s)} where the number of items is not fixed. Each item is
-then wrapped in braces within |#1|. The result is that the
-processed argument can be further processed using a mapping function
-(see below).
-\begin{verbatim}
- \NewDocumentCommand \foo {>{\SplitList{;}} m}
- {\MappingFunction#1}
-\end{verbatim}
-If only a single character \meta{token} is used for the split, any
-category code $13$ (active) character matching the \meta{token} will
-be replaced before the split takes place.
-Spaces are trimmed at each end of each item parsed.
-
-\begin{decl}
- |\ProcessList| \arg{list} \arg{function}
-\end{decl}
-To support \cs{SplitList}, the function \cs{ProcessList} is available
-to apply a \meta{function} to every entry in a \meta{list}. The
-\meta{function} should absorb one argument: the list entry. For example
-\begin{verbatim}
- \NewDocumentCommand \foo {>{\SplitList{;}} m}
- {\ProcessList{#1}{\SomeDocumentCommand}}
-\end{verbatim}
-
-\begin{decl}
- |\ReverseBoolean|
-\end{decl}
-This processor reverses the logic of \cs{BooleanTrue} and
-\cs{BooleanFalse}, so that the example from earlier would become
-\begin{verbatim}
- \NewDocumentCommand\foo{>{\ReverseBoolean} s m}
- {%
- \IfBooleanTF#1%
- {\DoSomethingWithoutStar{#2}}%
- {\DoSomethingWithStar{#2}}%
- }
-\end{verbatim}
-
-\begin{decl}
- |\TrimSpaces|
-\end{decl}
-Removes any leading and trailing spaces (tokens with character code~$32$
-and category code~$10$) for the ends of the argument. Thus for example
-declaring a function
-\begin{verbatim}
- \NewDocumentCommand\foo {>{\TrimSpaces} m}
- {\showtokens{#1}}
-\end{verbatim}
-and using it in a document as
-\begin{flushleft}
- \verb= =\verb*=\foo{ hello world }=
-\end{flushleft}
-will show `\verb*=hello world=' at the terminal, with the space at each
-end removed. \cs{TrimSpaces} will remove multiple spaces from the ends of
-the input in cases where these have been included such that the standard
-\TeX{} conversion of multiple spaces to a single space does not apply.
-
-\subsection{Body of an environment}
-\label{sec:cmd:body}
-
-While environments |\begin|\marg{environment}\ \dots{}\,|\end|\marg{environment}
-are typically used in cases where the code implementing the \meta{environment}
-does not need to access the contents of the environment (its `body'),
-it is sometimes useful to have the body as a standard argument.
-
-This is achieved by ending the argument specification with~\texttt{b}, which is
-a dedicated argument type for this situation. For instance
-\begin{verbatim}
- \NewDocumentEnvironment{twice} {O{\ttfamily} +b}
- {#2#1#2} {}
-\end{verbatim}
-\begin{verbatim}
- \begin{twice}[\itshape]
- Hello world!
- \end{twice}
-\end{verbatim}
-typesets `Hello world!{\itshape Hello world!}'.
-
-The prefix |+| is used to allow multiple paragraphs in the environment's body.
-Argument processors can also be applied to \texttt{b}~arguments. By default,
-spaces are trimmed at both ends of the body: in the example there would
-otherwise be spaces coming from the ends the lines after |[\itshape]| and
-|world!|. Putting the prefix |!| before \texttt{b} suppresses space-trimming.
-
-When \texttt{b} is used in the argument specification, the last
-argument of the environment declaration (e.g.,
-\cs{NewDocumentEnvironment}), which consists of an \meta{end code} to
-insert at |\end|\marg{environment}, is redundant since one can simply
-put that code at the end of the \meta{start code}. Nevertheless this
-(empty) \meta{end code} must be provided.
-
-Environments that use this feature can be nested.
-
-\subsection{Fully-expandable document commands}
-
-Document commands created using \cs{NewDocumentCommand}, etc.\@, are normally
-created so that they do not expand unexpectedly. This is done using engine
-features, so is more powerful than \LaTeXe{}'s \cs{protect} mechanism. There
-are \emph{very rare} occasion when it may be useful to create functions using a
-expansion-only grabber. This imposes a number of restrictions on the
-nature of the arguments accepted by a function, and the code it implements.
-This facility should only be used when \emph{absolutely necessary}.
-
-\begin{decl}
- |\NewExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
- |\RenewExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
- |\ProvideExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\
- |\DeclareExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code}
-\end{decl}
-This family of commands is used to create a document-level \meta{function},
-which will grab its arguments in a fully-expandable manner. The
-argument specification for the function is given by \meta{arg spec},
-and the function will execute \meta{code}. In general, \meta{code} will
-also be fully expandable, although it is possible that this will
-not be the case (for example, a function for use in a table might
-expand so that \cs{omit} is the first non-expandable non-space token).
-
-Parsing arguments by pure expansion imposes a number of restrictions on
-both the type of arguments that can be read and the error checking
-available:
-\begin{itemize}
- \item The last argument (if any are present) must be one of the
- mandatory types \texttt{m}, \texttt{r} or \texttt{R}.
- \item The `verbatim' argument type \texttt{v} is not available.
- \item Argument processors (using \texttt{>}) are not available.
- \item It is not possible to differentiate between, for example
- |\foo[| and |\foo{[}|: in both cases the \texttt{[} will be
- interpreted as the start of an optional argument. As a
- result, checking for optional arguments is less robust than
- in the standard version.
-\end{itemize}
-
-\subsection{Details about argument delimiters}
-
-In normal (non-expandable) commands, the delimited types look for the
-initial delimiter by peeking ahead (using \pkg{expl3}'s |\peek_...|
-functions) looking for the delimiter token. The token has to have the
-same meaning and `shape' of the token defined as delimiter.
-There are three possible cases of delimiters: character tokens, control
-sequence tokens, and active character tokens. For all practical purposes
-of this description, active character tokens will behave exactly as
-control sequence tokens.
-
-\subsubsection{Character tokens}
-
-A character token is characterized by its character code, and its meaning
-is the category code~(|\catcode|). When a command is defined, the meaning
-of the character token is fixed into the definition of the command and
-cannot change. A command will correctly see an argument delimiter if
-the open delimiter has the same character and category codes as at the
-time of the definition. For example in:
-\begin{verbatim}
- \NewDocumentCommand { \foobar } { D<>{default} } {(#1)}
-\end{verbatim}
-\begin{verbatim}
- \foobar <hello> \par
- \char_set_catcode_letter:N <
- \foobar <hello>
-\end{verbatim}
-the output would be:
-\begin{verbatim}
- (hello)
- (default)<hello>
-\end{verbatim}
-as the open-delimiter |<| changed in meaning between the two calls to
-|\foobar|, so the second one doesn't see the |<| as a valid delimiter.
-Commands assume that if a valid open-delimiter was found, a matching
-close-delimiter will also be there. If it is not (either by being
-omitted or by changing in meaning), a low-level \TeX{} error is raised
-and the command call is aborted.
-
-\subsubsection{Control sequence tokens}
-
-A control sequence (or control character) token is characterized by is
-its name, and its meaning is its definition.
-A token cannot have two different meanings at the same time.
-When a control sequence is defined as delimiter in a command,
-it will be detected as delimiter whenever the control sequence name
-is found in the document regardless of its current definition.
-For example in:
-\begin{verbatim}
- \cs_set:Npn \x { abc }
- \NewDocumentCommand { \foobar } { D\x\y{default} } {(#1)}
- \foobar \x hello\y \par
- \cs_set:Npn \x { def }
- \foobar \x hello\y
-\end{verbatim}
-the output would be:
-\begin{verbatim}
- (hello)
- (hello)
-\end{verbatim}
-with both calls to the command seeing the delimiter |\x|.
-
-\subsection{Creating new argument processors}
-
-\begin{decl}
- |\ProcessedArgument|
-\end{decl}
-Argument processors allow manipulation of a grabbed argument before it is
-passed to the underlying code. New processor implementations may be created
-as functions which take one trailing argument, and which leave their result in
-the \cs{ProcessedArgument} variable. For example, \cs{ReverseBoolean} is
-defined as
-\begin{verbatim}
-\ExplSyntaxOn
- \cs_new_protected:Npn \ReverseBoolean #1
- {
- \bool_if:NTF #1
- { \tl_set:Nn \ProcessedArgument { \c_false_bool } }
- { \tl_set:Nn \ProcessedArgument { \c_true_bool } }
- }
-\ExplSyntaxOff
-\end{verbatim}
-[As an aside: the code is written in \pkg{expl3}, so we don't have to
- worry about spaces creeping into the definition.]
-
-\subsection{Access to the argument specification}
-
-The argument specifications for document commands and environments are
-available for examination and use.
-
-\begin{decl}
- |\GetDocumentCommandArgSpec| \arg{function} \\
- |\GetDocumentEnvironmentArgSpec| \arg{environment}
-\end{decl}
-These functions transfer the current argument specification for the
-requested \meta{function} or \meta{environment} into the token list
-variable \cs{ArgumentSpecification}. If the \meta{function} or
-\meta{environment} has no known argument specification then an error
-is issued. The assignment to \cs{ArgumentSpecification} is local to
-the current \TeX{} group.
-
-\begin{decl}
- |\ShowDocumentCommandArgSpec| \arg{function} \\
- |\ShowDocumentEnvironmentArgSpec| \arg{environment}
-\end{decl}
-These functions show the current argument specification for the
-requested \meta{function} or \meta{environment} at the terminal. If
-the \meta{function} or \meta{environment} has no known argument
-specification then an error is issued.
-
-
-
-\section{Copying and showing (robust) commands}
-
-If you want to (slightly) alter an existing command you may want to
-save the current definition under a new name and then use that in a
-new definition. If the existing command is robust, then the old trick of
-using the low-level \cs{let} for this doesn't work, because it only
-copies the top-level definition, but not the part that actually does
-the work. As most \LaTeX{} commands are nowadays robust, \LaTeX{}
-now offers some high-level declarations for this instead.
-
-However, please note that it is usually better to make use of
-available hooks (e.g., the generic command or environment hooks),
-instead of copying the current definition and thereby freezing it; see
-the hook management documentation \texttt{lthooks-doc.pdf} for
-details.
-
-\begin{decl}
- |\NewCommandCopy| \arg{cmd} \arg{existing-cmd} \\
- |\RenewCommandCopy| \arg{cmd} \arg{existing-cmd} \\
- |\DeclareCommandCopy| \arg{cmd} \arg{existing-cmd}
-\end{decl}
-
-This copies the definition of \meta{existing-cmd} to \meta{cmd}. After
-this \meta{existing-cmd} can be redefined and \meta{cmd}
-still works! This allows you to then provide a new definition for
-\meta{existing-cmd} that makes use of \meta{cmd} (i.e., of its old
-definition). For example, after
-\begin{verbatim}
- \NewCommandCopy\LaTeXorig\LaTeX
- \RenewDocumentCommand\LaTeX{}{\textcolor{blue}{\LaTeXorig}}
-\end{verbatim}
-all \LaTeX{} logos generated with \cs{LaTeX} will come out in blue
-(assuming you have a color package loaded).
-
-The differences between \cs{New...} and \cs{Renew...} are as
-elsewhere: i.e., you get an error depending on whether or not
-\meta{cmd} already exists, or in case of \cs{Declare...} it is copied
-regardless. Note that there is no \cs{Provide...} declaration, because
-that would be of limited value.
-
-
-If the \meta{cmd} or \meta{existing-cmd} can't be provided as a single
-token but need \enquote{constructing}, you can use \cs{ExpandArgs}
-as explained in
-Section~\ref{sec:preconstructing-csnames}.
-
-
-
-
-\begin{decl}
- |\ShowCommand| \arg{cmd}
-\end{decl}
-
-This displays the meaning of the \meta{cmd} on the terminal and then
-stops (just like the primitive \cs{show}). The difference is that it
-correctly shows the meaning of more complex commands, e.g., in case of
-robust commands it displays not only the top-level definition but
-also the actual payload code and in case of commands declared with
-\cs{NewDocumentCommand}, etc.\ it also gives you detailed information
-about the argument signature.
-
-
-\section[Preconstructing command names \\ (or otherwise expanding arguments)]
- {Preconstructing command names (or otherwise expanding arguments)}
-\label{sec:preconstructing-csnames}
-
-When declaring new commands with \cs{NewDocumentCommand} or
-\cs{NewCommandCopy} or similar, it is sometimes necessary to
-``construct'' the csname. As a general mechanism the L3 programming
-layer has \cs{exp_args:N...} for this, but there is no mechanism for
-it if \cs{ExplSyntaxOn} is not active (and mixing programming and user
-interface level commands is not a good approach anyhow). We therefore
-offer a mechanism to access this ability using CamelCase naming.
-
-\begin{decl}
- |\UseName| \arg{string} \\
- |\ExpandArgs| \arg{spec} \arg{cmd} \arg{arg1} \dots
-\end{decl}
-
-\cs{UseName} turns the \meta{string} directly into a csname and
-then executes it: this is equivalent to the long-standing
-\LaTeXe{} internal command \cs{@nameuse}, or the L3 programming
-equivalent \cs{use:c}. \cs{ExpandArgs} takes a \meta{spec} which
-describes how to expand the \meta{arguments}, carries out these
-operations then executes the \meta{cmd}. The \meta{spec} uses
-the descriptions offered by the L3 programming layer, and the
-relevant \cs{exp_args:N...} function must exist. Common cases will
-have a \meta{spec} of \texttt{c}, \texttt{cc} or \texttt{Nc}: see below.
-
-As an example, the following declaration provides a method to generate
-copyedit commands:
-\begin{verbatim}
-\NewDocumentCommand\newcopyedit{mO{red}}
- {\newcounter{todo#1}%
- \ExpandArgs{c}\NewDocumentCommand{#1}{s m}%
- {\stepcounter{todo#1}%
- \IfBooleanTF {##1}%
- {\todo[color=#2!10]{\UseName{thetodo#1}: ##2}}%
- {\todo[inline,color=#2!10]{\UseName{thetodo#1}: ##2}}%
- }%
- }
-\end{verbatim}
-Given that declaration you can then write
-\verb/\newcopyedit{note}[blue]/ which defines the command \cs{note}
-and the corresponding counter for you.
-
-A second example is to copy a command by string name using
-\cs{NewCommandCopy}: here we might need to construct both command
-names.
-\begin{verbatim}
-\NewDocumentCommand\savebyname{m}
- {\ExpandArgs{cc}\NewCommandCopy{saved#1}{#1}}
-\end{verbatim}
-
-In the \meta{spec} each \texttt{c} stands for one argument that is
-turned into a `\texttt{c}'ommand. An \texttt{n} represents a
-`\texttt{n}'ormal argument that is not altered and \texttt{N} stands for
-a `\texttt{N}'ormal argument which is also left unchanged, but one
-consisting only of a single token (and usually unbraced). Thus, to
-construct a command from a string only for the second argument of
-\cs{NewCommandCopy} you would write
-\begin{verbatim}
-\ExpandArgs{Nc}\NewCommandCopy\mysectionctr{c@section}
-\end{verbatim}
-There are several other single letters supported in the L3 programming
-layer that \emph{could} be used in the \meta{spec} to manipulate
-arguments in other ways. If you are interested, take a look at the
-\enquote{Argument expansion} section in the L3 programming layer
-documentation in \texttt{interface3.pdf}.
-
-
-
-\section{Expandable floating point (and other) calculations}
-
-The \LaTeX3 programming layer which is part of the format offers a
-rich interface to manipulate floating point variables and values. To
-allow for (simpler) applications to use this on document-level or in
-packages otherwise not making use of the L3 programming layer a few
-interface commands are made available.
-
-
-\begin{decl}
- |\fpeval| \arg{floating point expression}
-\end{decl}
-
-The expandable command \cs{fpeval} takes as its argument a floating
-point expression and produces a result using the normal rules of
-mathematics. As this command is expandable it can be used where \TeX{}
-requires a number and for example within a low-level \cs{edef} operation
-to give a purely numerical result.
-
-
-
-Briefly, the floating point expressions may comprise:
-\begin{itemize}
- \item Basic arithmetic: addition $x\fpbin{+}y$, subtraction $x\fpbin{-}y$,
- multiplication $x\fpbin{*}y$, division $x\fpbin{/}y$, square root~$\sqrt{x}$,
- and parentheses.
- \item Comparison operators: $x\fprel{<}y$,
- $x\fprel{<=}y$, $x\fprel{>?}y$,
- $x\fprel{!=}y$ \emph{etc.}
- \item Boolean logic: sign $\fpop{sign} x$,
- negation $\fpop{!}x$, conjunction
- $x\fprel{\&\&}y$, disjunction $x\fprel{\string|\string|}y$, ternary
- operator $x\fprel{?}y\fprel{:}z$.
- \item Exponentials: $\fpop{exp} x$, $\fpop{ln} x$, $x\mathord{\texttt{\^{}}}y$.
- \item Integer factorial: $\fpop{fact} x$.
- \item Trigonometry: $\fpop{sin} x$, $\fpop{cos} x$, $\fpop{tan} x$, $\fpop{cot} x$, $\fpop{sec}
- x$, $\fpop{csc} x$ expecting their arguments in radians, and
- $\fpop{sind} x$, $\fpop{cosd} x$,
- $\fpop{tand} x$, $\fpop{cotd} x$,
- $\fpop{secd} x$, $\fpop{cscd} x$ expecting their
- arguments in degrees.
- \item Inverse trigonometric functions: $\fpop{asin} x$,
- $\fpop{acos} x$, $\fpop{atan} x$,
- $\fpop{acot} x$, $\fpop{asec} x$,
- $\fpop{acsc} x$ giving a result in radians, and
- $\fpop{asind} x$, $\fpop{acosd} x$,
- $\fpop{atand} x$, $\fpop{acotd} x$,
- $\fpop{asecd} x$, $\fpop{acscd} x$ giving a result
- in degrees.
- \item Extrema: $\fpop{max}(x_{1},x_{2},\ldots)$, $\fpop{min}(x_{1},x_{2},\ldots)$,
- $\fpop{abs}(x)$.
- \item Rounding functions, controlled by two optional
- values, $n$ (number of places, $0$ by default) and
- $t$ (behavior on a tie, $\nan$ by default):
- \begin{itemize}
- \item $\fpop{trunc}(x,n)$ rounds towards zero,
- \item $\fpop{floor}(x,n)$ rounds towards~$-\infty$,
- \item $\fpop{ceil}(x,n)$ rounds towards~$+\infty$,
- \item $\fpop{round}(x,n,t)$ rounds to the closest value, with
- ties rounded to an even value by default, towards zero if $t=0$,
- towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$.
- \end{itemize}
- \item Random numbers: $\fpop{rand}()$, $\fpop{randint}(m,n)$.
- \item Constants: \texttt{pi}, \texttt{deg} (one degree in radians).
- \item Dimensions, automatically expressed in points, \emph{e.g.},
- \texttt{pc} is~$12$.
- \item Automatic conversion (no need for \cs{number}) of
- integer, dimension, and skip variables to floating points numbers,
- expressing dimensions in points and ignoring the stretch and
- shrink components of skips.
- \item Tuples: $(x_1,\ldots{},x_n)$ that can be added together,
- multiplied or divided by a floating point number, and nested.
-\end{itemize}
-
-An example of use could be the following:
-\begin{verbatim}
- \LaTeX{} can now compute: $ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
- = \fpeval{sin(3.5)/2 + 2e-3} $.
-\end{verbatim}
-which produces the following output:
-\begin{quote}
- \LaTeX{} can now compute: $ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
- = \fpeval{sin(3.5)/2 + 2e-3} $.
-\end{quote}
-
-\begin{decl}
- |\inteval| \arg{integer expression}
-\end{decl}
-
- The expandable command \cs{inteval} takes as its argument an integer
- expression and produces a result using the normal rules of
- mathematics with some restrictions, see below. The operations
- recognized are |+|, |-|, |*| and |/| plus parentheses. As this
- command is expandable it can be used where \TeX{} requires a number
- and for example within a low-level \cs{edef} operation to give a
- purely numerical result.
-
- This is basically a thin wrapper for the primitive \cs{numexpr}
- command and therefore has some syntax restrictions. These are:
- \begin{itemize}
- \item \texttt{/} denotes division rounded to the closest integer with
- ties rounded away from zero;
- \item there is an error and the overall expression evaluates to zero
- whenever the absolute value of any intermediate result exceeds
- $2^{31}-1$, except in the case of scaling operations
- $a$\texttt{*}$b$\texttt{/}$c$, for which $a$\texttt{*}$b$ may be
- arbitrarily large;
- \item parentheses may not appear after unary \texttt{+} or
- \texttt{-}, namely placing \texttt{+(} or \texttt{-(} at the start
- of an expression or after \texttt{+}, \texttt{-}, \texttt{*},
- \texttt{/} or~\texttt{(} leads to an error.
- \end{itemize}
-
-An example of use could be the following.
-\begin{verbatim}
-\LaTeX{} can now compute: The sum of the numbers is $\inteval{1 + 2 + 3}$.
-\end{verbatim}
-which results in
-\enquote{\LaTeX{} can now compute: The sum of the numbers is $\inteval{1 + 2 + 3}$.}
-
-
-\begin{decl}
- |\dimeval| \arg{dimen expression} \qquad
- |\skipeval| \arg{skip expression}
-\end{decl}
-
-Similar to \cs{inteval} but computing a length (\texttt{dimen}) or a
-rubber length (\texttt{skip}) value. Both are thin wrappers around
-the corresponding engine primitives, which makes them fast, but
-therefore shows the same syntax peculiars as discussed
-above. Nevertheless, in practice they are usually sufficient. For
-example
-\begin{verbatim}
-\newcommand\calulateheight[1]{%
- \setlength\textheight{\dimeval{\topskip+\baselineskip*\inteval{#1-1}}}}
-\end{verbatim}
-sets the \cs{textheight} to the appropriate value if a page should
-hold a specific number of text lines. Thus after |\calulateheight{40}|
-it is set to \dimeval{\topskip+\baselineskip*\inteval{40-1}}, given
-the values \cs{topskip} (\dimeval{\topskip}) and \cs{baselineskip}
-(\dimeval{\baselineskip}) in the current document.
-
-\section{Case changing}
-
-\TeX{} provides two primitives \cs{uppercase} and \cs{lowercase} for changing
-the case of text. However, these have a range of limitations: they only change
-the case of explicit characters, do not account for the surrounding context, do
-not support UTF-8 input with 8-bit engines, etc. To overcome this problem,
-\LaTeX{} provides the commands \cs{MakeUppercase}, \cs{MakeLowercase} and
-\cs{MakeTitlecase}: these offer significant enhancement over the \TeX{}
-primitives. These commands are engine-robust (\cs{protected}), and so
-can be used in moving arguments.
-
-Upper- and lower-casing are well-understood in general conversation.
-Titlecasing here follows the definition given by the Unicode Consortium: the
-first character of the input will be converted to (broadly) uppercase, and the
-rest of the input to lowercase. The full range of Unicode UTF-8 input can be
-supported, with the proviso that at present the characters set up with 8-bit
-engines match those available in standard input encodings (|T1|, |T2|, |LGR|).
-\begin{quotation}
- \begin{tabular}{rl}
- |\MakeUppercase{hello WORLD ßüé}| & \MakeUppercase{hello WORLD ßüé} \\
- |\MakeLowercase{hello WORLD ßüé}| & \MakeLowercase{hello WORLD ßüé} \\
- |\MakeTitlecase{hello WORLD ßüé}| & \MakeTitlecase{hello WORLD ßüé} \\
- \end{tabular}
-\end{quotation}
-
-The input given to these commands is `expanded' before case changing is
-applied. This means that any commands within the input that convert to pure
-text will be case changed. Mathematical content is automatically excluded, as
-are the arguments to the commands \cs{label}, \cs{ref}, \cs{cite}, \cs{begin}
-and \cs{end}. Additional exclusions can be added using the command
-\cs{AddToNoCaseChangeList}. Input can be excluded from case changing using the
-command \cs{NoCaseChange}.
-\begin{quotation}
- \begin{tabular}{rl}
- |\MakeUppercase{Some text $y = mx + c$}|
- & \MakeUppercase{Some text $y = mx + c$} \\
- |\MakeUppercase{\NoCaseChange{iPhone}}|
- & \MakeLowercase{\NoCaseChange{iPhone}} \\
- \end{tabular}
-\end{quotation}
-
-To allow robust commands to be used within case changing \emph{and} to produce
-the expected output, two additional control commands are available.
-\cs{CaseSwitch} allows the user to specify the result for the four possible
-cases
-\begin{itemize}
- \item No case changing
- \item Uppercasing
- \item Lowercasing
- \item Titlecasing (only applies for the start of the input)
-\end{itemize}
-The command \cs{DeclareCaseChangeEquivalent} provides a way to substitute a
-command by an alternative version when it is found inside a case changing
-situation.
-
-\end{document}
diff --git a/macros/latex/base/utf8ienc.dtx b/macros/latex/base/utf8ienc.dtx
index 363998a853..a2b25fd3ab 100644
--- a/macros/latex/base/utf8ienc.dtx
+++ b/macros/latex/base/utf8ienc.dtx
@@ -152,9 +152,9 @@
% from \texttt{"C2} to \texttt{"DF} are defined to parse for a
% second octet following, the characters from \texttt{"E0} to
% \texttt{"EF} are defined to parse for two more octets and finally
-% the characters from \texttt{"F0} to \texttt{"F3} are defined to
+% the characters from \texttt{"F0} to \texttt{"F4} are defined to
% parse for three additional octets. These additional octets are
-% always in the range \texttt{"80} to \texttt{"B9}.
+% always in the range \texttt{"80} to \texttt{"BF}.
%
% Thus, when such a character is encountered in the document (so
% long as expansion is not prohibited) a defined number of
diff --git a/macros/latex/base/utf8ienc.pdf b/macros/latex/base/utf8ienc.pdf
index 2d31ae6666..1beff8335b 100644
--- a/macros/latex/base/utf8ienc.pdf
+++ b/macros/latex/base/utf8ienc.pdf
Binary files differ
diff --git a/macros/latex/base/webcomp.pdf b/macros/latex/base/webcomp.pdf
index 5282d9681c..c7998b003b 100644
--- a/macros/latex/base/webcomp.pdf
+++ b/macros/latex/base/webcomp.pdf
Binary files differ