From e67a09ee2751452d36869d64d90f61da3e14f70c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 16 Jun 2022 20:28:11 +0000 Subject: kvoptions (16jun22) git-svn-id: svn://tug.org/texlive/trunk@63618 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/kvoptions/README.md | 4 +- .../doc/latex/kvoptions/example-mycolorsetup.sty | 144 ---- .../texmf-dist/doc/latex/kvoptions/kvoptions.pdf | Bin 480927 -> 502152 bytes .../source/latex/kvoptions/kvoptions.dtx | 42 +- .../tex/latex/kvoptions/kvoptions-patch.sty | 550 -------------- .../texmf-dist/tex/latex/kvoptions/kvoptions.sty | 837 --------------------- 6 files changed, 15 insertions(+), 1562 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/kvoptions/example-mycolorsetup.sty delete mode 100644 Master/texmf-dist/tex/latex/kvoptions/kvoptions-patch.sty delete mode 100644 Master/texmf-dist/tex/latex/kvoptions/kvoptions.sty (limited to 'Master/texmf-dist') 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 Binary files a/Master/texmf-dist/doc/latex/kvoptions/kvoptions.pdf and b/Master/texmf-dist/doc/latex/kvoptions/kvoptions.pdf 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 \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 % - \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=% - % "= \@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'. -- cgit v1.2.3