summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/oberdiek
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-08-27 22:38:54 +0000
committerKarl Berry <karl@freefriends.org>2006-08-27 22:38:54 +0000
commit2607d53137ede06e9780342b225218743e100bb4 (patch)
treec6c88c805dd21a5bbb6ad6f26d3d53c517f4b866 /Master/texmf-dist/tex/generic/oberdiek
parentfb0d58de45c0fc32bab09a839c186de46f75628e (diff)
oberdiek update from tds zip (28aug06)
git-svn-id: svn://tug.org/texlive/trunk@2054 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/oberdiek')
-rw-r--r--Master/texmf-dist/tex/generic/oberdiek/alphalph.sty261
-rw-r--r--Master/texmf-dist/tex/generic/oberdiek/engord.sty194
-rw-r--r--Master/texmf-dist/tex/generic/oberdiek/ifpdf.sty118
-rw-r--r--Master/texmf-dist/tex/generic/oberdiek/ifvtex.sty156
-rw-r--r--Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty353
-rw-r--r--Master/texmf-dist/tex/generic/oberdiek/pdfcrypt.sty555
-rw-r--r--Master/texmf-dist/tex/generic/oberdiek/setouterhbox.sty234
-rw-r--r--Master/texmf-dist/tex/generic/oberdiek/telprint.sty167
8 files changed, 2038 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/oberdiek/alphalph.sty b/Master/texmf-dist/tex/generic/oberdiek/alphalph.sty
new file mode 100644
index 00000000000..32103f1eb4e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/oberdiek/alphalph.sty
@@ -0,0 +1,261 @@
+%%
+%% This is file `alphalph.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% alphalph.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 1999, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://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".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file alphalph.dtx
+%% and the derived files
+%% alphalph.sty, alphalph.pdf, alphalph.ins, alphalph.drv.
+%%
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@alphalph.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{alphalph}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\begingroup
+ \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@alphalph.sty\endcsname
+\ProvidesPackage{alphalph}%
+ [2006/05/30 v1.4 Converting numbers to letters (HO)]
+\expandafter\edef\csname aa@atcode\endcsname{\the\catcode`\@ }
+\catcode`\@=11
+\long\def\@ReturnAfterElseFi#1\else#2\fi{\fi#1}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+\def\aa@alph#1{%
+ \ifcase#1%
+ @%
+ \or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m%
+ \or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z%
+ \else
+ @%
+ \fi
+}
+\def\aa@Alph#1{%
+ \ifcase#1%
+ @%
+ \or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M%
+ \or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z%
+ \else
+ @%
+ \fi
+}
+\def\alphalph{\aa@callmake\aa@alph}
+\def\AlphAlph{\aa@callmake\aa@Alph}
+\def\aa@callmake#1#2{%
+ \expandafter\aa@make\expandafter{\number#2}#1%
+}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname numexpr\endcsname\relax
+ \def\aa@make#1#2{%
+ \ifnum#1<1
+ \else
+ \@ReturnAfterFi{%
+ \aa@process1;#1;1..#2%
+ }%
+ \fi
+ }
+ \def\aa@process#1;#2;{%
+ \ifnum#1=#2
+ \expandafter\aa@getresult
+ \else
+ \@ReturnAfterFi{%
+ \expandafter\aa@process\number\aa@inc{#1}\aa@alphinc{;#2;}%
+ }%
+ \fi
+ }
+ \def\aa@getresult#1..#2{%
+ \aa@@getresult!#2#1..%
+ }
+ \def\aa@@getresult#1!#2#3.{%
+ \ifx\\#3\\%
+ \@ReturnAfterElseFi{#1}% ready
+ \else
+ \@ReturnAfterFi{%
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter
+ \aa@@getresult
+ \expandafter\expandafter\expandafter\expandafter
+ #2{#3}#1!#2%
+ }%
+ \fi
+ }
+ \def\aa@inc#1{%
+ \ifnum#1<9
+ \aa@nextdigit{#1}%
+ \else
+ \aa@reverse#1!!%
+ \fi
+ }
+ \def\aa@nextdigit#1{\ifcase#1 1\or2\or3\or4\or5\or6\or7\or8\or9\fi}
+ \def\aa@reverse#1#2!#3!{%
+ \ifx\\#2\\%
+ \aa@addone#1#3!!%
+ \else
+ \@ReturnAfterFi{%
+ \aa@reverse#2!#1#3!%
+ }%
+ \fi
+ }
+ \def\aa@addone#1#2!#3!{%
+ \ifnum#1<9
+ \expandafter\aa@lastreverse\number\aa@nextdigit#1 #2!#3!%
+ \else
+ \@ReturnAfterFi{%
+ \ifx\\#2\\%
+ 10#3%
+ \else
+ \@ReturnAfterFi{%
+ \aa@addone#2!0#3!%
+ }%
+ \fi
+ }%
+ \fi
+ }
+ \def\aa@lastreverse#1#2!#3!{%
+ \ifx\\#2\\%
+ #1#3%
+ \else
+ \@ReturnAfterFi{%
+ \aa@lastreverse#2!#1#3!%
+ }%
+ \fi
+ }
+ \def\aa@alphinc#1#2.{%
+ \ifx\\#2\\%
+ \@ReturnAfterElseFi{%
+ #11..% ready
+ }%
+ \else
+ \@ReturnAfterFi{%
+ \ifnum#2<26
+ \@ReturnAfterElseFi{%
+ \expandafter\aa@alphinclast\expandafter
+ {\number\aa@inc{#2}}{#1}%
+ }%
+ \else
+ \@ReturnAfterFi{%
+ \aa@alphinc{#11.}%
+ }%
+ \fi
+ }%
+ \fi
+ }
+ \def\aa@alphinclast#1#2{#2#1.}
+ \newcommand*{\newalphalph}[3]{%
+ \PackageError{alphalph}{%
+ \string\newalphalph\space requires e-TeX%
+ }\@ehc
+\else
+ \def\aa@make#1#2{%
+ \ifnum#1<1 %
+ \else
+ \@ReturnAfterFi{%
+ \aa@eprocess#1;#2%
+ }%
+ \fi
+ }%
+ \def\aa@eprocess#1;#2{%
+ \ifnum#1<27
+ \@ReturnAfterElseFi{%
+ #2{#1}%
+ }%
+ \else
+ \@ReturnAfterFi{%
+ \expandafter\aa@eprocess\number\numexpr(#1-14)/26%
+ \expandafter\expandafter\expandafter;%
+ \expandafter\expandafter\expandafter#2%
+ #2{\numexpr#1-((#1-14)/26)*26}%
+ }%
+ \fi
+ }%
+ \def\aa@gen@callmake#1#2#3{%
+ \expandafter\aa@gen@make\expandafter{\number#3}#1{#2}%
+ }%
+ \def\aa@gen@make#1#2#3{%
+ \ifnum#1<1 %
+ \else
+ \@ReturnAfterFi{%
+ \aa@gen@eprocess{#3}#1;#2%
+ }%
+ \fi
+ }%
+ \def\aa@gen@eprocess#1#2;#3{%
+ \ifnum#2>#1 %
+ \@ReturnAfterElseFi{%
+ \expandafter\aa@gen@eprocess\expandafter{%
+ \number#1\expandafter
+ }%
+ \number\numexpr(#2-(\aa@half{#1}+1))/#1%
+ \expandafter\expandafter\expandafter;%
+ \expandafter\expandafter\expandafter#3%
+ #3{\numexpr#2-((#2-(\aa@half{#1}+1))/#1)*#1\relax}%
+ }%
+ \else
+ \@ReturnAfterFi{%
+ #3{#2}%
+ }%
+ \fi
+ }%
+ \def\aa@half#1{%
+ \number\dimexpr.5\dimexpr #1sp\relax\relax
+ }%
+ \newcommand*{\newalphalph}[3]{%
+ \newcommand*{#1}{}%
+ \edef#1{%
+ \noexpand\aa@gen@callmake\noexpand#2{\number\numexpr#3}%
+ }%
+ }%
+\fi
+\catcode`\@=\aa@atcode
+\endinput
+%%
+%% End of file `alphalph.sty'.
diff --git a/Master/texmf-dist/tex/generic/oberdiek/engord.sty b/Master/texmf-dist/tex/generic/oberdiek/engord.sty
new file mode 100644
index 00000000000..b13c4547239
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/oberdiek/engord.sty
@@ -0,0 +1,194 @@
+%%
+%% This is file `engord.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% engord.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2000, 2003, 2006 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://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".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file engord.dtx
+%% and the derived files
+%% engord.sty, engord.pdf, engord.ins, engord.drv.
+%%
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@engord.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{engord}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\begingroup
+ \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@engord.sty\endcsname
+\ProvidesPackage{engord}%
+ [2006/02/20 v1.2 Provides the ifpdf switch (HO)]
+\expandafter\chardef\csname EO@atcode\endcsname\catcode`\@
+\catcode`\@=11 %
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname newcommand\endcsname\relax
+ \def\EO@def{\def}%
+\else
+ \def\EO@def#1{%
+ \newcommand*{#1}{}%
+ \def#1%
+ }%
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname PackageWarning\endcsname\relax
+ \def\EO@PackageWarning#1#2{%
+ \immediate\write16{%
+ Package #1 Warning: #2 on input line \the\inputlineno.%
+ }%
+ }%
+\else
+ \def\EO@PackageWarning{\PackageWarning}%
+\fi
+\newif\ifengordraise
+\engordraisetrue
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname DeclareOption\endcsname\relax
+\else
+ \DeclareOption{normal}{\engordraisefalse}%
+ \DeclareOption{raise}{\engordraisetrue}%
+ \ProcessOptions*\relax
+\fi
+\expandafter\ifx\csname engordletters\endcsname\relax
+ \EO@def\engordletters{%
+ \ifengordraise
+ \expandafter\engordtextsuperscript
+ \fi
+ }%
+\fi
+\expandafter\ifx\csname engordtextsuperscript\endcsname\relax
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname textsuperscript\endcsname\relax
+ \def\engordtextsuperscript#1{%
+ \relax
+ \ifmmode
+ ^{\rm#1}%
+ \else
+ $^{\rm#1}$%
+ \fi
+ }%
+ \else
+ \def\engordtextsuperscript{\textsuperscript}%
+ \fi
+\fi
+\expandafter\ifx\csname engorderror\endcsname\relax
+ \EO@def\engorderror#1{%
+ #1\engordletters{!ERROR!}%
+ \EO@PackageWarning{engord}{%
+ `#1' is not an ordinal number%
+ }%
+ }%
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname newcounter\endcsname\relax
+\else
+ \EO@def\engord#1{%
+ \engordnumber{\value{#1}}%
+ }%
+\fi
+\EO@def\engordnumber#1{%
+ \expandafter\EO@number\expandafter{\number#1}%
+}
+\def\EO@number#1{%
+ \ifnum#1<1 % handle the error case
+ \engorderror{#1}%
+ \else
+ \ifnum#1<21
+ \EO@ord{#1}%
+ \else
+ \ifnum#1<100
+ \EO@twodigits#1%
+ \else
+ \@ReturnAfterFi{%
+ \EO@reverse#1\@nil{}\EO@afterreverse
+ }%
+ \fi
+ \fi
+ \fi
+}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+\def\EO@ord#1{%
+ #1%
+ \expandafter\engordletters
+ \ifcase#1{th}\or
+ {st}\or
+ {nd}\or
+ {rd}\else
+ {th}%
+ \fi
+}
+\def\EO@twodigits#1#2{%
+ #1\EO@ord{#2}%
+}
+\def\EO@reverse#1#2\@nil#3#4{%
+ \ifx\\#2\\%
+ #4{#1#3}%
+ \else
+ \@ReturnAfterFi{%
+ \EO@reverse#2\@nil{#1#3}{#4}%
+ }%
+ \fi
+}
+\def\EO@afterreverse#1{%
+ \EO@reverseback#1\@nil
+}
+\def\EO@reverseback#1#2#3\@nil{%
+ \EO@reverse#3\@nil{}\@firstofone
+ \ifnum#2#1<21
+ \EO@ord{#2#1}%
+ \else
+ #2\EO@ord{#1}%
+ \fi
+}
+\catcode`\@=\EO@atcode
+\endinput
+%%
+%% End of file `engord.sty'.
diff --git a/Master/texmf-dist/tex/generic/oberdiek/ifpdf.sty b/Master/texmf-dist/tex/generic/oberdiek/ifpdf.sty
new file mode 100644
index 00000000000..6c4150fc4f6
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/oberdiek/ifpdf.sty
@@ -0,0 +1,118 @@
+%%
+%% This is file `ifpdf.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ifpdf.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2001, 2005, 2006 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://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".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file ifpdf.dtx
+%% and the derived files
+%% ifpdf.sty, ifpdf.pdf, ifpdf.ins, ifpdf.drv.
+%%
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@ifpdf.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{ifpdf}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\begingroup
+ \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@ifpdf.sty\endcsname
+\ProvidesPackage{ifpdf}%
+ [2006/02/20 v1.4 Provides the ifpdf switch (HO)]
+\begingroup
+ \expandafter\ifx\csname ifpdf\endcsname\relax
+ \else
+ \edef\i/{\expandafter\string\csname ifpdf\endcsname}%
+ \expandafter\ifx\csname PackageError\endcsname\relax
+ \def\x#1#2{%
+ \edef\z{#2}%
+ \expandafter\errhelp\expandafter{\z}%
+ \errmessage{Package ifpdf Error: #1}%
+ }%
+ \def\y{^^J}%
+ \newlinechar=10
+ \else
+ \def\x#1#2{%
+ \PackageError{ifpdf}{#1}{#2}%
+ }%
+ \def\y{\MessageBreak}%
+ \fi
+ \x{Name clash, \i/ is already defined}{%
+ Incompatible versions of \i/ can cause problems,\y
+ therefore package loading is aborted.%
+ }%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\newif\ifpdf
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdfoutput\endcsname\relax
+\else
+ \ifnum\pdfoutput<1 %
+ \else
+ \pdftrue
+ \fi
+\fi
+\begingroup
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \let\x\PackageInfo
+ \expandafter\let\csname on@line\endcsname\empty
+ \fi
+ \x{ifpdf}{pdfTeX in pdf mode \ifpdf\else not \fi detected}%
+\endgroup
+\endinput
+%%
+%% End of file `ifpdf.sty'.
diff --git a/Master/texmf-dist/tex/generic/oberdiek/ifvtex.sty b/Master/texmf-dist/tex/generic/oberdiek/ifvtex.sty
new file mode 100644
index 00000000000..59201ca940c
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/oberdiek/ifvtex.sty
@@ -0,0 +1,156 @@
+%%
+%% This is file `ifvtex.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ifvtex.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2001, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://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".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file ifvtex.dtx
+%% and the derived files
+%% ifvtex.sty, ifvtex.pdf, ifvtex.ins, ifvtex.drv.
+%%
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@ifvtex.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{ifvtex}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\begingroup
+ \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@ifvtex.sty\endcsname
+\ProvidesPackage{ifvtex}%
+ [2006/02/20 v1.1 Provides the ifpdf switch (HO)]
+\begingroup
+ \expandafter\ifx\csname ifvtex\endcsname\relax
+ \else
+ \edef\i/{\expandafter\string\csname ifvtex\endcsname}%
+ \expandafter\ifx\csname PackageError\endcsname\relax
+ \def\x#1#2{%
+ \edef\z{#2}%
+ \expandafter\errhelp\expandafter{\z}%
+ \errmessage{Package ifvtex Error: #1}%
+ }%
+ \def\y{^^J}%
+ \newlinechar=10
+ \else
+ \def\x#1#2{%
+ \PackageError{ifvtex}{#1}{#2}%
+ }%
+ \def\y{\MessageBreak}%
+ \fi
+ \x{Name clash, \i/ is already defined}{%
+ Incompatible versions of \i/ can cause problems,\y
+ therefore package loading is aborted.%
+ }%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\newif\ifvtex
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname VTeXversion\endcsname\relax
+\else
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname OpMOde\endcsname\relax
+ \else
+ \vtextrue
+ \fi
+\fi
+\newif\ifvtexdvi
+\newif\ifvtexpdf
+\newif\ifvtexps
+\newif\ifvtexhtml
+\newif\ifvtexgex
+\ifvtex
+ \ifcase\OpMode\relax
+ \vtexdvitrue
+ \or % 1
+ \vtexpdftrue
+ \or % 2
+ \vtexpstrue
+ \or % 3
+ \vtexpstrue
+ \or\or\or\or\or\or\or % 10
+ \vtexhtmltrue
+ \fi
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname gexmode\endcsname\relax
+ \else
+ \ifnum\gexmode>0 %
+ \vtexgextrue
+ \fi
+ \fi
+\fi
+\begingroup
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \let\x\PackageInfo
+ \expandafter\let\csname on@line\endcsname\empty
+ \fi
+ \x{ifvtex}{%
+ VTeX %
+ \ifvtex
+ in \ifvtexdvi DVI\fi
+ \ifvtexpdf PDF\fi
+ \ifvtexps PS\fi
+ \ifvtexhtml HTML\fi
+ \space mode %
+ with\ifvtexgex\else out\fi\space GeX %
+ \else
+ not %
+ \fi
+ detected%
+ }%
+\endgroup
+\endinput
+%%
+%% End of file `ifvtex.sty'.
diff --git a/Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty b/Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
new file mode 100644
index 00000000000..d76859fd885
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
@@ -0,0 +1,353 @@
+%%
+%% This is file `kvsetkeys.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% kvsetkeys.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://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".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file kvsetkeys.dtx
+%% and the derived files
+%% kvsetkeys.sty, kvsetkeys.pdf, kvsetkeys.ins, kvsetkeys.drv.
+%%
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@kvsetkeys.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{kvsetkeys}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\begingroup
+ \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@kvsetkeys.sty\endcsname
+\ProvidesPackage{kvsetkeys}%
+ [2006/03/06 v1.0 Key value parser with default handler support (HO)]
+\expandafter\edef\csname KVS@endinput\endcsname{%
+ \catcode39 \the\catcode39 % '
+ \catcode44 \the\catcode44 % ,
+ \catcode61 \the\catcode61 % =
+ \catcode64 \the\catcode64 % @
+ \catcode94 \the\catcode94 % ^
+ \catcode96 \the\catcode96 % `
+ \catcode126 \the\catcode126 % ~
+ \relax
+ \noexpand\endinput
+}
+\catcode39 12 % '
+\catcode44 12 % ,
+\catcode61 12 % =
+\catcode64 11 % @
+\catcode94 7 % ^
+\catcode96 12 % `
+\catcode126 13 % ~
+\def\KVS@empty{}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+\def\kv@normalize#1{%
+ \begingroup
+ \toks@{,#1}%
+ \KVS@comma
+ \KVS@equal
+ \KVS@spaceA
+ \KVS@spaceB{ }%
+ \KVS@spaceC
+ \KVS@spaceD{ }%
+ \xdef\kv@global{\the\toks@}%
+ \endgroup
+ \let\kv@list\kv@global
+}
+\begingroup
+ \lccode`\,=`\,%
+ \lccode`\~=`\,%
+\lowercase{\endgroup
+ \def\KVS@comma{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@comma\the\toks@~\KVS@nil
+ }
+ \def\KVS@@comma#1~#2\KVS@nil{%
+ \toks@\expandafter{\the\toks@#1,}%
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@comma#2\KVS@nil
+ }%
+ \fi
+ }%
+}
+\begingroup
+ \lccode`\==`\=%
+ \lccode`\~=`\=%
+\lowercase{\endgroup
+ \def\KVS@equal{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@equal\the\toks@~\KVS@nil
+ }
+ \def\KVS@@equal#1~#2\KVS@nil{%
+ \edef\x{\the\toks@}%
+ \ifx\x\KVS@empty
+ \toks@{#1}%
+ \else
+ \toks@\expandafter{\the\toks@=#1}%
+ \fi
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@equal#2\KVS@nil
+ }%
+ \fi
+ }%
+}
+\def\KVS@spaceA{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@spaceA\the\toks@= \KVS@nil
+}
+\def\KVS@@spaceA#1= #2\KVS@nil{%
+ \edef\x{\the\toks@}%
+ \ifx\x\KVS@empty
+ \toks@{#1}%
+ \else
+ \toks@\expandafter{\the\toks@=#1}%
+ \fi
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@spaceA#2\KVS@nil
+ }%
+ \fi
+}
+\def\KVS@spaceB#1{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@spaceB\the\toks@#1,\KVS@nil
+}
+\def\KVS@@spaceB#1 ,#2\KVS@nil{%
+ \edef\x{\the\toks@}%
+ \ifx\x\KVS@empty
+ \toks@{#1}%
+ \else
+ \toks@\expandafter{\the\toks@,#1}%
+ \fi
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@spaceB#2\KVS@nil
+ }%
+ \fi
+}
+\def\KVS@spaceC{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@spaceC\the\toks@, \KVS@nil
+}
+\def\KVS@@spaceC#1, #2\KVS@nil{%
+ \edef\x{\the\toks@}%
+ \ifx\x\KVS@empty
+ \toks@{#1}%
+ \else
+ \toks@\expandafter{\the\toks@,#1}%
+ \fi
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@spaceC#2\KVS@nil
+ }%
+ \fi
+}
+\def\KVS@spaceD#1{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@spaceD\the\toks@#1=\KVS@nil
+}
+\def\KVS@@spaceD#1 =#2\KVS@nil{%
+ \edef\x{\the\toks@}%
+ \ifx\x\KVS@empty
+ \toks@{#1}%
+ \else
+ \toks@\expandafter{\the\toks@=#1}%
+ \fi
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@spaceD#2\KVS@nil
+ }%
+ \fi
+}
+\def\kv@parse#1{%
+ \kv@normalize{#1}%
+ \expandafter\kv@parse@normalized\expandafter{\kv@list}%
+}
+\def\kv@parse@normalized#1#2{%
+ \KVS@parse#1,\KVS@nil{#2}%
+}
+\def\KVS@parse#1,#2\KVS@nil#3{%
+ \begingroup
+ \toks@{#1}%
+ \edef\x{\the\toks@}%
+ \expandafter\endgroup
+ \ifx\x\KVS@empty
+ \else
+ \KVS@process#1=\KVS@nil{#3}%
+ \fi
+ \begingroup
+ \toks@{#2}%
+ \edef\x{\the\toks@}%
+ \expandafter\endgroup
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@parse#2\KVS@nil{#3}%
+ }%
+ \fi
+}
+\def\KVS@process#1=#2\KVS@nil#3{%
+ \def\kv@key{#1}%
+ \begingroup
+ \toks@{#2}%
+ \edef\x{\the\toks@}%
+ \expandafter\endgroup
+ \ifx\x\KVS@empty
+ \let\kv@value\relax
+ #3{#1}{}%
+ \else
+ \KVS@@process{#1}#2\KVS@nil{#3}%
+ \fi
+}
+\def\KVS@@process#1#2=\KVS@nil#3{%
+ \begingroup
+ \toks@{#2}%
+ \xdef\KVS@global{\the\toks@}%
+ \endgroup
+ \let\kv@value\KVS@global
+ #3{#1}{#2}%
+}
+\def\kv@processor@default#1#2#3{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname KV@#1@#2\endcsname\relax
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname KVS@#1@handler\endcsname\relax
+ \kv@error@unknownkey{#1}{#2}%
+ \else
+ \csname KVS@#1@handler\endcsname{#2}{#3}%
+ \relax
+ \fi
+ \else
+ \ifx\kv@value\relax
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname KV@#1@#2@default\endcsname\relax
+ \kv@error@novalue{#1}{#2}%
+ \else
+ \csname KV@#1@#2@default\endcsname
+ \relax
+ \fi
+ \else
+ \csname KV@#1@#2\endcsname{#3}%
+ \fi
+ \fi
+}
+\def\kv@set@family@handler#1#{%
+ \expandafter\def\csname KVS@#1@handler\endcsname
+}
+\expandafter\ifx\csname MessageBreak\endcsname\relax
+ \def\MessageBreak{^^J}%
+\fi
+\expandafter\ifx\csname @ehc\endcsname\relax
+ \def\@ehc{%
+ Try typing \space\string<return\string> %
+ \space to proceed.\MessageBreak
+ If that doesn't work, type \space X %
+ \string<return\string> \space to quit\string.%
+ }%
+\fi
+\def\kv@error@novalue{%
+ \kv@error@generic{No value specified for}%
+}
+\def\kv@error@unknownkey{%
+ \kv@error@generic{Undefined}%
+}
+\def\kv@error@generic#1#2#3{%
+ \begingroup
+ \newlinechar=10 %
+ \def\MessageBreak{^^J}%
+ \expandafter\ifx\csname PackageError\endcsname\relax
+ \edef\x{%
+ \errhelp{%
+ The keyval family of the key `#3' is `#2'.\MessageBreak
+ \MessageBreak
+ \@ehc
+ }%
+ }%
+ \x
+ \errmessage{kvsetkeys: #1 key `#3'}%
+ \else
+ \edef\x{%
+ \noexpand\PackageError{kvsetkeys}{%
+ #1 key `#3'%
+ }{%
+ The keyval family of the key `#3' is `#2'.\MessageBreak
+ \MessageBreak
+ \@ehc
+ }%
+ }%
+ \x
+ \fi
+ \endgroup
+}%
+\def\kvsetkeys#1#2{%
+ \kv@parse{#2}{\kv@processor@default{#1}}%
+}
+\KVS@endinput
+\endinput
+%%
+%% End of file `kvsetkeys.sty'.
diff --git a/Master/texmf-dist/tex/generic/oberdiek/pdfcrypt.sty b/Master/texmf-dist/tex/generic/oberdiek/pdfcrypt.sty
new file mode 100644
index 00000000000..0f4f4102146
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/oberdiek/pdfcrypt.sty
@@ -0,0 +1,555 @@
+%%
+%% This is file `pdfcrypt.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pdfcrypt.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2001, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://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".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file pdfcrypt.dtx
+%% and the derived files
+%% pdfcrypt.sty, pdfcrypt.pdf, pdfcrypt.ins, pdfcrypt.drv.
+%%
+\expandafter\edef\csname pc@endinput\endcsname{%
+ \catcode`\noexpand\@=\the\catcode`\@\relax
+ \noexpand\endinput
+}
+\catcode`\@=11 %
+
+\expandafter\ifx\csname @firstoftwo\endcsname\relax
+ \long\def\@firstoftwo#1#2{#1}%
+\fi
+
+\expandafter\ifx\csname @secondoftwo\endcsname\relax
+ \long\def\@secondoftwo#1#2{#2}%
+\fi
+
+\expandafter\ifx\csname @ifundefined\endcsname\relax
+ \def\@ifundefined#1{%
+ \expandafter\ifx\csname #1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }%
+\fi
+
+\@ifundefined{@ifnextchar}{%
+ \long\def\@ifnextchar#1#2#3{%
+ \let\reserved@d=#1%
+ \def\reserved@a{#2}%
+ \def\reserved@b{#3}%
+ \futurelet\@let@token\@ifnch
+ }%
+ \def\@ifnch{%
+ \ifx\@let@token\@sptoken
+ \let\reserved@c\@xifnch
+ \else
+ \ifx\@let@token\reserved@d
+ \let\reserved@c\reserved@a
+ \else
+ \let\reserved@c\reserved@b
+ \fi
+ \fi
+ \reserved@c
+ }%
+ \begingroup
+ \def\:{\global\let\@sptoken= }%
+ \: %
+ \def\:{\@xifnch}%
+ \expandafter\gdef\: {\futurelet\@let@token\@ifnch}%
+ \endgroup
+}{}
+
+\@ifundefined{ProvidesPackage}{%
+ \def\ProvidesPackage#1{%
+ \@ifnextchar[{\pc@ProvidesPackage{#1}}
+ {\pc@ProvidesPackage{#1}[]}%
+ }%
+ \def\pc@ProvidesPackage#1[#2]{%
+ \immediate\write-1{Package: #1 #2}%
+ }%
+}{}
+
+\@ifundefined{PackageError}{%
+ \def\PackageError#1#2#3{%
+ \begingroup
+ \newlinechar=10 %
+ \errhelp{#3}%
+ \errmessage{%
+ \MessageBreak
+ Package #1 Error: #2.\MessageBreak
+ \MessageBreak
+ See the #1 package documentation for explanation.\MessageBreak
+ Type \space H <return> \space for immediate help%
+ }%
+ \endgroup
+ }%
+}{}
+
+\@ifundefined{PackageWarning}{%
+ \def\PackageWarning#1#2{%
+ \begingroup
+ \newlinechar=10 %
+ \def\MessageBreak{%
+ ^^J(#1)\@spaces\@spaces\@spaces\@spaces
+ }%
+ \immediate\write16{^^JPackage #1 Warning: #2\on@line.^^J}%
+ \endgroup
+ }%
+}{}
+
+\@ifundefined{PackageWarningNoLine}{%
+ \def\PackageWarningNoLine#1#2{%
+ \PackageWarning{#1}{#2\@gobble}%
+ }%
+}{}
+
+\@ifundefined{@gobble}{%
+ \long\def\@gobble#1{}%
+}{}
+
+\@ifundefined{on@line}{%
+ \def\on@line{ on input line \the\inputlineno}%
+}{}
+
+\@ifundefined{@empty}{%
+ \def\@empty{}%
+}{}
+\ProvidesPackage{pdfcrypt}%
+ [2006/02/20 v0.8 Setting pdf encryption (HO)]
+\@ifundefined{pdfcryptsetup}{%
+ \let\pdfcryptsetup\@gobble
+}{%
+ \PackageWarningNoLine{pdfcrypt}{Package pdfcrypt is already loaded}%
+ \pc@endinput
+}
+\newif\ifpc@nopdfcrypt
+\ifx Y\nopdfcrypt
+ \PackageWarningNoLine{pdfcrypt}{%
+ Encryption disabled by \string \nopdfcrypt\space request%
+ }%
+ \global\pc@nopdfcrypttrue
+\fi
+\let\pc@driver\@empty
+\begingroup
+ % pdfTeX detection
+ \@ifundefined{pdfoutput}{%
+ }{%
+ \ifcase\pdfoutput
+ \else
+ \@ifundefined{pdfcrypt}{%
+ \PackageError{pdfcrypt}{%
+ PDF encryption is not supported with this pdfTeX%
+ }{%
+ Encryption support was added in 0.14h (2001/03/10)\MessageBreak
+ and removed in 1.10a (2003/01/16).%
+ }%
+ \endgroup
+ \pc@endinput
+ }{%
+ \gdef\pc@driver{pdftex}%
+ }
+ \fi
+ }%
+ % VTeX detection
+ \@ifundefined{OpMode}{%
+ }{%
+ \ifnum\OpMode=1 %
+ \ifnum\@ifundefined{VTeXversion}0\VTeXversion<735 %
+ \PackageError{pdfcrypt}{%
+ PDF encryption is not supported with this VTeX%
+ }{%
+ You need VTeX 7.35 or higher.%
+ }%
+ \endgroup
+ \pc@endinput
+ \else
+ \gdef\pc@driver{vtex}%
+ \fi
+ \fi
+ }%
+\endgroup
+\@ifundefined{@makeother}{%
+ \def\@makeother#1{\catcode`#1=12\relax}%
+}{}
+
+\@ifundefined{g@addto@macro}{%
+ \long\def\g@addto@macro#1#2{%
+ \begingroup
+ \toks@\expandafter{#1#2}%
+ \xdef#1{\the\toks@}%
+ \endgroup
+ }%
+}{}
+
+\@ifundefined{@namedef}{%
+ \def\@namedef#1{\expandafter\def\csname#1\endcsname}
+}{}
+
+\@ifundefined{@nameuse}{%
+ \def\@nameuse#1{\csname #1\endcsname}%
+}{}
+
+\@ifundefined{MessageBreak}{%
+ \def\MessageBreak{^^J}%
+}{}
+
+\@ifundefined{@ehc}{%
+ \def\@ehc{%
+ Try typing \space <return> \space to proceed.\MessageBreak
+ If that doesn't work, type \space X <return> \space
+ to quit.%
+ }%
+}{}
+
+\@ifundefined{PackageInfo}{%
+ \def\PackageInfo#1#2{%
+ \begingroup
+ \newlinechar=10 %
+ \def\MessageBreak{%
+ ^^J(#1) \space\@spaces\@spaces\@spaces
+ }%
+ \wlog{Package #1 Info: #2}%
+ \endgroup
+ }%
+}{}
+
+\@ifundefined{@spaces}{%
+ \def\@spaces{\space\space\space\space}%
+}{}
+
+\def\pc@KeyvalRestore{%
+ \let\pc@KeyvalRestore\@undefined
+}
+
+\let\pcOrg@NeedsTeXFormat\NeedsTeXFormat
+\@ifundefined{NeedsTeXFormat}{%
+ \def\NeedsTeXFormat#1{}%
+ \g@addto@macro\pc@KeyvalRestore{%
+ \let\NeedsTeXFormat\pcOrg@NeedsTeXFormat
+ }%
+}{}
+
+\let\pcOrg@DeclareOption\DeclareOption
+\@ifundefined{DeclareOption}{%
+ \def\DeclareOption#1#2{#2}%
+ \g@addto@macro\pc@KeyvalRestore{%
+ \let\DeclareOption\pcOrg@DeclareOption
+ }%
+}{}
+
+\let\pcOrg@ExecuteOptions\ExecuteOptions
+\@ifundefined{ExecuteOptions}{%
+ \def\ExecuteOptions#1{}%
+ \g@addto@macro\pc@KeyvalRestore{%
+ \let\ExecuteOptions\pcOrg@ExecuteOptions
+ }%
+}{}
+
+\let\pcOrg@ProcessOptions\ProcessOptions
+\@ifundefined{ProcessOptions}{%
+ \def\ProcessOptions{}%
+ \g@addto@macro\pc@KeyvalRestore{%
+ \let\ProcessOptions\pcOrg@ProcessOptions
+ }%
+}{}%
+
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname RequirePackage\endcsname\relax
+ \input keyval.sty
+\else
+ \RequirePackage{keyval}
+\fi
+\pc@KeyvalRestore
+\@ifundefined{@dblarg}{%
+ \long\def\@dblarg#1{\@ifnextchar[{#1}{\@xdblarg{#1}}}
+ \long\def\@xdblarg#1#2{#1[{#2}]{#2}}
+}{}
+
+\newif\ifpc@set
+\newif\ifpc@print
+\newif\ifpc@copy
+\newif\ifpc@edit
+\newif\ifpc@annotate
+\newif\ifpc@debug
+\let\pc@owner\@empty
+\let\pc@user\@empty
+
+\pc@printtrue
+\pc@copytrue
+\pc@edittrue
+\pc@annotatetrue
+
+\edef\pc@temp{\catcode`\noexpand\"=\the\catcode`\"\relax}
+\@makeother\"
+\def\pc@set{%
+ \PackageInfo{pdfcrypt}{%
+ \ifpc@debug
+ \ifx\pc@owner\@empty
+ No owner password%
+ \else
+ Owner password: `\pc@owner'%
+ \fi
+ \MessageBreak
+ \ifx\pc@user\@empty
+ No user password%
+ \else
+ User password: `\pc@user'%
+ \fi
+ \MessageBreak
+ Flags: %
+ \ifpc@print \else no\fi print, %
+ \ifpc@copy \else no\fi copy, %
+ \ifpc@edit \else no\fi edit, %
+ \ifpc@annotate\else no\fi annotate%
+ \MessageBreak
+ \fi
+ \ifpc@nopdfcrypt
+ Encryption is disabled by `\string\nopdfcrypt'%
+ \else
+ Encryption is set for `\pc@driver'%
+ \fi
+ }
+ \ifpc@nopdfcrypt
+ \else
+ \@ifundefined{pc@set@\pc@driver}{%
+ \ifx\pc@driver\@empty
+ \PackageError{pdfcrypt}{No driver for encryption %
+ support found}\@ehc
+ \else
+ \PackageError{pdfcrypt}{Cannot set encryption for %
+ unknown driver `\pc@driver'}\@ehc
+ \fi
+ }{%
+ \@nameuse{pc@set@\pc@driver}%
+ }%
+ \fi
+}
+\def\pc@set@pdftex{%
+ \ifnum\pdftexversion<100 %
+ \pc@set@pdftexold
+ \else
+ \pc@set@pdftexnew
+ \fi
+}
+\def\pc@set@pdftexold{%
+ \pdfcrypt{%
+ owner "\pc@owner"
+ user "\pc@user"
+ \ifpc@print \else no\fi print
+ \ifpc@copy \else no\fi copy
+ \ifpc@edit \else no\fi edit
+ \ifpc@annotate\else no\fi annotate%
+ }%
+}
+\def\pc@set@pdftexnew{%
+ \pdfcrypt
+ owner{\pc@owner}%
+ user{\pc@user}%
+ \ifpc@print \else no\fi print
+ \ifpc@copy \else no\fi copy
+ \ifpc@edit \else no\fi edit
+ \ifpc@annotate\else no\fi annotate%
+ \relax
+}
+\def\pc@set@vtex{%
+ \immediate\special{!security %
+ O=\pc@MakeVTeXString\pc@owner,%
+ U=\pc@MakeVTeXString\pc@user,%
+ P\ifpc@print +\else -\fi,%
+ C\ifpc@copy +\else -\fi,%
+ M\ifpc@edit +\else -\fi,%
+ A\ifpc@annotate +\else -\fi
+ }%
+}
+\def\pc@MakeVTeXString#1{%
+ "\expandafter\pc@@MakeVTeXString#1"\@nil"%
+}
+\def\pc@@MakeVTeXString#1"#2\@nil{%
+ #1%
+ \ifx\\#2\\%
+ \else
+ ""%
+ \@ReturnAfterFi{%
+ \pc@@MakeVTeXString#2\@nil
+ }%
+ \fi
+}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+\pc@temp
+
+\begingroup
+ \catcode`\ =12 \gdef\pc@spaceother{ }\catcode`\ =10\relax
+ \catcode`\|=0 %
+ \catcode`\\=12 %
+ |gdef|pc@DefString#1#2{%
+ |def#1{#2}%
+ |edef#1{|expandafter|strip@prefix|meaning#1}%
+ |edef#1{|expandafter|pc@SpaceToOther#1 |@nil}%
+ |edef#1{|expandafter|pc@EscapeRemove#1|@empty\|@empty|@nil}%
+ }
+ |gdef|pc@EscapeRemove#1\#2#3|@nil{%
+ #1#2%
+ |ifx|\#3|\%
+ |else
+ |@ReturnAfterFi{%
+ |pc@EscapeRemove#3|@nil
+ }%
+ |fi
+ }
+|endgroup
+\def\pc@SpaceToOther#1 #2\@nil{%
+ #1%
+ \ifx\\#2\\%
+ \else
+ \pc@spaceother
+ \@ReturnAfterFi{%
+ \pc@SpaceToOther#2\@nil
+ }%
+ \fi
+}
+
+\def\pc@boolkey{\@dblarg\pc@@boolkey}
+\def\pc@@boolkey[#1]#2#3{%
+ \lowercase{\def\pc@temp{#3}}%
+ \ifx\pc@temp\@empty
+ \let\pc@temp\pc@true
+ \fi
+ \ifx\pc@temp\pc@true
+ \else
+ \ifx\pc@temp\pc@false
+ \else
+ \let\pc@temp\relax
+ \fi
+ \fi
+ \ifx\pc@temp\relax
+ \PackageWarning{pdfcrypt}{%
+ Unexpected value \string`#3\string' of
+ option \string`#2\string'\MessageBreak
+ instead of
+ \string`true\string' or \string`false\string'%
+ }%
+ \else
+ \csname pc@#2\pc@temp\endcsname
+ \fi
+}
+\def\pc@true{true}
+\def\pc@false{false}
+
+\define@key{pc}{set}[true]{%
+ \pc@boolkey{set}{#1}%
+}
+\define@key{pc}{pdftex}[]{%
+ \def\pc@driver{pdftex}%
+}
+\define@key{pc}{vtex}[]{%
+ \def\pc@driver{vtex}%
+}
+\define@key{pc}{print}[true]{%
+ \pc@boolkey{print}{#1}%
+}
+\define@key{pc}{copy}[true]{%
+ \pc@boolkey{copy}{#1}%
+}
+\define@key{pc}{edit}[true]{%
+ \pc@boolkey{edit}{#1}%
+}
+\define@key{pc}{annotate}[true]{%
+ \pc@boolkey{annotate}{#1}%
+}
+\define@key{pc}{all}[]{%
+ \pc@boolkey{print}{true}%
+ \pc@boolkey{copy}{true}%
+ \pc@boolkey{edit}{true}%
+ \pc@boolkey{annotate}{true}%
+}
+\define@key{pc}{none}[]{%
+ \pc@boolkey{print}{false}%
+ \pc@boolkey{copy}{false}%
+ \pc@boolkey{edit}{false}%
+ \pc@boolkey{annotate}{false}%
+}
+
+\define@key{pc}{owner}{%
+ \pc@DefString\pc@owner{#1}%
+}
+\define@key{pc}{user}{%
+ \pc@DefString\pc@user{#1}%
+}
+\define@key{pc}{debug}[true]{%
+ \pc@boolkey{debug}{#1}%
+}
+
+\def\pdfcryptsetup#1{%
+ \setkeys{pc}{#1}%
+ \ifpc@set
+ \pc@set
+ \global\let\pc@set\relax
+ \gdef\pdfcryptsetup##1{%
+ \PackageWarning{pdfcrypt}{%
+ Encryption options are already set\MessageBreak
+ new values are ignored%
+ }%
+ }%
+ \fi
+}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname @onlypreamble\endcsname\relax
+\else
+ \@onlypreamble\pdfcryptsetup
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname InputIfFileExists\endcsname\relax
+ \PackageInfo{pdfcrypt}{%
+ Configuration file pdfcrypt.cfg not supported.%
+ }%
+\else
+ \let\pc@ExecuteOptions\ExecuteOptions
+ \InputIfFileExists{pdfcrypt.cfg}{}{}
+ \let\ExecuteOptions\pc@ExecuteOptions
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname @classoptionslist\endcsname\relax
+ \expandafter\pc@endinput
+\fi
+\def\pc@ProcessOptionsWithKV{%
+ \let\pc@temp\@empty
+ \@for\CurrentOption:=\@classoptionslist\do{%
+ \@ifundefined{KV@pc@\CurrentOption}{}{%
+ \edef\pc@temp{\pc@temp,\CurrentOption,}%
+ \@expandtwoargs\@removeelement\CurrentOption
+ \@unusedoptionlist\@unusedoptionlist
+ }%
+ }%
+ \edef\pc@temp{%
+ \noexpand\pdfcryptsetup{%
+ \pc@temp\@ptionlist{\@currname.\@currext}%
+ }%
+ }%
+ \pc@temp
+}
+\pc@ProcessOptionsWithKV
+\AtEndOfPackage{\let\@unprocessedoptions\relax}
+\AtBeginDocument{\pc@set}
+
+\pc@endinput
+\endinput
+%%
+%% End of file `pdfcrypt.sty'.
diff --git a/Master/texmf-dist/tex/generic/oberdiek/setouterhbox.sty b/Master/texmf-dist/tex/generic/oberdiek/setouterhbox.sty
new file mode 100644
index 00000000000..debdcf5f3f0
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/oberdiek/setouterhbox.sty
@@ -0,0 +1,234 @@
+%%
+%% This is file `setouterhbox.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% setouterhbox.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://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".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file setouterhbox.dtx
+%% and the derived files
+%% setouterhbox.sty, setouterhbox.pdf, setouterhbox.ins, setouterhbox.drv,
+%% setouterhbox-example.tex.
+%%
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@setouterhbox.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{setouterhbox}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\begingroup
+ \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@setouterhbox.sty\endcsname
+\ProvidesPackage{setouterhbox}%
+ [2006/08/26 v1.4 Set hbox in outer horizontal mode (HO)]
+\newbox\setouterhboxBox
+\def\setouterhboxFailure#1#2{%
+ \begingroup
+ \expandafter\ifx\csname PackageError\endcsname\relax
+ \def\MessageBreak{^^J}%
+ \newlinechar=10\relax
+ \edef\z{#2}%
+ \errhelp\expandafter{\z}%
+ \errmessage{Package setouterhbox Error: #1}%
+ \else
+ \PackageError{setouterhbox}{#1}{#2}%
+ \fi
+ \endgroup
+}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname lastnodetype\endcsname\relax
+ \catcode`T=9 % ignore
+ \catcode`E=14 % comment
+\else
+ \catcode`T=14 % comment
+ \catcode`E=9 % ignore
+\fi
+\def\setouterhboxRemove{%
+E \ifnum\lastnodetype<11 %
+E \else
+E \ifnum\lastnodetype>13 %
+E \else
+ \unskip\unkern\unpenalty
+E \expandafter\expandafter\expandafter\setouterhboxRemove
+E \fi
+E \fi
+}%
+\def\setouterhbox#1{%
+ \begingroup
+ \def\setouterhboxNum{#1}%
+ \setbox0\vbox\bgroup
+T \kern.123pt\relax % marker
+T \kern0pt\relax % removed by \setouterhboxRemove
+ \begingroup
+ \everypar{}%
+ \noindent
+}
+\def\endsetouterhbox{%
+ \endgroup
+ \pretolerance-1 %
+ \tolerance10000 %
+ \hsize\maxdimen
+ \parfillskip 0pt plus 1filll\relax
+ \leftskip0pt\relax
+ \rightskip0pt plus 1fil\relax
+ \everypar{}%
+ \kern0pt%
+ \endgraf
+ \setouterhboxRemove
+E \ifnum\lastnodetype=1 %
+E \global\setbox\setouterhboxBox\lastbox
+E \loop
+E \setouterhboxRemove
+E \ifnum\lastnodetype=1 %
+E \setbox0=\lastbox
+E \global\setbox\setouterhboxBox=\hbox{%
+E \unhbox0 %
+E \unskip
+E \unhbox\setouterhboxBox
+E }%
+E \repeat
+E \else
+E \setouterhboxFailure{%
+E Something is wrong%
+E }{%
+E Could not find expected line.%
+E \MessageBreak
+E (\string\lastnodetype: \number\lastnodetype, expected: 1)%
+E }%
+E \fi
+E \setouterhboxRemove
+T \global\setbox\setouterhboxBox\lastbox
+T \loop
+T \setouterhboxRemove
+T \setbox0=\lastbox
+T \ifcase\ifvoid0 1\else0\fi
+T \global\setbox\setouterhboxBox=\hbox{%
+T \unhbox0 %
+T \unskip
+T \unhbox\setouterhboxBox
+T }%
+T \repeat
+T \ifdim.123pt=\lastkern
+T \else
+T \setouterhboxFailure{%
+T Something is wrong%
+T }{%
+T Unexpected stuff was detected before the line.%
+T }%
+T \fi
+T \egroup
+T \ifcase \ifnum\wd0=0 \else 1\fi
+T \ifdim\ht0=.123pt \else 1\fi
+T \ifnum\dp0=0 \else 1\fi
+T 0 %
+E \ifnum\lastnodetype=-1 %
+ \else
+ \setouterhboxFailure{%
+ Something is wrong%
+ }{%
+ After fetching the line there is more unexpected stuff.%
+E \MessageBreak
+E (\string\lastnodetype: \number\lastnodetype, expected: -1)%
+ }%
+ \fi
+E \egroup
+ \expandafter\endgroup
+ \expandafter\setouterhboxFinish\expandafter{%
+ \number\setouterhboxNum
+ }%
+}
+\def\setouterhboxCurr{setouterhbox}
+\def\setouterhboxLast#1{%
+ \setbox#1\hbox{%
+ \unhbox\setouterhboxBox
+ \unskip % remove \rightskip glue
+ \unskip % remove \parfillskip glue
+ \unpenalty % remove paragraph ending \penalty 10000
+ \unkern % remove explicit kern inserted above
+ }%
+}
+\def\setouterhboxFinish#1{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname @currenvir\endcsname\setouterhboxCurr
+ \aftergroup\setouterhboxLast
+ \aftergroup{%
+ \setouterhboxAfter #1\NIL
+ \aftergroup}%
+ \else
+ \setouterhboxLast{#1}%
+ \fi
+}
+\def\setouterhboxAfter#1#2\NIL{%
+ \aftergroup#1%
+ \ifx\\#2\\%
+ \else
+ \setouterhboxReturnAfterFi{%
+ \setouterhboxAfter#2\NIL
+ }%
+ \fi
+}
+\long\def\setouterhboxReturnAfterFi#1\fi{\fi#1}
+\catcode69=11\relax % E
+\catcode84=11\relax % T
+\begingroup
+ \def\x{LaTeX2e}%
+\expandafter\endgroup
+\ifx\x\fmtname
+\else
+ \expandafter\endinput
+\fi
+\DeclareOption{hyperref}{%
+ \long\def\Hy@setouterhbox#1#2{%
+ \setouterhbox{#1}#2\endsetouterhbox
+ }%
+}
+\ProcessOptions\relax
+\endinput
+%%
+%% End of file `setouterhbox.sty'.
diff --git a/Master/texmf-dist/tex/generic/oberdiek/telprint.sty b/Master/texmf-dist/tex/generic/oberdiek/telprint.sty
new file mode 100644
index 00000000000..1d4e26aebc8
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/oberdiek/telprint.sty
@@ -0,0 +1,167 @@
+%%
+%% This is file `telprint.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% telprint.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (C) 1996, 1997, 2004, 2005, 2006 by
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3 of this license or (at your option) any later
+%% version. The latest version of this license is in
+%% http://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".
+%%
+%% This Current Maintainer of this work is Heiko Oberdiek.
+%%
+%% This work consists of the main source file telprint.dtx
+%% and the derived files
+%% telprint.sty, telprint.pdf, telprint.ins, telprint.drv.
+%%
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@telprint.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{telprint}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+\begingroup
+ \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@telprint.sty\endcsname
+\ProvidesPackage{telprint}%
+ [2006/08/16 v1.7 Formatting of German phone numbers (HO)]
+\ifx\telprint\UnDeFiNeD
+\else\endinput\fi
+\ifx\DeclareRobustCommand\UnDeFiNeD
+ \def\DeclareRobustCommand*#1[1]{\def#1##1}
+ \def\TELreset{\let\DeclareRobustCommand=\UnDeFiNeD}
+ \immediate\write-1{Package `telprint' warning: %
+ Macros are not robust!}
+\else
+ \let\TELreset=\relax
+\fi
+\DeclareRobustCommand*{\telspace}[1]{\def\TELspace{#1}}
+\telspace{{}$\,${}}
+\DeclareRobustCommand*{\telhyphen}[1]{\def\TELhyphen{#1}}
+\telhyphen{\leavevmode\hbox{-}}% \hbox zur Verhinderung der Trennung
+\DeclareRobustCommand*{\telslash}[1]{\def\TELslash{#1}}
+\telslash{/}%
+\DeclareRobustCommand*{\telleftparen}[1]{\def\TELleftparen{#1}}
+\telleftparen{(}%
+\DeclareRobustCommand*{\telrightparen}[1]{\def\TELrightparen{#1}}
+\telrightparen{)}%
+\DeclareRobustCommand*{\telplus}[1]{\def\TELplus{#1}}
+\telplus{+}%
+\DeclareRobustCommand*{\teltilde}[1]{\def\TELtilde{#1}}
+\teltilde{~}%
+\newtoks\TELtoks
+\def\TELnumber#1#2\TELnumberEND{%
+ \begingroup
+ \def\0{#2}%
+ \expandafter\endgroup
+ \ifx\0\empty
+ \TELtoks=\expandafter{\the\TELtoks#1}%
+ \ifnum\TELswitch=0
+ \def\TELx{\TELspace}\def\TELy{}%
+ \else
+ \def\TELx{}\def\TELy{\TELspace}%
+ \fi
+ \the\TELtoks
+ \else
+ \ifnum\TELswitch=0
+ \TELtoks=\expandafter{\the\TELtoks#1\TELx}%
+ \def\TELswitch{1}%
+ \else
+ \TELtoks=\expandafter{\the\TELtoks#1\TELy}%
+ \def\TELswitch{0}%
+ \fi
+ \TELnumber#2\TELnumberEND
+ \fi
+}
+\DeclareRobustCommand*{\telnumber}[1]{%
+ \TELtoks={}%
+ \def\TELswitch{0}%
+ \TELnumber#1{}\TELnumberEND
+}
+\def\TELsplit{\futurelet\TELfuture\TELdosplit}
+\def\TELdosplit#1#2\TELsplitEND
+{%
+ \def\TELsp{ }%
+ \expandafter\ifx\TELsp\TELfuture
+ \let\TELfuture=\relax
+ \expandafter\telnumber\expandafter{\the\TELtoks}~%
+ \telprint{#1#2}% Das Leerzeichen kann nicht #1 sein!
+ \else
+ \def\TELfirst{#1}%
+ \ifx\TELfirst\empty
+ \expandafter\telnumber\expandafter{\the\TELtoks}%
+ \TELtoks={}%
+ \else\if-\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELhyphen
+ \telprint{#2}%
+ \else\if/\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELslash
+ \telprint{#2}%
+ \else\if(\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELleftparen
+ \telprint{#2}%
+ \else\if)\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELrightparen
+ \telprint{#2}%
+ \else\if+\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELplus
+ \telprint{#2}%
+ \else\def\TELtemp{~}\ifx\TELtemp\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELtilde
+ \telprint{#2}%
+ \else
+ \TELtoks=\expandafter{\the\TELtoks#1}%
+ \TELsplit#2{}\TELsplitEND
+ \fi\fi\fi\fi\fi\fi\fi
+ \fi
+}
+\DeclareRobustCommand*{\telprint}[1]{%
+ \TELtoks={}%
+ \TELsplit#1{}\TELsplitEND
+}
+\TELreset\let\TELreset=\UnDeFiNeD
+\endinput
+%%
+%% End of file `telprint.sty'.