summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-03-28 03:01:34 +0000
committerNorbert Preining <norbert@preining.info>2024-03-28 03:01:34 +0000
commit79e9e48f9496fe82b7e76b2b318d24e9aab1ca8a (patch)
tree5c7e66ed056f7855cb4caee718c5406c947e3af8 /macros/latex-dev/base
parent31fa8cd73bab8480d38dae3a89ca578f337d6bbd (diff)
CTAN sync 202403280301
Diffstat (limited to 'macros/latex-dev/base')
-rw-r--r--macros/latex-dev/base/README.md2
-rw-r--r--macros/latex-dev/base/alltt.pdfbin223861 -> 223861 bytes
-rw-r--r--macros/latex-dev/base/cfgguide.pdfbin264168 -> 264168 bytes
-rw-r--r--macros/latex-dev/base/changes.txt29
-rw-r--r--macros/latex-dev/base/classes.pdfbin560294 -> 560294 bytes
-rw-r--r--macros/latex-dev/base/clsguide-historic.pdfbin415956 -> 415956 bytes
-rw-r--r--macros/latex-dev/base/clsguide.pdfbin489795 -> 490200 bytes
-rw-r--r--macros/latex-dev/base/clsguide.tex34
-rw-r--r--macros/latex-dev/base/cmfonts.pdfbin292600 -> 292600 bytes
-rw-r--r--macros/latex-dev/base/cyrguide.pdfbin257359 -> 257359 bytes
-rw-r--r--macros/latex-dev/base/doc-code.pdfbin1078428 -> 1078116 bytes
-rw-r--r--macros/latex-dev/base/doc.pdfbin757049 -> 756736 bytes
-rw-r--r--macros/latex-dev/base/docstrip.pdfbin506365 -> 506341 bytes
-rw-r--r--macros/latex-dev/base/encguide.pdfbin1318576 -> 1318576 bytes
-rw-r--r--macros/latex-dev/base/exscale.pdfbin204708 -> 204708 bytes
-rw-r--r--macros/latex-dev/base/fix-cm.pdfbin287727 -> 287727 bytes
-rw-r--r--macros/latex-dev/base/fntguide.pdfbin517708 -> 522678 bytes
-rw-r--r--macros/latex-dev/base/fntguide.tex81
-rw-r--r--macros/latex-dev/base/graphpap.pdfbin161722 -> 161722 bytes
-rw-r--r--macros/latex-dev/base/ifthen.dtx29
-rw-r--r--macros/latex-dev/base/ifthen.pdfbin221219 -> 222460 bytes
-rw-r--r--macros/latex-dev/base/inputenc.pdfbin318372 -> 318372 bytes
-rw-r--r--macros/latex-dev/base/lamport-manual.pdfbin170876 -> 170876 bytes
-rw-r--r--macros/latex-dev/base/latexrelease.pdfbin282095 -> 282095 bytes
-rw-r--r--macros/latex-dev/base/latexsym.pdfbin200759 -> 200759 bytes
-rw-r--r--macros/latex-dev/base/lb2.pdfbin253116 -> 253116 bytes
-rw-r--r--macros/latex-dev/base/letter.pdfbin337772 -> 337375 bytes
-rw-r--r--macros/latex-dev/base/lgc2.pdfbin217659 -> 217659 bytes
-rw-r--r--macros/latex-dev/base/lppl.pdfbin132370 -> 132370 bytes
-rw-r--r--macros/latex-dev/base/ltclass.dtx24
-rw-r--r--macros/latex-dev/base/ltcmd.dtx26
-rw-r--r--macros/latex-dev/base/ltcmdhooks-code.pdfbin752365 -> 753293 bytes
-rw-r--r--macros/latex-dev/base/ltcmdhooks-doc.pdfbin497334 -> 498577 bytes
-rw-r--r--macros/latex-dev/base/ltcmdhooks.dtx14
-rw-r--r--macros/latex-dev/base/ltdefns.dtx6
-rw-r--r--macros/latex-dev/base/ltfilehook-code.pdfbin803049 -> 806388 bytes
-rw-r--r--macros/latex-dev/base/ltfilehook-doc.pdfbin548011 -> 551737 bytes
-rw-r--r--macros/latex-dev/base/ltfilehook.dtx12
-rw-r--r--macros/latex-dev/base/lthooks-code.pdfbin1248644 -> 1248786 bytes
-rw-r--r--macros/latex-dev/base/lthooks-doc.pdfbin758273 -> 758584 bytes
-rw-r--r--macros/latex-dev/base/lthooks.dtx4
-rw-r--r--macros/latex-dev/base/ltluatex.pdfbin325142 -> 325142 bytes
-rw-r--r--macros/latex-dev/base/ltmarks-code.pdfbin711767 -> 711363 bytes
-rw-r--r--macros/latex-dev/base/ltmarks-doc.pdfbin575242 -> 574839 bytes
-rw-r--r--macros/latex-dev/base/ltnews.pdfbin1390205 -> 1394343 bytes
-rw-r--r--macros/latex-dev/base/ltnews01.pdfbin169553 -> 169553 bytes
-rw-r--r--macros/latex-dev/base/ltnews02.pdfbin151773 -> 151773 bytes
-rw-r--r--macros/latex-dev/base/ltnews03.pdfbin151324 -> 151324 bytes
-rw-r--r--macros/latex-dev/base/ltnews04.pdfbin152551 -> 152551 bytes
-rw-r--r--macros/latex-dev/base/ltnews05.pdfbin175211 -> 175211 bytes
-rw-r--r--macros/latex-dev/base/ltnews06.pdfbin142867 -> 142867 bytes
-rw-r--r--macros/latex-dev/base/ltnews07.pdfbin138214 -> 138214 bytes
-rw-r--r--macros/latex-dev/base/ltnews08.pdfbin155442 -> 155442 bytes
-rw-r--r--macros/latex-dev/base/ltnews09.pdfbin130028 -> 130028 bytes
-rw-r--r--macros/latex-dev/base/ltnews10.pdfbin169433 -> 169433 bytes
-rw-r--r--macros/latex-dev/base/ltnews11.pdfbin112208 -> 112208 bytes
-rw-r--r--macros/latex-dev/base/ltnews12.pdfbin156764 -> 156764 bytes
-rw-r--r--macros/latex-dev/base/ltnews13.pdfbin182483 -> 182483 bytes
-rw-r--r--macros/latex-dev/base/ltnews14.pdfbin170722 -> 170722 bytes
-rw-r--r--macros/latex-dev/base/ltnews15.pdfbin130328 -> 130328 bytes
-rw-r--r--macros/latex-dev/base/ltnews16.pdfbin138107 -> 138107 bytes
-rw-r--r--macros/latex-dev/base/ltnews17.pdfbin166269 -> 166269 bytes
-rw-r--r--macros/latex-dev/base/ltnews18.pdfbin39839 -> 39839 bytes
-rw-r--r--macros/latex-dev/base/ltnews19.pdfbin225936 -> 225936 bytes
-rw-r--r--macros/latex-dev/base/ltnews20.pdfbin318193 -> 318193 bytes
-rw-r--r--macros/latex-dev/base/ltnews21.pdfbin245228 -> 245228 bytes
-rw-r--r--macros/latex-dev/base/ltnews22.pdfbin318026 -> 318026 bytes
-rw-r--r--macros/latex-dev/base/ltnews23.pdfbin286824 -> 286824 bytes
-rw-r--r--macros/latex-dev/base/ltnews24.pdfbin265497 -> 265497 bytes
-rw-r--r--macros/latex-dev/base/ltnews25.pdfbin205100 -> 205100 bytes
-rw-r--r--macros/latex-dev/base/ltnews26.pdfbin379733 -> 379733 bytes
-rw-r--r--macros/latex-dev/base/ltnews27.pdfbin251283 -> 251283 bytes
-rw-r--r--macros/latex-dev/base/ltnews28.pdfbin376933 -> 376933 bytes
-rw-r--r--macros/latex-dev/base/ltnews29.pdfbin455437 -> 455437 bytes
-rw-r--r--macros/latex-dev/base/ltnews30.pdfbin512240 -> 512240 bytes
-rw-r--r--macros/latex-dev/base/ltnews31.pdfbin526688 -> 526681 bytes
-rw-r--r--macros/latex-dev/base/ltnews31.tex4
-rw-r--r--macros/latex-dev/base/ltnews32.pdfbin546540 -> 546540 bytes
-rw-r--r--macros/latex-dev/base/ltnews33.pdfbin522757 -> 522757 bytes
-rw-r--r--macros/latex-dev/base/ltnews34.pdfbin508345 -> 508345 bytes
-rw-r--r--macros/latex-dev/base/ltnews35.pdfbin563307 -> 563307 bytes
-rw-r--r--macros/latex-dev/base/ltnews36.pdfbin517934 -> 517934 bytes
-rw-r--r--macros/latex-dev/base/ltnews37.pdfbin456933 -> 456933 bytes
-rw-r--r--macros/latex-dev/base/ltnews38.pdfbin523675 -> 523675 bytes
-rw-r--r--macros/latex-dev/base/ltnews39.pdfbin473345 -> 502104 bytes
-rw-r--r--macros/latex-dev/base/ltnews39.tex73
-rw-r--r--macros/latex-dev/base/ltoutput.dtx4
-rw-r--r--macros/latex-dev/base/ltpara-code.pdfbin672114 -> 671774 bytes
-rw-r--r--macros/latex-dev/base/ltpara-doc.pdfbin560037 -> 559700 bytes
-rw-r--r--macros/latex-dev/base/ltproperties-code.pdfbin557051 -> 556519 bytes
-rw-r--r--macros/latex-dev/base/ltproperties-doc.pdfbin432129 -> 431622 bytes
-rw-r--r--macros/latex-dev/base/ltsect.dtx10
-rw-r--r--macros/latex-dev/base/ltshipout-code.pdfbin821580 -> 821264 bytes
-rw-r--r--macros/latex-dev/base/ltshipout-doc.pdfbin567728 -> 567426 bytes
-rw-r--r--macros/latex-dev/base/ltsockets-code.pdfbin598937 -> 598619 bytes
-rw-r--r--macros/latex-dev/base/ltsockets-doc.pdfbin481774 -> 481459 bytes
-rw-r--r--macros/latex-dev/base/lttemplates.dtx15
-rw-r--r--macros/latex-dev/base/ltthm.dtx38
-rw-r--r--macros/latex-dev/base/ltvers.dtx2
-rw-r--r--macros/latex-dev/base/ltx3info.pdfbin219358 -> 219358 bytes
-rw-r--r--macros/latex-dev/base/ltxdoc.pdfbin244141 -> 244141 bytes
-rw-r--r--macros/latex-dev/base/makeindx.pdfbin165816 -> 165816 bytes
-rw-r--r--macros/latex-dev/base/modguide.pdfbin257825 -> 257825 bytes
-rw-r--r--macros/latex-dev/base/nfssfont.pdfbin211314 -> 211314 bytes
-rw-r--r--macros/latex-dev/base/proc.pdfbin227065 -> 227065 bytes
-rw-r--r--macros/latex-dev/base/slides.pdfbin375493 -> 375493 bytes
-rw-r--r--macros/latex-dev/base/slifonts.pdfbin233905 -> 233905 bytes
-rw-r--r--macros/latex-dev/base/source2e.pdfbin6239225 -> 6245204 bytes
-rw-r--r--macros/latex-dev/base/syntonly.pdfbin189440 -> 189054 bytes
-rw-r--r--macros/latex-dev/base/tlc2.pdfbin291143 -> 291143 bytes
-rw-r--r--macros/latex-dev/base/tlc3.err94
-rw-r--r--macros/latex-dev/base/tlc3.pdfbin345764 -> 367886 bytes
-rw-r--r--macros/latex-dev/base/tulm.pdfbin162773 -> 162773 bytes
-rw-r--r--macros/latex-dev/base/usrguide-historic.pdfbin439393 -> 439393 bytes
-rw-r--r--macros/latex-dev/base/usrguide.pdfbin483354 -> 487820 bytes
-rw-r--r--macros/latex-dev/base/usrguide.tex101
-rw-r--r--macros/latex-dev/base/utf8ienc.pdfbin353399 -> 353274 bytes
-rw-r--r--macros/latex-dev/base/webcomp.pdfbin146197 -> 146197 bytes
118 files changed, 502 insertions, 100 deletions
diff --git a/macros/latex-dev/base/README.md b/macros/latex-dev/base/README.md
index ed14347e98..528675aaa8 100644
--- a/macros/latex-dev/base/README.md
+++ b/macros/latex-dev/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2024-06-01 pre-release 1
+Release 2024-06-01 pre-release 2
Overview
--------
diff --git a/macros/latex-dev/base/alltt.pdf b/macros/latex-dev/base/alltt.pdf
index 54c606fcf2..6bee508aa6 100644
--- a/macros/latex-dev/base/alltt.pdf
+++ b/macros/latex-dev/base/alltt.pdf
Binary files differ
diff --git a/macros/latex-dev/base/cfgguide.pdf b/macros/latex-dev/base/cfgguide.pdf
index 2456f57219..6ade9c5f60 100644
--- a/macros/latex-dev/base/cfgguide.pdf
+++ b/macros/latex-dev/base/cfgguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/changes.txt b/macros/latex-dev/base/changes.txt
index dec230e890..52fbd04f08 100644
--- a/macros/latex-dev/base/changes.txt
+++ b/macros/latex-dev/base/changes.txt
@@ -6,6 +6,35 @@ to completeness or accuracy and it contains some references to files that are
not part of the distribution.
================================================================================
+
+2024-03-22 Yukai Chou <muzimuzhi@gmail.com>
+ * ltfilehook.dtx
+ Apply one-step expansion to raw option list, when a package
+ providing key-value options is loaded the second time. The same
+ expansion for first-time loading was requested in gh/580. (gh/1298)
+
+2024-03-21 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltcmd.dtx
+ Collect \endlinechar as \obeyedline
+ * usrguide.tex
+ Document use of \obeyedline in +v arguments
+
+2024-03-16 David Carlisle <David.Carlisle@latex-project.org>
+ * ifthen.dtx guard against active <=> (gh/756)
+
+2024-03-15 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * ltthm.dtx: add link targets to begintheorem commands (hyperref/332)
+
+2024-03-13 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+ * ltfilehook.dtx (subsection{Kernel, class, and package interfaces for \LaTeX{}}):
+ Clarify that the commands in this section are meant to be usable
+ by the kernel and in classes or packages (gh/1292)
+
+2024-02-15 Joseph Wright <Joseph.Wright@latex-project.org>
+ * lttemplates.dtx
+ Re-introduce \IfInstanceExist(TF)
+
2024-01-30 David Carlisle <David.Carlisle@latex-project.org>
* ltclass.dtx: check that \RequirePackage, \documentclass, \usepackage
and related commands are at top level (gh/1185)
diff --git a/macros/latex-dev/base/classes.pdf b/macros/latex-dev/base/classes.pdf
index c45fd63ac0..83b67d7f5e 100644
--- a/macros/latex-dev/base/classes.pdf
+++ b/macros/latex-dev/base/classes.pdf
Binary files differ
diff --git a/macros/latex-dev/base/clsguide-historic.pdf b/macros/latex-dev/base/clsguide-historic.pdf
index 89df4cf17e..60b5051e6a 100644
--- a/macros/latex-dev/base/clsguide-historic.pdf
+++ b/macros/latex-dev/base/clsguide-historic.pdf
Binary files differ
diff --git a/macros/latex-dev/base/clsguide.pdf b/macros/latex-dev/base/clsguide.pdf
index b6146de10e..08cc5b5a17 100644
--- a/macros/latex-dev/base/clsguide.pdf
+++ b/macros/latex-dev/base/clsguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/clsguide.tex b/macros/latex-dev/base/clsguide.tex
index c23f0a55e9..0e1927827f 100644
--- a/macros/latex-dev/base/clsguide.tex
+++ b/macros/latex-dev/base/clsguide.tex
@@ -33,8 +33,8 @@
\usepackage[T1]{fontenc} % needed for \textbackslash in tt
\usepackage{csquotes}
-\title{\LaTeX\ for package and class authors --- current version}
-\author{\copyright~Copyright 2023, \LaTeX\ Project Team.\\
+\title{\LaTeX\ for package and class authors\\current version}
+\author{\copyright~Copyright 2023--2024, \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
@@ -42,7 +42,7 @@
\texttt{clsguide.tex} for full details.}%
}
-\date{2023-12-02}
+\date{2024-03-17}
\NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}}
\NewDocumentCommand\marg{m}{\arg{#1}}
@@ -64,7 +64,7 @@
\section{Introduction}
\LaTeXe{} was released in 1994 and added a number of then-new concepts to
-\LaTeX{}. For package and class authors, these are described in
+\LaTeX{}. For package and class authors, these are described in the document
\texttt{clsguide-historic}, which has largely remained unchanged. Since then,
the \LaTeX{} team have worked on a number of ideas, firstly a programming
language for \LaTeX{} (L3 programming layer) and then a range of tools for
@@ -1104,11 +1104,13 @@ team strongly suggest using the L3 programming layer commands in the
Suppose that you want to define an environment for displaying text that is
numbered as an equation. A straightforward way to do this is as follows:
\begin{verbatim}
- \newenvironment{texteqn}
- {\begin{equation}
- \begin{minipage}{0.9\linewidth}}
- {\end{minipage}
- \end{equation}}
+ \newenvironment{texteqn}{%
+ \begin{equation}%
+ \begin{minipage}{0.9\linewidth}%
+ }{%
+ \end{minipage}%
+ \end{equation}%
+ }
\end{verbatim}
However, if you have tried this then you will probably have noticed that it
does not work perfectly when used in the middle of a paragraph because an
@@ -1118,12 +1120,14 @@ environment.
You can avoid this problem using |\ignorespacesafterend|; it should be
inserted as shown here:
\begin{verbatim}
- \newenvironment{texteqn}
- {\begin{equation}
- \begin{minipage}{0.9\linewidth}}
- {\end{minipage}
- \end{equation}
- \ignorespacesafterend}
+ \newenvironment{texteqn}{%
+ \begin{equation}%
+ \begin{minipage}{0.9\linewidth}%
+ }{%
+ \end{minipage}%
+ \end{equation}%
+ \ignorespacesafterend
+ }
\end{verbatim}
This command may also have other uses.
diff --git a/macros/latex-dev/base/cmfonts.pdf b/macros/latex-dev/base/cmfonts.pdf
index e417fb5389..0d48147368 100644
--- a/macros/latex-dev/base/cmfonts.pdf
+++ b/macros/latex-dev/base/cmfonts.pdf
Binary files differ
diff --git a/macros/latex-dev/base/cyrguide.pdf b/macros/latex-dev/base/cyrguide.pdf
index f9f6644c9a..33e984bd52 100644
--- a/macros/latex-dev/base/cyrguide.pdf
+++ b/macros/latex-dev/base/cyrguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/doc-code.pdf b/macros/latex-dev/base/doc-code.pdf
index 67ab8bf64d..dcf4ace4b3 100644
--- a/macros/latex-dev/base/doc-code.pdf
+++ b/macros/latex-dev/base/doc-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/doc.pdf b/macros/latex-dev/base/doc.pdf
index 1783af35f6..caebfcc016 100644
--- a/macros/latex-dev/base/doc.pdf
+++ b/macros/latex-dev/base/doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/docstrip.pdf b/macros/latex-dev/base/docstrip.pdf
index 55e029485c..3a2b6c1130 100644
--- a/macros/latex-dev/base/docstrip.pdf
+++ b/macros/latex-dev/base/docstrip.pdf
Binary files differ
diff --git a/macros/latex-dev/base/encguide.pdf b/macros/latex-dev/base/encguide.pdf
index 3653bc1dbf..c0703dda34 100644
--- a/macros/latex-dev/base/encguide.pdf
+++ b/macros/latex-dev/base/encguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/exscale.pdf b/macros/latex-dev/base/exscale.pdf
index 9fe9e195db..3f8d43d81b 100644
--- a/macros/latex-dev/base/exscale.pdf
+++ b/macros/latex-dev/base/exscale.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fix-cm.pdf b/macros/latex-dev/base/fix-cm.pdf
index d1eaa48bd0..94dad320aa 100644
--- a/macros/latex-dev/base/fix-cm.pdf
+++ b/macros/latex-dev/base/fix-cm.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fntguide.pdf b/macros/latex-dev/base/fntguide.pdf
index d6dda9e8e2..0a6e2d8a0f 100644
--- a/macros/latex-dev/base/fntguide.pdf
+++ b/macros/latex-dev/base/fntguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fntguide.tex b/macros/latex-dev/base/fntguide.tex
index 7cf5d23981..6106204a55 100644
--- a/macros/latex-dev/base/fntguide.tex
+++ b/macros/latex-dev/base/fntguide.tex
@@ -42,7 +42,7 @@
\title{\LaTeXe{} font selection}
-\author{\copyright~Copyright 1995--2023, \LaTeX\ Project
+\author{\copyright~Copyright 1995--2024, \LaTeX\ Project
Team.\thanks{Thanks to Arash Esbati for documenting the
newer NFSS features of 2020}\\
All rights reserved.%
@@ -52,7 +52,7 @@
\texttt{fntguide.tex} for full details.}%
}
-\date{October 2023}
+\date{March 2024}
\begin{document}
@@ -1997,6 +1997,83 @@ For example,
would use |sb| (semi-bold) when |\rmfamily\bfseries| is requested in
document.
+\subsection{Handling of current and requested font series and shape}
+
+In the original NFSS implementation, the series was a single attribute
+stored in |\f@series| and so one always had to specify both weight and
+width together. Hence, it was impossible to typeset a paragraph in a
+condensed font and inside have a few words in bold weight (but still
+condensed) without doing this manually by requesting
+|\fontseries{bc}\selectfont|.
+
+\NEWfeature{2020/02/02}
+The new implementation now works differently by looking both at the
+current value of |\f@series| and the requested new series and out of
+that combination selects a resulting series value. Thus, if the current
+series is |c| and we ask for |b|, we now get |bc|. This is done by
+consulting a simple lookup table where entries can be added or changed
+with |\DeclareFontSeriesChangeRule|:
+\begin{decl}
+ |\DeclareFontSeriesChangeRule| %
+ \arg{current series} \arg{requested series} \\
+ \leavevmode\hfill \arg{result} \arg{alternative result}
+\end{decl}
+
+The \m{current series} is the value currently stored in |\f@series|,
+\m{requested series} is the new series requested, \m{result} is the
+combined value if it exists for the given font family, and
+\m{alternative result} is a fallback in case \m{result} doesn't exist.
+The example above now looks like this:
+\begin{verbatim}
+ \DeclareFontSeriesChangeRule{c}{b}{bc}{}
+\end{verbatim}
+which means: switch to the |bc| series if |c| is current and |b| is
+(additionally) requested, and if the current font doesn't have the
+combination, start the normal font substitution, i.e., switch back shape
+to |n| and if this combination doesn't succeed, switch back series to
+|m| as well, ending up with |m/n|.
+
+Another example is:
+\begin{verbatim}
+ \DeclareFontSeriesChangeRule{bc}{sc}{bsc}{bc}
+\end{verbatim}
+which means: if the current series is bold condensed (|bc|) and
+semi-condensed (|sc|) is requested (additionally), try bold
+semi-condensed (|bsc|) if available but stay with bold condensed if not.
+
+A special value is |m| which is used to reset both weight and width. In
+order to reset only one of them, the special values |?m| (reset width)
+and |m?| (reset weight) are provided, e.g.:
+\begin{verbatim}
+ \DeclareFontSeriesChangeRule{bc}{m?}{c}{}
+\end{verbatim}
+
+The corresponding macro |\DeclareFontShapeChangeRule| is also provided
+for setting database entries for font shapes:
+\begin{decl}
+ |\DeclareFontShapeChangeRule| %
+ \arg{current shape} \arg{requested shape} \\
+ \leavevmode\hfill \arg{result} \arg{alternative result}
+\end{decl}
+
+An example would be:
+\begin{verbatim}
+ \DeclareFontShapeChangeRule{it}{sc}{scit}{scsl}
+\end{verbatim}
+If italics is the current shape and small caps is requested, switch to
+|scit| (small caps italics) and if that doesn't exist, try |scsl| (small
+caps slanted).
+
+Finally, it is also possible to overrule the entries in the lookup
+tables and forcibly select a series or shape with:
+\begin{decl}
+ |\fontseriesforce| \arg{series} \qquad |\fontshapeforce| \arg{shape}
+\end{decl}
+
+With the example above for the |c| series, issuing |\fontseriesforce{b}|
+means that the series switches to |b| and not to |bc|. Same applies to
+|\fontshapeforce|.
+
\subsection{Handling of nested emphasis}
\begin{decl}
diff --git a/macros/latex-dev/base/graphpap.pdf b/macros/latex-dev/base/graphpap.pdf
index 2f422e2a84..cdf8b6c113 100644
--- a/macros/latex-dev/base/graphpap.pdf
+++ b/macros/latex-dev/base/graphpap.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ifthen.dtx b/macros/latex-dev/base/ifthen.dtx
index ef7d8ab398..0bbe361211 100644
--- a/macros/latex-dev/base/ifthen.dtx
+++ b/macros/latex-dev/base/ifthen.dtx
@@ -30,7 +30,7 @@
%%
%% File `ifthen.dtx'.
%% Copyright (C) 1991 by Leslie Lamport
-%% Copyright (C) 1994-2001 LaTeX project, David Carlisle
+%% Copyright (C) 1994-2024 LaTeX project, David Carlisle
%% all rights reserved.
%%
%
@@ -42,7 +42,7 @@
%<driver>\ProvidesFile{ifthen.drv}
% \fi
% \ProvidesFile{ifthen.dtx}
- [2022/04/13 v1.1d Standard LaTeX ifthen package (DPC)]
+ [2024/03/16 v1.1e Standard LaTeX ifthen package (DPC)]
%
% \iffalse
%<*driver>
@@ -273,15 +273,35 @@
\ifx##1\relax\z@\else\expandafter##2##1\fi}}}
% \end{macrocode}
% \begin{macrocode}
+\begingroup
+\lccode`\~`\> %
+\catcode`\+\active
+\lccode`\+`\< %
+\catcode`\!\active
+\lccode`\!`\= %
+\lowercase{\endgroup
+% \end{macrocode}
+% \begin{macrocode}
+\def\TE@repl@active{%
+ \TE@repl~>%
+ \TE@repl+<%
+ \TE@repl!=%
+}
+% \end{macrocode}
+% \begin{macrocode}
\long\def\ifthenelse#1{%
% \end{macrocode}
% \changes{v1.0h}{1994/05/14}{Use \cs{TE@repl}}
+% \changes{v1.1e}{2024/03/16}{replace active \cs{ifnum} syntax}
% \begin{macrocode}
\toks@{#1}%
\TE@repl\or\TE@or
\TE@repl\and\TE@and
\TE@repl\not\TE@neg
% \end{macrocode}
+% \begin{macrocode}
+ \TE@repl@active
+% \end{macrocode}
%
% \changes{v1.1c}{2001/05/25}{Added \cs{AND}, \cs{OR} and \cs{NOT} as
% boolean operators as alternative to the lower case versions
@@ -353,7 +373,10 @@
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
- \fi}
+ \fi}%
+% \end{macrocode}
+% \begin{macrocode}
+}
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex-dev/base/ifthen.pdf b/macros/latex-dev/base/ifthen.pdf
index d5d09c8f6a..8d9001b8e9 100644
--- a/macros/latex-dev/base/ifthen.pdf
+++ b/macros/latex-dev/base/ifthen.pdf
Binary files differ
diff --git a/macros/latex-dev/base/inputenc.pdf b/macros/latex-dev/base/inputenc.pdf
index bfa0203fdc..a873c7cfac 100644
--- a/macros/latex-dev/base/inputenc.pdf
+++ b/macros/latex-dev/base/inputenc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lamport-manual.pdf b/macros/latex-dev/base/lamport-manual.pdf
index ae4146963f..7e4062040b 100644
--- a/macros/latex-dev/base/lamport-manual.pdf
+++ b/macros/latex-dev/base/lamport-manual.pdf
Binary files differ
diff --git a/macros/latex-dev/base/latexrelease.pdf b/macros/latex-dev/base/latexrelease.pdf
index 34a4481bc3..ac46e18d57 100644
--- a/macros/latex-dev/base/latexrelease.pdf
+++ b/macros/latex-dev/base/latexrelease.pdf
Binary files differ
diff --git a/macros/latex-dev/base/latexsym.pdf b/macros/latex-dev/base/latexsym.pdf
index 444ae58d37..c50846584c 100644
--- a/macros/latex-dev/base/latexsym.pdf
+++ b/macros/latex-dev/base/latexsym.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lb2.pdf b/macros/latex-dev/base/lb2.pdf
index 91a6b37f7d..3e49e79622 100644
--- a/macros/latex-dev/base/lb2.pdf
+++ b/macros/latex-dev/base/lb2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/letter.pdf b/macros/latex-dev/base/letter.pdf
index 8eeb8e9c2e..c4f2404bce 100644
--- a/macros/latex-dev/base/letter.pdf
+++ b/macros/latex-dev/base/letter.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lgc2.pdf b/macros/latex-dev/base/lgc2.pdf
index 9abfbe67df..9febd117bb 100644
--- a/macros/latex-dev/base/lgc2.pdf
+++ b/macros/latex-dev/base/lgc2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lppl.pdf b/macros/latex-dev/base/lppl.pdf
index 880331d70f..00092d1c3b 100644
--- a/macros/latex-dev/base/lppl.pdf
+++ b/macros/latex-dev/base/lppl.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltclass.dtx b/macros/latex-dev/base/ltclass.dtx
index c6c0495fca..1948db2c6b 100644
--- a/macros/latex-dev/base/ltclass.dtx
+++ b/macros/latex-dev/base/ltclass.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2024/02/14 v1.5i LaTeX Kernel (Class & Package Interface)]
+ [2024/03/22 v1.5j LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -1327,11 +1327,11 @@
% \changes{v1.4c}{2021/06/06}
% {apply \cs{expandafter} to raw options for gh/580}
% \begin{macrocode}
- \@ifundefined{@raw@opt@#3.#1}%
- {\expandafter\gdef\csname @raw@opt@#3.#1\expandafter\endcsname
- \expandafter{#2}}%
- {\expandafter\g@addto@macro\csname @raw@opt@#3.#1\expandafter\endcsname
- \expandafter{\expandafter,#2}}%
+ \@ifundefined{@raw@opt@#3.#1}%
+ {\expandafter\gdef\csname @raw@opt@#3.#1\expandafter\endcsname
+ \expandafter{#2}}%
+ {\expandafter\g@addto@macro\csname @raw@opt@#3.#1\expandafter\endcsname
+ \expandafter{\expandafter,#2}}%
}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
@@ -2243,9 +2243,17 @@
% \end{macrocode}
% \changes{v1.5d}{2022/10/10}{Use \cs{protected@edef}.}
% \begin{macrocode}
- \expandafter\protected@edef\csname opt@\@currname.\@currext\endcsname
+ \expandafter\protected@edef
+ \csname opt@\@currname.\@currext\endcsname
{\zap@space#2 \@empty}%
- \@namedef{@raw@opt@\@currname.\@currext}{#2}%
+% \end{macrocode}
+% \changes{v1.5j}{2024/03/22}
+% {Apply one-step expansion to raw option list,
+% to be consistent with change for gh/580 (gh/1298).}
+% \begin{macrocode}
+ \expandafter\def
+ \csname @raw@opt@\@currname.\@currext\expandafter\endcsname
+ \expandafter{#2}%
\@nameuse{opt@handler@\@currname.\@currext}%
}%
}%
diff --git a/macros/latex-dev/base/ltcmd.dtx b/macros/latex-dev/base/ltcmd.dtx
index 1733af5416..f57ceeedff 100644
--- a/macros/latex-dev/base/ltcmd.dtx
+++ b/macros/latex-dev/base/ltcmd.dtx
@@ -34,8 +34,8 @@
%%% From File: ltcmd.dtx
%
% \begin{macrocode}
-\def\ltcmdversion{v1.2c}
-\def\ltcmddate{2024-02-08}
+\def\ltcmdversion{v1.2d}
+\def\ltcmddate{2024-03-21}
% \end{macrocode}
%
%<*driver>
@@ -3681,18 +3681,38 @@
% \end{macro}
%
% \begin{macro}{\@@_grab_v_aux_put:N}
+% \changes{v1.2d}{2024/03/21}{Collect \cs{endlinechar} as \cs{obeyedline}}
% Storing one token in the collected argument. Most tokens are
% converted to category code $12$, with the exception of active
% characters, and spaces (not sure what should be done for those).
% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2024/06/01}{\@@_grab_v_aux_put:N}%
+%<latexrelease> {Endlines~as~\obeyedline}
\cs_new_protected:Npn \@@_grab_v_aux_put:N #1
{
\tl_put_right:Nx \l_@@_v_arg_tl
{
\token_if_active:NTF #1
- { \exp_not:N #1 } { \token_to_str:N #1 }
+ { \exp_not:N #1 }
+ {
+ \int_compare:nNnTF {`#1} = \tex_endlinechar:D
+ { \exp_not:N \obeyedline }
+ { \token_to_str:N #1 }
+ }
}
}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/10/01}{\@@_grab_v_aux_put:N}%
+%<latexrelease> {Endlines~as~\obeyedline}
+%<latexrelease>\cs_new_protected:Npn \@@_grab_v_aux_put:N #1
+%<latexrelease> {
+%<latexrelease> \tl_put_right:Nx \l_@@_v_arg_tl
+%<latexrelease> {
+%<latexrelease> \token_if_active:NTF #1
+%<latexrelease> { \exp_not:N #1 } { \token_to_str:N #1 }
+%<latexrelease> }
+%<latexrelease> }
+%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex-dev/base/ltcmdhooks-code.pdf b/macros/latex-dev/base/ltcmdhooks-code.pdf
index 8abe240bae..1429b2063c 100644
--- a/macros/latex-dev/base/ltcmdhooks-code.pdf
+++ b/macros/latex-dev/base/ltcmdhooks-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltcmdhooks-doc.pdf b/macros/latex-dev/base/ltcmdhooks-doc.pdf
index 6424ad0033..cd9af57523 100644
--- a/macros/latex-dev/base/ltcmdhooks-doc.pdf
+++ b/macros/latex-dev/base/ltcmdhooks-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltcmdhooks.dtx b/macros/latex-dev/base/ltcmdhooks.dtx
index bb071e629c..a3c89b48a9 100644
--- a/macros/latex-dev/base/ltcmdhooks.dtx
+++ b/macros/latex-dev/base/ltcmdhooks.dtx
@@ -20,7 +20,7 @@
%<*driver>
% \fi
\ProvidesFile{ltcmdhooks.dtx}
- [2024/02/11 v1.0i LaTeX Kernel (Command hooks)]
+ [2024/03/09 v1.0i LaTeX Kernel (Command hooks)]
% \iffalse
%
\documentclass{l3doc}
@@ -129,8 +129,8 @@
% \item
%
% that code can be prepended or appended (i.e., added to the
-% hooks) even if the command itself is not defined, because the
-% defining package has not yet been loaded;
+% hooks) even if the command itself is not (yet) defined, because the
+% defining package has not been loaded at this point;
%
% \item
%
@@ -218,6 +218,14 @@
% optional and mandatory arguments. By adding code to the
% \hook{cmd/section/after} hook, you get in the way of that scanning.
%
+% In such a case, where it is known that a specific generic command
+% hook does not work if code is added to it, the package author can
+% add a \cs{DisableGenericHook}\footnote{Please use
+% \cs{DisableGenericHook} if at all, only on hooks that you
+% \enquote{own}, i.e., for commands your package or class defines and
+% not second guess whether or not hooks of other packages should get
+% disabled!} declaration to prevent this from happening in user
+% documents and thereby avoiding obscure errors.
%
%
% \section{Package Author Interface}
diff --git a/macros/latex-dev/base/ltdefns.dtx b/macros/latex-dev/base/ltdefns.dtx
index 4d8368e2c0..db05962505 100644
--- a/macros/latex-dev/base/ltdefns.dtx
+++ b/macros/latex-dev/base/ltdefns.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdefns.dtx}
- [2024/02/08 v1.5s LaTeX Kernel (definition commands)]
+ [2024/02/29 v1.5s LaTeX Kernel (definition commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdefns.dtx}
@@ -215,12 +215,12 @@
% This section defines the following commands:
%
% \DescribeMacro
-% {\@namedef}\marg{NAME}\\ Expands to |\def\|\marg{NAME},
+% {\@namedef}\marg{NAME}\\ Expands to |\def\|\meta{NAME},
% except name can contain any characters.
%
% \DescribeMacro
% {\@nameuse}\marg{NAME}\\
-% Expands to |\|\marg{NAME}.
+% Expands to |\|\meta{NAME}.
%
% \DescribeMacro
% {\@ifnextchar} X\marg{YES}\marg{NO}\\
diff --git a/macros/latex-dev/base/ltfilehook-code.pdf b/macros/latex-dev/base/ltfilehook-code.pdf
index 7bfb51e947..8b4b2d52c7 100644
--- a/macros/latex-dev/base/ltfilehook-code.pdf
+++ b/macros/latex-dev/base/ltfilehook-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltfilehook-doc.pdf b/macros/latex-dev/base/ltfilehook-doc.pdf
index 3e561cdf3a..5dc31034ee 100644
--- a/macros/latex-dev/base/ltfilehook-doc.pdf
+++ b/macros/latex-dev/base/ltfilehook-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltfilehook.dtx b/macros/latex-dev/base/ltfilehook.dtx
index 831d633eef..02e95d0f8f 100644
--- a/macros/latex-dev/base/ltfilehook.dtx
+++ b/macros/latex-dev/base/ltfilehook.dtx
@@ -34,7 +34,7 @@
%\iffalse
%<*driver,structuredlog>
%\fi
-\def\ltfilehookdate{2024/02/11}
+\def\ltfilehookdate{2024/03/13}
\def\ltfilehookversion{v1.0o}
%\iffalse
%</driver,structuredlog>
@@ -381,7 +381,7 @@
%
%
%
-% \subsection{Internal interfaces for \LaTeX{}}
+% \subsection{Kernel, class, and package interfaces for \LaTeX{}}
%
% \begin{function}{\declare@file@substitution,\undeclare@file@substitution}
% \begin{syntax}
@@ -399,6 +399,8 @@
% example, or to provide a version that makes use of new kernel
% functionality while the original package remains available for
% use with older releases.
+% As such it is mainly meant for use in the \LaTeX{} kernel but
+% other use cases are conceivable.
%
% The \cs{undeclare@file@substitution} declaration undoes a
% substitution made earlier.
@@ -416,7 +418,7 @@
% \cs{disable@package@load} \Arg{package} \Arg{alternate-code}
% \cs{reenable@package@load} \Arg{package}
% \end{syntax}
-% If \meta{package} is requested do not load it but instead run
+% If \meta{package} is requested, do not load it but instead run
% \meta{alternate-code} which could issue a warning, error or any
% other code.
%
@@ -427,7 +429,9 @@
% are not available.
%
% The function is only implemented for packages not for arbitrary
-% files.
+% files and again it should only be applied if there are good
+% reasons for doing this.\footnote{Just to be sure: \enquote{I don't
+% like this package by somebody else} is not a good one :-)}
% \end{function}
%
%
diff --git a/macros/latex-dev/base/lthooks-code.pdf b/macros/latex-dev/base/lthooks-code.pdf
index 1ebe678058..2dd40dd859 100644
--- a/macros/latex-dev/base/lthooks-code.pdf
+++ b/macros/latex-dev/base/lthooks-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lthooks-doc.pdf b/macros/latex-dev/base/lthooks-doc.pdf
index 8dc6df576d..0a32eabd53 100644
--- a/macros/latex-dev/base/lthooks-doc.pdf
+++ b/macros/latex-dev/base/lthooks-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lthooks.dtx b/macros/latex-dev/base/lthooks.dtx
index ea337d306d..7e02aa4fd5 100644
--- a/macros/latex-dev/base/lthooks.dtx
+++ b/macros/latex-dev/base/lthooks.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{lthooks.dtx}
- [2024/02/11 v1.1h LaTeX Kernel (hooks)]
+ [2024/03/09 v1.1h LaTeX Kernel (hooks)]
% \iffalse
%
\documentclass{l3doc}
@@ -233,9 +233,9 @@
% (e.g., one used in code with \cs{UseHook} or
% \cs{UseOneTimeHook}) without it being explicitly declared with
% \cs{NewHook}).
-% This command undoes the effect of \cs{DisableGenericHook}.
% If the hook is already activated, this command does nothing.
%
+% Note that this command does not undo the effect of \cs{DisableGenericHook}.
% See section~\ref{sec:generic-hooks} for a discussion of when this
% declaration is appropriate.
% \end{function}
diff --git a/macros/latex-dev/base/ltluatex.pdf b/macros/latex-dev/base/ltluatex.pdf
index 230cb6527a..1a44905749 100644
--- a/macros/latex-dev/base/ltluatex.pdf
+++ b/macros/latex-dev/base/ltluatex.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltmarks-code.pdf b/macros/latex-dev/base/ltmarks-code.pdf
index 2bbd5ea3a0..50f1b1e0f8 100644
--- a/macros/latex-dev/base/ltmarks-code.pdf
+++ b/macros/latex-dev/base/ltmarks-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltmarks-doc.pdf b/macros/latex-dev/base/ltmarks-doc.pdf
index e580cd3319..7ae166d8a2 100644
--- a/macros/latex-dev/base/ltmarks-doc.pdf
+++ b/macros/latex-dev/base/ltmarks-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews.pdf b/macros/latex-dev/base/ltnews.pdf
index d35b824b96..0cbcc8a6ef 100644
--- a/macros/latex-dev/base/ltnews.pdf
+++ b/macros/latex-dev/base/ltnews.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews01.pdf b/macros/latex-dev/base/ltnews01.pdf
index 119150dcf2..5b14c49d10 100644
--- a/macros/latex-dev/base/ltnews01.pdf
+++ b/macros/latex-dev/base/ltnews01.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews02.pdf b/macros/latex-dev/base/ltnews02.pdf
index c549274162..9151907387 100644
--- a/macros/latex-dev/base/ltnews02.pdf
+++ b/macros/latex-dev/base/ltnews02.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews03.pdf b/macros/latex-dev/base/ltnews03.pdf
index 525e896caa..ceb51fe57f 100644
--- a/macros/latex-dev/base/ltnews03.pdf
+++ b/macros/latex-dev/base/ltnews03.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews04.pdf b/macros/latex-dev/base/ltnews04.pdf
index 759e78dec7..843ee94355 100644
--- a/macros/latex-dev/base/ltnews04.pdf
+++ b/macros/latex-dev/base/ltnews04.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews05.pdf b/macros/latex-dev/base/ltnews05.pdf
index 63b9af2498..e06b1c07e1 100644
--- a/macros/latex-dev/base/ltnews05.pdf
+++ b/macros/latex-dev/base/ltnews05.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews06.pdf b/macros/latex-dev/base/ltnews06.pdf
index c3a5d736c7..ebdc860ae9 100644
--- a/macros/latex-dev/base/ltnews06.pdf
+++ b/macros/latex-dev/base/ltnews06.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews07.pdf b/macros/latex-dev/base/ltnews07.pdf
index 5906a1d278..7f45fffff7 100644
--- a/macros/latex-dev/base/ltnews07.pdf
+++ b/macros/latex-dev/base/ltnews07.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews08.pdf b/macros/latex-dev/base/ltnews08.pdf
index 093798a6eb..9be1cdc574 100644
--- a/macros/latex-dev/base/ltnews08.pdf
+++ b/macros/latex-dev/base/ltnews08.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews09.pdf b/macros/latex-dev/base/ltnews09.pdf
index 18344161cc..a887abd373 100644
--- a/macros/latex-dev/base/ltnews09.pdf
+++ b/macros/latex-dev/base/ltnews09.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews10.pdf b/macros/latex-dev/base/ltnews10.pdf
index d993b06982..39c76574ff 100644
--- a/macros/latex-dev/base/ltnews10.pdf
+++ b/macros/latex-dev/base/ltnews10.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews11.pdf b/macros/latex-dev/base/ltnews11.pdf
index 4bd344ad0c..96f41e1033 100644
--- a/macros/latex-dev/base/ltnews11.pdf
+++ b/macros/latex-dev/base/ltnews11.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews12.pdf b/macros/latex-dev/base/ltnews12.pdf
index 8b19a4a371..7e84f22d41 100644
--- a/macros/latex-dev/base/ltnews12.pdf
+++ b/macros/latex-dev/base/ltnews12.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews13.pdf b/macros/latex-dev/base/ltnews13.pdf
index 15fd4203d8..a253cbc7c9 100644
--- a/macros/latex-dev/base/ltnews13.pdf
+++ b/macros/latex-dev/base/ltnews13.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews14.pdf b/macros/latex-dev/base/ltnews14.pdf
index 8d615e493d..1d9507d396 100644
--- a/macros/latex-dev/base/ltnews14.pdf
+++ b/macros/latex-dev/base/ltnews14.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews15.pdf b/macros/latex-dev/base/ltnews15.pdf
index 7c3c35bdc7..8c3a9c7638 100644
--- a/macros/latex-dev/base/ltnews15.pdf
+++ b/macros/latex-dev/base/ltnews15.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews16.pdf b/macros/latex-dev/base/ltnews16.pdf
index 01c228be83..73126e3b26 100644
--- a/macros/latex-dev/base/ltnews16.pdf
+++ b/macros/latex-dev/base/ltnews16.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews17.pdf b/macros/latex-dev/base/ltnews17.pdf
index 3dcf8679dc..674fb17950 100644
--- a/macros/latex-dev/base/ltnews17.pdf
+++ b/macros/latex-dev/base/ltnews17.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews18.pdf b/macros/latex-dev/base/ltnews18.pdf
index f2533985c9..00d2aae9f1 100644
--- a/macros/latex-dev/base/ltnews18.pdf
+++ b/macros/latex-dev/base/ltnews18.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews19.pdf b/macros/latex-dev/base/ltnews19.pdf
index 0d73b8b4dd..b764b6d09e 100644
--- a/macros/latex-dev/base/ltnews19.pdf
+++ b/macros/latex-dev/base/ltnews19.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews20.pdf b/macros/latex-dev/base/ltnews20.pdf
index dd9fe8fb37..40ad72b2f9 100644
--- a/macros/latex-dev/base/ltnews20.pdf
+++ b/macros/latex-dev/base/ltnews20.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews21.pdf b/macros/latex-dev/base/ltnews21.pdf
index 4e58f50dd4..88a1328927 100644
--- a/macros/latex-dev/base/ltnews21.pdf
+++ b/macros/latex-dev/base/ltnews21.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews22.pdf b/macros/latex-dev/base/ltnews22.pdf
index 013d7190fa..a525ff66ad 100644
--- a/macros/latex-dev/base/ltnews22.pdf
+++ b/macros/latex-dev/base/ltnews22.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews23.pdf b/macros/latex-dev/base/ltnews23.pdf
index 5a149714d3..e249261e27 100644
--- a/macros/latex-dev/base/ltnews23.pdf
+++ b/macros/latex-dev/base/ltnews23.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews24.pdf b/macros/latex-dev/base/ltnews24.pdf
index 8a065321dc..0b598eb978 100644
--- a/macros/latex-dev/base/ltnews24.pdf
+++ b/macros/latex-dev/base/ltnews24.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews25.pdf b/macros/latex-dev/base/ltnews25.pdf
index 818b9b84c8..aa7a3d909d 100644
--- a/macros/latex-dev/base/ltnews25.pdf
+++ b/macros/latex-dev/base/ltnews25.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews26.pdf b/macros/latex-dev/base/ltnews26.pdf
index 1f5e0d6eee..82e773c79f 100644
--- a/macros/latex-dev/base/ltnews26.pdf
+++ b/macros/latex-dev/base/ltnews26.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews27.pdf b/macros/latex-dev/base/ltnews27.pdf
index 5e5115fab5..c9f6df0909 100644
--- a/macros/latex-dev/base/ltnews27.pdf
+++ b/macros/latex-dev/base/ltnews27.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews28.pdf b/macros/latex-dev/base/ltnews28.pdf
index 173d27b6f6..6a32f26cc1 100644
--- a/macros/latex-dev/base/ltnews28.pdf
+++ b/macros/latex-dev/base/ltnews28.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews29.pdf b/macros/latex-dev/base/ltnews29.pdf
index 306556f994..da2d15bafd 100644
--- a/macros/latex-dev/base/ltnews29.pdf
+++ b/macros/latex-dev/base/ltnews29.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews30.pdf b/macros/latex-dev/base/ltnews30.pdf
index 815eaf3072..54e32d8e22 100644
--- a/macros/latex-dev/base/ltnews30.pdf
+++ b/macros/latex-dev/base/ltnews30.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews31.pdf b/macros/latex-dev/base/ltnews31.pdf
index dff2439d12..c4fe803b90 100644
--- a/macros/latex-dev/base/ltnews31.pdf
+++ b/macros/latex-dev/base/ltnews31.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews31.tex b/macros/latex-dev/base/ltnews31.tex
index 194791cff5..c1b81e52be 100644
--- a/macros/latex-dev/base/ltnews31.tex
+++ b/macros/latex-dev/base/ltnews31.tex
@@ -552,8 +552,8 @@ This was corrected.
\subsection{Ensure that \cs{textbackslash} remains robust}
In the last release we made most document-level commands robust, but
-\cs{textbackslash} became fragile again\\
-whenever \cs{raggedright} or similar typesetting\\
+\cs{textbackslash} became fragile again
+whenever \cs{raggedright} or similar typesetting
was used. This has been fixed.
%
\githubissue{203}
diff --git a/macros/latex-dev/base/ltnews32.pdf b/macros/latex-dev/base/ltnews32.pdf
index f2e80722ec..a2bb20351b 100644
--- a/macros/latex-dev/base/ltnews32.pdf
+++ b/macros/latex-dev/base/ltnews32.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews33.pdf b/macros/latex-dev/base/ltnews33.pdf
index 0bc0b4a0fc..126ec75937 100644
--- a/macros/latex-dev/base/ltnews33.pdf
+++ b/macros/latex-dev/base/ltnews33.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews34.pdf b/macros/latex-dev/base/ltnews34.pdf
index fa2a374667..7bf3d48b15 100644
--- a/macros/latex-dev/base/ltnews34.pdf
+++ b/macros/latex-dev/base/ltnews34.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews35.pdf b/macros/latex-dev/base/ltnews35.pdf
index 83e8307de1..35f0be31c7 100644
--- a/macros/latex-dev/base/ltnews35.pdf
+++ b/macros/latex-dev/base/ltnews35.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews36.pdf b/macros/latex-dev/base/ltnews36.pdf
index 35e707fe85..fb7b4cc348 100644
--- a/macros/latex-dev/base/ltnews36.pdf
+++ b/macros/latex-dev/base/ltnews36.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews37.pdf b/macros/latex-dev/base/ltnews37.pdf
index c63805f098..e1d1be67d0 100644
--- a/macros/latex-dev/base/ltnews37.pdf
+++ b/macros/latex-dev/base/ltnews37.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews38.pdf b/macros/latex-dev/base/ltnews38.pdf
index 9693e62fef..2940e7cb04 100644
--- a/macros/latex-dev/base/ltnews38.pdf
+++ b/macros/latex-dev/base/ltnews38.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews39.pdf b/macros/latex-dev/base/ltnews39.pdf
index f43f43a067..9303ba97ea 100644
--- a/macros/latex-dev/base/ltnews39.pdf
+++ b/macros/latex-dev/base/ltnews39.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews39.tex b/macros/latex-dev/base/ltnews39.tex
index b4b93d3504..92c835926f 100644
--- a/macros/latex-dev/base/ltnews39.tex
+++ b/macros/latex-dev/base/ltnews39.tex
@@ -236,6 +236,11 @@ avoid that an error is written to the log file, but to make it clear
that this error is harmless and should be ignored we have arranged the
code so that the error message, if it is issued, takes the following
format:
+\begingroup
+\makeatletter
+\def\verbatim@font{%
+ \small\ttfamily}
+\makeatletter
\begin{verbatim}
! Infinite glue shrinkage found in box being split.
<argument> Infinite shrink error above ignored !
@@ -245,6 +250,8 @@ Not perfect (especially the somewhat unmotivated \texttt{<argument>}),
but you can only do so much if error messages and their texts are
hard-wired in the engine.
+\endgroup
+
So why all this? There are two reasons: we do not lose marks in edge
cases any longer and perhaps more importantly we are now also reliably
able to extract marks from arbitrarily boxed data, something that
@@ -280,6 +287,14 @@ well.
%
\githubissue{1230}
+\subsection{\pkg{ifthen}: guard against active characters in comparisons}
+The \cs{ifthenelse} command now ensures that \verb|<|, \verb|=| and
+\verb|>| are safe
+in numeric tests, even if they have been made active
+(typically by \pkg{babel} language shorthands.)
+%
+\githubissue{756}
+
\section{Providing \pkg{xtemplate} in the format}
In \LaTeX{} News~32, we described the move of one long-term experimental idea
@@ -412,6 +427,19 @@ the direct equivalent to \cs{newcommand} is \cs{NewExpandableDocumentCommand}.
%
\githubissue{1189}
+\subsection{Handling of end-of-lines in \cs{NewDocumentCommand} \texttt{+v} arguments}
+
+The \texttt{+v} argument type provided by \cs{NewDocumentCommand}, etc., allows
+grabbing of multiple lines of text in a verbatim-like argument. Almost always,
+the result of this grabbing will be used in a typesetting context. Previously,
+the end-of-line characters were stored literally as category code~12
+(\enquote{other}) \verb|^^M| tokens. However, these are difficult to work with
+in general. We have now revised this behavior, such that end-of-line characters
+are converted to the \cs{obeyedline} command when parsed by \texttt{+v}-type
+arguments. This may require adjustment in the source of some documents, but the
+enhanced ability of users and programmers to exploit the \texttt{+v}-type
+argument means we believe it is necessary.
+
\subsection{Declaring appropriate sub-encodings for \texttt{TS1} symbol fonts}
In 2020 we incorporated support for the \texttt{TS1} symbol encoding
@@ -513,11 +541,48 @@ missing and sub-encoding 5 as declared in the kernel is correct.
%
\githubissue{1257}
+\section{Documentation improvements}
+
+\subsection{Further updates to the guides}
+
+We reported about the updated versions of \texttt{usrguide} and
+\texttt{clsguide} in \LaTeX{} News~37~\cite{39:ltnews37}. We have now
+revised \texttt{fntguide} as well to reflect the changes and macros
+added to the kernel over the last years of development. Note that the
+file name hasn't changed and there is no \texttt{fntguide-historic}.
+\section{Bug fixes}
+
+\subsection{Fix inconsistent expansion on package option list}
+
+\LaTeX{} applies one-step expansion to raw option list of packages and
+classes so constructions like
+\begin{verbatim}
+ \def\myoptions{opt1,opt2}
+ \usepackage[\myoptions]{foo}
+\end{verbatim}
+are supported. But when a package declares its options with the new
+key/value approach~\cite{39:ltnews35} and was loaded a second time,
+its raw option list was not expanded and an error might be raised.
+This has now been corrected.
+%
+\githubissue{1298}
+
+\section{Changes to packages in the \pkg{amsmath} category}
+
+\subsection{\pkg{amsmath}: correct equation tag placement}
+
+If there is not enough space to place an equation tag on the same line
+as the equation \pkg{amsmath} calculates a suitable offset and then
+places the tag above (or below) the equation. In the case of the
+\env{gather} environment this offset was not reset at the end, with
+the result that it applied to a following environment as well
+resulting in incorrect spacing in certain situations. This has now
+been corrected.
+%
+\githubissue{1289}
-%\section{Bug fixes}
-%\section{Changes to packages in the \pkg{amsmath} category}
%\section{Changes to packages in the \pkg{graphics} category}
@@ -623,6 +688,10 @@ didn't get this treatment. This oversight has now been corrected.
\emph{\LaTeXe{} news 33}. June 2021.\\
\url{https://latex-project.org/news/latex2e-news/ltnews33.pdf}
+\bibitem{39:ltnews35} \LaTeX{} Project Team.
+ \emph{\LaTeXe{} news 35}. June 2022.\\
+ \url{https://latex-project.org/news/latex2e-news/ltnews35.pdf}
+
\bibitem{39:ltnews37} \LaTeX{} Project Team.
\emph{\LaTeXe{} news 37}. June 2023.\\
\url{https://latex-project.org/news/latex2e-news/ltnews37.pdf}
diff --git a/macros/latex-dev/base/ltoutput.dtx b/macros/latex-dev/base/ltoutput.dtx
index b067ef5ecb..f0c1bf830b 100644
--- a/macros/latex-dev/base/ltoutput.dtx
+++ b/macros/latex-dev/base/ltoutput.dtx
@@ -37,7 +37,7 @@
%<*driver>
% \fi
\ProvidesFile{ltoutput.dtx}
- [2023/05/26 v1.4j LaTeX Kernel (Output Routine)]
+ [2024/03/16 v1.4j LaTeX Kernel (Output Routine)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutput.dtx}
@@ -847,7 +847,7 @@
% \begin{macro}{\if@firstcolumn}
% \begin{macro}{\if@twocolumn}
% \begin{macro}{\if@twoside}
-% \begin{macro}{\if@reversemarginpar}
+% \begin{macro}{\if@reversemargin}
% \begin{macro}{\if@mparswitch}
% \begin{macro}{\col@number}
% \changes{v1.0n}{1994/04/30}{Added \cs{col@number}}
diff --git a/macros/latex-dev/base/ltpara-code.pdf b/macros/latex-dev/base/ltpara-code.pdf
index 37c0dd52df..4c47bd85e4 100644
--- a/macros/latex-dev/base/ltpara-code.pdf
+++ b/macros/latex-dev/base/ltpara-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltpara-doc.pdf b/macros/latex-dev/base/ltpara-doc.pdf
index 7d23332d28..7dc5eab3f5 100644
--- a/macros/latex-dev/base/ltpara-doc.pdf
+++ b/macros/latex-dev/base/ltpara-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltproperties-code.pdf b/macros/latex-dev/base/ltproperties-code.pdf
index 85f4ba4e45..056f6e328d 100644
--- a/macros/latex-dev/base/ltproperties-code.pdf
+++ b/macros/latex-dev/base/ltproperties-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltproperties-doc.pdf b/macros/latex-dev/base/ltproperties-doc.pdf
index 1dc54d6ea6..16e7530e2e 100644
--- a/macros/latex-dev/base/ltproperties-doc.pdf
+++ b/macros/latex-dev/base/ltproperties-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltsect.dtx b/macros/latex-dev/base/ltsect.dtx
index 4560704463..21aeda32e0 100644
--- a/macros/latex-dev/base/ltsect.dtx
+++ b/macros/latex-dev/base/ltsect.dtx
@@ -31,7 +31,7 @@
%%% From File: ltsect.dtx
%<*driver>
% \fi
-\ProvidesFile{ltsect.dtx}[2021/07/28 v1.1f LaTeX Kernel (Sectioning)]
+\ProvidesFile{ltsect.dtx}[2024/03/25 v1.1f LaTeX Kernel (Sectioning)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltsect.dtx}
@@ -835,13 +835,13 @@
% \begin{macro}{\contentsline}
% The |\contentsline{|\meta{type}|}{|\meta{entry}|}{|\meta{page}|}{}|
% macro produces a \meta{type} entry in a table of contents, etc.
-% It will appear in the |.toc| or other file. For example,
-% The entry for subsection 1.4.3 in the table of contents for
-% example, might be produced by:
+% It will appear in the |.toc| or other file.
+% For example, the entry for subsection 1.4.3 in the table of contents,
+% might be produced by:
%
% \begin{verbatim}
% \contentsline{subsection}
-% {\makebox{30pt}[r]{1.4.3} Gnats and Gnus}{22}
+% {\numberline{1.4.3}Gnats and Gnus}{22}{}
% \end{verbatim}
%
% The |\protect| command causes command sequences to be written
diff --git a/macros/latex-dev/base/ltshipout-code.pdf b/macros/latex-dev/base/ltshipout-code.pdf
index 0fee02853e..9c7fe80c98 100644
--- a/macros/latex-dev/base/ltshipout-code.pdf
+++ b/macros/latex-dev/base/ltshipout-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltshipout-doc.pdf b/macros/latex-dev/base/ltshipout-doc.pdf
index 3051341818..142fa00cb7 100644
--- a/macros/latex-dev/base/ltshipout-doc.pdf
+++ b/macros/latex-dev/base/ltshipout-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltsockets-code.pdf b/macros/latex-dev/base/ltsockets-code.pdf
index 6301f60a3c..8c920d6715 100644
--- a/macros/latex-dev/base/ltsockets-code.pdf
+++ b/macros/latex-dev/base/ltsockets-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltsockets-doc.pdf b/macros/latex-dev/base/ltsockets-doc.pdf
index a50aad4998..c3d42ecbaf 100644
--- a/macros/latex-dev/base/ltsockets-doc.pdf
+++ b/macros/latex-dev/base/ltsockets-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lttemplates.dtx b/macros/latex-dev/base/lttemplates.dtx
index 844fb6fd34..d27c232fe0 100644
--- a/macros/latex-dev/base/lttemplates.dtx
+++ b/macros/latex-dev/base/lttemplates.dtx
@@ -36,7 +36,7 @@
%<*driver>
% \fi
\ProvidesFile{lttemplates.dtx}
- [2024-02-11 v1.0a LaTeX Kernel (Prototype document functions)]
+ [2024-02-15 v1.0b LaTeX Kernel (Prototype document functions)]
% \iffalse
\documentclass{l3doc}
\GetFileInfo{lttemplates.dtx}
@@ -2653,6 +2653,19 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\IfInstanceExistT, \IfInstanceExistF, \IfInstanceExistTF}
+% \changes{2024-02-15}{v1.0b}{New macros}
+% More direct translation.
+% \begin{macrocode}
+\cs_new:Npn \IfInstanceExistTF #1#2
+ { \@@_if_instance_exist:nnTF {#1} {#2} }
+\cs_new:Npn \IfInstanceExistT #1#2
+ { \@@_if_instance_exist:nnT {#1} {#2} }
+\cs_new:Npn \IfInstanceExistF #1#2
+ { \@@_if_instance_exist:nnF {#1} {#2} }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\KeyValue}
% Simply dump the argument when executed: this should not happen.
% \begin{macrocode}
diff --git a/macros/latex-dev/base/ltthm.dtx b/macros/latex-dev/base/ltthm.dtx
index 180b8accfe..c900f519dd 100644
--- a/macros/latex-dev/base/ltthm.dtx
+++ b/macros/latex-dev/base/ltthm.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltthm.dtx}
- [2014/09/29 v1.0f LaTeX Kernel (Theorems)]
+ [2024/03/18 v1.0g LaTeX Kernel (Theorems)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltthm.dtx}
@@ -237,16 +237,31 @@
% \end{macro}
%
% \begin{macro}{\@thm}
+% \changes{v1.0c}{1994/04/17}{Use new std counter error message (FMi)}
+% \changes{v1.0g}{2024/03/18}{Use \cs{@kernel@refstepcounter} to avoid an unwanted target (UFi)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2024/03/18}%
+%<latexrelease> {\@thm}{no link target}%
\def\@thm#1#2{%
- \refstepcounter{#1}%
+ \@kernel@refstepcounter{#1}%
\@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@thm}{no link target}%
+%<latexrelease>\def\@thm#1#2{%
+%<latexrelease> \refstepcounter{#1}%
+%<latexrelease> \@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
+%<latexrelease>\EndIncludeInRelease
+%</2ekernel|latexrelease>
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@xthm}
% \begin{macro}{\@ythm}
% \begin{macrocode}
+%<*2ekernel>
\def\@xthm#1#2{%
\@begintheorem{#2}{\csname the#1\endcsname}\ignorespaces}
\def\@ythm#1#2[#3]{%
@@ -273,11 +288,26 @@
% NFSS}
% Providing theorem defaults.
% \task{???}{add `reset@font?}
+% % \changes{v1.0g}{2024/03/18}{Insert link target in the label (UFi)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2024/03/18}%
+%<latexrelease> {\@begintheorem}{add link targets}%
\def\@begintheorem#1#2{\trivlist
- \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
+ \item[\MakeLinkTarget{\@currentcounter}\hskip \labelsep{\bfseries #1\ #2}]\itshape}
\def\@opargbegintheorem#1#2#3{\trivlist
- \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
+ \item[\MakeLinkTarget{\@currentcounter}\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@begintheorem}{add link targets}%
+%<latexrelease>\def\@begintheorem#1#2{\trivlist
+%<latexrelease> \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
+%<latexrelease>\def\@opargbegintheorem#1#2#3{\trivlist
+%<latexrelease> \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
+%<latexrelease>\EndIncludeInRelease
+%</2ekernel|latexrelease>
+%<*2ekernel>
\def\@endtheorem{\endtrivlist}
%</2ekernel>
% \end{macrocode}
diff --git a/macros/latex-dev/base/ltvers.dtx b/macros/latex-dev/base/ltvers.dtx
index 3896935525..be7011a537 100644
--- a/macros/latex-dev/base/ltvers.dtx
+++ b/macros/latex-dev/base/ltvers.dtx
@@ -115,7 +115,7 @@
{2024-06-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{-1}
+\def\patch@level{-2}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/macros/latex-dev/base/ltx3info.pdf b/macros/latex-dev/base/ltx3info.pdf
index 4abf1f8a46..6e419ab172 100644
--- a/macros/latex-dev/base/ltx3info.pdf
+++ b/macros/latex-dev/base/ltx3info.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltxdoc.pdf b/macros/latex-dev/base/ltxdoc.pdf
index 61a0b18e68..0a1ddb4a7f 100644
--- a/macros/latex-dev/base/ltxdoc.pdf
+++ b/macros/latex-dev/base/ltxdoc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/makeindx.pdf b/macros/latex-dev/base/makeindx.pdf
index a2ab245043..18ca3f9247 100644
--- a/macros/latex-dev/base/makeindx.pdf
+++ b/macros/latex-dev/base/makeindx.pdf
Binary files differ
diff --git a/macros/latex-dev/base/modguide.pdf b/macros/latex-dev/base/modguide.pdf
index 5006d07168..2069363ee3 100644
--- a/macros/latex-dev/base/modguide.pdf
+++ b/macros/latex-dev/base/modguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/nfssfont.pdf b/macros/latex-dev/base/nfssfont.pdf
index 44aba54c32..8b45e7770c 100644
--- a/macros/latex-dev/base/nfssfont.pdf
+++ b/macros/latex-dev/base/nfssfont.pdf
Binary files differ
diff --git a/macros/latex-dev/base/proc.pdf b/macros/latex-dev/base/proc.pdf
index 84fbeb3470..5973decadb 100644
--- a/macros/latex-dev/base/proc.pdf
+++ b/macros/latex-dev/base/proc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/slides.pdf b/macros/latex-dev/base/slides.pdf
index 072806917b..767e52d533 100644
--- a/macros/latex-dev/base/slides.pdf
+++ b/macros/latex-dev/base/slides.pdf
Binary files differ
diff --git a/macros/latex-dev/base/slifonts.pdf b/macros/latex-dev/base/slifonts.pdf
index 140e317b47..972afa5d75 100644
--- a/macros/latex-dev/base/slifonts.pdf
+++ b/macros/latex-dev/base/slifonts.pdf
Binary files differ
diff --git a/macros/latex-dev/base/source2e.pdf b/macros/latex-dev/base/source2e.pdf
index 5fbc7e1c0c..0db61ba189 100644
--- a/macros/latex-dev/base/source2e.pdf
+++ b/macros/latex-dev/base/source2e.pdf
Binary files differ
diff --git a/macros/latex-dev/base/syntonly.pdf b/macros/latex-dev/base/syntonly.pdf
index 6beca59509..41ff62b0de 100644
--- a/macros/latex-dev/base/syntonly.pdf
+++ b/macros/latex-dev/base/syntonly.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tlc2.pdf b/macros/latex-dev/base/tlc2.pdf
index 4945823cda..ca468e2797 100644
--- a/macros/latex-dev/base/tlc2.pdf
+++ b/macros/latex-dev/base/tlc2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tlc3.err b/macros/latex-dev/base/tlc3.err
index cb33dd01e4..7c2c732568 100644
--- a/macros/latex-dev/base/tlc3.err
+++ b/macros/latex-dev/base/tlc3.err
@@ -1,4 +1,4 @@
-\newcommand\erratafiledate{2024/01/29} % needs / and not -
+\newcommand\erratafiledate{2024/03/17} % needs / and not -
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% To produce a printed version of this errata file run this file through
@@ -325,7 +325,7 @@
\erratatitle{The \LaTeX{} Companion, Third Edition, Parts I \& II}{\erratafiledate}
-
+\begin{small}
\begin{verbatim}
@book(A-W:MF:2023,
author = {Frank Mittelbach and Ulrike Fischer},
@@ -339,10 +339,9 @@
pagenums = {976 (Part I) and 1008 (Part II)},
bibliography = {yes},
index = {yes},
- isbn = {978-0-13-816648-9},
-)
+ isbn = {978-0-13-816648-9})
\end{verbatim}
-
+\end{small}
\begin{list}{}{\setlength\leftmargin{0cm}%
\setlength\rightmargin{3cm}%
@@ -372,7 +371,7 @@ or digital edition
you own by changing the configuration in the file \texttt{\jobname.cfg}.
\begin{center}
- \Large \bfseries To Err is Human --- Bug Contest
+ \large \bfseries To Err is Human --- Bug Contest
\end{center}
Any mistake found and reported is a gain for all readers of our book.
@@ -398,7 +397,7 @@ Good luck!
\begin{center}
\begin{tabular}{clr}
Contest period ends & Winner \\[4pt]
-2023/?? & & ??? suggestions\\
+2024/03 & Bernd Burkhardt & 52 suggestions\\
\end{tabular}
\end{center}
@@ -441,7 +440,7 @@ digital differing only in that respect.
\erroronpage{}{}{FMi}{2023/07/30}{}
-Text or graphics typeset in the the spot color (blue) are not always
+Text or graphics typeset in the spot color (blue) are not always
perfectly aligned. This is a side-effect of the printing technology.
On most pages everything is fine, but occasionally blue text in a
paragraph seems to be slightly above or below the baseline or blue
@@ -606,6 +605,10 @@ not least \> \u{but} not least
\CHAPTER{Chapter 2 --- The Structure of a \LaTeX{} Document}
+\erroronpage{I-31}{para-1,l.-1}{BeB}{2024/03/17}{s}
+would have resulted in ``\verb+# .+'' in the output. \> \\
+would have resulted in ``\verb+#+\u{\texttt{\&}}\verb+ .+'' in the output.
+
\erroronpage{I-34}{l.-1}{FMi}{2023/04/04}{s}
Moved first line of page 35 to 34.
@@ -624,6 +627,10 @@ Situation is the same in the 2023 distributions; listing output updated.
\CHAPTER{Chapter 3 --- Basic Formatting Tools -- Paragraph \ldots}
+\erroronpage{I-143}{exa 3-1-18}{BeB}{2024/03/17}{s}
+Replace in source: \verb+{ peine+ \> \verb+{peine+
+
+
\erroronpage{I-160}{para -2, l.1}{BeB}{2023/07/14}{s}
Repeated word: keys \u{keys} \> keys
@@ -636,8 +643,25 @@ Add a marginal note: \u{No warning if another \LaTeX{} run is necessary!}
\erroronpage{I-163}{example 3-3-14}{BeB}{2023/07/25}{s}
Output of example misses the page numbers in acronym list \> Run example 3 times (not only twice---there is no warning)
+\erroronpage{I-174}{para3,l. -2}{BeB}{2024/03/17}{s}
+the exponent is always a \u{power} of 3 \> the exponent is always a
+\u{multiple} of 3
+
+\seriouserroronpage{I-177}{exa 3-3-39}{BeB/FMi}{2024/03/17}{s}
+
+The example doesn't really show what the paragraph above discusses
+because it was shortend to fit the available space on the page.
+Use
+\begin{verbatim}
+\newcommand\sample[1]{\textnormal{\noindent #1:}
+ The limit is \qty{30}{\kmh} not $\qty{50}{\kmh}$.\par}}
+\end{verbatim}
+so that both text and math usage of \verb=\pty= are compared in the example.
+\erroronpage{I-182}{para 4}{BeB}{2024/03/17}{s}
+Add sentence: The command \verb+\textcquote+ is used in Example 16-5-50 on page II-535.
+
\CHAPTER{Chapter 4 --- Basic Formatting Tools -- Larger \ldots}
\erroronpage{I-253}{para 2, l.-3}{YEi}{2023/11/27}{s}
@@ -698,6 +722,10 @@ text can be interpreted as a value, a somewhat ``random'' number and
the rest is dropped. For example, \texttt{31 December 2022} would
result in ``31.00'', which is probably not desired.
+\erroronpage{I-494}{para -2, l.3}{MRu}{2024/03/16}{s}
+
+Use plural: The allowed key\u{s} are \ldots
+
\CHAPTER{Chapter 7 --- Mastering Floats}
@@ -745,6 +773,9 @@ in the range of 0000 to \u{00FF} \> in the range of 0000 to \u{007F}
\CHAPTER{Chapter 10 --- Text and Symbol Fonts}
+\erroronpage{II-3}{para-1, l.-2}{BeB}{2024/03/17}{s}
+line first \> first line
+
\erroronpage{II-5}{table 10.1, l. 5}{BeB/FMi}{2023/08/13}{s}
official \u{companion} family name \> \u{related} official \u{font} family name
@@ -951,37 +982,37 @@ not showing in the example.
\erroronpage{II-114}{table 10.89}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-117}{table 10.92}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-121}{table 10.96}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-122}{table 10.98}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-122}{table 10.99}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-123}{table 10.100}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-124}{table 10.103}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
@@ -1325,7 +1356,7 @@ is created only if the entry \u{contains} a shorttitle \u{field} and the title a
is created only if the entry \u{has been referenced (prior to typesetting}\\
\u{the bibliography), contains} a shorttitle \u{field,} and the title and shorttitle fields differ.
-\erroronpage{II-535}{footnote}{FMi}{2024/01/07}{}
+\erroronpage{II-535}{footnote}{FMi}{2024/01/07}{s}
Extend the explanation:\\
\u{you can} use \cs{mancite} \u{in front of any citation command} to avoid this.
@@ -1346,7 +1377,8 @@ Jane Doe.\ \textit{A\u{n} second book.}\ 2020.\> Jane Doe.\ \textit{A second boo
\CHAPTER{Appendix A --- \LaTeX{} Overview for Preamble, \ldots}
\erroronpage{II-624--629}{}{BeB/FMi}{2023/08/31}{s}
-Replace for consistency with section 1.4: \u{command definition} \> \u{code}
+Replace for consistency with section 1.4: \u{command definition} \> \u{code} \\
+(in the various syntax boxes)
\erroronpage{II-629}{para 1, l.3}{FMi}{2023/08/31}{s}
\u{An} warning \> \u{A} warning
@@ -1356,9 +1388,31 @@ Replace for consistency with section 1.4: \u{command definition} \> \u{code}
Add at the end: A maximum of nine ``argument'' letters is supported.
-\erroronpage{II-682}{para -2, l.3}{FMi}{2023/04/28}{s}
+\erroronpage{II-657}{par -2, l. -2}{BeB}{2024/03/17}{s}
+a few that \> a few \u{commands} that
+
+
+\erroronpage{II-658}{first item in the list}{BeB}{2024/03/17}{s}
+square root $\sqrt{x}$ \> square root \texttt{sqrt} $x$
+
+\erroronpage{II-682}{para -2, l .3}{FMi}{2023/04/28}{s}
\texttt{Harf\u{b}uzz} \> \texttt{Harf\u{B}uzz}
+\erroronpage{II-678}{para -1, l. -1}{BeB}{2024/03/17}{s}
+it is better use\> it is better \u{to} use
+
+
+\erroronpage{II-687}{l .1}{BeB}{2024/03/17}{s}
+Two further tests should be listed in the syntax box: \verb+\ifVTeX+ \verb+\ifAlephTeX+
+
+
+\seriouserroronpage{II-701}{l. 6}{BeB}{2024/03/17}{s}
+Name changed after the book was typeset: \verb+.notif+\>\verb+.ifnot+
+
+\erroronpage{II-701}{para 3, l. 4; para -2, l. 1; and margin}{BeB}{2024/03/17}{s}
+\verb+.notif+\>\verb+.ifnot+
+
+
\CHAPTER{Appendix B --- Tracing and Resolving Problems}
@@ -1376,9 +1430,10 @@ Appendix title not properly capitalized.
\end{erratalist}
+\newpage
-\section*{Notes on this errata document}
+\section{Notes on this errata document}
\setcounter{collectmore}{3}
@@ -1392,6 +1447,7 @@ Appendix title not properly capitalized.
\contributor{EOl}{Edgar Olthof}
\contributor{FMi}{Frank Mittelbach}
\contributor{MJo}{Maciej Jończyk}
+\contributor{MRu}{Mark Rudolph}
\contributor{YFu}{FUJIMURA Yukitoshi}
\contributor{YvH}{Yvon Henel}
\contributor{YEi}{Yaakov Eisenberg}
diff --git a/macros/latex-dev/base/tlc3.pdf b/macros/latex-dev/base/tlc3.pdf
index 00936f6e57..5b9f0237a8 100644
--- a/macros/latex-dev/base/tlc3.pdf
+++ b/macros/latex-dev/base/tlc3.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tulm.pdf b/macros/latex-dev/base/tulm.pdf
index 29c84ca59b..283b4eedad 100644
--- a/macros/latex-dev/base/tulm.pdf
+++ b/macros/latex-dev/base/tulm.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide-historic.pdf b/macros/latex-dev/base/usrguide-historic.pdf
index 0001be0aae..1013a34434 100644
--- a/macros/latex-dev/base/usrguide-historic.pdf
+++ b/macros/latex-dev/base/usrguide-historic.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide.pdf b/macros/latex-dev/base/usrguide.pdf
index c9f3496f57..a447d9547b 100644
--- a/macros/latex-dev/base/usrguide.pdf
+++ b/macros/latex-dev/base/usrguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide.tex b/macros/latex-dev/base/usrguide.tex
index 9f5cfb181a..cf0a01e836 100644
--- a/macros/latex-dev/base/usrguide.tex
+++ b/macros/latex-dev/base/usrguide.tex
@@ -34,8 +34,8 @@
\usepackage{csquotes}
\usepackage{url}
-\title{\LaTeX\ for authors --- current version}
-\author{\copyright~Copyright 2020-2023, \LaTeX\ Project Team.\\
+\title{\LaTeX\ for authors\\ current version}
+\author{\copyright~Copyright 2020--2024, \LaTeX\ Project Team.\\
All rights reserved.%
\footnote{This file may be distributed and/or modified under the
conditions of the \LaTeX{} Project Public License, either version 1.3c
@@ -43,7 +43,7 @@
\texttt{usrguide.tex} for full details.}%
}
-\date{2023-12-02}
+\date{2024-03-17}
\NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}}
\NewDocumentCommand\marg{m}{\arg{#1}}
@@ -794,6 +794,61 @@ a & b & c \\
\end{tabular}
\end{verbatim}
+\subsection{Using the verbatim argument types}
+
+As described above, the \texttt{v}-type argument may be viewed as similar to
+\cs{verb}. Before looking at exactly what that means, it is important to
+highlight some key differences. Most notably, \emph{grabbing} a verbatim-like
+argument is separate from \emph{typesetting} it: the latter is covered in the
+next section.
+
+When grabbing a \texttt{v}-type argument, \LaTeX{} first uses the kernel
+command \cs{dospecials} to turn off the \enquote{special} nature of characters.
+It then makes both spaces and tabs \enquote{active}, so that they can be given
+a custom definition. Any other characters are grabbed as-is: this means that if
+any characters have been made \enquote{special} and are not listed in
+\cs{dospecials}, an error will arise (see below).
+
+The characters that are grabbed as the argument are all those between two
+identical: in contrast to \cs{verb}, the characters \texttt{\textbackslash},
+|{|, |}| and |%| \emph{cannot} be used as the delimiter character. If any of
+the grabbed tokens have \enquote{special} meaning, an error will be issued.
+
+For the \texttt{+v}-type argument, which allows line breaks within the
+argument, newline characters are converted into \cs{obeyedline} commands. The
+standard definition of \cs{obeyedline} is simple |\par|, thus allowing the
+grabbed tokens to be used directly in typesetting. A local redefinition of
+\cs{obeyedline} can be used to achieve other outputs. For example, to retain
+blank lines whilst typesetting, one could use
+\begin{verbatim}
+\renewcommand*\obeyedline{\mbox{}\par}
+\end{verbatim}
+More information about using these arguments in typesetting is in the following
+subsection.
+
+Some additional details that may be useful for those with more \TeX{}
+knowledge: do not worry if this does not make sense to you! Spaces and tabs are
+stored as active characters. In Unicode engines, all other characters are of
+type \enquote{other}. In $8$-bit engines, the ASCII characters other than tab
+and space are of type \enquote{other}, and non-ASCII characters are active. As
+such, token-based comparisons are likely to fail unless set up properly.
+
+\subsection{Typesetting verbatim-like material}
+
+In contrast to \cs{verb}, the \texttt{(+)v}-type argument is only about
+\emph{grabbing} the argument, not \emph{typesetting} it. As such, features that
+users often associate with \enquote{verbatim} are not automatically activated,
+e.g., selecting a monospaced font. Material grabbed by the \texttt{v}-type
+argument does not automatically suppress ligatures: with modern \TeX{} engines,
+this largely can be done without the token manipulation which \cs{verb} uses.
+(In \cs{verb}, ligatures are suppressed by making characters active and
+inserting a zero-width kern before the character itself.)
+
+The \cs{verb} command also selects a monospaced font: this is not intrinsic to
+verbatim material, so will need to be set up using for example \cs{ttfamily}.
+Similarly, the \texttt{verbatim} environment sets up the meaning of \cs{par}
+suitable for breaking lines.
+
\subsection{Performance}
For document commands where the argument specification is entirely
@@ -801,7 +856,7 @@ comprised of |m| or |+m| entries (or is entirely empty), the internal structure
created by \cs{NewDocumentCommand} is essentially as efficient
as provided by |\newcommand(*)|. As such, document commands may replace
constructs arising from \cs{newcommand}, etc., without a need to be concerned
-about performance. Note that \cs{newcommand(*)} produces expandable
+about performance. It should be noted that \cs{newcommand(*)} produces expandable
results, so the direct replacement is \cs{NewExpandableDocumentCommand};
in most cases, however, it is better to use \cs{NewDocumentCommand} to
give more robust structures.
@@ -1064,11 +1119,17 @@ 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}$,
+ multiplication $x\fpbin{*}y$, division $x\fpbin{/}y$, square root~$\fpop{sqrt}{x}$,
and parentheses.
\item Comparison operators: $x\fprel{<}y$,
$x\fprel{<=}y$, $x\fprel{>?}y$,
$x\fprel{!=}y$ \emph{etc.}
+
+ The relation $x\fprel{?}y$ is true exactly if one or both operands is~\nan{} or is
+ a tuple, unless they are equal tuples. Each \meta{relation}
+ can be any (non-empty) combination of |<|, |=|, |>|, and~|?|, plus
+ an optional leading~|!| (which negates the \meta{relation}), with
+ the restriction that the negated \meta{relation} may not start with~|?|.
\item Boolean logic: sign $\fpop{sign} x$,
negation $\fpop{!}x$, conjunction
$x\fprel{\&\&}y$, disjunction $x\fprel{\string|\string|}y$, ternary
@@ -1198,13 +1259,13 @@ 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.
-\begin{quote}
- \begin{tabular}{rl}
+\begin{flushleft}
+ \begin{tabular}{@{}ll}
|\MakeUppercase{hello WORLD ßüé}| & \MakeUppercase{hello WORLD ßüé} \\
|\MakeLowercase{hello WORLD ßüé}| & \MakeLowercase{hello WORLD ßüé} \\
|\MakeTitlecase{hello WORLD ßüé}| & \MakeTitlecase{hello WORLD ßüé} \\
\end{tabular}
-\end{quote}
+\end{flushleft}
The case-changing commands take an optional argument which can be used to
tailor the output. This optional argument accepts the key \texttt{locale},
@@ -1220,14 +1281,14 @@ 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{quote}
- \begin{tabular}{rl}
+\begin{flushleft}
+ \begin{tabular}{@{}ll}
|\MakeUppercase{Some text $y = mx + c$}|
& \MakeUppercase{Some text $y = mx + c$} \\
|\MakeUppercase{\NoCaseChange{iPhone}}|
& \MakeLowercase{\NoCaseChange{iPhone}} \\
\end{tabular}
-\end{quote}
+\end{flushleft}
To allow robust commands to be used within case changing \emph{and} to produce
the expected output, two additional control commands are available.
@@ -1256,19 +1317,19 @@ apply to a specific one: this is given in BCP-47 format
(\url{https://en.wikipedia.org/wiki/IETF_language_tag}). For example,
the kernel customises the mapping for U+01F0 (\v{j}) when uppercasing in
8-bit engines:
-\begin{quote}
- |\DeclareUppercaseMapping{"01F0}{\v{J}}|
-\end{quote}
+\begin{verbatim}
+\DeclareUppercaseMapping{"01F0}{\v{J}}
+\end{verbatim}
as there is no pre-composed \v{J} character, and this is problematic if
the engine does not support Unicode natively. Similarly, to set a locale
\texttt{xx} to behave in the same way as Turkish and retain the difference
between dotted- and dotless-i, one could use for example
-\begin{quote}
- |\DeclareLowercaseMapping[xx]{"0049}{\i}|\\
- |\DeclareLowercaseMapping[xx]{"0130}{i}|\\
- |\DeclareUppercaseMapping[xx]{"0069}{\.{I}}|\\
- |\DeclareUppercaseMapping[xx]{"0131}{I}|
-\end{quote}
+\begin{verbatim}
+\DeclareLowercaseMapping[xx]{"0049}{\i}
+\DeclareLowercaseMapping[xx]{"0130}{i}
+\DeclareUppercaseMapping[xx]{"0069}{\.{I}}
+\DeclareUppercaseMapping[xx]{"0131}{I}
+\end{verbatim}
\section{Support for problem solving}
diff --git a/macros/latex-dev/base/utf8ienc.pdf b/macros/latex-dev/base/utf8ienc.pdf
index a7e369b6eb..bfa803c7da 100644
--- a/macros/latex-dev/base/utf8ienc.pdf
+++ b/macros/latex-dev/base/utf8ienc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/webcomp.pdf b/macros/latex-dev/base/webcomp.pdf
index c9664c681f..b1b6d41562 100644
--- a/macros/latex-dev/base/webcomp.pdf
+++ b/macros/latex-dev/base/webcomp.pdf
Binary files differ