summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/oberdiek/kvoptions.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/kvoptions.sty')
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/kvoptions.sty157
1 files changed, 132 insertions, 25 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/kvoptions.sty b/Master/texmf-dist/tex/latex/oberdiek/kvoptions.sty
index 070ced9c61d..1a222383f32 100644
--- a/Master/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+++ b/Master/texmf-dist/tex/latex/oberdiek/kvoptions.sty
@@ -26,30 +26,119 @@
%% This work consists of the main source file kvoptions.dtx
%% and the derived files
%% kvoptions.sty, kvoptions.pdf, kvoptions.ins, kvoptions.drv,
-%% example-mycolorsetup.sty.
+%% example-mycolorsetup.sty, kvoptions-test1.tex.
%%
%% No we don't need the option 'color'.
-%% With color support option 'emphcolor' will dynamically change
-%% the color of \emph statements.
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{kvoptions}
- [2007/06/11 v2.7 Connects package keyval with LaTeX options (HO)]%
-\RequirePackage{keyval}
+%% With color support option 'emphcolor' will dynamically
+%% change the color of \emph statements.
\begingroup
- \edef\x{\endgroup
- \noexpand\AtEndOfPackage{%
- \catcode\@ne=\the\catcode\@ne\relax
- \catcode\tw@=\the\catcode\tw@\relax
+ \catcode44 12 % ,
+ \catcode45 12 % -
+ \catcode46 12 % .
+ \catcode58 12 % :
+ \catcode64 11 % @
+ \expandafter\let\expandafter\x\csname ver@kvoptions.sty\endcsname
+ \ifcase 0%
+ \ifx\x\relax % plain
+ \else
+ \ifx\x\empty % LaTeX
+ \else
+ 1%
+ \fi
+ \fi
+ \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}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\begingroup
+ \catcode40 12 % (
+ \catcode41 12 % )
+ \catcode44 12 % ,
+ \catcode45 12 % -
+ \catcode46 12 % .
+ \catcode47 12 % /
+ \catcode58 12 % :
+ \catcode64 11 % @
+ \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\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@kvoptions.sty\endcsname
+\ProvidesPackage{kvoptions}%
+ [2007/10/02 v2.8 Connects package keyval with LaTeX options (HO)]
+\expandafter\edef\csname KVO@AtEnd\endcsname{%
+ \catcode64 \the\catcode64\relax
+}
+\catcode64 11 % @
+\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{46}{12}% .
+\TMP@EnsureCode{47}{12}% /
+\TMP@EnsureCode{58}{12}% :
+\TMP@EnsureCode{61}{12}% =
+\TMP@EnsureCode{62}{12}% >
+\TMP@EnsureCode{94}{7}% ^ (superscript)
+\TMP@EnsureCode{96}{12}% `
+\@ifundefined{define@key}{%
+ \RequirePackage{keyval}\relax
+}{}
+\@ifundefined{@onelevel@sanitize}{%
+ \def\@onelevel@sanitize#1{%
+ \edef#1{\expandafter\strip@prefix\meaning#1}%
}%
-\x
-\catcode\@ne=14 %
-\catcode\tw@=14 %
+}{}
+\@ifundefined{strip@prefix}{%
+ \def\strip@prefix#1>{}%
+}{}
+\@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}{\catcode\tw@=9 }
\ProcessOptions\relax
\define@key{KVO}{family}{%
- \expandafter\edef\csname KVO@family@\@currname.\@currext\endcsname{#1}%
+ \expandafter\edef\csname KVO@family@%
+ \@currname.\@currext\endcsname{#1}%
}
\def\KVO@family{%
\@ifundefined{KVO@family@\@currname.\@currext}{%
@@ -59,7 +148,8 @@
}%
}
\define@key{KVO}{prefix}{%
- \expandafter\edef\csname KVO@prefix@\@currname.\@currext\endcsname{#1}%
+ \expandafter\edef\csname KVO@prefix@%
+ \@currname.\@currext\endcsname{#1}%
}
\def\KVO@prefix{%
\@ifundefined{KVO@prefix@\@currname.\@currext}{%
@@ -75,7 +165,8 @@
\KVO@ifdefinable{if\KVO@prefix#2}{%
\KVO@ifdefinable{\KVO@prefix#2true}{%
\KVO@ifdefinable{\KVO@prefix#2false}{%
- \expandafter\newif\csname if\KVO@prefix#2\endcsname
+ \csname newif\expandafter\endcsname
+ \csname if\KVO@prefix#2\endcsname
\@ifundefined{\KVO@prefix#2#1}{%
\PackageWarning{kvoptions}{%
Initialization of option `#2' failed,\MessageBreak
@@ -111,8 +202,10 @@
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
+ `\KVO@family' is used as familiy %
+ for the keyval options.\MessageBreak
+ `\KVO@prefix' serves as prefix %
+ for internal switch macros.\MessageBreak
\MessageBreak
\@ehc
}%
@@ -410,7 +503,8 @@
\ifx\@classoptionslist\relax
\else
\@for\KVO@CurrentOption:=\@classoptionslist\do{%
- \@ifundefined{KV@#1@\expandafter\KVO@getkey\KVO@CurrentOption=\@nil}{%
+ \@ifundefined{KV@#1@\expandafter\KVO@getkey
+ \KVO@CurrentOption=\@nil}{%
}{%
\edef\KVO@temp{%
^^B \etex@unexpanded\expandafter{%
@@ -522,8 +616,15 @@
\def\KVO@setcurrentvalue#1=#2\@nil{%
\KV@@sp@def\CurrentOptionValue{#2}%
}
-^^B\@gobble
- \endinput
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname documentclass\endcsname\relax
+ \def\ProcessKeyvalOptions{%
+ \@ifstar{}\@gobble
+ }%
+ \catcode\tw@=14 %
+\fi
+^^B\@gobbletwo
+\KVO@AtEnd\endinput
\PackageInfo{kvoptions}{Patching LaTeX's option system}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname eTeXversion\endcsname\relax
@@ -691,11 +792,15 @@
}
\def\KVO@ExecuteOptions#1#2{%
\let#1\CurrentOption
- \edef\CurrentOption@SaveLevel{\the\numexpr\CurrentOption@SaveLevel+1}%
+ \edef\CurrentOption@SaveLevel{%
+ \the\numexpr\CurrentOption@SaveLevel+1%
+ }%
\@for\CurrentOption:=#2\do{%
\csname ds@\CurrentOption\endcsname
}%
- \edef\CurrentOption@SaveLevel{\the\numexpr\CurrentOption@SaveLevel-1}%
+ \edef\CurrentOption@SaveLevel{%
+ \the\numexpr\CurrentOption@SaveLevel-1%
+ }%
\let\CurrentOption#1%
}
\def\KVO@fileswith@pti@ns#1[#2]#3[#4]{%
@@ -724,7 +829,8 @@
\else
\ifx\relax##1\relax
\else
- \KVO@onefilewithoptions{##1}[{\KVO@temp}][{#4}]\@pkgextension
+ \KVO@onefilewithoptions{##1}[{\KVO@temp}][{#4}]%
+ \@pkgextension
\fi
\expandafter\reserved@b
\fi
@@ -936,6 +1042,7 @@
\else
\let\@fileswith@pti@ns\KVO@fileswith@pti@ns
\fi
+KVO@AtEnd
\endinput
%%
%% End of file `kvoptions.sty'.