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 --- .../tex/latex/kvoptions/kvoptions-patch.sty | 550 -------------- .../texmf-dist/tex/latex/kvoptions/kvoptions.sty | 837 --------------------- 2 files changed, 1387 deletions(-) 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/tex') 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