summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/kvoptions/README.md4
-rw-r--r--Master/texmf-dist/doc/latex/kvoptions/example-mycolorsetup.sty144
-rw-r--r--Master/texmf-dist/doc/latex/kvoptions/kvoptions.pdfbin480927 -> 502152 bytes
-rw-r--r--Master/texmf-dist/source/latex/kvoptions/kvoptions.dtx42
-rw-r--r--Master/texmf-dist/tex/latex/kvoptions/kvoptions-patch.sty550
-rw-r--r--Master/texmf-dist/tex/latex/kvoptions/kvoptions.sty837
6 files changed, 15 insertions, 1562 deletions
diff --git a/Master/texmf-dist/doc/latex/kvoptions/README.md b/Master/texmf-dist/doc/latex/kvoptions/README.md
index ecaccfa494f..04a4ca227ee 100644
--- a/Master/texmf-dist/doc/latex/kvoptions/README.md
+++ b/Master/texmf-dist/doc/latex/kvoptions/README.md
@@ -1,13 +1,13 @@
# kvoptions package for LaTeX
-Version: 2020-10-07 v3.14
+Version: 2022-06-15 v3.15
This package is intended for package authors who want to
use options in key value format for their package options.
## Copyright (C)
* 2007, 2009-2011 Heiko Oberdiek
-* 2016-2020 Oberdiek Package Support Group
+* 2016-2022 Oberdiek Package Support Group
## License
LATEX Project Public License, version 1.3c or later.
diff --git a/Master/texmf-dist/doc/latex/kvoptions/example-mycolorsetup.sty b/Master/texmf-dist/doc/latex/kvoptions/example-mycolorsetup.sty
deleted file mode 100644
index 5d41e814883..00000000000
--- a/Master/texmf-dist/doc/latex/kvoptions/example-mycolorsetup.sty
+++ /dev/null
@@ -1,144 +0,0 @@
-%%
-%% This is file `example-mycolorsetup.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% kvoptions.dtx (with options: `example')
-%%
-%% This is a generated file.
-%%
-%% Project: kvoptions
-%% Version: 2020-10-07 v3.14
-%%
-%% Copyright (C)
-%% 2004, 2006, 2007, 2009-2011 Heiko Oberdiek
-%% 2016-2020 Oberdiek Package Support Group
-%%
-%% This work 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. This version of this license is in
-%% https://www.latex-project.org/lppl/lppl-1-3c.txt
-%% and the latest version of this license is in
-%% https://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of
-%% LaTeX version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainers of this work are
-%% Heiko Oberdiek and the Oberdiek Package Support Group
-%% https://github.com/ho-tex/kvoptions/issues
-%%
-%%
-%% This work consists of the main source file kvoptions.dtx
-%% and the derived files
-%% kvoptions.sty, kvoptions.pdf, kvoptions.ins, kvoptions.drv,
-%% kvoptions-patch.sty, example-mycolorsetup.sty,
-%% kvoptions-test1.tex, kvoptions-test2.tex,
-%% kvoptions-test3.tex, kvoptions-test4.tex,
-%% kvoptions-test4.sty.
-%%
-%% No we don't need the option 'color'.
-%% With color support option 'emphcolor' will dynamically
-%% change the color of \emph statements.
- % Package identification
- % -----------------------
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{example-mycolorsetup}[2019/11/29 Managing my colors]
-
-\RequirePackage{iftex}
-\RequirePackage{kvoptions}
-
- % Option declarations
- % -------------------
-
-\SetupKeyvalOptions{
- family=MCS,
- prefix=MCS@
-}
- % Use a shorter family name and prefix
-
- % Option print
-\DeclareBoolOption{print}
- % is the same as
- % \DeclareBoolOption[false]{print}
-
- % Option driver
-\ifpdf
- \DeclareStringOption[pdftex]{driver}
-\else
- \DeclareStringOption[dvips]{driver}
-\fi
-
- % Alternative interface for driver options
-\DeclareVoidOption{dvips}{\SetupDriver}
-\DeclareVoidOption{dvipdfm}{\SetupDriver}
-\DeclareVoidOption{pdftex}{\SetupDriver}
- % In \SetupDriver we take the current option \CurrentOption
- % and pass it to the driver option.
- % The \expandafter commands expand \CurrentOption at the
- % time, when \SetupDriver is executed and \CurrentOption
- % has the correct meaning.
-\newcommand*{\SetupDriver}{%
- \expandafter\@SetupDriver\expandafter{\CurrentOption}%
-}
-\newcommand*{\@SetupDriver}[1]{%
- \setkeys{MCS}{driver={#1}}%
-}
-
- % Option emph
- % An empty value means, we want to have no color for \emph.
- % If the user specifies option emph without value, the red is used.
-\DeclareStringOption{emph}[red]
- % is the same as
- % \DeclareStringOption[]{emph}[red]
-
- % Default option rule
-\DeclareDefaultOption{%
- \ifx\CurrentOptionValue\relax
- \PackageWarningNoLine{\@currname}{%
- Unknown option `\CurrentOption'\MessageBreak
- is passed to package `color'%
- }%
- % Pass the option to package color.
- % Again it is better to expand \CurrentOption.
- \expandafter\PassOptionsToPackage
- \expandafter{\CurrentOption}{color}%
- \else
- % Package color does not take options with values.
- % We provide the standard LaTeX error.
- \@unknownoptionerror
- \fi
-}
-
- % Process options
- % ---------------
-\ProcessKeyvalOptions*
-
- % Implementation depending on option values
- % -----------------------------------------
- % Code for print mode
-\ifMCS@print
- \PassOptionsToPackage{monochrome}{color}
- % tells package color to use black and white
-\fi
-
-\RequirePackage[\MCS@driver]{color}
- % load package color with the correct driver
-
- % \emph setup
-\ifx\MCS@emph\@empty
- % \@empty is a predefined macro with empty contents.
- % the option value of option emph is empty, thus
- % we do not want a redefinition of \emph.
-\else
- \renewcommand*{\emph}[1]{%
- \textcolor{\MCS@emph}{#1}%
- }
-\fi
-
-\endinput
-%%
-%% End of file `example-mycolorsetup.sty'.
diff --git a/Master/texmf-dist/doc/latex/kvoptions/kvoptions.pdf b/Master/texmf-dist/doc/latex/kvoptions/kvoptions.pdf
index fd9e72e93a1..509dbdab999 100644
--- a/Master/texmf-dist/doc/latex/kvoptions/kvoptions.pdf
+++ b/Master/texmf-dist/doc/latex/kvoptions/kvoptions.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/kvoptions/kvoptions.dtx b/Master/texmf-dist/source/latex/kvoptions/kvoptions.dtx
index 38dfa185861..2dc5905405f 100644
--- a/Master/texmf-dist/source/latex/kvoptions/kvoptions.dtx
+++ b/Master/texmf-dist/source/latex/kvoptions/kvoptions.dtx
@@ -1,12 +1,12 @@
% \iffalse meta-comment
%
% File: kvoptions.dtx
-% Version: 2020-10-07 v3.14
+% Version: 2022-06-15 v3.15
% Info: Key value format for package options
%
% Copyright (C)
% 2004, 2006, 2007, 2009-2011 Heiko Oberdiek
-% 2016-2020 Oberdiek Package Support Group
+% 2016-2022 Oberdiek Package Support Group
% https://github.com/ho-tex/kvoptions/issues
%
% This work may be distributed and/or modified under the
@@ -85,7 +85,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO)}
+\Msg{* Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -97,11 +97,11 @@
This is a generated file.
Project: kvoptions
-Version: 2020-10-07 v3.14
+Version: 2022-06-15 v3.15
Copyright (C)
2004, 2006, 2007, 2009-2011 Heiko Oberdiek
- 2016-2020 Oberdiek Package Support Group
+ 2016-2022 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -171,7 +171,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{kvoptions.drv}%
- [2020-10-07 v3.14 Key value format for package options (HO)]%
+ [2022-06-15 v3.15 Key value format for package options (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -185,7 +185,7 @@ and the derived files
% \GetFileInfo{kvoptions.drv}
%
% \title{The \xpackage{kvoptions} package}
-% \date{2020-10-07 v3.14}
+% \date{2022-06-15 v3.15}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/kvoptions/issues}}}
%
@@ -1152,7 +1152,7 @@ and the derived files
\fi
\expandafter\x\csname ver@kvoptions.sty\endcsname
\ProvidesPackage{kvoptions}%
- [2020-10-07 v3.14 Key value format for package options (HO)]%
+ [2022-06-15 v3.15 Key value format for package options (HO)]%
% \end{macrocode}
%
% \paragraph{Catcodes}
@@ -1976,7 +1976,7 @@ and the derived files
,%
}%
\fi
- \@expandtwoargs\@removeelement\KVO@CurrentOption
+ \@expandtwoargs\@removeelement{\expandafter\@remove@eq@value\KVO@CurrentOption=\@nil}%
\@unusedoptionlist\@unusedoptionlist
}{}%
}%
@@ -2286,7 +2286,7 @@ and the derived files
\TMP@EnsureCode{124}{12}% |
\edef\KVO@AtEnd{\KVO@AtEnd\noexpand\endinput}
\ProvidesPackage{kvoptions-patch}%
- [2020-10-07 v3.14 LaTeX patch for keyval options (HO)]%
+ [2022-06-15 v3.15 LaTeX patch for keyval options (HO)]%
% \end{macrocode}
%
% Check for \eTeX.
@@ -2799,25 +2799,6 @@ and the derived files
% \end{description}
%
%
-% \paragraph{Bundle.} All the packages of the bundle `kvoptions'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/kvoptions.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{kvoptions.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip kvoptions.tds.zip -d ~/texmf|
-% \end{quote}
%
% \subsection{Package installation}
%
@@ -3124,6 +3105,9 @@ and the derived files
% \LaTeX\ 2020-10-01 or newer and so it will abort loading if it detects it.
% This fixes github issue \#5.
% \end{Version}
+% \begin{Version}{2022-06-15 v3.15}
+% \item Remove only the key from the \cs{@unusedoptionlist}
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/Master/texmf-dist/tex/latex/kvoptions/kvoptions-patch.sty b/Master/texmf-dist/tex/latex/kvoptions/kvoptions-patch.sty
deleted file mode 100644
index d06d0de9ffe..00000000000
--- a/Master/texmf-dist/tex/latex/kvoptions/kvoptions-patch.sty
+++ /dev/null
@@ -1,550 +0,0 @@
-%%
-%% This is file `kvoptions-patch.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% kvoptions.dtx (with options: `patch')
-%%
-%% This is a generated file.
-%%
-%% Project: kvoptions
-%% Version: 2020-10-07 v3.14
-%%
-%% Copyright (C)
-%% 2004, 2006, 2007, 2009-2011 Heiko Oberdiek
-%% 2016-2020 Oberdiek Package Support Group
-%%
-%% This work 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. This version of this license is in
-%% https://www.latex-project.org/lppl/lppl-1-3c.txt
-%% and the latest version of this license is in
-%% https://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of
-%% LaTeX version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainers of this work are
-%% Heiko Oberdiek and the Oberdiek Package Support Group
-%% https://github.com/ho-tex/kvoptions/issues
-%%
-%%
-%% This work consists of the main source file kvoptions.dtx
-%% and the derived files
-%% kvoptions.sty, kvoptions.pdf, kvoptions.ins, kvoptions.drv,
-%% kvoptions-patch.sty, example-mycolorsetup.sty,
-%% kvoptions-test1.tex, kvoptions-test2.tex,
-%% kvoptions-test3.tex, kvoptions-test4.tex,
-%% kvoptions-test4.sty.
-%%
-%% No we don't need the option 'color'.
-%% With color support option 'emphcolor' will dynamically
-%% change the color of \emph statements.
-\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
-\IfFormatAtLeastTF{2020/10/01}{\PackageWarning{kvoptions-patch}%
- {kvoptions-patch is not compatible with \MessageBreak
- LaTeX \fmtversion\MessageBreak Loading is aborted}{}}{}
-\IfFormatAtLeastTF{2020/10/01}{\endinput}{}
-
-\def\KVO@IfDefThen#1#2{%
- \ifx#1\ltx@undefined
- \else
- \ifx#1\relax
- \else
- #2%
- \fi
- \fi
-}%
-\def\KVO@GetClassOptionsList{%
- \let\KVO@classoptionslist\@classoptionslist
- \KVO@IfDefThen\@classoptionslist{%
- \KVO@IfDefThen\XKV@documentclass{%
- \ifx\XKV@documentclass\ltx@empty
- \else
- \KVO@IfDefThen\XKV@classoptionslist{%
- \ifx\XKV@classoptionslist\ltx@empty
- \else
- \let\KVO@classoptionslist\XKV@classoptionslist
- \fi
- }%
- \fi
- }%
- }%
-}%
-\NeedsTeXFormat{LaTeX2e}
-\begingroup\catcode61\catcode48\catcode32=10\relax%
- \catcode13=5 % ^^M
- \endlinechar=13 %
- \catcode123=1 % {
- \catcode125=2 % }
- \catcode64=11 % @
- \def\x{\endgroup
- \expandafter\edef\csname KVO@AtEnd\endcsname{%
- \endlinechar=\the\endlinechar\relax
- \catcode13=\the\catcode13\relax
- \catcode32=\the\catcode32\relax
- \catcode35=\the\catcode35\relax
- \catcode61=\the\catcode61\relax
- \catcode64=\the\catcode64\relax
- \catcode123=\the\catcode123\relax
- \catcode125=\the\catcode125\relax
- }%
- }%
-\x\catcode61\catcode48\catcode32=10\relax%
-\catcode13=5 % ^^M
-\endlinechar=13 %
-\catcode35=6 % #
-\catcode64=11 % @
-\catcode123=1 % {
-\catcode125=2 % }
-\def\TMP@EnsureCode#1#2{%
- \edef\KVO@AtEnd{%
- \KVO@AtEnd
- \catcode#1=\the\catcode#1\relax
- }%
- \catcode#1=#2\relax
-}
-\TMP@EnsureCode{39}{12}% '
-\TMP@EnsureCode{40}{12}% (
-\TMP@EnsureCode{41}{12}% )
-\TMP@EnsureCode{43}{12}% +
-\TMP@EnsureCode{44}{12}% ,
-\TMP@EnsureCode{45}{12}% -
-\TMP@EnsureCode{46}{12}% .
-\TMP@EnsureCode{47}{12}% /
-\TMP@EnsureCode{58}{12}% :
-\TMP@EnsureCode{60}{12}% <
-\TMP@EnsureCode{62}{12}% >
-\TMP@EnsureCode{91}{12}% [
-\TMP@EnsureCode{93}{12}% ]
-\TMP@EnsureCode{96}{12}% `
-\TMP@EnsureCode{124}{12}% |
-\edef\KVO@AtEnd{\KVO@AtEnd\noexpand\endinput}
-\ProvidesPackage{kvoptions-patch}%
- [2020-10-07 v3.14 LaTeX patch for keyval options (HO)]%
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname eTeXversion\endcsname\relax
- \PackageWarningNoLine{kvoptions-patch}{%
- Package loading is aborted, because e-TeX is missing%
- }%
- \expandafter\KVO@AtEnd
-\fi%
-\RequirePackage{etexcmds}[2007/09/09]
-\ifetex@unexpanded
-\else
- \PackageError{kvoptions-patch}{%
- Could not find eTeX's \string\unexpanded.\MessageBreak
- Try adding \string\RequirePackage\string{etexcmds\string} %
- before \string\documentclass%
- }\@ehd
- \expandafter\KVO@AtEnd
-\fi%
-\@ifpackageloaded{xkvltxp}{%
- \PackageWarningNoLine{kvoptions}{%
- Option `patch' cannot be used together with\MessageBreak
- package `xkvltxp' that is already loaded.\MessageBreak
- Therefore package loading is aborted%
- }%
- \KVO@AtEnd
-}{}%
-\def\@if@ptions#1#2#3{%
- \begingroup
- \KVO@normalize\KVO@temp{#3}%
- \edef\x{\endgroup
- \noexpand\@if@pti@ns{%
- \detokenize\expandafter\expandafter\expandafter{%
- \csname opt@#2.#1\endcsname
- }%
- }{%
- \detokenize\expandafter{\KVO@temp}%
- }%
- }%
- \x
-}
-\def\@pass@ptions#1#2#3{%
- \KVO@normalize\KVO@temp{#2}%
- \@ifundefined{opt@#3.#1}{%
- \expandafter\gdef\csname opt@#3.#1%
- \expandafter\endcsname\expandafter{%
- \KVO@temp
- }%
- }{%
- \expandafter\gdef\csname opt@#3.#1%
- \expandafter\expandafter\expandafter\endcsname
- \expandafter\expandafter\expandafter{%
- \csname opt@#3.#1\expandafter\endcsname\expandafter,\KVO@temp
- }%
- }%
-}
-\def\ProcessOptions{%
- \let\ds@\@empty
- \@ifundefined{opt@\@currname.\@currext}{%
- \let\@curroptions\@empty
- }{%
- \expandafter\expandafter\expandafter\def
- \expandafter\expandafter\expandafter\@curroptions
- \expandafter\expandafter\expandafter{%
- \csname opt@\@currname.\@currext\endcsname
- }%
- }%
- \@ifstar\KVO@xprocess@ptions\KVO@process@ptions
-}
-\def\KVO@process@ptions{%
- \@for\CurrentOption:=\@declaredoptions\do{%
- \ifx\CurrentOption\@empty
- \else
- \begingroup
- \ifx\@currext\@clsextension
- \toks@{}%
- \else
- \KVO@GetClassOptionsList
- \toks@\expandafter{\KVO@classoptionslist,}%
- \fi
- \toks\tw@\expandafter{\@curroptions}%
- \edef\x{\endgroup
- \noexpand\in@{,\CurrentOption,}{,\the\toks@\the\toks\tw@,}%
- }%
- \x
- \ifin@
- \KVO@use@ption
- \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
- \fi
- \fi
- }%
- \KVO@process@pti@ns
-}
-\def\KVO@xprocess@ptions{%
- \ifx\@currext\@clsextension
- \else
- \KVO@GetClassOptionsList
- \@for\CurrentOption:=\KVO@classoptionslist\do{%
- \ifx\CurrentOption\@empty
- \else
- \KVO@in@\CurrentOption\@declaredoptions
- \ifin@
- \KVO@use@ption
- \expandafter\let\csname ds@\CurrentOption\endcsname\@empty
- \fi
- \fi
- }%
- \fi
- \KVO@process@pti@ns
-}
-\def\KVO@in@#1#2{%
- \in@false
- \begingroup
- \@for\x:=#2\do{%
- \ifx\x#1\relax
- \in@true
- \fi
- }%
- \edef\x{\endgroup
- \ifin@
- \noexpand\in@true
- \fi
- }%
- \x
-}
-\def\KVO@process@pti@ns{%
- \@for\CurrentOption:=\@curroptions\do{%
- \@ifundefined{ds@\KVO@SanitizedCurrentOption}{%
- \KVO@use@ption
- \default@ds
- }%
- \KVO@use@ption
- }%
- \@for\CurrentOption:=\@declaredoptions\do{%
- \expandafter\let\csname ds@\CurrentOption\endcsname\relax
- }%
- \let\CurrentOption\@empty
- \let\@fileswith@pti@ns\@@fileswith@pti@ns
- \AtEndOfPackage{\let\@unprocessedoptions\relax}%
-}
-\def\KVO@use@ption{%
- \begingroup
- \edef\x{\endgroup
- \noexpand\@removeelement{%
- \detokenize\expandafter{\CurrentOption}%
- }{%
- \detokenize\expandafter{\@unusedoptionlist}%
- }%
- }%
- \x\@unusedoptionlist
- \csname ds@\KVO@SanitizedCurrentOption\endcsname
-}
-\def\OptionNotUsed{%
- \ifx\@currext\@clsextension
- \xdef\@unusedoptionlist{%
- \ifx\@unusedoptionlist\@empty
- \else
- \detokenize\expandafter{\@unusedoptionlist,}%
- \fi
- \detokenize\expandafter{\CurrentOption}%
- }%
- \fi
-}
-\def\CurrentOption@SaveLevel{0}
-\def\ExecuteOptions{%
- \expandafter\KVO@ExecuteOptions
- \csname CurrentOption@\CurrentOption@SaveLevel\endcsname
-}
-\def\KVO@ExecuteOptions#1#2{%
- \let#1\CurrentOption
- \edef\CurrentOption@SaveLevel{%
- \the\numexpr\CurrentOption@SaveLevel+1%
- }%
- \@for\CurrentOption:=#2\do{%
- \csname ds@\CurrentOption\endcsname
- }%
- \edef\CurrentOption@SaveLevel{%
- \the\numexpr\CurrentOption@SaveLevel-1%
- }%
- \let\CurrentOption#1%
-}
-\def\KVO@fileswith@pti@ns#1[#2]#3[#4]{%
- \ifx#1\@clsextension
- \ifx\@classoptionslist\relax
- \KVO@normalize\KVO@temp{#2}%
- \expandafter\gdef\expandafter\@classoptionslist\expandafter{%
- \KVO@temp
- }%
- \def\reserved@a{%
- \KVO@onefilewithoptions{#3}[{#2}][{#4}]#1%
- \@documentclasshook
- }%
- \else
- \def\reserved@a{%
- \KVO@onefilewithoptions{#3}[{#2}][{#4}]#1%
- }%
- \fi
- \else
- \begingroup
- \let\KVO@temp\relax
- \let\KVO@onefilewithoptions\relax
- \let\@pkgextension\relax
- \def\reserved@b##1,{%
- \ifx\@nil##1\relax
- \else
- \ifx\relax##1\relax
- \else
- \KVO@onefilewithoptions{##1}[{\KVO@temp}][{#4}]%
- \@pkgextension
- \fi
- \expandafter\reserved@b
- \fi
- }%
- \edef\reserved@a{\zap@space#3 \@empty}%
- \edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nil,}%
- \toks@{#2}%
- \def\KVO@temp{\the\toks@}%
- \edef\reserved@a{\endgroup \reserved@a}%
- \fi
- \reserved@a
-}
-\def\KVO@onefilewithoptions#1[#2][#3]#4{%
- \@pushfilename
- \xdef\@currname{#1}%
- \global\let\@currext#4%
- \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
- \let\CurrentOption\@empty
- \@reset@ptions
- \makeatletter
- \def\reserved@a{%
- \@ifl@aded\@currext{#1}{%
- \@if@ptions\@currext{#1}{#2}{%
- }{%
- \begingroup
- \@ifundefined{opt@#1.\@currext}{%
- \def\x{}%
- }{%
- \edef\x{%
- \expandafter\expandafter\expandafter\strip@prefix
- \expandafter\meaning\csname opt@#1.\@currext\endcsname
- }%
- }%
- \def\y{#2}%
- \edef\y{\expandafter\strip@prefix\meaning\y}%
- \@latex@error{Option clash for \@cls@pkg\space #1}{%
- The package #1 has already been loaded %
- with options:\MessageBreak
- \space\space[\x]\MessageBreak
- There has now been an attempt to load it %
- with options\MessageBreak
- \space\space[\y]\MessageBreak
- Adding the global options:\MessageBreak
- \space\space
- \x,\y\MessageBreak
- to your \noexpand\documentclass declaration may fix this.%
- \MessageBreak
- Try typing \space <return> \space to proceed.%
- }%
- \endgroup
- }%
- }{%
- \@pass@ptions\@currext{#2}{#1}%
- \global\expandafter
- \let\csname ver@\@currname.\@currext\endcsname\@empty
- \InputIfFileExists
- {\@currname.\@currext}%
- {}%
- {\@missingfileerror\@currname\@currext}%
- \let\@unprocessedoptions\@@unprocessedoptions
- \csname\@currname.\@currext-h@@k\endcsname
- \expandafter\let\csname\@currname.\@currext-h@@k\endcsname
- \@undefined
- \@unprocessedoptions
- }%
- \@ifl@ter\@currext{#1}{#3}{%
- }{%
- \@latex@warning@no@line{%
- You have requested,\on@line, %
- version\MessageBreak
- #3' of \@cls@pkg\space #1,\MessageBreak
- but only version\MessageBreak
- `\csname ver@#1.\@currext\endcsname'\MessageBreak
- is available%
- }%
- }%
- \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi
- \@popfilename
- \@reset@ptions
- }%
- \reserved@a
-}
-\def\@unknownoptionerror{%
- \@latex@error{%
- Unknown option `\KVO@SanitizedCurrentOption' %
- for \@cls@pkg\space`\@currname'%
- }{%
- The option `\KVO@SanitizedCurrentOption' was not declared in %
- \@cls@pkg\space`\@currname', perhaps you\MessageBreak
- misspelled its name. %
- Try typing \space <return> %
- \space to proceed.%
- }%
-}
-\def\@@unprocessedoptions{%
- \ifx\@currext\@pkgextension
- \@ifundefined{opt@\@currname.\@currext}{%
- \let\@curroptions\@empty
- }{%
- \expandafter\let\expandafter\@curroptions
- \csname opt@\@currname.\@currext\endcsname
- }%
- \@for\CurrentOption:=\@curroptions\do{%
- \ifx\CurrentOption\@empty\else\@unknownoptionerror\fi
- }%
- \fi
-}
-\def\KVO@SanitizedCurrentOption{%
- \expandafter\strip@prefix\meaning\CurrentOption
-}
-\def\KVO@normalize#1#2{%
- \let\KVO@result\@empty
- \KVO@splitcomma#2,\@nil
- \let#1\KVO@result
-}
-\def\KVO@splitcomma#1,#2\@nil{%
- \KVO@ifempty{#1}{}{%
- \KVO@checkkv#1=\@nil
- }%
- \KVO@ifempty{#2}{}{\KVO@splitcomma#2\@nil}%
-}
-\def\KVO@ifempty#1{%
- \expandafter\ifx\expandafter\\\detokenize{#1}\\%
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-}
-\def\KVO@checkkv#1=#2\@nil{%
- \KVO@ifempty{#2}{%
- % option without value
- \edef\KVO@x{\zap@space#1 \@empty}%
- \ifx\KVO@x\@empty
- % ignore empty option
- \else
- % append to list
- \edef\KVO@result{%
- \etex@unexpanded\expandafter{\KVO@result},\KVO@x
- }%
- \fi
- }{%
- % #1: "key", #2: "value="
- % add key part
- \edef\KVO@result{%
- \etex@unexpanded\expandafter{\KVO@result},%
- \zap@space#1 \@empty
- }%
- \futurelet\@let@token\KVO@checkfirsttok#2 \@nil| = \@nil|\KVO@nil
- }%
-}
-\def\KVO@checkfirsttok{%
- \ifx\@let@token\bgroup
- % no space at start
- \expandafter\KVO@removelastspace\expandafter=%
- % "<value><spaceopt>= \@nil"
- \else
- \expandafter\KVO@checkfirstA
- \fi
-}
-\def\KVO@checkfirstA#1 #2\@nil{%
- \KVO@ifempty{#2}{%
- \KVO@removelastspace=#1 \@nil
- }{%
- \KVO@ifempty{#1}{%
- \KVO@removelastspace=#2\@nil
- }{%
- \KVO@removelastspace=#1 #2\@nil
- }%
- }%
-}
-\def\KVO@removelastspace#1 = \@nil|#2\KVO@nil{%
- \KVO@ifempty{#2}{%
- \edef\KVO@result{%
- \etex@unexpanded\expandafter{\KVO@result}%
- \etex@unexpanded\expandafter{\KVO@removegarbage#1\KVO@nil}%
- }%
- }{%
- \edef\KVO@result{%
- \etex@unexpanded\expandafter{\KVO@result}%
- \etex@unexpanded{#1}%
- }%
- }%
-}
-\def\KVO@removegarbage#1= \@nil#2\KVO@nil{#1}%
-\def\KVO@removeelement#1#2{%
- \begingroup
- \toks@={}%
- \@for\x:=#2\do{%
- \ifx\x\@empty
- \else
- \ifx\x#1\relax
- \else
- \edef\t{\the\toks@}%
- \ifx\t\@empty
- \else
- \toks@\expandafter{\the\toks@,}%
- \fi
- \toks@\expandafter{\the\expandafter\toks@\x}%
- \fi
- \fi
- }%
- \edef\x{\endgroup
- \def\noexpand#2{\the\toks@}%
- }%
- \x
-}
-\let\@@fileswith@pti@ns\KVO@fileswith@pti@ns
-\ifx\@fileswith@pti@ns\@badrequireerror
-\else
- \let\@fileswith@pti@ns\KVO@fileswith@pti@ns
-\fi
-\let\KVO@Patch=Y
-\KVO@AtEnd%
-\endinput
-%%
-%% End of file `kvoptions-patch.sty'.
diff --git a/Master/texmf-dist/tex/latex/kvoptions/kvoptions.sty b/Master/texmf-dist/tex/latex/kvoptions/kvoptions.sty
deleted file mode 100644
index b941b04c167..00000000000
--- a/Master/texmf-dist/tex/latex/kvoptions/kvoptions.sty
+++ /dev/null
@@ -1,837 +0,0 @@
-%%
-%% This is file `kvoptions.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% kvoptions.dtx (with options: `package')
-%%
-%% This is a generated file.
-%%
-%% Project: kvoptions
-%% Version: 2020-10-07 v3.14
-%%
-%% Copyright (C)
-%% 2004, 2006, 2007, 2009-2011 Heiko Oberdiek
-%% 2016-2020 Oberdiek Package Support Group
-%%
-%% This work 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. This version of this license is in
-%% https://www.latex-project.org/lppl/lppl-1-3c.txt
-%% and the latest version of this license is in
-%% https://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of
-%% LaTeX version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainers of this work are
-%% Heiko Oberdiek and the Oberdiek Package Support Group
-%% https://github.com/ho-tex/kvoptions/issues
-%%
-%%
-%% This work consists of the main source file kvoptions.dtx
-%% and the derived files
-%% kvoptions.sty, kvoptions.pdf, kvoptions.ins, kvoptions.drv,
-%% kvoptions-patch.sty, example-mycolorsetup.sty,
-%% kvoptions-test1.tex, kvoptions-test2.tex,
-%% kvoptions-test3.tex, kvoptions-test4.tex,
-%% kvoptions-test4.sty.
-%%
-%% No we don't need the option 'color'.
-%% With color support option 'emphcolor' will dynamically
-%% change the color of \emph statements.
-
-\begingroup\catcode61\catcode48\catcode32=10\relax%
- \catcode13=5 % ^^M
- \endlinechar=13 %
- \catcode35=6 % #
- \catcode39=12 % '
- \catcode44=12 % ,
- \catcode45=12 % -
- \catcode46=12 % .
- \catcode58=12 % :
- \catcode64=11 % @
- \catcode123=1 % {
- \catcode125=2 % }
- \expandafter\let\expandafter\x\csname ver@kvoptions.sty\endcsname
- \ifx\x\relax % plain-TeX, first loading
- \else
- \def\empty{}%
- \ifx\x\empty % LaTeX, first loading,
- % variable is initialized, but \ProvidesPackage not yet seen
- \else
- \expandafter\ifx\csname PackageInfo\endcsname\relax
- \def\x#1#2{%
- \immediate\write-1{Package #1 Info: #2.}%
- }%
- \else
- \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
- \fi
- \x{kvoptions}{The package is already loaded}%
- \aftergroup\endinput
- \fi
- \fi
-\endgroup%
-\begingroup\catcode61\catcode48\catcode32=10\relax%
- \catcode13=5 % ^^M
- \endlinechar=13 %
- \catcode35=6 % #
- \catcode39=12 % '
- \catcode40=12 % (
- \catcode41=12 % )
- \catcode44=12 % ,
- \catcode45=12 % -
- \catcode46=12 % .
- \catcode47=12 % /
- \catcode58=12 % :
- \catcode64=11 % @
- \catcode91=12 % [
- \catcode93=12 % ]
- \catcode123=1 % {
- \catcode125=2 % }
- \expandafter\ifx\csname ProvidesPackage\endcsname\relax
- \def\x#1#2#3[#4]{\endgroup
- \immediate\write-1{Package: #3 #4}%
- \xdef#1{#4}%
- }%
- \else
- \def\x#1#2[#3]{\endgroup
- #2[{#3}]%
- \ifx#1\@undefined
- \xdef#1{#3}%
- \fi
- \ifx#1\relax
- \xdef#1{#3}%
- \fi
- }%
- \fi
-\expandafter\x\csname ver@kvoptions.sty\endcsname
-\ProvidesPackage{kvoptions}%
- [2020-10-07 v3.14 Key value format for package options (HO)]%
-\begingroup\catcode61\catcode48\catcode32=10\relax%
- \catcode13=5 % ^^M
- \endlinechar=13 %
- \catcode123=1 % {
- \catcode125=2 % }
- \catcode64=11 % @
- \def\x{\endgroup
- \expandafter\edef\csname KVO@AtEnd\endcsname{%
- \endlinechar=\the\endlinechar\relax
- \catcode13=\the\catcode13\relax
- \catcode32=\the\catcode32\relax
- \catcode35=\the\catcode35\relax
- \catcode61=\the\catcode61\relax
- \catcode64=\the\catcode64\relax
- \catcode123=\the\catcode123\relax
- \catcode125=\the\catcode125\relax
- }%
- }%
-\x\catcode61\catcode48\catcode32=10\relax%
-\catcode13=5 % ^^M
-\endlinechar=13 %
-\catcode35=6 % #
-\catcode64=11 % @
-\catcode123=1 % {
-\catcode125=2 % }
-\def\TMP@EnsureCode#1#2{%
- \edef\KVO@AtEnd{%
- \KVO@AtEnd
- \catcode#1=\the\catcode#1\relax
- }%
- \catcode#1=#2\relax
-}
-\TMP@EnsureCode{1}{14}% ^^A (comment)
-\TMP@EnsureCode{2}{14}% ^^A (comment)
-\TMP@EnsureCode{33}{12}% !
-\TMP@EnsureCode{39}{12}% '
-\TMP@EnsureCode{40}{12}% (
-\TMP@EnsureCode{41}{12}% )
-\TMP@EnsureCode{42}{12}% *
-\TMP@EnsureCode{44}{12}% ,
-\TMP@EnsureCode{45}{12}% -
-\TMP@EnsureCode{46}{12}% .
-\TMP@EnsureCode{47}{12}% /
-\TMP@EnsureCode{58}{12}% :
-\TMP@EnsureCode{62}{12}% >
-\TMP@EnsureCode{91}{12}% [
-\TMP@EnsureCode{93}{12}% ]
-\TMP@EnsureCode{94}{7}% ^ (superscript)
-\TMP@EnsureCode{96}{12}% `
-\edef\KVO@AtEnd{\KVO@AtEnd\noexpand\endinput}
-\@ifundefined{define@key}{%
- \RequirePackage{keyval}\relax
-}{}
-\RequirePackage{ltxcmds}[2010/12/02]
-\RequirePackage{kvsetkeys}[2007/09/29]
-\@ifundefined{@x@protect}{%
- \def\@x@protect#1\fi#2#3{%
- \fi\protect#1%
- }%
- \let\@typeset@protect\relax
-}{}
-\@ifundefined{@currname}{%
- \def\@currname{}%
-}{}
-\@ifundefined{@currext}{%
- \def\@currext{}%
-}{}
-\DeclareOption{debugshow}{\catcode\@ne=9 }
-\DeclareOption{patch}{%
- \AtEndOfPackage{%
- \RequirePackage{kvoptions-patch}[2019/11/29]%
- }%
-}
-\ProcessOptions\relax
-\define@key{KVO}{family}{%
- \expandafter\edef\csname KVO@family@%
- \@currname.\@currext\endcsname{#1}%
-}
-\def\KVO@family{%
- \@ifundefined{KVO@family@\@currname.\@currext}{%
- \@currname
- }{%
- \csname KVO@family@\@currname.\@currext\endcsname
- }%
-}
-\define@key{KVO}{prefix}{%
- \expandafter\edef\csname KVO@prefix@%
- \@currname.\@currext\endcsname{#1}%
-}
-\def\KVO@prefix{%
- \ltx@ifundefined{KVO@prefix@\@currname.\@currext}{%
- \@currname @%
- }{%
- \csname KVO@prefix@\@currname.\@currext\endcsname
- }%
-}
-\define@key{KVO}{setkeys}{%
- \expandafter\def\csname KVO@setkeys@%
- \@currname.\@currext\endcsname{#1}%
-}
-\def\KVO@setkeys{%
- \ltx@IfUndefined{KVO@setkeys@\@currname.\@currext}{%
- \setkeys
- }{%
- \csname KVO@setkeys@\@currname.\@currext\endcsname
- }%
-}
-\newcommand*{\SetupKeyvalOptions}{%
- \kvsetkeys{KVO}%
-}
-\newcommand*{\DeclareBoolOption}[2][false]{%
- \KVO@ifdefinable{if\KVO@prefix#2}{%
- \KVO@ifdefinable{\KVO@prefix#2true}{%
- \KVO@ifdefinable{\KVO@prefix#2false}{%
- \csname newif\expandafter\endcsname
- \csname if\KVO@prefix#2\endcsname
- \@ifundefined{\KVO@prefix#2#1}{%
- \PackageWarning{kvoptions}{%
- Initialization of option `#2' failed,\MessageBreak
- cannot set boolean option to `#1',\MessageBreak
- use `true' or `false', now using `false'%
- }%
- }{%
- \csname\KVO@prefix#2#1\endcsname
- }%
- \begingroup
- \edef\x{\endgroup
- \noexpand\define@key{\KVO@family}{#2}[true]{%
- \noexpand\KVO@boolkey{\@currname}%
- \ifx\@currext\@clsextension
- \noexpand\@clsextension
- \else
- \noexpand\@pkgextension
- \fi
- {\KVO@prefix}{#2}{####1}%
- }%
- }%
- \x
- }%
- }%
- }%
-}
-\newcommand*{\DeclareComplementaryOption}[2]{%
- \@ifundefined{if\KVO@prefix#2}{%
- \PackageError{kvoptions}{%
- Cannot generate option code for `#1',\MessageBreak
- parent switch `#2' does not exist%
- }{%
- You are inside %
- \ifx\@currext\@clsextension class\else package\fi\space
- `\@currname.\@currext'.\MessageBreak
- `\KVO@family' is used as familiy %
- for the keyval options.\MessageBreak
- `\KVO@prefix' serves as prefix %
- for internal switch macros.\MessageBreak
- \MessageBreak
- \@ehc
- }%
- }{%
- \KVO@ifdefinable{\KVO@prefix#1true}{%
- \KVO@ifdefinable{\KVO@prefix#1false}{%
- \expandafter\let\csname\KVO@prefix#1false\expandafter\endcsname
- \csname\KVO@prefix#2true\endcsname
- \expandafter\let\csname\KVO@prefix#1true\expandafter\endcsname
- \csname\KVO@prefix#2false\endcsname
- \begingroup
- \edef\x{\endgroup
- \noexpand\define@key{\KVO@family}{#1}[true]{%
- \noexpand\KVO@boolkey{\@currname}%
- \ifx\@currext\@clsextension
- \noexpand\@clsextension
- \else
- \noexpand\@pkgextension
- \fi
- {\KVO@prefix}{#1}{####1}%
- }%
- }%
- \x
- }%
- }%
- }%
-}
-\def\KVO@ifdefinable#1{%
- \expandafter\@ifdefinable\csname #1\endcsname
-}
-\def\KVO@boolkey#1#2#3#4#5{%
- \edef\KVO@param{#5}%
- \ltx@onelevel@sanitize\KVO@param
- \ifx\KVO@param\KVO@true
- \expandafter\@firstofone
- \else
- \ifx\KVO@param\KVO@false
- \expandafter\expandafter\expandafter\@firstofone
- \else
- \ifx#2\@clsextension
- \expandafter\ClassWarning
- \else
- \expandafter\PackageWarning
- \fi
- {#1}{%
- Value `\KVO@param' is not supported by\MessageBreak
- option `#4'%
- }%
- \expandafter\expandafter\expandafter\@gobble
- \fi
- \fi
- {%
- ^^A\ifx#2\@clsextension
- ^^A \expandafter\ClassInfo
- ^^A\else
- ^^A \expandafter\PackageInfo
- ^^A\fi
- ^^A{#1}{[option] #4=\KVO@param}%
- \csname#3#4\KVO@param\endcsname
- }%
-}
-\def\KVO@true{true}
-\def\KVO@false{false}
-\ltx@onelevel@sanitize\KVO@true
-\ltx@onelevel@sanitize\KVO@false
-\newcommand*{\DeclareStringOption}[2][]{%
- \@ifnextchar[{%
- \KVO@DeclareStringOption{#1}{#2}@%
- }{%
- \KVO@DeclareStringOption{#1}{#2}{}[]%
- }%
-}
-\def\KVO@DeclareStringOption#1#2#3[#4]{%
- \KVO@ifdefinable{\KVO@prefix#2}{%
- \@namedef{\KVO@prefix#2}{#1}%
- \begingroup
- \ifx\\#3\\%
- \toks@{}%
- \else
- \toks@{[{#4}]}%
- \fi
- \edef\x{\endgroup
- \noexpand\define@key{\KVO@family}{#2}\the\toks@{%
- ^^A\begingroup
- ^^A \toks@{####1}%
- ^^A \ifx\@currext\@clsextension
- ^^A \noexpand\ClassInfo
- ^^A \else
- ^^A \noexpand\PackageInfo
- ^^A \fi
- ^^A {\@currname}{%
- ^^A [option] #2={\noexpand\the\toks@}%
- ^^A }%
- ^^A\endgroup
- \noexpand\def
- \expandafter\noexpand\csname\KVO@prefix#2\endcsname{####1}%
- }%
- }%
- \x
- }%
-}
-\newcommand*{\DeclareVoidOption}[2]{%
- \begingroup
- \let\next\@gobbletwo
- \KVO@ifdefinable{\KVO@prefix#1}{%
- \let\next\@firstofone
- }%
- \expandafter\endgroup
- \next{%
- \begingroup
- \edef\x{\endgroup
- \noexpand\define@key{\KVO@family}{#1}[\KVO@VOID@]{%
- \noexpand\KVO@voidkey{\@currname}%
- \ifx\@currext\@clsextension
- \noexpand\@clsextension
- \else
- \noexpand\@pkgextension
- \fi
- {#1}%
- {####1}%
- \expandafter\noexpand\csname\KVO@prefix#1\endcsname
- }%
- }%
- \x
- \begingroup
- \toks@{#2}%
- \expandafter\endgroup
- \expandafter\def
- \csname\KVO@prefix#1\expandafter\endcsname
- \expandafter{\the\toks@}%
- }%
-}
-\def\KVO@VOID@{@VOID@}
-\def\KVO@voidkey#1#2#3#4{%
- \def\CurrentOption{#3}%
- \begingroup
- \def\x{#4}%
- \expandafter\endgroup
- \ifx\x\KVO@VOID@
- \else
- \ifx#2\@clsextension
- \expandafter\ClassWarning
- \else
- \expandafter\PackageWarning
- \fi
- {#1}{%
- Unexpected value for option `#3'\MessageBreak
- is ignored%
- }%
- \fi
- ^^A\ifx#2\@clsextension
- ^^A \expandafter\ClassInfo
- ^^A\else
- ^^A \expandafter\PackageInfo
- ^^A\fi
- ^^A{#1}{[option] #3}%
-}
-\newcommand*{\DeclareDefaultOption}{%
- \@namedef{KVO@default@\@currname.\@currext}%
-}
-\newcommand*{\DeclareLocalOptions}[1]{%
- \comma@parse{#1}\KVO@DeclareLocalOption
-}
-\def\KVO@DeclareLocalOption#1{%
- \expandafter\def\csname KVO@local@\KVO@family @#1\endcsname{}%
-}
-\SetupKeyvalOptions{%
- family=KVOdyn,%
- prefix=KVOdyn@%
-}
-\DeclareBoolOption[true]{global}
-\DeclareComplementaryOption{local}{global}
-\DeclareStringOption[undef]{action}
-\let\KVOdyn@name\relax
-\let\KVOdyn@ext\@empty
-\define@key{KVOdyn}{class}{%
- \def\KVOdyn@name{#1}%
- \let\KVOdyn@ext\@clsextension
-}
-\define@key{KVOdyn}{package}{%
- \def\KVOdyn@name{#1}%
- \let\KVOdyn@ext\@pkgextension
-}
-\newcommand*{\DisableKeyvalOption}[3][]{%
- \begingroup
- \kvsetkeys{KVOdyn}{#1}%
- \def\x{\endgroup}%
- \@ifundefined{KVO@action@\KVOdyn@action}{%
- \PackageError{kvoptions}{%
- Unknown disable action %
- `\expandafter\strip@prefix\meaning\KVOdyn@action'\MessageBreak
- for option `#3' in keyval family '#2'%
- }\@ehc
- }{%
- \csname KVO@action@\KVOdyn@action\endcsname{#2}{#3}%
- }%
- \x
-}
-\def\KVO@action@undef#1#2{%
- \edef\x{\endgroup
- \ifKVOdyn@global\global\fi
- \let
- \expandafter\noexpand\csname KV@#1@#2\endcsname
- \relax
- \ifKVOdyn@global\global\fi
- \let
- \expandafter\noexpand\csname KV@#1@#2@default\endcsname
- \relax
- }%
- ^^A\PackageInfo{kvoptions}{%
- ^^A [option] key `#2' of family `#1'\MessageBreak
- ^^A is disabled (undef, \ifKVOdyn@global global\else local\fi)%
- ^^A}%
-}
-\def\KVO@action@ignore#1#2{%
- \edef\x{\endgroup
- \ifKVOdyn@global\global\fi
- \let
- \expandafter\noexpand\csname KV@#1@#2\endcsname
- \noexpand\@gobble
- \ifKVOdyn@global\global\fi
- \let
- \expandafter\noexpand\csname KV@#1@#2@default\endcsname
- \noexpand\@empty
- }%
- ^^A\PackageInfo{kvoptions}{%
- ^^A [option] key `#2' of family `#1'\MessageBreak
- ^^A is disabled (ignore, \ifKVOdyn@global global\else local\fi)%
- ^^A}%
-}
-\def\KVO@action@error{%
- \KVO@do@action{error}%
-}
-\def\KVO@action@warning{%
- \KVO@do@action{warning}%
-}
-\def\KVO@do@action#1#2#3{%
- \ifx\KVOdyn@name\relax
- \PackageError{kvoptions}{%
- Action type `#1' needs package/class name\MessageBreak
- for key `#3' in family `#2'%
- }\@ehc
- \else
- \edef\x{\endgroup
- \noexpand\define@key{#2}{#3}[]{%
- \expandafter\noexpand\csname KVO@disable@#1\endcsname
- {\KVOdyn@name}\noexpand\KVOdyn@ext{#3}%
- }%
- \ifKVOdyn@global
- \global\let
- \expandafter\noexpand\csname KV@#2@#3\endcsname
- \expandafter\noexpand\csname KV@#2@#3\endcsname
- \global\let
- \expandafter\noexpand\csname KV@#2@#3@default\endcsname
- \expandafter\noexpand\csname KV@#2@#3@default\endcsname
- \fi
- }%
- ^^A\ifx\KVOdyn@ext\@clsextension
- ^^A \expandafter\ClassInfo
- ^^A\else
- ^^A \expandafter\PackageInfo
- ^^A\fi
- ^^A{\KVOdyn@name}{%
- ^^A [option] key `#3' of family `#2'\MessageBreak
- ^^A is disabled (#1, \ifKVOdyn@global global\else local\fi)%
- ^^A}%
- \fi
-}
-\def\KVO@disable@error#1#2#3{%
- \ifx#2\@clsextension
- \expandafter\ClassError
- \else
- \expandafter\PackageError
- \fi
- {#1}{%
- Option `#3' is given too late,\MessageBreak
- now the option is ignored%
- }\@ehc
-}
-\def\KVO@disable@warning#1#2#3{%
- \ifx#2\@clsextension
- \expandafter\ClassWarning
- \else
- \expandafter\PackageWarning
- \fi
- {#1}{%
- Option `#3' is already consumed\MessageBreak
- and has no effect%
- }%
-}
-\newcommand*{\AddToKeyvalOption}{%
- \@ifstar{%
- \begingroup
- \edef\x{\endgroup
- \noexpand\KVO@AddToKeyvalOption{\KVO@family}%
- }%
- \x
- }%
- \KVO@AddToKeyvalOption
-}
-\def\KVO@AddToKeyvalOption#1#2{%
- \@ifundefined{KV@#1@#2}{%
- \PackageWarning{kvoptions}{%
- Key `#2' of family `#1' does not exist.\MessageBreak
- Ignoring \string\AddToKeyvalOption
- }%
- \@gobble
- }{%
- \edef\KVO@next{%
- \noexpand\KVO@@AddToKeyvalOption
- \expandafter\noexpand\csname KV@#1@#2\endcsname
- }%
- \afterassignment\KVO@next
- \def\KVO@temp##1%
- }%
-}
-\def\KVO@@AddToKeyvalOption#1{%
- \begingroup
- \toks@\expandafter{#1{##1}}%
- \toks@\expandafter{\the\expandafter\toks@\KVO@temp{##1}}%
- \edef\x{\endgroup
- \noexpand\def\noexpand#1####1{\the\toks@}%
- }%
- \x
-}
-\def\KVO@IfDefThen#1#2{%
- \ifx#1\ltx@undefined
- \else
- \ifx#1\relax
- \else
- #2%
- \fi
- \fi
-}%
-\def\KVO@GetClassOptionsList{%
- \let\KVO@classoptionslist\@classoptionslist
- \KVO@IfDefThen\@classoptionslist{%
- \KVO@IfDefThen\XKV@documentclass{%
- \ifx\XKV@documentclass\ltx@empty
- \else
- \KVO@IfDefThen\XKV@classoptionslist{%
- \ifx\XKV@classoptionslist\ltx@empty
- \else
- \let\KVO@classoptionslist\XKV@classoptionslist
- \fi
- }%
- \fi
- }%
- }%
-}%
-\newcommand*{\ProcessKeyvalOptions}{%
- \@ifstar{%
- \begingroup
- \edef\x{\endgroup
- \noexpand\KVO@ProcessKeyvalOptions{\KVO@family}%
- }%
- \x
- }%
- \KVO@ProcessKeyvalOptions
-}
-\def\KVO@ProcessKeyvalOptions#1{%
- \let\@tempc\relax
- \let\KVO@temp\@empty
- \ifx\@currext\@clsextension
- \else
- \KVO@GetClassOptionsList
- \ifx\KVO@classoptionslist\relax
- \else
- \@for\KVO@CurrentOption:=\KVO@classoptionslist\do{%
- \@ifundefined{KV@#1@\expandafter\KVO@getkey
- \KVO@CurrentOption=\@nil}{%
- }{%
- \@ifundefined{KVO@local@#1@\expandafter\KVO@getkey
- \KVO@CurrentOption=\@nil}{%
- \ifx\KVO@Patch Y%
- \edef\KVO@temp{%
- \etex@unexpanded\expandafter{%
- \KVO@temp
- }%
- ,%
- \etex@unexpanded\expandafter{%
- \KVO@CurrentOption
- }%
- ,%
- }%
- \ltx@onelevel@sanitize\KVO@CurrentOption
- \else
- \edef\KVO@temp{%
- \KVO@temp
- ,%
- \KVO@CurrentOption
- ,%
- }%
- \fi
- \@expandtwoargs\@removeelement\KVO@CurrentOption
- \@unusedoptionlist\@unusedoptionlist
- }{}%
- }%
- }%
- \fi
- \fi
- \begingroup
- \toks\tw@{}%
- \@ifundefined{opt@\@currname.\@currext}{%
- \toks@\expandafter{\KVO@temp}%
- }{%
- \toks@\expandafter\expandafter\expandafter{%
- \csname opt@\@currname.\@currext\endcsname
- }%
- \ifx\@currext\@clsextension
- \edef\CurrentOption{\the\toks@}%
- \toks@\expandafter{\KVO@temp}%
- \@for\CurrentOption:=\CurrentOption\do{%
- \@ifundefined{%
- KV@#1@\expandafter\KVO@getkey\CurrentOption=\@nil
- }{%
- \@ifundefined{KVO@default@\@currname.\@currext}{%
- \ifx\KVO@Patch Y%
- \ltx@onelevel@sanitize\CurrentOption
- \fi
- \ifx\@unusedoptionlist\@empty
- \global\let\@unusedoptionlist\CurrentOption
- \else
- \expandafter\expandafter\expandafter\gdef
- \expandafter\expandafter\expandafter\@unusedoptionlist
- \expandafter\expandafter\expandafter{%
- \expandafter\@unusedoptionlist
- \expandafter,\CurrentOption
- }%
- \fi
- }{%
- \toks\tw@\expandafter{%
- \the\toks\expandafter\tw@\expandafter,\CurrentOption
- }%
- }%
- }{%
- \toks@\expandafter{%
- \the\expandafter\toks@\expandafter,\CurrentOption
- }%
- }%
- }%
- \else
- \@ifundefined{KVO@default@\@currname.\@currext}{%
- \toks@\expandafter\expandafter\expandafter{%
- \expandafter\KVO@temp\the\toks@
- }%
- }{%
- \edef\CurrentOption{\the\toks@}%
- \toks@\expandafter{\KVO@temp}%
- \@for\CurrentOption:=\CurrentOption\do{%
- \@ifundefined{%
- KV@#1@\expandafter\KVO@getkey\CurrentOption=\@nil
- }{%
- \toks\tw@\expandafter{%
- \the\toks\expandafter\tw@\expandafter,\CurrentOption
- }%
- }{%
- \toks@\expandafter{%
- \the\expandafter\toks@\expandafter,\CurrentOption
- }%
- }%
- }%
- }%
- \fi
- }%
- \edef\KVO@temp{\endgroup
- \noexpand\KVO@calldefault{\the\toks\tw@}%
- \noexpand\KVO@setkeys{#1}{\the\toks@}%
- }%
- \KVO@temp
- \let\CurrentOption\@empty
- \AtEndOfPackage{\let\@unprocessedoptions\relax}%
-}
-\newcommand*{\ProcessLocalKeyvalOptions}{%
- \@ifstar{%
- \begingroup
- \edef\x{\endgroup
- \noexpand\KVO@ProcessLocalKeyvalOptions{\KVO@family}%
- }%
- \x
- }%
- \KVO@ProcessLocalKeyvalOptions
-}
-\def\KVO@ProcessLocalKeyvalOptions#1{%
- \let\@tempc\relax
- \let\KVO@temp\@empty
- \ifx\@currext\@pkgextension
- \else
- \PackageError{kvoptions}{%
- \string\ProcessLocalKeyvalOptions\space is intended for packages only%
- }\@ehc
- \fi
- \begingroup
- \toks\tw@{}%
- \@ifundefined{opt@\@currname.\@currext}{%
- \toks@\expandafter{\KVO@temp}%
- }{%
- \toks@\expandafter\expandafter\expandafter{%
- \csname opt@\@currname.\@currext\endcsname
- }%
- \@ifundefined{KVO@default@\@currname.\@currext}{%
- \toks@\expandafter\expandafter\expandafter{%
- \expandafter\KVO@temp\the\toks@
- }%
- }{%
- \edef\CurrentOption{\the\toks@}%
- \toks@\expandafter{\KVO@temp}%
- \@for\CurrentOption:=\CurrentOption\do{%
- \@ifundefined{%
- KV@#1@\expandafter\KVO@getkey\CurrentOption=\@nil
- }{%
- \toks\tw@\expandafter{%
- \the\toks\expandafter\tw@\expandafter,\CurrentOption
- }%
- }{%
- \toks@\expandafter{%
- \the\expandafter\toks@\expandafter,\CurrentOption
- }%
- }%
- }%
- }%
- }%
- \edef\KVO@temp{\endgroup
- \noexpand\KVO@calldefault{\the\toks\tw@}%
- \noexpand\KVO@setkeys{#1}{\the\toks@}%
- }%
- \KVO@temp
- \let\CurrentOption\@empty
- \AtEndOfPackage{\let\@unprocessedoptions\relax}%
-}
-\def\KVO@getkey#1=#2\@nil{#1}
-\def\KVO@calldefault#1{%
- \begingroup
- \def\x{#1}%
- \expandafter\endgroup
- \ifx\x\@empty
- \else
- \@for\CurrentOption:=#1\do{%
- \ifx\CurrentOption\@empty
- \else
- \expandafter\KVO@setcurrents\CurrentOption=\@nil
- \@nameuse{KVO@default@\@currname.\@currext}%
- \fi
- }%
- \fi
-}
-\def\KVO@setcurrents#1=#2\@nil{%
- \def\CurrentOptionValue{#2}%
- \ifx\CurrentOptionValue\@empty
- \let\CurrentOptionKey\CurrentOption
- \let\CurrentOptionValue\relax
- \else
- \edef\CurrentOptionKey{\zap@space#1 \@empty}%
- \expandafter\KVO@setcurrentvalue\CurrentOption\@nil
- \fi
-}
-\def\KVO@setcurrentvalue#1=#2\@nil{%
- \KV@@sp@def\CurrentOptionValue{#2}%
-}
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname documentclass\endcsname\relax
- \def\ProcessKeyvalOptions{%
- \@ifstar{}\@gobble
- }%
-\fi
-\KVO@AtEnd%
-\endinput
-%%
-%% End of file `kvoptions.sty'.