[latex3-commits] [git/LaTeX3-latex3-latex2e] doc-v3beta: try again after some shuffling (6c0877fe)

Frank Mittelbach frank.mittelbach at latex-project.org
Sun Feb 7 19:54:28 CET 2021


Repository : https://github.com/latex3/latex2e
On branch  : doc-v3beta
Link       : https://github.com/latex3/latex2e/commit/6c0877fe350f1552ffef2d044303a13b1bddb27a

>---------------------------------------------------------------

commit 6c0877fe350f1552ffef2d044303a13b1bddb27a
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Sun Feb 7 19:54:28 2021 +0100

    try again after some shuffling


>---------------------------------------------------------------

6c0877fe350f1552ffef2d044303a13b1bddb27a
 support/kvoptions.sty | 837 --------------------------------------------------
 1 file changed, 837 deletions(-)

diff --git a/support/kvoptions.sty b/support/kvoptions.sty
deleted file mode 100644
index b941b04c..00000000
--- a/support/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 at 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 at 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 at 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 at EnsureCode#1#2{%
-  \edef\KVO at AtEnd{%
-    \KVO at AtEnd
-    \catcode#1=\the\catcode#1\relax
-  }%
-  \catcode#1=#2\relax
-}
-\TMP at EnsureCode{1}{14}% ^^A (comment)
-\TMP at EnsureCode{2}{14}% ^^A (comment)
-\TMP at EnsureCode{33}{12}% !
-\TMP at EnsureCode{39}{12}% '
-\TMP at EnsureCode{40}{12}% (
-\TMP at EnsureCode{41}{12}% )
-\TMP at EnsureCode{42}{12}% *
-\TMP at EnsureCode{44}{12}% ,
-\TMP at EnsureCode{45}{12}% -
-\TMP at EnsureCode{46}{12}% .
-\TMP at EnsureCode{47}{12}% /
-\TMP at EnsureCode{58}{12}% :
-\TMP at EnsureCode{62}{12}% >
-\TMP at EnsureCode{91}{12}% [
-\TMP at EnsureCode{93}{12}% ]
-\TMP at EnsureCode{94}{7}% ^ (superscript)
-\TMP at EnsureCode{96}{12}% `
-\edef\KVO at AtEnd{\KVO at AtEnd\noexpand\endinput}
-\@ifundefined{define at key}{%
-  \RequirePackage{keyval}\relax
-}{}
-\RequirePackage{ltxcmds}[2010/12/02]
-\RequirePackage{kvsetkeys}[2007/09/29]
-\@ifundefined{@x at protect}{%
-  \def\@x at protect#1\fi#2#3{%
-    \fi\protect#1%
-  }%
-  \let\@typeset at 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 at key{KVO}{family}{%
-  \expandafter\edef\csname KVO at family@%
-      \@currname.\@currext\endcsname{#1}%
-}
-\def\KVO at family{%
-  \@ifundefined{KVO at family@\@currname.\@currext}{%
-    \@currname
-  }{%
-    \csname KVO at family@\@currname.\@currext\endcsname
-  }%
-}
-\define at key{KVO}{prefix}{%
-  \expandafter\edef\csname KVO at prefix@%
-      \@currname.\@currext\endcsname{#1}%
-}
-\def\KVO at prefix{%
-  \ltx at ifundefined{KVO at prefix@\@currname.\@currext}{%
-    \@currname @%
-  }{%
-    \csname KVO at prefix@\@currname.\@currext\endcsname
-  }%
-}
-\define at key{KVO}{setkeys}{%
-  \expandafter\def\csname KVO at setkeys@%
-      \@currname.\@currext\endcsname{#1}%
-}
-\def\KVO at setkeys{%
-  \ltx at IfUndefined{KVO at setkeys@\@currname.\@currext}{%
-    \setkeys
-  }{%
-    \csname KVO at setkeys@\@currname.\@currext\endcsname
-  }%
-}
-\newcommand*{\SetupKeyvalOptions}{%
-  \kvsetkeys{KVO}%
-}
-\newcommand*{\DeclareBoolOption}[2][false]{%
-  \KVO at ifdefinable{if\KVO at prefix#2}{%
-    \KVO at ifdefinable{\KVO at prefix#2true}{%
-      \KVO at ifdefinable{\KVO at prefix#2false}{%
-        \csname newif\expandafter\endcsname
-        \csname if\KVO at prefix#2\endcsname
-        \@ifundefined{\KVO at 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 at prefix#2#1\endcsname
-        }%
-        \begingroup
-          \edef\x{\endgroup
-            \noexpand\define at key{\KVO at family}{#2}[true]{%
-              \noexpand\KVO at boolkey{\@currname}%
-              \ifx\@currext\@clsextension
-                \noexpand\@clsextension
-              \else
-                \noexpand\@pkgextension
-              \fi
-              {\KVO at prefix}{#2}{####1}%
-            }%
-          }%
-        \x
-      }%
-    }%
-  }%
-}
-\newcommand*{\DeclareComplementaryOption}[2]{%
-  \@ifundefined{if\KVO at 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 at family' is used as familiy %
-      for the keyval options.\MessageBreak
-      `\KVO at prefix' serves as prefix %
-      for internal switch macros.\MessageBreak
-      \MessageBreak
-      \@ehc
-    }%
-  }{%
-    \KVO at ifdefinable{\KVO at prefix#1true}{%
-      \KVO at ifdefinable{\KVO at prefix#1false}{%
-        \expandafter\let\csname\KVO at prefix#1false\expandafter\endcsname
-          \csname\KVO at prefix#2true\endcsname
-        \expandafter\let\csname\KVO at prefix#1true\expandafter\endcsname
-          \csname\KVO at prefix#2false\endcsname
-        \begingroup
-          \edef\x{\endgroup
-            \noexpand\define at key{\KVO at family}{#1}[true]{%
-              \noexpand\KVO at boolkey{\@currname}%
-              \ifx\@currext\@clsextension
-                \noexpand\@clsextension
-              \else
-                \noexpand\@pkgextension
-              \fi
-              {\KVO at prefix}{#1}{####1}%
-            }%
-          }%
-        \x
-      }%
-    }%
-  }%
-}
-\def\KVO at ifdefinable#1{%
-  \expandafter\@ifdefinable\csname #1\endcsname
-}
-\def\KVO at boolkey#1#2#3#4#5{%
-  \edef\KVO at param{#5}%
-  \ltx at onelevel@sanitize\KVO at param
-  \ifx\KVO at param\KVO at true
-    \expandafter\@firstofone
-  \else
-    \ifx\KVO at param\KVO at false
-      \expandafter\expandafter\expandafter\@firstofone
-    \else
-      \ifx#2\@clsextension
-        \expandafter\ClassWarning
-      \else
-        \expandafter\PackageWarning
-      \fi
-      {#1}{%
-        Value `\KVO at 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 at param}%
-    \csname#3#4\KVO at param\endcsname
-  }%
-}
-\def\KVO at true{true}
-\def\KVO at false{false}
-\ltx at onelevel@sanitize\KVO at true
-\ltx at onelevel@sanitize\KVO at false
-\newcommand*{\DeclareStringOption}[2][]{%
-  \@ifnextchar[{%
-    \KVO at DeclareStringOption{#1}{#2}@%
-  }{%
-    \KVO at DeclareStringOption{#1}{#2}{}[]%
-  }%
-}
-\def\KVO at DeclareStringOption#1#2#3[#4]{%
-  \KVO at ifdefinable{\KVO at prefix#2}{%
-    \@namedef{\KVO at prefix#2}{#1}%
-    \begingroup
-      \ifx\\#3\\%
-        \toks@{}%
-      \else
-        \toks@{[{#4}]}%
-      \fi
-      \edef\x{\endgroup
-        \noexpand\define at key{\KVO at 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 at prefix#2\endcsname{####1}%
-        }%
-      }%
-    \x
-  }%
-}
-\newcommand*{\DeclareVoidOption}[2]{%
-  \begingroup
-    \let\next\@gobbletwo
-    \KVO at ifdefinable{\KVO at prefix#1}{%
-      \let\next\@firstofone
-    }%
-  \expandafter\endgroup
-  \next{%
-    \begingroup
-      \edef\x{\endgroup
-        \noexpand\define at key{\KVO at family}{#1}[\KVO at VOID@]{%
-          \noexpand\KVO at voidkey{\@currname}%
-          \ifx\@currext\@clsextension
-            \noexpand\@clsextension
-          \else
-            \noexpand\@pkgextension
-          \fi
-          {#1}%
-          {####1}%
-          \expandafter\noexpand\csname\KVO at prefix#1\endcsname
-        }%
-      }%
-    \x
-    \begingroup
-      \toks@{#2}%
-    \expandafter\endgroup
-    \expandafter\def
-    \csname\KVO at prefix#1\expandafter\endcsname
-    \expandafter{\the\toks@}%
-  }%
-}
-\def\KVO at VOID@{@VOID@}
-\def\KVO at voidkey#1#2#3#4{%
-  \def\CurrentOption{#3}%
-  \begingroup
-    \def\x{#4}%
-  \expandafter\endgroup
-  \ifx\x\KVO at 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 at default@\@currname.\@currext}%
-}
-\newcommand*{\DeclareLocalOptions}[1]{%
-  \comma at parse{#1}\KVO at DeclareLocalOption
-}
-\def\KVO at DeclareLocalOption#1{%
-  \expandafter\def\csname KVO at local@\KVO at family @#1\endcsname{}%
-}
-\SetupKeyvalOptions{%
-  family=KVOdyn,%
-  prefix=KVOdyn@%
-}
-\DeclareBoolOption[true]{global}
-\DeclareComplementaryOption{local}{global}
-\DeclareStringOption[undef]{action}
-\let\KVOdyn at name\relax
-\let\KVOdyn at ext\@empty
-\define at key{KVOdyn}{class}{%
-  \def\KVOdyn at name{#1}%
-  \let\KVOdyn at ext\@clsextension
-}
-\define at key{KVOdyn}{package}{%
-  \def\KVOdyn at name{#1}%
-  \let\KVOdyn at ext\@pkgextension
-}
-\newcommand*{\DisableKeyvalOption}[3][]{%
-  \begingroup
-    \kvsetkeys{KVOdyn}{#1}%
-    \def\x{\endgroup}%
-    \@ifundefined{KVO at action@\KVOdyn at action}{%
-      \PackageError{kvoptions}{%
-        Unknown disable action %
-        `\expandafter\strip at prefix\meaning\KVOdyn at action'\MessageBreak
-        for option `#3' in keyval family '#2'%
-      }\@ehc
-    }{%
-      \csname KVO at action@\KVOdyn at action\endcsname{#2}{#3}%
-    }%
-  \x
-}
-\def\KVO at action@undef#1#2{%
-  \edef\x{\endgroup
-    \ifKVOdyn at global\global\fi
-    \let
-    \expandafter\noexpand\csname KV@#1@#2\endcsname
-    \relax
-    \ifKVOdyn at global\global\fi
-    \let
-    \expandafter\noexpand\csname KV@#1@#2 at default\endcsname
-    \relax
-  }%
-  ^^A\PackageInfo{kvoptions}{%
-  ^^A  [option] key `#2' of family `#1'\MessageBreak
-  ^^A  is disabled (undef, \ifKVOdyn at global global\else local\fi)%
-  ^^A}%
-}
-\def\KVO at action@ignore#1#2{%
-  \edef\x{\endgroup
-    \ifKVOdyn at global\global\fi
-    \let
-    \expandafter\noexpand\csname KV@#1@#2\endcsname
-    \noexpand\@gobble
-    \ifKVOdyn at global\global\fi
-    \let
-    \expandafter\noexpand\csname KV@#1@#2 at default\endcsname
-    \noexpand\@empty
-  }%
-  ^^A\PackageInfo{kvoptions}{%
-  ^^A  [option] key `#2' of family `#1'\MessageBreak
-  ^^A  is disabled (ignore, \ifKVOdyn at global global\else local\fi)%
-  ^^A}%
-}
-\def\KVO at action@error{%
-  \KVO at do@action{error}%
-}
-\def\KVO at action@warning{%
-  \KVO at do@action{warning}%
-}
-\def\KVO at do@action#1#2#3{%
-  \ifx\KVOdyn at 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 at key{#2}{#3}[]{%
-        \expandafter\noexpand\csname KVO at disable@#1\endcsname
-        {\KVOdyn at name}\noexpand\KVOdyn at ext{#3}%
-      }%
-      \ifKVOdyn at 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 at default\endcsname
-        \expandafter\noexpand\csname KV@#2@#3 at default\endcsname
-      \fi
-    }%
-    ^^A\ifx\KVOdyn at ext\@clsextension
-    ^^A  \expandafter\ClassInfo
-    ^^A\else
-    ^^A   \expandafter\PackageInfo
-    ^^A\fi
-    ^^A{\KVOdyn at name}{%
-    ^^A  [option] key `#3' of family `#2'\MessageBreak
-    ^^A  is disabled (#1, \ifKVOdyn at global global\else local\fi)%
-    ^^A}%
-  \fi
-}
-\def\KVO at 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 at 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 at AddToKeyvalOption{\KVO at family}%
-      }%
-    \x
-  }%
-  \KVO at AddToKeyvalOption
-}
-\def\KVO at AddToKeyvalOption#1#2{%
-  \@ifundefined{KV@#1@#2}{%
-    \PackageWarning{kvoptions}{%
-      Key `#2' of family `#1' does not exist.\MessageBreak
-      Ignoring \string\AddToKeyvalOption
-    }%
-    \@gobble
-  }{%
-    \edef\KVO at next{%
-      \noexpand\KVO@@AddToKeyvalOption
-      \expandafter\noexpand\csname KV@#1@#2\endcsname
-    }%
-    \afterassignment\KVO at next
-    \def\KVO at temp##1%
-  }%
-}
-\def\KVO@@AddToKeyvalOption#1{%
-  \begingroup
-    \toks@\expandafter{#1{##1}}%
-    \toks@\expandafter{\the\expandafter\toks@\KVO at temp{##1}}%
-    \edef\x{\endgroup
-      \noexpand\def\noexpand#1####1{\the\toks@}%
-    }%
-  \x
-}
-\def\KVO at IfDefThen#1#2{%
-  \ifx#1\ltx at undefined
-  \else
-    \ifx#1\relax
-    \else
-      #2%
-    \fi
-  \fi
-}%
-\def\KVO at GetClassOptionsList{%
-  \let\KVO at classoptionslist\@classoptionslist
-  \KVO at IfDefThen\@classoptionslist{%
-    \KVO at IfDefThen\XKV at documentclass{%
-      \ifx\XKV at documentclass\ltx at empty
-      \else
-        \KVO at IfDefThen\XKV at classoptionslist{%
-          \ifx\XKV at classoptionslist\ltx at empty
-          \else
-            \let\KVO at classoptionslist\XKV at classoptionslist
-          \fi
-        }%
-      \fi
-    }%
-  }%
-}%
-\newcommand*{\ProcessKeyvalOptions}{%
-  \@ifstar{%
-    \begingroup
-      \edef\x{\endgroup
-        \noexpand\KVO at ProcessKeyvalOptions{\KVO at family}%
-      }%
-    \x
-  }%
-  \KVO at ProcessKeyvalOptions
-}
-\def\KVO at ProcessKeyvalOptions#1{%
-  \let\@tempc\relax
-  \let\KVO at temp\@empty
-  \ifx\@currext\@clsextension
-  \else
-    \KVO at GetClassOptionsList
-    \ifx\KVO at classoptionslist\relax
-    \else
-      \@for\KVO at CurrentOption:=\KVO at classoptionslist\do{%
-        \@ifundefined{KV@#1@\expandafter\KVO at getkey
-                      \KVO at CurrentOption=\@nil}{%
-        }{%
-          \@ifundefined{KVO at local@#1@\expandafter\KVO at getkey
-                        \KVO at CurrentOption=\@nil}{%
-            \ifx\KVO at Patch Y%
-              \edef\KVO at temp{%
-                \etex at unexpanded\expandafter{%
-                  \KVO at temp
-                }%
-                ,%
-                \etex at unexpanded\expandafter{%
-                  \KVO at CurrentOption
-                }%
-                ,%
-              }%
-              \ltx at onelevel@sanitize\KVO at CurrentOption
-            \else
-              \edef\KVO at temp{%
-                \KVO at temp
-                ,%
-                \KVO at CurrentOption
-                ,%
-              }%
-            \fi
-            \@expandtwoargs\@removeelement\KVO at CurrentOption
-              \@unusedoptionlist\@unusedoptionlist
-          }{}%
-        }%
-      }%
-    \fi
-  \fi
-  \begingroup
-    \toks\tw@{}%
-    \@ifundefined{opt@\@currname.\@currext}{%
-      \toks@\expandafter{\KVO at temp}%
-    }{%
-      \toks@\expandafter\expandafter\expandafter{%
-        \csname opt@\@currname.\@currext\endcsname
-      }%
-      \ifx\@currext\@clsextension
-        \edef\CurrentOption{\the\toks@}%
-        \toks@\expandafter{\KVO at temp}%
-        \@for\CurrentOption:=\CurrentOption\do{%
-          \@ifundefined{%
-            KV@#1@\expandafter\KVO at getkey\CurrentOption=\@nil
-          }{%
-            \@ifundefined{KVO at default@\@currname.\@currext}{%
-              \ifx\KVO at Patch Y%
-                \ltx at 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 at default@\@currname.\@currext}{%
-          \toks@\expandafter\expandafter\expandafter{%
-            \expandafter\KVO at temp\the\toks@
-          }%
-        }{%
-          \edef\CurrentOption{\the\toks@}%
-          \toks@\expandafter{\KVO at temp}%
-          \@for\CurrentOption:=\CurrentOption\do{%
-            \@ifundefined{%
-              KV@#1@\expandafter\KVO at getkey\CurrentOption=\@nil
-            }{%
-              \toks\tw@\expandafter{%
-                \the\toks\expandafter\tw@\expandafter,\CurrentOption
-              }%
-            }{%
-              \toks@\expandafter{%
-                \the\expandafter\toks@\expandafter,\CurrentOption
-              }%
-            }%
-          }%
-        }%
-      \fi
-    }%
-    \edef\KVO at temp{\endgroup
-      \noexpand\KVO at calldefault{\the\toks\tw@}%
-      \noexpand\KVO at setkeys{#1}{\the\toks@}%
-    }%
-  \KVO at temp
-  \let\CurrentOption\@empty
-  \AtEndOfPackage{\let\@unprocessedoptions\relax}%
-}
-\newcommand*{\ProcessLocalKeyvalOptions}{%
-  \@ifstar{%
-    \begingroup
-      \edef\x{\endgroup
-        \noexpand\KVO at ProcessLocalKeyvalOptions{\KVO at family}%
-      }%
-    \x
-  }%
-  \KVO at ProcessLocalKeyvalOptions
-}
-\def\KVO at ProcessLocalKeyvalOptions#1{%
-  \let\@tempc\relax
-  \let\KVO at 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 at temp}%
-    }{%
-      \toks@\expandafter\expandafter\expandafter{%
-        \csname opt@\@currname.\@currext\endcsname
-      }%
-      \@ifundefined{KVO at default@\@currname.\@currext}{%
-        \toks@\expandafter\expandafter\expandafter{%
-          \expandafter\KVO at temp\the\toks@
-        }%
-      }{%
-        \edef\CurrentOption{\the\toks@}%
-        \toks@\expandafter{\KVO at temp}%
-        \@for\CurrentOption:=\CurrentOption\do{%
-          \@ifundefined{%
-            KV@#1@\expandafter\KVO at getkey\CurrentOption=\@nil
-          }{%
-            \toks\tw@\expandafter{%
-              \the\toks\expandafter\tw@\expandafter,\CurrentOption
-            }%
-          }{%
-            \toks@\expandafter{%
-              \the\expandafter\toks@\expandafter,\CurrentOption
-            }%
-          }%
-        }%
-      }%
-    }%
-    \edef\KVO at temp{\endgroup
-      \noexpand\KVO at calldefault{\the\toks\tw@}%
-      \noexpand\KVO at setkeys{#1}{\the\toks@}%
-    }%
-  \KVO at temp
-  \let\CurrentOption\@empty
-  \AtEndOfPackage{\let\@unprocessedoptions\relax}%
-}
-\def\KVO at getkey#1=#2\@nil{#1}
-\def\KVO at calldefault#1{%
-  \begingroup
-    \def\x{#1}%
-  \expandafter\endgroup
-  \ifx\x\@empty
-  \else
-    \@for\CurrentOption:=#1\do{%
-      \ifx\CurrentOption\@empty
-      \else
-        \expandafter\KVO at setcurrents\CurrentOption=\@nil
-        \@nameuse{KVO at default@\@currname.\@currext}%
-      \fi
-    }%
-  \fi
-}
-\def\KVO at setcurrents#1=#2\@nil{%
-  \def\CurrentOptionValue{#2}%
-  \ifx\CurrentOptionValue\@empty
-    \let\CurrentOptionKey\CurrentOption
-    \let\CurrentOptionValue\relax
-  \else
-    \edef\CurrentOptionKey{\zap at space#1 \@empty}%
-    \expandafter\KVO at setcurrentvalue\CurrentOption\@nil
-  \fi
-}
-\def\KVO at setcurrentvalue#1=#2\@nil{%
-  \KV@@sp at def\CurrentOptionValue{#2}%
-}
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname documentclass\endcsname\relax
-  \def\ProcessKeyvalOptions{%
-    \@ifstar{}\@gobble
-  }%
-\fi
-\KVO at AtEnd%
-\endinput
-%%
-%% End of file `kvoptions.sty'.





More information about the latex3-commits mailing list.