diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex')
226 files changed, 6700 insertions, 1315 deletions
diff --git a/Master/texmf-dist/doc/latex/amsmath/README.md b/Master/texmf-dist/doc/latex/amsmath/README.md index 1bc17024848..267418fc5ce 100644 --- a/Master/texmf-dist/doc/latex/amsmath/README.md +++ b/Master/texmf-dist/doc/latex/amsmath/README.md @@ -1,7 +1,7 @@ The amsmath bundle for LaTeX ============================ -Release 2022-06-01 +Release 2023-06-01 Overview -------- @@ -77,5 +77,5 @@ version 1.3c or later. ----- <p>Copyright (C) 2001-2004, 2007, 2008, 2010, 2011, 2013 American Mathematical Society. <br /> -<p>Copyright (C) 2016-2022 The LaTeX Project and American Mathematical Society. <br /> +<p>Copyright (C) 2016-2023 The LaTeX Project and American Mathematical Society. <br /> diff --git a/Master/texmf-dist/doc/latex/amsmath/amsbsy.pdf b/Master/texmf-dist/doc/latex/amsmath/amsbsy.pdf Binary files differindex e85825b6f95..fd67fc9cfa4 100644 --- a/Master/texmf-dist/doc/latex/amsmath/amsbsy.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/amsbsy.pdf diff --git a/Master/texmf-dist/doc/latex/amsmath/amscd.pdf b/Master/texmf-dist/doc/latex/amsmath/amscd.pdf Binary files differindex c0ecd2961bc..823a98bdd7f 100644 --- a/Master/texmf-dist/doc/latex/amsmath/amscd.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/amscd.pdf diff --git a/Master/texmf-dist/doc/latex/amsmath/amsgen.pdf b/Master/texmf-dist/doc/latex/amsmath/amsgen.pdf Binary files differindex 014feb8d2a1..2fd862962b1 100644 --- a/Master/texmf-dist/doc/latex/amsmath/amsgen.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/amsgen.pdf diff --git a/Master/texmf-dist/doc/latex/amsmath/amsldoc.pdf b/Master/texmf-dist/doc/latex/amsmath/amsldoc.pdf Binary files differindex dd7061eac5b..f9f7824c1fa 100644 --- a/Master/texmf-dist/doc/latex/amsmath/amsldoc.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/amsldoc.pdf diff --git a/Master/texmf-dist/doc/latex/amsmath/amsldoc.tex b/Master/texmf-dist/doc/latex/amsmath/amsldoc.tex index 4a8230e39f9..5c4b9e0d89e 100644 --- a/Master/texmf-dist/doc/latex/amsmath/amsldoc.tex +++ b/Master/texmf-dist/doc/latex/amsmath/amsldoc.tex @@ -1,6 +1,6 @@ % % Copyright (C) 1995, 2000, 2013 American Mathematical Society. -% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society. +% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c diff --git a/Master/texmf-dist/doc/latex/amsmath/amsmath.pdf b/Master/texmf-dist/doc/latex/amsmath/amsmath.pdf Binary files differindex 806926ebc0b..43358382aa0 100644 --- a/Master/texmf-dist/doc/latex/amsmath/amsmath.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/amsmath.pdf diff --git a/Master/texmf-dist/doc/latex/amsmath/amsopn.pdf b/Master/texmf-dist/doc/latex/amsmath/amsopn.pdf Binary files differindex 0c1f60fd38a..afe2d02c11d 100644 --- a/Master/texmf-dist/doc/latex/amsmath/amsopn.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/amsopn.pdf diff --git a/Master/texmf-dist/doc/latex/amsmath/amstext.pdf b/Master/texmf-dist/doc/latex/amsmath/amstext.pdf Binary files differindex bc92eb847dd..6af69a0585d 100644 --- a/Master/texmf-dist/doc/latex/amsmath/amstext.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/amstext.pdf diff --git a/Master/texmf-dist/doc/latex/amsmath/amsxtra.pdf b/Master/texmf-dist/doc/latex/amsmath/amsxtra.pdf Binary files differindex 6074bb822e4..da423751ec5 100644 --- a/Master/texmf-dist/doc/latex/amsmath/amsxtra.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/amsxtra.pdf diff --git a/Master/texmf-dist/doc/latex/amsmath/changes.txt b/Master/texmf-dist/doc/latex/amsmath/changes.txt index 83d6c6e3a12..149da6b425e 100644 --- a/Master/texmf-dist/doc/latex/amsmath/changes.txt +++ b/Master/texmf-dist/doc/latex/amsmath/changes.txt @@ -3,6 +3,14 @@ All changes above are only part of the development branch for the next release. ================================================================================ ######################### +# 2023-06-01 Release +######################### + +2023-05-13 David Carlisle <David.Carlisle@latex-project.org> + + * amsmath.dtx: Adjust the definition of \@@eqno (gh/1059) + +######################### # 2022-06-01 Release ######################### diff --git a/Master/texmf-dist/doc/latex/amsmath/subeqn.pdf b/Master/texmf-dist/doc/latex/amsmath/subeqn.pdf Binary files differindex 28c721c6f28..ecd2007fc47 100644 --- a/Master/texmf-dist/doc/latex/amsmath/subeqn.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/subeqn.pdf diff --git a/Master/texmf-dist/doc/latex/amsmath/technote.pdf b/Master/texmf-dist/doc/latex/amsmath/technote.pdf Binary files differindex 6a8c594364f..737227c298f 100644 --- a/Master/texmf-dist/doc/latex/amsmath/technote.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/technote.pdf diff --git a/Master/texmf-dist/doc/latex/amsmath/testmath.pdf b/Master/texmf-dist/doc/latex/amsmath/testmath.pdf Binary files differindex 8aef17f9ef2..3fe7a82152e 100644 --- a/Master/texmf-dist/doc/latex/amsmath/testmath.pdf +++ b/Master/texmf-dist/doc/latex/amsmath/testmath.pdf diff --git a/Master/texmf-dist/doc/latex/base/README.md b/Master/texmf-dist/doc/latex/base/README.md index eb19004b018..bccadab2d9d 100644 --- a/Master/texmf-dist/doc/latex/base/README.md +++ b/Master/texmf-dist/doc/latex/base/README.md @@ -1,7 +1,7 @@ The LaTeX kernel ================ -Release 2022-11-01 patch level 1 +Release 2023-06-01 Overview -------- diff --git a/Master/texmf-dist/doc/latex/base/alltt.pdf b/Master/texmf-dist/doc/latex/base/alltt.pdf Binary files differindex f2614d73e0f..e01f937daad 100644 --- a/Master/texmf-dist/doc/latex/base/alltt.pdf +++ b/Master/texmf-dist/doc/latex/base/alltt.pdf diff --git a/Master/texmf-dist/doc/latex/base/cfgguide.pdf b/Master/texmf-dist/doc/latex/base/cfgguide.pdf Binary files differindex 724ae8aebe5..4a9e45c7e42 100644 --- a/Master/texmf-dist/doc/latex/base/cfgguide.pdf +++ b/Master/texmf-dist/doc/latex/base/cfgguide.pdf diff --git a/Master/texmf-dist/doc/latex/base/cfgguide.tex b/Master/texmf-dist/doc/latex/base/cfgguide.tex index 53f53d90b4a..e0f76b74fbf 100644 --- a/Master/texmf-dist/doc/latex/base/cfgguide.tex +++ b/Master/texmf-dist/doc/latex/base/cfgguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -41,7 +41,7 @@ \author{\copyright~Copyright 1998, 2001, 2003 \LaTeX\ Project Team.\\ All rights reserved.% - \footnote{This file may distributed and/or modified under the + \footnote{This file 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. See the source \texttt{cfgguide.tex} for full details.}% diff --git a/Master/texmf-dist/doc/latex/base/changes.txt b/Master/texmf-dist/doc/latex/base/changes.txt index fed7e96be33..a8eabd5dd1f 100644 --- a/Master/texmf-dist/doc/latex/base/changes.txt +++ b/Master/texmf-dist/doc/latex/base/changes.txt @@ -11,6 +11,231 @@ All changes above are only part of the development branch for the next release. ================================================================================ ######################### +# 2023-06-01 Release +######################### + +2023-05-21 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * lthooks.dtx (subsection{Adding or removing hook code}): + Short-circuit when the hook is declared without args (gh1078). + +2023-05-31 Joseph Wright <Joseph.Wright@latex-project.org> + + * usrguide.text + Correct syntax of opt. arg. for \DeclareLowercaseMapping, etc. + +2023-05-30 Joseph Wright <Joseph.Wright@latex-project.org> + + * ltfinal.dtx + Fix implementation of \DeclareLowercaseMapping + +2023-05-26 Yukai Chou <muzimuzhi@gmail.com> + + * ltcmd.dtx (subsection{Structure of \pkg{xparse} commands}): + Use simpler 'NNno' variant instead of 'NNVo' for + \cs_generate_from_arg_count:NNnn + +2023-05-22 Joseph Wright <Joseph.Wright@latex-project.org> + + * usrguide.tex + Ensure url package is always loaded + +2023-05-21 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * lthooks.dtx, ltcmdhooks.dtx: + Add support for accessing arguments in 'cmd' hooks. + +2023-05-19 Joseph Wright <Joseph.Wright@latex-project.org> + + * usrguide.tex (section Creating document commands and environments) + Add details of result of trailing optional arguments on + \inputlineno + +2023-05-12 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + + * ltxref.dtx + extend \label to store five values and add a hook with argument + +2023-05-17 Joseph Wright <Joseph.Wright@latex-project.org> + + * usrguide.tex (section Creating document commands and environments) + Add details of brace stripping by \SplitList + Add guidance on creating commands to use at start of + tabular cells + +2023-05-15 Joseph Wright <Joseph.Wright@latex-project.org> + + * ltfiles.dtx: + Use expl3-based file-existence test + +2023-05-13 David Carlisle <David.Carlisle@latex-project.org> + + * ltmath.dtx: Add \ignorespaces to \eqno (gh/1059) + +2023-04-19 Joseph Wright <joseph.wright@latex-project.org> + + * ltfinal.dtx (subsection{Lccodes and uccodes}): + Add \DeclareLowercaseMapping, \DeclareTitlecaseMapping and + \DeclareUppercaseMapping (gh/1033) + +2023-04-19 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * lthooks.dtx (subsection{Specifying code for next invocation}): + Initialise hook structure when adding 'next' code (gh/1052) + +2023-04-17 Joseph Wright <Joseph.Wright@latex-project.org> + + * ltfinal.dtx (subsubsection{Lccodes and uccodes}): + Add \BCPdata (gh/1035) + Adapt \MakeLowercase, \MakeTitlecase and \MakeLowercase + to use \BCPdata for locale info + +2023-04-16 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * lthooks.dtx (subsubsection{Setting hooks up}): + Use \@@_replacing_args_false: in \@@_include_legacy_code_chunk:n. + +2023-04-15 David Carlisle <David.Carlisle@latex-project.org> + + * ltplain.dtx: adjust \extrafloats so it does not error if thousands + of float boxes are allocated. github/1041 + +2023-04-14 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * ltclass.dtx (\@onefilewithoptions): + When in latexrelease.sty, define \load@onefilewithoptions (gh/992). + +2023-04-13 David Carlisle <David.Carlisle@latex-project.org> + + * cmfonts.fdd: add missing substitution for U/cmtt/bx/sl gh/1037 + +2023-04-12 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * ltcmd.dtx (subsection{Grabbing arguments}): + Set \tex_endlinechar:D earlier to correct parsing of newlines in + special catcode settings (e.g., \ExplSyntaxOn) (gh/876). + +2023-04-02 David Carlisle <David.Carlisle@latex-project.org> + + * ltfilehook.dtx: allow par as a filename. (gh/942) + +2023-04-06 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * lthooks.dtx, ltcmdhooks.dtx: + Add support for providing and using arguments in hooks: + - Modify hook data structures to allow access to arguments; + - Add commands to declare hooks with arguments; + - Add commands to add code that references hook arguments; + - Add commands to use hooks with arguments. + +2023-04-01 David Carlisle <David.Carlisle@latex-project.org> + + * ltfssbas.dtx: locally reset frozen mathversions when the math + version changes. (gh/1028) + +2023-03-28 Joseph Wright <Joseph.Wright@latex-project.org> + + * ltclass.dtx: + Add \IfFileAtLeastTF (gh/1015) + +2023-03-28 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltxdoc.dtx (section{Options}): + Define \cs if doc is rolled back to v2 (gh/981) + +2023-03-28 David Carlisle <David.Carlisle@latex-project.org> + + * ltfinal.dtx: Restore groups to \MakeUppercase and + \MakeLowercase, and add a group to \MakeTitlecase. (gh/1021) + +2023-03-22 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltspace.dtx: + Add \predisplaypenalty setting of 10000 to \samepage in case + that was changed (gh/1022) + +2023-03-11 Yukai Chou <muzimuzhi@gmail.com> + + * ltcmd.dtx (subsubsection{Showing the definition of a command}), + (subsubsection{Copying a command and its internal structure}): + Correctly recognize (non-expandable) document commands with empty or only + m-type arguments (gh/1009) + +2023-01-30 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltpara.dtx (subsection{Providing hooks for paragraphs}): + Backout \parskip at top of minipage if it shouldn't be there + but is due to whatsits (gh/989) + +2023-02-05 Yukai Chou <muzimuzhi@gmail.com> + + * fntguide.tex: + Adjusted pagination due to recently added doc paragraphs (gh/994) + +2023-01-16 Yukai Chou <muzimuzhi@gmail.com> + + * ltnews.cls: + Added full release date yyyy-mm-dd to _all_ ltnews issues (gh/982) + Added \publicationday{<day>} to specify day in a month in ltnews<n>.tex. + <day> defaults to 01. + +2023-01-12 Joseph Joseph <Joseph.Joseph@latex-project.org> + + * clsguide.tex, clsguide-historic,tex + Pre-2023 source moved to new name, re-worked material which remains + relevant in updated file + +2023-01-19 Josef Friedrich <josef@friedrich.rocks> + + * ltluatex.dtx: + Remove unused local variable tex_setattribute (gh/978) + +2022-11-24 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltdefns.dtx (subsubsection{Copying robust commands}): + Added \NewEnvironmentCopy, \RenewEnvironmentCopy, and \DeclareEnvironmentCopy (gh/963) + Also added \ShowEnvironment. + +2022-11-16 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltclass.dtx: + Introduce key 'nowarn' on filecontents (gh/958) + Do not show "current dir" in message (gh/917) + +2022-11-14 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * latexrelease.dtx (subsection{Ignoring \texttt{\string_new} errors when rolling back}): + Silence \cs{NewMarkClass} in rollback (gh/955) + +2022-11-13 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * doc.dtx: + Redefinitions of \verb removed as no longer needed (gh/953) + + Redefinitions of \@verbatim changed to match the kernel + definition (gh/953) + +2022-11-08 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltshipout.dtx: + Add a shipout hook to be executed just before we + actually do the shipout (gh/920) + +2022-11-07 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltvers.dtx (section{Version Identification}): + Store release data in \LaTeXReleaseInfo for reuse at the end of + the .log file (gh/944) + + * ltmiscen.dtx (subsection{Environments}): Add to a hook in + \end{document} to (re)display the LaTeX release information (gh/944) + +2022-11-03 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * doc.dtx: correctly handle \<space> and allow it to be excluded + from the index (gh/943) + +######################### # 2022-11-01 PL1 Release ######################### @@ -145,7 +370,7 @@ All changes above are only part of the development branch for the next release. * doc.dtx recast Package Option declarations using \DeclareKeys - + 2022-06-10 Ulrike Fischer <Ulrike.Fischer@latex-project.org> * cmfonts.fdd diff --git a/Master/texmf-dist/doc/latex/base/classes.pdf b/Master/texmf-dist/doc/latex/base/classes.pdf Binary files differindex a8296800a36..5ce9be9aa06 100644 --- a/Master/texmf-dist/doc/latex/base/classes.pdf +++ b/Master/texmf-dist/doc/latex/base/classes.pdf diff --git a/Master/texmf-dist/doc/latex/base/clsguide-historic.pdf b/Master/texmf-dist/doc/latex/base/clsguide-historic.pdf Binary files differnew file mode 100644 index 00000000000..bc95e39dff1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/base/clsguide-historic.pdf diff --git a/Master/texmf-dist/doc/latex/base/clsguide-historic.tex b/Master/texmf-dist/doc/latex/base/clsguide-historic.tex new file mode 100644 index 00000000000..d7a27e3c406 --- /dev/null +++ b/Master/texmf-dist/doc/latex/base/clsguide-historic.tex @@ -0,0 +1,1881 @@ +% \iffalse meta-comment +% +% Copyright (C) 1993-2023 +% 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: clsguide-historic.tex + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +\documentclass{ltxguide}[1995/11/28] + +\title{\LaTeXe~for class and package writers --- historic version} + +\author{Copyright \copyright~1995--2006 The \LaTeX\ Project\\ + 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 + of this license or (at your option) any later version. See the source + \texttt{clsguide.tex} for full details.}% +} + +\date{11 January 2023} + +\begin{document} + +\maketitle + +\tableofcontents + +\section{Introduction} + +This document is an introduction to writing classes and packages for +\LaTeX{}, with special attention given to upgrading existing +\LaTeX~2.09 packages to \LaTeXe{}. The latter subject is also +covered in an article by Johannes Braams published in TUGboat~15.3. + +It is somewhat of an historical document now, since \LaTeXe{} came into +existence in 1994. + +\subsection{Writing classes and packages for \LaTeXe} + +\LaTeX{} is a document preparation system that enables the document +writer to concentrate on the contents of their text, without bothering +too much about the formatting of it. For example, chapters are +indicated by |\chapter{<title>}| rather than by selecting 18pt bold. + +The file that contains the information about how to turn logical +structure (like `|\chapter|') into formatting (like `18pt bold ragged +right') is a \emph{document class}. In addition, some features (such +as colour or included graphics) are independent of the document class +and these are contained in \emph{packages}. + +One of the largest differences between \LaTeX~2.09 and \LaTeXe{} is in +the commands used to write packages and classes. In \LaTeX~2.09, +there was very little support for writing |.sty| files, and so writers +had to resort to using low-level commands. + +\LaTeXe{} provides high-level commands for structuring packages. +It is also much easier to build classes and packages on top of each +other, for example writing a local technical report class |cetechr| +(for the Chemical Engineering department) based on |article|. + +\subsection{Overview} + +This document contains an overview of how to write classes and +packages for \LaTeX{}. It does \emph{not} introduce all of the +commands necessary to write packages: these can be found in either +\emph{\LaTeXbook} or \emph{\LaTeXcomp}. But it does describe the new +commands for structuring classes and packages. + +\begin{description} + +\item[Section~\ref{Sec:general}] contains some general advice about + writing classes and packages. It describes the difference between + classes and packages, the command naming conventions, the use of + |doc| and |docstrip|, how \TeX's primitive file and box commands + interact with \LaTeX{}. It also contains some hints about general + \LaTeX{} style. + +\item[Section~\ref{Sec:structure}] describes the structure of classes + and packages. This includes building classes and packages on top of + other classes and packages, declaring options and declaring + commands. It also contains example classes. + +\item[Section~\ref{Sec:commands}] lists the new class and package + commands. + + \item[Section~\ref{Sec:upgrade}] gives detailed advice on how to + upgrade existing \LaTeX~2.09 classes and packages to \LaTeXe{}. + +\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}. + +The \LaTeX{} system is based on \TeX{}, which is +described in \emph{The \TeX book} by Donald E.~Knuth~\cite{A-W:DEK91}. + +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{}, and is found in the files +|ltnews*.tex|. The author's guide \emph{\usrguide} describes the new +\LaTeX{} document features; it is in |usrguide.tex|. The guide +\emph{\fntguide} describes the \LaTeX{} font selection scheme for +class- and package-writers; it is in |fntguide.tex|. Configuring +\LaTeX{} is covered by the guide \emph{\cfgguide} in +\texttt{cfgguide.tex} whilst the philosophy behind our policy on +modifying \LaTeX{} is described in \emph{\modguide} in +\texttt{modguide.tex}. + +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. +Addresses and other details can be found at: +\begin{quote}\small\label{addrs} + \texttt{http://www.tug.org/lugs.html} +\end{quote} + + +\subsection{Policy on standard classes} + +Many of the problem reports we receive concerning the standard classes +are not concerned with bugs but are suggesting, more or less politely, +that the design decisions embodied in them are `not optimal' and +asking us to modify them. + +There are several reasons why we should not make such changes to these +files. +\begin{itemize} +\item + However misguided, the current behaviour is clearly what was + intended when these classes were designed. +\item + It is not good practice to change such aspects of `standard classes' + because many people will be relying on them. +\end{itemize} + +We have therefore decided not to even consider making such +modifications, nor to spend time justifying that decision. This does +not mean that we do not agree that there are many deficiencies in the +design of these classes, but we have many tasks with higher priority +than continually explaining why the standard classes for \LaTeX{} +cannot be changed. + +We would, of course, welcome the production of better classes, or of +packages that can be used to enhance these classes. So your first +thought when you consider such a deficiency will, we hope, be ``what +can I do to improve this?'' + +Similar considerations apply to those parts of the kernel that are +implementing design decisions, many of which should be left to the +class file but are not in the current system. We realise that in such +cases it is much more difficult for you to rectify the problem +yourself but it is also the case that making such changes in the +kernel would probably be a major project for us; therefore such +enhancements will have to wait for \LaTeX3. + +\section{Writing classes and packages} +\label{Sec:writing} + +This section covers some general points concerned with writing +\LaTeX{} classes and packages. + + +\subsection{Old versions} + +If you are upgrading an existing \LaTeX~2.09 style file then we +recommend freezing the 2.09 version and no longer maintaining it. +Experience with the various dialects of \LaTeX{} which existed in the +early 1990's suggests that maintaining packages for different versions +of \LaTeX{} is almost impossible. It will, of course, be necessary +for some organisations to maintain both versions in parallel for some +time but this is not essential for those packages and classes +supported by individuals: they should support only the new standard +\LaTeXe{}, not obsolete versions of \LaTeX{}. + + +\subsection{Using `docstrip' and `doc'} + +If you are going to write a large class or package for \LaTeX{} then +you should consider using the |doc| software which comes with +\LaTeX{}. +\LaTeX{} classes and packages written using this can be +processed in two ways: they can be run through \LaTeX{}, to produce +documentation; and they can be processed with |docstrip|, to produce +the |.cls| or |.sty| file. + +The |doc| software can automatically generate indexes of definitions, +indexes of command use, and change-log lists. It is very useful for +maintaining and documenting large \TeX{} sources. + +The documented sources of the \LaTeX{} kernel itself, and of the +standard classes, etc, are |doc| documents; they are in the |.dtx| +files in the distribution. You can, in fact, typeset the source code +of the kernel as one long document, complete with index, by running +\LaTeX{} on |source2e.tex|. Typesetting these documents uses the +class file |ltxdoc.cls|. + +For more information on |doc| and |docstrip|, consult the files +|docstrip.dtx|, |doc.dtx|, and \emph{\LaTeXcomp}. For examples of its +use, look at the |.dtx| files. + +\subsection{Is it a class or a package?} +\label{Sec:classorpkg} + +The first thing to do when you want to put some new \LaTeX{} commands +in a file is to decide whether it should be a \emph{document class} or a +\emph{package}. The rule of thumb is: +\begin{quote} + If the commands could be used with any document class, then make + them a package; and if not, then make them a class. +\end{quote} + +There are two major types of class: those like |article|, |report| or +|letter|, which are free-standing; and those which are extensions or +variations of other classes---for example, the |proc| document class, +which is built on the |article| document class. + +Thus, a company might have a local |ownlet| class for printing letters +with their own headed note-paper. Such a class would build on top of +the existing |letter| class but it cannot be used with any other +document class, so we have |ownlet.cls| rather than |ownlet.sty|. + +The |graphics| package, in contrast, provides commands for including +images into a \LaTeX{} document. Since these commands can be used +with any document class, we have |graphics.sty| rather than +|graphics.cls|. + + +\subsection{Command names} + +\LaTeX{} has three types of command. + +There are the author commands, such as |\section|, |\emph| and +|\times|: most of these have short names, all in lower case. + +There are also the class and package writer commands: +most of these have long mixed-case names such as the following. +\begin{verbatim} + \InputIfFileExists \RequirePackage \PassOptionsToClass +\end{verbatim} + +Finally, there are the internal commands used in the \LaTeX{} +implementation, such as |\@tempcnta|, |\@ifnextchar| and |\@eha|: +most of these commands contain |@| in their name, which means they +cannot be used in documents, only in class and package files. + +Unfortunately, for historical reasons the distinction between these +commands is often blurred. For example, |\hbox| is an internal +command which should only be used in the \LaTeX{} kernel, whereas +|\m@ne| is the constant $-1$ and could have been |\MinusOne|. + +However, this rule of thumb is still useful: if a command has |@| in +its name then it is not part of the supported \LaTeX{} language---and +its behaviour may change in future releases! If a command is +mixed-case, or is described in \emph{\LaTeXbook}, then you can rely on +future releases of \LaTeXe{} supporting the command. + +\subsection{Box commands and colour} +\label{Sec:colour} + +Even if you do not intend to use colour in your own documents, by +taking note of the points in this section you can ensure that your +class or package is compatible with the |color| package. This may +benefit people using your class or package who have access to colour +printers. + +The simplest way to ensure `colour safety' is to always use \LaTeX{} +box commands rather than \TeX{} primitives, that is use |\sbox| rather +than |\setbox|, |\mbox| rather than |\hbox| and |\parbox| or +the |minipage| environment rather than |\vbox|. +The \LaTeX{} box commands have new options which mean that they are now +as powerful as the \TeX{} primitives. + +As an example of what can go wrong, consider that in +|{\ttfamily <text>}| +the font is restored just \emph{before} the |}|, whereas in the +similar looking construction +|{\color{green} <text>}| +the colour is restored just \emph{after} the final |}|. Normally this +distinction does not matter at all; but consider a primitive \TeX{} +box assignment such as: +\begin{verbatim} + \setbox0=\hbox{\color{green} <text>} +\end{verbatim} +Now the colour-restore occurs after the |}| and so is \emph{not} +stored in the box. Exactly what bad effects this can have depends on +how colour is implemented: it can range from getting the wrong +colours in the rest of the document, to causing errors in the +dvi-driver used to print the document. + +Also of interest is the command |\normalcolor|. This is +normally just |\relax| (i.e., does nothing) +but you can use it rather like |\normalfont| to +set regions of the page such as captions or section headings to the +`main document colour'. + + +\subsection{Defining text and math characters} +\label{Sec:chars} + +Because \LaTeXe{} supports different encodings, definitions of commands +for producing symbols, accents, composite glyphs, etc.\ must be +defined using the commands provided for this purpose and described in +\emph{\fntguide}. This part of the system is still under development +so such tasks should be undertaken with great caution. + +Also, |\DeclareRobustCommand| should be used for encoding-independent +commands of this type. + +Note that it is no longer possible to refer to the math font set-up +outside math mode: for example, neither |\textfont 1| nor +|\scriptfont 2| are guaranteed to be defined in other modes. + + +\subsection{General style} +\label{Sec:general} + +The new system provides many commands designed to help you produce +well-structured class and package files that are both robust and +portable. This section outlines some ways to make intelligent use of +these. + +\subsubsection{Loading other files} +\label{Sec:loading} + +\NEWdescription{1995/12/01} +\LaTeX{} provides these commands: +\begin{verbatim} + \LoadClass \LoadClassWithOptions + \RequirePackage \RequirePackageWithOptions +\end{verbatim} +for using classes or packages inside other classes or packages. We +recommend strongly that you use them, rather than the primitive +|\input| command, for a number of reasons. + +Files loaded with |\input <filename>| will not be listed in the +|\listfiles| list. + +If a package is always loaded with |\RequirePackage...| or |\usepackage| +then, even if its loading is requested several times, it will be +loaded only once. By contrast, if it is loaded with |\input| then it +can be loaded more than once; such an extra loading may waste time and +memory and it may produce strange results. + +If a package provides option-processing then, again, strange results +are possible if the package is |\input| rather than loaded by means of +|\usepackage| or |\RequirePackage...|. + +If the package |foo.sty| loads the package |baz.sty| by use of +|\input baz.sty| then the user will get a warning: +\begin{verbatim} + LaTeX Warning: You have requested package `foo', + but the package provides `baz'. +\end{verbatim} +Thus, for several reasons, using |\input| to load packages is not a +good idea. + +Unfortunately, if you are upgrading the file |myclass.sty| to a class +file then you have to make sure that any old files which contain +|\input myclass.sty| still work. + +This was also true for the standard classes (|article|, |book| and +|report|), since a lot of existing \LaTeX~2.09 document styles contain +|\input article.sty|. The approach which we use to solve this is +to provide minimal files |article.sty|, |book.sty| and |report.sty|, +which simply load the appropriate class files. + +For example, |article.sty| contains just the following lines: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \@obsoletefile{article.cls}{article.sty} + \LoadClass{article} +\end{verbatim} +You may wish to do the same or, if you think that it is safe to do so, +you may decide to just remove |myclass.sty|. + +\subsubsection{Make it robust} + +We consider it good practice, when writing packages and classes, to use +\LaTeX{} commands as much as possible. + +Thus, instead of using |\def...| we recommend using one of +|\newcommand|, |\renewcommand| or |\providecommand|; |\CheckCommand| is +also useful. Doing this makes +it less likely that you will inadvertently redefine a command, giving +unexpected results. + +When you define an environment, use |\newenvironment| or +|\renewenvironment| instead |\def\foo{...}| and |\def\endfoo{...}|. + +If you need to set or change the value of a \m{dimen} or \m{skip} +register, use |\setlength|. + +To manipulate boxes, use \LaTeX{} commands such as |\sbox|, +|\mbox| and |\parbox| rather than |\setbox|, |\hbox| and |\vbox|. + +Use |\PackageError|, |\PackageWarning| or |\PackageInfo| (or the +equivalent class commands) rather than |\@latexerr|, |\@warning| or +|\wlog|. + +It is still possible to declare options by defining |\ds@<option>| and +calling |\@options|; but we recommend the |\DeclareOption| and +|\ProcessOptions| commands instead. These are more powerful and use +less memory. So rather than using: +\begin{verbatim} + \def\ds@draft{\overfullrule 5pt} + \@options +\end{verbatim} +you should use: +\begin{verbatim} + \DeclareOption{draft}{\setlength{\overfullrule}{5pt}} + \ProcessOptions\relax +\end{verbatim} + +The advantage of this kind of practice is that your code is more +readable and, more important, that it is less likely to break when +used with future versions of \LaTeX{}. + +\subsubsection{Make it portable} + +It is also sensible to make your files are as portable as possible. To +ensure this; they should contain only visible 7-bit text; and the +filenames should contain at most eight characters (plus the three +letter extension). Also, of course, it \textbf{must not} have the +same name as a file in the standard \LaTeX{} distribution, however +similar its contents may be to one of these files. + +It is also useful if local classes or packages have a common prefix, +for example the University of Nowhere classes might begin with |unw|. +This helps to avoid every University having its own thesis class, all +called |thesis.cls|. + +If you rely on some features of the \LaTeX{} kernel, or on a package, +please specify the release-date you need. For example, the package +error commands were introduced in the June 1994 release so, if you use +them then you should put: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e}[1994/06/01] +\end{verbatim} + +\subsubsection{Useful hooks} + +Some packages and document styles had to redefine the command +|\document| or |\enddocument| to achieve their goal. This is no +longer necessary. You can now use the `hooks' |\AtBeginDocument| and +|\AtEndDocument| (see Section~\ref{Sec:delays}). Again, using these +hooks makes it less likely that your code breaks with future versions +of \LaTeX{}. It also makes it more likely that your package can work +together with someone else's. + +\NEWdescription{1996/12/01} +However, note that code in the |\AtBeginDocument| hook is part of the +preamble. Thus there are restrictions on what can be put there; in +particular, no typesetting can be done. + +\section{The structure of a class or package} +\label{Sec:structure} + +\LaTeXe{} classes and packages have more structure than \LaTeX~2.09 +style files did. The outline of a class or package file is: +\begin{description} +\item[Identification] The file says that it is a \LaTeXe{} package or + class, and gives a short description of itself. +\item[Preliminary declarations] + Here the file declares some commands and can also load + other files. Usually these commands will be just those needed for + the code used in the declared options. +\item[Options] The file declares and processes its options. +\item[More declarations] This is where the file does most of its work: + declaring new variables, commands and fonts; and loading other files. +\end{description} + +\subsection{Identification} + +The first thing a class or package file does is identify itself. +Package files do this as follows: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesPackage{<package>}[<date> <other information>] +\end{verbatim} +For example: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesPackage{latexsym}[1994/06/01 Standard LaTeX package] +\end{verbatim} +Class files do this as follows: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{<class-name>}[<date> <other information>] +\end{verbatim} +For example: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{article}[1994/06/01 Standard LaTeX class] +\end{verbatim} +\NEWdescription{1998/06/19} +The \m{date} should be given in the form `\textsc{yyyy/mm/dd}' and +must be present if the optional argument is used (this is also true +for the |\NeedsTeXFormat| command). +Any derivation from this syntax will result in low-level \TeX{} +errors---the commands expect a valid syntax to speed up the daily +usage of the package or class and make no provision for the case that +the developer made a mistake! + +This date is checked whenever a user specifies a date in their +|\documentclass| or |\usepackage| command. For example, if you wrote: +\begin{verbatim} + \documentclass{article}[1995/12/23] +\end{verbatim} +then users at a different location +would get a warning that their copy of |article| was out of +date. + +The description of a class is displayed when the class is used. The +description of a package is put into the log file. These descriptions +are also displayed by the |\listfiles| command. The phrase +\texttt{Standard LaTeX} \textbf{must not} be used in the identification +banner of any file other than those in the standard \LaTeX{} +distribution. + + +\subsection{Using classes and packages} + +The first major difference between \LaTeX~2.09 style files and +\LaTeXe{} packages and classes is that \LaTeXe{} supports +\emph{modularity}, in the sense of building files from small +building-blocks rather than using large single files. + +A \LaTeX{} package or class can load a package as follows: +\begin{verbatim} + \RequirePackage[<options>]{<package>}[<date>] +\end{verbatim} +For example: +\begin{verbatim} + \RequirePackage{ifthen}[1994/06/01] +\end{verbatim} +This command has the same syntax as the author command |\usepackage|. +It allows packages or classes to use features provided by other +packages. For example, by loading the |ifthen| package, a package +writer can use the `if\dots then\dots else\dots' commands provided +by that package. + +A \LaTeX{} class can load one other class as follows: +\begin{verbatim} + \LoadClass[<options>]{<class-name>}[<date>] +\end{verbatim} +For example: +\begin{verbatim} + \LoadClass[twocolumn]{article} +\end{verbatim} +This command has the same syntax as the author command |\documentclass|. +It allows classes to be based on the syntax and appearance of another +class. For example, by loading the |article| class, a class writer +only has to change the bits of |article| they don't like, rather than +writing a new class from scratch. + +\NEWfeature{1995/12/01} +The following commands can be used in the common case that you want to +simply load a class or package file with exactly those options that +are being used by the current class. +\begin{verbatim} + \LoadClassWithOptions{<class-name>}[<date>] + \RequirePackageWithOptions{<package>}[<date>] +\end{verbatim} +For example: +\begin{verbatim} + \LoadClassWithOptions{article} + \RequirePackageWithOptions{graphics}[1995/12/01] +\end{verbatim} + +\subsection{Declaring options} + +\NEWdescription{1998/12/01} +The other major difference between \LaTeX~2.09 styles and \LaTeXe{} +packages and classes is in option handling. Packages and classes can +now declare options and these can be specified by authors; for +example, the |twocolumn| option is declared by the |article| class. +Note that the name of an option should contain only those characters +allowed in a `\LaTeX{} name'; in particular it must not contain any +control sequences. + +An option is declared as follows: +\begin{verbatim} + \DeclareOption{<option>}{<code>} +\end{verbatim} +For example, the |dvips| option (slightly simplified) +to the |graphics| package is implemented as: +\begin{verbatim} + \DeclareOption{dvips}{\input{dvips.def}} +\end{verbatim} +This means that when an author writes |\usepackage[dvips]{graphics}|, +the file |dvips.def| is loaded. As another example, the |a4paper| +option is declared in the |article| class to set the |\paperheight| +and |\paperwidth| lengths: +\begin{verbatim} + \DeclareOption{a4paper}{% + \setlength{\paperheight}{297mm}% + \setlength{\paperwidth}{210mm}% + } +\end{verbatim} +Sometimes a user will request an option which the class +or package has not explicitly declared. By default this will produce +a warning (for classes) or error (for packages); this behaviour +can be altered as follows: +\begin{verbatim} + \DeclareOption*{<code>} +\end{verbatim} +For example, to make the package |fred| produce a warning rather than +an error for unknown options, you could specify: +\begin{verbatim} + \DeclareOption*{% + \PackageWarning{fred}{Unknown option `\CurrentOption'}% + } +\end{verbatim} +Then, if an author writes |\usepackage[foo]{fred}|, they will get a +warning \texttt{Package fred Warning: Unknown option `foo'.} As +another example, the |fontenc| package tries to load a file +|<ENC>enc.def| whenever the \m{ENC} option is used. This +can be done by writing: +\begin{verbatim} + \DeclareOption*{% + \input{\CurrentOption enc.def}% + } +\end{verbatim} +\NEWdescription{1998/12/01} +It is possible to pass options on to another package or class, using +the command |\PassOptionsToPackage| or |\PassOptionsToClass| (note +that this is a specialised operation that works only for option +names). For example, to pass every unknown option on to the |article| +class, you can use: +\begin{verbatim} + \DeclareOption*{% + \PassOptionsToClass{\CurrentOption}{article}% + } +\end{verbatim} +If you do this then you should make sure you load the class at some +later point, otherwise the options will never be processed! + +So far, we have explained only how to declare options, not how to +execute them. To process the options with which the file was called, +you should use: +\begin{verbatim} + \ProcessOptions\relax +\end{verbatim} +This executes the \m{code} for each option that was both specified and +declared (see Section~\ref{Sec:commands.options} for details of how +this is done). + +For example, if the |jane| package file contains: +\begin{verbatim} + \DeclareOption{foo}{\typeout{Saw foo.}} + \DeclareOption{baz}{\typeout{Saw baz.}} + \DeclareOption*{\typeout{What's \CurrentOption?}} + \ProcessOptions\relax +\end{verbatim} +and an author writes |\usepackage[foo,bar]{jane}|, then they will see +the messages \texttt{Saw foo.} and \texttt{What's bar?} + +\subsection{A minimal class file} + +Most of the work of a class or package is in defining new commands, or +changing the appearance of documents. This is done in the body of the +package, using commands such as |\newcommand| or |\setlength|. + +\LaTeXe{} provides several new commands to help class and package +writers; these are described in detail in Section~\ref{Sec:commands}. + +There are four things that every class file \emph{must} contain: these +are a definition of |\normalsize|, values for |\textwidth| and +|\textheight| and a specification for page-numbering. So a minimal +document class file\footnote {This class is now in the standard +distribution, as \texttt{minimal.cls}.} looks like this: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{minimal}[1995/10/30 Standard LaTeX minimal class] + \renewcommand{\normalsize}{\fontsize{10pt}{12pt}\selectfont} + \setlength{\textwidth}{6.5in} + \setlength{\textheight}{8in} + \pagenumbering{arabic} % needed even though this class will + % not show page numbers +\end{verbatim} +However, this class file will not support footnotes, marginals, +floats, etc., nor will it provide any of the 2-letter font commands +such as |\rm|; thus most classes will contain more than this minimum! + +\subsection{Example: a local letter class} + +A company may have its own letter class, for setting letters in the +company style. This section shows a simple implementation of such a +class, although a real class would need more structure. + +The class begins by announcing itself as |neplet.cls|. +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{neplet}[1995/04/01 NonExistent Press letter class] +\end{verbatim} +Then this next bit passes any options on to the |letter| class, which +is loaded with the |a4paper| option. +\begin{verbatim} + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{letter}} + \ProcessOptions\relax + \LoadClass[a4paper]{letter} +\end{verbatim} +In order to use the company letter head, it redefines the +|firstpage| page style: this is the page style that is used on +the first page of letters. +\begin{verbatim} + \renewcommand{\ps@firstpage}{% + \renewcommand{\@oddhead}{<letterhead goes here>}% + \renewcommand{\@oddfoot}{<letterfoot goes here>}% + } +\end{verbatim} +And that's it! + +\subsection{Example: a newsletter class} + +A simple newsletter can be typeset with \LaTeX{}, using a variant of the +|article| class. +The class begins by announcing itself as |smplnews.cls|. +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e} + \ProvidesClass{smplnews}[1995/04/01 The Simple News newsletter class] + + \newcommand{\headlinecolor}{\normalcolor} +\end{verbatim} +It passes most specified options on to the |article| class: apart from +the |onecolumn| option, which is switched off, and the |green| option, +which sets the headline in green. +\begin{verbatim} + \DeclareOption{onecolumn}{\OptionNotUsed} + \DeclareOption{green}{\renewcommand{\headlinecolor}{\color{green}}} + + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} + + \ProcessOptions\relax +\end{verbatim} +It then loads the class |article| with the option |twocolumn|. +\begin{verbatim} + \LoadClass[twocolumn]{article} +\end{verbatim} +Since the newsletter is to be printed in colour, it now loads the +|color| package. The class does not specify a device driver option +since this should be specified by the user of the |smplnews| class. +\begin{verbatim} + \RequirePackage{color} +\end{verbatim} +The class then redefines |\maketitle| to produce the title in 72pt +Helvetica bold oblique, in the appropriate colour. +\begin{verbatim} + \renewcommand{\maketitle}{% + \twocolumn[% + \fontsize{72}{80}\fontfamily{phv}\fontseries{b}% + \fontshape{sl}\selectfont\headlinecolor + \@title + ]% + } +\end{verbatim} +It redefines |\section| and switches off section numbering. +\begin{verbatim} + \renewcommand{\section}{% + \@startsection + {section}{1}{0pt}{-1.5ex plus -1ex minus -.2ex}% + {1ex plus .2ex}{\large\sffamily\slshape\headlinecolor}% + } + + \setcounter{secnumdepth}{0} +\end{verbatim} +It also sets the three essential things. +\begin{verbatim} + \renewcommand{\normalsize}{\fontsize{9}{10}\selectfont} + \setlength{\textwidth}{17.5cm} + \setlength{\textheight}{25cm} +\end{verbatim} +In practice, a class would need more than this: it would provide +commands for issue numbers, authors of articles, page styles and so +on; but this skeleton gives a start. The |ltnews| class file is not +much more complex than this one. + +\section{Commands for class and package writers} +\label{Sec:commands} + +This section describes briefly each of the new commands for class and +package writers. To find out about other aspects of the new system, +you should also read \emph{\LaTeXbook}, \emph{\LaTeXcomp} and +\emph{\usrguide}. + +\subsection{Identification} + +The first group of commands discussed here are those used +to identify your class or package file. + +\begin{decl} +|\NeedsTeXFormat| \arg{format-name} \oarg{release-date} +\end{decl} +This command tells \TeX{} that this file should be processed using a +format with name \m{format-name}. You can use the optional argument +\m{release-date} to further specify the earliest release date of the +format that is needed. When the release date of the format is older +than the one specified a warning will be generated. The standard +\m{format-name} is \texttt{LaTeX2e}. The date, if present, must be in +the form \textsc{yyyy/mm/dd}. + +Example: +\begin{verbatim} + \NeedsTeXFormat{LaTeX2e}[1994/06/01] +\end{verbatim} + +\begin{decl} +|\ProvidesClass| \arg{class-name} \oarg{release-info} \\ +|\ProvidesPackage| \arg{package-name} \oarg{release-info} +\end{decl} +This declares that the current file contains the definitions for the +document class \m{class-name} or package \m{package-name}. + +The optional \m{release-info}, if used, must contain: +\begin{itemize} + \item the release date of + this version of the file, in the form \textsc{yyyy/mm/dd}; +\item optionally followed by a space and a short description, possibly + including a version number. +\end{itemize} +The above syntax must be followed exactly so that this information +can be used by |\LoadClass| or |\documentclass| (for classes) or +|\RequirePackage| or |\usepackage| (for packages) to test that the +release is not too old. + +The whole of this \m{release-info} information is displayed by +|\listfiles| and should therefore not be too long. + +Example: +\begin{verbatim} + \ProvidesClass{article}[1994/06/01 v1.0 Standard LaTeX class] + \ProvidesPackage{ifthen}[1994/06/01 v1.0 Standard LaTeX package] +\end{verbatim} + +\begin{decl} + |\ProvidesFile| \arg{file-name} \oarg{release-info} +\end{decl} +This is similar to the two previous commands except that here the full +filename, including the extension, must be given. It is used for +declaring any files other than main class and package files. + +Example: +\begin{verbatim} + \ProvidesFile{T1enc.def}[1994/06/01 v1.0 Standard LaTeX file] +\end{verbatim} + +Note that the phrase \texttt{Standard LaTeX} \textbf{must not} be used +in the identification banner of any file other than those in the +standard \LaTeX{} distribution. + +\subsection{Loading files} +\label{Sec:loadf} + +\NEWfeature{1995/12/01} +This group of commands can be used to create your own document class or +package by building on existing classes or packages. +\begin{decl} + |\RequirePackage| \oarg{options-list} \arg{package-name} + \oarg{release-info}\\ + |\RequirePackageWithOptions| \arg{package-name} + \oarg{release-info} +\end{decl} +Packages and classes should use these commands to load other packages. + +The use of |\RequirePackage| is the same as the author command +|\usepackage|. + +Examples: +\begin{verbatim} + \RequirePackage{ifthen}[1994/06/01] + \RequirePackageWithOptions{graphics}[1995/12/01] +\end{verbatim} + +\begin{decl} + |\LoadClass| \oarg{options-list} \arg{class-name} + \oarg{release-info}\\ + |\LoadClassWithOptions| \arg{class-name} + \oarg{release-info} +\end{decl} +\NEWfeature{1995/12/01} +These commands are for use \emph{only} in class files, they cannot be +used in packages files; +they can be used at most once within a class file. + +The use of |\LoadClass| is the same as +the use of |\documentclass| to load a class file. + +Examples: +\begin{verbatim} + \LoadClass{article}[1994/06/01] + \LoadClassWithOptions{article}[1995/12/01] +\end{verbatim} + +\NEWfeature{1995/12/01} +The two |WithOptions| versions simply load the class (or package) file +with exactly those options that are being used by the current file +(class or package). See below, in \ref{Sec:opmove}, for further +discussion of their use. + + +\subsection{Option declaration} +\label{Sec:commands.options.dec} + +\NEWdescription{1998/12/01} +The following commands deal with the declaration and handling of +options to document classes and packages. Every option name must be a +`\LaTeX{} name'. + +There are some commands designed especially for use within the +\m{code} argument of these commands (see below). + +\begin{decl} + |\DeclareOption| \arg{option-name} \arg{code} +\end{decl} +This makes \m{option-name} a `declared option' of the class or package +in which it is put. + +The \m{code} argument contains the code to be executed if that option +is specified for the class or package; it can contain any valid +\LaTeXe{} construct. + +Example: +\begin{verbatim} + \DeclareOption{twoside}{\@twosidetrue} +\end{verbatim} + +\begin{decl} + |\DeclareOption*| \arg{code} +\end{decl} +This declares the \m{code} to be executed for every option which is +specified for, but otherwise not explicitly declared by, the class or +package; this code is called the `default option code' and it can +contain any valid \LaTeXe{} construct. + +If a class file contains no |\DeclareOption*| then, by default, all +specified but undeclared options for that class will be silently +passed to all packages (as will the specified and declared options for +that class). + +If a package file contains no |\DeclareOption*| then, by default, each +specified but undeclared option for that package will produce an error. + + +\subsection{Commands within option code} +\label{Sec:within.code} + +These two commands can be used only within the \m{code} argument of +either |\DeclareOption| or |\DeclareOption*|. Other commands commonly +used within these arguments can be found in the next few subsections. + +\begin{decl} + |\CurrentOption| +\end{decl} +This expands to the name of the current option. + +\begin{decl} + |\OptionNotUsed| +\end{decl} +This causes the current option to +be added to the list of `unused options'. + +\NEWfeature{1995/06/01} + You can now include hash marks (\texttt{\#}) within these \m{code} + arguments without special treatment (formerly, it had been + necessary to double them). + +\subsection{Moving options around} +\label{Sec:opmove} + +These two commands are also very useful within the \m{code} argument +of |\DeclareOption| or |\DeclareOption*|: +\begin{decl} + |\PassOptionsToPackage| \arg{options-list} \arg{package-name}\\ + |\PassOptionsToClass| \arg{options-list} \arg{class-name} +\end{decl} +The command |\PassOptionsToPackage| passes the option names in +\m{options-list} to package \m{package-name}. +This means that it adds the \m{option-list} to the +list of options used by any future |\RequirePackage| or |\usepackage| +command for package \m{package-name}. + +Example: +\begin{verbatim} + \PassOptionsToPackage{foo,bar}{fred} + \RequirePackage[baz]{fred} +\end{verbatim} +is the same as: +\begin{verbatim} + \RequirePackage[foo,bar,baz]{fred} +\end{verbatim} + +Similarly, |\PassOptionsToClass| may be used in a class file to pass +options to another class to be loaded with |\LoadClass|. + +\NEWdescription{1995/12/01} +The effects and use of these two commands should be contrasted with +those of the following two (documented above, in \ref{Sec:loadf}): +\begin{verbatim} + \LoadClassWithOptions + \RequirePackageWithOptions +\end{verbatim} +The command |\RequirePackageWithOptions| is similar to +|\RequirePackage|, but it always loads the required package with +exactly the same option list as that being used by the current class +or package, rather than with any option explicitly supplied or passed +on by |\PassOptionsToPackage|. + +The main purpose of |\LoadClassWithOptions| is to allow one class to +simply build on another, for example: +\begin{verbatim} + \LoadClassWithOptions{article} +\end{verbatim} +This should be compared with the slightly different construction +\begin{verbatim} + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} + \ProcessOptions\relax + \LoadClass{article} +\end{verbatim} +As used above, the effects are more or less the same, but the first is +a lot less to type; also the |\LoadClassWithOptions| method runs +slightly quicker. + +If, however, the class declares options of its own then +the two constructions are different. Compare, for example: +\begin{verbatim} + \DeclareOption{landscape}{\@landscapetrue} + \ProcessOptions\relax + \LoadClassWithOptions{article} +\end{verbatim} +with: +\begin{verbatim} + \DeclareOption{landscape}{\@landscapetrue} + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} + \ProcessOptions\relax + \LoadClass{article} +\end{verbatim} +In the first example, the \textsf{article} class will be loaded with +option |landscape| precisely when the current class is called with +this option. By contrast, in the second example it will never be +called with option \texttt{landscape} as in that case \textsf{article} +is passed options only by the default option handler, but this handler +is not used for |landscape| because that option is explicitly +declared. + +\subsection{Delaying code} +\label{Sec:delays} + +These first two commands are also intended primarily for use within +the \m{code} argument of |\DeclareOption| or |\DeclareOption*|. + +\begin{decl} + |\AtEndOfClass| \arg{code}\\ + |\AtEndOfPackage| \arg{code} +\end{decl} +These commands declare \m{code} that is saved away internally and then +executed after processing the whole of the current class or package +file. + +Repeated use of these commands is permitted: the code in the +arguments is stored (and later executed) in the order of their +declarations. + +\begin{decl} + |\AtBeginDocument| \arg{code}\\ + |\AtEndDocument| \arg{code} +\end{decl} +These commands declare \m{code} to be saved internally and executed +while \LaTeX{} is executing |\begin{document}| or |\end{document}|. + +The \m{code} specified in the argument to |\AtBeginDocument| is +executed near the end of the |\begin{document}| code, \emph{after} the +font selection tables have been set up. It is therefore a useful +place to put code which needs to be executed after everything has been +prepared for typesetting and when the normal font for the document is +the current font. + +\NEWdescription{1995/12/01} +The |\AtBeginDocument| hook should not be used for code that does any +typesetting since the typeset result would be unpredictable. + +The \m{code} specified in the argument to |\AtEndDocument| is +executed at the beginning of the |\end{document}| code, +\emph{before} the final page is finished and before any leftover +floating environments are processed. If some of the \m{code} is to be +executed after these two processes, you should include a |\clearpage| +at the appropriate point in \m{code}. + +Repeated use of these commands is permitted: the code in the +arguments is stored (and later executed) in the order of their +declarations. + +\begin{decl}[1994/12/01] + |\AtBeginDvi| \arg{specials} +\end{decl} +These commands save in a box register things which are written to the +|.dvi| file at the beginning of the `shipout' of the first page of the +document. + +This should not be used for anything that will add any typeset +material to the |.dvi| file. + +Repeated use of this command is permitted. + + +\subsection{Option processing} +\label{Sec:commands.options} + +\begin{decl} + |\ProcessOptions| +\end{decl} +This command executes the \m{code} for each selected option. + +We shall first describe how |\ProcessOptions| works in a package file, +and then how this differs in a class file. + +To understand in detail what |\ProcessOptions| does in a package file, +you have to know the difference between \emph{local} and \emph{global} +options. +\begin{itemize} +\item \textbf{Local options} are those which have been explicitly + specified for this particular package in the \m{options} argument of + any of these: +\begin{quote} + |\PassOptionsToPackage{<options>}| \ |\usepackage[<options>]|\\ + |\RequirePackage[<options>]| +\end{quote} +\item \textbf{Global options} are any other options that are specified + by the author in the \m{options} argument of + |\documentclass[<options>]|. +\end{itemize} +For example, suppose that a document begins: +\begin{verbatim} + \documentclass[german,twocolumn]{article} + \usepackage{gerhardt} +\end{verbatim} +whilst package |gerhardt| calls package |fred| with: +\begin{verbatim} + \PassOptionsToPackage{german,dvips,a4paper}{fred} + \RequirePackage[errorshow]{fred} +\end{verbatim} +then: +\begin{itemize} +\item |fred|'s local options are |german|, |dvips|, |a4paper| + and |errorshow|; +\item |fred|'s only global option is |twocolumn|. +\end{itemize} + +When |\ProcessOptions| is called, the following happen. +\begin{itemize} +\item \emph{First}, for each option so far declared in |fred.sty| + by |\DeclareOption|, it looks to see if that option is either a + global or a local option for |fred|: if it is then the corresponding + code is executed. + + This is done in the order in which these options + were declared in |fred.sty|. +\item \emph{Then}, for each remaining \emph{local} option, the command + |\ds@<option>| is executed if it has been defined somewhere (other + than by a |\DeclareOption|); otherwise, the `default option code' is + executed. If no default option code has been declared then an error + message is produced. + + This is done in the order in which these + options were specified. +\end{itemize} +Throughout this process, the system ensures that the code declared for +an option is executed at most once. + +Returning to the example, if |fred.sty| contains: +\begin{verbatim} + \DeclareOption{dvips}{\typeout{DVIPS}} + \DeclareOption{german}{\typeout{GERMAN}} + \DeclareOption{french}{\typeout{FRENCH}} + \DeclareOption*{\PackageWarning{fred}{Unknown `\CurrentOption'}} + \ProcessOptions\relax +\end{verbatim} +then the result of processing this document will be: +\begin{verbatim} + DVIPS + GERMAN + Package fred Warning: Unknown `a4paper'. + Package fred Warning: Unknown `errorshow'. +\end{verbatim} +Note the following: + +\begin{itemize} +\item the code for the |dvips| option is executed before that for the + |german| option, because that is the order in which they are declared + in |fred.sty|; +\item the code for the |german| option is executed only once, when the + declared options are being processed; +\item the |a4paper| and |errorshow| options produce the warning from + the code declared by |\DeclareOption*| (in the order in which they + were specified), whilst the |twocolumn| option does not: this is + because |twocolumn| is a global option. +\end{itemize} + +In a class file, |\ProcessOptions| works in the same way, except +that: \emph{all} options are local; and the default value for +|\DeclareOption*| is |\OptionNotUsed| rather than an error. + +\NEWdescription{1995/12/01} +Note that, because |\ProcessOptions| has a |*|-form, it is wise to +follow the non-star form with |\relax|, as in the previous examples, +since this prevents unnecessary look ahead and possibly misleading +error messages being issued. + +\begin{decl} + |\ProcessOptions*| \\ + |\@options| +\end{decl} +This is like |\ProcessOptions| but it executes the options in the +order specified in the calling commands, rather than in the order of +declaration in the class or package. For a package this means that the +global options are processed first. + +The |\@options| command from \LaTeX~2.09 has been made equivalent to +this in order to ease the task of updating old document styles to +\LaTeXe{} class files. + +\begin{decl} + |\ExecuteOptions| \arg{options-list} +\end{decl} + +For each option in the \m{options-list}, in order, +this command simply executes the command +|\ds@<option>| (if this command is not defined, then that option is +silently ignored). + +It can be used to provide a `default option list' just before +|\ProcessOptions|. For example, suppose that in a class file you want +to set up the default design to be: two-sided printing; 11pt fonts; +in two columns. Then it could specify: +\begin{verbatim} + \ExecuteOptions{11pt,twoside,twocolumn} +\end{verbatim} + + +\subsection{Safe file commands} + +These commands deal with file input; they ensure that the non-existence +of a requested file can be handled in a user-friendly way. + +\begin{decl} +|\IfFileExists| \arg{file-name} \arg{true} \arg{false} +\end{decl} +If the file exists then the code specified in \m{true} is +executed. + +If the file does not exist then the code specified in \m{false} is +executed. + +This command does \emph{not} input the file. + +\begin{decl} + |\InputIfFileExists| \arg{file-name} \arg{true} \arg{false} +\end{decl} +This inputs the file \m{file-name} if it exists and, immediately +before the input, the code specified in \m{true} is executed. + +If the file does not exist then the code specified in \m{false} is +executed. + +It is implemented using |\IfFileExists|. + + +\subsection{Reporting errors, etc} + +These commands should be used by third party classes and packages to +report errors, or to provide information to authors. + +\begin{decl} + |\ClassError| \arg{class-name} \arg{error-text} \arg{help-text}\\ + |\PackageError| \arg{package-name} \arg{error-text} \arg{help-text} +\end{decl} +These produce an error message. The \m{error-text} is displayed and the +|?| error prompt is shown. If the user types |h|, they will be shown +the \m{help-text}. + +Within the \m{error-text} and \m{help-text}: |\protect| can be used to +stop a command from expanding; |\MessageBreak| causes a line-break; +and |\space| prints a space. + +Note that the \m{error-text} will have a full stop added to it, so do +not put one into the argument. + +For example: +\begin{verbatim} + \newcommand{\foo}{FOO} + \PackageError{ethel}{% + Your hovercraft is full of eels,\MessageBreak + and \protect\foo\space is \foo + }{% + Oh dear! Something's gone wrong.\MessageBreak + \space \space Try typing \space <<return>> + \space to proceed, ignoring \protect\foo. + } +\end{verbatim} +produces this display: +\begin{verbatim} + ! Package ethel Error: Your hovercraft is full of eels, + (ethel) and \foo is FOO. + + See the ethel package documentation for explanation. +\end{verbatim} +If the user types |h|, this will be shown: +\begin{verbatim} + Oh dear! Something's gone wrong. + Try typing <<return>> to proceed, ignoring \foo. +\end{verbatim} + +\begin{decl} + |\ClassWarning| \arg{class-name} \arg{warning-text}\\ + |\PackageWarning| \arg{package-name} \arg{warning-text}\\ + |\ClassWarningNoLine| \arg{class-name} \arg{warning-text}\\ + |\PackageWarningNoLine| \arg{package-name} \arg{warning-text}\\ + |\ClassInfo| \arg{class-name} \arg{info-text}\\ + |\PackageInfo| \arg{package-name} \arg{info-text} +\end{decl} +The four |Warning| commands are similar to the error commands, except +that they produce only a warning on the screen, with no error prompt. + +The first two, |Warning| versions, also show the line number where the +warning occurred, whilst the second two, |WarningNoLine| versions, do +not. + +The two |Info| commands are similar except that they log the +information only in the transcript file, including the line number. +There are no |NoLine| versions of these two. + +Within the \m{warning-text} and \m{info-text}: |\protect| can be used to +stop a command from expanding; |\MessageBreak| causes a line-break; +and |\space| prints a space. +Also, these should not end with a full stop as one is +automatically added. + + +\subsection{Defining commands} +\label{Sec:commands.define} + +\LaTeXe{} provides some extra methods of (re)defining commands that are +intended for use in class and package files. + +\NEWfeature{1994/12/01} +The \texttt{*}-forms of these commands should be used to define +commands that are not, in \TeX{} terms, long. This can be useful for +error-trapping with commands whose arguments are not intended to +contain whole paragraphs of text. + +\begin{decl} + |\DeclareRobustCommand| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition}\\ + |\DeclareRobustCommand*| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition} +\end{decl} +This command takes the same arguments as |\newcommand| but it declares +a robust command, even if some code within the \m{definition} is +fragile. You can use this command to define new robust commands, or +to redefine existing commands and make them robust. A log is put into +the transcript file if a command is redefined. + +For example, if |\seq| is defined as follows: +\begin{verbatim} + \DeclareRobustCommand{\seq}[2][n]{% + \ifmmode + #1_{1}\ldots#1_{#2}% + \else + \PackageWarning{fred}{You can't use \protect\seq\space in text}% + \fi + } +\end{verbatim} +Then the command |\seq| can be used in moving arguments, even though +|\ifmmode| cannot, for example: +\begin{verbatim} + \section{Stuff about sequences $\seq{x}$} +\end{verbatim} + +Note also that there is no need to put a |\relax| before the +|\ifmmode| at the beginning of the definition; this is because the +protection given by this |\relax| against expansion at the wrong time +will be provided internally. + +\begin{decl} + |\CheckCommand| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition}\\ + |\CheckCommand*| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition} +\end{decl} +This takes the same arguments as |\newcommand| but, rather than define +\m{cmd}, it just checks that the current definition of \m{cmd} is +exactly as given by \m{definition}. An error is raised if these +definitions differ. + +This command is useful for checking the state of the system before +your package starts altering the definitions of commands. It allows +you to check, in particular, that no other package has redefined the +same command. + +\subsection{Moving arguments} + +\NEWdescription{1994/12/01} +The setting of protect whilst processing (i.e.~moving) moving arguments +has been reimplemented, as has the method of writing information from +the |.aux| file to other files such as the |.toc| file. Details can +be found in the file |ltdefns.dtx|. + +We hope that these changes will not affect many packages. + +\section{Miscellaneous commands, etc} +\label{Sec:commands.misc} + +\subsection{Layout parameters} + +\begin{decl} +|\paperheight|\\ +|\paperwidth| +\end{decl} +These two parameters are usually set by the class to be the size of +the paper being used. This should be actual paper size, unlike +|\textwidth| and |\textheight| which are the size of the main text +body within the margins. + + +\subsection{Case changing} +\label{sec:case} + +\begin{decl} + |\MakeUppercase| \arg{text} \\ + |\MakeLowercase| \arg{text} +\end{decl} + +\NEWfeature{1995/06/01} +\TeX{} provides two primitives |\uppercase| and |\lowercase| for +changing the case of text. These are sometimes used in document +classes, for example to set information in running heads in all +capitals. + +Unfortunately, these \TeX{} primitives do not change the case of +characters accessed by commands like |\ae| or |\aa|. To overcome this +problem, \LaTeX{} provides two new commands |\MakeUppercase| and +|\MakeLowercase| to do this. + +For example: +\begin{quotation} +\begin{tabular}{rl} + |\uppercase{aBcD\ae\AA\ss\OE}| & \uppercase{aBcD\ae\AA\ss\OE}\\ + |\lowercase{aBcD\ae\AA\ss\OE}| & \lowercase{aBcD\ae\AA\ss\OE}\\ + |\MakeUppercase{aBcD\ae\AA\ss\OE}| & + \MakeUppercase{aBcD\ae\AA\ss\OE}\\ + |\MakeLowercase{aBcD\ae\AA\ss\OE}| & \MakeLowercase{aBcD\ae\AA\ss\OE} +\end{tabular} +\end{quotation} + +The commands |\MakeUppercase| and |\MakeLowercase| themselves are +robust, but they have moving arguments. + +The commands use the \TeX{} primitives |\uppercase| and |\lowercase|, +and so have a number of unexpected `features'. In particular, they +change the case of everything (except characters in the names of +control-sequences) in their text argument: this includes mathematics, +environment names, and label names. + +For example: +\begin{verbatim} + \MakeUppercase{$x+y$ in \ref{foo}} +\end{verbatim} +produces $X+Y$ and the warning: +\begin{verbatim} + LaTeX Warning: Reference `FOO' on page ... undefined on ... +\end{verbatim} +In the long run, we would like to use all-caps fonts rather than any +command like |\MakeUppercase| but this is not possible at the moment +because such fonts do not exist. + +\NEWdescription{1995/12/01} +In order that upper/lower-casing will work reasonably well, and in +order to provide any correct hyphenation, \LaTeXe{} \emph{must} use, +throughout a document, the same fixed table for changing case. +The table used is designed for the font encoding |T1|; this works well +with the standard \TeX{} fonts for all Latin alphabets but will cause +problems when using other alphabets. + +\subsection{The `openany' option in the `book' class} + +\NEWdescription{1996/06/01} +The |openany| option allows chapter and similar openings to +occur on left hand pages. Previously this option affected only +|\chapter| and |\backmatter|. It now also affects +|\part|, |\frontmatter| and |\mainmatter|. + +\subsection{Better user-defined math display environments} + +\begin{decl} + |\ignorespacesafterend| +\end{decl} + +\NEWfeature{1996/12/01} +\NEWdescription{2003/12/01} +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}} +\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 inter-word space appears at the beginning of the first +line after the environment. + +There is now an extra command (with a very long name) available that +you can use to avoid this problem; it should be inserted as shown here: +\begin{verbatim} + \newenvironment{texteqn} + {\begin{equation} + \begin{minipage}{0.9\linewidth}} + {\end{minipage} + \end{equation} + \ignorespacesafterend} +\end{verbatim} + +This command may also have other uses. + +\subsection{Normalising spacing} + +\begin{decl} + |\normalsfcodes| +\end{decl} + +\NEWfeature{1997/06/01} +This command should be used to restore the normal settings of the +parameters that affect spacing between words, sentences, etc. + +An important use of this feature is to correct a problem, reported by +Donald Arseneau, that punctuation in page headers has always (in all +known \TeX{} formats) been potentially wrong whenever a page break +happens while a local setting of the space codes is in effect. These +space codes are changed by, for example, the command +\verb|\frenchspacing|) and the \textsf{verbatim} environment. + +It is normally given the correct definition automatically in +|\begin{document}| and so need not be explicitly set; however, if it +is explicitly made nonempty in a class file then automatic +default setting will be over-ridden. + + +\section{Upgrading \LaTeX~2.09 classes and packages} +\label{Sec:upgrade} + +This section describes the changes you may need to make when you +upgrade an existing \LaTeX{} style to a package or class but we shall +start in optimistic mode. + +Many existing style files will run with \LaTeXe{} without any +modification to the file itself. When everything is running OK, +please put a note in the newly created package or class file to record +that it runs with the new standard \LaTeX{}; then distribute it to +your users. + +\subsection{Try it first!} +\label{Sec:try-it} + +The first thing you should do is to test your style in `compatibility +mode'. The only change you need to make in order to do this is, +possibly, to change the extension of the file to |.cls|: you should +make this change only if your file was used as a main document style. +Now, without any other modifications, run \LaTeXe{} on a document that +uses your file. This assumes that you have a suitable collection of +files that tests all the functionality provided by your style file. +(If you haven't, now is the time to make one!) + +You now need to change the test document files so that they are +\LaTeXe{} documents: see \emph{\usrguide} for details of how to do +this and then try them again. You have now tried the test documents +in both \LaTeXe{} native mode and \LaTeX~2.09 compatibility mode. + +\subsection{Troubleshooting} +\label{Sec:trouble} + +If your file does not work with \LaTeXe{}, there are two likely +reasons. +\begin{itemize} +\item \LaTeX{} now has a robust, well-defined designer's interface for + selecting fonts, which is very different from the \LaTeX~2.09 + internals. +\item Your style file may have used some \LaTeX~2.09 internal commands + which have changed, or which have been removed. +\end{itemize} + +When you are debugging your file, you will probably need more +information than is normally displayed by \LaTeXe. This is achieved +by resetting the counter |errorcontextlines| from its default value of +$-1$ to a much higher value, e.g.~999. + +\subsection{Accommodating compatibility mode} + +Sometimes an existing collection of \LaTeX~2.09 documents makes it +inconvenient or impossible to abandon the old commands entirely. +If this is the case, then it is possible to accommodate both conventions +by making special provision for documents processed in compatibility +mode. + +\begin{decl} +|\if@compatibility| +\end{decl} +This switch is set when a document begins with |\documentstyle| rather +than |\documentclass|. Appropriate code can be supplied for either +condition, as follows: +\begin{verbatim} + \if@compatibility + <code emulating LaTeX 2.09 behavior> + \else + <code suitable for LaTeX2e> + \fi +\end{verbatim} + + +\subsection{Font commands} + +Some font and size commands are now defined by the document class +rather than by the \LaTeX{} kernel. If you are upgrading a +\LaTeX~2.09 document style to a class that does not load one of the +standard classes, then you will probably need to add definitions for +these commands. + +\begin{decl} + |\rm| |\sf| |\tt| |\bf| |\it| |\sl| |\sc| +\end{decl} +None of these short-form font selection commands are defined in the +\LaTeXe{} kernel. They are defined by all the standard class files. + +If you want to define them in your class file, there are several +reasonable ways to do this. + +One possible definition is: +\begin{verbatim} + \newcommand{\rm}{\rmfamily} + ... + \newcommand{\sc}{\scshape} +\end{verbatim} +This would make the font commands orthogonal; for example +|{\bf\it text}| would produce bold italic, thus: \textbf{\textit{text}}. +It will also make them produce an error if used in math mode. + +Another possible definition is: +\begin{verbatim} + \DeclareOldFontCommand{\rm}{\rmfamily}{\mathrm} + ... + \DeclareOldFontCommand{\sc}{\scshape}{\mathsc} +\end{verbatim} +This will make |\rm| act like |\rmfamily| in text mode (see above) and +it will make |\rm| select the |\mathrm| math alphabet in math mode. + +Thus |${\rm math} = X + 1$| will produce `${\rm math} = X + 1$'. + +If you do not want font selection to be orthogonal then you can +follow the standard classes and define: +\begin{verbatim} + \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} + ... + \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\mathsc} +\end{verbatim} +This means, for example, that |{\bf\it text}| will produce medium +weight (rather than bold) italic, thus: \textit{text}. + +\begin{decl} + |\normalsize| \\ + |\@normalsize| +\end{decl} +The command |\@normalsize| is retained for compatibility with +\LaTeX~2.09 packages which may have used its value; but redefining it +in a class file will have no effect since it is always reset to have +the same meaning as |\normalsize|. + +This means that classes \emph{must} now redefine |\normalsize| rather +than redefining |\@normalsize|; for example (a rather incomplete one): +\begin{verbatim} + \renewcommand{\normalsize}{\fontsize{10}{12}\selectfont} +\end{verbatim} +Note that |\normalsize| is defined by the \LaTeX{} kernel to be an +error message. + +\begin{decl} + |\tiny| |\footnotesize| |\small| |\large|\\ + |\Large| |\LARGE| |\huge| |\Huge| +\end{decl} +None of these other `standard' size-changing commands are defined in +the kernel: each needs to be defined in a class file if you need it. +They are all defined by the standard classes. + +This means you should use |\renewcommand| for |\normalsize| and +|\newcommand| for the other size-changing commands. + + +\subsection{Obsolete commands} + +Some packages will not work with \LaTeXe{}, normally because they relied +on an internal \LaTeX{} command which was never supported and has now +changed, or been removed. + +In many cases there will now be a robust, high-level means of +achieving what previously required low-level commands. Please consult +Section~\ref{Sec:commands} to see if you can now use the \LaTeXe{} +class and package writers commands. + +Also, of course, if your package or class redefined any of the kernel +commands (i.e.~those defined in the files |latex.tex|, |slitex.tex|, +|lfonts.tex|, |sfonts.tex|) then you will need to check it very +carefully against the new kernel in case the implementation has +changed or the command no longer exists in the \LaTeX2e{} kernel. + +Too many of the internal commands of \LaTeX~2.09 have been +re-implemented or removed to be able to list them all here. You must +check any that you have used or changed. + +We shall, however, list some of the more important commands which are +no longer supported. + +\begin{decl} + |\tenrm| |\elvrm| |\twlrm| \dots\\ + |\tenbf| |\elvbf| |\twlbf| \dots\\ + |\tensf| |\elvsf| |\twlsf| \dots\\ + \qquad$\vdots$ +\end{decl} +The (approximately) seventy internal commands of this form are no longer +defined. If your class or package uses them then \emph{please} +replace them with new font commands described in \emph{\fntguide}. + +For example, the command |\twlsf| should be replaced by: +\begin{verbatim} + \fontsize{12}{14}\normalfont\sffamily\selectfont +\end{verbatim} + +Another possibility is to use the |rawfonts| package, described in +\emph{\usrguide}. + +Also, remember that many of the fonts preloaded by \LaTeX~2.09 +are no longer preloaded. + +\begin{decl} + |\vpt| |\vipt| |\viipt| \dots +\end{decl} +These were the internal size-selecting commands in \LaTeX~2.09. +(They can still be used in \LaTeX~2.09 compatibility mode.) +Please use the command |\fontsize| instead: see \emph{\fntguide} for +details. + +For example, |\vpt| should be replaced by: +\begin{verbatim} + \fontsize{5}{6}\normalfont\selectfont +\end{verbatim} + +\begin{decl} + |\prm|, |\pbf|, |\ppounds|, |\pLaTeX| \dots +\end{decl} +\LaTeX~2.09 used several commands beginning with |\p| in order to +provide `protected' commands. For example, |\LaTeX| was defined to be +|\protect\pLaTeX|, and |\pLaTeX| was defined to produce the \LaTeX{} +logo. This made |\LaTeX| robust, even though |\pLaTeX| was not. + +These commands have now been reimplemented using +|\DeclareRobustCommand| +(described in Section~\ref{Sec:commands.define}). +If your package redefined one of the |\p|-commands then you must +remove the redefinition and use |\DeclareRobustCommand| to redefine the +non-|\p| command. + +\begin{decl} +|\footheight|\\ +|\@maxsep|\\ +|\@dblmaxsep| +\end{decl} +These parameters are not used by \LaTeXe{} so they have been removed, +except in \LaTeX~2.09 compatibility mode. Classes should no longer +set them. + +\begin{thebibliography}{1} + +\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} + +\newpage +\thispagestyle{empty} + +\section*{\LaTeXe{} Summary sheet: updating old styles} + +Section references below are to \emph{\clsguide}. + +\begin{enumerate} + +\item Should it become a class or a package? + See Section~\ref{Sec:classorpkg} for how to answer this question. + +\item If it uses another style file, then you will need to obtain an + updated version of this other file. Look at Section~\ref{Sec:loading} + for information on how to load other class and package files. + +\item Try it: see Section~\ref{Sec:try-it}. + +\item It worked? Excellent, but there are probably still some things + you should change in order to make your file into a well-structured + \LaTeXe{} file that is both robust and portable. So you should now + read Section~\ref{Sec:writing}, especially~\ref{Sec:general}. You + will also find some useful examples in Section~\ref{Sec:structure}. + + If your file sets up new fonts, font-changing commands or symbols, + you should also read \emph{\fntguide}. + +\item It did not work? There are three possibilities here: + \begin{itemize} + \item error messages are produced whilst reading your file; + \item error messages are produced whilst processing test documents; + \item there are no errors but the output is not as it should be. + \end{itemize} + Don't forget to check carefully for this last possibility. + + If you have got to this stage then you will need to read + Section~\ref{Sec:upgrade} to find the solutions that will make your + file work. +\end{enumerate} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/base/clsguide.pdf b/Master/texmf-dist/doc/latex/base/clsguide.pdf Binary files differindex 14152ab987f..aa9fe4f90ab 100644 --- a/Master/texmf-dist/doc/latex/base/clsguide.pdf +++ b/Master/texmf-dist/doc/latex/base/clsguide.pdf diff --git a/Master/texmf-dist/doc/latex/base/clsguide.tex b/Master/texmf-dist/doc/latex/base/clsguide.tex index 0ed5e60817e..7225425ec8a 100644 --- a/Master/texmf-dist/doc/latex/base/clsguide.tex +++ b/Master/texmf-dist/doc/latex/base/clsguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -28,13 +28,13 @@ % \fi % Filename: clsguide.tex -\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\documentclass{ltxguide} -\documentclass{ltxguide}[1995/11/28] +\usepackage[T1]{fontenc} % needed for \textbackslash in tt +\usepackage{csquotes} -\title{\LaTeXe~for class and package writers} - -\author{Copyright \copyright~1995--2006 The \LaTeX\ Project\\ +\title{\LaTeX\ for package and class authors --- current version} +\author{\copyright~Copyright 2023, \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,18 @@ \texttt{clsguide.tex} for full details.}% } -\date{15 February 2006} +\date{2023-01-12} + +\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 +\providecommand\url[1]{\texttt{#1}} \begin{document} @@ -52,105 +63,74 @@ \section{Introduction} -This document is an introduction to writing classes and packages for -\LaTeX{}, with special attention given to upgrading existing -\LaTeX~2.09 packages to \LaTeXe{}. The latter subject is also -covered in an article by Johannes Braams published in TUGboat~15.3. - -\subsection{Writing classes and packages for \LaTeXe} - -\LaTeX{} is a document preparation system that enables the document -writer to concentrate on the contents of their text, without bothering -too much about the formatting of it. For example, chapters are -indicated by |\chapter{<title>}| rather than by selecting 18pt bold. - -The file that contains the information about how to turn logical -structure (like `|\chapter|') into formatting (like `18pt bold ragged -right') is a \emph{document class}. In addition, some features (such -as colour or included graphics) are independent of the document class -and these are contained in \emph{packages}. +\LaTeXe{} was released in 1994 and added a number of then-new concepts to +\LaTeX{}. For package and class authors, these are described in +\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 +authors which build on that language. Here, we describe the current, stable set +of tools provided by the \LaTeX{} kernel for package and class developers. We +assume familiarity with general \LaTeX{} usage as a document author, and that +the material here is read in conjunction with \texttt{usrguide}, which provides +information for general \LaTeX{} users on up-to-date approaches to creating +commands, etc. -One of the largest differences between \LaTeX~2.09 and \LaTeXe{} is in -the commands used to write packages and classes. In \LaTeX~2.09, -there was very little support for writing |.sty| files, and so writers -had to resort to using low-level commands. +\section{Writing classes and packages} +\label{Sec:writing} -\LaTeXe{} provides high-level commands for structuring packages. -It is also much easier to build classes and packages on top of each -other, for example writing a local technical report class |cetechr| -(for the Chemical Engineering department) based on |article|. +This section covers some general points concerned with writing +\LaTeX{} classes and packages. -\subsection{Overview} +\subsection{Is it a class or a package?} +\label{Sec:classorpkg} -This document contains an overview of how to write classes and -packages for \LaTeX{}. It does \emph{not} introduce all of the -commands necessary to write packages: these can be found in either -\emph{\LaTeXbook} or \emph{\LaTeXcomp}. But it does describe the new -commands for structuring classes and packages. +The first thing to do when you want to put some new \LaTeX{} commands +in a file is to decide whether it should be a \emph{document class} or a +\emph{package}. The rule of thumb is: +\begin{quote} + If the commands could be used with any document class, then make + them a package; and if not, then make them a class. +\end{quote} -\begin{description} +There are two major types of class: those like |article|, |report| or +|letter|, which are free-standing; and those which are extensions or +variations of other classes---for example, the |proc| document class, +which is built on the |article| document class. -\item[Section~\ref{Sec:general}] contains some general advice about - writing classes and packages. It describes the difference between - classes and packages, the command naming conventions, the use of - |doc| and |docstrip|, how \TeX's primitive file and box commands - interact with \LaTeX{}. It also contains some hints about general - \LaTeX{} style. +Thus, a company might have a local |ownlet| class for printing letters +with their own headed note-paper. Such a class would build on top of +the existing |letter| class but it cannot be used with any other +document class, so we have |ownlet.cls| rather than |ownlet.sty|. -\item[Section~\ref{Sec:structure}] describes the structure of classes - and packages. This includes building classes and packages on top of - other classes and packages, declaring options and declaring - commands. It also contains example classes. +The |graphics| package, in contrast, provides commands for including +images into a \LaTeX{} document. Since these commands can be used +with any document class, we have |graphics.sty| rather than +|graphics.cls|. -\item[Section~\ref{Sec:commands}] lists the new class and package - commands. +\subsection{Using `docstrip' and `doc'} - \item[Section~\ref{Sec:upgrade}] gives detailed advice on how to - upgrade existing \LaTeX~2.09 classes and packages to \LaTeXe{}. +If you are going to write a large class or package for \LaTeX{} then +you should consider using the |doc| software which comes with +\LaTeX{}. +\LaTeX{} classes and packages written using this can be +processed in two ways: they can be run through \LaTeX{}, to produce +documentation; and they can be processed with |docstrip|, to produce +the |.cls| or |.sty| file. -\end{description} +The |doc| software can automatically generate indexes of definitions, +indexes of command use, and change-log lists. It is very useful for +maintaining and documenting large \TeX{} sources. -\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}. - -The \LaTeX{} system is based on \TeX{}, which is -described in \emph{The \TeX book} by Donald E.~Knuth~\cite{A-W:DEK91}. - -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{}, and is found in the files -|ltnews*.tex|. The author's guide \emph{\usrguide} describes the new -\LaTeX{} document features; it is in |usrguide.tex|. The guide -\emph{\fntguide} describes the \LaTeX{} font selection scheme for -class- and package-writers; it is in |fntguide.tex|. Configuring -\LaTeX{} is covered by the guide \emph{\cfgguide} in -\texttt{cfgguide.tex} whilst the philosophy behind our policy on -modifying \LaTeX{} is described in \emph{\modguide} in -\texttt{modguide.tex}. - -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. -Addresses and other details can be found at: -\begin{quote}\small\label{addrs} - \texttt{http://www.tug.org/lugs.html} -\end{quote} +The documented sources of the \LaTeX{} kernel itself, and of the +standard classes, etc., are |doc| documents; they are in the |.dtx| +files in the distribution. You can, in fact, typeset the source code +of the kernel as one long document, complete with index, by running +\LaTeX{} on |source2e.tex|. Typesetting these documents uses the +class file |ltxdoc.cls|. +For more information on |doc| and |docstrip|, consult the files +|docstrip.dtx|, |doc.dtx|, and \emph{\LaTeXcomp}. For examples of its +use, look at the |.dtx| files. \subsection{Policy on standard classes} @@ -182,89 +162,10 @@ packages that can be used to enhance these classes. So your first thought when you consider such a deficiency will, we hope, be ``what can I do to improve this?'' -Similar considerations apply to those parts of the kernel that are -implementing design decisions, many of which should be left to the -class file but are not in the current system. We realise that in such -cases it is much more difficult for you to rectify the problem -yourself but it is also the case that making such changes in the -kernel would probably be a major project for us; therefore such -enhancements will have to wait for \LaTeX3. - -\section{Writing classes and packages} -\label{Sec:writing} - -This section covers some general points concerned with writing -\LaTeX{} classes and packages. - - -\subsection{Old versions} - -If you are upgrading an existing \LaTeX~2.09 style file then we -recommend freezing the 2.09 version and no longer maintaining it. -Experience with the various dialects of \LaTeX{} which existed in the -early 1990's suggests that maintaining packages for different versions -of \LaTeX{} is almost impossible. It will, of course, be necessary -for some organisations to maintain both versions in parallel for some -time but this is not essential for those packages and classes -supported by individuals: they should support only the new standard -\LaTeXe{}, not obsolete versions of \LaTeX{}. - - -\subsection{Using `docstrip' and `doc'} - -If you are going to write a large class or package for \LaTeX{} then -you should consider using the |doc| software which comes with -\LaTeX{}. -\LaTeX{} classes and packages written using this can be -processed in two ways: they can be run through \LaTeX{}, to produce -documentation; and they can be processed with |docstrip|, to produce -the |.cls| or |.sty| file. - -The |doc| software can automatically generate indexes of definitions, -indexes of command use, and change-log lists. It is very useful for -maintaining and documenting large \TeX{} sources. - -The documented sources of the \LaTeX{} kernel itself, and of the -standard classes, etc, are |doc| documents; they are in the |.dtx| -files in the distribution. You can, in fact, typeset the source code -of the kernel as one long document, complete with index, by running -\LaTeX{} on |source2e.tex|. Typesetting these documents uses the -class file |ltxdoc.cls|. - -For more information on |doc| and |docstrip|, consult the files -|docstrip.dtx|, |doc.dtx|, and \emph{\LaTeXcomp}. For examples of its -use, look at the |.dtx| files. - -\subsection{Is it a class or a package?} -\label{Sec:classorpkg} - -The first thing to do when you want to put some new \LaTeX{} commands -in a file is to decide whether it should be a \emph{document class} or a -\emph{package}. The rule of thumb is: -\begin{quote} - If the commands could be used with any document class, then make - them a package; and if not, then make them a class. -\end{quote} - -There are two major types of class: those like |article|, |report| or -|letter|, which are free-standing; and those which are extensions or -variations of other classes---for example, the |proc| document class, -which is built on the |article| document class. - -Thus, a company might have a local |ownlet| class for printing letters -with their own headed note-paper. Such a class would build on top of -the existing |letter| class but it cannot be used with any other -document class, so we have |ownlet.cls| rather than |ownlet.sty|. - -The |graphics| package, in contrast, provides commands for including -images into a \LaTeX{} document. Since these commands can be used -with any document class, we have |graphics.sty| rather than -|graphics.cls|. - - \subsection{Command names} -\LaTeX{} has three types of command. +Prior to the introduction of the L3~programming layer described in the next +section, \LaTeX{} had three types of command. There are the author commands, such as |\section|, |\emph| and |\times|: most of these have short names, all in lower case. @@ -289,117 +190,97 @@ However, this rule of thumb is still useful: if a command has |@| in its name then it is not part of the supported \LaTeX{} language---and its behaviour may change in future releases! If a command is mixed-case, or is described in \emph{\LaTeXbook}, then you can rely on -future releases of \LaTeXe{} supporting the command. - -\subsection{Box commands and colour} -\label{Sec:colour} - -Even if you do not intend to use colour in your own documents, by -taking note of the points in this section you can ensure that your -class or package is compatible with the |color| package. This may -benefit people using your class or package who have access to colour -printers. - -The simplest way to ensure `colour safety' is to always use \LaTeX{} -box commands rather than \TeX{} primitives, that is use |\sbox| rather -than |\setbox|, |\mbox| rather than |\hbox| and |\parbox| or -the |minipage| environment rather than |\vbox|. -The \LaTeX{} box commands have new options which mean that they are now -as powerful as the \TeX{} primitives. - -As an example of what can go wrong, consider that in -|{\ttfamily <text>}| -the font is restored just \emph{before} the |}|, whereas in the -similar looking construction -|{\color{green} <text>}| -the colour is restored just \emph{after} the final |}|. Normally this -distinction does not matter at all; but consider a primitive \TeX{} -box assignment such as: +future releases of \LaTeX{} supporting the command. + +\subsection{Programming support} + +As noted in the introduction, the \LaTeX{} kernel today loads dedicated support +from programming, here referred to as the L3 programming layer but also often +called \pkg{expl3}. Details of the general approach taken by the L3 +programming layer are given in the document \texttt{expl3}, while a reference +for all current code interfaces is available as \texttt{interface3}. This layer +contains two types of command: a documented set of commands making up the API +and a large number of private internal commands. The latter all start with two +underscores and should not be used outside of the code module which defines +them. This more structured approach means that using the L3 programming layer +does not suffer from the somewhat fluid situation mentioned above with +`\texttt{@} commands'. + +We do not cover the detail of using the L3 programming layer here. A good +introduction to the approach is provided at +\url{https://www.alanshawn.com/latex3-tutorial/}. + +\subsection{Box commands and color} +\label{Sec:color} + +Even if you do not intend to use color in your own documents, by taking note of +the points in this section you can ensure that your class or package is +compatible with the |color| package. This may benefit people using your class +or package and wish to use color. + +The simplest way to ensure `color safety' is to always use \LaTeX{} box +commands rather than \TeX{} primitives, that is use |\sbox| rather than +|\setbox|, |\mbox| rather than |\hbox| and |\parbox| or the |minipage| +environment rather than |\vbox|. The \LaTeX{} box commands have new options +which mean that they are now as powerful as the \TeX{} primitives. + +As an example of what can go wrong, consider that in |{\ttfamily <text>}| the +font is restored just \emph{before} the |}|, whereas in the similar looking +construction |{\color{green} <text>}| the color is restored just \emph{after} +the final |}|. Normally this distinction does not matter at all; but consider a +primitive \TeX{} box assignment such as: \begin{verbatim} \setbox0=\hbox{\color{green} <text>} \end{verbatim} -Now the colour-restore occurs after the |}| and so is \emph{not} -stored in the box. Exactly what bad effects this can have depends on -how colour is implemented: it can range from getting the wrong -colours in the rest of the document, to causing errors in the -dvi-driver used to print the document. - -Also of interest is the command |\normalcolor|. This is -normally just |\relax| (i.e., does nothing) -but you can use it rather like |\normalfont| to -set regions of the page such as captions or section headings to the -`main document colour'. - - -\subsection{Defining text and math characters} -\label{Sec:chars} - -Because \LaTeXe{} supports different encodings, definitions of commands -for producing symbols, accents, composite glyphs, etc.\ must be -defined using the commands provided for this purpose and described in -\emph{\fntguide}. This part of the system is still under development -so such tasks should be undertaken with great caution. - -Also, |\DeclareRobustCommand| should be used for encoding-independent -commands of this type. - -Note that it is no longer possible to refer to the math font set-up -outside math mode: for example, neither |\textfont 1| nor -|\scriptfont 2| are guaranteed to be defined in other modes. +Now the color-restore occurs after the |}| and so is \emph{not} stored in the +box. Exactly what bad effects this can have depends on how color is +implemented: it can range from getting the wrong colors in the rest of the +document, to causing errors in the dvi-driver used to print the document. +Also of interest is the command |\normalcolor|. This is normally just |\relax| +(i.e., does nothing) but you can use it rather like |\normalfont| to set +regions of the page such as captions or section headings to the `main document +color'. \subsection{General style} \label{Sec:general} -The new system provides many commands designed to help you produce -well-structured class and package files that are both robust and -portable. This section outlines some ways to make intelligent use of -these. +\LaTeX{} provides many commands designed to help you produce well-structured +class and package files that are both robust and portable. This section +outlines some ways to make intelligent use of these. \subsubsection{Loading other files} \label{Sec:loading} -\NEWdescription{1995/12/01} \LaTeX{} provides these commands: \begin{verbatim} \LoadClass \LoadClassWithOptions \RequirePackage \RequirePackageWithOptions \end{verbatim} -for using classes or packages inside other classes or packages. We -recommend strongly that you use them, rather than the primitive -|\input| command, for a number of reasons. +for using classes or packages inside other classes or packages. We recommend +strongly that you use them, rather than the primitive |\input| command, for a +number of reasons. -Files loaded with |\input <filename>| will not be listed in the -|\listfiles| list. +Files loaded with |\input <filename>| will not be listed in the |\listfiles| +list. -If a package is always loaded with |\RequirePackage...| or |\usepackage| -then, even if its loading is requested several times, it will be -loaded only once. By contrast, if it is loaded with |\input| then it -can be loaded more than once; such an extra loading may waste time and -memory and it may produce strange results. +If a package is always loaded with |\RequirePackage...| or |\usepackage| then, +even if its loading is requested several times, it will be loaded only once. By +contrast, if it is loaded with |\input| then it can be loaded more than once; +such an extra loading may waste time and memory and it may produce strange +results. -If a package provides option-processing then, again, strange results -are possible if the package is |\input| rather than loaded by means of +If a package provides option-processing then, again, strange results are +possible if the package is |\input| rather than loaded by means of |\usepackage| or |\RequirePackage...|. -If the package |foo.sty| loads the package |baz.sty| by use of -|\input baz.sty| then the user will get a warning: +If the package |foo.sty| loads the package |baz.sty| by use of |\input baz.sty| +then the user will get a warning: \begin{verbatim} LaTeX Warning: You have requested package `foo', but the package provides `baz'. \end{verbatim} -Thus, for several reasons, using |\input| to load packages is not a -good idea. - -Unfortunately, if you are upgrading the file |myclass.sty| to a class -file then you have to make sure that any old files which contain -|\input myclass.sty| still work. - -This was also true for the standard classes (|article|, |book| and -|report|), since a lot of existing \LaTeX~2.09 document styles contain -|\input article.sty|. The approach which we use to solve this is -to provide minimal files |article.sty|, |book.sty| and |report.sty|, -which simply load the appropriate class files. +Thus, for several reasons, using |\input| to load packages is not a good idea. For example, |article.sty| contains just the following lines: \begin{verbatim} @@ -407,93 +288,72 @@ For example, |article.sty| contains just the following lines: \@obsoletefile{article.cls}{article.sty} \LoadClass{article} \end{verbatim} -You may wish to do the same or, if you think that it is safe to do so, -you may decide to just remove |myclass.sty|. +You may wish to do the same or, if you think that it is safe to do so, you may +decide to just remove |myclass.sty|. \subsubsection{Make it robust} We consider it good practice, when writing packages and classes, to use \LaTeX{} commands as much as possible. -Thus, instead of using |\def...| we recommend using one of -|\newcommand|, |\renewcommand| or |\providecommand|; |\CheckCommand| is -also useful. Doing this makes -it less likely that you will inadvertently redefine a command, giving -unexpected results. +Thus, instead of using |\def...| we recommend using one of |\newcommand|, +|\renewcommand| or |\providecommand| for programming and for defining document +interfaces |\NewDocumentCommand|, etc. (see \texttt{usrguide} for details of +these commands). -When you define an environment, use |\newenvironment| or -|\renewenvironment| instead |\def\foo{...}| and |\def\endfoo{...}|. +When you define an environment, use |\NewDocumentEnvironment|, etc., (or +|\newenvironment|, etc., for simple cases) instead of using |\def\foo{...}| and +|\def\endfoo{...}|. -If you need to set or change the value of a \m{dimen} or \m{skip} -register, use |\setlength|. +If you need to set or change the value of a \m{dimen} or \m{skip} register, use +|\setlength|. -To manipulate boxes, use \LaTeX{} commands such as |\sbox|, -|\mbox| and |\parbox| rather than |\setbox|, |\hbox| and |\vbox|. +To manipulate boxes, use \LaTeX{} commands such as |\sbox|, |\mbox| and +|\parbox| rather than |\setbox|, |\hbox| and |\vbox|. -Use |\PackageError|, |\PackageWarning| or |\PackageInfo| (or the -equivalent class commands) rather than |\@latexerr|, |\@warning| or -|\wlog|. - -It is still possible to declare options by defining |\ds@<option>| and -calling |\@options|; but we recommend the |\DeclareOption| and -|\ProcessOptions| commands instead. These are more powerful and use -less memory. So rather than using: -\begin{verbatim} - \def\ds@draft{\overfullrule 5pt} - \@options -\end{verbatim} -you should use: -\begin{verbatim} - \DeclareOption{draft}{\setlength{\overfullrule}{5pt}} - \ProcessOptions\relax -\end{verbatim} +Use |\PackageError|, |\PackageWarning| or |\PackageInfo| (or the equivalent +class commands) rather than |\@latexerr|, |\@warning| or |\wlog|. -The advantage of this kind of practice is that your code is more -readable and, more important, that it is less likely to break when -used with future versions of \LaTeX{}. +The advantage of this kind of practice is that your code is more readable and +accessible to other experienced \LaTeX{} programmers. \subsubsection{Make it portable} -It is also sensible to make your files are as portable as possible. To -ensure this; they should contain only visible 7-bit text; and the -filenames should contain at most eight characters (plus the three -letter extension). Also, of course, it \textbf{must not} have the -same name as a file in the standard \LaTeX{} distribution, however -similar its contents may be to one of these files. +It is also sensible to make your files are as portable as possible. To ensure +this, files must not have the same name as a file in the standard \LaTeX{} +distribution, however similar its contents may be to one of these files. It is +also still lower risk to stick to file names which use only the ASCII range: +whilst \LaTeX{} works natively with UTF-8, the same cannot be said with +certainty for all tools. For the same reason, avoid spaces in file names. -It is also useful if local classes or packages have a common prefix, -for example the University of Nowhere classes might begin with |unw|. -This helps to avoid every University having its own thesis class, all -called |thesis.cls|. +It is also useful if local classes or packages have a common prefix, for +example the University of Nowhere classes might begin with |unw|. This helps to +avoid every University having its own thesis class, all called |thesis.cls|. If you rely on some features of the \LaTeX{} kernel, or on a package, please specify the release-date you need. For example, the package -error commands were introduced in the June 1994 release so, if you use +error commands were introduced in the June 2022 release so, if you use them then you should put: \begin{verbatim} - \NeedsTeXFormat{LaTeX2e}[1994/06/01] + \NeedsTeXFormat{LaTeX2e}[2022-06-01] \end{verbatim} \subsubsection{Useful hooks} -Some packages and document styles had to redefine the command -|\document| or |\enddocument| to achieve their goal. This is no -longer necessary. You can now use the `hooks' |\AtBeginDocument| and -|\AtEndDocument| (see Section~\ref{Sec:delays}). Again, using these -hooks makes it less likely that your code breaks with future versions -of \LaTeX{}. It also makes it more likely that your package can work -together with someone else's. - -\NEWdescription{1996/12/01} -However, note that code in the |\AtBeginDocument| hook is part of the -preamble. Thus there are restrictions on what can be put there; in -particular, no typesetting can be done. +It is sometimes necessary for a package to arrange for code to be +executed at the start or end of the preamble, at the end of the document +or at the start of every use of an environment. This can be carried +out by using hooks. As a document author, you will likely be familiar with +|\AtBeginDocument|, a wrapper around the more powerful command |\AddToHook|. +The \LaTeX{} kernel provides a large number of dedicated hooks (applying in +a pre-defined location) and generic hooks (applying to arbitrary commands): +the interface for using these is described in \texttt{lthooks} . There are +also hooks to apply to files, described in \texttt{ltfilehooks}. \section{The structure of a class or package} \label{Sec:structure} -\LaTeXe{} classes and packages have more structure than \LaTeX~2.09 -style files did. The outline of a class or package file is: +The outline of a class or package file is: \begin{description} \item[Identification] The file says that it is a \LaTeXe{} package or class, and gives a short description of itself. @@ -517,7 +377,7 @@ Package files do this as follows: For example: \begin{verbatim} \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{latexsym}[1994/06/01 Standard LaTeX package] + \ProvidesPackage{latexsym}[1998-08-17 Standard LaTeX package] \end{verbatim} Class files do this as follows: \begin{verbatim} @@ -527,40 +387,30 @@ Class files do this as follows: For example: \begin{verbatim} \NeedsTeXFormat{LaTeX2e} - \ProvidesClass{article}[1994/06/01 Standard LaTeX class] -\end{verbatim} -\NEWdescription{1998/06/19} -The \m{date} should be given in the form `\textsc{yyyy/mm/dd}' and -must be present if the optional argument is used (this is also true -for the |\NeedsTeXFormat| command). -Any derivation from this syntax will result in low-level \TeX{} -errors---the commands expect a valid syntax to speed up the daily -usage of the package or class and make no provision for the case that -the developer made a mistake! - -This date is checked whenever a user specifies a date in their -|\documentclass| or |\usepackage| command. For example, if you wrote: -\begin{verbatim} - \documentclass{article}[1995/12/23] -\end{verbatim} -then users at a different location -would get a warning that their copy of |article| was out of -date. - -The description of a class is displayed when the class is used. The -description of a package is put into the log file. These descriptions -are also displayed by the |\listfiles| command. The phrase -\texttt{Standard LaTeX} \textbf{must not} be used in the identification -banner of any file other than those in the standard \LaTeX{} -distribution. + \ProvidesClass{article}[2022-06-01 Standard LaTeX class] +\end{verbatim} +The \m{date} should be given in the form `\textsc{yyyy-mm-dd}' and must be +present if the optional argument is used (this is also true for the +|\NeedsTeXFormat| command). Any derivation from this syntax will result in +low-level \TeX{} errors---the commands expect a valid syntax to speed up the +daily usage of the package or class and make no provision for the case that the +developer made a mistake! +This date is checked whenever a user specifies a date in their |\documentclass| +or |\usepackage| command. For example, if you wrote: +\begin{verbatim} + \documentclass{article}[2022-06-01] +\end{verbatim} +then users at a different location would get a warning that their copy of +|article| was out of date. -\subsection{Using classes and packages} +The description of a class is displayed when the class is used. The description +of a package is put into the log file. These descriptions are also displayed by +the |\listfiles| command. The phrase \texttt{Standard LaTeX} \textbf{must not} +be used in the identification banner of any file other than those in the +standard \LaTeX{} distribution. -The first major difference between \LaTeX~2.09 style files and -\LaTeXe{} packages and classes is that \LaTeXe{} supports -\emph{modularity}, in the sense of building files from small -building-blocks rather than using large single files. +\subsection{Using classes and packages} A \LaTeX{} package or class can load a package as follows: \begin{verbatim} @@ -568,13 +418,12 @@ A \LaTeX{} package or class can load a package as follows: \end{verbatim} For example: \begin{verbatim} - \RequirePackage{ifthen}[1994/06/01] + \RequirePackage{ifthen}[2022-06-01] \end{verbatim} -This command has the same syntax as the author command |\usepackage|. -It allows packages or classes to use features provided by other -packages. For example, by loading the |ifthen| package, a package -writer can use the `if\dots then\dots else\dots' commands provided -by that package. +This command has the same syntax as the author command |\usepackage|. It allows +packages or classes to use features provided by other packages. For example, by +loading the |ifthen| package, a package writer can use the `if\dots then\dots +else\dots' commands provided by that package. A \LaTeX{} class can load one other class as follows: \begin{verbatim} @@ -584,13 +433,12 @@ For example: \begin{verbatim} \LoadClass[twocolumn]{article} \end{verbatim} -This command has the same syntax as the author command |\documentclass|. -It allows classes to be based on the syntax and appearance of another -class. For example, by loading the |article| class, a class writer -only has to change the bits of |article| they don't like, rather than -writing a new class from scratch. +This command has the same syntax as the author command |\documentclass|. It +allows classes to be based on the syntax and appearance of another class. For +example, by loading the |article| class, a class writer only has to change the +bits of |article| they don't like, rather than writing a new class from +scratch. -\NEWfeature{1995/12/01} The following commands can be used in the common case that you want to simply load a class or package file with exactly those options that are being used by the current class. @@ -606,14 +454,20 @@ For example: \subsection{Declaring options} -\NEWdescription{1998/12/01} -The other major difference between \LaTeX~2.09 styles and \LaTeXe{} -packages and classes is in option handling. Packages and classes can -now declare options and these can be specified by authors; for -example, the |twocolumn| option is declared by the |article| class. -Note that the name of an option should contain only those characters -allowed in a `\LaTeX{} name'; in particular it must not contain any -control sequences. +Packages and classes can declare options and these can be specified by authors; +for example, the |twocolumn| option is declared by the |article| class. Note +that the name of an option should contain only those characters allowed in a +`\LaTeX{} name'; in particular it must not contain any control sequences. + +\LaTeX{} supports two methods for creating options: a key--value system and a +`simple text' approach. The key--value system is recommended for new classes +and packages, and is more flexible in handling of option classes than the +simple text approach. Both option methods use the same basic structure within +the \LaTeX{} source: declaration of options first then processing options in a +second step. Both also allow options to be passed on to other packages or an +underlying class. As the `classical' simple text approach is conceptually more +straight-forward to illustrate, it is used here to show the general structure: +see Section~\ref{Sec:opt:keyval} for full details of the key--value approach. An option is declared as follows: \begin{verbatim} @@ -624,63 +478,58 @@ to the |graphics| package is implemented as: \begin{verbatim} \DeclareOption{dvips}{\input{dvips.def}} \end{verbatim} -This means that when an author writes |\usepackage[dvips]{graphics}|, -the file |dvips.def| is loaded. As another example, the |a4paper| -option is declared in the |article| class to set the |\paperheight| -and |\paperwidth| lengths: +This means that when an author writes |\usepackage[dvips]{graphics}|, the file +|dvips.def| is loaded. As another example, the |a4paper| option is declared in +the |article| class to set the |\paperheight| and |\paperwidth| lengths: \begin{verbatim} \DeclareOption{a4paper}{% \setlength{\paperheight}{297mm}% \setlength{\paperwidth}{210mm}% } \end{verbatim} -Sometimes a user will request an option which the class -or package has not explicitly declared. By default this will produce -a warning (for classes) or error (for packages); this behaviour -can be altered as follows: +Sometimes a user will request an option which the class or package has not +explicitly declared. By default this will produce a warning (for classes) or +error (for packages); this behaviour can be altered as follows: \begin{verbatim} \DeclareOption*{<code>} \end{verbatim} -For example, to make the package |fred| produce a warning rather than -an error for unknown options, you could specify: +For example, to make the package |fred| produce a warning rather than an error +for unknown options, you could specify: \begin{verbatim} \DeclareOption*{% \PackageWarning{fred}{Unknown option `\CurrentOption'}% } \end{verbatim} -Then, if an author writes |\usepackage[foo]{fred}|, they will get a -warning \texttt{Package fred Warning: Unknown option `foo'.} As -another example, the |fontenc| package tries to load a file -|<ENC>enc.def| whenever the \m{ENC} option is used. This -can be done by writing: +Then, if an author writes |\usepackage[foo]{fred}|, they will get a warning +\texttt{Package fred Warning: Unknown option `foo'.} As another example, the +|fontenc| package tries to load a file |<ENC>enc.def| whenever the \m{ENC} +option is used. This can be done by writing: \begin{verbatim} \DeclareOption*{% \input{\CurrentOption enc.def}% } \end{verbatim} -\NEWdescription{1998/12/01} -It is possible to pass options on to another package or class, using -the command |\PassOptionsToPackage| or |\PassOptionsToClass| (note -that this is a specialised operation that works only for option -names). For example, to pass every unknown option on to the |article| -class, you can use: + +It is possible to pass options on to another package or class, using the +command |\PassOptionsToPackage| or |\PassOptionsToClass| (note that this is a +specialised operation that works only for option names): see +Section~\ref{Sec:opmove}. For example, to pass every unknown option on to the +|article| class, you can use: \begin{verbatim} \DeclareOption*{% \PassOptionsToClass{\CurrentOption}{article}% } \end{verbatim} -If you do this then you should make sure you load the class at some -later point, otherwise the options will never be processed! +If you do this then you should make sure you load the class at some later +point, otherwise the options will never be processed! -So far, we have explained only how to declare options, not how to -execute them. To process the options with which the file was called, -you should use: +So far, we have explained only how to declare options, not how to execute them. +To process the options with which the file was called, you should use: \begin{verbatim} \ProcessOptions\relax \end{verbatim} -This executes the \m{code} for each option that was both specified and -declared (see Section~\ref{Sec:commands.options} for details of how -this is done). +This executes the \m{code} for each option that was both specified and declared +(see Section~\ref{Sec:commands.options} for details of how this is done). For example, if the |jane| package file contains: \begin{verbatim} @@ -689,8 +538,8 @@ For example, if the |jane| package file contains: \DeclareOption*{\typeout{What's \CurrentOption?}} \ProcessOptions\relax \end{verbatim} -and an author writes |\usepackage[foo,bar]{jane}|, then they will see -the messages \texttt{Saw foo.} and \texttt{What's bar?} +and an author writes |\usepackage[foo,bar]{jane}|, then they will see the +messages \texttt{Saw foo.} and \texttt{What's bar?} \subsection{A minimal class file} @@ -698,9 +547,6 @@ Most of the work of a class or package is in defining new commands, or changing the appearance of documents. This is done in the body of the package, using commands such as |\newcommand| or |\setlength|. -\LaTeXe{} provides several new commands to help class and package -writers; these are described in detail in Section~\ref{Sec:commands}. - There are four things that every class file \emph{must} contain: these are a definition of |\normalsize|, values for |\textwidth| and |\textheight| and a specification for page-numbering. So a minimal @@ -708,7 +554,7 @@ document class file\footnote {This class is now in the standard distribution, as \texttt{minimal.cls}.} looks like this: \begin{verbatim} \NeedsTeXFormat{LaTeX2e} - \ProvidesClass{minimal}[1995/10/30 Standard LaTeX minimal class] + \ProvidesClass{minimal}[2022-06-01 Standard LaTeX minimal class] \renewcommand{\normalsize}{\fontsize{10pt}{12pt}\selectfont} \setlength{\textwidth}{6.5in} \setlength{\textheight}{8in} @@ -728,18 +574,17 @@ class, although a real class would need more structure. The class begins by announcing itself as |neplet.cls|. \begin{verbatim} \NeedsTeXFormat{LaTeX2e} - \ProvidesClass{neplet}[1995/04/01 NonExistent Press letter class] + \ProvidesClass{neplet}[2022-06-01 NonExistent Press letter class] \end{verbatim} -Then this next bit passes any options on to the |letter| class, which -is loaded with the |a4paper| option. +Then this next bit passes any options on to the |letter| class, which is loaded +with the |a4paper| option. \begin{verbatim} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{letter}} \ProcessOptions\relax \LoadClass[a4paper]{letter} \end{verbatim} -In order to use the company letter head, it redefines the -|firstpage| page style: this is the page style that is used on -the first page of letters. +In order to use the company letter head, it redefines the |firstpage| page +style: this is the page style that is used on the first page of letters. \begin{verbatim} \renewcommand{\ps@firstpage}{% \renewcommand{\@oddhead}{<letterhead goes here>}% @@ -751,17 +596,16 @@ And that's it! \subsection{Example: a newsletter class} A simple newsletter can be typeset with \LaTeX{}, using a variant of the -|article| class. -The class begins by announcing itself as |smplnews.cls|. +|article| class. The class begins by announcing itself as |smplnews.cls|. \begin{verbatim} \NeedsTeXFormat{LaTeX2e} - \ProvidesClass{smplnews}[1995/04/01 The Simple News newsletter class] + \ProvidesClass{smplnews}[2022-06-01 The Simple News newsletter class] \newcommand{\headlinecolor}{\normalcolor} \end{verbatim} -It passes most specified options on to the |article| class: apart from -the |onecolumn| option, which is switched off, and the |green| option, -which sets the headline in green. +It passes most specified options on to the |article| class: apart from the +|onecolumn| option, which is switched off, and the |green| option, which sets +the headline in green. \begin{verbatim} \DeclareOption{onecolumn}{\OptionNotUsed} \DeclareOption{green}{\renewcommand{\headlinecolor}{\color{green}}} @@ -774,14 +618,14 @@ It then loads the class |article| with the option |twocolumn|. \begin{verbatim} \LoadClass[twocolumn]{article} \end{verbatim} -Since the newsletter is to be printed in colour, it now loads the -|color| package. The class does not specify a device driver option -since this should be specified by the user of the |smplnews| class. +Since the newsletter is to be printed in colour, it now loads the |color| +package. The class does not specify a device driver option since this should be +specified by the user of the |smplnews| class. \begin{verbatim} \RequirePackage{color} \end{verbatim} -The class then redefines |\maketitle| to produce the title in 72pt -Helvetica bold oblique, in the appropriate colour. +The class then redefines |\maketitle| to produce the title in 72\,pt Helvetica +bold oblique, in the appropriate colour. \begin{verbatim} \renewcommand{\maketitle}{% \twocolumn[% @@ -807,90 +651,91 @@ It also sets the three essential things. \setlength{\textwidth}{17.5cm} \setlength{\textheight}{25cm} \end{verbatim} -In practice, a class would need more than this: it would provide -commands for issue numbers, authors of articles, page styles and so -on; but this skeleton gives a start. The |ltnews| class file is not -much more complex than this one. +In practice, a class would need more than this: it would provide commands for +issue numbers, authors of articles, page styles and so on; but this skeleton +gives a start. The |ltnews| class file is not much more complex than this one. \section{Commands for class and package writers} \label{Sec:commands} -This section describes briefly each of the new commands for class and -package writers. To find out about other aspects of the new system, +This section describes briefly each of the commands for class and package +writers. To find out about other aspects of the system, you should also read \emph{\LaTeXbook}, \emph{\LaTeXcomp} and \emph{\usrguide}. \subsection{Identification} -The first group of commands discussed here are those used -to identify your class or package file. +The first group of commands discussed here are those used to identify your +class or package file. \begin{decl} |\NeedsTeXFormat| \arg{format-name} \oarg{release-date} \end{decl} -This command tells \TeX{} that this file should be processed using a -format with name \m{format-name}. You can use the optional argument -\m{release-date} to further specify the earliest release date of the -format that is needed. When the release date of the format is older -than the one specified a warning will be generated. The standard -\m{format-name} is \texttt{LaTeX2e}. The date, if present, must be in -the form \textsc{yyyy/mm/dd}. +This command tells \TeX{} that this file should be processed using a format +with name \m{format-name}. You can use the optional argument \m{release-date} +to further specify the earliest release date of the format that is needed. When +the release date of the format is older than the one specified a warning will +be generated. The standard \m{format-name} is \texttt{LaTeX2e}. The date, if +present, must be in the form \textsc{yyyy-mm-dd}. Example: \begin{verbatim} - \NeedsTeXFormat{LaTeX2e}[1994/06/01] + \NeedsTeXFormat{LaTeX2e}[2022-06-01] \end{verbatim} +People often don't know what date to put here. For the kernel, you can find out +the right one by consulting |changes.txt| and select the release date of a new +feature you are interested in. This is slightly different for packages as they +are released throughout the year: you will need to consult their change +history. \begin{decl} |\ProvidesClass| \arg{class-name} \oarg{release-info} \\ |\ProvidesPackage| \arg{package-name} \oarg{release-info} \end{decl} -This declares that the current file contains the definitions for the -document class \m{class-name} or package \m{package-name}. +This declares that the current file contains the definitions for the document +class \m{class-name} or package \m{package-name}. The optional \m{release-info}, if used, must contain: \begin{itemize} - \item the release date of - this version of the file, in the form \textsc{yyyy/mm/dd}; + \item the release date of this version of the file, in the form + \textsc{yyyy-mm-dd}; \item optionally followed by a space and a short description, possibly including a version number. \end{itemize} -The above syntax must be followed exactly so that this information -can be used by |\LoadClass| or |\documentclass| (for classes) or -|\RequirePackage| or |\usepackage| (for packages) to test that the -release is not too old. +The above syntax must be followed exactly so that this information can be used +by |\LoadClass| or |\documentclass| (for classes) or |\RequirePackage| or +|\usepackage| (for packages) to test that the release is not too old. -The whole of this \m{release-info} information is displayed by -|\listfiles| and should therefore not be too long. +The whole of this \m{release-info} information is displayed by |\listfiles| and +should therefore not be too long. Example: \begin{verbatim} - \ProvidesClass{article}[1994/06/01 v1.0 Standard LaTeX class] - \ProvidesPackage{ifthen}[1994/06/01 v1.0 Standard LaTeX package] + \ProvidesClass{article}[2022-06-01 v1.0 Standard LaTeX class] + \ProvidesPackage{ifthen}[2022-06-01 v1.0 Standard LaTeX package] \end{verbatim} \begin{decl} |\ProvidesFile| \arg{file-name} \oarg{release-info} \end{decl} This is similar to the two previous commands except that here the full -filename, including the extension, must be given. It is used for -declaring any files other than main class and package files. +filename, including the extension, must be given. It is used for declaring any +files other than main class and package files. Example: \begin{verbatim} - \ProvidesFile{T1enc.def}[1994/06/01 v1.0 Standard LaTeX file] + \ProvidesFile{T1enc.def}[2022-06-01 v1.0 Standard LaTeX file] \end{verbatim} -Note that the phrase \texttt{Standard LaTeX} \textbf{must not} be used -in the identification banner of any file other than those in the -standard \LaTeX{} distribution. +Note that the phrase \texttt{Standard LaTeX} \textbf{must not} be used in the +identification banner of any file other than those in the standard \LaTeX{} +distribution. \subsection{Loading files} \label{Sec:loadf} -\NEWfeature{1995/12/01} -This group of commands can be used to create your own document class or -package by building on existing classes or packages. +This group of commands can be used to create your own document class or package +by building on existing classes or packages. \begin{decl} |\RequirePackage| \oarg{options-list} \arg{package-name} \oarg{release-info}\\ @@ -899,13 +744,11 @@ package by building on existing classes or packages. \end{decl} Packages and classes should use these commands to load other packages. -The use of |\RequirePackage| is the same as the author command -|\usepackage|. - +The use of |\RequirePackage| is the same as the author command |\usepackage|. Examples: \begin{verbatim} - \RequirePackage{ifthen}[1994/06/01] - \RequirePackageWithOptions{graphics}[1995/12/01] + \RequirePackage{ifthen}[2022-06-01] + \RequirePackageWithOptions{graphics}[2022-06-01] \end{verbatim} \begin{decl} @@ -914,107 +757,153 @@ Examples: |\LoadClassWithOptions| \arg{class-name} \oarg{release-info} \end{decl} -\NEWfeature{1995/12/01} -These commands are for use \emph{only} in class files, they cannot be -used in packages files; -they can be used at most once within a class file. +These commands are for use \emph{only} in class files, they cannot be used in +packages files; they can be used at most once within a class file. -The use of |\LoadClass| is the same as -the use of |\documentclass| to load a class file. +The use of |\LoadClass| is the same as the use of |\documentclass| to load a +class file. Examples: \begin{verbatim} - \LoadClass{article}[1994/06/01] - \LoadClassWithOptions{article}[1995/12/01] + \LoadClass{article}[2022-06-01] + \LoadClassWithOptions{article}[2022-06-01] \end{verbatim} -\NEWfeature{1995/12/01} -The two |WithOptions| versions simply load the class (or package) file -with exactly those options that are being used by the current file -(class or package). See below, in \ref{Sec:opmove}, for further -discussion of their use. - +The two |WithOptions| versions simply load the class (or package) file with +exactly those options that are being used by the current file (class or +package). See below, in \ref{Sec:opmove}, for further discussion of their use. -\subsection{Option declaration} -\label{Sec:commands.options.dec} +\subsection{Delaying code} +\label{Sec:delays} -\NEWdescription{1998/12/01} -The following commands deal with the declaration and handling of -options to document classes and packages. Every option name must be a -`\LaTeX{} name'. +As noted earlier, a sophisticated hook system is available and described in +\texttt{lthooks}. Here, we document a small set of convenient short names for +common hooks. -There are some commands designed especially for use within the -\m{code} argument of these commands (see below). +These first two commands are also intended primarily for use within the +\m{code} argument of |\DeclareOption| or |\DeclareOption*|. \begin{decl} - |\DeclareOption| \arg{option-name} \arg{code} + |\AtEndOfClass| \arg{code}\\ + |\AtEndOfPackage| \arg{code} \end{decl} -This makes \m{option-name} a `declared option' of the class or package -in which it is put. - -The \m{code} argument contains the code to be executed if that option -is specified for the class or package; it can contain any valid -\LaTeXe{} construct. +These commands declare \m{code} that is saved away internally and then executed +after processing the whole of the current class or package file. -Example: -\begin{verbatim} - \DeclareOption{twoside}{\@twosidetrue} -\end{verbatim} +Repeated use of these commands is permitted: the code in the arguments is +stored (and later executed) in the order of their declarations. \begin{decl} - |\DeclareOption*| \arg{code} + |\AtBeginDocument| \arg{code}\\ + |\AtEndDocument| \arg{code} \end{decl} -This declares the \m{code} to be executed for every option which is -specified for, but otherwise not explicitly declared by, the class or -package; this code is called the `default option code' and it can -contain any valid \LaTeXe{} construct. +These commands declare \m{code} to be saved internally and executed while +\LaTeX{} is executing |\begin{document}| or |\end{document}|. -If a class file contains no |\DeclareOption*| then, by default, all -specified but undeclared options for that class will be silently -passed to all packages (as will the specified and declared options for -that class). +The \m{code} specified in the argument to |\AtBeginDocument| is executed near +the end of the |\begin{document}| code, \emph{after} the font selection tables +have been set up. It is therefore a useful place to put code which needs to be +executed after everything has been prepared for typesetting and when the normal +font for the document is the current font. -If a package file contains no |\DeclareOption*| then, by default, each -specified but undeclared option for that package will produce an error. +The |\AtBeginDocument| hook should not be used for code that does any +typesetting since the typeset result would be unpredictable. +The \m{code} specified in the argument to |\AtEndDocument| is executed at the +beginning of the |\end{document}| code, \emph{before} the final page is +finished and before any leftover floating environments are processed. If some +of the \m{code} is to be executed after these two processes, you should include +a |\clearpage| at the appropriate point in \m{code}. -\subsection{Commands within option code} -\label{Sec:within.code} +Repeated use of these commands is permitted: the code in the arguments is +stored (and later executed) in the order of their declarations. + +\subsection{Creating and using keyval options} +\label{Sec:opt:keyval} -These two commands can be used only within the \m{code} argument of -either |\DeclareOption| or |\DeclareOption*|. Other commands commonly -used within these arguments can be found in the next few subsections. +As with any key--value input, using key--value pairs as package or class +options has two parts: creating the key options and setting (using) them. +Options created in this way \emph{may} be used after package loading as general +key--value settings: this will depend on the nature of the underlying code. \begin{decl} - |\CurrentOption| + |\DeclareKeys| \oarg{family} \arg{declarations} \end{decl} -This expands to the name of the current option. +This command creates a series of options from a comma-separated +\m{declarations} list. Each entry in this list is a key--value pair, with the +\m{key} having one or more \m{properties}. A small number of `basic' +\m{properties} are described below. The full range of properties, provided by +\texttt{l3keys}, can also be used for more powerful processing. See +\texttt{interface3} for the full details. + +The basic properties provided here are +\begin{itemize} + \item \texttt{.code} --- execute arbitrary code + \item \texttt{.if} --- sets a \TeX{} |\if...| switch + \item \texttt{.ifnot} --- sets an inverted \TeX{} |\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 + has no limitation on scope (\texttt{general}) +\end{itemize} +The part of the \meta{key} before the \m{property} is the \m{name}, with the +\m{value} working with the \m{property} to define the behaviour of the option. + +For example, with +\begin{verbatim} +\DeclareKeys[mypkg] + { + draft.if = @mypkg@draft , + draft.usage = preamble , + name.store = \@mypkg@name , + name.usage = load , + second-name.store = \@mypkg@other@name + } +\end{verbatim} +three options would be created. The option \texttt{draft} can be given anywhere +in the preamble, and will set a switch called |\if@mypkg@draft|. The option +\texttt{name} can only be given during package loading, and will save whatever +value it is given in |\@mypkg@name|. Finally, the option \texttt{second-name} +can be given anywhere, and will save its value in |\@mypkg@other@name|. + +Keys created \emph{before} the use of |\ProcessKeyOptions| act as package +options. \begin{decl} - |\OptionNotUsed| + |\DeclareUnknownKeyHandler| \oarg{family} \arg{code} \end{decl} -This causes the current option to -be added to the list of `unused options'. +The command |\DeclareUnknownKeyHandler| may be used to define the behavior when +an undefined key is encountered. The \m{code} will receive the unknown key name +as |#1| and the value as |#2|. These can then be processed as appropriate, +e.g.~by forwarding to another package. -\NEWfeature{1995/06/01} - You can now include hash marks (\texttt{\#}) within these \m{code} - arguments without special treatment (formerly, it had been - necessary to double them). +\begin{decl} + |\ProcessKeyOptions| \oarg{family} +\end{decl} +The |\ProcessKeyOptions| function is used to check the current option list +against the keys defined for \m{family}. Global (class) options and local +(package) options are checked when this function is called in a package. -\subsection{Moving options around} +\begin{decl} + |\SetKeys| \oarg{family} \arg{keyvals} +\end{decl} +Sets (applies) the explicit list of \m{keyvals} for the \m{family}: if the +latter is not given, the value of |\@currname| is used. This command may be used +within a package to set options before or after using |\ProcessKeyOptions|. + +\subsection{Passing options around} \label{Sec:opmove} -These two commands are also very useful within the \m{code} argument -of |\DeclareOption| or |\DeclareOption*|: +These two commands are also very useful within the \m{code} argument of +options. \begin{decl} |\PassOptionsToPackage| \arg{options-list} \arg{package-name}\\ |\PassOptionsToClass| \arg{options-list} \arg{class-name} \end{decl} -The command |\PassOptionsToPackage| passes the option names in -\m{options-list} to package \m{package-name}. -This means that it adds the \m{option-list} to the -list of options used by any future |\RequirePackage| or |\usepackage| -command for package \m{package-name}. +The command |\PassOptionsToPackage| passes the option names in \m{options-list} +to package \m{package-name}. This means that it adds the \m{option-list} to the +list of options used by any future |\RequirePackage| or |\usepackage| command +for package \m{package-name}. Example: \begin{verbatim} @@ -1026,24 +915,22 @@ is the same as: \RequirePackage[foo,bar,baz]{fred} \end{verbatim} -Similarly, |\PassOptionsToClass| may be used in a class file to pass -options to another class to be loaded with |\LoadClass|. +Similarly, |\PassOptionsToClass| may be used in a class file to pass options to +another class to be loaded with |\LoadClass|. -\NEWdescription{1995/12/01} -The effects and use of these two commands should be contrasted with -those of the following two (documented above, in \ref{Sec:loadf}): +The effects and use of these two commands should be contrasted with those of +the following two (documented above, in \ref{Sec:loadf}): \begin{verbatim} \LoadClassWithOptions \RequirePackageWithOptions \end{verbatim} -The command |\RequirePackageWithOptions| is similar to -|\RequirePackage|, but it always loads the required package with -exactly the same option list as that being used by the current class -or package, rather than with any option explicitly supplied or passed -on by |\PassOptionsToPackage|. +The command |\RequirePackageWithOptions| is similar to |\RequirePackage|, but +it always loads the required package with exactly the same option list as that +being used by the current class or package, rather than with any option +explicitly supplied or passed on by |\PassOptionsToPackage|. -The main purpose of |\LoadClassWithOptions| is to allow one class to -simply build on another, for example: +The main purpose of |\LoadClassWithOptions| is to allow one class to simply +build on another, for example: \begin{verbatim} \LoadClassWithOptions{article} \end{verbatim} @@ -1053,12 +940,11 @@ This should be compared with the slightly different construction \ProcessOptions\relax \LoadClass{article} \end{verbatim} -As used above, the effects are more or less the same, but the first is -a lot less to type; also the |\LoadClassWithOptions| method runs -slightly quicker. +As used above, the effects are more or less the same, but the first is a lot +less to type; also the |\LoadClassWithOptions| method runs slightly quicker. -If, however, the class declares options of its own then -the two constructions are different. Compare, for example: +If, however, the class declares options of its own then the two constructions +are different. Compare, for example: \begin{verbatim} \DeclareOption{landscape}{\@landscapetrue} \ProcessOptions\relax @@ -1071,255 +957,56 @@ with: \ProcessOptions\relax \LoadClass{article} \end{verbatim} -In the first example, the \textsf{article} class will be loaded with -option |landscape| precisely when the current class is called with -this option. By contrast, in the second example it will never be -called with option \texttt{landscape} as in that case \textsf{article} -is passed options only by the default option handler, but this handler -is not used for |landscape| because that option is explicitly -declared. - -\subsection{Delaying code} -\label{Sec:delays} - -These first two commands are also intended primarily for use within -the \m{code} argument of |\DeclareOption| or |\DeclareOption*|. - -\begin{decl} - |\AtEndOfClass| \arg{code}\\ - |\AtEndOfPackage| \arg{code} -\end{decl} -These commands declare \m{code} that is saved away internally and then -executed after processing the whole of the current class or package -file. - -Repeated use of these commands is permitted: the code in the -arguments is stored (and later executed) in the order of their -declarations. - -\begin{decl} - |\AtBeginDocument| \arg{code}\\ - |\AtEndDocument| \arg{code} -\end{decl} -These commands declare \m{code} to be saved internally and executed -while \LaTeX{} is executing |\begin{document}| or |\end{document}|. - -The \m{code} specified in the argument to |\AtBeginDocument| is -executed near the end of the |\begin{document}| code, \emph{after} the -font selection tables have been set up. It is therefore a useful -place to put code which needs to be executed after everything has been -prepared for typesetting and when the normal font for the document is -the current font. - -\NEWdescription{1995/12/01} -The |\AtBeginDocument| hook should not be used for code that does any -typesetting since the typeset result would be unpredictable. - -The \m{code} specified in the argument to |\AtEndDocument| is -executed at the beginning of the |\end{document}| code, -\emph{before} the final page is finished and before any leftover -floating environments are processed. If some of the \m{code} is to be -executed after these two processes, you should include a |\clearpage| -at the appropriate point in \m{code}. - -Repeated use of these commands is permitted: the code in the -arguments is stored (and later executed) in the order of their -declarations. - -\begin{decl}[1994/12/01] - |\AtBeginDvi| \arg{specials} -\end{decl} -These commands save in a box register things which are written to the -|.dvi| file at the beginning of the `shipout' of the first page of the -document. - -This should not be used for anything that will add any typeset -material to the |.dvi| file. - -Repeated use of this command is permitted. - - -\subsection{Option processing} -\label{Sec:commands.options} - -\begin{decl} - |\ProcessOptions| -\end{decl} -This command executes the \m{code} for each selected option. - -We shall first describe how |\ProcessOptions| works in a package file, -and then how this differs in a class file. - -To understand in detail what |\ProcessOptions| does in a package file, -you have to know the difference between \emph{local} and \emph{global} -options. -\begin{itemize} -\item \textbf{Local options} are those which have been explicitly - specified for this particular package in the \m{options} argument of - any of these: -\begin{quote} - |\PassOptionsToPackage{<options>}| \ |\usepackage[<options>]|\\ - |\RequirePackage[<options>]| -\end{quote} -\item \textbf{Global options} are any other options that are specified - by the author in the \m{options} argument of - |\documentclass[<options>]|. -\end{itemize} -For example, suppose that a document begins: -\begin{verbatim} - \documentclass[german,twocolumn]{article} - \usepackage{gerhardt} -\end{verbatim} -whilst package |gerhardt| calls package |fred| with: -\begin{verbatim} - \PassOptionsToPackage{german,dvips,a4paper}{fred} - \RequirePackage[errorshow]{fred} -\end{verbatim} -then: -\begin{itemize} -\item |fred|'s local options are |german|, |dvips|, |a4paper| - and |errorshow|; -\item |fred|'s only global option is |twocolumn|. -\end{itemize} - -When |\ProcessOptions| is called, the following happen. -\begin{itemize} -\item \emph{First}, for each option so far declared in |fred.sty| - by |\DeclareOption|, it looks to see if that option is either a - global or a local option for |fred|: if it is then the corresponding - code is executed. - - This is done in the order in which these options - were declared in |fred.sty|. -\item \emph{Then}, for each remaining \emph{local} option, the command - |\ds@<option>| is executed if it has been defined somewhere (other - than by a |\DeclareOption|); otherwise, the `default option code' is - executed. If no default option code has been declared then an error - message is produced. - - This is done in the order in which these - options were specified. -\end{itemize} -Throughout this process, the system ensures that the code declared for -an option is executed at most once. - -Returning to the example, if |fred.sty| contains: -\begin{verbatim} - \DeclareOption{dvips}{\typeout{DVIPS}} - \DeclareOption{german}{\typeout{GERMAN}} - \DeclareOption{french}{\typeout{FRENCH}} - \DeclareOption*{\PackageWarning{fred}{Unknown `\CurrentOption'}} - \ProcessOptions\relax -\end{verbatim} -then the result of processing this document will be: -\begin{verbatim} - DVIPS - GERMAN - Package fred Warning: Unknown `a4paper'. - Package fred Warning: Unknown `errorshow'. -\end{verbatim} -Note the following: - -\begin{itemize} -\item the code for the |dvips| option is executed before that for the - |german| option, because that is the order in which they are declared - in |fred.sty|; -\item the code for the |german| option is executed only once, when the - declared options are being processed; -\item the |a4paper| and |errorshow| options produce the warning from - the code declared by |\DeclareOption*| (in the order in which they - were specified), whilst the |twocolumn| option does not: this is - because |twocolumn| is a global option. -\end{itemize} - -In a class file, |\ProcessOptions| works in the same way, except -that: \emph{all} options are local; and the default value for -|\DeclareOption*| is |\OptionNotUsed| rather than an error. - -\NEWdescription{1995/12/01} -Note that, because |\ProcessOptions| has a |*|-form, it is wise to -follow the non-star form with |\relax|, as in the previous examples, -since this prevents unnecessary look ahead and possibly misleading -error messages being issued. - -\begin{decl} - |\ProcessOptions*| \\ - |\@options| -\end{decl} -This is like |\ProcessOptions| but it executes the options in the -order specified in the calling commands, rather than in the order of -declaration in the class or package. For a package this means that the -global options are processed first. - -The |\@options| command from \LaTeX~2.09 has been made equivalent to -this in order to ease the task of updating old document styles to -\LaTeXe{} class files. - -\begin{decl} - |\ExecuteOptions| \arg{options-list} -\end{decl} - -For each option in the \m{options-list}, in order, -this command simply executes the command -|\ds@<option>| (if this command is not defined, then that option is -silently ignored). - -It can be used to provide a `default option list' just before -|\ProcessOptions|. For example, suppose that in a class file you want -to set up the default design to be: two-sided printing; 11pt fonts; -in two columns. Then it could specify: -\begin{verbatim} - \ExecuteOptions{11pt,twoside,twocolumn} -\end{verbatim} - +In the first example, the \textsf{article} class will be loaded with option +|landscape| precisely when the current class is called with this option. By +contrast, in the second example it will never be called with option |landscape| +as in that case \textsf{article} is passed options only by the default option +handler, but this handler is not used for |landscape| because that option is +explicitly declared. \subsection{Safe file commands} -These commands deal with file input; they ensure that the non-existence -of a requested file can be handled in a user-friendly way. +These commands deal with file input; they ensure that the non-existence of a +requested file can be handled in a user-friendly way. \begin{decl} |\IfFileExists| \arg{file-name} \arg{true} \arg{false} \end{decl} -If the file exists then the code specified in \m{true} is -executed. +If the file exists then the code specified in \m{true} is executed. -If the file does not exist then the code specified in \m{false} is -executed. +If the file does not exist then the code specified in \m{false} is executed. This command does \emph{not} input the file. \begin{decl} |\InputIfFileExists| \arg{file-name} \arg{true} \arg{false} \end{decl} -This inputs the file \m{file-name} if it exists and, immediately -before the input, the code specified in \m{true} is executed. +This inputs the file \m{file-name} if it exists and, immediately before the +input, the code specified in \m{true} is executed. -If the file does not exist then the code specified in \m{false} is -executed. +If the file does not exist then the code specified in \m{false} is executed. It is implemented using |\IfFileExists|. - \subsection{Reporting errors, etc} -These commands should be used by third party classes and packages to -report errors, or to provide information to authors. +These commands should be used by third party classes and packages to report +errors, or to provide information to authors. \begin{decl} |\ClassError| \arg{class-name} \arg{error-text} \arg{help-text}\\ |\PackageError| \arg{package-name} \arg{error-text} \arg{help-text} \end{decl} -These produce an error message. The \m{error-text} is displayed and the -|?| error prompt is shown. If the user types |h|, they will be shown -the \m{help-text}. +These produce an error message. The \m{error-text} is displayed and the |?| +error prompt is shown. If the user types |h|, they will be shown the +\m{help-text}. -Within the \m{error-text} and \m{help-text}: |\protect| can be used to -stop a command from expanding; |\MessageBreak| causes a line-break; -and |\space| prints a space. +Within the \m{error-text} and \m{help-text}: |\protect| can be used to stop a +command from expanding; |\MessageBreak| causes a line-break; and |\space| +prints a space. -Note that the \m{error-text} will have a full stop added to it, so do -not put one into the argument. +Note that the \m{error-text} will have a full stop added to it, so do not put +one into the argument. For example: \begin{verbatim} @@ -1354,96 +1041,22 @@ If the user types |h|, this will be shown: |\ClassInfo| \arg{class-name} \arg{info-text}\\ |\PackageInfo| \arg{package-name} \arg{info-text} \end{decl} -The four |Warning| commands are similar to the error commands, except -that they produce only a warning on the screen, with no error prompt. +The four |Warning| commands are similar to the error commands, except that they +produce only a warning on the screen, with no error prompt. -The first two, |Warning| versions, also show the line number where the -warning occurred, whilst the second two, |WarningNoLine| versions, do -not. +The first two, |Warning| versions, also show the line number where the warning +occurred, whilst the second two, |WarningNoLine| versions, do not. -The two |Info| commands are similar except that they log the -information only in the transcript file, including the line number. -There are no |NoLine| versions of these two. +The two |Info| commands are similar except that they log the information only +in the transcript file, including the line number. There are no |NoLine| +versions of these two. -Within the \m{warning-text} and \m{info-text}: |\protect| can be used to -stop a command from expanding; |\MessageBreak| causes a line-break; -and |\space| prints a space. -Also, these should not end with a full stop as one is +Within the \m{warning-text} and \m{info-text}: |\protect| can be used to stop a +command from expanding; |\MessageBreak| causes a line-break; and |\space| +prints a space. Also, these should not end with a full stop as one is automatically added. - -\subsection{Defining commands} -\label{Sec:commands.define} - -\LaTeXe{} provides some extra methods of (re)defining commands that are -intended for use in class and package files. - -\NEWfeature{1994/12/01} -The \texttt{*}-forms of these commands should be used to define -commands that are not, in \TeX{} terms, long. This can be useful for -error-trapping with commands whose arguments are not intended to -contain whole paragraphs of text. - -\begin{decl} - |\DeclareRobustCommand| \arg{cmd} \oarg{num} \oarg{default} - \arg{definition}\\ - |\DeclareRobustCommand*| \arg{cmd} \oarg{num} \oarg{default} - \arg{definition} -\end{decl} -This command takes the same arguments as |\newcommand| but it declares -a robust command, even if some code within the \m{definition} is -fragile. You can use this command to define new robust commands, or -to redefine existing commands and make them robust. A log is put into -the transcript file if a command is redefined. - -For example, if |\seq| is defined as follows: -\begin{verbatim} - \DeclareRobustCommand{\seq}[2][n]{% - \ifmmode - #1_{1}\ldots#1_{#2}% - \else - \PackageWarning{fred}{You can't use \protect\seq\space in text}% - \fi - } -\end{verbatim} -Then the command |\seq| can be used in moving arguments, even though -|\ifmmode| cannot, for example: -\begin{verbatim} - \section{Stuff about sequences $\seq{x}$} -\end{verbatim} - -Note also that there is no need to put a |\relax| before the -|\ifmmode| at the beginning of the definition; this is because the -protection given by this |\relax| against expansion at the wrong time -will be provided internally. - -\begin{decl} - |\CheckCommand| \arg{cmd} \oarg{num} \oarg{default} - \arg{definition}\\ - |\CheckCommand*| \arg{cmd} \oarg{num} \oarg{default} - \arg{definition} -\end{decl} -This takes the same arguments as |\newcommand| but, rather than define -\m{cmd}, it just checks that the current definition of \m{cmd} is -exactly as given by \m{definition}. An error is raised if these -definitions differ. - -This command is useful for checking the state of the system before -your package starts altering the definitions of commands. It allows -you to check, in particular, that no other package has redefined the -same command. - -\subsection{Moving arguments} - -\NEWdescription{1994/12/01} -The setting of protect whilst processing (i.e.~moving) moving arguments -has been reimplemented, as has the method of writing information from -the |.aux| file to other files such as the |.toc| file. Details can -be found in the file |ltdefns.dtx|. - -We hope that these changes will not affect many packages. - -\section{Miscellaneous commands, etc} +\section{Miscellaneous commands, etc.} \label{Sec:commands.misc} \subsection{Layout parameters} @@ -1452,78 +1065,25 @@ We hope that these changes will not affect many packages. |\paperheight|\\ |\paperwidth| \end{decl} -These two parameters are usually set by the class to be the size of -the paper being used. This should be actual paper size, unlike -|\textwidth| and |\textheight| which are the size of the main text -body within the margins. - +These two parameters are usually set by the class to be the size of the paper +being used. This should be actual paper size, unlike |\textwidth| and +|\textheight| which are the size of the main text body within the margins. \subsection{Case changing} \label{sec:case} \begin{decl} |\MakeUppercase| \arg{text} \\ - |\MakeLowercase| \arg{text} + |\MakeLowercase| \arg{text} \\ + |\MakeTitlecase| \arg{text} \end{decl} -\NEWfeature{1995/06/01} -\TeX{} provides two primitives |\uppercase| and |\lowercase| for -changing the case of text. These are sometimes used in document -classes, for example to set information in running heads in all -capitals. - -Unfortunately, these \TeX{} primitives do not change the case of -characters accessed by commands like |\ae| or |\aa|. To overcome this -problem, \LaTeX{} provides two new commands |\MakeUppercase| and -|\MakeLowercase| to do this. - -For example: -\begin{quotation} -\begin{tabular}{rl} - |\uppercase{aBcD\ae\AA\ss\OE}| & \uppercase{aBcD\ae\AA\ss\OE}\\ - |\lowercase{aBcD\ae\AA\ss\OE}| & \lowercase{aBcD\ae\AA\ss\OE}\\ - |\MakeUppercase{aBcD\ae\AA\ss\OE}| & - \MakeUppercase{aBcD\ae\AA\ss\OE}\\ - |\MakeLowercase{aBcD\ae\AA\ss\OE}| & \MakeLowercase{aBcD\ae\AA\ss\OE} -\end{tabular} -\end{quotation} - -The commands |\MakeUppercase| and |\MakeLowercase| themselves are -robust, but they have moving arguments. - -The commands use the \TeX{} primitives |\uppercase| and |\lowercase|, -and so have a number of unexpected `features'. In particular, they -change the case of everything (except characters in the names of -control-sequences) in their text argument: this includes mathematics, -environment names, and label names. - -For example: -\begin{verbatim} - \MakeUppercase{$x+y$ in \ref{foo}} -\end{verbatim} -produces $X+Y$ and the warning: -\begin{verbatim} - LaTeX Warning: Reference `FOO' on page ... undefined on ... -\end{verbatim} -In the long run, we would like to use all-caps fonts rather than any -command like |\MakeUppercase| but this is not possible at the moment -because such fonts do not exist. - -\NEWdescription{1995/12/01} -In order that upper/lower-casing will work reasonably well, and in -order to provide any correct hyphenation, \LaTeXe{} \emph{must} use, -throughout a document, the same fixed table for changing case. -The table used is designed for the font encoding |T1|; this works well -with the standard \TeX{} fonts for all Latin alphabets but will cause -problems when using other alphabets. - -\subsection{The `openany' option in the `book' class} - -\NEWdescription{1996/06/01} -The |openany| option allows chapter and similar openings to -occur on left hand pages. Previously this option affected only -|\chapter| and |\backmatter|. It now also affects -|\part|, |\frontmatter| and |\mainmatter|. +As described in \texttt{usrguide}, case changing for text should be carried out +using the commands |\MakeUppercase|, |\MakeLowercase| and +|\MakeTitlecase|. If you need to change the case of programmatic material, the +team strongly suggest using the L3 programming layer commands in the +\texttt{str} module. If you do not wish to do this, you should use the \TeX{} +|\uppercase| and |\lowercase| primitives \emph{in this situation only}. \subsection{Better user-defined math display environments} @@ -1531,11 +1091,8 @@ occur on left hand pages. Previously this option affected only |\ignorespacesafterend| \end{decl} -\NEWfeature{1996/12/01} -\NEWdescription{2003/12/01} -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: +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} @@ -1543,13 +1100,13 @@ as follows: {\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 inter-word space appears at the beginning of the first -line after the environment. +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 +inter-word space appears at the beginning of the first line after the +environment. -There is now an extra command (with a very long name) available that -you can use to avoid this problem; it should be inserted as shown here: +You can avoid this problem using |\ignorespacesafterend|; it should be +inserted as shown here: \begin{verbatim} \newenvironment{texteqn} {\begin{equation} @@ -1567,312 +1124,298 @@ This command may also have other uses. |\normalsfcodes| \end{decl} -\NEWfeature{1997/06/01} This command should be used to restore the normal settings of the parameters that affect spacing between words, sentences, etc. -An important use of this feature is to correct a problem, reported by -Donald Arseneau, that punctuation in page headers has always (in all -known \TeX{} formats) been potentially wrong whenever a page break -happens while a local setting of the space codes is in effect. These -space codes are changed by, for example, the command -\verb|\frenchspacing|) and the \textsf{verbatim} environment. - -It is normally given the correct definition automatically in -|\begin{document}| and so need not be explicitly set; however, if it -is explicitly made nonempty in a class file then automatic -default setting will be over-ridden. - - -\section{Upgrading \LaTeX~2.09 classes and packages} -\label{Sec:upgrade} - -This section describes the changes you may need to make when you -upgrade an existing \LaTeX{} style to a package or class but we shall -start in optimistic mode. - -Many existing style files will run with \LaTeXe{} without any -modification to the file itself. When everything is running OK, -please put a note in the newly created package or class file to record -that it runs with the new standard \LaTeX{}; then distribute it to -your users. - -\subsection{Try it first!} -\label{Sec:try-it} - -The first thing you should do is to test your style in `compatibility -mode'. The only change you need to make in order to do this is, -possibly, to change the extension of the file to |.cls|: you should -make this change only if your file was used as a main document style. -Now, without any other modifications, run \LaTeXe{} on a document that -uses your file. This assumes that you have a suitable collection of -files that tests all the functionality provided by your style file. -(If you haven't, now is the time to make one!) - -You now need to change the test document files so that they are -\LaTeXe{} documents: see \emph{\usrguide} for details of how to do -this and then try them again. You have now tried the test documents -in both \LaTeXe{} native mode and \LaTeX~2.09 compatibility mode. - -\subsection{Troubleshooting} -\label{Sec:trouble} - -If your file does not work with \LaTeXe{}, there are two likely -reasons. +An important use of this feature is to correct a problem, reported by Donald +Arseneau, that punctuation in page headers has always (in all known \TeX{} +formats) been potentially wrong whenever a page break happens while a local +setting of the space codes is in effect. These space codes are changed by, for +example, the command \verb|\frenchspacing|) and the \textsf{verbatim} +environment. + +It is normally given the correct definition automatically in |\begin{document}| +and so need not be explicitly set; however, if it is explicitly made non-empty +in a class file then automatic default setting will be over-ridden. + +\subsection{Querying localisation} + +Localisation information is needed to customise a range of outputs. The +\LaTeX{} kernel does not itself manage localisation, which is well-served by +the bundles \pkg{babel} and \pkg{polyglossia}. To allow the kernel and other +packages to access the current localisation information provided by \pkg{babel} +or \pkg{polyglossia}, the command \cs{BCPdata} is defined by the kernel. The +initial kernel definition expands to tag parts for \texttt{en-US}, as the +kernel does not track localisation but does start out with a broadly US~English +setup. However, if \pkg{babel} or \pkg{polyglossia} are loaded, it is redefined +expand to the BCP-47 information from the appropriate package. The supported +arguments are the BCP-47 tag breakdowns: \begin{itemize} -\item \LaTeX{} now has a robust, well-defined designer's interface for - selecting fonts, which is very different from the \LaTeX~2.09 - internals. -\item Your style file may have used some \LaTeX~2.09 internal commands - which have changed, or which have been removed. + \item \texttt{tag} The full BCP-47 tag (e.g.~\texttt{en-US}) + \item \texttt{language} (e.g.,~\texttt{de}) + \item \texttt{region} (e.g.,~\texttt{AT}) + \item \texttt{script} (e.g.,~\texttt{Latn}) + \item \texttt{variant} (e.g.,~\texttt{1901}) + \item \texttt{extension.t} (transformation, e.g.,~\texttt{en-t-ja}) + \item \texttt{extension.u} (additional locale + information, e.g.,~\texttt{ar-u-nu-latn}) + \item \texttt{extension.x} (private use area, e.g.,~\texttt{la-x-classic}) \end{itemize} +The information for the \emph{main} language for a document is be provided +if these are prefixed by \texttt{main.}, e.g.~\texttt{main.language} will +expand to the main language even if another language is currently active. -When you are debugging your file, you will probably need more -information than is normally displayed by \LaTeXe. This is achieved -by resetting the counter |errorcontextlines| from its default value of -$-1$ to a much higher value, e.g.~999. - -\subsection{Accommodating compatibility mode} - -Sometimes an existing collection of \LaTeX~2.09 documents makes it -inconvenient or impossible to abandon the old commands entirely. -If this is the case, then it is possible to accommodate both conventions -by making special provision for documents processed in compatibility -mode. +In addition to the tag breakdown, the following semantic arguments are +supported +\begin{itemize} + \item \texttt{casing} The tag for case changing, e.g.~\texttt{el-x-iota} + could be selected rather than \texttt{el} to select a capital adscript + iota on uppercasing an \emph{ypogegrammeni} +\end{itemize} -\begin{decl} -|\if@compatibility| -\end{decl} -This switch is set when a document begins with |\documentstyle| rather -than |\documentclass|. Appropriate code can be supplied for either -condition, as follows: +For example, the case changing command \cs{MakeUppercase} is (conceptually) +defined as \begin{verbatim} - \if@compatibility - <code emulating LaTeX 2.09 behavior> - \else - <code suitable for LaTeX2e> - \fi +\ExpandArgs{e}\MakeUppercaseAux{\BCPdata{casing}}{#1} \end{verbatim} +where |#1| is the user input and the first argument to +\cs{MakeUppercaseAux} takes two arguments, the locale and input text. + +\section{Commands superseded for new material} +A small number of commands were introduced as part of \LaTeXe{} in the +mid-1990s, are widely used but have been superseded by more modern methods. +These are covered here as they are likely to be encountered routinely in +existing classes and packages. -\subsection{Font commands} +\subsection{Defining commands} -Some font and size commands are now defined by the document class -rather than by the \LaTeX{} kernel. If you are upgrading a -\LaTeX~2.09 document style to a class that does not load one of the -standard classes, then you will probably need to add definitions for -these commands. +The \texttt{*}-forms of these commands should be used to define +commands that are not, in \TeX{} terms, long. This can be useful for +error-trapping with commands whose arguments are not intended to +contain whole paragraphs of text. \begin{decl} - |\rm| |\sf| |\tt| |\bf| |\it| |\sl| |\sc| + |\DeclareRobustCommand| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition}\\ + |\DeclareRobustCommand*| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition} \end{decl} -None of these short-form font selection commands are defined in the -\LaTeXe{} kernel. They are defined by all the standard class files. - -If you want to define them in your class file, there are several -reasonable ways to do this. - -One possible definition is: -\begin{verbatim} - \newcommand{\rm}{\rmfamily} - ... - \newcommand{\sc}{\scshape} -\end{verbatim} -This would make the font commands orthogonal; for example -|{\bf\it text}| would produce bold italic, thus: \textbf{\textit{text}}. -It will also make them produce an error if used in math mode. +This command takes the same arguments as |\newcommand| but it declares a robust +command, even if some code within the \m{definition} is fragile. You can use +this command to define new robust commands, or to redefine existing commands +and make them robust. A log is put into the transcript file if a command is +redefined. -Another possible definition is: +For example, if |\seq| is defined as follows: \begin{verbatim} - \DeclareOldFontCommand{\rm}{\rmfamily}{\mathrm} - ... - \DeclareOldFontCommand{\sc}{\scshape}{\mathsc} + \DeclareRobustCommand{\seq}[2][n]{% + \ifmmode + #1_{1}\ldots#1_{#2}% + \else + \PackageWarning{fred}{You can't use \protect\seq\space in text}% + \fi + } \end{verbatim} -This will make |\rm| act like |\rmfamily| in text mode (see above) and -it will make |\rm| select the |\mathrm| math alphabet in math mode. - -Thus |${\rm math} = X + 1$| will produce `${\rm math} = X + 1$'. - -If you do not want font selection to be orthogonal then you can -follow the standard classes and define: +Then the command |\seq| can be used in moving arguments, even though +|\ifmmode| cannot, for example: \begin{verbatim} - \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} - ... - \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\mathsc} + \section{Stuff about sequences $\seq{x}$} \end{verbatim} -This means, for example, that |{\bf\it text}| will produce medium -weight (rather than bold) italic, thus: \textit{text}. -\begin{decl} - |\normalsize| \\ - |\@normalsize| -\end{decl} -The command |\@normalsize| is retained for compatibility with -\LaTeX~2.09 packages which may have used its value; but redefining it -in a class file will have no effect since it is always reset to have -the same meaning as |\normalsize|. - -This means that classes \emph{must} now redefine |\normalsize| rather -than redefining |\@normalsize|; for example (a rather incomplete one): -\begin{verbatim} - \renewcommand{\normalsize}{\fontsize{10}{12}\selectfont} -\end{verbatim} -Note that |\normalsize| is defined by the \LaTeX{} kernel to be an -error message. +Note also that there is no need to put a |\relax| before the |\ifmmode| at the +beginning of the definition; this is because the protection given by this +|\relax| against expansion at the wrong time will be provided internally. \begin{decl} - |\tiny| |\footnotesize| |\small| |\large|\\ - |\Large| |\LARGE| |\huge| |\Huge| + |\CheckCommand| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition}\\ + |\CheckCommand*| \arg{cmd} \oarg{num} \oarg{default} + \arg{definition} \end{decl} -None of these other `standard' size-changing commands are defined in -the kernel: each needs to be defined in a class file if you need it. -They are all defined by the standard classes. - -This means you should use |\renewcommand| for |\normalsize| and -|\newcommand| for the other size-changing commands. - +This takes the same arguments as |\newcommand| but, rather than define \m{cmd}, +it just checks that the current definition of \m{cmd} is exactly as given by +\m{definition}. An error is raised if these definitions differ. -\subsection{Obsolete commands} +This command is useful for checking the state of the system before your package +starts altering the definitions of commands. It allows you to check, in +particular, that no other package has redefined the same command. -Some packages will not work with \LaTeXe{}, normally because they relied -on an internal \LaTeX{} command which was never supported and has now -changed, or been removed. - -In many cases there will now be a robust, high-level means of -achieving what previously required low-level commands. Please consult -Section~\ref{Sec:commands} to see if you can now use the \LaTeXe{} -class and package writers commands. - -Also, of course, if your package or class redefined any of the kernel -commands (i.e.~those defined in the files |latex.tex|, |slitex.tex|, -|lfonts.tex|, |sfonts.tex|) then you will need to check it very -carefully against the new kernel in case the implementation has -changed or the command no longer exists in the \LaTeX2e{} kernel. +\subsection{Option declaration} +\label{Sec:commands.options.dec} -Too many of the internal commands of \LaTeX~2.09 have been -re-implemented or removed to be able to list them all here. You must -check any that you have used or changed. +The following commands deal with the declaration and handling of options to +document classes and packages using a classical `simple text' approach. Every +option name must be a `\LaTeX{} name'. -We shall, however, list some of the more important commands which are -no longer supported. +There are some commands designed especially for use within the \m{code} +argument of these commands (see below). \begin{decl} - |\tenrm| |\elvrm| |\twlrm| \dots\\ - |\tenbf| |\elvbf| |\twlbf| \dots\\ - |\tensf| |\elvsf| |\twlsf| \dots\\ - \qquad$\vdots$ + |\DeclareOption| \arg{option-name} \arg{code} \end{decl} -The (approximately) seventy internal commands of this form are no longer -defined. If your class or package uses them then \emph{please} -replace them with new font commands described in \emph{\fntguide}. +This makes \m{option-name} a `declared option' of the class or package in which +it is put. + +The \m{code} argument contains the code to be executed if that option is +specified for the class or package; it can contain any valid \LaTeXe{} +construct. -For example, the command |\twlsf| should be replaced by: +Example: \begin{verbatim} - \fontsize{12}{14}\normalfont\sffamily\selectfont + \DeclareOption{twoside}{\@twosidetrue} \end{verbatim} -Another possibility is to use the |rawfonts| package, described in -\emph{\usrguide}. - -Also, remember that many of the fonts preloaded by \LaTeX~2.09 -are no longer preloaded. - \begin{decl} - |\vpt| |\vipt| |\viipt| \dots + |\DeclareOption*| \arg{code} \end{decl} -These were the internal size-selecting commands in \LaTeX~2.09. -(They can still be used in \LaTeX~2.09 compatibility mode.) -Please use the command |\fontsize| instead: see \emph{\fntguide} for -details. +This declares the \m{code} to be executed for every option which is specified +for, but otherwise not explicitly declared by, the class or package; this code +is called the `default option code' and it can contain any valid \LaTeXe{} +construct. -For example, |\vpt| should be replaced by: -\begin{verbatim} - \fontsize{5}{6}\normalfont\selectfont -\end{verbatim} +If a class file contains no |\DeclareOption*| then, by default, all specified +but undeclared options for that class will be silently passed to all packages +(as will the specified and declared options for that class). + +If a package file contains no |\DeclareOption*| then, by default, each +specified but undeclared option for that package will produce an error. + +\subsection{Commands within option code} +\label{Sec:within.code} + +These two commands can be used only within the \m{code} argument of either +|\DeclareOption| or |\DeclareOption*|. Other commands commonly used within +these arguments can be found in the next few subsections. \begin{decl} - |\prm|, |\pbf|, |\ppounds|, |\pLaTeX| \dots + |\CurrentOption| \end{decl} -\LaTeX~2.09 used several commands beginning with |\p| in order to -provide `protected' commands. For example, |\LaTeX| was defined to be -|\protect\pLaTeX|, and |\pLaTeX| was defined to produce the \LaTeX{} -logo. This made |\LaTeX| robust, even though |\pLaTeX| was not. - -These commands have now been reimplemented using -|\DeclareRobustCommand| -(described in Section~\ref{Sec:commands.define}). -If your package redefined one of the |\p|-commands then you must -remove the redefinition and use |\DeclareRobustCommand| to redefine the -non-|\p| command. +This expands to the name of the current option. \begin{decl} -|\footheight|\\ -|\@maxsep|\\ -|\@dblmaxsep| + |\OptionNotUsed| \end{decl} -These parameters are not used by \LaTeXe{} so they have been removed, -except in \LaTeX~2.09 compatibility mode. Classes should no longer -set them. - -\begin{thebibliography}{1} +This causes the current option to be added to the list of `unused options'. -\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. +\subsection{Option processing} +\label{Sec:commands.options} -\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. +\begin{decl} + |\ProcessOptions| +\end{decl} +This command executes the \m{code} for each selected option. -\end{thebibliography} +We shall first describe how |\ProcessOptions| works in a package file, and then +how this differs in a class file. -\newpage -\thispagestyle{empty} +To understand in detail what |\ProcessOptions| does in a package file, you have +to know the difference between \emph{local} and \emph{global} options. +\begin{itemize} +\item \textbf{Local options} are those which have been explicitly + specified for this particular package in the \m{options} argument of + any of these: +\begin{quote} + |\PassOptionsToPackage{<options>}| \ |\usepackage[<options>]|\\ + |\RequirePackage[<options>]| +\end{quote} +\item \textbf{Global options} are any other options that are specified + by the author in the \m{options} argument of + |\documentclass[<options>]|. +\end{itemize} +For example, suppose that a document begins: +\begin{verbatim} + \documentclass[german,twocolumn]{article} + \usepackage{gerhardt} +\end{verbatim} +whilst package |gerhardt| calls package |fred| with: +\begin{verbatim} + \PassOptionsToPackage{german,dvips,a4paper}{fred} + \RequirePackage[errorshow]{fred} +\end{verbatim} +then: +\begin{itemize} +\item |fred|'s local options are |german|, |dvips|, |a4paper| + and |errorshow|; +\item |fred|'s only global option is |twocolumn|. +\end{itemize} -\section*{\LaTeXe{} Summary sheet: updating old styles} +When |\ProcessOptions| is called, the following happen. +\begin{itemize} +\item \emph{First}, for each option so far declared in |fred.sty| + by |\DeclareOption|, it looks to see if that option is either a + global or a local option for |fred|: if it is then the corresponding + code is executed. -Section references below are to \emph{\clsguide}. + This is done in the order in which these options + were declared in |fred.sty|. +\item \emph{Then}, for each remaining \emph{local} option, the command + |\ds@<option>| is executed if it has been defined somewhere (other + than by a |\DeclareOption|); otherwise, the `default option code' is + executed. If no default option code has been declared then an error + message is produced. -\begin{enumerate} + This is done in the order in which these + options were specified. +\end{itemize} +Throughout this process, the system ensures that the code declared for +an option is executed at most once. -\item Should it become a class or a package? - See Section~\ref{Sec:classorpkg} for how to answer this question. +Returning to the example, if |fred.sty| contains: +\begin{verbatim} + \DeclareOption{dvips}{\typeout{DVIPS}} + \DeclareOption{german}{\typeout{GERMAN}} + \DeclareOption{french}{\typeout{FRENCH}} + \DeclareOption*{\PackageWarning{fred}{Unknown `\CurrentOption'}} + \ProcessOptions\relax +\end{verbatim} +then the result of processing this document will be: +\begin{verbatim} + DVIPS + GERMAN + Package fred Warning: Unknown `a4paper'. + Package fred Warning: Unknown `errorshow'. +\end{verbatim} +Note the following: -\item If it uses another style file, then you will need to obtain an - updated version of this other file. Look at Section~\ref{Sec:loading} - for information on how to load other class and package files. +\begin{itemize} +\item the code for the |dvips| option is executed before that for the + |german| option, because that is the order in which they are declared + in |fred.sty|; +\item the code for the |german| option is executed only once, when the + declared options are being processed; +\item the |a4paper| and |errorshow| options produce the warning from + the code declared by |\DeclareOption*| (in the order in which they + were specified), whilst the |twocolumn| option does not: this is + because |twocolumn| is a global option. +\end{itemize} -\item Try it: see Section~\ref{Sec:try-it}. +In a class file, |\ProcessOptions| works in the same way, except that: +\emph{all} options are local; and the default value for |\DeclareOption*| is +|\OptionNotUsed| rather than an error. -\item It worked? Excellent, but there are probably still some things - you should change in order to make your file into a well-structured - \LaTeXe{} file that is both robust and portable. So you should now - read Section~\ref{Sec:writing}, especially~\ref{Sec:general}. You - will also find some useful examples in Section~\ref{Sec:structure}. +Note that, because |\ProcessOptions| has a |*|-form, it is wise to follow the +non-star form with |\relax|, as in the previous examples, since this prevents +unnecessary look ahead and possibly misleading error messages being issued. - If your file sets up new fonts, font-changing commands or symbols, - you should also read \emph{\fntguide}. +\begin{decl} + |\ProcessOptions*| +\end{decl} +This is like |\ProcessOptions| but it executes the options in the order +specified in the calling commands, rather than in the order of declaration in +the class or package. For a package this means that the global options are +processed first. -\item It did not work? There are three possibilities here: - \begin{itemize} - \item error messages are produced whilst reading your file; - \item error messages are produced whilst processing test documents; - \item there are no errors but the output is not as it should be. - \end{itemize} - Don't forget to check carefully for this last possibility. +\begin{decl} + |\ExecuteOptions| \arg{options-list} +\end{decl} - If you have got to this stage then you will need to read - Section~\ref{Sec:upgrade} to find the solutions that will make your - file work. -\end{enumerate} +It can be used to provide a `default option list' just before +|\ProcessOptions|. For example, suppose that in a class file you want to set up +the default design to be: two-sided printing; 11pt fonts; in two columns. Then +it could specify: +\begin{verbatim} + \ExecuteOptions{11pt,twoside,twocolumn} +\end{verbatim} \end{document} diff --git a/Master/texmf-dist/doc/latex/base/cmfonts.pdf b/Master/texmf-dist/doc/latex/base/cmfonts.pdf Binary files differindex 01bd9f1fa28..e81f13eb782 100644 --- a/Master/texmf-dist/doc/latex/base/cmfonts.pdf +++ b/Master/texmf-dist/doc/latex/base/cmfonts.pdf diff --git a/Master/texmf-dist/doc/latex/base/cyrguide.pdf b/Master/texmf-dist/doc/latex/base/cyrguide.pdf Binary files differindex 6339438a020..2efa4eee4d7 100644 --- a/Master/texmf-dist/doc/latex/base/cyrguide.pdf +++ b/Master/texmf-dist/doc/latex/base/cyrguide.pdf diff --git a/Master/texmf-dist/doc/latex/base/cyrguide.tex b/Master/texmf-dist/doc/latex/base/cyrguide.tex index 7304a586e44..394cd59e204 100644 --- a/Master/texmf-dist/doc/latex/base/cyrguide.tex +++ b/Master/texmf-dist/doc/latex/base/cyrguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -34,7 +34,7 @@ \author{\copyright~Copyright 1998--1999,\\ Vladimir Volovich, Werner Lemberg and \LaTeX\ Project Team.\\ All rights reserved.% - \footnote{This file may distributed and/or modified under the + \footnote{This file 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. See the source \texttt{cyrguide.tex} for full details.}% diff --git a/Master/texmf-dist/doc/latex/base/doc-code.pdf b/Master/texmf-dist/doc/latex/base/doc-code.pdf Binary files differindex 3b0c7bc965a..9c17bbb77c7 100644 --- a/Master/texmf-dist/doc/latex/base/doc-code.pdf +++ b/Master/texmf-dist/doc/latex/base/doc-code.pdf diff --git a/Master/texmf-dist/doc/latex/base/doc.pdf b/Master/texmf-dist/doc/latex/base/doc.pdf Binary files differindex 75e804a9c93..8c86a556308 100644 --- a/Master/texmf-dist/doc/latex/base/doc.pdf +++ b/Master/texmf-dist/doc/latex/base/doc.pdf diff --git a/Master/texmf-dist/doc/latex/base/docstrip.pdf b/Master/texmf-dist/doc/latex/base/docstrip.pdf Binary files differindex 83739ec6b31..7b09dba511a 100644 --- a/Master/texmf-dist/doc/latex/base/docstrip.pdf +++ b/Master/texmf-dist/doc/latex/base/docstrip.pdf diff --git a/Master/texmf-dist/doc/latex/base/encguide.pdf b/Master/texmf-dist/doc/latex/base/encguide.pdf Binary files differindex 5ddc6f4fc95..c2da6210d8f 100644 --- a/Master/texmf-dist/doc/latex/base/encguide.pdf +++ b/Master/texmf-dist/doc/latex/base/encguide.pdf diff --git a/Master/texmf-dist/doc/latex/base/encguide.tex b/Master/texmf-dist/doc/latex/base/encguide.tex index 3c95cf30cce..1a0978267e1 100644 --- a/Master/texmf-dist/doc/latex/base/encguide.tex +++ b/Master/texmf-dist/doc/latex/base/encguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/exscale.pdf b/Master/texmf-dist/doc/latex/base/exscale.pdf Binary files differindex 30af0ff0a7a..d9bad62abfa 100644 --- a/Master/texmf-dist/doc/latex/base/exscale.pdf +++ b/Master/texmf-dist/doc/latex/base/exscale.pdf diff --git a/Master/texmf-dist/doc/latex/base/fix-cm.pdf b/Master/texmf-dist/doc/latex/base/fix-cm.pdf Binary files differindex 5d8487c2ea0..21479fe3cb3 100644 --- a/Master/texmf-dist/doc/latex/base/fix-cm.pdf +++ b/Master/texmf-dist/doc/latex/base/fix-cm.pdf diff --git a/Master/texmf-dist/doc/latex/base/fntguide.pdf b/Master/texmf-dist/doc/latex/base/fntguide.pdf Binary files differindex d4c88762f44..b7570a411e5 100644 --- a/Master/texmf-dist/doc/latex/base/fntguide.pdf +++ b/Master/texmf-dist/doc/latex/base/fntguide.pdf diff --git a/Master/texmf-dist/doc/latex/base/fntguide.tex b/Master/texmf-dist/doc/latex/base/fntguide.tex index 65467339f1d..619cc907b26 100644 --- a/Master/texmf-dist/doc/latex/base/fntguide.tex +++ b/Master/texmf-dist/doc/latex/base/fntguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % % The LaTeX Project and any individual authors listed elsewhere % in this file. @@ -42,17 +42,17 @@ \title{\LaTeXe{} font selection} -\author{\copyright~Copyright 1995--2022, \LaTeX\ Project +\author{\copyright~Copyright 1995--2023, \LaTeX\ Project Team.\thanks{Thanks to Arash Esbati for documenting the newer NFSS features of 2020}\\ All rights reserved.% - \footnote{This file may distributed and/or modified under the + \footnote{This file 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. See the source \texttt{fntguide.tex} for full details.}% } -\date{August 2022} +\date{May 2023} \begin{document} @@ -299,8 +299,6 @@ e.g., ``demi-bold'' is normally just another name for ``semi-bold'', so should get |sb| assigned, etc. -\newpage - \NEWdescription{2020/02/02} The most common values for the font shape are: \begin{center} @@ -325,7 +323,7 @@ A less common value for font shape is: \end{minipage} \end{center} and there is also |ui| for upright italic, i.e., an italic shape but -artifically turned upright. This is sometimes useful and available in +artificially turned upright. This is sometimes useful and available in some fonts. @@ -404,8 +402,6 @@ turned into \TeX{} font names. This is described in Section~\ref{Sec:install}. -\newpage - \subsection{Selection commands} @@ -955,7 +951,6 @@ Example: \DeclareMathSymbol{\alphld}{\mathalpha}{AMSb}{"0C} \end{verbatim} -\newpage \begin{decl} |\DeclareMathDelimiter| \arg{cmd} \arg{type} @@ -1382,7 +1377,7 @@ the `cmr' family). from this subsection. \NEWdescription{2019/07/10} -As an exception it may also contain a |\DeclareFontsubstitution| +As an exception it may also contain a |\DeclareFontSubstitution| declaration (described in \ref{sec:encoding-defaults}) to specify how font substitution for this encoding should be handled. In that case it is important that the values used point to a font that is guaranteed to @@ -1431,6 +1426,8 @@ executed whenever a math alphabet with this encoding is called. It also saves the value of \m{encoding} in the macro |\LastDeclaredEncoding|. +\newpage + Example: \begin{verbatim} \DeclareFontEncoding{OT1}{}{} @@ -1496,6 +1493,8 @@ For example, the definition of |\ss| in the |OT1| encoding is: It does not produce an error if the command has already been defined but logs the redefinition in the transcript file. +\newpage + \begin{decl} |\DeclareTextAccent| \arg{cmd} \arg{encoding} \arg{slot} \end{decl} @@ -1611,6 +1610,8 @@ defined with |\DeclareTextSymbol|. For more examples of these definitions, see |ltoutenc.dtx|. +\newpage + \begin{decl}[1994/12/01] |\ProvideTextCommandDefault| \arg{cmd} \arg{definition} \end{decl} @@ -2440,8 +2441,6 @@ become unavailable in the different sub-encodings. Again, the numbers are the slots in the |TS1| encoding, |acc| indicates a `constructed' accent. -\newpage - \begin{table}[!tbp] diff --git a/Master/texmf-dist/doc/latex/base/graphpap.pdf b/Master/texmf-dist/doc/latex/base/graphpap.pdf Binary files differindex d2385fa786c..2460d688725 100644 --- a/Master/texmf-dist/doc/latex/base/graphpap.pdf +++ b/Master/texmf-dist/doc/latex/base/graphpap.pdf diff --git a/Master/texmf-dist/doc/latex/base/ifthen.pdf b/Master/texmf-dist/doc/latex/base/ifthen.pdf Binary files differindex 4802103db4d..7437721f4d2 100644 --- a/Master/texmf-dist/doc/latex/base/ifthen.pdf +++ b/Master/texmf-dist/doc/latex/base/ifthen.pdf diff --git a/Master/texmf-dist/doc/latex/base/inputenc.pdf b/Master/texmf-dist/doc/latex/base/inputenc.pdf Binary files differindex 1ea351b1e75..4a7f1190f19 100644 --- a/Master/texmf-dist/doc/latex/base/inputenc.pdf +++ b/Master/texmf-dist/doc/latex/base/inputenc.pdf diff --git a/Master/texmf-dist/doc/latex/base/lamport-manual.pdf b/Master/texmf-dist/doc/latex/base/lamport-manual.pdf Binary files differindex 2d2e7d4f47e..bf804f21a0f 100644 --- a/Master/texmf-dist/doc/latex/base/lamport-manual.pdf +++ b/Master/texmf-dist/doc/latex/base/lamport-manual.pdf diff --git a/Master/texmf-dist/doc/latex/base/latexrelease.pdf b/Master/texmf-dist/doc/latex/base/latexrelease.pdf Binary files differindex 9ab51faa3bb..e4217ba0889 100644 --- a/Master/texmf-dist/doc/latex/base/latexrelease.pdf +++ b/Master/texmf-dist/doc/latex/base/latexrelease.pdf diff --git a/Master/texmf-dist/doc/latex/base/latexsym.pdf b/Master/texmf-dist/doc/latex/base/latexsym.pdf Binary files differindex 8546f14f7d8..aeb945867dc 100644 --- a/Master/texmf-dist/doc/latex/base/latexsym.pdf +++ b/Master/texmf-dist/doc/latex/base/latexsym.pdf diff --git a/Master/texmf-dist/doc/latex/base/lb2.err b/Master/texmf-dist/doc/latex/base/lb2.err index 46958ae3a5f..d2ea742f82e 100644 --- a/Master/texmf-dist/doc/latex/base/lb2.err +++ b/Master/texmf-dist/doc/latex/base/lb2.err @@ -363,10 +363,15 @@ Bafög-Ausgabe (Softcover) die inhaltlich identisch ist: ) \end{verbatim} - \begin{list}{}{\setlength\leftmargin{0cm}\setlength\rightmargin{3cm}} \item[] +Beide Ausgaben sind nur noch antiquarisch erhältlich. Das englische +Original "`The \LaTeX{} Companion"' existiert in der dritten Ausgabe +(Erscheinungsdatum Mai 2023). + +\item[] + Diese Errata-Datei (\texttt{\jobname.err}) ist Teil der \LaTeX-Distribution und die neuste Version findet man auf der \LaTeX{} Project Webseite unter diff --git a/Master/texmf-dist/doc/latex/base/lb2.pdf b/Master/texmf-dist/doc/latex/base/lb2.pdf Binary files differindex c8f32233afa..9913fca20c8 100644 --- a/Master/texmf-dist/doc/latex/base/lb2.pdf +++ b/Master/texmf-dist/doc/latex/base/lb2.pdf diff --git a/Master/texmf-dist/doc/latex/base/letter.pdf b/Master/texmf-dist/doc/latex/base/letter.pdf Binary files differindex 51e1f40c554..b456935de80 100644 --- a/Master/texmf-dist/doc/latex/base/letter.pdf +++ b/Master/texmf-dist/doc/latex/base/letter.pdf diff --git a/Master/texmf-dist/doc/latex/base/lgc2.err b/Master/texmf-dist/doc/latex/base/lgc2.err index 45b440a7f4f..cb1a3823481 100644 --- a/Master/texmf-dist/doc/latex/base/lgc2.err +++ b/Master/texmf-dist/doc/latex/base/lgc2.err @@ -330,6 +330,26 @@ ) \end{verbatim} +Reprinted by Lehmanns in 2022: + +\begin{verbatim} +@book(Lehmanns:GMRRV2022, + author = {Michel Goossens and Frank Mittelbach and Sebastian Rahtz + and Denis Roegel and Herbert Vo{\ss}}, + title = {The {\LaTeX} Graphics Companion}, + edition = 2, + series = {Tools and Techniques for Computer Typesetting}, + publisher = {Lehmanns Media}, + address = {Köln}, + year = {2022}, + isbn = {978-3-96543-303-8 (softcover), 978-3-96543-299-4 (ebook)}, + originalyear = {2007}, + pagenums = {976}, + bibliography = {yes}, + index = {yes}, +) +\end{verbatim} + \begin{list}{}{\setlength\leftmargin{0cm}\setlength\rightmargin{3cm}} \item[] @@ -378,7 +398,7 @@ Good luck! Contest period ends & Winner \\[4pt] 2008/05 & Milan Vujtek & 16 suggestions\\ 2010/05 & & \\ -\ldots & contest no longer open +\ldots & -- contest no longer open -- \end{tabular} \end{center} \end{list} diff --git a/Master/texmf-dist/doc/latex/base/lgc2.pdf b/Master/texmf-dist/doc/latex/base/lgc2.pdf Binary files differindex 43ab034d38b..339f3c46a32 100644 --- a/Master/texmf-dist/doc/latex/base/lgc2.pdf +++ b/Master/texmf-dist/doc/latex/base/lgc2.pdf diff --git a/Master/texmf-dist/doc/latex/base/lppl.pdf b/Master/texmf-dist/doc/latex/base/lppl.pdf Binary files differindex 81e00214b63..196e23d5cbe 100644 --- a/Master/texmf-dist/doc/latex/base/lppl.pdf +++ b/Master/texmf-dist/doc/latex/base/lppl.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltcmdhooks-code.pdf b/Master/texmf-dist/doc/latex/base/ltcmdhooks-code.pdf Binary files differindex 83670e44634..499194f3d63 100644 --- a/Master/texmf-dist/doc/latex/base/ltcmdhooks-code.pdf +++ b/Master/texmf-dist/doc/latex/base/ltcmdhooks-code.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltcmdhooks-doc.pdf b/Master/texmf-dist/doc/latex/base/ltcmdhooks-doc.pdf Binary files differindex fa4ca35a073..51320b388e0 100644 --- a/Master/texmf-dist/doc/latex/base/ltcmdhooks-doc.pdf +++ b/Master/texmf-dist/doc/latex/base/ltcmdhooks-doc.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltfilehook-code.pdf b/Master/texmf-dist/doc/latex/base/ltfilehook-code.pdf Binary files differindex fbaf7f05024..e52041c4257 100644 --- a/Master/texmf-dist/doc/latex/base/ltfilehook-code.pdf +++ b/Master/texmf-dist/doc/latex/base/ltfilehook-code.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltfilehook-doc.pdf b/Master/texmf-dist/doc/latex/base/ltfilehook-doc.pdf Binary files differindex bb38e6a544a..392b3c05af3 100644 --- a/Master/texmf-dist/doc/latex/base/ltfilehook-doc.pdf +++ b/Master/texmf-dist/doc/latex/base/ltfilehook-doc.pdf diff --git a/Master/texmf-dist/doc/latex/base/lthooks-code.pdf b/Master/texmf-dist/doc/latex/base/lthooks-code.pdf Binary files differindex eac5817e793..88b163641fe 100644 --- a/Master/texmf-dist/doc/latex/base/lthooks-code.pdf +++ b/Master/texmf-dist/doc/latex/base/lthooks-code.pdf diff --git a/Master/texmf-dist/doc/latex/base/lthooks-doc.pdf b/Master/texmf-dist/doc/latex/base/lthooks-doc.pdf Binary files differindex 69ab35fb5a8..d47c52c4ad8 100644 --- a/Master/texmf-dist/doc/latex/base/lthooks-doc.pdf +++ b/Master/texmf-dist/doc/latex/base/lthooks-doc.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltluatex.pdf b/Master/texmf-dist/doc/latex/base/ltluatex.pdf Binary files differindex f53e9a5b133..8b854be87e9 100644 --- a/Master/texmf-dist/doc/latex/base/ltluatex.pdf +++ b/Master/texmf-dist/doc/latex/base/ltluatex.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltmarks-code.pdf b/Master/texmf-dist/doc/latex/base/ltmarks-code.pdf Binary files differindex 7c885820321..9fc96a45bde 100644 --- a/Master/texmf-dist/doc/latex/base/ltmarks-code.pdf +++ b/Master/texmf-dist/doc/latex/base/ltmarks-code.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltmarks-doc.pdf b/Master/texmf-dist/doc/latex/base/ltmarks-doc.pdf Binary files differindex 0aad6985bc0..86c684dc7ad 100644 --- a/Master/texmf-dist/doc/latex/base/ltmarks-doc.pdf +++ b/Master/texmf-dist/doc/latex/base/ltmarks-doc.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews.pdf b/Master/texmf-dist/doc/latex/base/ltnews.pdf Binary files differindex 5a52a334713..5ecb14ad3ee 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews.tex b/Master/texmf-dist/doc/latex/base/ltnews.tex index 8d45f77cda3..d239fc274fa 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews.tex @@ -1,7 +1,7 @@ % \iffalse meta-comment % % Copyright (C) 2006, 2009, 2011, 2014 Heiko Oberdiek -% Copyright (C) 2014-2022 +% Copyright (C) 2014-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -40,7 +40,7 @@ \ProvidesFile{ltnews.tex}% [2022/06/10 v1.4e Master file for ltnews*.tex (LaTeX Project)] -\providecommand*{\lastissue}{36} +\providecommand*{\lastissue}{37} \InputIfFileExists{ltnews-lastissue.cfg}{}{} @@ -113,22 +113,11 @@ \renewcommand{\@evenfoot}{\@indiciafont\@indicia\hfill --\thepage}% } -\newcommand*{\MonthJanuary}{01} -\newcommand*{\MonthFebruary}{02} -\newcommand*{\MonthMarch}{03} -\newcommand*{\MonthApril}{04} -\newcommand*{\MonthMay}{05} -\newcommand*{\MonthJune}{06} -\newcommand*{\MonthJuly}{07} -\newcommand*{\MonthAugust}{08} -\newcommand*{\MonthSeptember}{09} -\newcommand*{\MonthOctober}{10} -\newcommand*{\MonthNovember}{11} -\newcommand*{\MonthDecember}{12} \newcommand*{\printissue}{% Issue % \texorpdfstring{\number\value{issue}}{\theissue}, % - \texorpdfstring{\@month\space\@year}{\@year/\@nameuse{Month\@month}}% + \texorpdfstring{\@month\space\@year\space(\publicationdate)} + {\@year/\@julianmonthtonum{\@month}}% } \let\l@part\l@section \let\l@section\l@subsection @@ -303,6 +292,7 @@ \loop \ifnum\value{issue}<\lastissue \stepcounter{issue}% + \publicationday{01}% \input{ltnews\theissue}% \repeat \stepcounter{issue}% diff --git a/Master/texmf-dist/doc/latex/base/ltnews01.pdf b/Master/texmf-dist/doc/latex/base/ltnews01.pdf Binary files differindex 46f89cea3b5..670facd8c6b 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews01.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews01.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews01.tex b/Master/texmf-dist/doc/latex/base/ltnews01.tex index 08ac57d27d9..55c6b20dd66 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews01.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews01.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews02.pdf b/Master/texmf-dist/doc/latex/base/ltnews02.pdf Binary files differindex bbe1c4ebd18..458c10709a4 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews02.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews02.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews02.tex b/Master/texmf-dist/doc/latex/base/ltnews02.tex index 1d875dcd031..58856fe97b9 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews02.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews02.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews03.pdf b/Master/texmf-dist/doc/latex/base/ltnews03.pdf Binary files differindex 58a9a40d0b2..54deb688dd6 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews03.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews03.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews03.tex b/Master/texmf-dist/doc/latex/base/ltnews03.tex index 93f0963426c..96a5bec4280 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews03.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews03.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews04.pdf b/Master/texmf-dist/doc/latex/base/ltnews04.pdf Binary files differindex 5236b48dd8b..37a344bc9d8 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews04.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews04.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews04.tex b/Master/texmf-dist/doc/latex/base/ltnews04.tex index 527024fa18b..ab49d7ade3c 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews04.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews04.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews05.pdf b/Master/texmf-dist/doc/latex/base/ltnews05.pdf Binary files differindex 82c03a4c12f..f84999681e2 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews05.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews05.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews05.tex b/Master/texmf-dist/doc/latex/base/ltnews05.tex index d13f469dd6f..cdfe8bc072f 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews05.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews05.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews06.pdf b/Master/texmf-dist/doc/latex/base/ltnews06.pdf Binary files differindex 0b8753998ec..d5b2c509a79 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews06.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews06.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews06.tex b/Master/texmf-dist/doc/latex/base/ltnews06.tex index ac32eab8d1a..3d5cadb7454 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews06.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews06.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews07.pdf b/Master/texmf-dist/doc/latex/base/ltnews07.pdf Binary files differindex b8aad35370a..bca35e9904e 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews07.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews07.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews07.tex b/Master/texmf-dist/doc/latex/base/ltnews07.tex index 56cfd76661b..43cf204fedc 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews07.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews07.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews08.pdf b/Master/texmf-dist/doc/latex/base/ltnews08.pdf Binary files differindex c3d9b6b8480..157e8f2c3df 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews08.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews08.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews08.tex b/Master/texmf-dist/doc/latex/base/ltnews08.tex index 68cd1247e64..f1386a5332e 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews08.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews08.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews09.pdf b/Master/texmf-dist/doc/latex/base/ltnews09.pdf Binary files differindex 92fb1771a01..543a2c87955 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews09.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews09.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews09.tex b/Master/texmf-dist/doc/latex/base/ltnews09.tex index af14a53e34a..26eccedd1e7 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews09.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews09.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews10.pdf b/Master/texmf-dist/doc/latex/base/ltnews10.pdf Binary files differindex f87a2bd4e29..7dc732ba414 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews10.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews10.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews10.tex b/Master/texmf-dist/doc/latex/base/ltnews10.tex index c6a77e6e364..b011eacf7ee 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews10.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews10.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews11.pdf b/Master/texmf-dist/doc/latex/base/ltnews11.pdf Binary files differindex 8a9605348b5..c07bf4681bc 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews11.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews11.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews11.tex b/Master/texmf-dist/doc/latex/base/ltnews11.tex index b4f6d19910e..07dbd642400 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews11.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews11.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews12.pdf b/Master/texmf-dist/doc/latex/base/ltnews12.pdf Binary files differindex b74dc492f64..f848096ed0b 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews12.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews12.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews12.tex b/Master/texmf-dist/doc/latex/base/ltnews12.tex index b7a01bc208b..38ea9122a0c 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews12.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews12.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews13.pdf b/Master/texmf-dist/doc/latex/base/ltnews13.pdf Binary files differindex 014faa5e5f4..d5115733945 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews13.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews13.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews13.tex b/Master/texmf-dist/doc/latex/base/ltnews13.tex index 0cbbe49a5da..e489b4ff27f 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews13.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews13.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews14.pdf b/Master/texmf-dist/doc/latex/base/ltnews14.pdf Binary files differindex 40972a5a436..debb104763b 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews14.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews14.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews14.tex b/Master/texmf-dist/doc/latex/base/ltnews14.tex index b5fa7cb019a..44cc44647e0 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews14.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews14.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews15.pdf b/Master/texmf-dist/doc/latex/base/ltnews15.pdf Binary files differindex 3fd5dce4aae..9e2432ea999 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews15.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews15.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews15.tex b/Master/texmf-dist/doc/latex/base/ltnews15.tex index 3b1ea3f89cb..b95801dd6e5 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews15.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews15.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews16.pdf b/Master/texmf-dist/doc/latex/base/ltnews16.pdf Binary files differindex 5fc21f98ee5..612c1bd5f27 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews16.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews16.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews16.tex b/Master/texmf-dist/doc/latex/base/ltnews16.tex index 7f7183ac0e9..7edf8a7f53f 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews16.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews16.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews17.pdf b/Master/texmf-dist/doc/latex/base/ltnews17.pdf Binary files differindex 9806abea055..e8325346a02 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews17.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews17.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews17.tex b/Master/texmf-dist/doc/latex/base/ltnews17.tex index 4dab20f53fb..e18e4660ebd 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews17.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews17.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews18.pdf b/Master/texmf-dist/doc/latex/base/ltnews18.pdf Binary files differindex b3628bab088..641dc18d2eb 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews18.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews18.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews18.tex b/Master/texmf-dist/doc/latex/base/ltnews18.tex index 04491760b2c..8c706215343 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews18.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews18.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews19.pdf b/Master/texmf-dist/doc/latex/base/ltnews19.pdf Binary files differindex d6ac262c052..2bf99f39541 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews19.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews19.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews19.tex b/Master/texmf-dist/doc/latex/base/ltnews19.tex index 43d388b29b8..7e9492a8f2f 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews19.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews19.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -36,6 +36,7 @@ \usepackage{lmodern,url} +\publicationday{24} \publicationmonth{September} \publicationyear{2009} diff --git a/Master/texmf-dist/doc/latex/base/ltnews20.pdf b/Master/texmf-dist/doc/latex/base/ltnews20.pdf Binary files differindex 54544a702fe..6382f7b26f1 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews20.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews20.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews20.tex b/Master/texmf-dist/doc/latex/base/ltnews20.tex index 89d166b49c7..b233f92dc4a 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews20.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews20.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993--2019 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -36,6 +36,7 @@ \usepackage{lmodern,url} +\publicationday{27} \publicationmonth{June} \publicationyear{2011} diff --git a/Master/texmf-dist/doc/latex/base/ltnews21.pdf b/Master/texmf-dist/doc/latex/base/ltnews21.pdf Binary files differindex 69332e0e046..c6b0913181d 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews21.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews21.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews21.tex b/Master/texmf-dist/doc/latex/base/ltnews21.tex index 7b363447d93..a48cd0b199c 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews21.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews21.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 2019 +% Copyright (C) 2019-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews22.pdf b/Master/texmf-dist/doc/latex/base/ltnews22.pdf Binary files differindex 429820ea50d..4ca923a5579 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews22.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews22.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews22.tex b/Master/texmf-dist/doc/latex/base/ltnews22.tex index 8d1c91acfa6..dfc2e2326a0 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews22.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews22.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2022 +% Copyright (C) 2015-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews23.pdf b/Master/texmf-dist/doc/latex/base/ltnews23.pdf Binary files differindex 86bcb55ada4..b3b97d90712 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews23.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews23.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews23.tex b/Master/texmf-dist/doc/latex/base/ltnews23.tex index 29241766caa..ee75a6463e0 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews23.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews23.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2022 +% Copyright (C) 2015-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews24.pdf b/Master/texmf-dist/doc/latex/base/ltnews24.pdf Binary files differindex 30ddd82ebaf..0555a29b8cd 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews24.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews24.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews24.tex b/Master/texmf-dist/doc/latex/base/ltnews24.tex index 13d2fc8519f..6a50ef902cf 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews24.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews24.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2022 +% Copyright (C) 2015-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews25.pdf b/Master/texmf-dist/doc/latex/base/ltnews25.pdf Binary files differindex 0e2c3fa717c..17c09e30d95 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews25.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews25.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews25.tex b/Master/texmf-dist/doc/latex/base/ltnews25.tex index 5a9f4807183..0676220a2e3 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews25.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews25.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2016-2022 +% Copyright (C) 2016-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews26.pdf b/Master/texmf-dist/doc/latex/base/ltnews26.pdf Binary files differindex 0e31e2c4827..64a5a94b8a6 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews26.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews26.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews26.tex b/Master/texmf-dist/doc/latex/base/ltnews26.tex index 94b4c4818bd..9fbb6716b18 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews26.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews26.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2017-2022 +% Copyright (C) 2017-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews27.pdf b/Master/texmf-dist/doc/latex/base/ltnews27.pdf Binary files differindex 260f2b6ebd9..0db3aec2374 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews27.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews27.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews27.tex b/Master/texmf-dist/doc/latex/base/ltnews27.tex index 03c8c042054..917bf1cc103 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews27.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews27.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2017-2022 +% Copyright (C) 2017-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -35,6 +35,7 @@ \usepackage{lmodern,url,hologo} +\publicationday{15} \publicationmonth{April} \publicationyear{2017} diff --git a/Master/texmf-dist/doc/latex/base/ltnews28.pdf b/Master/texmf-dist/doc/latex/base/ltnews28.pdf Binary files differindex a20223db92f..e1bdb5e1b5d 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews28.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews28.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews28.tex b/Master/texmf-dist/doc/latex/base/ltnews28.tex index 28bfe0577cb..3c3b92da974 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews28.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews28.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2017-2022 +% Copyright (C) 2017-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews29.pdf b/Master/texmf-dist/doc/latex/base/ltnews29.pdf Binary files differindex 95619ddaff8..609c1395906 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews29.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews29.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews29.tex b/Master/texmf-dist/doc/latex/base/ltnews29.tex index c06d4de3478..999836b01da 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews29.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews29.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2018-2022 +% Copyright (C) 2018-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews30.pdf b/Master/texmf-dist/doc/latex/base/ltnews30.pdf Binary files differindex d45d527caac..fbd9a3af3de 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews30.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews30.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews30.tex b/Master/texmf-dist/doc/latex/base/ltnews30.tex index 74d7659512c..8183f7eabbf 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews30.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews30.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 2019 +% Copyright (C) 2019-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews31.pdf b/Master/texmf-dist/doc/latex/base/ltnews31.pdf Binary files differindex f88b7760663..bb9c2e3e451 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews31.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews31.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews31.tex b/Master/texmf-dist/doc/latex/base/ltnews31.tex index 8bb6e638b5f..44bf4941426 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews31.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews31.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 2019-2020 +% Copyright (C) 2019-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -119,6 +119,7 @@ \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\publicationday{02} \publicationmonth{February} \publicationyear{2020} diff --git a/Master/texmf-dist/doc/latex/base/ltnews32.pdf b/Master/texmf-dist/doc/latex/base/ltnews32.pdf Binary files differindex f6298a7cfb2..6c99b2cf6df 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews32.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews32.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews32.tex b/Master/texmf-dist/doc/latex/base/ltnews32.tex index 28f3bf88b43..c64cd97958d 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews32.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews32.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 2019-2020 +% Copyright (C) 2019-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews33.pdf b/Master/texmf-dist/doc/latex/base/ltnews33.pdf Binary files differindex b5132f035e3..9372bf0ec1e 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews33.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews33.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews33.tex b/Master/texmf-dist/doc/latex/base/ltnews33.tex index 39af4f1b72e..0b98a707ba8 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews33.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews33.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 2019-2021 +% Copyright (C) 2019-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltnews34.pdf b/Master/texmf-dist/doc/latex/base/ltnews34.pdf Binary files differindex 8962193f726..481e4496907 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews34.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews34.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews34.tex b/Master/texmf-dist/doc/latex/base/ltnews34.tex index 04d1c25bc7d..d3a9202b56f 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews34.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews34.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 2019-2021 +% Copyright (C) 2019-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -116,6 +116,7 @@ \providecommand\tubcommand[1]{} \tubcommand{\input{tubltmac}} +\publicationday{15} \publicationmonth{November} \publicationyear{2021} diff --git a/Master/texmf-dist/doc/latex/base/ltnews35.pdf b/Master/texmf-dist/doc/latex/base/ltnews35.pdf Binary files differindex e044273d065..1eda06fb70f 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews35.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews35.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews35.tex b/Master/texmf-dist/doc/latex/base/ltnews35.tex index 0230ef6e58f..8d49bf19843 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews35.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews35.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 2021-2022 +% Copyright (C) 2021-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -322,7 +322,6 @@ has been refined, such that \ProcessKeyOptions \end{verbatim} will now automatically pick up the package name as the key \emph{family}, -%unless explicitly given as an optional argument. unless explicitly given as an optional argument: \begin{verbatim} \ProcessKeyOptions[family] @@ -378,9 +377,7 @@ syntax are described in \file{usrguide3.pdf}. The command \cs{fpeval} offers a rich syntax allowing for extensive calculations, whereas the other three commands are essentially thin wrappers for \cs{numexpr}, \cs{dimexpr}, and \cs{glueexpr} \Dash therefore inheriting some syntax -%peculiars and limitations in expressiveness. peculiarities and limitations in expressiveness. -% \newcommand\calulateheight[1]{% \begin{verbatim} \newcommand\calculateheight[1]{% \setlength\textheight{\dimeval{\topskip @@ -698,7 +695,7 @@ Source files containing \textlangle\ or \textrangle\ directly written as Unicode codepoints U+2329 and U+232A no longer break when the source file gets normalized under Unicode normalization rules. % -\githubissue{gh/714} +\githubissue{714} @@ -907,7 +904,6 @@ For details and further examples, see \file{mathcolor.pdf}. \subsection{Fix locating files with \cs{graphicspath}} -% If a call to \cs{includegraphics} asked for a file (say, \file{image}) without extension, and if both \file{A/image.pdf} and \file{B/image.tex} @@ -953,22 +949,10 @@ internal syntax errors due to premature expansion. \emph{\LaTeX{} Tagged PDF \Dash A blueprint for a large project}.\\ \url{https://latex-project.org/publications/indexbyyear/2020/} -%\bibitem{35:source2e} -% \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\ -% \url{https://latex-project.org/help/documentation/} - -%\bibitem{35:ltnews31} \LaTeX{} Project Team: -% \emph{\LaTeXe{} news 31}.\\ -% \url{https://latex-project.org/news/latex2e-news/ltnews31.pdf} - \bibitem{35:ltnews32} \LaTeX{} Project Team: \emph{\LaTeXe{} news 32}.\\ \url{https://latex-project.org/news/latex2e-news/ltnews32.pdf} -%\bibitem{35:ltnews33} \LaTeX{} Project Team: -% \emph{\LaTeXe{} news 33}.\\ -% \url{https://latex-project.org/news/latex2e-news/ltnews33.pdf} - \bibitem{35:ltnews34} \LaTeX{} Project Team: \emph{\LaTeXe{} news 34}.\\ \url{https://latex-project.org/news/latex2e-news/ltnews34.pdf} diff --git a/Master/texmf-dist/doc/latex/base/ltnews36.pdf b/Master/texmf-dist/doc/latex/base/ltnews36.pdf Binary files differindex fbbd2036d09..7113dbcce46 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews36.pdf +++ b/Master/texmf-dist/doc/latex/base/ltnews36.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews36.tex b/Master/texmf-dist/doc/latex/base/ltnews36.tex index d6df801db2a..5dee9587479 100644 --- a/Master/texmf-dist/doc/latex/base/ltnews36.tex +++ b/Master/texmf-dist/doc/latex/base/ltnews36.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 2021-2022 +% Copyright (C) 2021-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -262,10 +262,11 @@ will give the expected result: {\fontfamily{cmr} \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). +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. This is why both work in the above, but +there is no difference between the two (and you get a substitution +warning for the \cs{textit}\cs{textsc} shape combination). % \githubissue{782} diff --git a/Master/texmf-dist/doc/latex/base/ltnews37.pdf b/Master/texmf-dist/doc/latex/base/ltnews37.pdf Binary files differnew file mode 100644 index 00000000000..b0f6947d8df --- /dev/null +++ b/Master/texmf-dist/doc/latex/base/ltnews37.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltnews37.tex b/Master/texmf-dist/doc/latex/base/ltnews37.tex new file mode 100644 index 00000000000..5527975c540 --- /dev/null +++ b/Master/texmf-dist/doc/latex/base/ltnews37.tex @@ -0,0 +1,848 @@ +% \iffalse meta-comment +% +% Copyright (C) 2021-2023 +% 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: ltnews37.tex +% +% This is issue 37 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 > +% (we have meta variables in verbatim, so keep it.) +%\makeatletter +%\def\verbatim@font{% +% \normalsize\ttfamily} +%\makeatother + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\providecommand\tubcommand[1]{} +\tubcommand{\input{tubltmac}} + +% \publicationday{01} % change this if it's not released on 1st of a month +\publicationmonth{June} +%\publicationyear{2023 --- DRAFT version for upcoming release} +\publicationyear{2023} + +\publicationissue{37} + +\begin{document} + +\tubcommand{\addtolength\textheight{4.1pc}} % only for TUB + +\maketitle +{\hyphenpenalty=10000 \exhyphenpenalty=10000 \spaceskip=3.33pt \hbadness=10000 +\tableofcontents} + +\setlength\rightskip{0pt plus 3em} + +% for ltnews37, squeeze to five pages. +\tubcommand{\fontsize{9.6}{12}\selectfont} + + +\medskip + + +%\section{Introduction} + + +\section{New functionality offered as part of the + \enquote{\LaTeX{} Tagged PDF} project} + +We have now enabled new automatic tagging functionality for additional +\LaTeX{} elements, among them most display environments, standard +sectioning commands, content, figure and table listings, floats and graphics and +bibliographies. This can +be activated through +\begin{verbatim} +\DocumentMetadata{testphase=phase-III} +\end{verbatim} +At this point in time tagging support is only available for a +restricted set of documents, i.e., those that use one of the basic +document classes (\texttt{article}, \texttt{report}, and +\texttt{book}) and only use commands and environments described in +Lamport's \LaTeX{} manual. + +Using other document classes or adding additional packages in the +preamble may work (or may partially work) but at this stage it is not +very likely, at least not for packages or classes that excessively +alter internals of \LaTeX{}. + +Also note that there are still several environments and commands +described in the \LaTeX{} manual that do not have tagging support yet, +notably tabulars, \texttt{tabbing}, the various math environment and a +few others. They will get this support as part of \texttt{phase-III}, +but some of them will be delayed until after the June release. + +A prototype for math tagging (including support for the \pkg{amsmath} +environments) is already available, but it is mainly intended for +experimentation and feedback and the resulting tagging is by no means +the way we envision it to be eventually. If you would like to try it out use +the following line: +\begin{verbatim} +\DocumentMetadata{testphase={phase-III,math}} +\end{verbatim} +Note that the math tagging code at this point in time will clash with +packages that redefine the \texttt{\$} character (which then may lead to strange +errors) and that packages that use math mode for non-mathematical +constructs may result in surprising output as far as tagging is +concerned. Feedback on which packages fail with the code in one or +another way would be appreciated. + +The \texttt{latex-lab} bundle contains various +(still untagged) documentation files about the new code that can +be accessed with \verb|texdoc -l latex-lab|. + +Feedback is welcome! +Please use \url{https://github.com/latex3/latex2e/discussions/1010}. + + + +\section{New or improved commands} + +\subsection{Extending hooks to take arguments} + +Hooks have always been containers for code whose outcome was entirely +dependent on the contents of the hook alone. If any type of contextual +information had to be passed to the hook, it had to be done by setting +some variable before the hook so that the code in the hook could use +that. But this is somewhat hard to keep track of, clumsy to implement, +and it required the programmer to have some kind of \enquote{hook before +the hook} to do that setup. + +To make things a bit easier, \pkg{lthooks} was enhanced to support hooks +with arguments. Hooks can now be declared and used with arguments, then +the code added to these hooks can reference the hook's arguments using +\verb|#1|, \verb|#2|, etc., so now hooks can behave more like macros +than like \emph{token lists} (using \pkg{expl3} terminology). Regular +argument-less hooks continue to work exactly like they did before: this +extension is completely compatible with older documents and packages. + +\AddToHook{cmd/verbatim@font/after}[hack]{\small} +To declare a hook with arguments, use +\begin{verbatim} +\NewHookWithArguments {<hook>} {<num-args>} +\end{verbatim} +then, similarly, to use the code in the hook, supposing a hook declared +with 2 arguments, write +\begin{verbatim} +\UseHookWithArguments {<hook>} {2} {<arg1>} {<arg2>} +\end{verbatim} + +Or, if you want to add some code to a hook that takes arguments, write +\begin{verbatim} +\AddToHookWithArguments {<hook>} [<label>] {<code>} +\end{verbatim} +exactly like you would for regular hooks, except that the \meta{code} +can use the arguments by referencing \verb|#1|, \verb|#2|, etc. In this +case, if you want to add an actual parameter token (\verb|#|) to the +\meta{code}, you have to double it, as usual. +\RemoveFromHook{cmd/verbatim@font/after}[hack] + +Additionally, if you want to add \enquote{regular} code to a hook with +arguments, you can still use \cs{AddToHook} --- in that case \verb|#| +tokens are \emph{not} doubled. This means that a package author can +decide to add arguments to an existing hook without worrying about +compatibility: \cs{AddToHook} will do the right thing and will not +mistakenly reference the newly added arguments. + +The commands \cs{NewReversedHookWithArguments}, \cs +{NewMirroredHookPairWithArguments}, \cs +{AddToHookNextWithArguments}, \cs{UseOneTimeHookWithArguments}, and +the \pkg{expl3} counterparts of the commands discussed in this section +were also added. The complete documentation can be found in the +\pkg{lthooks} documentation \cite{37:lthooks-doc}. + +\subsubsection{Generic \texttt{cmd} hooks with arguments} + +Along with the possibility of passing arguments to a regular hook as +discussed above, generic \hook{cmd} hooks can now access the arguments +of the command they are patched into, using the interface described in +the previous section. + +For example, if you were to add some code to the \cs{title} command +using hooks, you could access the actual title given in the argument. +Thus, to write the title of the document in the terminal you +could use: +\begin{verbatim} + \AddToHookWithArguments{cmd/title/before} + {\typeout{Document title: #1}} +\end{verbatim} + +As with regular hooks, code added to a \hook{cmd} hook using +\cs{AddToHook} will not be able to access the command's arguments. This +means that, as with regular hooks, this change is completely backwards +compatible, so previous usages of \hook{cmd} hooks will work exactly as +they did before. + +\subsection{Providing copy and show functions for environments} + +To copy a command definition we introduced \cs{NewCommandCopy} in +2022. This even allows you to copy commands that consist of several internal +components, such as robust commands or those with a complex signature. +To do the same with environments, e.g., to define the environment +\env{myitemize} to be equivalent to \env{itemize}, you can now write +\begin{verbatim} + \NewEnvironmentCopy{myitemize}{itemize} +\end{verbatim} +There are also \cs{Renew...}\ and \cs{Declare...}, which may be useful +depending on the circumstances. + +In addition, we offer a \cs{ShowEnvironment} command, which displays the +\cs{begin} and \cs{end} code of the environment passed as an +argument. E.g., \verb=\ShowEnvironment{center}= results in the +following output: +\begin{verbatim} + >> \begin{center}=environment: + >> ->>\trivlist \centering \item \relax . + <<recently read>> } + l. ...\ShowEnvironment{center} + >> \end{center}: + >> ->>\endtrivlist . + <<recently read>> } + l. ...\ShowEnvironment{center} +\end{verbatim} +% +\githubissue{963} + +\subsection{\cs{IfFileAtLeastTF}} + +The 2020-10-01 \LaTeX{} release introduced the CamelCase tests +\cs{IfClassAtLeastTF} and \cs{IfPackageAtLeastTF} for checking class +and package dates. We have now added \cs{IfFileAtLeastTF} to allow the +same to happen for generic files which contain a \cs{ProvidesFile} +line. +% +\githubissue{1015} + +\subsection{\cs{DeclareLowercaseMapping}, \cs{DeclareTitlecaseMapping} + and \cs{DeclareUppercaseMapping}\texorpdfstring{\raggedright}{}} + +The move from a case-changing approach using \cs{lccode} and \cs{uccode} data +to one where information is stored by a kernel-managed structure left a gap in +the ability of the user to \emph{tune} the case changing outcomes. This has now +been addressed by the addition of three commands +\begin{itemize}\tubcommand{\setlength{\parskip}{0pt}}% + \item \cs{DeclareLowercaseMapping} + \item \cs{DeclareTitlecaseMapping} + \item \cs{DeclareUppercaseMapping} +\end{itemize} +which can be used to customise the outcome for codepoints. This can be applied +generally or to a specific locale (see also the next section). A small number +of pre-defined customisations have been set up in the kernel where the outcomes +for \pdfTeX{} should be different for those from Unicode engines. For +example +\begin{verbatim} + \DeclareUppercaseMapping{"01F0}{\v{J}} +\end{verbatim} +allows \v{J} to be produced in 8-bit engines: without this customisation, +an error would occur as there is no pre-composed \v{J} in Unicode. More detail +is given in \texttt{usrguide}. +% +\githubissue{1033} + +\subsection{\cs{BCPdata}} + +Improvements in the Unicode handling for case changing have highlighted that +the kernel has not to-date been locale-aware. The packages \pkg{babel} and +\pkg{polyglossia} provide comprehensive locale support, but did not have +an agreed unified interface to pass that information back to other code. +Following discussion with the maintainers of those two bundles, the kernel +now defines \cs{BCPdata} as a stub (so it is always defined), and \pkg{babel} +and \pkg{polyglossia} will redefine it to provide the locale data. An agreed +set of keywords mean that \cs{BCPdata} can be queried in a structured way +by both the kernel and any other \enquote{consumer} packages. +% +\githubissue{1035} + +\subsection{Improve \cs{samepage}} + +The \cs{samepage} declaration sets various parameters to +\texttt{10000} to prevent undesired page breaks. The +\cs{predisplaypenalty} parameter has already by default a value of +\texttt{10000}, and to save space in the past it was therefore not +explicitly set. However, there are a few classes that change the +parameter and as result the user might experience a page break in +front of a display formula within the scope of \cs{samepage} when +using such classes. This has now been corrected and +\cs{predisplaypenalty} is also explicitly set to \texttt{10000}. +% +\githubissue{1022} + +\subsection{Groups in \cs{MakeUppercase}} +% +Prior to 2022, \cs{MakeUppercase} and \cs{MakeLowercase} used a brace +group around their argument so providing a scope for any declarations +within the argument. This grouping has been restored (also +for \cs{MakeTitlecase}), although the underlying L3 text case commands do +not use grouping. +% +\githubissue{1021} + +\subsection{Extension of the \cs{label} command} + +Previously, in standard \LaTeX{}, the \cs{label} command wrote a \cs{newlabel} declaration into +the \texttt{.aux} file and stored two values in +the second argument of this \cs{newlabel} command: +\cs{@currentlabel}, which normally contains the state of the current +counter and \cs{thepage} for the current page number. + +The packages \pkg{hyperref} and +\pkg{nameref} then patched the \cs{label} command to store five values instead. +In addition to the above they saved \cs{@currentlabelname}, which normally contains the +current title text and can be retrieved with \cs{nameref}, and +\cs{@currentHref}, which is the name of the destination needed to create an +active link. The fifth argument was only used if external +references were loaded with the \pkg{xr-hyper} package. + +Starting with this release, the number of values stored in \cs{newlabel} has been unified. +\cs{label} now writes a +\cs{newlabel} command that always contains five values in the second argument (each in a brace group): +\cs{@currentlabel}, \cs{thepage}, \cs{@currentlabelname}, +\cs{@currentHref}, and \cs{@kernel@reserved@label@data} (which is reserved for the kernel). + +Additionally, a hook with the name \texttt{label} has been +added. It takes one argument: the label string. +Code added to the hook can refer to this argument with~\verb+#1+. +The hook is executed directly before the \cs{label} command writes to the \texttt{.aux} file +but \emph{after} the \cs{@bsphack} command has done its spacing magic, and it is located \emph{inside} a group; thus, its code only affects the write operation. + +\section{Code improvements} + +\subsection{Performance in checking file existence} + +The addition of hooks, etc., to file operations had a side effect of making +multiple checks that the file existed. In larger documents using +many files, these file system operations caused non-trivial performance +impact. We now cache the existence of files, such that these repeated filesystem +calls are avoided. + +\subsection{\pkg{doc}: Handle \texttt{\textbackslash\textvisiblespace} correctly in the index} + +Due to some problems in the code it wasn't possible to prevent +\verb*=\ = from showing up in the index\Dash \verb=\DoNotIndex{\ }=, etc.\ had no effect. This has now been corrected. +% +\githubissue{943} + + +\subsection{\pkg{doc}: Support the \pkg{upquote} package} + +The default quote and backquote characters in typewriter fonts are +typographical quotes, e.g., the input +\begin{verbatim} + \verb/`prog 'my input'`/ +\end{verbatim} + is rendered as \verb/`prog 'my input'`/ and not as +% +\begingroup % code to mimic upquote.sty +\catcode`'=\active +\catcode``=\active +\makeatletter +\g@addto@macro\@noligs + {\let'\textquotesingle + \let`\textasciigrave + \ifx\encodingdefault\upquote@OTone + \ifx\ttdefault\upquote@cmtt + \def'{\char13 }% + \def`{\char18 }% + \fi\fi} +\endgroup +% +\verb/`prog 'my input'`/ as preferred by many programmers. + +This can be adjusted, for example, with the \pkg{upquote} package, +which results in the second output. However, for historical reasons +\pkg{doc} had its own definition of \cs{verb} and \env{verbatim} and +as a consequence the two packages did not cooperate. This has now +been fixed and loading \pkg{upquote} together with \pkg{doc} has the +desired effect. +% +\githubissue{953} + + +\subsection{Default definition for \cs{do}} + +The command \cs{do} with its nice public name is in reality an +internal command inherited from plain \TeX{} for list +processing. However, it only got a definition when +\verb=\begin{document}= was executed, with a result that a user +definition in the preamble was unconditionally overwritten at this +point. To properly alert the user that this command is not freely +available we now make a definition in the format, so that +\cs{newcommand} and friends produce a proper error message instead of +allowing a definition that doesn't last. +% +\githubissue{975} + + + + +\subsection{New key for \env{filecontents}} + +The \env{filecontents} environment warns on the terminal if a file +gets overwritten even if that is intentional, +e.g., when you write a temporary file over and over again. To make +the warning less noisy in this case we added a new \texttt{nowarn} key +that redirects the overwriting warning to the transcript file. We +think that some record of the action is still required to help with +debugging, thus it is not completely silenced. The warning that +nothing gets written, because the file already exists (and the +\texttt{force} key was not used), is not altered and still shows up on +the terminal. +% +\githubissue{958} + + +\subsection{A further hook for shipping out pages} + +Since October 2020 the shipout process offers a number of hooks to +adjust what is happening before, during, and after the +\cs{shipout}. For example, with the \hook{shipout/before} hook, packages +can reset code they have altered (e.g., \cs{catcode}s during +verbatim-like processing) and with \hook{shipout/background} and +\hook{shipout/foreground} material can be added to the pages. +Details are given in \cite{37:ltshipout-doc}. + +However, still +missing was a hook that allows a package writer to manipulate the +completed page (with foreground and background attached) just before +the actual shipout happens. +For this we now provide the additional hook \hook{shipout}. One +use case (sometimes needed in print production) is to mirror the +whole page via \cs{reflectbox} including all the extra data that may +have been added into the fore- or background. +% +\githubissue{920} + + + +\subsection{Displaying release information in the \texttt{.log}} + +\LaTeX{} displays its release information at the very beginning of the +\LaTeX{} run on the terminal, and also writes it to the transcript file +if that is already opened at this point. While this is normally true, +it is not the case if the \LaTeX{} run was started passing additional +\TeX{} code on the command line, e.g., +\begin{verbatim} +pdflatex '\PassOptionsToClass{11pt}{article} + \input{myarticle}' +\end{verbatim} +In this case the release information is displayed when +\cs{PassOptionsToClass} is processed but the transcript file is only +opened when the output file name is known, i.e., after \cs{input} has +been seen, and as a result the release information is only shown on +the terminal. + +To account for this scenario, we now repeat the release information +also at the very end of the transcript file where we can be sure that +it is open and ready to receive material. +% +\githubissue{944} + + + + + +\section{Bug fixes} + +\subsection{Incompatibility between \pkg{doc} and \pkg{unicode-math}} + +The \pkg{unicode-math} package alters the catcode of \verb=|= but does +not adjust its value for use in \pkg{doc}, with the result that +\enquote{or} modules, i.e., $\langle A | B \rangle$ are displayed in a +strange way. This is now fixed with some firstaid code that will +eventually be moved into \pkg{unicode-math}. +% +\githubissue{820} + + +\subsection{A fix for \cs{hspace}} + +The change to \cs{hspace}, done in 2020 to make it \pkg{calc}-aware, +had the unfortunate side effect that starting a paragraph with +\cs{hspace} would result in the execution of \cs{everypar} inside a +group (i.e., any local changes would immediately be revoked, breaking, +for example, \pkg{wrapfig} in that special situation). +% +This got fixed with the 2022-11 PL1 hotfix, so was already corrected in +the previous release, but is only now documented in the newsletter. +% +\githubissue{967} + +\subsection{Ensure that \cs{cs} is defined in \cls{ltxdoc}} + +The class \cls{ltxdoc} defined the command \cs{cs} to typeset a +command name with a backslash in front. This definition was moved to +the \pkg{doc} package itself. This meant that it was suddenly missing +when reverting to the old \pkg{doc} package implementation via the +class option \texttt{doc2}. This has now been corrected. +% +\githubissue{981} + + + +\subsection{Improve spacing at top of \env{minipages}} + +A list and several other document elements add some vertical space in +front of them. However this should not happen at the beginning of a +box (such as a \env{minipage}) and normally it doesn't, because +\TeX{} automatically drops such space at the start of a vertical +list. However, if there is some invisible material, such as a +\cs{color} command, a \pkg{hyperref} anchor, a \cs{write} or +other such items, then the list is no longer empty and \TeX{} no longer +drops the vertical space. + +With the new paragraph handling introduced in 2021 it is now finally +possible to detect and avoid this problem and apply appropriate +counter measures so that from now on the spacing will always be +correct. +% +\githubissue{989} + + +\subsection{A fix for \cs{NewCommandCopy} and \cs{ShowCommand}} + +When copying and showing definitions of (non-expandable) document commands +(a.k.a.\ commands defined by \cs{NewDocumentCommand} and friends) containing empty +or only \texttt{m}-type arguments, these commands were wrongly recognized as +expandable ones. +This is fixed in the present \LaTeX{} release. +% +\githubissue{1009} + +\subsection{Corrections for switching math version} +Some internal code improvements improve support for switching math version +when nested within an outer math expression. +This will improve \cs{boldsymbol} and \cs{bm} and similar commands. +% +\githubissue{1028} + +\subsection{Allow par as a filename} +\verb|\input{par}| or \verb|\includegraphics{par}| could give spurious +errors. This has been fixed by making an internal command \cs{long}. +% +\githubissue{942} + +\subsection{Correct setting of \cs{endlinechar} in \texttt{+v} arguments} +In the particular case of a document command with a \texttt{+v}-type +argument used inside \cs{ExplSyntaxOn}\texttt{/Off}, newlines would be +misinterpreted as spaces because the value of \cs{endlinechar} was +set too late. This has been fixed, and now newlines are correctly +translated to ``\verb|the character ^^M|''. +% +\githubissue{876} + +\subsection{Correct handling of hooks with only `next' code} +When \cs{AddToHookNext} was used on a not-yet-declared hook, that hook +would be incorrectly identified as empty by \cs{ShowHook}. Also, if +that hook was later declared, that `next' code would not be executed. +This has been fixed by correctly initializing the hook structure when +\cs{AddToHookNext} is used. +% +\githubissue{1052} + +\subsection{Ignoring space after \texttt{\$\$}} +Space is normally ignored after a closing \texttt{\$\$}, +but internal \LaTeX{} font handling code could interfere if +\cs{eqno} was used. \cs{eqno} and \cs{leqno} have been redefined +to add \cs{ignorespaces} after the math group. +% +\githubissue{1059} + +\section{Documentation improvements} + +\subsection{Updates to the guides} + +When \LaTeXe{} was released, the team provided documentation for both document +authors and package/class developers in the two files \texttt{usrguide} and +\texttt{clsguide}. Over time, the team have augmented these documents as new +methods have been added to the kernel. However, they retained their structure +as assuming familiarity with \LaTeX{}~2.09. This meant that for new users, +there was material which is no longer relevant, and less clarity than desirable +regarding the approaches that are recommended today. + +The two files have now been (partially) re-written, with the versions available +previously now frozen as \texttt{usrguide-historic} and \texttt{clsguide-historic}. +More material has been carried forward in the class/package guide than in the +user guide, but both are worth a re-read by experienced \LaTeX{} users. + + + +\subsection{Displaying the exact release dates for \LaTeX{}} + +In some situations it is necessary to find out the exact release dates +for older versions of the \LaTeX{} format, for example, when you need +to use different code in a package depending on the availability of a +certain feature and you therefore want to use +\cs{IfFormatAtLeastTF}\texttt\{\meta{date}\texttt\} or the +rather horrible construction \verb/\@ifl@t@r\fmtversion{/\meta{date}\texttt\}, +if you +want to cater for formats that are older than 2020. + +Or you know that your package is definitely not going to work with a +format before a certain \meta{date}, in which case you could use +\verb/\NeedsTeXFormat{LaTeX2e}[/\meta{date}\texttt] to ensure that +users are alerted if their format is too old. + +The big problem is knowing the exact \meta{date} to put into such +commands; in the past, that was not that easy to find. You could have +looked in the file \file{changes.txt}, but that is hidden somewhere +in your installation and if you try +\verb/texdoc -l changes.txt/ you get more than thirty results and the %* +right file is by no means the first. + +Yukai Chou (\textsf{@muzimuzhi}) kindly provided a patch for this, so that we now have +the exact dates for each \LaTeX{} format listed in an easy to remember +place: in \file{ltnews.pdf} and that file conveniently also contains all major +features and changes to \LaTeX{} over the years\Dash one of which is +most likely the reason you need the \meta{date} in the first +place. + +The date is now given in parentheses in the newsletter title, thus this +newsletter tells you that on +% +\makeatletter +\mbox{\expandafter\@gobblenonyear\@year\@nil + -\@julianmonthtonum\@month-\two@digits\@day} +\makeatother +% +the command +\cs{NewEnvironmentCopy}, a new \texttt{shipout} hook, etc.\ was made +available. And looking into \file{ltnews.pdf} you can now easily find +out that the \LaTeX3 programming layer was added on 2020-02-02 +(because the date was so nice) and not on the first of the month. +% +\githubissue{982} + +\subsection{Fresh from the press:\ \enquote{The \LaTeX{} Companion, third~edition} is now in print} + +The third edition of \emph{The \LaTeX{} Companion} is now +available. This is the result of five years of careful work and we hope +that it will provide our readers with all the information they need to +successfully navigate the \LaTeX{} ecosystem and efficiently produce +beautiful documents. + +Since the publication of the last edition (2004), a lot has happened in +the \LaTeX{} world and thus a complete rewrite was necessary. All +chapters have been thoroughly revised, and in many cases significantly +extended, to describe new important functionality and features. More +than 5,000 add-on packages have been analyzed in detail, out of which +roughly 10\% have been chosen for inclusion in \emph{The \LaTeX{} +Companion}. All important aspects of these packages are described to +provide the user once again with a satisfying one-stop–shop experience +for the decade to come. + +To cover what we thought worth describing today, the book nearly +doubled in size. The print edition is therefore produced as a +two-volume set and sold as a bundle. Both volumes come as hardcover +with ribbons to easily mark pages in the book. + +To give you an idea of what is covered in the third edition you can +find some excerpts at +\begin{quote} +\url{https://www.latex-project.org/news/2023/03/17/TLC3} +\end{quote} + +The edition is also available as an eBook (Parts~I and~II combined) +consisting of PDF and ePub format, without DRM\@. Finally, the publisher +offers the combination of the printed books and the digital versions at +a very attractive price not available anywhere else. + +%% bb -- add reference to TUGboat review here + + +%\section{Changes to packages in the \pkg{amsmath} category} + +%\section{Changes to packages in the \pkg{graphics} category} + +\section{Changes to packages in the \pkg{tools} category} + + +\subsection{\pkg{multicol}: Better support for CJK languages} + +The default minimum depth of each column in a \env{multicols} +corresponds to the depth of a \enquote{p} in the current font. This +helps to get some uniformity if rules are used between the columns and +makes sense for Latin-based languages. Until now it was hard-wired, +but for CJK (Chinese/Japanese/Korean) languages it is better to use a zero depth, because there +all characters have the same height and depth. And even with +Latin-based languages one might want to use the depth of a \cs{strut} +or that of a parenthesis. So we now offer a way to adjust this while +maintaining backward compatibility: redefine +\cs{multicolmindepthstring} to hold whatever you want to get measured +for its depth (the width is not relevant). +% +\githubissue{698} + + +\subsection{\pkg{multicol}: Fix handling of nested environments} + +If \env{multicols} environments have been nested into each other (the +inner one boxed) it could fail if the boxed environment appeared near a +page break. The problem was that the output routine was called while +the \cs{hsize} was still altered to fit the column width of the inner +\env{multicols} --- thereby messing up the placement of columns of the +page. This has now been fixed. +% +\githubissue{1002} + + + +%\medskip + +\begin{thebibliography}{9} + +%\fontsize{9.3}{11.3}\selectfont + +\bibitem{37:ltshipout-doc} Frank Mittelbach, \LaTeX{}~Project~Team: + \emph{The~\texttt{\upshape ltshipout} documentation}.\\ + Run \texttt{texdoc} \texttt{ltshipout-doc} to view. + +\bibitem{37:lthooks-doc} Frank Mittelbach, Phelype Oleinik, \LaTeX{}~Project~Team: + \emph{\LaTeX's hook management}.\\ + Run \texttt{texdoc} \texttt{lthooks-doc} to view. + +%\bibitem{37: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{37:source2e} +% \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\ +% \url{https://latex-project.org/help/documentation/} + +%\bibitem{37: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{37:ltnews32} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 32}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews32.pdf} +% +%\bibitem{37:ltnews34} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 34}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews34.pdf} +% +%\bibitem{37:ltnews35} \LaTeX{} Project Team: +% \emph{\LaTeXe{} news 35}.\\ +% \url{https://latex-project.org/news/latex2e-news/ltnews35.pdf} +% +%\bibitem{37:fntguide} \LaTeX{} Project Team: +% \emph{\LaTeXe{} font selection}.\\ +% \url{https://latex-project.org/help/documentation/} +% +%\bibitem{37: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/Master/texmf-dist/doc/latex/base/ltpara-code.pdf b/Master/texmf-dist/doc/latex/base/ltpara-code.pdf Binary files differindex 2ad8d90eabd..4ca5193aa22 100644 --- a/Master/texmf-dist/doc/latex/base/ltpara-code.pdf +++ b/Master/texmf-dist/doc/latex/base/ltpara-code.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltpara-doc.pdf b/Master/texmf-dist/doc/latex/base/ltpara-doc.pdf Binary files differindex 31ac4d07144..1f47fc92db1 100644 --- a/Master/texmf-dist/doc/latex/base/ltpara-doc.pdf +++ b/Master/texmf-dist/doc/latex/base/ltpara-doc.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltshipout-code.pdf b/Master/texmf-dist/doc/latex/base/ltshipout-code.pdf Binary files differindex efc6444c482..6209463f899 100644 --- a/Master/texmf-dist/doc/latex/base/ltshipout-code.pdf +++ b/Master/texmf-dist/doc/latex/base/ltshipout-code.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltshipout-doc.pdf b/Master/texmf-dist/doc/latex/base/ltshipout-doc.pdf Binary files differindex a2d210dda00..86bd5776038 100644 --- a/Master/texmf-dist/doc/latex/base/ltshipout-doc.pdf +++ b/Master/texmf-dist/doc/latex/base/ltshipout-doc.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltx3info.pdf b/Master/texmf-dist/doc/latex/base/ltx3info.pdf Binary files differindex 368f3162ad8..1756ab795ea 100644 --- a/Master/texmf-dist/doc/latex/base/ltx3info.pdf +++ b/Master/texmf-dist/doc/latex/base/ltx3info.pdf diff --git a/Master/texmf-dist/doc/latex/base/ltx3info.tex b/Master/texmf-dist/doc/latex/base/ltx3info.tex index 13231da8180..096fa2db9a3 100644 --- a/Master/texmf-dist/doc/latex/base/ltx3info.tex +++ b/Master/texmf-dist/doc/latex/base/ltx3info.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/ltxdoc.pdf b/Master/texmf-dist/doc/latex/base/ltxdoc.pdf Binary files differindex aae8871c68d..e3c23c97ec5 100644 --- a/Master/texmf-dist/doc/latex/base/ltxdoc.pdf +++ b/Master/texmf-dist/doc/latex/base/ltxdoc.pdf diff --git a/Master/texmf-dist/doc/latex/base/makeindx.pdf b/Master/texmf-dist/doc/latex/base/makeindx.pdf Binary files differindex 139accd18f7..677cf80b007 100644 --- a/Master/texmf-dist/doc/latex/base/makeindx.pdf +++ b/Master/texmf-dist/doc/latex/base/makeindx.pdf diff --git a/Master/texmf-dist/doc/latex/base/manifest.txt b/Master/texmf-dist/doc/latex/base/manifest.txt index d63945fa0e3..22791a24949 100644 --- a/Master/texmf-dist/doc/latex/base/manifest.txt +++ b/Master/texmf-dist/doc/latex/base/manifest.txt @@ -27,7 +27,8 @@ % sample2e.tex -- Sample LaTeX input file. % small2e.tex -- Small sample LaTeX input file. % -% clsguide.tex -- How to write class files. +% clsguide.tex -- How to write class files. +% clsguide-historic.tex -- How to write class files with a focus on moving from 2.09. % cfgguide.tex -- Guide to using `.cfg' files to configure LaTeX. % cyrguide.tex -- Guide to using cyrillic languages in LaTeX. % encguide.tex -- Guide to font encodings. @@ -71,12 +72,15 @@ % ltnews33.tex -- What was new in the release dated 2021/06. % ltnews34.tex -- What was new in the release dated 2021/11. % ltnews35.tex -- What was new in the release dated 2022/06. +% ltnews36.tex -- What was new in the release dated 2022/11. +% ltnews37.tex -- What was new in the release dated 2023/06. % % ltx3info.tex -- Information about the LaTeX3 project. % % lamport-manual.err -- Errata for the LaTeX Manual book, second edition. % tlc2.err -- Errata for the LaTeX Companion, second edition. +% tlc3.err -- Errata for the LaTeX Companion, third edition. % lb2.err -- Errata for the LaTeX-Begleiter, 2te erw. Auflage (German). % lgc2.err -- Errata for the LaTeX Graphics Companion, second edition. % webcomp.err -- Errata for the LaTeX Web Companion. diff --git a/Master/texmf-dist/doc/latex/base/modguide.pdf b/Master/texmf-dist/doc/latex/base/modguide.pdf Binary files differindex f74e0c15f78..92c662c2f30 100644 --- a/Master/texmf-dist/doc/latex/base/modguide.pdf +++ b/Master/texmf-dist/doc/latex/base/modguide.pdf diff --git a/Master/texmf-dist/doc/latex/base/modguide.tex b/Master/texmf-dist/doc/latex/base/modguide.tex index 3474d8a5fc1..332b609ab31 100644 --- a/Master/texmf-dist/doc/latex/base/modguide.tex +++ b/Master/texmf-dist/doc/latex/base/modguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -42,7 +42,7 @@ \author{\copyright~Copyright 1995, \LaTeX\ Project Team.\\ All rights reserved.% - \footnote{This file may distributed and/or modified under the + \footnote{This file 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. See the source texttt{modguide.tex} for full details.}% diff --git a/Master/texmf-dist/doc/latex/base/nfssfont.pdf b/Master/texmf-dist/doc/latex/base/nfssfont.pdf Binary files differindex 4b657e0f39e..d08548d0eb6 100644 --- a/Master/texmf-dist/doc/latex/base/nfssfont.pdf +++ b/Master/texmf-dist/doc/latex/base/nfssfont.pdf diff --git a/Master/texmf-dist/doc/latex/base/proc.pdf b/Master/texmf-dist/doc/latex/base/proc.pdf Binary files differindex c99e5989d7d..8f28a58bdcc 100644 --- a/Master/texmf-dist/doc/latex/base/proc.pdf +++ b/Master/texmf-dist/doc/latex/base/proc.pdf diff --git a/Master/texmf-dist/doc/latex/base/slides.pdf b/Master/texmf-dist/doc/latex/base/slides.pdf Binary files differindex cf5f4f9794a..f294fcc6a66 100644 --- a/Master/texmf-dist/doc/latex/base/slides.pdf +++ b/Master/texmf-dist/doc/latex/base/slides.pdf diff --git a/Master/texmf-dist/doc/latex/base/slifonts.pdf b/Master/texmf-dist/doc/latex/base/slifonts.pdf Binary files differindex 49fcdd0ada4..4598e87180e 100644 --- a/Master/texmf-dist/doc/latex/base/slifonts.pdf +++ b/Master/texmf-dist/doc/latex/base/slifonts.pdf diff --git a/Master/texmf-dist/doc/latex/base/source2e.pdf b/Master/texmf-dist/doc/latex/base/source2e.pdf Binary files differindex b837332107a..2aa83c36240 100644 --- a/Master/texmf-dist/doc/latex/base/source2e.pdf +++ b/Master/texmf-dist/doc/latex/base/source2e.pdf diff --git a/Master/texmf-dist/doc/latex/base/source2e.tex b/Master/texmf-dist/doc/latex/base/source2e.tex index 797304e8d65..873daebb4de 100644 --- a/Master/texmf-dist/doc/latex/base/source2e.tex +++ b/Master/texmf-dist/doc/latex/base/source2e.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex/base/syntonly.pdf b/Master/texmf-dist/doc/latex/base/syntonly.pdf Binary files differindex 6c9ca642735..9d15389b26a 100644 --- a/Master/texmf-dist/doc/latex/base/syntonly.pdf +++ b/Master/texmf-dist/doc/latex/base/syntonly.pdf diff --git a/Master/texmf-dist/doc/latex/base/tlc2.err b/Master/texmf-dist/doc/latex/base/tlc2.err index 8925a8bee1e..5b01ff0513e 100644 --- a/Master/texmf-dist/doc/latex/base/tlc2.err +++ b/Master/texmf-dist/doc/latex/base/tlc2.err @@ -1,4 +1,4 @@ -\newcommand\erratafiledate{2022-01-03} +\newcommand\erratafiledate{2023-01-08} \def\comando#1{\texttt{\string#1}} @@ -359,7 +359,7 @@ you own by changing the configuration in the file \texttt{\jobname.cfg}. \end{center} Any mistake found and reported is a gain for all readers of our book. -For this reason Addison-Wesley and the authors offer a prize (for 6 +For this reason Addison-Wesley and the authors offer a prize (for 5 periods) to the eligible person who finds the largest number of bugs during that period (in case of a draw a random choice will be made between all those with the largest number of findings). @@ -385,7 +385,7 @@ Contest period ends & Winner \\[4pt] 2005/10 & Daniel Alonso i Alemany & 13 suggestions\\ 2006/04 & Michael Schutte & 2 suggestions\\ 2008/05 & Brooks Moses & 1 suggestion \\ -\ldots & -- final draw eventually -- + & -- final draw was 2008/05 -- \end{tabular} \end{center} \end{list} @@ -2185,6 +2185,8 @@ Change: ``The unaccented ASCII Latin letters and Arabic |\dag| and |\ddag| are |\mathord|s not |\mathbin| as claimed in table 8.13. + Frank: This is actually correct nowadays (maybe it wasn't in 2008) + \seriouserroronpage{529}{table 8.12, l.3}{JGr}{2004/06/10}{2} \verb=\mathring{x}= is missing its accent. @@ -2202,6 +2204,9 @@ Change: ``The unaccented ASCII Latin letters and Arabic aren't (as claimed in legend) synonyms of |\dagger| and |\ddagger| respectively. + Frank: This is actually correct nowadays (maybe it wasn't in 2008) + + \erroronpage{531}{table 8.15}{BMo/FMi}{2004/05/21}{2} The commands starting with |\var...| are only partially in blue to indicate their relationship with those commands missing the ``var'' in their @@ -2236,10 +2241,6 @@ Change: ``The unaccented ASCII Latin letters and Arabic Various deviations from alphabetical sort order of the table entries. -\erroronpage{553}{para 3, l.1}{EOl}{2022/01/02}{} - Missing letter: ``sup\u{p}ressing'' - - \iffalse % more blue align stuff \erroronpage{534}{page}{FMi}{2004/04/23}{} Printing problem: blue color not properly aligned (horizontally). @@ -2332,6 +2333,10 @@ Plural: ``Clearly, 8 bits \u{are} not sufficient\ldots'' respectively %(ref: TB 14-3-252-259) +\erroronpage{553}{para 3, l.1}{EOl}{2022/01/02}{} + Missing letter: ``sup\u{p}ressing'' + + \seriouserroronpage{553}{para 4}{UFi}{2004/06/03}{2} Replace with: ``Another popular shorthand is |"-|, which indicates a diff --git a/Master/texmf-dist/doc/latex/base/tlc2.pdf b/Master/texmf-dist/doc/latex/base/tlc2.pdf Binary files differindex e82f587b19c..3d93429fbc3 100644 --- a/Master/texmf-dist/doc/latex/base/tlc2.pdf +++ b/Master/texmf-dist/doc/latex/base/tlc2.pdf diff --git a/Master/texmf-dist/doc/latex/base/tlc3.err b/Master/texmf-dist/doc/latex/base/tlc3.err new file mode 100644 index 00000000000..b7e2c1c0fde --- /dev/null +++ b/Master/texmf-dist/doc/latex/base/tlc3.err @@ -0,0 +1,848 @@ +\newcommand\erratafiledate{2023-05-30} + +\def\comando#1{\texttt{\string#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% To produce a printed version of this errata file run this file through +% LaTeX. It will unpack a small class file (if not already present) and +% a configuration file with the extension .cfg. You might want to modify +% the setting in this configuration file to print only a partial errata +% suitable for your printed revision of this book, see details in the +% .cfg file. +% +% The current version of this file can be found at: +% +% https://www.latex-project.org/help/books/ +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\begin{filecontents}{ttcterrata.cls} +%% +%% Copyright (C) 1997-2021 Frank Mittelbach +%% This class file is licensed under LPPL latest version; +%% see https://www.latex-project.org/lppl +% +% +% It sets up a few commands used to format the errata entries for books in the +% Addison-Wesley Series: +% +% Tools and Techniques for Computer Typesetting +% +% hence the name. However, anybody who likes to use it is free to apply it for +% errata files of other books. +% +% Changes: +% +% v1.0a - changed name from errata.cls to ttcterrata.cls +% v1.0b - added \arraybackslash +% v1.0c - and took it out again and used \tabularnewline instead + +\ProvidesClass{ttcterrata} + [2021/08/03 v1.0c Mini class for errata files; subject to change (FMi)] + +\LoadClass{article} + +\setcounter{secnumdepth}{-1} +\addtolength\textwidth{5cm} +\addtolength\oddsidemargin{-3cm} + +\addtolength\textheight{36pt} + +\RequirePackage{shortvrb} +\MakeShortVerb{\|} + +\RequirePackage{array,longtable} +\RequirePackage{multicol} + + +\newcommand\erratagetnumber{} +\def\erratagetnumber#1/#2/#3\erratagetnumber{#1#2#3} + + +\newcommand\gobbleerrata{% + \setbox\@tempboxa\vbox\bgroup + \let\endgobble\egroup + \let\hideamp\relax + \let\\\relax + \let\tabularnewline\relax + \let\par\@@par} + +\newcommand*\hideamp{&} + +\let\endgobble\relax + + +\newcommand\erratastartdate{} +\newcommand\myprinting{1} + + +\newcommand\doweprint[2]{% + \ifnum \myprinting < \if!#2!1000 \else \ifx s#2 1000\else#2 \fi\fi + \ifnum \expandafter\erratagetnumber\erratastartdate\erratagetnumber < + \erratagetnumber#1\erratagetnumber \relax + \@tempswatrue + \else + \@tempswafalse + \fi + \else + \@tempswafalse + \fi +} + + + +\newcommand\includedentries{entries after = \erratastartdate} +\newcommand\printedentries{between \erratastartdate\space and} + +\newcommand\showallerrors{% + \renewcommand\includedentries{all errata entries}% + \renewcommand\printedentries{up to} + \renewcommand\doweprint[2]{\@tempswatrue}} + + +\newcommand\displayrevisionfix[2]{% + \if!#2!\textbf{#1}\else\textit{#1}\rlap{\textsuperscript{#2}}\fi} + +\newcommand\norevisionnumbers{% + \renewcommand\displayrevisionfix[2]{\textbf{##1}}} + +\IfFileExists{\jobname.cfg} + { + \input{\jobname.cfg} + \typeout{***************************************************} + \typeout{*} + \typeout{* Configuration file for \jobname.err found } + \typeout{*} + \typeout{***************************************************} + \AtEndDocument{ + \typeout{***************************************************} + \typeout{*} + \typeout{* If you wish to generate an errata listing} + \typeout{* containing only errors found after a certain revision} + \typeout{* and/or only errors found after a certain date} + \typeout{* modify the information stored in \jobname.cfg} + \typeout{*} + \typeout{* Current settings are:} + \typeout{*} + \typeout{* \@spaces printing of your book = \myprinting} + \typeout{* \@spaces include \includedentries} + \typeout{*} + \typeout{***************************************************} + }} + {} + +%% \erroronpage <page> <line info> <contributor> <date> <fixed in revision> + +\newcommand\erroronpage[5]{% + \endgobble + \doweprint{#4}{#5}% + \if@tempswa + \typeout{Typesetting entry #1 #2 #3 #4}% + \else + \typeout{Ignoring entry #1 #2 #3 #4}% + \expandafter\gobbleerrata + \fi + \hideamp \tabularnewline + \displayrevisionfix{#1}{#5} + \hideamp #2 \hideamp (\textsf{#3}) \hideamp +} + +\newcommand\seriouserroronpage[5]{% + \endgobble + \doweprint{#4}{#5}% + \if@tempswa + \typeout{Typesetting entry #1 #2 #3 #4}% + \else + \typeout{Ignoring entry #1 #2 #3 #4}% + \expandafter\gobbleerrata + \fi + \hideamp \tabularnewline + \fbox{\bfseries !!}\hfill + \displayrevisionfix{#1}{#5} + \hideamp #2 \hideamp (\textsf{#3}) \hideamp +} + +\newcommand\CHAPTER[1]{\endgobble + &\tabularnewline[4pt]% + \multicolumn{4}{l}{\framebox[10cm][l]{\textbf{\normalsize\strut#1}}} \tabularnewline} + +\newenvironment{erratalist} + {\begin{longtable}{r>{\raggedright}p{2cm}l>{\raggedright}p{10cm}l}} + {\endgobble\end{longtable}} + +\newcommand\erratatitle[2] + {\begin{center}\LARGE\bfseries + Errata list for #1\\[5pt](\myprinting.\ printing)\\[10pt] + \small Includes all entries found \printedentries\space #2\\ + (For other periods/print runs reprocess this document + with different config settings) + \end{center}% + \markright{Errata for #1 (\printedentries\space #2)}% + \thispagestyle{plain}% + \vspace{20pt}} + +\pagestyle{myheadings} + +\AtBeginDocument{\small} + +\setlength\parindent{0pt} +\setlength\parskip{2pt} + +\newcommand\contributor[2]{\makebox[1cm][l]{\sffamily#1} #2\par} + +% some special shortcuts overwriting existing commands: + +\let\u\underline +\renewcommand\>{$\to$} + +%%% some code suggested by Thorsten Hansen to count the number of +%%% contributions by individuals (will work only if we do not get +%%% too many :-) + +\def\count@contributors#1/#2/#3\@nil{ + \@ifundefined{c@#1}{\newcounter{#1}}{}\stepcounter{#1}% +%%% also count secondary: +%%% \@ifundefined{c@#2}{\newcounter{#2}}{}\stepcounter{#2}% +} + +\renewcommand\erroronpage[5]{% + \count@contributors#3/secondary/\@nil + \endgobble + \doweprint{#4}{#5}% + \if@tempswa + \typeout{Typesetting entry #1 #2 #3 #4}% + \else + \typeout{Ignoring entry #1 #2 #3 #4}% + \expandafter\gobbleerrata + \fi + \hideamp \tabularnewline + \displayrevisionfix{#1}{#5} + \hideamp #2 \hideamp (\textsf{#3}) \hideamp +} + +\renewcommand\seriouserroronpage[5]{% + \count@contributors#3/secondary/\@nil + \endgobble + \doweprint{#4}{#5}% + \if@tempswa + \typeout{Typesetting entry #1 #2 #3 #4}% + \else + \typeout{Ignoring entry #1 #2 #3 #4}% + \expandafter\gobbleerrata + \fi + \hideamp \tabularnewline + \fbox{\bfseries !!}\hfill + \displayrevisionfix{#1}{#5} + \hideamp #2 \hideamp (\textsf{#3}) \hideamp +} + +\renewcommand\contributor[2]{\makebox[1cm][l]{% + \sffamily#1} #2\@ifundefined{c@#1}{}{ (\arabic{#1})}\par} + +\end{filecontents} + + +\begin{filecontents}{\jobname.cfg} +% +% +% Configuration file for the errata listing of +% +% The LaTeX Companion, Third Edition, Parts I & II +% +% +% \erratastartdate +% +% Specifies the date from which on errata entries should be listed. +% +% The format is YYYY/MM/DD. +% +% The default below ensures that all entries for a particular +% printing are typeset. +% + +\renewcommand\erratastartdate{2023/04/01} + + +% +% \myprinting +% +% Specifies which (revised) printing you own. For example, if you +% have the second printing set this to 2 so that errors already +% corrected in that printing will not appear in your errata +% listing. +% +% The default below ensures that all entries relevant to the x-th +% printing are typeset. +% +% + +\renewcommand\myprinting{1} + +% +% \norevisionnumbers +% +% Specifies that all page numbers in the errata are shown in the same +% format (bold face) irregardless of whether or not they are fixed +% in some revision. The default is to print corrected errors in +% italic and add the revision number as a superscript. + +% +% \showallerrors +% +% With this command you tell the program that all errata entries are +% supposed to be generated. This makes \myprinting and +% \erratastartdate basically obsolete so this isn't turned on by +% default. +% +% +\endinput +\end{filecontents} + + +\documentclass{ttcterrata}[2005/11/10] % we want new class + +\usepackage[T1]{fontenc} +\let\u\underline % shortcut for this file +\newcommand\meta[1]{$\langle$\textit{#1\/}$\rangle$} + +\usepackage{textcomp} + +\usepackage{url} + +\begin{document} + +\erratatitle{The \LaTeX{} Companion, Third Edition, Parts I \& II}{\erratafiledate} + + +\begin{verbatim} +@book(A-W:MF:2023, + author = {Frank Mittelbach and Ulrike Fischer}, + title = {The {\LaTeX} Companion}, + edition = 3, + note = {With contributions by Javier Bezos, Johannes Braams, and Joseph Wright}, + series = {Tools and Techniques for Computer Typesetting}, + publisher = {Addison-Wesley}, + address = {Boston, Massachusetts}, + year = 2023, + pagenums = {976 (Part I) and 1008 (Part II)}, + bibliography = {yes}, + index = {yes}, + isbn = {978-0-13-816648-9}, +) +\end{verbatim} + + +\begin{list}{}{\setlength\leftmargin{0cm}\setlength\rightmargin{3cm}} +\item[] + +This file (\texttt{\jobname.err}) can be found as part of the \LaTeX{} +distribution and its latest version is maintained on the \LaTeX{} +project site at \texttt{https://www.latex-project.org/help/books/\jobname.err} +where you will also find extracts of the book. + +The first column in the table shows the page number of the errata +entry. Superscript numbers in the first column refer to the printed +revision in which this entry was corrected (\textit{s} indicates a +correction in the sources only). The second +column gives the precise location (negative line or paragraph numbers +are counted from the bottom of the page). The third column shows the +first finder of the problem. + +You can customize this list to only show errata related to the printing +you own by changing the configuration in the file \texttt{\jobname.cfg}. + +\begin{center} + \Large \bfseries To Err is Human --- Bug Contest +\end{center} + +Any mistake found and reported is a gain for all readers of our book. +For this reason Addison-Wesley and the authors offer a prize (for 5 +periods) to the eligible person who finds the largest +number of bugs during that period (in case of a draw a random choice +will be made between all those with the largest number of findings). +A person can receive at most one prize, ever; errors found by any of +the authors do not count. + +Each prize is a free choice of any single computing book found on the +Addison-Wesley/Pearson web site: +\texttt{https://www.informit.com} (that +is, no boxed sets or multiple volume offers). + + +As usual, the authors and publisher reserve the right to make various +decisions such as whether a reported feature is an error for +competitive purposes or whether similar features count as a single or +multiple errors. --- +Good luck! + +\begin{center} +\begin{tabular}{clr} +Contest period ends & Winner \\[4pt] +2023/?? & & ??? suggestions\\ +\end{tabular} +\end{center} + + +Due to its size the third edition of \textit{The \LaTeX{} Companion} is printed +as a two-volume set. The digital version, however, is provided as a +single PDF or ePub. This means that a small fraction of the digital +content differs from that of the printed version: there is only a +single font matter, a single bibliography, and a single index, whereas +in the printed books these are separated out. However, all versions share the main +matter (down to the page numbering) so most of the errata applies to +all versions, but a few only to the digital and some only to the +printed version. Thus, we end up with three separate lists. + + +\end{list} + +%\newpage + + +%<-------------------------- + +\newcommand\BibTeX{\textsc{Bib}\TeX} +\newcommand\cs[1]{\texttt{\textbackslash #1}} +\newcommand\env[1]{\texttt{#1}} +\newcommand\pkg[1]{\textsf{#1}} + +\section*{Errata for the print version (not applicable to the digital version)} + +The printed books differ from the digital version in that the +bibliography is split across both volumes (with a few repeats) and that +the font matter of each volume has its own table of contents and list +of figures and tables. Therefore these parts have different page +numbers and you will see similar errata entries for both print and +digital differing only in that respect. + +\begin{erratalist} + +\CHAPTER{Front matter (Part I)} + +\erroronpage{I-ix\ldots I-xvi}{}{FMi}{2023/04/04}{s} +Dot leaders have been changed on all sections. + +\erroronpage{I-xvii}{chapter head}{FMi}{2023/04/04}{s} +formulas \> \u{F}ormulas + +\erroronpage{I-xvii}{chapter head}{FMi}{2023/04/04}{s} +documents \> \u{D}ocuments + +\erroronpage{I-xvii}{chapter head}{FMi}{2023/04/04}{s} +beyond \> \u{B}eyond + +\erroronpage{I-xx\ldots I-xxi}{}{FMi}{2023/04/04}{s} +Dot leaders have been changed on all sections. + +\CHAPTER{Bibliography (Part I)} + +\erroronpage{I-783}{[55], l.-2}{FMi}{2023/04/04}{s} +all \> \u{them} all + +\erroronpage{I-785}{[73], l.-2}{kb/bb}{2023/04/04}{s} +the go-forward way for \LaTeX-coding \> \\ +the way for \LaTeX{} coding going forward + +\erroronpage{I-786}{[87], l.2}{kb/bb}{2023/04/04}{s} +p. \> pp. + +\erroronpage{I-786}{[88], l.2}{kb/bb}{2023/04/04}{s} +p. \> pp. + +\erroronpage{I-787}{[92], l.2}{kb/bb}{2023/04/04}{s} +Add: Vancouver, 1999 + +\erroronpage{I-788}{[100], l.3}{kb/bb}{2023/04/04}{s} +Publishing \> Publishing\u{,} + +\erroronpage{I-790}{[122], l.1}{kb/bb}{2023/04/04}{s} +In \u{ACM editor} ``Proceedings \> In ``\u{PODC'01: }Proceedings + +\erroronpage{I-790}{[122], l.1}{kb/bb}{2023/04/04}{s} +In \u{Unicode Consortium, editor} \> In + + +\CHAPTER{Front matter (Part II)} + +\erroronpage{II-x\ldots II-xxviii}{}{FMi}{2023/04/04}{s} +Dot leaders have been changed on all sections. + +\erroronpage{II-xiv}{heading}{bb/FMi}{2023/04/04}{s} +Multiple alignments: \env{align} \u{and \env{flalign}} +\>\\ +Multiple alignments: \env{align}\u{, \env{flalign}, and \env{alignat}} + +\erroronpage{II-xv}{chapter head}{FMi}{2023/04/04}{s} +formulas \> \u{F}ormulas + +\erroronpage{II-xvi}{chapter head}{FMi}{2023/04/04}{s} +documents \> \u{D}ocuments + +\erroronpage{II-xxi}{chapter head}{FMi}{2023/04/04}{s} +beyond \> \u{B}eyond + + + +\CHAPTER{Bibliography (Part II)} + +\erroronpage{II-799}{[43], l.-2}{FMi}{2023/04/04}{s} +all \> \u{them} all + +\erroronpage{II-801}{[62], l.-2}{kb/bb}{2023/04/04}{s} +the go-forward way for \LaTeX-coding \>\\ +the way for \LaTeX{} coding going forward + +\erroronpage{II-802}{[71], l.2}{kb/bb}{2023/04/04}{s} +p. \> pp. + +\erroronpage{II-802}{[72], l.2}{kb/bb}{2023/04/04}{s} +p. \> pp. + +\erroronpage{II-803}{[80], l.3}{kb/bb}{2023/04/04}{s} +Publishing \> Publishing\u{,} + + + + +\end{erratalist} + + +%<-------------------------- + +\section*{Errata for the digital version (not applicable to the print version)} + +All known errors to the digital version have already been incorporated in the product as distributed. + +%\begin{erratalist} +% +%\CHAPTER{General} +% +%\CHAPTER{Front matter} +% +%\end{erratalist} + + +%<-------------------------- + + +\section*{Errata common to the print and digital versions} + +The main matter is identical (also in page numbers) in the print and +the digital versions. Therefore most errata entries appear in this +section. + +\begin{erratalist} + + +\CHAPTER{General} + +\erroronpage{}{}{FMi}{2023/04/04}{s} +Some corrections result in index changes. These are not tracked here; +the index is always fully regenerated for new printings. + +\CHAPTER{Chapter 1 --- Introduction} + +\erroronpage{I-5}{para 4, l.4}{kb}{2023/04/04}{s} +\u{of} the bugs \> \u{with} the bugs +\\ Already corrected in the digital version. + + +\erroronpage{I-5}{para 5, l.5}{kb}{2023/04/04}{s} +not least \> \u{but} not least +\\ Already corrected in the digital version. + + +\CHAPTER{Chapter 2 --- The Structure of a \LaTeX{} Document} + +\erroronpage{I-34}{l.-1}{FMi}{2023/04/04}{s} +Moved first line of page 35 to 34. +\\ Already corrected in the digital version. + +\erroronpage{I-35}{l.1}{FMi}{2023/04/04}{s} +Moved first line of page 35 to 34. +\\ Already corrected in the digital version. + +\erroronpage{I-113}{listing}{FMi}{2023/05/14}{s} +Situation is the same in the 2023 distributions; listing output updated. +\\ Already corrected in the digital version. + + +\CHAPTER{Chapter 3 --- Basic Formatting Tools -- Paragraph \ldots} + + +\CHAPTER{Chapter 4 --- Basic Formatting Tools -- Larger \ldots} + + +\CHAPTER{Chapter 5 --- The Layout of the Page} + + +\CHAPTER{Chapter 6 --- Tabular Material} + + +\CHAPTER{Chapter 7 --- Mastering Floats} + + +\CHAPTER{Chapter 8 --- Graphics Generation and Manipulation} + +\erroronpage{I-619}{para -2, l.2}{FMi}{2023/05/30}{s} +in \u{light blue} \> in \u{red} + +\erroronpage{I-619}{exa 8-4-7}{FMi}{2023/05/30}{s} +The example uses \verb*/left color=red!20/ but this is not really +visible if the red is turned into some gray value in the book (which +is then made even lighter through \texttt{!20}). So it is better to +start from full red, i.e., \> \verb*/left color=red/ instead. +\\ Already corrected in the digital version. + +\CHAPTER{Chapter 9 --- Font Selection and Encodings} + +\erroronpage{I-669}{exa 9-3-11}{FMi}{2023/04/04}{s} +Changed line breaks in example. + +\erroronpage{I-708}{listing}{FMi}{2023/05/14}{s} +Situation is the same in the 2023 distributions; listing output updated. +\\ Already corrected in the digital version. + + +\CHAPTER{Chapter 10 --- Text and Symbol Fonts} + +\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. +\\ Already corrected in the digital version. + +\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. +\\ Already corrected in the digital version. + +\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. +\\ Already corrected in the digital version. + +\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. +\\ Already corrected in the digital version. + +\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. +\\ Already corrected in the digital version. + +\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. +\\ Already corrected in the digital version. + +\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. +\\ Already corrected in the digital version. + + + +\CHAPTER{Chapter 11 --- Higher Mathematics} + +\erroronpage{II-127}{para 1, l.5}{bb/FMi}{2023/04/04}{s} +\u{The} American Mathematical Society (AMS) \u{provides} a major +package, \pkg{amsmath}, which \u{makes} \ldots +\>\\ +\u{In the early nineties the} American Mathematical Society (AMS) +\u{provided} a major package, \pkg{amsmath}, which \u{made} \ldots +\\ Already corrected in the digital version. + +\erroronpage{II-129}{para -3, l.1}{bb/FMi}{2023/04/04}{s} +The principal documentation for these packages +\>\\ +The principal documentation for these \u{two} packages +\\ Already corrected in the digital version. + + +\erroronpage{II-129}{para -1, l.3}{bb}{2023/04/04}{s} +\u{lot} additions \> \u{many} additions +\\ Already corrected in the digital version. + + +\erroronpage{II-132}{table 11.1}{bb/FMi}{2023/04/04}{s} +Also mention \env{alignat}, \env{alignat*}, and \env{alignedat}. +\\ Already corrected in the digital version. + +\erroronpage{II-133}{para 4,l.2}{bb/FMi}{2023/04/04}{s} +Add: + +Furthermore, they move the equation tag out of the way if it would +otherwise overprint the formula. +\\ Already corrected in the digital version. + +\erroronpage{II-138}{heading}{bb/FMi}{2023/04/04}{s} +Multiple alignments: \env{align} \u{and \env{flalign}} +\> +Multiple alignments: \env{align}\u{, \env{flalign}, and \env{alignat}} +\\ Already corrected in the digital version. + +\erroronpage{II-138}{}{FMi}{2023/04/04}{s} +Moved para from 139 to end of this page. +\\ Already corrected in the digital version. + +\erroronpage{II-139}{para 1}{FMi}{2023/04/04}{s} +Moved para back to page 138. +\\ Already corrected in the digital version. + +\erroronpage{II-139}{bottom}{FMi}{2023/04/04}{s} +Add: + +Sometimes it is more convenient to explicitly specify all the +horizontal spacing yourself within the formula. For this you can use +an \env{alignat} environment. It differs from \env{align} in two ways: you have to +specify the number of \texttt{rl} pairs as an argument to the environment and +it does not add any spaces between the pairs, e.g., +\begin{verbatim} +\begin{alignat}{3} x &= y &\qquad X &= Y &\qquad a &= b+c \\ ... +\end{verbatim} +As usual, equation numbers can be altered with \cs{tag} or suppressed with \cs{notag}. +\\ Already corrected in the digital version. + + +\erroronpage{II-140}{para 1, l.2}{bb/FMi}{2023/04/04}{s} +Add: + +Do not forget to reset \cs{minalignsep} if you change it in this manner. +\\ Already corrected in the digital version. + +\erroronpage{II-140}{para 2, l.4}{bb/FMi}{2023/04/04}{s} +Add: + +You can think of them as subsidiary environments that can be used +within any of the display environments discussed so far (below we use +them inside equation). +\\ Already corrected in the digital version. + +\erroronpage{II-140}{para -1}{FMi}{2023/04/04}{s} +Paragraph moved to page 141. +\\ Already corrected in the digital version. + +\erroronpage{II-141}{}{FMi}{2023/04/04}{s} +One paragraph moved over from page 140. +\\ Already corrected in the digital version. + +\erroronpage{II-144}{para 2, l.-3}{FMi}{2023/04/04}{s} +the issue \> the \u{spacing} issue +\\ Already corrected in the digital version. + +\erroronpage{II-145}{para 2, l.1}{bb/FMi}{2023/04/04}{s} +Add: + +Another problem is that an empty line introduces an unwanted break +point in front of the display, thus \cs{predisplaypenalty} is no +longer honored. +\\ Already corrected in the digital version. + + +\CHAPTER{Chapter 12 --- Fonts in Formulas} + +\erroronpage{II-225}{heading}{FMi}{2023/04/04}{s} +Chapter title not properly capitalized. +\\ Already corrected in the digital version. + +\erroronpage{II-261}{para 3, l.3}{FMi}{2023/05/26}{s} +Yoda spoke it seems: \ldots \u{and compare we should} \> +\ldots \u{and you should compare} +\\ Already corrected in the digital version. + + +\CHAPTER{Chapter 13 --- Localizing Documents} + +\erroronpage{II-297}{heading}{FMi}{2023/04/04}{s} +Chapter title not properly capitalized. +\\ Already corrected in the digital version. + + +\CHAPTER{Chapter 14 --- Index Generation} + + +\CHAPTER{Chapter 15 --- Bibliography Generation} + +\erroronpage{II-435}{code}{FMi}{2023/05/26}{s} +\verb=\textcolor{See= \> \verb=\textcolor{blue}{See= +\\ Already corrected in the digital version. + + + +\CHAPTER{Chapter 16 --- Managing Citations} + + +\CHAPTER{Chapter 17 --- \LaTeX{} Package Documentation Tools} + + +\CHAPTER{Appendix A --- \LaTeX{} Overview for Preamble, \ldots} + + +\CHAPTER{Appendix B --- Tracing and Resolving Problems} + + +\CHAPTER{Appendix C --- Going Beyond} + +\erroronpage{II-297}{heading}{FMi}{2023/04/04}{s} +Appendix title not properly capitalized. +\\ Already corrected in the digital version. + +\CHAPTER{Biographies} + +\CHAPTER{Production Notes} + +\end{erratalist} + + + + + +\setcounter{collectmore}{3} + +\begin{multicols}{3}[Thanks to all who have found errors or + omissions. Listed are the people who found an errata entry first.] +\contributor{bb}{Barbara Beeton} +\contributor{FMi}{Frank Mittelbach} +\contributor{kb}{Karl Berry} +\end{multicols} + + +Other people have sent us corrections for errors already found. +Thanks to all of you! + +If you find further errors please report them to one of the authors, e.g., +\begin{quote}\ttfamily + frank.mittelbach@latex-project.org +\end{quote} +preferably in a form usable directly in this file, i.e., +\begin{flushleft} +|\erroronpage{|\textit{page-number}|}{|\textit{line-identification}|}{|% + \textit{your-initials}|}{|\textit{date}|}{}| \\ + \hspace*{2em}\textit{description of the erratum} +\end{flushleft} +Here is an example: +\begin{verbatim} +\erroronpage{5}{para 3, l.1}{FMi}{2023/06/21}{} + \u{LaTeX} \> \u{\LaTeX} +\end{verbatim} +\verb=\u= underlines a text fragment and \verb=\>= produces \>. +\end{document} + + + + +\seriouserroronpage{general}{}{FMi}{2004/06/12}{} + + To help you in assessing this errata document we have placed + exclamation marks in front of each entry that we consider essential + for correctly understanding the book contents. + +\erroronpage{general}{}{FMi}{2004/05/14}{} + + Due to the printing process there may be small alignment problems + between blue and black text on some pages. These can vary from book + to book depending on how the paper was handled between print + runs---such is the analog nature of printing on a press. + diff --git a/Master/texmf-dist/doc/latex/base/tlc3.pdf b/Master/texmf-dist/doc/latex/base/tlc3.pdf Binary files differnew file mode 100644 index 00000000000..83605eb82fa --- /dev/null +++ b/Master/texmf-dist/doc/latex/base/tlc3.pdf diff --git a/Master/texmf-dist/doc/latex/base/tulm.pdf b/Master/texmf-dist/doc/latex/base/tulm.pdf Binary files differindex 990eba766bb..d1bf3b1a884 100644 --- a/Master/texmf-dist/doc/latex/base/tulm.pdf +++ b/Master/texmf-dist/doc/latex/base/tulm.pdf diff --git a/Master/texmf-dist/doc/latex/base/usrguide-historic.pdf b/Master/texmf-dist/doc/latex/base/usrguide-historic.pdf Binary files differindex ba663260c96..629e70e7bd4 100644 --- a/Master/texmf-dist/doc/latex/base/usrguide-historic.pdf +++ b/Master/texmf-dist/doc/latex/base/usrguide-historic.pdf diff --git a/Master/texmf-dist/doc/latex/base/usrguide-historic.tex b/Master/texmf-dist/doc/latex/base/usrguide-historic.tex index ce35aaa77c6..40865a2be91 100644 --- a/Master/texmf-dist/doc/latex/base/usrguide-historic.tex +++ b/Master/texmf-dist/doc/latex/base/usrguide-historic.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2022 +% Copyright (C) 1993-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -36,7 +36,7 @@ \author{\copyright~Copyright 1995--2022, \LaTeX\ Project Team.\\ All rights reserved.% - \footnote{This file may distributed and/or modified under the + \footnote{This file 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. See the source \texttt{usrguide.tex} for full details.}% diff --git a/Master/texmf-dist/doc/latex/base/usrguide.pdf b/Master/texmf-dist/doc/latex/base/usrguide.pdf Binary files differindex 3bcdae30352..c9d445ae8a2 100644 --- a/Master/texmf-dist/doc/latex/base/usrguide.pdf +++ b/Master/texmf-dist/doc/latex/base/usrguide.pdf diff --git a/Master/texmf-dist/doc/latex/base/usrguide.tex b/Master/texmf-dist/doc/latex/base/usrguide.tex index 32e12a13977..42d5e401f8b 100644 --- a/Master/texmf-dist/doc/latex/base/usrguide.tex +++ b/Master/texmf-dist/doc/latex/base/usrguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2020-2022 +% Copyright (C) 2020-2023 % The LaTeX Project and any individual authors listed elsewhere % in this file. % @@ -32,17 +32,18 @@ \usepackage[T1]{fontenc} % needed for \textbackslash in tt \usepackage{csquotes} +\usepackage{url} \title{\LaTeX\ for authors --- current version} -\author{\copyright~Copyright 2020-2022, \LaTeX\ Project Team.\\ +\author{\copyright~Copyright 2020-2023, \LaTeX\ Project Team.\\ All rights reserved.% - \footnote{This file may distributed and/or modified under the + \footnote{This file 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. See the source \texttt{usrguide.tex} for full details.}% } -\date{2022-07-05} +\date{2023-05-23} \NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}} \NewDocumentCommand\marg{m}{\arg{#1}} @@ -340,6 +341,12 @@ in \pkg{amsmath} environments, which in the terms here would be defined as \NewDocumentCommand\\{!s !o}{ ... } \end{verbatim} +Also notable when using optional arguments in the last position is that \TeX{} +will necessarily look ahead for the argument opening token. This means that +the value of |\inputlineno| will be `out by one' if such a trailing optional +argument is \emph{not} present and the command ends a line; it will be one +greater than the line number containing the last mandatory argument. + \subsection{`Embellishments'} \label{sec:cmd:embellishment} @@ -636,7 +643,19 @@ processed argument can be further processed using a mapping function 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. +Spaces are trimmed at each end of each item parsed. Exactly one set +of braces will be stripped if an entire item is surrounded by them, +i.e.~the following inputs and outputs result (each separte item as +a brace group). +\begin{verbatim} +a ==> {a} +{a} ==> {a} +{a}b ==> {{a}b} +a,b ==> {a}{b} +{a},b ==> {a}{b} +a,{b} ==> {a}{b} +a,{b}c ==> {a}{{b}c} +\end{verbatim} \begin{decl} |\ProcessList| \arg{list} \arg{function} @@ -716,7 +735,7 @@ put that code at the end of the \meta{start code}. Nevertheless this Environments that use this feature can be nested. -\subsection{Fully-expandable document commands} +\subsection{Fully-expandable document commands\label{sec:ltcmd:expandable}} Document commands created using \cs{NewDocumentCommand}, etc.\@, are normally created so that they do not expand unexpectedly. This is done using engine @@ -724,7 +743,7 @@ 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}. +This facility should only be used when \emph{necessary}. \begin{decl} |\NewExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\ @@ -755,6 +774,25 @@ available: in the standard version. \end{itemize} +\subsection{Commands at the start of tabular cells} + +Creating commands that are used at the start of tabular cells imposes +some restrictions on the underlying implementation. The standard \LaTeX{} +tabular environments (\texttt{tabular}, etc.) use a mechanism which requires +that any command wrapping \cs{multicolumn} or similar must be +`expandable'. This is \emph{not} the case for commands created using +\cs{NewDocumentCommand}, etc., which as detailed in +Section~\ref{sec:ltcmd:expandable} use an engine feature which prevents +such `expansion'. Therefore, to create such wrappers for use at the start +of tabular cells, you must use \cs{NewExpandableDocumentCommand}, for example +\begin{verbatim} +\NewExpandableDocumentCommand\MyMultiCol{m}{\multicolumn{3}{c}{#1}} +\begin{tabular}{lcr} +a & b & c \\ +\MyMultiCol{stuff} \\ +\end{tabular} +\end{verbatim} + \subsection{Details about argument delimiters} In normal (non-expandable) commands, the delimited types look for the @@ -844,28 +882,28 @@ The argument specifications for document commands and environments are available for examination and use. \begin{decl} - |\GetDocumentCommandArgSpec| \arg{function} \\ + |\GetDocumentCommandArgSpec| \arg{cmd} \\ |\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 +requested \meta{cmd} or \meta{environment} into the token list +variable \cs{ArgumentSpecification}. If the \meta{cmd} 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} \\ + |\ShowDocumentCommandArgSpec| \arg{cmd} \\ |\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 +requested \meta{cmd} or \meta{environment} at the terminal. If +the \meta{cmd} or \meta{environment} has no known argument specification then an error is issued. -\section{Copying and showing (robust) commands} +\section{Copying and showing (robust) commands and environments} 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 @@ -911,9 +949,6 @@ 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} @@ -926,6 +961,26 @@ 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} + |\NewEnvironmentCopy| \arg{env} \arg{existing-env} \\ + |\RenewEnvironmentCopy| \arg{env} \arg{existing-env} \\ + |\DeclareEnvironmentCopy| \arg{env} \arg{existing-env} +\end{decl} + +This copies the definition for environment \meta{existing-env} to +\meta{env} (both the beginning and end code), i.e., it is simply +applying \cs{NewCommandCopy} twice to the internal commands that +define an environment, i.e., \cs{}\meta{env} and \cs{end}\meta{env}. +The differences between \cs{New...}, \cs{Renew...}, and +\cs{Declare...} are the usual ones. + +\begin{decl} + |\ShowEnvironment| \arg{env} +\end{decl} +This displays the meaning of the begin end end code for environment \meta{env}. + + + \section[Preconstructing command names \\ (or otherwise expanding arguments)] {Preconstructing command names (or otherwise expanding arguments)} @@ -1132,11 +1187,11 @@ therefore shows the same syntax peculiars as discussed above. Nevertheless, in practice they are usually sufficient. For example \begin{verbatim} -\newcommand\calulateheight[1]{% +\newcommand\calculateheight[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}| +hold a specific number of text lines. Thus after |\calculateheight{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. @@ -1199,8 +1254,35 @@ cases \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. +situation. There are three commands for customising the case changing of +codepoints +\begin{decl} + |\DeclareLowercaseMapping| \oarg{locale} \arg{codepoint} \arg{output} \\ + |\DeclareTitlecaseMapping| \oarg{locale} \arg{codepoint} \arg{output} \\ + |\DeclareUppercaseMapping| \oarg{locale} \arg{codepoint} \arg{output} +\end{decl} +All three take a \meta{codepoint} (as an integer expression) and will +result in the \meta{output} being produced under the appropriate case changing +operation. The optional \meta{locale} can be given if the mapping should only +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{quotation} + |\DeclareUppercaseMapping{"01F0}{\v{J}}| +\end{quotation} +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{quotation} + |\DeclareLowercaseMapping[xx]{"0049}{\i}|\\ + |\DeclareLowercaseMapping[xx]{"0130}{i}|\\ + |\DeclareUppercaseMapping[xx]{"0069}{\.{I}}|\\ + |\DeclareUppercaseMapping[xx]{"0131}{I}| +\end{quotation} \end{document} diff --git a/Master/texmf-dist/doc/latex/base/utf8ienc.pdf b/Master/texmf-dist/doc/latex/base/utf8ienc.pdf Binary files differindex 5ada2a0c2fa..0ebe463aa7b 100644 --- a/Master/texmf-dist/doc/latex/base/utf8ienc.pdf +++ b/Master/texmf-dist/doc/latex/base/utf8ienc.pdf diff --git a/Master/texmf-dist/doc/latex/base/webcomp.pdf b/Master/texmf-dist/doc/latex/base/webcomp.pdf Binary files differindex 18aaaf71dbd..67c9d3aa62d 100644 --- a/Master/texmf-dist/doc/latex/base/webcomp.pdf +++ b/Master/texmf-dist/doc/latex/base/webcomp.pdf diff --git a/Master/texmf-dist/doc/latex/firstaid/changes.txt b/Master/texmf-dist/doc/latex/firstaid/changes.txt index 3c6cb992c89..e326957807f 100644 --- a/Master/texmf-dist/doc/latex/firstaid/changes.txt +++ b/Master/texmf-dist/doc/latex/firstaid/changes.txt @@ -1,3 +1,24 @@ +2023-05-20 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + + * latex2e-first-aid-for-external-files.dtx: removed temporary fix for + GitHub issue 591, unneeded now and it breaks for luatex the fix for gh 989 + (minipage/list spacing) + +2022-12-06 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + + * latex2e-first-aid-for-external-files.dtx (subsection{the crop package first aid}): + A first aid for crop after changes to \rlap and \stockwidth/\stockheight + +2022-11-28 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + + * latex2e-first-aid-for-external-files.dtx (subsection{the songs package first aid}): + A first aid for songs after a change to \obeylines + +2022-11-04 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * latex2e-first-aid-for-external-files.dtx (subsection{The unicode-math package first aid}): + A first aid for unicode-math used together with the doc package. + 2022-10-27 Joseph Wright <Joseph.Wright@latex-project.org> * latex2e-first-aid-for-external-files.dtx: diff --git a/Master/texmf-dist/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf b/Master/texmf-dist/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf Binary files differindex 6523046f58a..14434f3755c 100644 --- a/Master/texmf-dist/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf +++ b/Master/texmf-dist/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/README.md b/Master/texmf-dist/doc/latex/latex-lab/README.md index 7f1a2757942..dbb1e72f422 100644 --- a/Master/texmf-dist/doc/latex/latex-lab/README.md +++ b/Master/texmf-dist/doc/latex/latex-lab/README.md @@ -1,6 +1,6 @@ # LaTeX laboratory -Release 2022-11-01 +Release 2023-06-01 ## Overview @@ -38,5 +38,5 @@ The license is LPPL 1.3c. This README file is -Copyright (C) 2021-2022 +Copyright (C) 2021-2023 The LaTeX Project diff --git a/Master/texmf-dist/doc/latex/latex-lab/TODOS-unsorted.md b/Master/texmf-dist/doc/latex/latex-lab/TODOS-unsorted.md new file mode 100644 index 00000000000..1e2771ae679 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/TODOS-unsorted.md @@ -0,0 +1,33 @@ + +# A number of todos (unsorted and incomplete) + + +## Code extensions / cleanup + +### theorem-like envs + + - this can currently only handle the simple version from LaTeX2e + - it is missing a proper set of templates + - it is missing extensions to support different styles (a la amsmath and the like) + + +## Missing basic support + + - `\textbf` should probably mapt to `<Strong>` + - `\emph` should probably map to `<Em>` + + - Logos such as `\TeX` and `\LaTeX` should produce proper ActualText + + + + +## Package Support + +### csquotes + + - we can't really grab TeX's basic quotes, e.g. + ``` + some quotes around ``text'' here +``` + at least not easily, but we can support `\enquote` and the like + diff --git a/Master/texmf-dist/doc/latex/latex-lab/blocks-code.pdf b/Master/texmf-dist/doc/latex/latex-lab/blocks-code.pdf Binary files differnew file mode 100644 index 00000000000..efd9930bfe5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/blocks-code.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/blocks-code.tex b/Master/texmf-dist/doc/latex/latex-lab/blocks-code.tex new file mode 100644 index 00000000000..f71342d6f53 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/blocks-code.tex @@ -0,0 +1,4 @@ +% this will typeset documentation + code + +\AtBeginDocument{\AlsoImplementation} +\input{latex-lab-block-tagging.dtx} diff --git a/Master/texmf-dist/doc/latex/latex-lab/blocks-doc.pdf b/Master/texmf-dist/doc/latex/latex-lab/blocks-doc.pdf Binary files differnew file mode 100644 index 00000000000..4bbad5d3939 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/blocks-doc.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/blocks-doc.tex b/Master/texmf-dist/doc/latex/latex-lab/blocks-doc.tex new file mode 100644 index 00000000000..39a93479a17 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/blocks-doc.tex @@ -0,0 +1,4 @@ +% this will typeset documentation + code + +\AtBeginDocument{\OnlyDescription} +\input{latex-lab-block-tagging.dtx} diff --git a/Master/texmf-dist/doc/latex/latex-lab/changes.txt b/Master/texmf-dist/doc/latex/latex-lab/changes.txt index b4b4df98113..7e76d749966 100644 --- a/Master/texmf-dist/doc/latex/latex-lab/changes.txt +++ b/Master/texmf-dist/doc/latex/latex-lab/changes.txt @@ -1,3 +1,86 @@ +2023-06-07 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + * latex-lab-block-tagging.dtx corrected tagging of caption + * new latex-lab-firstaid.dtx with adaptions to external packages + * latex-lab-float.dtx: declare variable + * latex-lab-toc-hyperref-changes: use hooks with arguments + * latex-lab-toc-kernel-changes: use hooks with arguments + * latex-lab-sec.dtx: provide \pdfgentounicode with lualatex + +2023-05-20 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + * renamed latex-lab-sec-tagging -> latex-lab-sec for consistency + + +2023-05-19 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + * new latex-lab-bib.dtx: + tagging support for cite and bibliography with standard LaTeX and natbib + * small corrections/adaptions in latex-lab-sec-tagging and latex-lab-toc-tagging + +2023-05-18 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + * new latex-lab-floats.dtx: + tagging support for float environments + * new latex-lab-graphic.dtx + tagging support for includegraphics and picture environment + * new latex-lab-minipage.dtx + tagging support for minipage and parbox + +2023-05-16 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * latex-lab-block-tagging.dtx (subsubsection{Verbatim instances}): + verbatim environments get their own block instances so that they can receive + special formatting instructions. + This also fixes a bug that we forgot to set par-skip to 0pt by default (tagpdf/74) + + (paragraph{Helper commands for verbatim}): + The \legacyverbatimsetup command needs to execute \@@par inside a group, because + we need to preserve any outer setup to \parshape (tagpdf/79) + +2023-04-09 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + * latex-lab-sec-tagging.dtx: + don't load extra glyphtounicode if \pdfglyphtounicode is not defined. + +2023-04-09 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + * latex-lab-footnotes.dtx: + made \footnote and \footnotetext long + + +2023-03-08 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * latex-lab-block-tagging.dtx: + Added the support for tagging display blocks and corresponding environments + such as lists, quotes, verbatim, theorem-like envs, ... + +2023-03-07 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + + * tagpdf updated + * improved glyphtounicode support for luatex and math + * adapted toc and sec tagging code to new two-level paragraph handling + and block tagging code + +2023-02-16 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + + * latex-lab-sec-tagging.dtx: first, simple tagging of sectioning commands + * latex-lab-toc-tagging-functions.dtx, latex-lab-toc-kernel-changes.dtx, + latex-lab-toc-kernel-changes.dtx: Tagging of table of contents and similar + lists + * tagpdf and pdfmanagement updated in texmf tree. + + +2023-02-04 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + + * latex-lab-footnotes.dtx: improve tagging of footnotes + +2022-12-11 Joseph Wright <Joseph.Wright@latex-project.org> + + * latex-lab-mathcapture.dtx + New file to implement grabbing of math mode context + +2022-04-11 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + + * documentmeta-support.dtx: + updated documentation + * moved output patches from pdfresources to latex-lab-new-or-1 + * reorganized new-or: number subfiles as new-or-1, new-or-2 and load all with new-or. + 2022-07-22 Frank Mittelbach <Frank.Mittelbach@latex-project.org> * latex-lab-footnotes.dtx (subsection{Document-level commands}): diff --git a/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.pdf b/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.pdf Binary files differindex 2e999dd2687..bf0d11a71aa 100644 --- a/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.pdf +++ b/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.pdf b/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.pdf Binary files differindex ac5c23a86a7..ce81773be57 100644 --- a/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.pdf +++ b/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-amsmath.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-amsmath.pdf Binary files differnew file mode 100644 index 00000000000..9c53d2ba81a --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-amsmath.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-bib.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-bib.pdf Binary files differnew file mode 100644 index 00000000000..99f4722dc25 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-bib.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-block-tagging.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-block-tagging.pdf Binary files differnew file mode 100644 index 00000000000..7b35aa4c7fa --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-block-tagging.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-firstaid.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-firstaid.pdf Binary files differnew file mode 100644 index 00000000000..e1f696499d6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-firstaid.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-float.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-float.pdf Binary files differnew file mode 100644 index 00000000000..bdd5ef01696 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-float.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-footnotes.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-footnotes.pdf Binary files differindex 32ea573774c..b383bff74bc 100644 --- a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-footnotes.pdf +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-footnotes.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-graphic.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-graphic.pdf Binary files differnew file mode 100644 index 00000000000..7a5a07325e3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-graphic.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-mathpkg.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-mathpkg.pdf Binary files differnew file mode 100644 index 00000000000..acc2d859a6c --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-mathpkg.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-mathtagging.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-mathtagging.pdf Binary files differnew file mode 100644 index 00000000000..6f6df644088 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-mathtagging.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-mathtools.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-mathtools.pdf Binary files differnew file mode 100644 index 00000000000..5a001d442db --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-mathtools.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-minipage.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-minipage.pdf Binary files differnew file mode 100644 index 00000000000..8660ffa7abb --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-minipage.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or-1.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or-1.pdf Binary files differnew file mode 100644 index 00000000000..d5576ad3c96 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or-1.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or-2.pdf Binary files differindex 279e14f1a3a..1a1ce038d17 100644 --- a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or.pdf +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or-2.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-sec.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-sec.pdf Binary files differnew file mode 100644 index 00000000000..97f5caca08d --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-sec.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-testphase.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-testphase.pdf Binary files differindex cee61991a0f..35f6b6cd8e4 100644 --- a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-testphase.pdf +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-testphase.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-text.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-text.pdf Binary files differnew file mode 100644 index 00000000000..f4879150ac7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-text.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-toc-hyperref-changes.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-toc-hyperref-changes.pdf Binary files differnew file mode 100644 index 00000000000..6ae6eb3718e --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-toc-hyperref-changes.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-toc-kernel-changes.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-toc-kernel-changes.pdf Binary files differnew file mode 100644 index 00000000000..96b9ac1514f --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-toc-kernel-changes.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/latex-lab-toc-tagging-functions.pdf b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-toc-tagging-functions.pdf Binary files differnew file mode 100644 index 00000000000..4ec6c4e614a --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/latex-lab-toc-tagging-functions.pdf diff --git a/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotemark.txt b/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotemark.md index 684a695faa1..ad50b367320 100644 --- a/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotemark.txt +++ b/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotemark.md @@ -1,6 +1,8 @@ -% packages that alter \@footnotemark ... +# Packages that alter \@footnotemark ... +Scan of TeXlive 2022 for checking ... may not be longer accurate and may contain a few false positives +``` % bibarts \let\ba@footnmark=\@footnotemark @@ -184,3 +186,4 @@ } +``` diff --git a/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotetext.txt b/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotetext.md index 48a31728433..deda69fcd86 100644 --- a/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotetext.txt +++ b/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotetext.md @@ -1,3 +1,8 @@ +# Packages that alter \@footnotetext ... + +Scan of TeXlive 2022 for checking ... may not be longer accurate and may contain a few false positives + +``` % ./bibarts/bibarts.sty @@ -840,3 +845,4 @@ not checked what this does this needs some further analysis +``` diff --git a/Master/texmf-dist/doc/latex/latex-lab/usage-of-kern-kern.txt b/Master/texmf-dist/doc/latex/latex-lab/usage-of-kern-kern.md index e119197b708..aac597db60f 100644 --- a/Master/texmf-dist/doc/latex/latex-lab/usage-of-kern-kern.txt +++ b/Master/texmf-dist/doc/latex/latex-lab/usage-of-kern-kern.md @@ -1,3 +1,10 @@ +# Packages that use double \kern's + +Scan of TeXlive 2022 for checking ... may not be longer accurate and may contain a few false positives +(definitely contains bogus entries right now) + + +``` \ifdim\lastkern>\z@\ifdim\lastkern<5sp\relax ./bxjscls/bxjsja-minimal.def @@ -78,3 +85,4 @@ \NewDocumentCommand \@sidenotes@multisign { } {3sp} ./sidenotes/sidenotes.sty +``` diff --git a/Master/texmf-dist/doc/latex/latex-lab/usage-of-makefntext.md b/Master/texmf-dist/doc/latex/latex-lab/usage-of-makefntext.md new file mode 100644 index 00000000000..d7cb0a9b920 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex-lab/usage-of-makefntext.md @@ -0,0 +1,1751 @@ +# Packages that alter \@makefntext ... + +Scan of TeXlive 2022 for checking ... may not be longer accurate and may contain a few false positives + +``` + +% ./footmisc/footmisc.sty + +% latex def (used with para option) + + + + \long\def\@makefntext#1{% + \ifFN@hangfoot + \bgroup + \setbox\@tempboxa\hbox{% + \ifdim\footnotemargin>0pt + \hb@xt@\footnotemargin{\@makefnmark\hss}% + \else + \@makefnmark + \fi + }% + \leftmargin\wd\@tempboxa + \rightmargin\z@ + \linewidth \columnwidth + \advance \linewidth -\leftmargin + \parshape \@ne \leftmargin \linewidth + \footnotesize + \@setpar{{\@@par}}% + \leavevmode + \llap{\box\@tempboxa}% + \parskip\hangfootparskip\relax + \parindent\hangfootparindent\relax + \else + \parindent1em + \noindent + \ifdim\footnotemargin>\z@ + \hb@xt@ \footnotemargin{\hss\@makefnmark}% + \else + \ifdim\footnotemargin=\z@ + \llap{\@makefnmark}% + \else + \llap{\hb@xt@ -\footnotemargin{\@makefnmark\hss}}% + \fi + \fi + \fi + \footnotelayout#1% + \ifFN@hangfoot + \par\egroup + \fi + } + + + + +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/aastex/aastex631.cls +--------------------------------------------------------- +\def\@makefntext#1{\hsize=\columnwidth\mbox{}\hspace*{3mm}\@makefnmark~#1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/paper/paper.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% +... + \long\def\@makefntext#1{% + \leftskip 2.0em% + \noindent + \hbox to 0em{\hss\@makefnmark\kern 0.25em}#1} +... + \long\def\@makefntext#1{% + \parindent 1em% + \noindent + \hbox to 1.8em{\hss\@makefnmark\kern 0.25em}#1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/revtex4-1/aip4-1.rtx +--------------------------------------------------------- +\def\@makefntext#1{% + \def\baselinestretch{1}% + \leftskip1em% + \parindent1em% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/revtex4-1/aps4-1.rtx +--------------------------------------------------------- +\long\def\@makefntext#1{% + \def\baselinestretch{1}% + \leftskip1em% + \parindent1em% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/revtex4-1/revtex4-1.cls +--------------------------------------------------------- +\def\@makefntext#1{% + \def\baselinestretch{1}% + \parindent1em% + \noindent +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/smflatex/smfart.cls +--------------------------------------------------------- +\def\@makefntext{\parindent0pt\sloppy\indent\@makefnmark} +\hfuzz=1pt \vfuzz=\hfuzz +\def\sloppy{\tolerance9999 \emergencystretch 3em\relax} +\setcounter{topnumber}{4} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/smflatex/smfbook.cls +--------------------------------------------------------- +\def\@makefntext{\parindent0pt\sloppy\indent\@makefnmark} +\hfuzz=1pt \vfuzz=\hfuzz +\def\sloppy{\tolerance9999 \emergencystretch 3em\relax} +\setcounter{topnumber}{4} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/koma-script/scrlttr2.cls +--------------------------------------------------------- + \long\def\@makefntext##1{% + \raggedfootnote + \leftskip #2 + \l@addto@macro\@trivlist{% +... + \long\def\@makefntext##1{% + \setlength{\@tempdimc}{#3}% + \def\@tempa{#1}\ifx\@tempa\@empty + \@setpar{\@@par +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/koma-script/scrextend.sty +--------------------------------------------------------- + \long\def\@makefntext##1{% + \raggedfootnote + \leftskip #2 + \l@addto@macro\@trivlist{% +... + \long\def\@makefntext##1{% + \setlength{\@tempdimc}{#3}% + \def\@tempa{#1}\ifx\@tempa\@empty + \@setpar{\@@par +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/koma-script/scrreprt.cls +--------------------------------------------------------- + \long\def\@makefntext##1{% + \raggedfootnote + \leftskip #2 + \l@addto@macro\@trivlist{% +... + \long\def\@makefntext##1{% + \setlength{\@tempdimc}{#3}% + \def\@tempa{#1}\ifx\@tempa\@empty + \@setpar{\@@par +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/koma-script/scrartcl.cls +--------------------------------------------------------- + \long\def\@makefntext##1{% + \raggedfootnote + \leftskip #2 + \l@addto@macro\@trivlist{% +... + \long\def\@makefntext##1{% + \setlength{\@tempdimc}{#3}% + \def\@tempa{#1}\ifx\@tempa\@empty + \@setpar{\@@par +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/koma-script/scrbook.cls +--------------------------------------------------------- + \long\def\@makefntext##1{% + \raggedfootnote + \leftskip #2 + \l@addto@macro\@trivlist{% +... + \long\def\@makefntext##1{% + \setlength{\@tempdimc}{#3}% + \def\@tempa{#1}\ifx\@tempa\@empty + \@setpar{\@@par +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/uafthesis/uafthesis.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \parindent 1em% + \noindent + \hbox to 1.8em{\hss\@makefnmark}#1} +... + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext + {\rule{\z@}{\footnotesep}\ignorespaces + #1\strut}}} + +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/uwthesis/uwthesis.cls +--------------------------------------------------------- +\long\def\@makefntext#1{\parindent 1em\noindent \hangindent\parindent + \def\baselinestretch{1.0}\normalfont + \hb@xt@1.8em{\hss\@makefnmark}#1} + +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/uwa-letterhead/uwa-letterhead.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \global\@topnum\z@ +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/onrannual/onrannual.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \newpage +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/thuthesis/thuthesis.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \begingroup + % 序号取消上标 + \def\@makefnmark{\hbox{\normalfont\@thefnmark}}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/gaceta/gaceta.cls +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/jpsj/jpsj2.cls +--------------------------------------------------------- + \long\def\@makefntext##1{%\vskip2\p@ + \hangindent8\p@ \hangafter1 \noindent + \hb@xt@1em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/gmutils/gmtypos.sty +--------------------------------------------------------- + \ampulexdef#1{\long\def\@makefntext}% + \if@twocolumn{\gmu@ATfootnotes\if@twocolumn}% Ampulex redefinition + % of \incs{maketitle} for \pk{mwcls}. +} +... + \long\pdef\@makefntext##1{% + \ifdefined\@parindent \parindent\@parindent + \else \parindent 1em\relax + \fi +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/resphilosophica/resphilosophica.cls +--------------------------------------------------------- +\def\@makefntext{\noindent\@makefnmark + \if@enddoc\else + \immediate\write\@mainaux% + {\string\xdef\string\lastfootnote@page{\the\c@page}}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/tools/ftnright.sty +--------------------------------------------------------- +\long\def\@makefntext#1{\parindent 1em + \noindent\hbox to 2em{}% + \llap{\@thefnmark.\,\,}#1} +\setlength{\skip\footins} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/elegantnote/elegantnote.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ntgclass/rapport1.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent\z@ + \def\labelitemi{\textendash}\@revlabeltrue + \leavevmode\@textsuperscript{\@thefnmark}\kern1em\relax ##1} + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% +... + \long\def\@makefntext{\@xmakefntext{% + \@textsuperscript{\normalfont\@thefnmark}}}% + \if@twocolumn + \ifnum \col@number=\@ne +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ntgclass/brief.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \noindent\hb@xt@\leftmargini{\normalfont\@thefnmark.\hfil}#1} +\newcommand*\dutchbrief{% + \def\uwbrieftekst{Uw brief van} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ntgclass/boek.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent\z@ + \def\labelitemi{\textendash}\@revlabeltrue + \leavevmode\@textsuperscript{\@thefnmark}\kern1em\relax ##1} + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ntgclass/rapport3.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent\z@ + \def\labelitemi{\textendash}\@revlabeltrue + \leavevmode\@textsuperscript{\@thefnmark}\kern1em\relax ##1} + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% +... + \long\def\@makefntext{\@xmakefntext{% + \@textsuperscript{\normalfont\@thefnmark}}}% + \if@twocolumn + \ifnum \col@number=\@ne +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ntgclass/boek3.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent\z@ + \def\labelitemi{\textendash}\@revlabeltrue + \leavevmode\@textsuperscript{\@thefnmark}\kern1em\relax ##1} + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ntgclass/artikel2.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent\z@ + \def\labelitemi{\textendash}\@revlabeltrue + \leavevmode\@textsuperscript{\@thefnmark}\kern1em\relax ##1} + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% +... + \long\def\@makefntext##1{\parindent\z@ + \def\labelitemi{\textendash}% + \leavevmode\hb@xt@.5\unitindent{% + \@textsuperscript{\normalfont\@thefnmark}\hfil}##1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ntgclass/artikel3.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent\z@ + \def\labelitemi{\textendash}\@revlabeltrue + \leavevmode\@textsuperscript{\@thefnmark}\kern1em\relax ##1} + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% +... + \long\def\@makefntext{\@xmakefntext{% + \@textsuperscript{\normalfont\@thefnmark}}}% + \if@twocolumn + \ifnum \col@number=\@ne +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ntgclass/artikel1.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent\z@ + \def\labelitemi{\textendash}\@revlabeltrue + \leavevmode\@textsuperscript{\@thefnmark}\kern1em\relax ##1} + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% +... + \long\def\@makefntext{\@xmakefntext{% + \@textsuperscript{\normalfont\@thefnmark}}}% + \if@twocolumn + \ifnum \col@number=\@ne +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/cdpbundl/letteracdp.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \noindent + \hangindent 5\p@ + \hb@xt@5\p@{\hss\@makefnmark}#1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/courseoutline/courseoutline.cls +--------------------------------------------------------- +\setlength {\evensidemargin}{0.0in} % right margin 1.0 inch +\setlength {\textwidth}{6.5in} % right margin 1.0 inch +\setlength {\footnotesep}{14pt} % baseline skip for fn's 1st line +\setlength {\headheight}{0.2in} % make room for header +\setlength {\headsep}{0.2in} % modest header separation +\setlength {\parskip}{0.2in} % set a paragraph skip +\setlength {\parindent}{0.0in} % no para indents +% +% redefine the titlematter +% +\renewcommand\maketitle{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \thispagestyle{empty}\@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + % + \global\let\university\@empty + \global\let\department\@empty + \global\let\coursename\@empty +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/stellenbosch/ustitle.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/chextras/chextras.sty +--------------------------------------------------------- + \long\def\@makefntext#1{\settowidth\@tempdima{.\kern\marginparsep} + \parindent\z@ + \advance\parindent-\@tempdima + \rule\z@\footnotesep +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/aiaa/aiaa-tc.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \newpage +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/oberdiek/enparen.sty +--------------------------------------------------------- + \long\def\@makefntext##1{% + \enparen@org@makefntext{% + \enparenBeginContext{footnote}% + ##1% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/cleveref/cleveref.sty +--------------------------------------------------------- +\long\def\@makefntext{% + \cref@constructprefix{footnote}{\cref@result}% + \protected@edef\cref@currentlabel{% + [footnote][\arabic{footnote}][\cref@result]% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ametsoc/ametsoc.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\footnotesize\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1 + \vskip1sp +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/combine/combine.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/active-conf/active-conf.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent##1}% + \@note + \setcounter{footnote}{0} + \global\def\note##1{% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/iso/isov2.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \parindent 1em% + \noindent + \hbox to 1.8em{\hss\@makefnmark}#1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/elegantpaper/elegantpaper.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@0.1em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/fnpara/fnpara.sty +--------------------------------------------------------- +\long\def\@makefntext#1{% +% \parindent 1em% +% \noindent +% \hb@xt@1.8em{\hss\@makefnmark}#1 +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/bxjscls/bxjsarticle.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\advance\leftskip 3\jsZw + \parindent 1\jsZw\noindent + \llap{\@textsuperscript{\normalfont\@thefnmark}\hskip0.3\jsZw}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/bxjscls/bxjsbook.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\advance\leftskip 3\jsZw + \parindent 1\jsZw\noindent + \llap{\@textsuperscript{\normalfont\@thefnmark}\hskip0.3\jsZw}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/bxjscls/bxjsslide.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\advance\leftskip 3\jsZw + \parindent 1\jsZw\noindent + \llap{\@textsuperscript{\normalfont\@thefnmark}\hskip0.3\jsZw}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/bxjscls/bxjsreport.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\advance\leftskip 3\jsZw + \parindent 1\jsZw\noindent + \llap{\@textsuperscript{\normalfont\@thefnmark}\hskip0.3\jsZw}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/lettre/lettre.cls +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/titlefoot/titlefoot.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/revtex/aip4-2.rtx +--------------------------------------------------------- +\def\@makefntext#1{% + \def\baselinestretch{1}% + \leftskip1em% + \parindent1em% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/revtex/aps4-2.rtx +--------------------------------------------------------- +\long\def\@makefntext#1{% + \def\baselinestretch{1}% + \leftskip1em% + \parindent1em% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/revtex/revtex4-2.cls +--------------------------------------------------------- +\def\@makefntext#1{% + \def\baselinestretch{1}% + \parindent1em% + \noindent +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/revtex/sor4-2.rtx +--------------------------------------------------------- +\def\@makefntext#1{% + \def\baselinestretch{1}% + \leftskip1em% + \parindent1em% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/revtex/aapm4-2.rtx +--------------------------------------------------------- +\def\@makefntext#1{% + \def\baselinestretch{1}% + \leftskip1em% + \parindent1em% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/lni/lni.cls +--------------------------------------------------------- + \long\def\@makefntext##1{% + \@setpar{\@@par + \@tempdima = \hsize + \advance\@tempdima -1em +... +\long\def\@makefntext#1{% + \parindent \fnindent% + \leftskip \fnindent% Einrückung vor der footnotemark + \noindent +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/arabtex/arabrep.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{\hss\@makefnmark}##1}% + \if@twocolumn + \ifnum \col@number=\@ne +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/arabtex/arabrep1.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{\hss\@makefnmark}##1}% + \if@twocolumn + \ifnum \col@number=\@ne +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/llncs/llncs.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \parindent \fnindent% + \leftskip \fnindent% + \noindent +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/frankenstein/blkcntrl.sty +--------------------------------------------------------- +\defcommand\@makefntext [1] {% + \setlength\parindent{\@ne em}% + \noindent + \hb@xt@ 1.8em{\hss\@makefnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/frankenstein/blkcntrl.stq +--------------------------------------------------------- +\defcommand\@makefntext [1] {% + \setlength\parindent{\@ne em}% + \noindent + \hb@xt@ 1.8em{\hss\@makefnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/cmpj/cmpj2.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/cmpj/cmpj3.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/cmpj/cmpj.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/pracjourn/pracjourn.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \newpage +... +\def\@makefntext#1{% + \parindent 0em\relax + \makebox[1.5em][l]{\normalfont\footnotesize\@thefnmark.}#1} +\def\@ifx@empty#1{% Implicit #2#3 +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/extsizes/extbook.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/extsizes/extletter.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \noindent + \hangindent 5\p@ + \hb@xt@5\p@{\hss\@makefnmark}#1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/extsizes/extarticle.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/extsizes/extproc.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \twocolumn[\@maketitle]% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/extsizes/extreport.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/h2020proposal/h2020proposal.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \newpage +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ms.bbx +--------------------------------------------------------- + \long\def\@makefntext##1{%增加了脚注标记与正文的间隔 + \parindent 1em\noindent \hb@xt@ 0em{\hss \@makefnmark\makebox[\footbiblabelsep]{}}##1} + + } +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015mx.bbx +--------------------------------------------------------- + \long\def\@makefntext##1{%增加了脚注标记与正文的间隔 + \parindent 1em\noindent \hb@xt@ 0em{\hss \@makefnmark\makebox[\footbiblabelsep]{}}##1} + + } +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015ay.bbx +--------------------------------------------------------- + \long\def\@makefntext##1{%增加了脚注标记与正文的间隔 + \parindent 1em\noindent \hb@xt@ 0em{\hss \@makefnmark\makebox[\footbiblabelsep]{}}##1} + + } +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/biblatex-gb7714-2015/gb7714-2015.bbx +--------------------------------------------------------- + \long\def\@makefntext##1{%增加了脚注标记与正文的间隔 + \parindent 1em\noindent \hb@xt@ 0em{\hss \@makefnmark\makebox[\footbiblabelsep]{}}##1} + + } +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/suftesi/suftesi.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/mwcls/mwrep.cls +--------------------------------------------------------- + \long\def\@makefntext##1{ + \parindent\@parindent + \@textsuperscript{\normalfont\@thefnmark}\enspace##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/mwcls/mwart.cls +--------------------------------------------------------- + \long\def\@makefntext##1{ + \parindent\@parindent + \@textsuperscript{\normalfont\@thefnmark}\enspace##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/mwcls/mwbk.cls +--------------------------------------------------------- + \long\def\@makefntext##1{ + \parindent\@parindent + \@textsuperscript{\normalfont\@thefnmark}\enspace##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/tugboat/ltugboat.cls +--------------------------------------------------------- +\long\def\@makefntext#1{\parindent 1em\noindent\hb@xt@2em{}% + \llap{\@makefnmark}\null$\mskip5mu$#1} + +%% \long\def\@makefntext#1{\parindent 1em +... + \def\@makefntext##1{##1}% + \footnotetext{\noindent #1#2}% + \endgroup +} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ptptex/ptptex.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% +\parindent 1.5em\noindent \footnotesize % +\hbox to 2.5em{\hss$^{\@thefnmark}$}\hskip3\p@#1} +\gdef\@thanks{} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/aguplus/aguplus.sty +--------------------------------------------------------- + \long\def\@makefntext##1{##1} + \footnotetext{{\parindent=1em\indent + \let\@elt=\par\@titlenote}} + \fi +... + \long\def\@makefntext##1{##1} + \footnotetext{{\parindent=10pt\indent + \parskip=6pt\let\@elt=\par\@titlenote}} + \fi +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/aguplus/aguplus.cls +--------------------------------------------------------- + \long\def\@makefntext##1{##1} + \footnotetext{{\parindent=1em\indent + \let\@elt=\par\@titlenote}} + \fi +... + \long\def\@makefntext##1{##1} + \footnotetext{{\parindent=10pt\indent + \parskip=6pt\let\@elt=\par\@titlenote}} + \fi +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/protocol/protocol.cls +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/cje/cje.cls +--------------------------------------------------------- + \long\def\@makefntext##1{%\parindent 1em + \noindent +% \hb@xt@1.8em{% +% \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% +... +\long\def\@makefntext#1{\raggedright\@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-\@footindent + \parshape \@ne \@footindent \@tempdima}\par + \noindent \hbox to \z@{\hss\@thefnmark\enskip}#1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/tufte-latex/tufte-common.def +--------------------------------------------------------- +\long\def\@makefntext#1{\@textsuperscript{\@tufte@sidenote@font\tiny\@thefnmark}\,\footnotelayout#1} + +% Set the in-text footnote mark in the same typeface as the body text itself. +\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\footnotesize\@thefnmark}}} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/amscls/amsdtx.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% + \if@twocolumn + \ifnum \col@number=\@ne +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/amscls/amsbook.cls +--------------------------------------------------------- +\def\@makefntext{\indent\@makefnmark} +\long\def\@footnotetext#1{% + \insert\footins{% + \normalfont\footnotesize +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/amscls/amsproc.cls +--------------------------------------------------------- +\def\@makefntext{\indent\@makefnmark} +\long\def\@footnotetext#1{% + \insert\footins{% + \normalfont\footnotesize +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/amscls/amsart.cls +--------------------------------------------------------- +\def\@makefntext{\indent\@makefnmark} +\long\def\@footnotetext#1{% + \insert\footins{% + \normalfont\footnotesize +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/quantumarticle/quantumarticle.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \ifbool{@twocolumn} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ltxmisc/iagproc.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \twocolumn[\@maketitle]% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/acmart/acmart.cls +--------------------------------------------------------- +\def\@makefntext{\noindent\@makefnmark} +\if@ACM@sigchiamode +\long\def\@footnotetext#1{\marginpar{% + \reset@font\small +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/memoir/memoir.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\makethanksmark ##1} + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/footnotebackref/footnotebackref.sty +--------------------------------------------------------- +% than redefine the \@makefntext and \@makefnmark +% The \@makefnmark macro is redefined in the space of +% the \@makefntext macro +% So the footnote numbers in the main text are not influenced +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/bangtex/barticle.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/bangtex/bletter.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \noindent + \hangindent 5\p@ + \hb@xt@5\p@{\hss\@makefnmark}#1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/bangtex/bbook.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\sbng\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/elbioimp/elbioimp.cls +--------------------------------------------------------- + \def \@makefntext ##1{\noindent + \small \@thefnmark. \it ##1} + \renewcommand{\thempfootnote}% + {\arabic{mpfootnote}} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ebsthesis/ebsthesis.cls +--------------------------------------------------------- + \long\def\@makefntext#1{% + \bgroup + \setbox\@tempboxa\hbox{% + \ifdim\footnotemargin>0pt +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/coursepaper/coursepaper.cls +--------------------------------------------------------- + \setlength {\evensidemargin}{0.5in} % right margin 1.5 inch + \setlength {\textwidth}{5.5in} % right margin 1.5 inch + \spacing{2} % double spacing for final + \renewenvironment{quote} % redef as single spaced + {\oldquote\spacing{1}} + {\oldendquote\spacing{2}} + \renewenvironment{quotation} % redef as single spaced + {\oldquotation\spacing{1}} + {\oldendquotation\spacing{2}} + \renewenvironment{verse} % redef as single spaced + {\oldquotation\spacing{1}} + {\oldendquotation\spacing{2}} +} +\setlength {\footnotesep}{14pt} % baseline skip for fn's 1st line +\setlength {\headheight}{0.2in} % make room for header +\setlength {\headsep}{0.2in} % modest header separation +\setlength {\parskip}{0.2in} % set a paragraph skip +\setlength {\parindent}{0.2in} % I hate unindented first lines +\renewenvironment{bibliography}[1] % automatically enter toc line + {\addcontentsline{toc}{chapter}{Bibliography}\oldbibliography {#1}} + {\oldendbibliography} +% +% Make footnotes single spaced +% +% code shamelessly stolen from setspace.sty +% written by Geoffrey Tobin <G.Tobin@latrobe.edu.au> +% +\long\def\@footnotetext#1{% + \insert\footins{% + \def\baselinestretch {1}% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} +% +% redefine the titlematter +% +\renewcommand\maketitle{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \thispagestyle{empty}\@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + % + \global\let\@studentnumber\@empty + \global\let\@coursenumber\@empty + \global\let\@coursename\@empty + \global\let\@coursesection\@empty + \global\let\@instructor\@empty + \global\let\@college\@empty + % + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax +} +% +\def\@maketitle{% + \newpage + \null + \vskip 2em% + \begin{flushleft}% + \begin{spacing}{1}% + {\sffamily \LARGE \@title \par}% + \vskip 2em% + {\sffamily \large\lineskip .75em\@author}\\% + \sffamily \@studentnumber% + \vskip 1em% + \sffamily \@date + \vskip 3em% + \sffamily \@college\\% + \sffamily \@coursenumber\hskip 6pt\@coursesection\hskip 6pt% + \@coursename\\% + \sffamily For: \@instructor% + \par% + \end{spacing}% + \end{flushleft}\hrule\vskip 1em\par + \par + \vskip 1.5em} +% +% make section titles less obnoxious +% +\renewcommand\section{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\normalfont\large\bfseries}} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\normalfont\normalsize\bfseries}} +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\normalfont\normalsize\bfseries}} +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\normalfont\normalsize\bfseries}} +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\normalfont\normalsize\bfseries}} +% +% Set up headers +% +\def\ps@myheadings{% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\thepage -- \slshape\leftmark\hfil}% + \def\@oddhead{\hfil{\slshape\rightmark} -- \thepage}% + \let\@mkboth\@gobbletwo + \let\sectionmark\@gobble + \let\subsectionmark\@gobble + } +% +% Position the abstract depending on presence of titlepage +% +\if@titlepage + \renewenvironment{abstract}{% + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \begin{center}% + \bfseries \abstractname + \@endparpenalty\@M + \end{center}}% + {\par\vfil\null\endtitlepage} +\fi +% +% change some names +% +\renewcommand\contentsname{Table of Contents} +\renewcommand\refname{Bibliography} +% +% \epigraph{text}{byline} +% +\newcommand{\epigraph}[2]{\begin{flushright}\begin{minipage}{4in}% + \spacing{1}#1\begin{flushright}#2\end{flushright}% + \hrule\end{minipage}\vskip 12pt\end{flushright}} +% +%% End of file `coursepaper.cls'. +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/kotex-utf/contrib/dhucsfn.sty +--------------------------------------------------------- + \long\def\@makefntext#1{ + \settowidth{\foot@parindent}{\fn@markstyle} + \@setpar{\@@par\@tempdima \hsize + \advance\@tempdima-\foot@parindent +... + \long\def\@makefntext#1{% + \hbox{\fn@markstyle\hskip\footnumbersep #1} + }% +} +... + \long\def\@makefntext#1{% + \fn@markstyle\ifdim\footnumbersep=\z@\else~\fi #1 + }% +} +... + \long\def\@makefntext#1{ + \settowidth{\foot@parindent}{\reset@font 각주} + \settowidth{\footnumbersep}{\reset@font 주} + \divide\footnumbersep by2 +... + \long\def\@makefntext#1{ + \settowidth{\leftskip}{\reset@font 각주} + \settowidth{\foot@parindent}{\fn@markstyle} + \settowidth{\footnumbersep}{\reset@font 주} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ucthesis/ucthesis.cls +--------------------------------------------------------- +% \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize +% \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par +% \parindent 1em\noindent +% \hbox to \z@{\hss$\m@th^{\@thefnmark}$}#1} +... +\long\def\@makefntext#1{\parindent 1em\noindent + \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1} + +% \@makefnmark : A macro to generate the footnote marker that goes +... + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext + {\rule{\z@}{\footnotesep}\ignorespaces + #1\strut}}} + +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/apa/apa.cls +--------------------------------------------------------- +\long\def\@makefntext#1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont{\tiny\@thefnmark}\hspace{1.5pt}}}#1}% + +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/uestcthesis/uestcthesis.cls +--------------------------------------------------------- +\def\@makefntext #1{\ifFN@hangfoot \bgroup \setbox \@tempboxa \hbox {\ifdim +\footnotemargin >0pt \hb@xt@ \footnotemargin {\hbox { \normalfont \@thefnmark} +\hss }\else \hbox { \normalfont \@thefnmark} \fi }\leftmargin \wd \@tempboxa +\rightmargin \z@ \linewidth \columnwidth \advance \linewidth -\leftmargin +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/gmdoc/gmdoc.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn \twocolumn [\@maketitle ]% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/titling/titling.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\makethanksmark ##1} + \null\vfil + \vskip 60\p@ + \vspace*{\droptitle} +... + \long\def\@makefntext##1{\makethanksmark ##1} + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/chletter/chletter.cls +--------------------------------------------------------- +\long\def\@makefntext#1{\noindent\hb@xt@\z@{\hss\@makefnmark}#1} +\def\fromname{\@author} +\def\fromsig{\@author} +\let\fromlocation\@empty +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/jurarsp/jurarsp.sty +--------------------------------------------------------- +\long\def\@makefntext#1{% + \rsp@fntrue% + \@setpar{\@@par + \@tempdima = \hsize +... +/usr/local/texlive/2021/texmf-dist/tex/latex/kluwer/klunote.sty +--------------------------------------------------------- +% \long\def\@makefntext#1{\parindent 1em\noindent +% \hbox to 1.5em{\hss$^{\@thefnmark}$}\hskip0.5em\footnotesize#1} +% \def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}} +% SK: reimplemented with \textsuperscript, following LaTeX format +... +\long\def\@makefntext#1{\parindent 1em\noindent + \hbox to 1.5em{\hss\textsuperscript{\@thefnmark}}% + \hskip0.5em\footnotesize#1} +\def\@makefnmark{\hbox{\textsuperscript{\@thefnmark}}} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/kluwer/kluwer.cls +--------------------------------------------------------- +\long\def\@makefntext#1{\parindent 1em\noindent + \hbox to 1.5em{\hss\textsuperscript{\@thefnmark}}% + \hskip0.5em\footnotesize#1} +\def\@makefnmark{\hbox{\textsuperscript{\@thefnmark}}} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/asaetr/asaesub.sty +--------------------------------------------------------- + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext + {\rule{\z@}{\footnotesep}\ignorespaces + #1\strut}}} + +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/asaetr/asaetr.sty +--------------------------------------------------------- +\long\def\@makefntext#1{\parindent 1em\noindent + \hbox to 1.8em{\hss$^{\@thefnmark}$}#1} + + +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/refman/refrep.cls +--------------------------------------------------------- + \long\def\@makefntext##1{% + \@setpar{\@@par + \@tempdima = \hsize + \advance\@tempdima -1em +... + \long\def\@makefntext##1{% + \@setpar{\@@par + \@tempdima = \hsize + \advance\@tempdima -1em +... +\long\def\@makefntext#1{% + \@setpar{\@@par + \@tempdima = \hsize + \advance\@tempdima -1em +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/refman/refart.cls +--------------------------------------------------------- + \long\def\@makefntext##1{% + \@setpar{\@@par + \@tempdima = \hsize + \advance\@tempdima -1em +... + \long\def\@makefntext##1{% + \@setpar{\@@par + \@tempdima = \hsize + \advance\@tempdima -1em +... +\long\def\@makefntext#1{% + \@setpar{\@@par + \@tempdima = \hsize + \advance\@tempdima -1em +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/lwarp/lwarp-footnote.sty +--------------------------------------------------------- +\long\def\@makefntext#1{\textsuperscript{\@thefnmark}~#1} + +\LWR@ProvidesPackagePass{footnote}[1997/01/28] + +... +\long\def\@makefntext#1{\textsuperscript{\@thefnmark}~{#1}} + +\def\spewnotes{% + \endgroup% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/lwarp/lwarp.sty +--------------------------------------------------------- +\long\def\@makefntext#1{\textsuperscript{\@thefnmark}~{#1}} +\def\@makefnmark{% + \textsuperscript{\@thefnmark}% +} +... +\long\def\@makefntext##1{% +\textsuperscript{\@thefnmark}~% +{##1}% +}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/lwarp/lwarp-titling.sty +--------------------------------------------------------- + \long\def\@makefntext##1{% + \makethanksmark~% + {##1}% + }% \@makefntext +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/afthesis/afthesis.cls +--------------------------------------------------------- + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext + {\rule{\z@}{\footnotesep}\ignorespaces + #1\strut}}} + +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ijmart/ijmart.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\noindent\hangindent=2em\hangafter=1 + \hb@xt@2em{% + \hss\@textsuperscript{\normalfont\footnotesize\@thefnmark\space}}##1}% + \def\footnoterule{\kern-3pt\hrule width 2in\kern 2.6pt} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/oup-authoring-template/oup-authoring-template.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 3mm\noindent + \if@traditional\if@small\@hangfrom{{\normalfont\@thefnmark}\enskip}\else\@textsuperscript{\normalfont\@thefnmark}\fi\else\@textsuperscript{\normalfont\@thefnmark}\fi + ##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/akletter/akletter.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \noindent + \hangindent 5\p@ + \hb@xt@5\p@{\hss\@makefnmark}#1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/revtex4/aps.rtx +--------------------------------------------------------- +\def\@makefntext#1{% + \def\baselinestretch{1}% + \reset@font + \footnotesize +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/revtex4/revtex4.cls +--------------------------------------------------------- +\def\@makefntext#1{% + \def\baselinestretch{1}% + \reset@font\footnotesize + \parindent 1em% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hitreport/hitreport.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \begingroup + % 序号取消上标 + \def\@makefnmark{\hbox{\normalfont\@thefnmark}}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/footnotehyper/footnotehyper.sty +--------------------------------------------------------- + \def\FNH@prefntext{\@makefntext{}}% + \iffootnotehyperwarn + \PackageInfo{footnotehyper}% + {Using the \string\@makefntext{} approach (see doc).\FNH@msgbk +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/basque-book/basque-book.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/dinbrief/dinbrief.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% + \noindent + \hangindent 5pt% + \hbox to 5pt{\hss $^{\@thefnmark}$}#1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/beamer/beamerbaseframecomponents.sty +--------------------------------------------------------- +\def\@makefntext#1{% + \def\insertfootnotetext{#1}% + \def\insertfootnotemark{\@makefnmark}% + \usebeamertemplate***{footnote}} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ucdavisthesis/ucdavisthesis.cls +--------------------------------------------------------- + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext + {\rule{\z@}{\footnotesep}\ignorespaces + #1\strut}\renewcommand\baselinestretch{\@spacing}}} +\ps@plain % 'plain' page style +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/computational-complexity/cclayout.sty +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/footmisx/footmisx.sty +--------------------------------------------------------- + \long\def\@makefntext#1{\leavevmode + \@makefnmark\nobreak + \hskip.5em\relax#1% + } +... + \long\def\@makefntext#1{% + \ifFN@hangfoot + \bgroup + \setbox\@tempboxa\hbox{% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/amsdtx.hyp +--------------------------------------------------------- + \long\def\@makefntext##1{% + \hyper@currentfnmark% + \bgroup% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/slides.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{% + \bgroup% + \hyper@currentfnmark% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/book.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{% + \bgroup% + \hyper@currentfnmark% + \edef\@currenthyper{\hyper@current@fnmark}% +... + \long\def\@makefntext##1{% + \hyper@currentfnmark% + \bgroup% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/ltxguide.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{% + \bgroup% + \hyper@currentfnmark% + \edef\@currenthyper{\hyper@current@fnmark}% +... + \long\def\@makefntext##1{% + \hyper@currentfnmark% + \bgroup% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/ltnews.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{% + \bgroup% + \hyper@currentfnmark% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/doc.hyp +--------------------------------------------------------- + \long\def\@makefntext##1{% + \hyper@currentfnmark% + \bgroup + \edef\@currenthyper{\hyper@current@fnmark} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/ftnright.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{% + \hyper@currentfnmark% + \bgroup% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/letter.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{% + \bgroup% + \hyper@currentfnmark% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/amsbook.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{\indent% + \hyper@currentfnmark% + \bgroup% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/ltxdoc.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{% + \bgroup% + \hyper@currentfnmark% + \edef\@currenthyper{\hyper@current@fnmark}% +... + \long\def\@makefntext##1{% + \hyper@currentfnmark% + \bgroup% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/proc.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{% + \bgroup% + \hyper@currentfnmark% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/amsart.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{\indent% + \hyper@currentfnmark% + \bgroup% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/amsproc.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{\indent% + \hyper@currentfnmark% + \bgroup% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/article.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{% + \bgroup% + \hyper@currentfnmark% + \edef\@currenthyper{\hyper@current@fnmark}% +... + \long\def\@makefntext##1{% + \hyper@currentfnmark% + \bgroup% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hyper/report.hyp +--------------------------------------------------------- +\long\def\@makefntext#1{% + \bgroup% + \hyper@currentfnmark% + \edef\@currenthyper{\hyper@current@fnmark}% +... + \long\def\@makefntext##1{% + \hyper@currentfnmark% + \bgroup% + \edef\@currenthyper{\hyper@current@fnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/hitec/hitec.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \newpage +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/emulateapj/emulateapj.cls +--------------------------------------------------------- +\def\@makefntext#1{\mbox{}\hspace*{3mm}\@makefnmark~#1} + +\def\notetoeditor#1{}% % We do not need notes to editor in the preprint +\def\placetable#1{}% % We do not need notes to editor in the preprint +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ledmac/afoot.sty +--------------------------------------------------------- + \long\def\@makefntext#1{{$^{\@thefnmark}$}#1\nobreak } +\fi + +%%% Make the LaTeX \cs{footnote} catcode-safe, like in Plain TeX. +... + \global\long\def \@makefntext ##1{{$^{\@thefnmark }$}##1\nobreak }% + \setbox0=\hbox \bgroup % fnpara.sty is present + \floatingpenalty=20000 \footnotesize + \fi +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/footmisc/footmisc.sty +--------------------------------------------------------- + \long\def\@makefntext#1{\leavevmode + \@makefnmark\nobreak + \hskip.5em\relax#1% + } +... + \long\def\@makefntext#1{% + \ifFN@hangfoot + \bgroup + \setbox\@tempboxa\hbox{% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/footmisc/footmisc-2011-06-06.sty +--------------------------------------------------------- + \long\def\@makefntext#1{\leavevmode + \@makefnmark\nobreak + \hskip.5em\relax#1% + } +... + \long\def\@makefntext#1{% + \ifFN@hangfoot + \bgroup + \setbox\@tempboxa\hbox{% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/base/book.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/base/slides.cls +--------------------------------------------------------- +\long\def\@makefntext#1{ + \noindent + \hangindent 10\p@ + \hb@xt@10\p@{\hss\@makefnmark}#1} +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/base/doc.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% + \if@twocolumn \twocolumn [\@maketitle ]% + \else \newpage \global \@topnum \z@ \@maketitle \fi +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/base/proc.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \twocolumn[\@maketitle]% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/base/proc.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \twocolumn[\@maketitle]% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/base/doc-v3beta.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% + \if@twocolumn \twocolumn [\@maketitle ]% + \else \newpage \global \@topnum \z@ \@maketitle \fi +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/base/article.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/base/report.cls +--------------------------------------------------------- + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/twoinone/2in1.sty +--------------------------------------------------------- +\long\def\@makefntext##1{\parindent 1em\noindent +\hb@xt@1.8em{% +\hss\@textsuperscript{\normalfont\@thefnmark}}##1}% +\@maketitle +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/ltxtools/ltxtools-review.sty +--------------------------------------------------------- + \long\def\@makefntext##1{\rule\z@\footnotesep\parindent1em\noindent + \hb@xt@2em{\hss\@textsuperscript + {\normalfont\textcolor{#1}{\@thefnmark}}}% + \hspace{2\p@}\ignorespaces\textcolor{#1}{##1}% +... + \long\def\@makefntext##1{% + \rule\z@\footnotesep\parindent1em\noindent + \hb@xt@0em{\hss\@textsuperscript{\normalfont\color{#1}\@thefnmark}}% + \hspace{2\p@}\color{#1}\ignorespaces##1% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/skeyval/skeyval-testclass.cls +--------------------------------------------------------- + \long\def\@makefntext##1{% + \parindent1em\relax\noindent + \hb@xt@1.8em{\hss\@textsuperscript{% + \normalfont\skv@fnsymbol\@thefnmark}% +... +--------------------------------------------------------- +/usr/local/texlive/2021/texmf-dist/tex/latex/newlfm/newlfm.cls +--------------------------------------------------------- +\long\def\@makefntext#1{% +\noindent \hangindent 5\p@% +\hb@xt@5\p@{\hss\@makefnmark}#1}% +\renewcommand{\thefigure}{\@arabic\c@figure}% +... +--------------------------------------------------------- + +``` diff --git a/Master/texmf-dist/doc/latex/tools/README.md b/Master/texmf-dist/doc/latex/tools/README.md index 5dba58d231a..4778e9aca01 100644 --- a/Master/texmf-dist/doc/latex/tools/README.md +++ b/Master/texmf-dist/doc/latex/tools/README.md @@ -1,7 +1,7 @@ The LaTeX `tools` bundle ======================== -Release 2022-11-01 +Release 2023-06-01 Overview -------- diff --git a/Master/texmf-dist/doc/latex/tools/afterpage.pdf b/Master/texmf-dist/doc/latex/tools/afterpage.pdf Binary files differindex 0729c171759..375b75ae5de 100644 --- a/Master/texmf-dist/doc/latex/tools/afterpage.pdf +++ b/Master/texmf-dist/doc/latex/tools/afterpage.pdf diff --git a/Master/texmf-dist/doc/latex/tools/array.pdf b/Master/texmf-dist/doc/latex/tools/array.pdf Binary files differindex 26654a389b4..ffdda545cc9 100644 --- a/Master/texmf-dist/doc/latex/tools/array.pdf +++ b/Master/texmf-dist/doc/latex/tools/array.pdf diff --git a/Master/texmf-dist/doc/latex/tools/bm.pdf b/Master/texmf-dist/doc/latex/tools/bm.pdf Binary files differindex ad718d07418..f2b68874348 100644 --- a/Master/texmf-dist/doc/latex/tools/bm.pdf +++ b/Master/texmf-dist/doc/latex/tools/bm.pdf diff --git a/Master/texmf-dist/doc/latex/tools/calc.pdf b/Master/texmf-dist/doc/latex/tools/calc.pdf Binary files differindex bf6ba15e273..1debba20b1b 100644 --- a/Master/texmf-dist/doc/latex/tools/calc.pdf +++ b/Master/texmf-dist/doc/latex/tools/calc.pdf diff --git a/Master/texmf-dist/doc/latex/tools/changes.txt b/Master/texmf-dist/doc/latex/tools/changes.txt index 7b3e63dca5a..74318d41bba 100644 --- a/Master/texmf-dist/doc/latex/tools/changes.txt +++ b/Master/texmf-dist/doc/latex/tools/changes.txt @@ -10,6 +10,30 @@ All changes above are only part of the development branch for the next release. ================================================================================ ######################### +# 2023-06-01 Release +######################### + +2023-05-11 Ulrike Fischer <Ulrike.Fischer@latex-project.org> + + * showkeys.dtx: Use label hook if format new enough. + +2023-04-15 David Carlisle <David.Carlisle@latex-project.org> + + * shellesc.dtx: Normalise use of "." in messages. github/1008 + +2023-03-30 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * multicol.dtx (subsection{The output routines}]): + Make column min depth customizable through the command + \multicolmindepthstring defaulting to 'p' (gh/698) + +2023-02-25 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * multicol.dtx: + Delay returning boxed multicols so that all parameters get restored first + in case the boxed multicols is used into another multicols (gh/1002) + +######################### # 2022-11-01 Release ######################### diff --git a/Master/texmf-dist/doc/latex/tools/dcolumn.pdf b/Master/texmf-dist/doc/latex/tools/dcolumn.pdf Binary files differindex 3de78c536a7..3b100acf938 100644 --- a/Master/texmf-dist/doc/latex/tools/dcolumn.pdf +++ b/Master/texmf-dist/doc/latex/tools/dcolumn.pdf diff --git a/Master/texmf-dist/doc/latex/tools/delarray.pdf b/Master/texmf-dist/doc/latex/tools/delarray.pdf Binary files differindex 4c15f62d473..cea166711ca 100644 --- a/Master/texmf-dist/doc/latex/tools/delarray.pdf +++ b/Master/texmf-dist/doc/latex/tools/delarray.pdf diff --git a/Master/texmf-dist/doc/latex/tools/enumerate.pdf b/Master/texmf-dist/doc/latex/tools/enumerate.pdf Binary files differindex c086811a7f4..06a70298354 100644 --- a/Master/texmf-dist/doc/latex/tools/enumerate.pdf +++ b/Master/texmf-dist/doc/latex/tools/enumerate.pdf diff --git a/Master/texmf-dist/doc/latex/tools/fileerr.pdf b/Master/texmf-dist/doc/latex/tools/fileerr.pdf Binary files differindex 8bf489506b7..22c59c11587 100644 --- a/Master/texmf-dist/doc/latex/tools/fileerr.pdf +++ b/Master/texmf-dist/doc/latex/tools/fileerr.pdf diff --git a/Master/texmf-dist/doc/latex/tools/fontsmpl.pdf b/Master/texmf-dist/doc/latex/tools/fontsmpl.pdf Binary files differindex f8899bdfd26..31717658e39 100644 --- a/Master/texmf-dist/doc/latex/tools/fontsmpl.pdf +++ b/Master/texmf-dist/doc/latex/tools/fontsmpl.pdf diff --git a/Master/texmf-dist/doc/latex/tools/ftnright.pdf b/Master/texmf-dist/doc/latex/tools/ftnright.pdf Binary files differindex d32b6e24aa0..922c844c49c 100644 --- a/Master/texmf-dist/doc/latex/tools/ftnright.pdf +++ b/Master/texmf-dist/doc/latex/tools/ftnright.pdf diff --git a/Master/texmf-dist/doc/latex/tools/hhline.pdf b/Master/texmf-dist/doc/latex/tools/hhline.pdf Binary files differindex 705e3db36ab..58c210d9b37 100644 --- a/Master/texmf-dist/doc/latex/tools/hhline.pdf +++ b/Master/texmf-dist/doc/latex/tools/hhline.pdf diff --git a/Master/texmf-dist/doc/latex/tools/indentfirst.pdf b/Master/texmf-dist/doc/latex/tools/indentfirst.pdf Binary files differindex bba40a3ee5f..5eb885ce60d 100644 --- a/Master/texmf-dist/doc/latex/tools/indentfirst.pdf +++ b/Master/texmf-dist/doc/latex/tools/indentfirst.pdf diff --git a/Master/texmf-dist/doc/latex/tools/layout.pdf b/Master/texmf-dist/doc/latex/tools/layout.pdf Binary files differindex 07204a943cc..263351e7510 100644 --- a/Master/texmf-dist/doc/latex/tools/layout.pdf +++ b/Master/texmf-dist/doc/latex/tools/layout.pdf diff --git a/Master/texmf-dist/doc/latex/tools/longtable.pdf b/Master/texmf-dist/doc/latex/tools/longtable.pdf Binary files differindex b41cd121015..dbae1ce35b5 100644 --- a/Master/texmf-dist/doc/latex/tools/longtable.pdf +++ b/Master/texmf-dist/doc/latex/tools/longtable.pdf diff --git a/Master/texmf-dist/doc/latex/tools/multicol.pdf b/Master/texmf-dist/doc/latex/tools/multicol.pdf Binary files differindex 56097a85a1e..e7a2607bd38 100644 --- a/Master/texmf-dist/doc/latex/tools/multicol.pdf +++ b/Master/texmf-dist/doc/latex/tools/multicol.pdf diff --git a/Master/texmf-dist/doc/latex/tools/rawfonts.pdf b/Master/texmf-dist/doc/latex/tools/rawfonts.pdf Binary files differindex 4a77a6bb4b6..865ba763704 100644 --- a/Master/texmf-dist/doc/latex/tools/rawfonts.pdf +++ b/Master/texmf-dist/doc/latex/tools/rawfonts.pdf diff --git a/Master/texmf-dist/doc/latex/tools/shellesc.pdf b/Master/texmf-dist/doc/latex/tools/shellesc.pdf Binary files differindex 77ca2657ca9..abd95516e08 100644 --- a/Master/texmf-dist/doc/latex/tools/shellesc.pdf +++ b/Master/texmf-dist/doc/latex/tools/shellesc.pdf diff --git a/Master/texmf-dist/doc/latex/tools/showkeys.pdf b/Master/texmf-dist/doc/latex/tools/showkeys.pdf Binary files differindex 010d132155f..723b001ee15 100644 --- a/Master/texmf-dist/doc/latex/tools/showkeys.pdf +++ b/Master/texmf-dist/doc/latex/tools/showkeys.pdf diff --git a/Master/texmf-dist/doc/latex/tools/somedefs.pdf b/Master/texmf-dist/doc/latex/tools/somedefs.pdf Binary files differindex a270a16e172..71ad9c4617e 100644 --- a/Master/texmf-dist/doc/latex/tools/somedefs.pdf +++ b/Master/texmf-dist/doc/latex/tools/somedefs.pdf diff --git a/Master/texmf-dist/doc/latex/tools/tabularx.pdf b/Master/texmf-dist/doc/latex/tools/tabularx.pdf Binary files differindex c9c48f7a320..185925ebfbc 100644 --- a/Master/texmf-dist/doc/latex/tools/tabularx.pdf +++ b/Master/texmf-dist/doc/latex/tools/tabularx.pdf diff --git a/Master/texmf-dist/doc/latex/tools/theorem.pdf b/Master/texmf-dist/doc/latex/tools/theorem.pdf Binary files differindex 7645a71fa2f..28dec0a5bd9 100644 --- a/Master/texmf-dist/doc/latex/tools/theorem.pdf +++ b/Master/texmf-dist/doc/latex/tools/theorem.pdf diff --git a/Master/texmf-dist/doc/latex/tools/tools-overview.pdf b/Master/texmf-dist/doc/latex/tools/tools-overview.pdf Binary files differindex 60805036982..a456c299aaf 100644 --- a/Master/texmf-dist/doc/latex/tools/tools-overview.pdf +++ b/Master/texmf-dist/doc/latex/tools/tools-overview.pdf diff --git a/Master/texmf-dist/doc/latex/tools/tools-overview.tex b/Master/texmf-dist/doc/latex/tools/tools-overview.tex index 882a2ae77fd..3bc325d67ce 100644 --- a/Master/texmf-dist/doc/latex/tools/tools-overview.tex +++ b/Master/texmf-dist/doc/latex/tools/tools-overview.tex @@ -1,7 +1,7 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesFile{tools-overview.tex}[2015/03/31 v1.0 Tools overview] -% Copyright (C) 2006-2022 +% Copyright (C) 2006-2023 % % The LaTeX Project and any individual authors listed elsewhere % in this file. diff --git a/Master/texmf-dist/doc/latex/tools/trace.pdf b/Master/texmf-dist/doc/latex/tools/trace.pdf Binary files differindex 1ca485dc97a..cd6291818f4 100644 --- a/Master/texmf-dist/doc/latex/tools/trace.pdf +++ b/Master/texmf-dist/doc/latex/tools/trace.pdf diff --git a/Master/texmf-dist/doc/latex/tools/varioref.pdf b/Master/texmf-dist/doc/latex/tools/varioref.pdf Binary files differindex 46aa65461e6..4382c23f447 100644 --- a/Master/texmf-dist/doc/latex/tools/varioref.pdf +++ b/Master/texmf-dist/doc/latex/tools/varioref.pdf diff --git a/Master/texmf-dist/doc/latex/tools/verbatim.pdf b/Master/texmf-dist/doc/latex/tools/verbatim.pdf Binary files differindex 43684a53b9b..94a11595038 100644 --- a/Master/texmf-dist/doc/latex/tools/verbatim.pdf +++ b/Master/texmf-dist/doc/latex/tools/verbatim.pdf diff --git a/Master/texmf-dist/doc/latex/tools/xr.pdf b/Master/texmf-dist/doc/latex/tools/xr.pdf Binary files differindex 116b46c9b63..8af5483cd10 100644 --- a/Master/texmf-dist/doc/latex/tools/xr.pdf +++ b/Master/texmf-dist/doc/latex/tools/xr.pdf diff --git a/Master/texmf-dist/doc/latex/tools/xspace.pdf b/Master/texmf-dist/doc/latex/tools/xspace.pdf Binary files differindex a38c754c368..1ddc9325275 100644 --- a/Master/texmf-dist/doc/latex/tools/xspace.pdf +++ b/Master/texmf-dist/doc/latex/tools/xspace.pdf |