diff options
author | Karl Berry <karl@freefriends.org> | 2022-06-21 20:23:29 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-06-21 20:23:29 +0000 |
commit | 30015ed56b95dd3a90998697dbf10ba53b6332d6 (patch) | |
tree | ee1b3c6eb2673d3fe175fd9dbabd21dcfc31c488 /Master/texmf-dist/source/latex | |
parent | 099def42994e734f58871e3d32c38e3c78eb8215 (diff) |
latex-base (21jun22)
git-svn-id: svn://tug.org/texlive/trunk@63683 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r-- | Master/texmf-dist/source/latex/base/ltclass.dtx | 9 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/base/ltkeys.dtx | 53 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/base/ltvers.dtx | 2 |
3 files changed, 44 insertions, 20 deletions
diff --git a/Master/texmf-dist/source/latex/base/ltclass.dtx b/Master/texmf-dist/source/latex/base/ltclass.dtx index 20e59353ec0..35c4251fcea 100644 --- a/Master/texmf-dist/source/latex/base/ltclass.dtx +++ b/Master/texmf-dist/source/latex/base/ltclass.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltclass.dtx} - [2022/04/16 v1.5b LaTeX Kernel (Class & Package Interface)] + [2022/06/20 v1.5c LaTeX Kernel (Class & Package Interface)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltclass.dtx} @@ -2150,7 +2150,7 @@ % actions prepend \cs{@currpath} to \cs{@currname} (namely loading, % as we have to respect the given path). % -% A file substituiton isn't followed just yet because at this point +% A file substitution isn't followed just yet because at this point % we are parsing user input, so the file is still what the user % asked for, and not the file actually loaded. % \begin{macrocode} @@ -2176,6 +2176,7 @@ \@ifl@aded\@currext\@currname % \end{macrocode} % \changes{v1.5b}{2022/03/18}{Switch to \cs{ProcessKeyOptions}} +% \changes{v1.5c}{2022/06/20}{Pass raw options 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. @@ -2185,7 +2186,9 @@ \@ifundefined{opt@fam@\@currname.\@currext} {\@onefilewithoptions@clashchk{#2}} {% - \@namedef{opt@\@currname.\@currext}{#2}% + \expandafter\edef\csname opt@\@currname.\@currext\endcsname + {\zap@space#2 \@empty}% + \@namedef{@raw@opt@\@currname.\@currext}{#2}% \expandafter\expandafter\expandafter\ProcessKeyOptions \expandafter\expandafter\expandafter [\csname opt@fam@\@currname.\@currext\endcsname]% diff --git a/Master/texmf-dist/source/latex/base/ltkeys.dtx b/Master/texmf-dist/source/latex/base/ltkeys.dtx index c6dfa5f6ddb..fbd5ce302af 100644 --- a/Master/texmf-dist/source/latex/base/ltkeys.dtx +++ b/Master/texmf-dist/source/latex/base/ltkeys.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltkeys.dtx} - [2022/06/16 v1.0g LaTeX Kernel (Kevyal options)] + [2022/06/20 v1.0h LaTeX Kernel (Kevyal options)] % \iffalse \documentclass{l3doc} \GetFileInfo{ltkeys.dtx} @@ -258,6 +258,7 @@ % % \begin{macro}{\@@_options_global:n} % \changes{v1.0f}{2022/03/18}{Simplify to always cover global options} +% \changes{v1.0h}{2022/06/20}{Use raw options data} % Global (class) options are handled differently for \LaTeXe{} packages % and classes. Hence this function is essentially a check on the current % file type. The initial test is needed as \LaTeXe{} allows variables to @@ -266,7 +267,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_options_global:n #1 { - \cs_if_eq:NNF \@classoptionslist \scan_stop: + \cs_if_eq:NNF \@raw@classoptionslist \scan_stop: { \cs_if_eq:NNTF \@currext \@clsextension { \@@_options_class:n {#1} } @@ -278,8 +279,10 @@ % % \begin{macro}{\@@_options_class:n} % \changes{v1.0g}{2022/06/16}{Better handling of option removal} -% \begin{macro}{\@@_options_remove:nnn} -% \changes{v1.0g}{2022/06/16}{New function} +% \changes{v1.0h}{2022/06/19}{Further work on handling of option removal} +% \changes{v1.0h}{2022/06/20}{Use raw options data} +% \begin{macro}{\@@_options_class:nnn} +% \changes{v1.0h}{2022/06/20}{New function} % For classes, each option (stripped of any content after |=|) % is checked for existence as a key. If found, the option is added to % the combined list for processing. On the other hand, unused options @@ -289,36 +292,44 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_options_class:n #1 { - \cs_if_free:cF { opt@ \@currname . \@currext } + \cs_if_free:cF { @raw@opt@ \@currname . \@currext } { \keys_if_exist:nnTF {#1} { unknown } { \clist_put_right:Nv \l_@@_options_clist - { opt@ \@currname . \@currext } + { @raw@opt@ \@currname . \@currext } } { - \clist_map_inline:cn { opt@ \@currname . \@currext } + \clist_map_inline:cn { @raw@opt@ \@currname . \@currext } { - \@@_options_remove:enn + \exp_args:Ne \@@_options_class:nnn { \@@_remove_equals:n {##1} } {##1} {#1} } } } } -\cs_new_protected:Npn \@@_options_remove:nnn #1#2#3 +\cs_new_protected:Npn \@@_options_class:nnn #1#2#3 { \keys_if_exist:nnTF {#3} {#1} { \clist_put_right:Nn \l_@@_options_clist {#2} } - { \clist_put_right:Nn \@unusedoptionlist {#1} } + { + \str_if_eq:eeF + { \exp_not:v { @raw@opt@ \@currname . \@currext } } + { \exp_not:V \@raw@classoption } + { \clist_put_right:Nn \@unusedoptionlist {#1} } + } } -\cs_generate_variant:Nn \@@_options_remove:nnn { e } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\@@_options_package:n} % \changes{v1.0g}{2022/06/16}{Better handling of option removal} +% \changes{v1.0h}{2022/06/19}{Further work on handling of option removal} +% \changes{v1.0h}{2022/06/20}{Use raw options data} +% \begin{macro}{\@@_options_package:nnn} +% \changes{v1.0h}{2022/06/19}{New function} % For global options when processing a package, the tasks are slightly % different from those for a class. The check is the same, but here % there is nothing to do if the option is not applicable. Each valid @@ -326,18 +337,28 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_options_package:n #1 { - \clist_map_inline:Nn \@classoptionslist + \clist_map_inline:Nn \@raw@classoptionslist { - \@@_options_remove:enn + \exp_args:Ne \@@_options_package:nnn { \@@_remove_equals:n {##1} } {##1} {#1} } } +\cs_new_protected:Npn \@@_options_package:nnn #1#2#3 + { + \keys_if_exist:nnT {#3} {#1} + { + \clist_put_right:Nn \l_@@_options_clist {#2} + \clist_remove_all:Nn \@unusedoptionlist {#1} + } + } % \end{macrocode} % \end{macro} +% \end{macro} % % \begin{macro}{\@@_options_local:} -% If local options are found, the are added to the processing list. +% \changes{v1.0h}{2022/06/20}{Use raw options data} +% If local options are found, they are added to the processing list. % \LaTeXe{} stores options for each file in a macro which may or may not % exist, hence the need to use \cs{cs_if_exist:c}. % \begin{macrocode} @@ -345,10 +366,10 @@ { \cs_if_eq:NNF \@currext \@clsextension { - \cs_if_exist:cT { opt@ \@currname . \@currext } + \cs_if_exist:cT { @raw@opt@ \@currname . \@currext } { \clist_put_right:Nv \l_@@_options_clist - { opt@ \@currname . \@currext } + { @raw@opt@ \@currname . \@currext } } } } diff --git a/Master/texmf-dist/source/latex/base/ltvers.dtx b/Master/texmf-dist/source/latex/base/ltvers.dtx index 021bb5038f7..92cd1f4e5d1 100644 --- a/Master/texmf-dist/source/latex/base/ltvers.dtx +++ b/Master/texmf-dist/source/latex/base/ltvers.dtx @@ -115,7 +115,7 @@ {2022-06-01} %</2ekernel|latexrelease> %<*2ekernel> -\def\patch@level{1} +\def\patch@level{2} % \end{macrocode} % % \begin{macro}{\development@branch@name} |