summaryrefslogtreecommitdiff
path: root/macros/latex/base/ltclass.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/base/ltclass.dtx')
-rw-r--r--macros/latex/base/ltclass.dtx271
1 files changed, 234 insertions, 37 deletions
diff --git a/macros/latex/base/ltclass.dtx b/macros/latex/base/ltclass.dtx
index c62136c309..a0ab0fa354 100644
--- a/macros/latex/base/ltclass.dtx
+++ b/macros/latex/base/ltclass.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2020
-% The LaTeX3 Project and any individual authors listed elsewhere
+% Copyright (C) 1993-2021
+% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
% This file is part of the LaTeX base system.
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2020/12/17 v1.3v LaTeX Kernel (Class & Package Interface)]
+ [2021/05/18 v1.4b LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -427,7 +427,7 @@
% \changes{v0.2h}{1993/11/28}
% {Primitive filenames now terminated by space not \cs{relax}.}
% \changes{v0.2h}{1993/11/28}
-% {Directory syntax checing moved to dircheck.dtx}
+% {Directory syntax checking moved to dircheck.dtx}
% \changes{v0.2h}{1993/11/28}
% {Assorted commands now in the kernel removed.}
% \changes{v0.2i}{1993/12/03}
@@ -486,7 +486,7 @@
% \begin{macro}{\@declaredoptions}
% This list is automatically built by |\DeclareOption|.
% It is the list of options (separated by commas) declared in
-% the class or package file and it defines the order in which the
+% the class or package file and it defines the order in which
% the corresponding |\ds@|\meta{option} commands are executed.
% All local \meta{option}s which are not declared will be processed
% in the order defined by the optional argument of |\documentclass|
@@ -505,6 +505,14 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@raw@classoptionslist}
+% List of options of the main class (unprocessed).
+% \changes{v1.4b}{2021/05/18}{Initialise to \cs{relax} to match \cs{@classoptionslist}}
+% \begin{macrocode}
+\let\@raw@classoptionslist\relax
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\@unusedoptionlist}
% \changes{v1.0u}{1996/07/26}{made only preamble}
% List of options of the main class that haven't been declared or
@@ -640,14 +648,38 @@
%<latexrelease> \@expl@push@filename@aux@@}
%<latexrelease>\EndIncludeInRelease
%<latexrelease>
+% \end{macrocode}
+%
+% When we roll back from a release that has \pkg{expl3} preloaded, the
+% definitions of \cs{@pushfilename} and \cs{@popfilename} can't be
+% completely rolled back otherwise \pkg{expl3}-based packages won't
+% have the automatic \cs{ExplSyntaxOff} at the end. Here and below for
+% \cs{@popfilename}, we don't roll back all the way through if coming
+% from \LaTeX${}>2020-02-02$.
+% \changes{v1.4a}{2021/03/27}
+% {Do not completely roll back if \pkg{expl3} is loaded.}
+% \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}{\@pushfilename}%
%<latexrelease> {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}%
+%<latexrelease>\ifnum\sourceLaTeXdate<20200202\relax
+%<latexrelease> \GenericInfo{}{Defining 00-00-00\string\@pushfilename.}
%<latexrelease>\def\@pushfilename{%
%<latexrelease> \xdef\@currnamestack{%
%<latexrelease> {\@currname}%
%<latexrelease> {\@currext}%
%<latexrelease> {\the\catcode`\@}%
%<latexrelease> \@currnamestack}}
+%<latexrelease>\else
+%<latexrelease> \GenericInfo{}{Defining 2020-02-02\string\@pushfilename.}
+%<latexrelease>\def\@pushfilename{%
+%<latexrelease> \@expl@push@filename@@
+%<latexrelease> \xdef\@currnamestack{%
+%<latexrelease> {\@currname}%
+%<latexrelease> {\@currext}%
+%<latexrelease> {\the\catcode`\@}%
+%<latexrelease> \@currnamestack}%
+%<latexrelease> \@expl@push@filename@aux@@}
+%<latexrelease>\fi
%<latexrelease>\EndIncludeInRelease
\@onlypreamble\@pushfilename
% \end{macrocode}
@@ -676,9 +708,21 @@
%<latexrelease> \@expl@pop@filename@@}
%<latexrelease>\EndIncludeInRelease
%<latexrelease>
+% \end{macrocode}
+%
+% \changes{v1.4a}{2021/03/27}
+% {Do not completely roll back if \pkg{expl3} is loaded.}
+% \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}{\@popfilename}%
%<latexrelease> {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}%
+%<latexrelease>\ifnum\sourceLaTeXdate<20200202\relax
+%<latexrelease> \GenericInfo{}{Defining 00-00-00\string\@popfilename.}
%<latexrelease>\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil}
+%<latexrelease>\else
+%<latexrelease> \GenericInfo{}{Defining 2020-02-02\string\@popfilename.}
+%<latexrelease>\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil
+%<latexrelease> \@expl@pop@filename@@}
+%<latexrelease>\fi
%<latexrelease>\EndIncludeInRelease
\@onlypreamble\@popfilename
% \end{macrocode}
@@ -712,6 +756,7 @@
% Path to the current file if explicitly given. The auxiliary is
% needed here to insert a \cs{@empty} to prevent the loss of braces.
% \changes{v1.3u}{2020/11/20}{Macro added}
+% \changes{v1.3w}{2021/01/21}{Add empty entry for latexrelease}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
@@ -719,6 +764,7 @@
%<latexrelease>\IncludeInRelease{2020/10/01}{\@kernel@currpathstack}%
%<latexrelease> {Add \@kernel@currpathstack}%
\gdef\@kernel@currpathstack{}
+%<latexrelease>\g@addto@macro\@kernel@currpathstack{{}}
\def\@p@pfilepath#1{%
\gdef\@currpath{#1}\@p@pfilepath@aux\@empty}
\def\@p@pfilepath@aux#1\@nil{%
@@ -1026,12 +1072,12 @@
% be cautious when handling the identification string in case it
% contains UTF-8 characters.
% \changes{v1.3e}{2019/11/29}{Protect package info text (gh/52)}
-% \changes{v1.3r}{2020/10/01}{Allow for package subsitution}
+% \changes{v1.3r}{2020/10/01}{Allow for package substitution}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/10/01}%
-%<latexrelease> {\@pr@videpackage}{Allow for package subsitution}%
+%<latexrelease> {\@pr@videpackage}{Allow for package substitution}%
\def\@pr@videpackage[#1]{%
\expandafter\protected@xdef % <-- protected...
\csname ver@\@currname.\@currext\endcsname{#1}% Loaded package
@@ -1164,13 +1210,14 @@
%
% \begin{macro}{\PassOptionsToPackage}
% \begin{macro}{\PassOptionsToClass}
-% If the package has been loaded, we check that it was first loaded with
-% the options. Otherwise we add the option list to that of the package.
+% If the package has been loaded, we check that it was first loaded with
+% the options. Otherwise we add the option list to that of the package.
% \changes{v1.3t}{2020/10/18}{Drop path from \cs{input@path} (gh/414).}
+% \changes{v1.3x}{2021/02/18}{save raw option lists (gh/85)}
% \begin{macrocode}
%</2ekernel>
-%<latexrelease>\IncludeInRelease{2020/10/01}{\@pass@ptions}
-%<latexrelease> {Add file replacement in \@pass@ptions}%
+%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease> {\@pass@ptions}{Raw option lists}%
%<*2ekernel|latexrelease>
\def\@pass@ptions#1#2#3{%
\@expl@@@filehook@set@curr@file@@nNN
@@ -1187,12 +1234,41 @@
% \begin{macrocode}
\expandafter\let
\csname opt@#3.#1\expandafter\endcsname
- \csname opt@\reserved@a\endcsname}
+ \csname opt@\reserved@a\endcsname
+% \end{macrocode}
+% Extend raw option list
+% \begin{macrocode}
+ \@ifundefined{@raw@opt@#3.#1}%
+ {\expandafter\gdef\csname @raw@opt@#3.#1\endcsname{#2}}%
+ {\expandafter\g@addto@macro\csname @raw@opt@#3.#1\endcsname{,#2}}%
+}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
%
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2020/10/01}{\@pass@ptions}
+%<latexrelease> {Add file replacement in \@pass@ptions}%
+%<latexrelease>
+%<latexrelease>\def\@pass@ptions#1#2#3{%
+%<latexrelease> \@expl@@@filehook@set@curr@file@@nNN
+%<latexrelease> {\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}%
+%<latexrelease> \reserved@a\reserved@b
+%<latexrelease> \@expl@@@filehook@clear@replacement@flag@@
+%<latexrelease> \expandafter\xdef\csname opt@\reserved@a\endcsname{%
+%<latexrelease> \@ifundefined{opt@\reserved@a}\@empty
+%<latexrelease> {\csname opt@\reserved@a\endcsname,}%
+%<latexrelease> \zap@space#2 \@empty}%
+%<latexrelease> \expandafter\let
+%<latexrelease> \csname opt@#3.#1\expandafter\endcsname
+%<latexrelease> \csname opt@\reserved@a\endcsname}
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}{\@pass@ptions}
%<latexrelease> {\@pass@ptions}%
+%<latexrelease>
%<latexrelease>\def\@pass@ptions#1#2#3{%
%<latexrelease> \expandafter\xdef\csname opt@#3.#1\endcsname{%
%<latexrelease> \@ifundefined{opt@#3.#1}\@empty
@@ -1200,6 +1276,9 @@
%<latexrelease> \zap@space#2 \@empty}}
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
\@onlypreamble\@pass@ptions
% \end{macrocode}
%
@@ -1241,18 +1320,49 @@
% \end{macro}
%
% \begin{macro}{\OptionNotUsed}
+% \changes{v1.3x}{2021/02/18}{filter out =value from unused option list (gh/85)}
+% \begin{macro}{\@remove@eq@value}
+% \changes{v1.3x}{2021/02/18}{macro added (gh/85)}
% If we are in a class file, add |\CurrentOption| to the list of
% unused options. Otherwise, in a package file do nothing.
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease> {\OptionNotUsed}{filter unused option list}%
+%<*2ekernel|latexrelease>
+\def\@remove@eq@value#1=#2\@nil{#1}
+% \end{macrocode}
+%
+% \begin{macrocode}
\def\OptionNotUsed{%
\ifx\@currext\@clsextension
\xdef\@unusedoptionlist{%
\ifx\@unusedoptionlist\@empty\else\@unusedoptionlist,\fi
- \CurrentOption}%
+ \expandafter\@remove@eq@value\CurrentOption=\@nil}%
\fi}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\OptionNotUsed}{filter unused option list}%
+%<latexrelease>\let\@remove@eq@value\@undefined
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\def\OptionNotUsed{%
+%<latexrelease> \ifx\@currext\@clsextension
+%<latexrelease> \xdef\@unusedoptionlist{%
+%<latexrelease> \ifx\@unusedoptionlist\@empty\else\@unusedoptionlist,\fi
+%<latexrelease> \CurrentOption}%
+%<latexrelease> \fi}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
\@onlypreamble\OptionNotUsed
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\default@ds}
% The default option code.
@@ -1279,7 +1389,7 @@
% \changes{v0.2a}{1993/11/14}
% {Stop adding the global option list inside class files.}
% \changes{v0.2a}{1993/11/14}
-% {Optimise `empty option' code.}
+% {Optimize `empty option' code.}
% \changes{v0.2b}{1993/11/15}
% {Star form added.}
% \changes{v0.2c}{1993/11/17}
@@ -1312,19 +1422,50 @@
%
% \changes{v0.2y}{1994/02/07}
% {Add extra ,s so `two' is not matched with `twocolumn'}
+% \changes{v1.3z}{2021/03/05}{modify so braces to not give errors (gh/513)}
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease> {\@xprocess@ptions}{safer @xprocess@ptions}%
+%<*2ekernel|latexrelease>
\def\@xprocess@ptions{%
\ifx\@currext\@clsextension\else
+ \ifx\@classoptionslist\relax\else
\@for\CurrentOption:=\@classoptionslist\do{%
\ifx\CurrentOption\@empty\else
- \@expandtwoargs\in@{,\CurrentOption,}{,\@declaredoptions,}%
- \ifin@
+ \@ifundefined{ds@\CurrentOption}{}{%
\@use@ption
\expandafter\let\csname ds@\CurrentOption\endcsname\@empty
- \fi
+ }%
\fi}%
+ \fi
\fi
\@process@pti@ns}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@xprocess@ptions}{safer @xprocess@ptions}%
+%<latexrelease>\let\@remove@eq@value\@undefined
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\def\@xprocess@ptions{%
+%<latexrelease> \ifx\@currext\@clsextension\else
+%<latexrelease> \@for\CurrentOption:=\@classoptionslist\do{%
+%<latexrelease> \ifx\CurrentOption\@empty\else
+%<latexrelease> \@expandtwoargs\in@{,\CurrentOption,}{,\@declaredoptions,}%
+%<latexrelease> \ifin@
+%<latexrelease> \@use@ption
+%<latexrelease> \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
+%<latexrelease> \fi
+%<latexrelease> \fi}%
+%<latexrelease> \fi
+%<latexrelease> \@process@pti@ns}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
\@onlypreamble\@xprocess@ptions
% \end{macrocode}
%
@@ -1403,11 +1544,30 @@
% {Name changed from \cs{@executeoption}}
% \changes{v1.0e}{1994/05/17}
% {Execute option after removing from list, not before}
+% \changes{v1.3x}{2021/02/18}{filter out =value from unused option list (gh/85)}
% \begin{macrocode}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease> {\@use@ption}{filter unused option list}%
+%<*2ekernel|latexrelease>
\def\@use@ption{%
- \@expandtwoargs\@removeelement\CurrentOption
+ \@expandtwoargs\@removeelement
+ {\expandafter\@remove@eq@value\CurrentOption=\@nil}%
\@unusedoptionlist\@unusedoptionlist
\csname ds@\CurrentOption\endcsname}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@use@ption}{filter unused option list}%
+%<latexrelease>\def\@use@ption{%
+%<latexrelease> \@expandtwoargs\@removeelement\CurrentOption
+%<latexrelease> \@unusedoptionlist\@unusedoptionlist
+%<latexrelease> \csname ds@\CurrentOption\endcsname}
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+% \begin{macrocode}
\@onlypreamble\@use@ption
% \end{macrocode}
% \end{macro}
@@ -1460,7 +1620,7 @@
% the internal command, |\@fileswithoptions|.
% \begin{macro}{\documentclass}
% \changes{v1.0q}{1995/06/19}
-% {Dont redefine \cs{usepackage} in compat mode for /1634}
+% {Don't redefine \cs{usepackage} in compat mode for /1634}
% The main new-style class declaration.
% \begin{macrocode}
\def\documentclass{%
@@ -1721,15 +1881,23 @@
% {Prevent loss of brackets PR/3965}
% \changes{v2.1b}{2016/11/09}
% {Improve \cs{ifx} tests PR/4497}
+% \changes{v1.3x}{2021/02/18}{save raw class option list (gh/85)}
% \begin{macrocode}
%</2ekernel>
-%<latexrelease>\IncludeInRelease{2017/01/01}%
+%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease> {\@fileswith@pti@ns}{ifx tests in \@fileswith@pti@ns}%
%<*2ekernel|latexrelease>
\def\@fileswith@pti@ns#1[#2]#3[#4]{%
\ifx#1\@clsextension
\ifx\@classoptionslist\relax
\xdef\@classoptionslist{\zap@space#2 \@empty}%
+% \end{macrocode}
+% Save raw class list.
+% \begin{macrocode}
+ \gdef\@raw@classoptionslist{#2}%
+% \end{macrocode}
+%
+% \begin{macrocode}
\def\reserved@a{%
\@onefilewithoptions#3[{#2}][{#4}]#1%
\@documentclasshook}%
@@ -1750,8 +1918,8 @@
% \begin{macrocode}
\ifx\@nnil##1\relax\else
% \end{macrocode}
-% If |\ifx\@nnil##1\n@nil| is true then |#1| is (presumably) empty
-% (Older code used |\relax| which is slighly easier to get into |#1|
+% If |\ifx\@nnil##1\@nnil| is true then |#1| is (presumably) empty
+% (Older code used |\relax| which is slightly easier to get into |#1|
% by mistake, which would spoil this test.)
% \begin{macrocode}
\ifx\@nnil##1\@nnil\else
@@ -1768,6 +1936,33 @@
\fi
\reserved@a}
%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2017/01/01}%
+%<latexrelease> {\@fileswith@pti@ns}{ifx tests in \@fileswith@pti@ns}%
+%<latexrelease>\def\@fileswith@pti@ns#1[#2]#3[#4]{%
+%<latexrelease> \ifx#1\@clsextension
+%<latexrelease> \ifx\@classoptionslist\relax
+%<latexrelease> \xdef\@classoptionslist{\zap@space#2 \@empty}%
+%<latexrelease> \def\reserved@a{%
+%<latexrelease> \@onefilewithoptions#3[{#2}][{#4}]#1%
+%<latexrelease> \@documentclasshook}%
+%<latexrelease> \else
+%<latexrelease> \def\reserved@a{%
+%<latexrelease> \@onefilewithoptions#3[{#2}][{#4}]#1}%
+%<latexrelease> \fi
+%<latexrelease> \else
+%<latexrelease> \def\reserved@b##1,{%
+%<latexrelease> \ifx\@nnil##1\relax\else
+%<latexrelease> \ifx\@nnil##1\@nnil\else
+%<latexrelease> \noexpand\@onefilewithoptions##1[{#2}][{#4}]%
+%<latexrelease> \noexpand\@pkgextension
+%<latexrelease> \fi
+%<latexrelease> \expandafter\reserved@b
+%<latexrelease> \fi}%
+%<latexrelease> \edef\reserved@a{\zap@space#3 \@empty}%
+%<latexrelease> \edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nnil,}%
+%<latexrelease> \fi
+%<latexrelease> \reserved@a}
% \end{macrocode}
%
% \begin{macrocode}
@@ -1834,7 +2029,7 @@
% \usepackage{some/local/path/array}
% \usepackage{array}
% \end{verbatim}
-% won't load \file{array.sty} twice. It is remotely possible that
+% won't load |array.sty| twice. It is remotely possible that
% those are two different files, but as a matter of principles, we
% will consider that the base file name uniquely identifies a
% package, regardless of where it lives. This assumption already
@@ -2087,7 +2282,7 @@
% loaded.}
%
% This has changed in 2020. We now use a separate macro per package
-% to avoid interferences in case of nested packages. The whole
+% to avoid interference in case of nested packages. The whole
% code for handling this issue (GitHub 22) was provided by Hironobu
% Yamashita, thanks for that.
% \changes{v1.3k}{2020/04/07}{Use different method to ignore
@@ -2424,7 +2619,7 @@
% \changes{v0.2r}{1993/12/19}{Different message when ignoring a file}
% \changes{v0.3g}{1994/04/11}
% {Add star form,
-% dont write \cs{endinput} at the end of the file.}
+% don't write \cs{endinput} at the end of the file.}
% \changes{v1.0c}{1994/05/11}
% {Add checks for form feed and tab}
% \changes{v1.0m}{1995/04/21}
@@ -2549,15 +2744,15 @@
% this only works for input files ending in \texttt{.tex}. If a
% different extension is used there is no way to see that we are
% overwriting ourselves!
+% \changes{v1.3y}{2021/03/03}
+% {Fix overwrite check for files with UTF-8 (gh/415)}
% \begin{macrocode}
- \edef\reserved@a{#1}%
- \edef\reserved@a{\detokenize\expandafter{\reserved@a}}%
\edef\reserved@b{\detokenize\expandafter{\jobname}}%
- \ifx\reserved@a\reserved@b%
+ \ifx\@curr@file\reserved@b%
\@fileswtrue%
\else%
\edef\reserved@b{\reserved@b\detokenize{.tex}}%
- \ifx\reserved@a\reserved@b
+ \ifx\@curr@file\reserved@b
\@fileswtrue%
\fi%
\fi%
@@ -2640,7 +2835,8 @@
% Text before the |\end|, write it with a warning.
% \begin{macrocode}
\@latex@warning{Writing text `##1' before %
- \string\end{\@currenvir}\MessageBreak as last line of \@curr@file}%
+ \string\end{\@currenvir}\MessageBreak
+ as last line of \@curr@file}%
\immediate\write\reserved@c{##1}%
\fi%
\ifx\relax##2\relax%
@@ -2675,7 +2871,8 @@
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{2019/10/01}%
-%<latexrelease> {\filec@ntents}{Spaces in file names + optional arg}%
+%<latexrelease> {\filec@ntents}{Spaces in file names + optional arg}%
+%<latexrelease>
%<latexrelease>\def\filecontents{\@tempswatrue\@fileswtrue
%<latexrelease> \@ifnextchar[\filec@ntents@opt\filec@ntents
%<latexrelease>}
@@ -2805,7 +3002,7 @@
%<latexrelease>\endgroup%
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease> {\filec@ntents}{Spaces in file names + optional arg}%
+%<latexrelease> {\filec@ntents}{Spaces in file names + optional arg}%
%<latexrelease>
%<latexrelease>\let\filec@ntents@opt \@undefined
%<latexrelease>\let\filec@ntents@force \@undefined
@@ -2976,7 +3173,7 @@
% YYYYMMDD (if there was one, otherwise the value of
% |\requestedLaTeXdate|) and |\pkgcls@targetlabel| will be
% empty. If there was a request for a named version then
-% |\pkgcls@targetlabel| holds the verion name and
+% |\pkgcls@targetlabel| holds the version name and
% |\pkgcls@targetdate| is set to \texttt{1}.
%
% |\pkgcls@targetdate=0| is used to indicate that there was no
@@ -3063,7 +3260,7 @@
\pkgcls@parse@date@arg{#3}%
% \end{macrocode}
% When determining the correct release to load we keep track of
-% candiates in |\pkgcls@candidate| and initially we don't have any:
+% candidates in |\pkgcls@candidate| and initially we don't have any:
% \begin{macrocode}
\let\pkgcls@candidate\@empty
% \end{macrocode}
@@ -3103,7 +3300,7 @@
%
% But if it starts with an equal sign followed by a date string or
% followed by a version name then this means that we should roll
-% back to the state of the package at tht date or to the version
+% back to the state of the package at that date or to the version
% with the requested name.
%
% If there was no optional argument or the optional argument
@@ -3381,7 +3578,7 @@
%
% \begin{macro}{\pkgcls@show@selection}
% This command records what selection was made. As that is needed
-% in two places (and it is rather lengthly) it was placed in a
+% in two places (and it is rather lengthy) it was placed in a
% separate command. The first argument is the name of the external
% file that is being loaded and is only needed for debugging. The
% second argument is the date that corresponds to this file and it
@@ -3484,7 +3681,7 @@
\pkgcls@releasedate
\fi
% \end{macrocode}
-% Otherwise the curent file is the right release, so we record that
+% Otherwise the current file is the right release, so we record that
% in the transcript and then carry on.
% \begin{macrocode}
\else