summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/base/ltclass.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-06-08 20:41:20 +0000
committerKarl Berry <karl@freefriends.org>2022-06-08 20:41:20 +0000
commit0525ef25305c7f48ef158ac19f68bae09c664d60 (patch)
tree30bec1f740b86109fd5c0e21b1337f7f563d9dee /Master/texmf-dist/source/latex/base/ltclass.dtx
parent1ad2a2e7d1e951099f662da861d573aa77eeedce (diff)
latex2e (8jun22)
git-svn-id: svn://tug.org/texlive/trunk@63514 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/base/ltclass.dtx')
-rw-r--r--Master/texmf-dist/source/latex/base/ltclass.dtx79
1 files changed, 51 insertions, 28 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltclass.dtx b/Master/texmf-dist/source/latex/base/ltclass.dtx
index 06e0f437af1..20e59353ec0 100644
--- a/Master/texmf-dist/source/latex/base/ltclass.dtx
+++ b/Master/texmf-dist/source/latex/base/ltclass.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2021/08/25 v1.4f LaTeX Kernel (Class & Package Interface)]
+ [2022/04/16 v1.5b LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -338,7 +338,7 @@
% or the old name \cs{@ifpackagelater}.
% \DescribeMacro\IfFormatAtLeastTF
-% To test the format date use
+% To test the format date use
% \begin{quote}
% |\IfFormatAtLeastTF{|\meta{date}|}{|^^A
% \meta{true}|}{|\meta{false}|}|
@@ -434,7 +434,7 @@
% standard (and other non-standard) distributions can put informative
% strings in this argument.
%
-% \StopEventually{}
+% \MaybeStop{}
%
% \section{Implementation}
%
@@ -1833,7 +1833,7 @@
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\RequirePackageWithOptions}{Unused options issue}%
@@ -2175,27 +2175,22 @@
% \begin{macrocode}
\@ifl@aded\@currext\@currname
% \end{macrocode}
-% If the package is already loaded, check that there were no option
-% clashes:
-% \changes{v1.1b}{1998/05/07}
-% {Modify help message for latex/2805}
-% \begin{macrocode}
- {\@if@ptions\@currext{\@currname}{#2}{}%
- {\@latex@error
- {Option clash for \@cls@pkg\space \@currname}%
- {The package \@currname\space has already been loaded
- with options:\MessageBreak
- \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
- There has now been an attempt to load it
- with options\MessageBreak
- \space\space[#2]\MessageBreak
- Adding the global options:\MessageBreak
- \space\space
- \@ptionlist{\@currname.\@currext},#2\MessageBreak
- to your \noexpand\documentclass declaration may fix this.%
- \MessageBreak
- Try typing \space <return> \space to proceed.}}%
- \@firstofone}%
+% \changes{v1.5b}{2022/03/18}{Switch to \cs{ProcessKeyOptions}}
+% In the current preferred approach, a key family name will exist for
+% processing using \pkg{ltkeys}. In that case, we replace the previous
+% package options with the new ones, then call the key handler.
+% Otherwise, we use the more classical clash handler.
+% \begin{macrocode}
+ {%
+ \@ifundefined{opt@fam@\@currname.\@currext}
+ {\@onefilewithoptions@clashchk{#2}}
+ {%
+ \@namedef{opt@\@currname.\@currext}{#2}%
+ \expandafter\expandafter\expandafter\ProcessKeyOptions
+ \expandafter\expandafter\expandafter
+ [\csname opt@fam@\@currname.\@currext\endcsname]%
+ }%
+ }%
{\makeatletter
% \end{macrocode}
% The next line seems to be necessary for 2.09 compatibility (the
@@ -2298,6 +2293,34 @@
\@reset@ptions}
% \end{macrocode}
%
+% \begin{macro}{\@onefilewithoptions@clashchk}
+% If the package is already loaded, check that there were no option
+% clashes.
+% \changes{v1.1b}{1998/05/07}
+% {Modify help message for latex/2805}
+% \changes{v1.5a}{2021/11/30}
+% {Separated out from \cs{@onefilewithoptions}}
+% \begin{macrocode}
+\def\@onefilewithoptions@clashchk#1{%
+ \@if@ptions\@currext{\@currname}{#1}{}%
+ {\@latex@error
+ {Option clash for \@cls@pkg\space \@currname}%
+ {The package \@currname\space has already been loaded
+ with options:\MessageBreak
+ \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
+ There has now been an attempt to load it
+ with options\MessageBreak
+ \space\space[#1]\MessageBreak
+ Adding the global options:\MessageBreak
+ \space\space
+ \@ptionlist{\@currname.\@currext},#1\MessageBreak
+ to your \noexpand\documentclass declaration may fix this.%
+ \MessageBreak
+ Try typing \space <return> \space to proceed.}}%
+ \@firstofone}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macrocode}
\let\@currpkg@reqd\@empty
% \end{macrocode}
@@ -2622,7 +2645,7 @@
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
-%
+%
% \begin{macrocode}
\@onlypreamble\AtBeginDocument
% \end{macrocode}
@@ -2826,7 +2849,7 @@
% \end{macrocode}
%
% \changes{v1.3m}{2020-08-08}{define \cs{q@curr@file} directly as the
-% quotes have already been removed (gh/220)}
+% quotes have already been removed (gh/220)}
% \begin{macrocode}
\gdef\filec@ntents#1{%
\set@curr@file{\filec@ntents@checkdir#1}%