summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:01:05 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:01:05 +0000
commit7dc48e4d760aa8e703387e96794effaad3c24a78 (patch)
tree7d99efb2359a56ffe56c80d6c2192ffcc41e2d92 /Master
parentfd257bd5c75a905dfa0ca6e3e507d9ed29338e1f (diff)
oberdiek
git-svn-id: svn://tug.org/texlive/trunk@1150 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/alphalph.sty198
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/chemarr.sty77
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/classlist.sty176
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/dvipscol.sty92
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/engord.sty171
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/epstopdf.sty90
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/hypbmsec.sty149
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/hypcap.sty125
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/ifdraft.sty119
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/ifpdf.sty167
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/ifvtex.sty195
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/pagesel.sty163
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/pdfcolmk.sty531
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/pdfcrypt.sty398
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/pdflscape.sty269
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/refcount.sty124
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/settobox.sty53
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/tabularht.sty743
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/tabularkv.sty107
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/twoopt.sty104
-rw-r--r--Master/texmf-dist/tex/latex/oberdiek/vpe.sty820
21 files changed, 4871 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/alphalph.sty b/Master/texmf-dist/tex/latex/oberdiek/alphalph.sty
new file mode 100644
index 00000000000..047bff393c6
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/alphalph.sty
@@ -0,0 +1,198 @@
+%%
+%% This is file `alphalph.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% alphalph.dtx (with options: `package')
+%%
+%% This file is part of the package `alphalph' for use with LaTeX2e.
+%%
+%% Function: Selecting shipout output pages.
+%%
+%% Copyright (C) 1999 Heiko Oberdiek.
+%%
+%% This program can be redistributed and/or modified
+%% under the terms of the LaTeX Project Public License
+%% distributed from CTAN archives in directory
+%% macros/latex/base/lppl.txt; either version 1 of
+%% the License, or (at your option) any later version.
+%%
+%% Please send error reports and suggestions for improvements to
+%% Heiko Oberdiek <oberdiek@ruf.uni-freiburg.de>.
+%%
+\ifx\ProvidesPackage\UnDeFiNeD
+\begingroup\def\x#1#2#3[#4]#5{\endgroup\csname fi\endcsname
+\immediate\write-1{Package: #3 #4 }}\x
+\else
+\ProvidesPackage{alphalph}%
+ [1999/04/13 v1.1 Converting numbers to letters (HO)]
+\fi
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\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.}
+\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
+}
+\fi
+\catcode`\@=\aa@atcode
+\endinput
+%%
+%% End of file `alphalph.sty'.
diff --git a/Master/texmf-dist/tex/latex/oberdiek/chemarr.sty b/Master/texmf-dist/tex/latex/oberdiek/chemarr.sty
new file mode 100644
index 00000000000..defcfb3b925
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/chemarr.sty
@@ -0,0 +1,77 @@
+% File: chemarr.sty
+% Version: 2001/06/22 v1.1
+% Author: Heiko Oberdiek
+% Email: <oberdiek@uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2001 Heiko Oberdiek.
+%
+% This program may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.2 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.2 or later is part of all distributions
+% of LaTeX version 1999/12/01 or later.
+%
+% Function: Very often chemists need a longer version
+% of reaction arrows (\rightleftharpoons) with
+% the possibility to put text above and below.
+% Analogous to amsmath's \xrightarrow and
+% \xleftarrow this package provides the macro
+% \xrightleftharpoons.
+%
+% Requirement: amsmath
+% Use: LaTeX: \usepackage{chemarr}
+% \xrightleftharpoons[below]{above}
+%
+% History: 2001/06/21 v1.0:
+% * first public version
+% 2001/06/22 v1.1:
+% * documentation fixes
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{chemarr}%
+ [2001/06/22 v1.1 Chemical reaction arrows (HO)]
+%
+\RequirePackage{amsmath}
+% The package amsmath is needed for the following commands:
+% \ext@arrow, \@ifnotempty, \arrowfill@
+% \relbar, \std@minus
+% \@ifempty, \@xifempty, \@xp
+%
+% In fontmath.ltx \rightleftharpoons is defined with
+% a vertical space of 2pt.
+%
+\newcommand{\xrightleftharpoons}[2][]{%
+ \ensuremath{%
+ \mathrel{%
+ \settoheight{\dimen@}{\raise 2pt\hbox{$\rightharpoonup$}}%
+ \setlength{\dimen@}{-\dimen@}%
+ \edef\CA@temp{\the\dimen@}%
+ \settoheight\dimen@{$\rightleftharpoons$}%
+ \addtolength{\dimen@}{\CA@temp}%
+ \raisebox{\dimen@}{%
+ \rlap{%
+ \raisebox{2pt}{%
+ $%
+ \ext@arrow 0359\rightharpoonupfill@{\hphantom{#1}}{#2}%
+ $%
+ }%
+ }%
+ \hbox{%
+ $%
+ \ext@arrow 3095\leftharpoondownfill@{#1}{\hphantom{#2}}%
+ $%
+ }%
+ }%
+ }%
+ }%
+}
+\newcommand*{\leftharpoondownfill@}{%
+ \arrowfill@\leftharpoondown\relbar\relbar
+}
+\newcommand*{\rightharpoonupfill@}{%
+ \arrowfill@\relbar\relbar\rightharpoonup
+}
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/classlist.sty b/Master/texmf-dist/tex/latex/oberdiek/classlist.sty
new file mode 100644
index 00000000000..a1707a6a02f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/classlist.sty
@@ -0,0 +1,176 @@
+% File: classlist.sty
+% Version: 2005/06/19 v1.1
+% Author: Heiko Oberdiek
+% Email: <oberdiek@uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2005 Heiko Oberdiek.
+%
+% 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 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% Function: This package records the loaded classes and stores
+% them in a list.
+%
+% Background: This packages is an answer of a newsgroup question:
+% Newsgroup: comp.text.tex
+% Subject: Finding the Document Class
+% From: Herber Schulz <>
+% Date: 18 Jun 2005 13:16:49 -0500
+% Message-ID:
+% <herbs-D55DB9.13170418062005@news.isp.giganews.com>
+%
+% Use: Load this package before \documentclass:
+% \RequirePackage{classlist}
+% \documentclass[some,options]{whatever}
+%
+% If used after \documentclass, \@filelist is
+% parsed for classes. The additional data
+% specified options and requested version is no
+% longer available here.
+%
+% \MainClass contains the first loaded class.
+% \ClassList stores the class entries, eg.
+% \ClassList -> \ClassListEntry{myarticle}{a4paper}{}
+% \ClassListEntry{article}{}{}
+% \ClassListEntry has three arguments:
+% #1: class name
+% #2: options given in \documentclass/\LoadClass
+% #3: requested version, not the version of class
+% \PrintClassList prints the list on screen it can be
+% configured by
+% \PrintClassListTitle for the title and
+% \PrintClassListEntry for formatting the entries.
+%
+% History:
+% 2005/06/19 v1.0:
+% * first published version
+% (comp.text.tex, CTAN).
+% 2005/06/19 v1.1:
+% * After \documentclass the package looks
+% at \@filelist instead of aborting with error.
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{classlist}%
+ [2005/06/19 v1.0 Record loaded classes (HO)]
+
+\let\ClassList\@empty
+\let\MainClassName\relax
+
+\ifx\@classoptionslist\relax
+
+ % before \documentclass
+
+ \let\CL@org@fileswith@pti@ns\@fileswith@pti@ns
+ \def\@fileswith@pti@ns#1[#2]#3[#4]{%
+ % #1: \@clsextension
+ % #2: options of \documentclass/\LoadClass
+ % #3: class name
+ % #4: requested version
+ \ifx#1\@clsextension
+ \@ifl@aded#1{#3}{%
+ \PackageInfo{classlist}{%
+ Skipping class `#3', because\MessageBreak
+ this class is already loaded%
+ }%
+ }{%
+ \@ifundefined{MainClassName}{%
+ \def\MainClassName{#3}%
+ }{}%
+ \@temptokena\expandafter{%
+ \ClassList
+ \ClassListEntry{#3}{#2}{#4}%
+ }%
+ \edef\ClassList{\the\@temptokena}%
+ }%
+ \fi
+ \CL@org@fileswith@pti@ns{#1}[{#2}]{#3}[{#4}]%
+ }
+
+\else
+
+ % after \documentclass
+ \PackageInfo{classlist}{Use \string\@filelist\space method}%
+
+ \let\ClassListEntry\relax
+ \expandafter\def\expandafter\CL@test
+ \expandafter#\expandafter1\@clsextension#2\@nil{%
+ \ifx\\#2\\%
+ % name does not contain \@clsextension
+ \else
+ \expandafter\CL@test@i\CL@entry\@nil
+ \fi
+ }%
+ \expandafter\def\expandafter\CL@test@i
+ \expandafter#\expandafter1\@clsextension#2\@nil{%
+ \ifx\\#2\\%
+ \@ifundefined{opt@\CL@entry}{%
+ }{%
+ \@ifundefined{MainClassName}{%
+ \let\MainClassName\CL@entry
+ }{%
+ }%
+ \edef\ClassList{%
+ \ClassList
+ \ClassListEntry{\CL@entry}{}{}%
+ }%
+ }%
+ \else
+ % names with more than one \@clsextension are not supported.
+ \fi
+ }
+ \@for\CL@entry:=\@filelist\do{%
+ \expandafter\expandafter\expandafter\CL@test\expandafter
+ \CL@entry\@clsextension\@nil
+ }%
+\fi
+
+\providecommand*{\PrintClassListEntry}[3]{%
+ \toks@{* #1}%
+ \typeout{\the\toks@}%
+}
+\providecommand*{\PrintClassListTitle}{%
+ \typeout{Class list:}%
+}
+\providecommand*{\PrintClassList}{%
+ \begingroup
+ \let\ClassListEntry\PrintClassListEntry
+ \PrintClassListTitle
+ \ClassList
+ \endgroup
+}
+
+\def\CL@InfoEntry#1#2#3{%
+ \advance\count@ by \@ne
+ \def\x{#2}%
+ \@onelevel@sanitize\x
+ \edef\CL@Info{%
+ \CL@Info
+ \noexpand\MessageBreak
+ (\the\count@) %
+ #1 [\x]%
+ \ifx\\#3\\%
+ \else
+ \space[#3]%
+ \fi
+ }%
+}
+\AtBeginDocument{%
+ \begingroup
+ \count@=\z@
+ \def\CL@Info{Class List:}%
+ \let\ClassListEntry\CL@InfoEntry
+ \ClassList
+ \let\on@line\@empty
+ \PackageInfo{classlist}{\CL@Info}
+ \endgroup
+}
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/dvipscol.sty b/Master/texmf-dist/tex/latex/oberdiek/dvipscol.sty
new file mode 100644
index 00000000000..bd53221b757
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/dvipscol.sty
@@ -0,0 +1,92 @@
+% File: dvipscol.sty
+% Version: 2000/08/31 v1.0
+% Author: Heiko Oberdiek
+% Email: <oberdiek@ruf.uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2000 Heiko Oberdiek.
+%
+% This program may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.2 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.2 or later is part of all distributions
+% of LaTeX version 1999/12/01 or later.
+%
+% Function: This package tries a solution, if the program
+% dvips complains:
+% "! out of color stack space"
+% The driver file `dvips.def' contains the
+% low level color commands for the package `color'.
+% Each time a color is set, the current color is
+% pushed on the color stack before and after the
+% current group the old color is popped from
+% the stack and set again (via \aftergroup).
+% But the color stack size of dvips is limited,
+% so a stack overflow can occur, if there are
+% too many color setting operations in a group.
+% Only at the bottom group level (no group),
+% the color can be set directly without pushing
+% the current color on the stack before, because
+% there is no group at bottom level that can end.
+% With e-TeX the group level can easily be
+% detected (\currentgrouplevel). Alone with TeX
+% this is not possible.
+%
+% Recommended: e-TeX (explanation see above)
+%
+% Use: * With e-TeX the package fixes \set@color, therefore
+% no interaction with the user is required.
+% * Without e-TeX the package defines \nogroupcolor,
+% that the user can use manually instead of \color.
+% But caution: it should only be used outside of all
+% groups, for example the following will not work:
+% \textcolor{black}{\nogroupcolor{blue}...}
+%
+% History: 2000/08/31 v1.0:
+% first public release created as answer to
+% a question of Deepak Goel in comp.text.tex:
+% "\color{} problems.. :Out of stack space.."
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{dvipscol}[2000/08/31 v1.0 Fix for dvips.def (HO)]
+
+\@ifundefined{ver@dvips.def}{%
+ \PackageWarningNoLine{dvipscol}{%
+ Nothing to fix, because \string`dvips.def\string' not loaded%
+ }%
+ \endinput
+}
+
+\CheckCommand*{\set@color}{%
+ \special{color push \current@color}%
+ \aftergroup\reset@color
+}
+
+\newcommand*{\nogroupcolor}{%
+ \let\saved@org@set@color\set@color
+ \def\set@color{%
+ \let\set@color\saved@org@set@color
+ \special{color \current@color}%
+ }%
+ \color
+}
+
+\ifx\currentgrouplevel\@undefined
+ \PackageWarningNoLine{dvipscol}{%
+ \string\set@color\space cannot be fixed, %
+ because the\MessageBreak
+ e-TeX extensions are not available%
+ }%
+ \expandafter\endinput
+\fi
+\def\set@color{%
+ \ifcase\currentgrouplevel
+ \special{color \current@color}%
+ \else
+ \special{color push \current@color}%
+ \aftergroup\reset@color
+ \fi
+}
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/engord.sty b/Master/texmf-dist/tex/latex/oberdiek/engord.sty
new file mode 100644
index 00000000000..0df08d33c6a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/engord.sty
@@ -0,0 +1,171 @@
+% File: engord.sty
+% Version: 2003/04/28 v1.1
+% Author: Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% Function: Converts numbers to english ordinal numbers.
+%
+% Copyright: Copyright (C) 2000, 2003 Heiko Oberdiek.
+%
+% This program may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.2 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.2 or later is part of all distributions
+% of LaTeX version 1999/12/01 or later.
+%
+% Use:
+% * \engord{<LaTeX counter name>}
+% It prints the value of the LaTeX counter as English
+% ordinal number. It can be used so as \arabic, \roman,
+% or \alph.
+% * \engordnumber{<any TeX number>}
+% It prints the number as English ordinal number.
+% * \engordletters#1
+% This command formats the English ordinal letters
+% after the number. It defaults to \textsuperscript.
+% * \engorderror#1
+% It can be redefined, if an other error handling is
+% wanted. The argument is a negative number or zero.
+%
+% Examples:
+% * \engordnumber{1} ==> 1st
+% \engordnumber{12} ==> 12th
+% \engordnumber{123} ==> 123rd
+% \engord{page} ==> 1st (if page has the value of one)
+% * The default output of a counter can be redefined:
+% \newcounter{mycounter}
+% \renewcommand{\theengcounter}{\engord{mycounter}}
+% * Because the implementation of \engord and \engordnumber
+% is kept expandable, these commands can be used to make
+% command names with an appropriate definition of
+% \engordletters:
+% \renewcommand*{\engordletters}[#1]{#1}
+% \@namedef{My\engordnumber{3}Command}{...}
+% This generates the command name `\My4rdCommand'.
+% * If the letters should not be raised, \engordletters
+% can be redefined as follows:
+% \renewcommand*{\engordletters}[1]{#1}
+%
+% History:
+% 2000/05/23 v1.0: first public release
+% 2003/04/28 v1.1:
+% * Bug fix for 30, 40, 50, ..., 100, 130, ...
+% * \ordletters renamed to documented \engordletters
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{engord}%
+ [2003/04/28 v1.1 English ordinal numbers (HO)]
+
+% \engordletters is called with one argument, the english
+% ord letters, and contains the code to format them. It
+% defaults to \textsuperscript:
+\providecommand{\engordletters}{\textsuperscript}
+
+% \engorderror is called, if the number is zero
+% or negative.
+\providecommand*{\engorderror}[1]{%
+ #1\engordletters{!ERROR!}%
+ \PackageWarning{engord}{%
+ `#1' is not an ordinal number%
+ }%
+}
+
+% \engord expects a LaTeX counter name as argument and
+% calls \engordnumber
+\newcommand*{\engord}[1]{%
+ \engordnumber{\value{#1}}%
+}
+
+% \engordnumber is the user command to print a number as
+% english ordinal number. The argument can be any
+% TeX number like explicit numbers, register values, ...
+%
+% In a safe way it converts the TeX number argument
+% into a form that only consists of decimal digits
+\newcommand*{\engordnumber}[1]{%
+ \expandafter\EO@number\expandafter{\number#1}%
+}
+
+% \EO@number expects a number with decimal digits as
+% argument and looks at the size of the number and
+% the count of the digits:
+\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
+}
+
+% An internal help macro to prevent a too deep \if nesting.
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+
+% \EO@ord prints the number with ord letters
+% #1: decimal digits, #1 < 21
+\def\EO@ord#1{%
+ #1%
+ \expandafter\engordletters
+ \ifcase#1{th}\or
+ {st}\or
+ {nd}\or
+ {rd}\else
+ {th}%
+ \fi
+}
+
+% \EO@twodigits expects a number with two digits,
+% 20 < number < 100
+\def\EO@twodigits#1#2{%
+ #1\EO@ord{#2}%
+}
+
+% \EO@reverse reverses the digits of the number
+% #1: next digit
+% #2: rest of the digits
+% #3: already reversed digits
+% #4: next command to call with the reversed number
+% as argument
+\def\EO@reverse#1#2\@nil#3#4{%
+ \ifx\\#2\\%
+ #4{#1#3}%
+ \else
+ \@ReturnAfterFi{%
+ \EO@reverse#2\@nil{#1#3}{#4}%
+ }%
+ \fi
+}
+
+% \EO@afterreverse calls \EO@reverseback so that
+% \EO@reverseback can inspect the digits of the number
+\def\EO@afterreverse#1{%
+ \EO@reverseback#1\@nil
+}
+
+% \EO@reverseback reverses the reversion
+% #1: the last digit of the number
+% #2: the second last digit of the number
+% #3: first digits of the number in reversed order,
+% it is not empty, because \EO@reverseback is
+% only called with numbers > 100.
+\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
+}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/epstopdf.sty b/Master/texmf-dist/tex/latex/oberdiek/epstopdf.sty
new file mode 100644
index 00000000000..1c1ab79be76
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/epstopdf.sty
@@ -0,0 +1,90 @@
+% File: epstopdf.sty
+% Version: 2001/02/04 v1.1
+% Author: Heiko Oberdiek
+% Email: <oberdiek@ruf.uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2001 Heiko Oberdiek.
+%
+% This program may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.2 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.2 or later is part of all distributions
+% of LaTeX version 1999/12/01 or later.
+%
+% Function: This packages adds support of handling eps images
+% to package graphic{s,x} with option `pdftex'.
+% If an eps image is detected, epstopdf is automatically
+% called to convert it to pdf format.
+%
+% Required: * The program `epstopdf'.
+% * The feature `\write18' has to be enabled to get
+% the conversion via the program epstopdf work:
+% * command line option: -shell-escape
+% example: pdflatex -shell-escape test.tex
+% * configuraton file `texmf.cnf': shell_escape = 1
+%
+% Use: The package is loaded after graphic{s,x}, eg:
+% \usepackage[pdftex]{graphicx}
+% \usepackage{epstopdf}
+% Images with extension `.eps' are now detected
+% and supported:
+% * Implicitly: \includegraphics{bild}
+% If `bild.eps' can only be found,
+% then it is converted to the file `bild.pdf',
+% that will be used by pdfTeX.
+% On the next ocurrences or on the next pdfTeX run,
+% the pdf file is already available, so the
+% conversion step is skipped.
+% * Explicitly: \includegraphics{bild.eps}
+% Each time the conversion program is called.
+%
+% History: 2001/01/06 v1.0:
+% * first public version,
+% published in the pdftex mailing list.
+% 2001/02/04 v1.1:
+% * minor documentation update.
+% * CTAN.
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{epstopdf}%
+ [2001/02/04 v1.1 Conversion with epstopdf on the fly (HO)]
+
+% Check, whether package graphics is loaded
+% (also graphicx loads graphics)
+\@ifpackageloaded{graphics}{}{%
+ \PackageWarningNoLine{epstopdf}{%
+ No graphics package \string`graphic{s,x}\string' loaded%
+ }%
+ \endinput
+}
+% Check, whether pdftex.def is loaded
+\@ifundefined{ver@pdftex.def}{%
+ \PackageWarningNoLine{epstopdf}{%
+ Graphics driver file \string`pdftex.def\string' not loaded%
+ }
+ \endinput
+}
+
+% Patch \Gin@setfile to execute #3, if it contains
+% a command
+\let\orgGin@setfile\Gin@setfile
+\def\Gin@setfile#1#2#3{%
+ \if`\@car #3\relax\@nil
+ \immediate\write18{\@cdr #3\@empty\@nil}%
+ \orgGin@setfile{#1}{#2}{\Gin@base #2}%
+ \else
+ \orgGin@setfile{#1}{#2}{#3}%
+ \fi
+}
+
+% Adding .eps at the end of the list of extensions,
+% defined by \DeclareGraphicsExtensions
+\g@addto@macro\Gin@extensions{,.eps}
+
+% \DeclareGraphicsRule for .eps
+\@namedef{Gin@rule@.eps}#1{{pdf}{.pdf}{`epstopdf #1}}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/hypbmsec.sty b/Master/texmf-dist/tex/latex/oberdiek/hypbmsec.sty
new file mode 100644
index 00000000000..3f55dd5d6d4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/hypbmsec.sty
@@ -0,0 +1,149 @@
+%%
+%% This is file `hypbmsec.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% hypbmsec.dtx (with options: `package')
+%%
+%% This file is part of the package `hypbmsec' for use with LaTeX2e.
+%%
+%% Function: Bookmarks in sectioning commands.
+%%
+%% Copyright (C) 1998,1999,2000 Heiko Oberdiek.
+%%
+%% This program may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.2
+%% 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.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% Please send error reports and suggestions for improvements to
+%% Heiko Oberdiek <oberdiek@ruf.uni-freiburg.de>.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hypbmsec}
+ [2000/03/22 v2.1 Bookmarks in sectioning commands (HO).]
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\@ifundefined{hbs@do}{}{%
+ \PackageInfo{hypbmsec}{Package 'hypbmsec' is already loaded}
+ \endinput
+}
+\def\hbs@do#1{%
+ \@ifstar{#1*}{%
+ \let\hbs@tocstring\relax
+ \let\hbs@bmstring\relax
+ \let\hbs@seccmd#1%
+ \hbs@checkarg
+ }%
+}
+\def\hbs@checkarg{%
+ \@ifnextchar[\hbs@getsquare{%
+ \@ifnextchar(\hbs@getbookmark\hbs@process
+ }%
+}
+\long\def\hbs@getsquare[#1]{%
+ \ifx\hbs@tocstring\relax
+ \def\hbs@tocstring{#1}%
+ \else
+ \hbs@bmdef{#1}%
+ \fi
+ \hbs@checkarg
+}
+\def\hbs@getbookmark(#1){%
+ \hbs@bmdef{#1}%
+ \hbs@checkarg
+}
+\def\hbs@bmdef#1{%
+ \ifx\hbs@bmstring\relax
+ \def\hbs@bmstring{#1}%
+ \else
+ \PackageError{hypbmsec}{%
+ Sectioning command with too many parameters%
+ }{%
+ You can only give one outline entry.%
+ }%
+ \fi
+}
+\long\def\hbs@process#1{%
+ \ifx\hbs@tocstring\relax
+ \ifx\hbs@bmstring\relax
+ \hbs@seccmd{#1}%
+ \else
+ \hbs@seccmd{\texorpdfstring{#1}\hbs@bmstring}%
+ \fi
+ \else
+ \ifx\hbs@bmstring\relax
+ \hbs@seccmd[\hbs@tocstring]{#1}%
+ \else
+ \hbs@seccmd[\texorpdfstring\hbs@tocstring\hbs@bmstring]{#1}%
+ \fi
+ \fi
+}
+\AtBeginDocument{%
+ \@ifundefined{texorpdfstring}{%
+ \@ifundefined{ifbookmark}{%
+ \let\texorpdfstring\@firstoftwo
+ \@ifpackageloaded{hyperref}{%
+ \PackageInfo{hypbmsec}{%
+ \ifx\hy@driver\@empty
+ Default driver
+ \else
+ '\hy@driver'
+ \fi
+ of hyperref not supported,\MessageBreak
+ bookmark parameters will be ignored%
+ }%
+ }{%
+ \PackageInfo{hypbmsec}{%
+ Package hyperref not loaded,\MessageBreak
+ bookmark parameters will be ignored%
+ }%
+ }%
+ }%
+ {%
+ \newcommand\texorpdfstring[2]{\ifbookmark{#2}{#1}}%
+ \PackageWarningNoLine{hypbmsec}{%
+ Old hyperref version found,\MessageBreak
+ update of hyperref recommended%
+ }%
+ }%
+ }{}%
+ \let\hbs@part \part
+ \let\hbs@section \section
+ \let\hbs@subsection \subsection
+ \let\hbs@subsubsection\subsubsection
+ \let\hbs@paragraph \paragraph
+ \let\hbs@subparagraph \subparagraph
+ \renewcommand\part {\hbs@do\hbs@part}
+ \renewcommand\section {\hbs@do\hbs@section}
+ \renewcommand\subsection {\hbs@do\hbs@subsection}
+ \renewcommand\subsubsection{\hbs@do\hbs@subsubsection}
+ \renewcommand\paragraph {\hbs@do\hbs@paragraph}
+ \renewcommand\subparagraph {\hbs@do\hbs@subparagraph}
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname chapter\endcsname\relax\else
+ \let\hbs@chapter \chapter
+ \renewcommand\chapter {\hbs@do\hbs@chapter}
+ \fi
+}
+\endinput
+%%
+%% End of file `hypbmsec.sty'.
diff --git a/Master/texmf-dist/tex/latex/oberdiek/hypcap.sty b/Master/texmf-dist/tex/latex/oberdiek/hypcap.sty
new file mode 100644
index 00000000000..641c2dbc349
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/hypcap.sty
@@ -0,0 +1,125 @@
+%%
+%% This is file `hypcap.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% hypcap.dtx (with options: `package')
+%%
+%% This file is part of the package `hypcap' for use with LaTeX2e.
+%%
+%% Function: Adjusting anchors of captions.
+%%
+%% Copyright (C) 1999-2001 Heiko Oberdiek.
+%%
+%% This program may be distributed and/or modified under
+%% the conditions of the LaTeX Project Public License,
+%% either version 1.2 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.2 or later is part of all distributions
+%% of LaTeX version 1999/12/01 or later.
+%%
+%% Please send error reports and suggestions for improvements to
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>.
+%%
+\ProvidesPackage{hypcap}
+ [2001/08/27 v1.3 Adjusting anchors of captions (HO)]
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\@ifundefined{hyper@@anchor}{%
+ \PackageError{hypcap}{You have to load 'hyperref' first}\@ehc
+ \endinput
+}{}
+\newcommand*\hc@org@caption{}
+\let\hc@org@caption\caption
+\newif\if@capstart
+\newcommand*\hypcapspace{.5\baselineskip}
+\newcommand*\capstart{%
+ \H@refstepcounter\@captype % first part of caption
+ \hyper@makecurrent\@captype
+ \vspace*{-\hypcapspace}%
+ \begingroup
+ \let\leavevmode\relax
+ \hyper@@anchor\@currentHref\relax
+ \endgroup
+ \vspace*{\hypcapspace}%
+ \let\caption\hc@caption
+ \global\@capstarttrue
+}
+\def\hc@caption{%
+ \@dblarg{\hc@@caption\@captype}%
+}
+\long\def\hc@@caption#1[#2]#3{%
+ \let\caption\hc@org@caption
+ \global\@capstartfalse
+ \hyper@makecurrent\@captype
+ \par\addcontentsline{%
+ \csname ext@#1\endcsname}{#1}{%
+ \protect\numberline{%
+ \csname the#1\endcsname
+ }{\ignorespaces #2}%
+ }%
+ \begingroup
+ \@parboxrestore
+ \normalsize
+ \@makecaption{\csname fnum@#1\endcsname}{%
+ \ignorespaces#3%
+ }%
+ \par
+ \endgroup
+}
+\def\hypcapredef#1{%
+ \expandafter\hc@redef\csname hc@org#1\expandafter\endcsname
+ \csname hc@orgend#1\expandafter\endcsname
+ \expandafter{#1}%
+}
+\def\hc@redef#1#2#3{%
+ \newcommand#1{}%
+ \expandafter\let\expandafter#1\csname#3\endcsname
+ \expandafter\let\expandafter#2\csname end#3\endcsname
+ \renewenvironment*{#3}[1][]{%
+ \ifx\\##1\\%
+ #1\relax
+ \else
+ #1[##1]%
+ \fi
+ \capstart
+ }{%
+ \if@capstart
+ \PackageError{hypcap}{You have forgotten to use \string\caption}%
+ \global\@capstartfalse
+ \else
+ \fi
+ #2%
+ }%
+}
+\DeclareOption{figure}{\hypcapredef{\CurrentOption}}
+\DeclareOption{figure*}{\hypcapredef{\CurrentOption}}
+\DeclareOption{table}{\hypcapredef{\CurrentOption}}
+\DeclareOption{table*}{\hypcapredef{\CurrentOption}}
+\DeclareOption{all}{%
+ \hypcapredef{figure}%
+ \hypcapredef{figure*}%
+ \hypcapredef{table}%
+ \hypcapredef{table*}%
+}
+\ProcessOptions\relax
+\endinput
+%%
+%% End of file `hypcap.sty'.
diff --git a/Master/texmf-dist/tex/latex/oberdiek/ifdraft.sty b/Master/texmf-dist/tex/latex/oberdiek/ifdraft.sty
new file mode 100644
index 00000000000..8443447372c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/ifdraft.sty
@@ -0,0 +1,119 @@
+% File: ifdraft.sty
+% Version: 2005/10/05 v1.1
+% Author: Heiko Oberdiek
+% Email: <oberdiek@uni-freiburg.de>
+%
+% Function: Switch for option draft.
+%
+% Copyright: Copyright (C) 1999, 2005 Heiko Oberdiek.
+%
+% 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 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% Use: \usepackage{ifdraft}
+% \ifdraft{<draft case>}{<final case>}
+% \ifoptiondraft{<option draft is given}%
+% {<option draft is not given}
+% \ifoptionfinal{<option final is given}%
+% {<option final is not given}
+%
+% If none of the options "draft" or "final" is used,
+% then this package assumes "final" as default setting
+% for \ifdraft. All classes that I know have this
+% behaviour. (Otherwise you can find out with
+% \ifoptiondraft and \ifoptionfinal, whether none of
+% the options is set.)
+%
+% If either "draft" or "final" is used, \ifdraft is
+% enough to distinguish between these cases.
+%
+% Both options "draft" and "final" should not be used
+% at the same time. This is contradictionary input.
+% Which option is more important? The result is
+% unpredictable in general.
+% * article, report, book, scrartcl, scrreprt, scrbook:
+% draft, final -> "final" is effective.
+% final, draft -> "final" is effective.
+% "final wins, if given"
+% * memoir:
+% draft, final -> "draft" is effective.
+% final, draft -> "draft" is effective.
+% "you can forget final, draft wins if given anywhere"
+% These classes evaluates the options in declaration order.
+% Because the declaration order of these options in this
+% package is not really interesting, this packages evaluates
+% the options in the order specified in the calling commands:
+% * ifdraft:
+% draft, final -> \ifdraft selects final clause.
+% final, draft -> \ifdraft selects draft clause.
+% "latest option wins"
+% Thus you know with \ifdraft the latest given option
+% and you can emulate the behaviour of the different
+% classes with the help of \ifoptiondraft and \ifoptionfinal.
+%
+% Summary: \ifdraft is sufficient to deal with the
+% normal use cases "one or none out of draft and final".
+%
+% Installation:
+% CTAN location: CTAN:macros/latex/contrib/oberdiek/ifdraft.sty
+% TDS location: TDS:tex/latex/oberdiek/ifdraft.sty
+%
+% History: 1999/12/28 v1.0:
+% * first public release
+% * LPPL 1.1
+% 2005/10/05 v1.1:
+% * \ifoptiondraft and \ifoptionfinal added.
+% * \ProcessOptions changed to \ProcessOptions*.
+% (Order of given class options matters instead
+% of the order of option declaration in this
+% package.)
+% * LPPL 1.3
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ifdraft}[2005/10/05 v1.1 Switch for option draft (HO)]
+
+\newif\if@draft
+\newif\if@option@draft
+\newif\if@option@final
+\DeclareOption{draft}{%
+ \@drafttrue
+ \@option@drafttrue
+}
+\DeclareOption{final}{%
+ \@draftfalse
+ \@option@finaltrue
+}
+\ProcessOptions*\relax
+
+\newcommand*{\ifdraft}{%
+ \if@draft
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\newcommand*{\ifoptiondraft}{%
+ \if@option@draft
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\newcommand*{\ifoptionfinal}{%
+ \if@option@final
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/ifpdf.sty b/Master/texmf-dist/tex/latex/oberdiek/ifpdf.sty
new file mode 100644
index 00000000000..83a6c8718a8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/ifpdf.sty
@@ -0,0 +1,167 @@
+% File: ifpdf.sty
+% Version: 2005/07/22 v1.3
+% Author: Heiko Oberdiek
+% Email: <oberdiek@uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2001, 2005 Heiko Oberdiek.
+%
+% 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 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% Function: This package looks for pdfTeX in pdf mode and
+% implements and sets the switch \ifpdf.
+% The detection is based on \pdfoutput and
+% the package will not change this value.
+% It works with plain or LaTeX formats.
+%
+% Use: LaTeX: \usepackage{ifpdf}
+% plain: \input ifpdf.sty
+% The package provides the switch \ifpdf:
+% \ifpdf
+% ... do things, if pdfTeX is running in pdf mode ...
+% \else
+% ... other TeX or pdfTeX in dvi mode ...
+% \fi
+% The package can also be used to set global
+% documentclass options:
+% \RequirePackage{ifpdf}
+% \ifpdf
+% \documentclass[pdftex,...]{...}
+% \else
+% \documentclass[...]{...}
+% \fi
+%
+% Installation:
+% CTAN location: CTAN:macros/latex/contrib/oberdiek/ifpdf.sty
+% TDS location: TDS:tex/generic/oberdiek/ifpdf.sty
+% (Rationale: ifpdf.sty can be used with both plain and
+% LaTeX formats.)
+%
+% History: 2001/06/14 v1.0:
+% * first public version,
+% 2001/07/14 v1.1:
+% * documentation addition: global options
+% 2001/09/26 v1.2:
+% * documentation typo corrected.
+% * version number corrected.
+% * line number in log entry removed.
+% 2005/07/22 v1.3:
+% * Some source code comments from Robin Fairbairns added.
+% * Bug fix for negative values of \pdfoutput
+% (Oleg Katsitadze)
+% * LPPL 1.3
+% * Installation section with locations added.
+%
+% Prevent reloading more than one:
+\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
+%
+% Package identification:
+\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}%
+ [2005/07/22 v1.3 %
+ Providing \expandafter\string\csname ifpdf\endcsname\space (HO)]
+%
+% Check, whether \ifpdf is already defined:
+\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
+%
+% Implementing the switch:
+\newif\ifpdf
+% so \pdffalse, initally
+\ifx\pdfoutput\undefined
+\else
+ \ifx\pdfoutput\relax
+% \pdfoutput was undefined, but someone has used LaTeX internal
+% \@ifundefined, or something else involving \csname pdfoutput\endcsname
+ \else
+ \ifnum\pdfoutput<1 %
+% \pdfoutput=0 or negative, so not generating pdf
+ \else
+ \pdftrue
+ \fi
+ \fi
+\fi
+%
+% Log comment:
+\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
diff --git a/Master/texmf-dist/tex/latex/oberdiek/ifvtex.sty b/Master/texmf-dist/tex/latex/oberdiek/ifvtex.sty
new file mode 100644
index 00000000000..d99f18989ac
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/ifvtex.sty
@@ -0,0 +1,195 @@
+% File: ifvtex.sty
+% Version: 2001/09/26 v1.0
+% Author: Heiko Oberdiek
+% Email: <oberdiek@uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2001 Heiko Oberdiek.
+%
+% This program may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.2 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.2 or later is part of all distributions
+% of LaTeX version 1999/12/01 or later.
+%
+% Function: This package looks for VTeX and implements
+% and sets the switches \ifvtex, \ifvtex<mode>,
+% and \ifvtexgex.
+% It works with plain or LaTeX formats.
+%
+% Use: LaTeX: \usepackage{ifvtex}
+% plain: \input ifvtex.sty
+% The package provides the switch \ifvtex:
+% \ifvtex
+% ... do things, if VTeX is running ...
+% \else
+% ... other TeX ...
+% \fi
+% The package can also be used to set global
+% documentclass options:
+% \RequirePackage{ifvtex}
+% \ifvtex
+% \documentclass[vtex,...]{...}
+% \else
+% \documentclass[...]{...}
+% \fi
+%
+% For the different output modes the following switches
+% can be used:
+% \ifvtexdvi, \ifvtexpdf, \ifvtexps, \ifvtexhtml
+% And for GeX mode:
+% \ifvtexgex
+%
+% For detecting VTeX \VTeXversion and \OpMode
+% has to be defined. The modes are detected by
+% \OpMode and GeX by \gexmode.
+%
+% History: 2001/09/26 v1.0:
+% * first public version,
+%
+% Prevent reloading more than one:
+\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
+%
+% Package identification:
+\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}%
+ [2001/06/14 v1.0 *TEST* Providing %
+ \expandafter\string\csname ifvtex\endcsname\space switches (HO)]
+%
+% Check, whether \ifvtex is already defined:
+\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
+%
+% Implementing the switch \ifvtex:
+\newif\ifvtex
+\ifx\VTeXversion\undefined
+\else
+ \ifx\VTeXversion\relax
+ \else
+ \ifx\OpMode\undefined
+ \else
+ \ifx\OpMode\relax
+ \else
+ \vtextrue
+ \fi
+ \fi
+ \fi
+\fi
+%
+% Implementing the mode and GeX switches:
+\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
+ \ifx\gexmode\undefined
+ \else
+ \ifx\gexmode\relax
+ \else
+ \ifnum\gexmode>0 %
+ \vtexgextrue
+ \fi
+ \fi
+ \fi
+\fi
+%
+% Log comment:
+\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
diff --git a/Master/texmf-dist/tex/latex/oberdiek/pagesel.sty b/Master/texmf-dist/tex/latex/oberdiek/pagesel.sty
new file mode 100644
index 00000000000..dc00d265270
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/pagesel.sty
@@ -0,0 +1,163 @@
+%%
+%% This is file `pagesel.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pagesel.dtx (with options: `package')
+%%
+%% This file is part of the package `pagesel' for use with LaTeX2e.
+%%
+%% Function: Selecting shipout output pages.
+%%
+%% Copyright (C) 1999, 2003 Heiko Oberdiek.
+%%
+%% This program may be distributed and/or modified under
+%% the conditions of the LaTeX Project Public License,
+%% either version 1.2 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.2 or later is part of all distributions
+%% of LaTeX version 1999/12/01 or later.
+%%
+%% Please send error reports and suggestions for improvements to
+%% Heiko Oberdiek <oberdiek@uni-freiburg.de>.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pagesel}
+ [2003/06/05 v1.2 Selecting shipout output pages (HO)]
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\@ifundefined{ps@makevoid}{}{%
+ \PackageWarningNoLine{pagesel}{Package already loaded.}%
+ \endinput
+}
+\newcommand*{\ps@makevoid}{%
+ \global\setbox\@cclv\copy\voidb@x
+ \begingroup
+ \count@=\deadcycles
+ \advance\count@ by -1\relax
+ \deadcycles=\count@
+ \endgroup
+}
+\newcommand*\ps@oddpages{0}
+\DeclareOption{odd}{\renewcommand*\ps@oddpages{1}}
+\DeclareOption{even}{\renewcommand*\ps@oddpages{2}}
+\DeclareOption{nofiles}{\let\ps@nofiles\nofiles}
+\DeclareOption{nonofiles}{\let\ps@nofiles\@empty}
+\DeclareOption{files}{\let\ps@nofiles\@empty}
+\ExecuteOptions{nofiles}
+\DeclareOption*{%
+ \begingroup
+ \expandafter\ps@checkoption\CurrentOption-\END
+ \edef\x{\endgroup\noexpand\ps@store{\ps@first}{\ps@last}}%
+ \x
+}
+\newcommand\ps@checkoption{}
+\def\ps@checkoption#1-#2\END{%
+ \ifx\\#2\\%
+ \ifx\\#1\\%
+ % empty option
+ \def\ps@first{\maxdimen}%
+ \def\ps@last{\maxdimen}%
+ \else
+ \edef\ps@first{#1}%
+ \edef\ps@last{#1}%
+ \fi
+ \else
+ \ifx\\#1\\%
+ \def\ps@first{-\maxdimen}%
+ \else
+ \edef\ps@first{#1}%
+ \fi
+ \ps@checklast#2%
+ \fi
+}
+\newcommand\ps@checklast{}
+\def\ps@checklast#1-{%
+ \ifx\\#1\\%
+ \def\ps@last{\maxdimen}%
+ \else
+ \edef\ps@last{#1}%
+ \fi
+}
+\newcommand*{\ps@store}[2]{%
+ \expandafter\def\expandafter\ps@testlist\expandafter{%
+ \ps@testlist\ps@pagetest{#1}{#2}%
+ }%
+}
+\newcommand*\ps@testlist{}
+\ProcessOptions
+\begingroup
+ \edef\x{%
+ \ifnum\ps@oddpages>0 \relax\fi
+ \ifx\ps@testlist\@empty\else\relax\fi
+ }%
+ \ifx\x\@empty
+ \endgroup
+ \PackageInfo{pagesel}{Nothing to do}
+ \expandafter\endinput
+ \fi
+\endgroup
+\RequirePackage{everyshi}
+\ps@nofiles
+\newcounter{ps@count}
+\setcounter{ps@count}{0}
+\long\def\ps@ReturnAfterElseFi#1\else#2\fi{\fi#1}
+\long\def\ps@ReturnAfterFi#1\fi{\fi#1}
+\newcommand{\ps@ifinset}[4]{%
+ \ifnum#1>\value{ps@count}%
+ \ps@ReturnAfterElseFi{#4}%
+ \else
+ \ps@ReturnAfterFi{%
+ \ifnum#2<\value{ps@count}%
+ \ps@ReturnAfterElseFi{#4}%
+ \else
+ \ps@ReturnAfterFi{#3}%
+ \fi
+ }%
+ \fi
+}
+\newcommand*{\ps@pagetest}[2]{%
+ \ps@ifinset{#1}{#2}{\let\ps@next\@empty}{}
+}
+\EveryShipout{%
+ \stepcounter{ps@count}%
+ \let\ps@next\@empty
+ \ifx\ps@testlist\@empty
+ \else
+ \let\ps@next\ps@makevoid
+ \ps@testlist
+ \fi
+ \ifnum\ps@oddpages=1
+ \ifodd\value{ps@count}%
+ \else
+ \let\ps@next\ps@makevoid
+ \fi
+ \fi
+ \ifnum\ps@oddpages=2
+ \ifodd\value{ps@count}%
+ \let\ps@next\ps@makevoid
+ \else
+ \fi
+ \fi
+ \ps@next
+}
+\endinput
+%%
+%% End of file `pagesel.sty'.
diff --git a/Master/texmf-dist/tex/latex/oberdiek/pdfcolmk.sty b/Master/texmf-dist/tex/latex/oberdiek/pdfcolmk.sty
new file mode 100644
index 00000000000..20f972aede8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/pdfcolmk.sty
@@ -0,0 +1,531 @@
+% File: pdfcolmk.sty
+% Version: 2005/07/09 v0.7
+% Author: Heiko Oberdiek
+% Email: <oberdiek@uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2000, 2005 Heiko Oberdiek.
+%
+% 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 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% Function: This package tries a solution for the missing color
+% stack of pdfTeX.
+%
+% Background: After the Dante meeting (Clausthal 2000) I have started
+% to experiment with the eTeX method of a `colour' mark.
+% One of the major problems is the understanding of the
+% output routine and the need to rewrite it because of
+% missing hooks. Currently I have made some tests in
+% in onecolumn and twocolumn mode, but the state is
+% experimental.
+%
+% Limitations: * mark limitations: page breaks in math
+% * LaTeX's output routine is redefinded.
+% * Changes in the output routine of newer versions
+% of LaTeX are not detected.
+% * Packages that change the output routine are not
+% supported.
+% * It does not support several independent text
+% streams like footnotes.
+%
+% Recommended: e-TeX (for additional mark register)
+% Without e-TeX LaTeX's mark commands are redefined
+% to store an additional color value.
+%
+% Use: Load after package color:
+% \usepackage[pdftex]{color}
+% \usepackage{pdfcolmk}
+%
+% Compatibility:
+% * Load the following packages after `pdfcolmk':
+% mparhack.sty
+% * Load the following packages before `pdfcolmk':
+% marn.sty
+% newmarn.sty
+% * Supported \@addmarginpar patch:
+% latex/base/latex.ltx
+% memoir.cls
+% poemscol/marn.sty, poemscol/newmarn.sty
+% mparhack.sty
+% * Unsupported \@addmarginpar patch:
+% lineno.sty
+% sttools/marginal.sty
+% revtex4.cls
+%
+% History: 2000/08/27 v0.1:
+% first published version
+% (comp.text.tex, pdftex@tug.org)
+% 2000/09/02 v0.2:
+% * next try.
+% 2000/09/02 v0.3:
+% * solution without e-TeX added.
+% 2000/09/06 v0.4:
+% * Patch commands added.
+% * Patch for seminar.cls added.
+% 2000/09/06 v0.5:
+% * Bug fix: initialization of \pec@value added.
+% 2005/06/15 v0.6:
+% * Support for \marginpar added.
+% See thread in comp.text.tex
+% (Message-ID: d86d3r$kpv$1@news.BelWue.DE).
+% 2005/07/09 v0.7:
+% * Output support added for memoir,
+% provided by Lars Madsen.
+%
+\NeedsTeXFormat{LaTeX2e}[1997/11/09]
+\ProvidesPackage{pdfcolmk}[2005/07/09 v0.7 PDFtex COLor MarK (HO)]
+
+\@ifundefined{ver@pdftex.def}{%
+ \PackageWarningNoLine{pdfcolmk}{%
+ Nothing to fix, because \string`pdftex.def\string' not loaded%
+ }%
+ \endinput
+}{}
+\@ifpackageloaded{color}{}{%
+ \PackageWarningNoLine{pdfcolmk}{%
+ Nothing to fix, because \string`color.sty\string' not loaded%
+ }%
+ \endinput
+}
+
+\PackageInfo{pdfcolmk}{%
+ This package tries to simulate dvips's color stack\MessageBreak
+ for pdfTeX based on a mark register of e-TeX.\MessageBreak
+ It redefines LaTeX's output routine. Therefore\MessageBreak
+ use with care, no warranties%
+}
+
+\ifx\marks\@undefined
+
+ \let\pec@mark\mark
+ \let\pec@value\empty
+ \long\def\mark#1{%
+ \protected@xdef\pec@value{#1}%
+ \pec@setmark
+ }
+ \def\pec@setmark{%
+ \begingroup
+ \@temptokena\expandafter{\pec@value}%
+ \pec@mark{{\current@color}\the\@temptokena}%
+ \endgroup
+ }
+ \def\pec@getmark{%
+ \xdef\pec@botcolor{%
+ \expandafter\@firstofthree\botmark\@empty\@empty\@empty
+ }%
+ }
+ \long\def\@firstofthree#1#2#3{#1}%
+ \CheckCommand{\@leftmark}[2]{#1}
+ \CheckCommand{\@rightmark}[2]{#2}
+ \CheckCommand*{\leftmark}{%
+ \expandafter\@leftmark\botmark\@empty\@empty
+ }
+ \CheckCommand*{\rightmark}{%
+ \expandafter\@rightmark\firstmark\@empty\@empty
+ }
+ \long\def\@leftmark#1#2#3{#2}
+ \long\def\@rightmark#1#2#3{#3}
+ \g@addto@macro\leftmark\@empty
+ \g@addto@macro\rightmark\@empty
+
+\else
+
+ \RequirePackage{etex}[1998/03/26]
+ \newmarks\pec@marks
+ \def\pec@setmark{\marks\pec@marks{\current@color}}
+ \def\pec@getmark{\xdef\pec@botcolor{\botmarks\pec@marks}}
+
+\fi
+
+% \marginpar fix
+
+\chardef\pec@result\z@
+\def\pec@temp#1{%
+ \chardef\pec@result\@ne
+ \begingroup
+ \let\on@line\@empty
+ \PackageInfo{pdfcolmk}{%
+ Patch for \string\@addmarginpar\space applied (#1)%
+ }%
+ \endgroup
+}
+
+% Variant: latex/base/latex.ltx
+\def\pec@addmarginpar{%
+ \@next\@marbox\@currlist{%
+ \@cons\@freelist\@marbox
+ \@cons\@freelist\@currbox
+ }\@latexbug
+ \@tempcnta\@ne
+ \if@twocolumn
+ \if@firstcolumn
+ \@tempcnta\m@ne
+ \fi
+ \else
+ \if@mparswitch
+ \ifodd\c@page
+ \else
+ \@tempcnta\m@ne
+ \fi
+ \fi
+ \if@reversemargin \@tempcnta -\@tempcnta \fi
+ \fi
+ \ifnum\@tempcnta <\z@ \global\setbox\@marbox\box\@currbox \fi
+ \@tempdima\@mparbottom
+ \advance\@tempdima -\@pageht
+ \advance\@tempdima\ht\@marbox
+ \ifdim\@tempdima >\z@
+ \@latex@warning@no@line{Marginpar on page \thepage\space moved}%
+ \else
+ \@tempdima\z@
+ \fi
+ \global\@mparbottom\@pageht
+ \global\advance\@mparbottom\@tempdima
+ \global\advance\@mparbottom\dp\@marbox
+ \global\advance\@mparbottom\marginparpush
+ \advance\@tempdima -\ht\@marbox
+ \global\setbox\@marbox\vbox{%
+ \vskip \@tempdima
+ \box \@marbox
+ }%
+ \global \ht\@marbox \z@
+ \global \dp\@marbox \z@
+ \kern -\@pagedp
+ \nointerlineskip
+ \hb@xt@\columnwidth{%
+ \ifnum \@tempcnta >\z@
+ \hskip\columnwidth
+ \hskip\marginparsep
+ \else
+ \hskip -\marginparsep
+ \hskip -\marginparwidth
+ \fi
+ \box\@marbox \hss
+ }%
+ \nointerlineskip
+ \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}%
+}
+\ifx\pec@addmarginpar\@addmarginpar
+ \pec@temp{latex/base}%
+\fi
+
+% Variant: memoir.cls
+\def\pec@addmarginpar{%
+ \checkoddpage
+ \@next\@marbox\@currlist{%
+ \@cons\@freelist\@marbox
+ \@cons\@freelist\@currbox
+ }\@latexbug
+ \@tempcnta\@ne
+ \if@twocolumn
+ \if@firstcolumn
+ \@tempcnta\m@ne
+ \fi
+ \else
+ \if@mparswitch
+ \ifoddpage
+ \else
+ \@tempcnta\m@ne
+ \fi
+ \fi
+ \if@reversemargin
+ \@tempcnta -\@tempcnta
+ \fi
+ \fi
+ \ifnum\@tempcnta <\z@
+ \global\setbox\@marbox\box\@currbox
+ \fi
+ \@tempdima\@mparbottom
+ \advance\@tempdima -\@pageht
+ \advance\@tempdima\ht\@marbox
+ \ifdim\@tempdima >\z@
+ \@latex@warning@no@line{%
+ Marginpar on page \thepage\space moved by \the\@tempdima
+ }%
+ \else
+ \@tempdima\z@
+ \fi
+ \global\@mparbottom\@pageht
+ \global\advance\@mparbottom\@tempdima
+ \global\advance\@mparbottom\dp\@marbox
+ \global\advance\@mparbottom\marginparpush
+ \advance\@tempdima -\ht\@marbox
+ \global\setbox\@marbox\vbox{%
+ \vskip \@tempdima
+ \box \@marbox
+ }%
+ \global \ht\@marbox \z@
+ \global \dp\@marbox \z@
+ \kern -\@pagedp
+ \nointerlineskip
+ \hb@xt@\columnwidth{%
+ \ifnum \@tempcnta >\z@
+ \hskip\columnwidth
+ \hskip\marginparsep
+ \else
+ \hskip -\marginparsep
+ \hskip -\marginparwidth
+ \fi
+ \box\@marbox
+ \hss
+ }%
+ \nointerlineskip
+ \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}%
+}%
+\ifx\pec@addmarginpar\@addmarginpar
+ \pec@temp{memoir.cls}%
+\fi
+
+% Variant: poemscol/marn.sty, poemscol/newmarn.sty
+\def\pec@addmarginpar{%
+ \@next \@marbox\@currlist{%
+ \@cons\@freelist\@marbox
+ \@cons\@freelist\@currbox
+ }\@latexbug
+ \global\advance\@mpar@count\m@ne
+ \@ifundefined{@marn@\the\@mpar@count @}{% was location logged last time?
+ \@tempcnta\@ne % NO: use original LaTeX logic
+ \if@twocolumn
+ \if@firstcolumn
+ \@tempcnta\m@ne
+ \fi
+ \else
+ \if@mparswitch
+ \ifodd\c@page
+ \else
+ \@tempcnta\m@ne
+ \fi
+ \fi
+ \if@reversemargin
+ \@tempcnta -\@tempcnta
+ \fi
+ \fi
+ }{%
+ \@tempcnta % YES: use record from last time to decide side.
+ \@nameuse{@marn@\the\@mpar@count @}%
+ \if@reversemargin -\fi \@ne
+ }%
+ \ifnum\@tempcnta <\z@
+ \global\setbox\@marbox\box\@currbox
+ \global\let\@marnbottom\@mparbottoml
+ \else
+ \global\let\@marnbottom\@mparbottom
+ \fi
+ \@tempdima\@marnbottom \advance\@tempdima -\@pageht
+ \advance\@tempdima\ht\@marbox
+ \ifdim\@tempdima >\z@
+ \@@warning{Marginpar on page \thepage\space moved}%
+ \else
+ \@tempdima\z@
+ \fi
+ \global\@marnbottom\@pageht
+ \global\advance\@marnbottom\@tempdima
+ \global\advance\@marnbottom\dp\@marbox
+ \global\advance\@marnbottom\marginparpush
+ \advance\@tempdima -\ht\@marbox
+ \global\ht\@marbox\z@
+ \global\dp\@marbox\z@
+ \vskip -\@pagedp
+ \vskip\@tempdima\nointerlineskip
+ \hbox to\columnwidth{%
+ \ifnum \@tempcnta >\z@
+ \hskip\columnwidth
+ \hskip\marginparsep
+ \else
+ \hskip -\marginparsep
+ \hskip -\marginparwidth
+ \fi
+ \if@filesw % record where this is for use next time:
+ \@marn@log\@mpar@count
+ \fi
+ \box\@marbox
+ \hss
+ }%
+ \nobreak %% RmS 91/06/21 \nobreak added
+ \vskip -\@tempdima
+ \nointerlineskip
+ \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}%
+}
+\ifx\pec@addmarginpar\@addmarginpar
+ \pec@temp{poemscol/(new)marn.sty}%
+\fi
+
+% Variant: refman/refart.cls, refnam/refrep.cls
+\def\pec@addmarginpar{%
+ \@next\@marbox\@currlist{%
+ \@cons\@freelist\@marbox
+ \@cons\@freelist\@currbox
+ }\@latexbug
+ \@tempcnta\@ne
+ \if@twocolumn
+ \if@firstcolumn
+ \@tempcnta\m@ne
+ \fi
+ \else
+ \@tempcnta\m@ne
+ \fi
+ \ifnum\@tempcnta <\z@
+ \global\setbox\@marbox\box\@currbox
+ \fi
+ \@tempdima\@mparbottom
+ \advance\@tempdima -\@pageht
+ \advance\@tempdima\ht\@marbox
+ \ifdim\@tempdima >\z@
+ \@@warning{Marginpar on page \thepage\space moved}%
+ \else
+ \@tempdima\z@
+ \fi
+ \global\@mparbottom\@pageht
+ \global\advance\@mparbottom\@tempdima
+ \global\advance\@mparbottom\dp\@marbox
+ \global\advance\@mparbottom\marginparpush
+ \advance\@tempdima -\ht\@marbox
+ \global\setbox\@marbox\vbox{%
+ \vskip \@tempdima \box \@marbox
+ }%
+ \global \ht\@marbox \z@
+ \global \dp\@marbox \z@
+ \kern -\@pagedp
+ \nointerlineskip
+ \hb@xt@\columnwidth{%
+ \ifnum \@tempcnta >\z@
+ \hskip\columnwidth
+ \hskip\marginparsep
+ \else
+ \hskip -\marginparsep
+ \hskip -\marginparwidth
+ \fi
+ \box\@marbox
+ \hss
+ }%
+ \nointerlineskip
+ \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}%
+}
+\ifx\pec@addmarginpar\@addmarginpar
+ \pec@temp{ref(art|rep).cls}%
+\fi
+
+\ifcase\pec@result
+ \PackageInfo{pdfcolmk}{%
+ Fix for \string\@addmarginpar\space is omitted, %
+ because this variant\MessageBreak
+ of \string\@addmarginpar\space
+ is not recognized%
+ }%
+\else
+ % apply patch for \@addmarginpar
+ \def\pec@PatchAddMarginpar#1\columnwidth#2#3\@nil{%
+ \pec@PatchAddMarginparI#2\@nil{#1}{#3}%
+ }%
+ \def\pec@PatchAddMarginparI#1\box\@marbox\hss#2\@nil#3#4{%
+ \def\@addmarginpar{%
+ #3%
+ \columnwidth{%
+ #1%
+ \pdfliteral{q}%
+ \rlap{%
+ \box\@marbox
+ }%
+ \pdfliteral{Q}%
+ \hss
+ #2%
+ }%
+ #4%
+ }%
+ }%
+ \expandafter\pec@PatchAddMarginpar\@addmarginpar\@nil
+\fi
+
+% color fix
+
+\def\set@color{%
+ \pdfliteral{\current@color}%
+ \ifinner
+ \else
+ \pec@setmark
+ \fi
+ \aftergroup\reset@color
+}
+\def\reset@color{%
+ \pdfliteral{\current@color}%
+ \ifinner
+ \else
+ \pec@setmark
+ \fi
+}
+
+\let\pec@botcolor\current@color
+
+\def\pec@PatchVBoxCCLV{%
+ \ifx\pec@botcolor\@empty
+ \else
+ \setbox\@cclv\vbox{%
+ \pdfliteral{\pec@botcolor}%
+ \unvbox\@cclv
+ }%
+ \fi
+ \pec@getmark
+}
+
+\def\pec@PatchAlreadyInBox{%
+ \ifx\pec@botcolor\@empty
+ \else
+ \pdfliteral{\pec@botcolor}%
+ \fi
+ \pec@getmark
+}
+
+\@ifclassloaded{memoir}{%
+ \expandafter\def\expandafter\mem@makecol\expandafter{%
+ \expandafter\pec@PatchVBoxCCLV
+ \mem@makecol
+ }%
+ \endinput
+}{}
+
+\@ifclassloaded{seminar}{%
+ \newcommand\pec@org@makeslide{}
+ \let\pec@org@makeslide\@makeslide
+ \def\@makeslide{%
+ \pec@PatchVBoxCCLV
+ \pec@org@makeslide
+ }%
+ \endinput
+}{}
+
+\long\def\pec@output#1\@specialoutput\else#2\pec@end{%
+ \begingroup
+ \def\x{#2}%
+ \expandafter\endgroup
+ \ifx\x\@empty
+ \PackageWarningNoLine{pdfcolmk}{%
+ Unexpected \string\output\space routine detected,%
+ \MessageBreak
+ loading of package stopped%
+ }%
+ \expandafter\endinput
+ \fi
+}
+\expandafter\expandafter\expandafter\pec@output
+\expandafter\@firstofone\the\output\@specialoutput\else\pec@end
+
+\long\def\pec@output#1\@specialoutput\else#2\pec@end{%
+ \output{%
+ #1\@specialoutput\else
+ \pec@PatchVBoxCCLV
+ #2%
+ }%
+}
+\expandafter\expandafter\expandafter\pec@output
+\expandafter\@firstofone\the\output\pec@end
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/pdfcrypt.sty b/Master/texmf-dist/tex/latex/oberdiek/pdfcrypt.sty
new file mode 100644
index 00000000000..fd8f39b0c00
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/pdfcrypt.sty
@@ -0,0 +1,398 @@
+% File: pdfcrypt.sty
+% Version: 2001/08/09 v0.6
+% Author: Heiko Oberdiek
+% Email: <oberdiek@uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2001 Heiko Oberdiek.
+%
+% This program may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.2 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.2 or later is part of all distributions
+% of LaTeX version 1999/12/01 or later.
+%
+% Function: This package allows the setting of pdf encryption
+% options for
+% * pdfTeX, patched by Ricardo Sanchez Carmenes
+% <carmenes@bioquimica.uniovi.es>.
+% * VTeX, version 7.35, http://www.micropress-inc.com/.
+%
+% Required: pdfTeX-1.00a, pdfTeX-0.14h-pdfcrypt-20010310,
+% pdfcrypt-20010331
+% or
+% VTeX 7.35, tested with linux version.
+%
+% Use: The options can be set as package options or
+% in the command \pdfcryptsetup:
+% owner=OwnerPassword
+% user=UserPassword
+% print, copy, edit, annotate=true, false
+% all, none
+% debug
+% The encryption is set at \begin{document} by default,
+% but this can be forced for an earlier time
+% by option `set'.
+% Example:
+% \usepackage[owner=Donald,user=Knuth,print=false]{pdfcrypt}
+% ...
+% \begin{document}
+% or
+% \usepackage{pdfcrypt}
+% \pdfcryptsetup{owner=Donald,user=Knut}
+% \pdfcryptsetup{print=false,set}
+% ...
+% \begin{document}
+%
+% The characters `{', `}', and `\' has to be
+% escaped with `\'. Then the string should not
+% be specified as package option but in with
+% the macro \pdfcryptsetup, eg:
+% \pdfcryptsetup{user={\{\\Hello\}},print=false}
+% The password here is "{\Hello}".
+% Active characters can be used and are not expanded.
+% Macros except for \{, \}, and \\ should not be used
+% and are not expanded.
+%
+% Hints for pdfTeX:
+% * There are packages such as thumbpdf that ships out
+% some stuff (\immediate\pdfobj{...}). In this cases
+% \pdfcrypt will be ignored without warning or error
+% message. Therefore package pdfcrypt should be
+% loaded before and option "set" should be used in
+% order to force the call of \pdfcrypt, for example:
+% \usepackage{pdfcrypt}
+% \pdfcryptsetup{..., set}
+% ...
+% \usepackage{thumbpdf}
+%
+% * Compiling pdfTeX (eg. version 1.00a-pretest-20010804):
+% pdfTeX versions are available at
+% ftp://ftp.cstug.cz/pub/tex/local/cstug/thanh/
+% pdftex/snapshots/
+% Unpack the latest .tgz file:
+% > tar xzf pdftex-20010804.tgz
+% Enable encryption support:
+% src> cd src/texk/web2c/pdftexdir
+% src/texk/web2c/pdftexdir> ln -fs pdfcrypt-full.c pdfcrypt.c
+% Compile:
+% src/texk/web2c/pdftexdir> cd ../../..
+% src> ./configure
+% src> cd texk/web2c
+% src/texk/web2c> make pdftexbin
+% At last install the binary and pool files.
+%
+% History: 2001/04/02 v0.1:
+% First public version, published in the pdftex
+% mailing list for testing with pdfcrypt-20010331
+% 2001/07/19 v0.2:
+% * Default: all allowed.
+% * Support for VTeX added.
+% 2001/07/19 v0.3:
+% * Bug fix: VTeX letter for edit is M (modify).
+% 2001/07/19 v0.4:
+% * Bug fix: \VTeXversion is correct after
+% regenerating the format file.
+% 2001/08/05 v0.5:
+% * Syntax change in pdfTeX 1.00a.
+% 2001/08/09 v0.6:
+% * Support of special characters:
+% input: \{, \}, \\ for {, }, \
+% output: " in VTeX
+% * Option debug added.
+
+\ProvidesPackage{pdfcrypt}%
+ [2001/08/09 v0.6 *TEST* Setting pdf encryption (HO)]
+
+\let\pc@driver\@empty
+\let\pdfcryptsetup\@gobble
+\begingroup
+ % pdfTeX detection
+ \@ifundefined{pdfoutput}{%
+ }{%
+ \ifcase\pdfoutput
+ \else
+ \@ifundefined{pdfcrypt}{%
+ \PackageError{pdfcrypt}{%
+ PDF encryption is not supported with this pdfTeX%
+ }{%
+ You need pdfTeX 3.14159-14h-pdfcrypt-20010310 or higher.%
+ }%
+ \endgroup\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\endinput
+ \else
+ \gdef\pc@driver{vtex}%
+ \fi
+ \fi
+ }%
+\endgroup
+
+\RequirePackage{keyval}
+
+\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
+
+% default: allow all
+\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
+ Encryption is set for `\pc@driver'%
+ }
+ \@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}%
+ }%
+}
+\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
+}
+\@onlypreamble\pdfcryptsetup
+
+% support of configuration file
+\let\pc@ExecuteOptions\ExecuteOptions
+\InputIfFileExists{pdfcrypt.cfg}{}{}
+\let\ExecuteOptions\pc@ExecuteOptions
+
+% process global and local options
+\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}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/pdflscape.sty b/Master/texmf-dist/tex/latex/oberdiek/pdflscape.sty
new file mode 100644
index 00000000000..0fc8932e243
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/pdflscape.sty
@@ -0,0 +1,269 @@
+% File: pdflscape.sty
+% Version: 2004/05/11 v0.3
+% Author: Heiko Oberdiek
+% Email: oberdiek@uni-freiburg.de
+%
+% Copyright: Copyright (C) 2004 Heiko Oberdiek.
+%
+% This program may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.2 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.2 or later is part of all distributions
+% of LaTeX version 1999/12/01 or later.
+%
+% Function: Package `pdflscape' adds PDF support to the
+% environment `landscape' of package `lscape'
+% by setting the PDF page attribute `/Rotate'.
+% Driver options:
+% `pdftex'
+% `dvips', `dvipsone', `pctex32', `pctexps'
+% (and other drivers that provide a
+% non-empty \Gin@PS@raw)
+% `dvipdfm'
+%
+% Required: * The package `lscape'.
+%
+% Use: Load this package instead of package `lscape':
+% \usepackage{pdflscape}
+% \begin{landscape}...\end{landscape}
+%
+% History: 2001/01/15 v0.1:
+% * first public version,
+% published in de.comp.text.tex.
+% 2001/02/04 v0.2:
+% * minor documentation update.
+% * CTAN.
+% 2004/05/11 v0.3:
+% * Support for dvipdfm added.
+%
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+\ProvidesPackage{pdflscape}
+ [2004/05/11 v0.3 Landscape pages in PDF (HO)]
+\let\PLS@driver\@empty
+\DeclareOption{pdftex}{%
+ \PassOptionsToPackage\CurrentOption{lscape}%
+ \def\PLS@driver{pdftex}%
+}
+\DeclareOption{dvips}{%
+ \PassOptionsToPackage\CurrentOption{lscape}%
+ \def\PLS@driver{dvips}%
+}
+\DeclareOption{dvipsone}{%
+ \PassOptionsToPackage\CurrentOption{lscape}%
+ \def\PLS@driver{dvips}%
+}
+\DeclareOption{pctexps}{%
+ \PassOptionsToPackage\CurrentOption{lscape}%
+ \def\PLS@driver{dvips}%
+}
+\DeclareOption{dvipdfm}{%
+ \PassOptionsToPackage\CurrentOption{dvipdfm}%
+ \def\PLS@driver{dvipdfm}%
+}
+\DeclareOption*{\PassOptionsToPackage\CurrentOption{lscape}}
+\ProcessOptions
+\RequirePackage{lscape}
+
+% Autodetection of driver
+\def\PLS@temp{pdftex}
+\ifnum 1=0\ifx\pdfoutput\@undefined
+ \else
+ \ifx\pdfoutput\relax
+ \else
+ \ifnum\pdfoutput>0 %
+ 1%
+ \fi
+ \fi
+ \fi
+ \space
+ \ifx\PLS@driver\@empty
+ \let\PLS@driver\PLS@temp
+ \PackageInfo{pdflscape}{Auto-detected driver: `\PLS@temp'}%
+ \fi
+ \ifx\PLS@driver\PLS@temp
+ \else
+ \PackageError{pdflscape}{%
+ The driver option `\PLS@driver' is not compatible\MessageBreak
+ with pdfTeX in PDF mode, using driver `pdftex' instead%
+ }\@ehc
+ \let\PLS@driver\PLS@temp
+ \fi
+\fi
+
+\def\PLS@temp{dvips}
+\ifnum 1=0\ifx\Gin@PS@raw\@undefined
+ \else
+ \ifx\Gin@PS@raw\relax
+ \else
+ \ifx\Gin@PS@raw\@empty
+ \else
+ 1%
+ \fi
+ \fi
+ \fi
+ \space
+ \ifx\PLS@driver\@empty
+ \let\PLS@driver\PLS@temp
+ \PackageInfo{pdflscape}{Auto-detected driver: `\PLS@temp'}%
+ \fi
+ \ifx\PLS@driver\PLS@temp
+ \else
+ \PackageError{pdflscape}{%
+ The driver option `\PLS@driver' is not compatible\MessageBreak
+ with detected PostScript driver,\MessageBreak
+ Will try using driver `dvips'%
+ }\@ehc
+ \let\PLS@driver\PLS@temp
+ \fi
+\fi
+
+% dvipdfm
+\def\PLS@temp{dvipdfm.def}
+\ifx\PLS@temp\Gin@driver
+ \def\PLS@temp{dvipdfm}%
+ \ifx\PLS@driver\@empty
+ \let\PLS@driver\PLS@temp
+ \PackageInfo{pdflscape}{Auto-detected driver: `\PLS@temp'}%
+ \fi
+ \ifx\PLS@driver\PLS@temp
+ \else
+ \PackageError{pdflscape}{%
+ Graphics driver `dvipdfm.def' is loaded, but this\MessageBreak
+ is incompatible with driver `\PLS@driver'.\MessageBreak
+ Will try using driver `dvipdfm'%
+ }\@ehc
+ \let\PLS@driver\PLS@temp
+ \fi
+\fi
+
+\ifx\PLS@driver\@empty
+ \PackageError{pdflscape}{%
+ Neither pdfTeX, PostScript, nor dvipdfm driver found%
+ }\@ehc
+\fi
+
+% Driver stuff:
+% * \PLS@AddRotate#1
+% it expects the correct rotation number in #1
+% and implements the adding of the /Rotation entry
+% in the /Page object of the current page.
+% * \PLS@RemoveRotate
+% it removes a previous /Rotate entry, if necessary.
+
+% Driver pdfTeX
+\def\PLS@temp{pdftex}
+\ifx\PLS@temp\PLS@driver
+ \def\PLS@AddRotate#1{%
+ \ifnum#1=0
+ % already the default
+ \else
+ \global\pdfpageattr\expandafter{%
+ \the\pdfpageattr
+ /Rotate #1%
+ }%
+ \fi
+ }
+ % Removes a /Rotate entry. It has to be called inside
+ % a group.
+ \def\PLS@RemoveRotate{%
+ \global\pdfpageattr\expandafter{\expandafter}%
+ \expandafter\PLS@@RemoveRotate
+ \the\pdfpageattr /Rotate\@nil
+ }
+ \def\PLS@@RemoveRotate#1/Rotate#2\@nil{%
+ % append /Rotate free stuff to \pdfpageattr
+ \global\pdfpageattr\expandafter{\the\pdfpageattr#1}%
+ \ifx\\#2\\%
+ % ready, because the detected /Rotate is part of
+ % the end marker: /Rotate\@nil
+ \else
+ % first read in the argument of /Rotate,
+ % then continue parsing.
+ \afterassignment\PLS@@RemoveRotate
+ \count0=#2\@nil
+ \fi
+ }
+\fi
+
+% Driver PostScript
+\def\PLS@temp{dvips}
+\ifx\PLS@temp\PLS@driver
+ \def\PLS@AddRotate#1{%
+ \ifnum#1=0
+ \else
+ \Gin@PS@raw{%
+ [{ThisPage}\string<\string</Rotate #1\string>\string>%
+ /PUT pdfmark%
+ }%
+ \fi
+ }%
+ \let\PLS@RemoveRotate\relax
+\fi
+
+% Driver dvipdfm
+\def\PLS@temp{dvipdfm}
+\ifx\PLS@temp\PLS@driver
+ \def\PLS@AddRotate#1{%
+ \ifnum#1=0
+ \else
+ \special{pdf: put @thispage << /Rotate #1 >>}%
+ \fi
+ }%
+ \let\PLS@RemoveRotate\relax
+\fi
+
+% Driver independent stuff
+%
+% The landscape environment is extended by
+% adding the correct /Rotate entries.
+\g@addto@macro{\landscape}{\PLS@Rotate{90}}
+\g@addto@macro{\endlandscape}{\PLS@Rotate{0}}
+
+% Main macro, that sets the /Rotate entry.
+% Argument: any TeX number or
+% nothing, that means zero.
+% Driver independent.
+\def\PLS@Rotate#1{%
+ \begingroup
+ % 1. Check and validate the argument
+ \PLS@CheckAngle{#1}%
+ % 2. Delete an existing /Rotate entry
+ \PLS@RemoveRotate
+ % 3. Add /Rotate entry
+ \expandafter\PLS@AddRotate\expandafter{\the\count@}%
+ \endgroup
+}
+
+% Validates the rotation angle.
+% The result is stored in the count register \count@.
+% Driver independent.
+\def\PLS@CheckAngle#1{%
+ % noting means zero:
+ \ifx\\#1\\%
+ \count@=0
+ \else
+ \count@=#1\relax
+ \fi
+ % normalise to interval -360 < \count@ < 360
+ \@whilenum\count@>359\do{\addtocounter\count@ -360 }%
+ \@whilenum\count@<-359\do{\addtocounter\count@ 360 }%
+ % check values: 0, +/-90, +/-180, +/-270
+ \ifnum 1=0\ifnum\count@=0 \else
+ \ifnum\count@=90 \else
+ \ifnum\count@=-90 \else
+ \ifnum\count@=180 \else
+ \ifnum\count@=-180 \else
+ \ifnum\count@=270 \else
+ \ifnum\count@=-270 \else
+ 1\fi\fi\fi\fi\fi\fi\fi\relax
+ \PackageError{pdflscape}{%
+ Invalid value \the\count@\space for /Rotate%
+ }\@ehc
+ \count@=0
+ \fi
+}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/refcount.sty b/Master/texmf-dist/tex/latex/oberdiek/refcount.sty
new file mode 100644
index 00000000000..12baec3f1c1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/refcount.sty
@@ -0,0 +1,124 @@
+% File: refcount.sty
+% Version: 2000/09/07 v2.0
+% Author: Heiko Oberdiek <oberdiek@ruf.uni-freiburg.de>
+%
+% Function: Converting references to numbers.
+%
+% Copyright: Copyright (C) 1998, 2000 Heiko Oberdiek.
+%
+% This program may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.2 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.2 or later is part of all distributions
+% of LaTeX version 1999/12/01 or later.
+%
+% Use:
+% * Commands similar to LaTeX's \setcounter and \addtocounter,
+% but that extracts the number value from a reference:
+% \setcounterref, \addtocounterref
+% \setcounterpageref, \addtocounterpageref
+% They take two arguments:
+% \...counter...ref{<LaTeX counter>}{<reference>}
+% An undefined references produces the usual LaTeX warning
+% and its value is assumed to be zero.
+% Example:
+% \newcounter{ctrA}
+% \newcounter{ctrB}
+% \refstepcounter{ctrA}\label{ref:A}
+% \setcounterref{ctrB}{ref:A}
+% \addtocounterpageref{ctrB}{ref:A}
+% * Commands that can be used in expandible contexts:
+% \getrefnumber, \getpagerefnumber
+% They take one argument, the reference:
+% \get...refnumber{<reference>}
+% Because warnings and assignments cannot be used in
+% expandible contexts, undefined references do not
+% produce a warning, their values are assumed to be zero.
+% Example:
+% \label{ref:here}% somewhere
+% \ifodd\getpagerefnumber{ref:here}%
+% reference is on an odd page
+% \else
+% reference is on an even page
+% \fi
+% * The default for undefined references can be changed
+% with macro \setrefcountdefault, for example this
+% package calls:
+% \setrefcountdefault{0}
+% * This method of extracting the number is more safe
+% than the use of the reference directly, because
+% there are packages such as hyperref, that add
+% additional stuff, so that the reference cannot
+% be used as number any more.
+% * If the reference does not contain a number,
+% assignments to a counter will fail of course.
+% * Tested with packages hyperref and calc.
+%
+% History:
+% 1998/04/08 v1.0:
+% * First public release, written as answer in the
+% newsgroup `comp.text.tex' in the thread
+% `Re: Adding a \ref to a counter?', date: 1998/08/04.
+% 2000/09/07 v2.0:
+% * Documentation added.
+% * LPPL 1.2
+% * Package rewritten, new commands added.
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{refcount}
+ [2000/09/07 v2.0 Converting references to numbers (HO)]
+
+\def\setrefcountdefault#1{%
+ \def\rc@default{#1}%
+}
+\setrefcountdefault{0}
+
+% \def\@car#1#2\@nil{#1} % defined in LaTeX kernel
+\def\rc@cartwo#1#2#3\@nil{#2}
+
+% Generic command for "\{set,addto}counter{page,}ref":
+% #1: \setcounter, \addtocounter
+% #2: \@car (for \ref), \@cartwo (for \pageref)
+% #3: LaTeX counter
+% #4: reference
+\def\rc@set#1#2#3#4{%
+ \expandafter\ifx\csname r@#4\endcsname\relax
+ \protect\G@refundefinedtrue % LaTeX: rerun warning
+ \@latex@warning{Reference `#4' on page \thepage\space
+ undefined}%
+ #1{#3}{\rc@default}%
+ \else
+ #1{#3}{%
+ \expandafter\expandafter\expandafter#2%
+ \csname r@#4\endcsname\rc@default\rc@default\@nil
+ }%
+ \fi
+}
+
+% user commands:
+
+\newcommand*{\setcounterref}{\rc@set\setcounter\@car}
+\newcommand*{\addtocounterref}{\rc@set\addtocounter\@car}
+\newcommand*{\setcounterpageref}{\rc@set\setcounter\rc@cartwo}
+\newcommand*{\addtocounterpageref}{\rc@set\addtocounter\rc@cartwo}
+
+\newcommand*{\getrefnumber}[1]{%
+ \expandafter\ifx\csname r@#1\endcsname\relax
+ \rc@default
+ \else
+ \expandafter\expandafter\expandafter\@car
+ \csname r@#1\endcsname\@nil
+ \fi
+}
+\newcommand*{\getpagerefnumber}[1]{%
+ \expandafter\ifx\csname r@#1\endcsname\relax
+ \rc@default
+ \else
+ \expandafter\expandafter\expandafter\rc@cartwo
+ \csname r@#1\endcsname\rc@default\rc@default\@nil
+ \fi
+}
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/settobox.sty b/Master/texmf-dist/tex/latex/oberdiek/settobox.sty
new file mode 100644
index 00000000000..5e46a1941b8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/settobox.sty
@@ -0,0 +1,53 @@
+% File: settobox.sty
+% Version: 2000/09/07 v1.1
+% Author: Heiko Oberdiek <oberdiek@ruf.uni-freiburg.de>
+%
+% Function: Command for getting box sizes.
+%
+% Copyright: Copyright (C) 2000 Heiko Oberdiek.
+%
+% This program may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.2 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.2 or later is part of all distributions
+% of LaTeX version 1999/12/01 or later.
+%
+% Use:
+% For easier reusing of boxes, that can be saved
+% with `\sbox' or environment `lrbox' commands
+% are defined similar to \settowidth ...
+% \settoboxwidth
+% \settoboxheight
+% \settoboxdepth
+% \settoboxtotalheight
+% They all take two arguments:
+% \settobox...{<LaTeX length>}{<LaTeX box name>}
+%
+% Example:
+% \newsavebox{\mybox}
+% \newlength{\mylength}
+% \sbox{\mybox}{Hello World}
+% \settoboxwidth{\mylength}{\mybox}
+%
+% History:
+% 2000/02/11 v1.0:
+% * First public release, written as answer in the
+% newsgroup `de.comp.text.tex' in the thread
+% `Die Hoehe von Minipages und Bild', date: 2000/02/11.
+% 2000/09/07 v1.1:
+% * Documentation added.
+% * CTAN release.
+%
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{settobox}[2000/09/07 v1.1 Getting box sizes (HO)]
+\newcommand*{\settoboxwidth}[2]{\setlength{#1}{\wd#2}}
+\newcommand*{\settoboxheight}[2]{\setlength{#1}{\ht#2}}
+\newcommand*{\settoboxdepth}[2]{\setlength{#1}{\dp#2}}
+\newcommand*{\settoboxtotalheight}[2]{%
+ \setlength{#1}{\ht#2}%
+ \addtolength{#1}{\dp#2}%
+}
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/tabularht.sty b/Master/texmf-dist/tex/latex/oberdiek/tabularht.sty
new file mode 100644
index 00000000000..da3150adc1e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/tabularht.sty
@@ -0,0 +1,743 @@
+% File: tabularht.sty
+% Version: 2005/10/18 v2.1
+% Author: Heiko Oberdiek
+% Email: <oberdiek@uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2005 Heiko Oberdiek.
+%
+% 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 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% Function: This package defines some environments that adds
+% a height specification to tabular and array.
+%
+% Use: \usepackage{tabularht}
+%
+% The package provides the following environments
+% that extend the tabular/array environment by
+% a height specification as first argument:
+% * tabularht, tabularht*
+% * arrayht
+% * tabularxht, tabularxht*
+% (if package tabularx is loaded)
+%
+% The height argument allows a length specification,
+% package calc is supported if used. This means,
+% the tabular will have the specified height.
+% You can also use the prefixes "to=" and "spread=".
+% "to=" is the default, "spread=" means, the natural
+% height of the tabular box is changed by the length
+% after "spread=".
+% Examples:
+% \begin{tabularht}{1in} -> height is 1in
+% \begin{tabularht}{to=1in} -> height is 1in
+% \begin{tabularht}{spread=0pt}
+% -> natural height, same as \begin{tabular}
+% \begin{tabularht}{spread=1in}
+% -> natural height increased by 1in
+%
+% \interrowspace{...}
+% Adds space between table rows. It is essentially
+% the same as \noalign{\vspace{...}}.
+% \interrowfill
+% Short for \interrowspace{\fill}
+% \interrowstart ...\interrowstop
+% Marker commands, useful for option `vlines'.
+%
+% Option `vlines'.
+%
+% Vertical lines are interrupted, if space is inserted
+% in \noalign, \interrowspace, \addlinespace (booktabs),
+% between double \hlines. This option tries to detect
+% and add the vertical lines. The lines in a tabular
+% with tabularht support (environments of this package)
+% are numbered from left to right. The gap that is
+% controlled by \interrowspace or inbetween \interrowstart
+% and \interrowstop is then filled with the detected
+% vertical lines.
+% If only a limited selection of the lines should be
+% drawn, the commands know an optional argument with a
+% list of line numbers, e.g.
+% \begin{tabularht}{50mm}{|l|l|}
+% Hello & World\\
+% \interrowfill[1,3]
+% Foo & Bar
+% \end{tabularht}
+% There are three lines, but the middle line is not drawn
+% in the gap between the first and second row.
+% Zero can be used to suppress all lines:
+% \interrowspace[0]{10mm}
+% The syntax of the commands with the optional argument
+% with the line number list <list>. <list> is a comma
+% separated list of numbers, <height> means the
+% height specification described above with the optional
+% prefixes "to=" or "spread=".
+% \interrowspace[<list>]{<height>}
+% \interrowfill[<list>]
+% \interrowstart[<list>]...\interrowstop
+%
+% Option `vlines' is driver dependent and uses eTeX features.
+% * `pdftex': pdfTeX in PDF mode.
+% Here the positions of the lines are written with the
+% help of the \pdfsavepos feature into the .aux file(s).
+% Therefore you need two LaTeX runs to get the lines.
+% * `dvips':
+% Here, PostScript's currentpoint it used to get
+% the line positions. The lines are then drawn at the end
+% of the page. Thus one LaTeX/dvips run is sufficient
+% for this option.
+% * Other drivers:
+% * PostScript drivers: probably possible, an end of page
+% hook would be nice.
+% * VTeX: with GeX (PostScript interpreter) probably possible.
+% * dvipdfm: no idea. The big problem is, how to get the
+% current position?
+%
+% Hint: See also package `tabularkv', it provides an interface,
+% where most parameters for the environments can be given
+% by key-value pairs.
+%
+% Caution: At last a caution warning, the package, especially the
+% stuff of option `vlines' is experimental.
+%
+% Example 1:
+% \documentclass{article}
+% \usepackage{tabularht}
+%
+% \begin{document}
+% \fbox{%
+% \begin{tabularht*}{1in}{4in}{@{}l@{\extracolsep{\fill}}r@{}}
+% upper left corner & upper right corner\\%
+% \noalign{\vfill}%
+% \multicolumn{2}{@{}c@{}}{bounding box}\\
+% \noalign{\vfill}%
+% lower left corner & lower right corner\\
+% \end{tabularht*}%
+% }
+% \end{document}
+%
+% Example 2:
+% \documentclass{article}
+% \usepackage{booktabs}
+% \usepackage[dvips,vlines]{tabularht}
+%
+% \begin{document}
+%
+% \begin{tabularht}{spread=0pt}{|l|l|}
+% \hline
+% First&Line\\
+% \hline
+% \interrowstart
+% \addlinespace[10mm]
+% \interrowstop
+% \hline
+% Second&Line\\
+% \interrowstart
+% \hline
+% \hline
+% \interrowstop
+% Third&Line\\
+% \hline
+% \interrowspace{10mm}
+% \hline
+% Fourth&Line\\
+% \hline
+% \end{tabularht}
+%
+% \end{document}
+%
+% Limitations:
+% * Vertical lines are interrupted by \noalign{\vfill}.
+%
+% Compatibility:
+% * array, delarray, tabularx are supported.
+% * There can be problems with packages that
+% redefine \@array (or \@@array, \@tabarray) and
+% \@arrayrule (for option vlines).
+% * colortbl: it should at least work, but there isn't
+% support for filling the gaps with color, neither
+% the rules nor the backgrounds
+%
+% Installation:
+% CTAN location: CTAN:macros/latex/contrib/oberdiek/tabularht.sty
+% TDS location: TDS:tex/latex/oberdiek/tabularht.sty
+%
+% History: 2005/09/22 v1.0:
+% * first public version
+% 2005/10/16 v2.0:
+% * height specification allows
+% "to=..." or "spread=...", default is "to=".
+% * option vlines added, drivers pdftex and dvips
+% * \interrowspace, \interrowfil, and
+% \interrowstart ...\interrowstop added
+% 2005/10/18 v2.1:
+% * fix for package colortbl, but the colors
+% of colortbl remain unsupported.
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tabularht}%
+ [2005/10/18 v2.1 Tabular with height specification]
+
+\let\@toarrayheight\@empty
+\let\tabH@array@init\@empty
+
+\toks@={%
+ \begingroup
+ \long\def\x#1\vcenter\fi\fi\bgroup#2\@sharp#3#4\@nil{%
+ \endgroup
+ \gdef\@array[##1]##2{%
+ \tabH@array@init
+ #1%
+ \vcenter\fi\fi
+ \@toarrayheight
+ \bgroup
+ \let\@toarrayheight\@empty
+ #2\@sharp###3#4%
+ }%
+ }%
+ \expandafter\x\@array[#1]{#2}\@nil
+}
+\edef\tabH@patch@array{\the\toks@}
+\def\tabH@patch@@array{%
+ \ifx\@array\@@array
+ \def\reserved@a{\let\@@array\@array}%
+ \else
+ \let\reserved@a\relax
+ \fi
+ \tabH@patch@array
+ \reserved@a
+}
+\tabH@patch@@array
+
+\@ifpackageloaded{array}{}{%
+ \AtBeginDocument{%
+ \@ifpackageloaded{array}{%
+ \tabH@patch@@array
+ }{}%
+ }%
+}
+
+\def\tabH@setheight#1{%
+\tracingmacros=1
+ \tabH@@setheight#1==\@nil
+}
+\def\tabH@@setheight#1=#2=#3\@nil{%
+ \ifx\\#2#3\\%
+ \setlength{\dimen@}{#1}%
+ \edef\@toarrayheight{to\the\dimen@}%
+ \else
+ \edef\tabH@temp{\zap@space#1 \@empty}%
+ \ifx\tabH@temp\tabH@to
+ \else
+ \ifx\tabH@temp\tabH@spread
+ \else
+ \PackageError{tabularht}{%
+ Unknown height specifier %
+ `\expandafter\strip@prefix\meaning\tabH@temp'%
+ }{%
+ The height dimension for tabular height can be prefixed%
+ \MessageBreak
+ with `to=' or `spread=', default is `to='.%
+ }%
+ \let\tabH@temp\tabH@to
+ \fi
+ \fi
+ \setlength{\dimen@}{#2}%
+ \edef\@toarrayheight{\tabH@temp\the\dimen@}%
+ \fi
+}
+\def\tabH@to{to}
+\def\tabH@spread{spread}
+
+% First argument is the height of the table,
+% then the orignal arguments for tabular follow.
+\newenvironment{tabularht}[1]{%
+ \tabH@setheight{#1}%
+ \tabular
+}{%
+ \endtabular
+}
+
+\newenvironment{tabularht*}[1]{%
+ \tabH@setheight{#1}%
+ \@nameuse{tabular*}%
+}{%
+ \@nameuse{endtabular*}%
+}
+
+\newenvironment{tabularhtx}[1]{%
+ \tabH@setheight{#1}%
+ \tabularx
+}{%
+ \endtabularx
+}
+
+\newenvironment{arrayht}[1]{%
+ \tabH@setheight{#1}%
+ \array
+}{%
+ \endarray
+}
+
+\def\interrowspace{%
+ \noalign\bgroup
+ \tabH@interrowspace
+}
+\newcommand*{\tabH@interrowspace}[2][]{%
+ \tabH@vspace{#1}{#2}%
+ \egroup
+}
+\def\interrowfill{%
+ \noalign\bgroup
+ \tabH@interrowfill
+}
+\newcommand*{\tabH@interrowfill}[1][]{%
+ \tabH@vspace{#1}{\fill}%
+ \egroup
+}
+\def\tabH@vspace#1#2{%
+ \tabH@vspace@start{#1}%
+ \vspace{#2}%
+ \tabH@vspace@stop
+}
+\let\tabH@vspace@start\@gobble
+\let\tabH@vspace@stop\@empty
+
+\newcommand*{\interrowstart}{%
+ \noalign\bgroup
+ \tabH@interrowstart
+}
+\newcommand*{\tabH@interrowstart}[1][]{%
+ \tabH@vspace@start{#1}%
+ \egroup
+}
+\newcommand*{\interrowstop}{%
+ \noalign{\tabH@vspace@stop}%
+}
+
+%%% Options
+
+\providecommand*{\tabH@driver}{}
+
+\DeclareOption{vlines}{%
+ \let\tabH@temp\relax
+}
+\DeclareOption{pdftex}{}
+\DeclareOption{dvips}{%
+ \def\tabH@driver{dvips}%
+}
+\ProcessOptions*\relax
+
+\ifx\tabH@temp\relax
+\else
+ \expandafter\endinput
+\fi
+
+\begingroup
+ \@ifundefined{eTeXversion}{%
+ \PackageError{tabularht}{%
+ Option `vlines' requires eTeX%
+ }{%
+ Use of eTeX is recommended for LaTeX, see ltnews16.%
+ }%
+ \endgroup
+ \endinput
+ }{}%
+\endgroup
+
+%%% Option vlines, driver independent stuff
+
+\newcounter{tabH@unique}
+\setcounter{tabH@unique}{0}
+\let\tabH@currenttab\@empty
+
+\def\tabH@array@init{%
+ \ifx\@toarrayheight\@empty
+ % ignore vertical lines of nested tabular environments
+ \let\tabH@currenttab\@empty
+ \else
+ \stepcounter{tabH@unique}%
+ \edef\tabH@currenttab{\the\c@tabH@unique}%
+ \fi
+}
+
+\renewcommand*{\@arrayrule}{%
+ \@addtopreamble{%
+ \hskip -.5\arrayrulewidth
+ \ifx\tabH@currenttab\@empty
+ \else
+ \tabH@vrule{\tabH@currenttab}%
+ \fi
+ \begingroup
+ \csname CT@arc@\endcsname\vline
+ \endgroup
+ \hskip -.5\arrayrulewidth
+ }%
+}
+\let\tabH@arrayrule\@arrayrule
+\AtBeginDocument{%
+ \@ifpackageloaded{colortbl}{%
+ \let\@arrayrule\tabH@arrayrule
+ }{}%
+}
+
+\let\tabH@vrule\@gobble
+
+
+%%% Driver pdftex
+
+\RequirePackage{ifpdf}
+\ifpdf
+ \begingroup
+ \@ifundefined{pdfsavepos}{%
+ \PackageError{tabularht}{%
+ Your pdfTeX is too old%
+ }{%
+ \string\pdfsavepos\space is missing.%
+ }%
+ \endgroup
+ \csname fi\endcsname
+ \endinput
+ }{}%
+
+ \let\on@line\@empty
+ \PackageInfo{tabularht}{%
+ Using driver `pdftex' because of pdfTeX in PDF mode%
+ }%
+ \endgroup
+
+ \protected\def\tabH@vrule#1{%
+ \if@filesw
+ \pdfsavepos
+ \protected@write\@auxout{%
+ \let\tabH@lastxpos\relax
+ }{%
+ \tabH@aux@vrule{#1}{\tabH@lastxpos}%
+ }%
+ \fi
+ }
+
+ \def\tabH@lastxpos{\the\pdflastxpos}
+ \def\tabH@lastypos{\the\pdflastypos}
+
+ % The .aux file contains three commands:
+ % \tabH@aux@vrule{tabular id}{x position}
+ % \tabH@aux@vstart{tabular id}{row id}{x position}{y position}
+ % \tabH@aux@vstop{y position}
+ %
+ \AtBeginDocument{%
+ % The .aux files are read the first time before
+ % \AtBeginDocument and later at \end{document}.
+ % \tabH@aux@done is a marker to distinguish
+ % between these two readings. Only in the first
+ % case we need the \tabH@aux@... commands.
+ \let\tabH@aux@done\@empty
+ \if@filesw
+ \immediate\write\@mainaux{%
+ \@percentchar\@percentchar BeginProlog: tabularht
+ }%
+ % items in the aux file are executed,
+ % if tabularht is loaded
+ % and during the aux file read at \begin{document} only
+ \immediate\write\@mainaux{%
+ \detokenize{%
+ % the \tabH@aux@... commands are needed only if
+ % tabularht is loaded with driver pdftex.
+ \@ifundefined{tabH@aux@vrule}\@secondoftwo\@firstofone
+ {%
+ % disable commands except for the first .aux files reading
+ \@ifundefined{tabH@aux@done}\@gobble\@firstofone
+ }%
+ {%
+ \let\tabH@aux@vrule\@gobbletwo
+ \let\tabH@aux@vstart\@gobblefour
+ \let\tabH@aux@vstop\@gobble
+ }%
+ }%
+ }%
+ \immediate\write\@mainaux{%
+ \@percentchar\@percentchar EndProlog: tabularht
+ }%
+ \fi
+ }
+
+ % the x positions of vrules are stored in
+ % \tabH@<tabcount>list with distinct values
+ \protected\def\tabH@aux@vrule#1#2{%
+ \@ifundefined{tabH@#1list}{%
+ \expandafter\xdef\csname tabH@#1list\endcsname{%
+ \noexpand\do{#2}%
+ }%
+ }{%
+ \begingroup
+ \def\x{#2}%
+ \let\y\@undefined
+ \let\do\tabH@do@add
+ \expandafter\xdef\csname tabH@#1list\endcsname{%
+ \csname tabH@#1list\endcsname\@empty
+ \ifx\y\@undefined
+ \noexpand\do{\x}%
+ \fi
+ }%
+ \endgroup
+ }%
+ }
+ \def\tabH@do@add#1{%
+ \ifx\y\@undefined
+ \ifnum#1<\x\space
+ \else
+ \expandafter\ifx\csname y\endcsname\relax\fi
+ \ifnum#1>\x\space
+ \noexpand\do{\x}%
+ \fi
+ \fi
+ \fi
+ \noexpand\do{#1}%
+ }
+
+ \def\tabH@vspace@start#1{%
+ \if@filesw
+ \stepcounter{tabH@unique}%
+ \edef\tabH@currentrow{\the\c@tabH@unique}%
+ \pdfsavepos
+ \protected@write\@auxout{%
+ \let\tabH@lastxpos\relax
+ \let\tabH@lastypos\relax
+ }{%
+ \tabH@aux@vstart{\tabH@currenttab}{\tabH@currentrow}%
+ {\tabH@lastxpos}{\tabH@lastypos}%
+ }%
+ \fi
+ \begingroup
+ \edef\a{tabH@\tabH@currenttab row\tabH@currentrow}%
+ \expandafter\let\expandafter\x\csname\a x\endcsname
+ \ifx\x\relax
+ \else
+ \expandafter\let\expandafter\y\csname\a y\endcsname
+ \expandafter\let\expandafter\l
+ \csname tabH@\tabH@currenttab list\endcsname
+ \ifx\l\relax
+ \else
+ \def\f{#1}%
+ \ifx\f\@empty
+ \let\do\tabH@do@set
+ \else
+ \count@=\z@
+ \let\do\tabH@do@filter
+ \fi
+ \setbox\z@=\hbox{\l}%
+ \wd\z@=\z@
+ \dp\z@=\z@
+ \copy\z@
+ \fi
+ \fi
+ \endgroup
+ }%
+ \def\tabH@vspace@stop{%
+ \if@filesw
+ \pdfsavepos
+ \protected@write\@auxout{%
+ \let\tabH@lastypos\relax
+ }{%
+ \tabH@aux@vstop{\tabH@lastypos}%
+ }%
+ \fi
+ }
+ \def\tabH@do@set#1{%
+ \hbox to \z@{%
+ \hskip \dimexpr #1sp - \x sp\relax
+ \vrule \@width\arrayrulewidth
+ \@depth\dimexpr \y sp\relax
+ \hss
+ }%
+ }
+ \def\tabH@do@filter{%
+ \@tempswafalse
+ \advance\count@\@ne
+ \@for\e:=\f\do{%
+ \ifnum\e=\count@
+ \@tempswatrue
+ \fi
+ }%
+ \if@tempswa
+ \expandafter\tabH@do@set
+ \else
+ \expandafter\@gobble
+ \fi
+ }
+
+ \protected\def\tabH@aux@vstart#1#2#3#4{%
+ \def\tabH@current@vstart{{#1}{#2}{#3}{#4}}%
+ }
+ \protected\def\tabH@aux@vstop{%
+ \expandafter\tabH@aux@v\tabH@current@vstart
+ }
+ \def\tabH@aux@v#1#2#3#4#5{%
+ \expandafter\gdef\csname tabH@#1row#2x\endcsname{#3}%
+ \expandafter\xdef\csname tabH@#1row#2y\endcsname{%
+ \the\numexpr #4 - #5\relax
+ }%
+ }
+
+ \csname fi\endcsname
+ \endinput
+
+\fi
+
+%%% DVI drivers
+
+\ifx\tabH@driver\@empty
+ \PackageError{tabularht}{%
+ Missing DVI driver, option `vlines' disabled%
+ }{%
+ Supported DVI drivers: dvips.%
+ }%
+ \expandafter\endinput
+\fi
+
+\def\tabH@driver@dvips{%
+ \def\tabH@literalps##1{\special{ps:SDict begin ##1 end}}%
+ \def\tabH@headerps##1{\special{! ##1}}%
+}
+
+\@onelevel@sanitize\tabH@driver
+\@ifundefined{tabH@driver@\tabH@driver}{%
+ \PackageError{tabularht}{%
+ Unsupported driver `\tabH@driver'%
+ }{%
+ Supported DVI drivers: dvips.%
+ }%
+ \endinput
+}{}
+
+\begingroup
+ \let\on@line\@empty
+ \PackageInfo{tabularht}{%
+ Using driver `\tabH@driver'%
+ }%
+\endgroup
+\csname tabH@driver@\tabH@driver\endcsname
+
+\protected\def\tabH@vrule#1#2\vrule#3\arrayrulewidth{%
+ #2% \fi or empty
+ % hack to get rid of maxdrift rounding of dvips,
+ % thus simulate a large motion
+ \kern1in\relax
+ \tabH@literalps{%
+ #1 tabH.vrule
+ Resolution neg 0 translate%
+ }%
+ \vrule#3\arrayrulewidth
+ \tabH@literalps{Resolution 0 translate}%
+ \kern-1in\relax
+}
+
+\def\tabH@vspace@start#1{%
+ \begingroup
+ \let\y\@empty
+ \@for\x:=#1\do{%
+ \ifx\y\@empty
+ \edef\y{\x}%
+ \else
+ \edef\y{\y\space\x}%
+ \fi
+ }%
+ \tabH@literalps{\tabH@currenttab[\y]currentpoint exch pop}%
+ \endgroup
+}
+\def\tabH@vspace@stop{%
+ \tabH@literalps{%
+ currentpoint exch pop %
+ \number\dimexpr\arrayrulewidth\relax\space
+ tabH.vspace%
+ }%
+}
+
+\tabH@headerps{%
+ userdict begin
+ /tabH.list 10 dict def
+ /tabH.job [] def
+ end%
+ /tabH.vrule{%
+ 10 string cvs cvn dup tabH.list exch known{%
+ tabH.list exch dup [ exch tabH.list exch get
+ currentpoint pop round exch true exch{%
+ % tabH.list key [ ... x true i
+ % tabH.list key [ ... false i
+ exch{%
+ % ... [ ... x i
+ 2 copy lt{false}{%
+ 2 copy eq{pop false}{exch true}ifelse%
+ }ifelse
+ }{false}ifelse
+ }forall
+ pop%
+ ]put%
+ }{%
+ tabH.list exch[currentpoint pop round]put
+ }ifelse
+ }bind def
+ % <tab num> <cols array> <ytop> <ybottom> <rulewidth[sp]>
+ /tabH.vspace{%
+ userdict begin
+ 10 dict dup begin
+ exch 65536 div Resolution mul 72.27 div
+ % dvips uses a poor man's ceil function
+ % see dopage.c before "drawrule": (int)(... + 0.9999999)
+ 0.9999999 add truncate%
+ /rulewidth exch def
+ exch/ybottom exch def
+ exch/ytop exch def
+ exch/cols exch def
+ exch/tabkey exch 10 string cvs cvn def
+ end
+ /tabH.job exch[exch userdict/tabH.job get aload pop]def
+ end%
+ }bind def
+ % Now we do the work at the end of the page.
+ % Unhappily "eop-hook" cannot be used, because "eop"
+ % executes "restore" before, so that all data are lost.
+ TeXDict begin%
+ /eop%
+ [%
+ {%
+ tabH.job{%
+ begin%
+ /colarray
+ tabH.list tabkey known{tabH.list tabkey get}{[]}ifelse
+ def
+ cols length 0 eq not{%
+ /colarray[%
+ cols{1 sub
+ dup 0 lt{pop}{%
+ dup colarray length ge{pop}{%
+ colarray exch get%
+ }ifelse%
+ }ifelse%
+ }forall%
+ ]def%
+ }if
+ colarray{%
+ % (rulewidth) == rulewidth == % debug
+ Resolution sub
+ ytop rulewidth ytop ybottom sub v
+ }forall
+ end
+ }forall
+ % tabH.list{== ==}forall % debug
+ }bind aload pop
+ TeXDict /eop get aload pop
+ ]cvx def
+ end%
+}
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/tabularkv.sty b/Master/texmf-dist/tex/latex/oberdiek/tabularkv.sty
new file mode 100644
index 00000000000..6d84a1f82e1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/tabularkv.sty
@@ -0,0 +1,107 @@
+% File: tabularkv.sty
+% Version: 2005/07/22 v1.0
+% Author: Heiko Oberdiek
+% Email: <oberdiek@uni-freiburg.de>
+%
+% Copyright: Copyright (C) 2005 Heiko Oberdiek.
+%
+% 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 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% Function: This package adds a key value interface for tabular
+% by the new environment "tabularkv". Thus the TeX
+% source code looks better by named parameters,
+% especially if package "tabularht" is used.
+%
+% Use: \usepackage{tabularkv}
+%
+% The package provides the environment "tabularkv"
+% that takes an optional argument with tabular
+% parameters:
+% * width (width specification, "tabular*" is used)
+% * x (width specification, "tabularx" is used,
+% package "tabularx" must be loaded)
+% * height (height specification, see package tabularht)
+% * valign (vertical positioning, this option is optional)
+% values: top, bottom, center
+%
+% Parameter "valign" optional, the following are
+% equivalent:
+% \begin{tabularkv}[..., valign=top]{l}...\end{tabularkv}
+% \begin{tabularkv}[...][t]{l}...\end{tabularkv}
+%
+% Example:
+% \documentclass{article}
+% \usepackage{tabularkv}
+%
+% \begin{document}
+% \fbox{%
+% \begin{tabularkv}[
+% width=4in,
+% height=1in,
+% valign=center
+% ]{@{}l@{\extracolsep{\fill}}r@{}}
+% upper left corner & upper right corner\\%
+% \noalign{\vfill}%
+% \multicolumn{2}{@{}c@{}}{bounding box}\\
+% \noalign{\vfill}%
+% lower left corner & lower right corner\\
+% \end{tabularkv}%
+% }
+% \end{document}
+%
+% Installation:
+% CTAN location: CTAN:macros/latex/contrib/oberdiek/tabularkv.sty
+% TDS location: TDS:tex/latex/oberdiek/tabularkv.sty
+%
+% History: 2005/09/22 v1.0:
+% * first public version,
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tabularkv}
+ [2005/09/22 v1.0 Key value interface for tabular parameters]
+
+\RequirePackage{keyval}
+\RequirePackage{tabularht}
+
+\let\tabKV@star@x\@empty
+\let\tabKV@width\@empty
+\let\tabKV@valign\@empty
+
+\define@key{tabKV}{height}{%
+ \setlength{\dimen@}{#1}%
+ \edef\@toarrayheight{to\the\dimen@}%
+}
+\define@key{tabKV}{width}{%
+ \def\tabKV@width{{#1}}%
+ \def\tabKV@star@x{*}%
+}
+\define@key{tabKV}{x}{%
+ \def\tabKV@width{{#1}}%
+ \def\tabKV@star@x{x}%
+}
+\define@key{tabKV}{valign}{%
+ \edef\tabKV@valign{[\@car #1c\@nil]}%
+}
+
+\newenvironment{tabularkv}[1][]{%
+ \setkeys{tabKV}{#1}%
+ \@nameuse{%
+ tabular\tabKV@star@x\expandafter\expandafter\expandafter
+ }%
+ \expandafter\tabKV@width\tabKV@valign
+}{%
+ \@nameuse{endtabular\tabKV@star@x}%
+}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/oberdiek/twoopt.sty b/Master/texmf-dist/tex/latex/oberdiek/twoopt.sty
new file mode 100644
index 00000000000..f27201202a1
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/twoopt.sty
@@ -0,0 +1,104 @@
+%%
+%% This is file `twoopt.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% twoopt.dtx (with options: `package')
+%%
+%% This file is part of the package `twoopt' for use with LaTeX2e.
+%%
+%% Function: Defining commands with two optional arguments.
+%%
+%% Copyright (C) 1998,1999 Heiko Oberdiek.
+%%
+%% This program can be redistributed and/or modified
+%% under the terms of the LaTeX Project Public License
+%% distributed from CTAN archives in directory
+%% macros/latex/base/lppl.txt; either version 1 of
+%% the License, or (at your option) any later version.
+%%
+%% Please send error reports and suggestions for improvements to
+%% Heiko Oberdiek <oberdiek@ruf.uni-freiburg.de>.
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{twoopt}
+ [1999/04/12 v1.3 Definitions with two optional arguments (HO)]
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\newcommand{\newcommandtwoopt}{%
+ \@ifstar{\@newcommandtwoopt*}{\@newcommandtwoopt{}}%
+}
+\newcommand{\@newcommandtwoopt}{}
+\long\def\@newcommandtwoopt#1#2{%
+ \expandafter\@@newcommandtwoopt
+ \csname2\string#2\endcsname{#1}{#2}%
+}
+\newcommand{\@@newcommandtwoopt}{}
+\long\def\@@newcommandtwoopt#1#2#3[#4][#5][#6]{%
+ \newcommand#2#3[1][{#5}]{%
+ \to@ScanSecondOptArg#1{##1}{#6}%
+ }%
+ \newcommand#2#1[{#4}]%
+}
+\newcommand{\renewcommandtwoopt}{%
+ \@ifstar{\@renewcommandtwoopt*}{\@renewcommandtwoopt{}}%
+}
+\newcommand{\@renewcommandtwoopt}{}
+\long\def\@renewcommandtwoopt#1#2{%
+ \begingroup
+ \escapechar\m@ne
+ \xdef\@gtempa{{\string#2}}%
+ \endgroup
+ \expandafter\@ifundefined\@gtempa{%
+ \@latex@error{\noexpand#2undefined}\@ehc
+ }{}%
+ \let#2\@undefined
+ \expandafter\let\csname2\string#2\endcsname\@undefined
+ \expandafter\@@newcommandtwoopt
+ \csname2\string#2\endcsname{#1}{#2}%
+}
+\newcommand{\providecommandtwoopt}{%
+ \@ifstar{\@providecommandtwoopt*}{\@providecommandtwoopt{}}%
+}
+\newcommand{\@providecommandtwoopt}{}
+\long\def\@providecommandtwoopt#1#2{%
+ \begingroup
+ \escapechar\m@ne
+ \xdef\@gtempa{{\string#2}}%
+ \endgroup
+ \expandafter\@ifundefined\@gtempa{%
+ \expandafter\@@newcommandtwoopt
+ \csname2\string#2\endcsname{#1}{#2}%
+ }{%
+ \let\to@dummyA\@undefined
+ \let\to@dummyB\@undefined
+ \@@newcommandtwoopt\to@dummyA{#1}\to@dummyB
+ }%
+}
+\newcommand{\to@ScanSecondOptArg}[3]{%
+ \@ifnextchar[{%
+ \expandafter#1\to@ArgOptToArgArg{#2}%
+ }{%
+ #1{#2}{#3}%
+ }%
+}
+\newcommand{\to@ArgOptToArgArg}{}
+\long\def\to@ArgOptToArgArg#1[#2]{{#1}{#2}}
+\endinput
+%%
+%% End of file `twoopt.sty'.
diff --git a/Master/texmf-dist/tex/latex/oberdiek/vpe.sty b/Master/texmf-dist/tex/latex/oberdiek/vpe.sty
new file mode 100644
index 00000000000..0271ce64df6
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/oberdiek/vpe.sty
@@ -0,0 +1,820 @@
+% File: vpe.sty
+% Project: vpe
+% Version: 2000/09/15 v0.1
+% Author: Heiko Oberdiek
+%
+% Function: Source specials for pdf files.
+%
+% Copyright: Copyright (C) 2000 Heiko Oberdiek.
+%
+% This program may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.2 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.2 or later is part of all distributions
+% of LaTeX version 1999/12/01 or later.
+%
+% See file `vpe.txt' for a list of files that
+% belong to this project.
+%
+% Requirement: * Linux/Unix or Windows/Dos
+% * enabled \write18 feature.
+% * LaTeX2e
+%
+% Use: * \usepackage{vpe}
+% See file `vpe.txt' for further documentation.
+%
+% History: 2000/09/15 v0.1: first public release
+%
+% \vpe@ is the prefix for internal command names.
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{vpe}%
+[2000/09/15 v0.1 Source specials for pdf files (HO)]
+
+\RequirePackage{keyval}
+
+%*** options
+
+%*** active/inactive
+\DeclareOption{active}{\vpe@oktrue}
+\DeclareOption{inactive}{\vpe@okfalse}
+\newif\ifvpe@ok
+\vpe@oktrue
+
+%*** dupes
+\DeclareOption{dupes}{\vpe@dupestrue}
+\DeclareOption{nodupes}{\vpe@dupesfalse}
+\newif\ifvpe@dupes
+\vpe@dupestrue
+
+%*** form, revert, acroform
+\DeclareOption{form}{\vpe@formtrue}
+\DeclareOption{noform}{\vpe@formfalse}
+\newif\ifvpe@form
+\vpe@formfalse
+\DeclareOption{acroform}{\vpe@acroformtrue}
+\DeclareOption{noacroform}{\vpe@acroformfalse}
+\newif\ifvpe@acroform
+\vpe@acroformtrue
+
+%*** debug
+\DeclareOption{debug}{%
+ \def\vpe@debug#1{\typeout{*** #1 ***}}%
+}
+\let\vpe@debug\@gobble
+
+%*** system
+\DeclareOption{linux}{\def\vpe@system{linux}}
+\DeclareOption{unix}{\def\vpe@system{linux}}
+\DeclareOption{win}{\def\vpe@system{win}}
+\DeclareOption{dos}{\def\vpe@system{win}}
+\let\vpe@system\@empty
+
+
+%*** driver specific options
+\DeclareOption{pdftex}{\let\vpe@annot\vpe@annotpdftex}
+\DeclareOption{dvips}{\let\vpe@annot\vpe@annotdvips}
+\DeclareOption{ps2pdf}{\let\vpe@annot\vpe@annotdvips}
+\DeclareOption{pdfmark}{\let\vpe@annot\vpe@annotdvips}
+\def\vpe@annotpdftex#1{\pdfannot\vpe@rule{#1}}
+\def\vpe@dvips@pdfmark#1{\special{ps:SDict begin[#1 pdfmark end}}
+\def\vpe@annotdvips#1{%
+ \vpe@dvips@pdfmark{%
+ /Rect[%
+ currentpoint
+ exch 1 72 div Resolution mul sub
+ exch \vpe@depth\space 1 add 72 div Resolution mul add
+ currentpoint
+ exch \vpe@width\space 1 add 72 div Resolution mul add
+ exch \vpe@height\space 1 add 72 div Resolution mul sub%
+ ]%
+ #1%
+ /ANN%
+ }%
+}
+\let\vpe@annot\vpe@annotdvips
+
+
+\DeclareOption{everyhbox}{\vpe@everyhboxtrue}
+\DeclareOption{noeveryhbox}{\vpe@everyhboxfalse}
+\newif\ifvpe@everyhbox
+
+%*** disable options
+\DeclareOption*{%
+ \expandafter\let\csname vpeorg@\expandafter
+ \@gobbletwo\CurrentOption\@empty\@empty\endcsname \@empty%
+}
+
+%*** keyval options
+\def\vpe@revert#1#2{%
+ \expandafter\ifx\csname vpe@#1\endcsname\relax
+ \else
+ \csname vpe@#1%
+ \@gobble\iftrue\csname if#1\endcsname
+ false%
+ \else
+ true%
+ \fi
+ \endcsname
+ \fi
+}
+
+\define@key{vpe}{active}[true]{\csname vpe@ok#1\endcsname}
+\define@key{vpe}{inactive}[true]{\vpe@revert{ok}{#1}}
+\define@key{vpe}{dupes}[true]{\csname vpe@dupes#1\endcsname}
+\define@key{vpe}{nodupes}[true]{\vpe@revert{dupes}{#1}}
+\define@key{vpe}{form}[true]{\csname vpe@form#1\endcsname}
+\define@key{vpe}{noform}[true]{\vpe@revert{form}{#1}}
+\define@key{vpe}{acroform}[true]{\csname vpe@acroform#1\endcsname}
+\define@key{vpe}{noacroform}[true]{\vpe@revert{acroform}{#1}}
+\define@key{vpe}{command}{\def\vpe@command{#1}}
+\define@key{vpe}{system}{\def\vpe@system{#1}}
+\define@key{vpe}{width}{\def\vpe@width{#1}}
+\define@key{vpe}{height}{\def\vpe@height{#1}}
+\define@key{vpe}{depth}{\def\vpe@depth{#1}}
+\define@key{vpe}{color}{\def\vpe@color{#1}}
+\define@key{vpe}{border}{\def\vpe@border{#1}}
+\define@key{vpe}{flag}{\def\vpe@flag{#1}}
+\define@key{vpe}{attr}{\def\vpe@attr{#1}}
+\define@key{vpe}{application}{\def\vpe@application{#1}}
+\define@key{vpe}{parameters}{\def\vpe@parameters{#1}}
+\define@key{vpe}{progname}{\def\vpe@progname{#1}}
+\define@key{vpe}{everyhbox}[true]{\csname vpe@everyhbox#1\endcsname}
+\def\vpesetup{\setkeys{vpe}}
+\def\vpe@command{vpe}
+\def\vpe@width{12}
+\def\vpe@height{12}
+\def\vpe@depth{2}
+\def\vpe@border{0 0 1}
+\def\vpe@color{1 1 0}
+\def\vpe@flag{0}% 8 = not zoomed, 16 = not rotated
+\let\vpe@attr\@empty
+\def\vpe@application{pfe.exe}
+\def\vpe@parameters{-g $d $s}
+\newif\ifvpe@pdftex
+\ifx\eTeXversion\@undefined
+ \def\vpe@progname{latex}
+\else
+ \def\vpe@progname{elatex}
+\fi
+\ifx\pdfoutput\@undefined
+\else
+ \ifx\pdfoutput\relax
+ \else
+ \ifcase\pdfoutput
+ \else
+ \let\vpe@annot\vpe@annotpdftex
+ \vpe@pdftextrue
+ \ifx\eTeXversion\@undefined
+ \def\vpe@progname{pdflatex}%
+ \else
+ \def\vpe@progname{pdfelatex}%
+ \fi
+ \fi
+ \fi
+\fi
+
+%*** option processing
+
+\InputIfFileExists{vpe.cfg}{}{}
+
+\ProcessOptions
+
+%*** help file
+% File for read informations of commands
+% launched by \write18:
+\newread\vpe@read
+\immediate\openout\vpe@read=\jobname.vpe
+\immediate\closeout\vpe@read
+\openin\vpe@read=\jobname.vpe
+
+%*** get system info
+\ifx\vpe@system\@empty
+ \immediate\write18{\vpe@command\space -system \jobname.vpe}
+ \def\vpesystem#1{\gdef\vpe@system{#1}}%
+ \begingroup
+ \endlinechar-1 %
+ \read\vpe@read to \vpe@temp
+ \vpe@temp
+ \endgroup
+ \ifx\vpe@system\@empty
+ \PackageWarningNoLine{vpe}{%
+ Option \string`system\string' is not specified and\MessageBreak
+ the automatic detection failed,\MessageBreak
+ therefore package loading is aborted%
+ }%
+ \closein\vpe@read
+ \let\VPE\relax
+ \expandafter\expandafter\expandafter\endinput
+ \fi
+\fi
+\let\vpesystem\@gobble
+
+\newif\ifvpe@linux
+\def\vpe@temp{linux}
+\ifx\vpe@system\vpe@temp
+ \vpe@linuxtrue
+\else
+ \def\vpe@temp{win}
+ \ifx\vpe@system\vpe@temp
+ \else
+ \PackageWarningNoLine{vpe}{%
+ Unknown value `\vpe@system' of option \string`system\string',%
+ \MessageBreak
+ therfore package loading is aborted%
+ }%
+ \closein\vpe@read
+ \let\VPE\relax
+ \expandafter\expandafter\expandafter\endinput
+ \fi
+\fi
+
+%*** /AcroForm in the catalog for `revert' menu item of AR4.05
+\ifvpe@acroform
+ \ifvpe@pdftex
+ \AtEndDocument{%
+ \@ifundefined{SubmitObject}{%
+ \pdfcatalog{/AcroForm<</Fields[]/NeedAppearances true>>}%
+ }{%
+ % /AcroForm already set by hyperref's pdftex driver
+ }%
+ }%
+ \else
+ \vpe@dvips@pdfmark{%
+ \string{Catalog\string}%
+ <</AcroForm<</Fields[]/NeedAppearances true>>>>%
+ /PUT%
+ }%
+ \fi
+\fi
+
+%*** form variant
+
+% definition without form:
+\def\vpe@insertmark{%
+ \vpe@annot{%
+ /Subtype/Link%
+ \ifx\vpe@border\vpe@borderdefault
+ \else
+ /Border[\vpe@border]%
+ \fi
+ \ifx\vpe@color\vpe@colordefault
+ \else
+ /C[\vpe@color]%
+ \fi
+ \ifnum\vpe@flag=0
+ \else
+ /F \vpe@flag
+ \fi
+ /A<<%
+ /Type/Action%
+ /S/Launch%
+ \ifvpe@linux
+ /F(\vpe@temp\vpe@removeslash\vpe@peekfile.vpe)%
+ \else
+ /Win<<%
+ /F(\vpe@application)%
+ /P(\vpe@temp)%
+ >>%
+ \fi
+ >>%
+ \vpe@attr
+ }%
+}%
+
+\ifvpe@form
+ \ifvpe@pdftex
+
+ \RequirePackage[pdftex]{color}
+ \RequirePackage{pifont}
+
+ \newcount\vpe@count
+ \vpe@count0
+
+ \setbox\@tempboxa=\hbox{%
+ \color{yellow}%
+ \raisebox{-.4\totalheight}{%
+ \ding{56}%
+ }%
+ }
+ \edef\vpe@mark@width{\the\wd\@tempboxa}
+ \edef\vpe@mark@height{\the\ht\@tempboxa}
+ \edef\vpe@mark@depth{\the\dp\@tempboxa}
+ \immediate\pdfxform\@tempboxa
+ \edef\vpe@mark@objN{ \the\pdflastxform\space 0 R}
+ \setbox\@tempboxa=\hbox{%
+ \colorbox{yellow}{%
+ \color{black}%
+ \ding{56}%
+ }%
+ }
+ \immediate\pdfxform\@tempboxa
+ \edef\vpe@mark@objD{ \the\pdflastxform\space 0 R}
+
+ \def\vpe@insertmark{%
+ \global\advance\vpe@count1 %
+ \begingroup
+ \setbox\@tempboxa\hbox{%
+ \normalfont
+ \kern\vpe@mark@width
+ \scriptsize\ttfamily
+ \setlength{\fboxsep}{0.5ex}%
+ \colorbox{yellow}{%
+ \color{black}%
+ \space\vpe@peekfile, \vpe@line
+ }%
+ }%
+ \dimen@\ht\@tempboxa
+ \advance\dimen@-\vpe@mark@height
+ \advance\dimen@-\vpe@mark@depth
+ \edef\vpe@temp{%
+ width\the\wd\@tempboxa
+ height\the\dimen@
+ }%
+ \dimen@\dp\@tempboxa
+ \advance\dimen@\vpe@mark@height
+ \advance\dimen@\vpe@mark@depth
+ \edef\vpe@temp{%
+ \vpe@temp
+ depth\the\dimen@
+ }%
+ \immediate\pdfxform\@tempboxa
+ \pdfannot\vpe@temp{%
+ /Subtype/Widget%
+ /FT/Btn%
+ /Ff 65537% readonly (bit 1) + checkbox button (bit 17)
+ /T(v\the\vpe@count)%
+ /AS/X%
+ /AP<</N<</F \the\pdflastxform\space 0 R>>>>%
+ }%
+ \endgroup
+ \pdfannot width\vpe@mark@width
+ height\vpe@mark@height
+ depth\vpe@mark@depth{%
+ /Subtype/Widget%
+ /FT/Btn%
+ /Ff 65536%
+ /T(m\the\vpe@count)%
+ /H/P%
+ /AP<</N\vpe@mark@objN/D\vpe@mark@objD>>%
+ /AA<<%
+ /E<<%
+ /Type/Action%
+ /S/SetState%
+ /T(v\the\vpe@count)%
+ /AS/F%
+ >>%
+ /X<<%
+ /Type/Action%
+ /S/SetState%
+ /T(v\the\vpe@count)%
+ /AS/X%
+ >>%
+ >>%
+ /A<<%
+ /Type/Action%
+ /S/Launch%
+ \ifvpe@linux
+ /F(\vpe@temp\vpe@removeslash\vpe@peekfile.vpe)%
+ \else
+ /Win<<%
+ /F(\vpe@application)%
+ /P(\vpe@temp)%
+ >>%
+ \fi
+ >>%
+ \vpe@attr
+ }%
+ }%
+ \fi
+\fi
+\let\vpe@formtrue\relax
+\let\vpe@formfalse\relax
+
+%*** src marker
+
+\def\vpe@src{\vpe@special{\the\inputlineno}}
+\def\vpe@src@sphack{\vpe@special@sphack{\the\inputlineno}}
+\def\vpe@srcfirst{\vpe@special1}
+\def\vpe@srclast{\vpe@special\vpe@peeklast}
+
+\let\VPE\vpe@src
+
+\newif\ifvpe@document
+\AtBeginDocument{%
+ \vpe@documenttrue
+ \vpe@src
+}
+
+\def\vpe@special{%
+ \ifcase
+ \ifvpe@ok
+ \ifvpe@document
+ \ifnum\lastpenalty=\z@
+ \ifdim\lastskip=\z@
+ \else 1%
+ \fi
+ \else 1%
+ \fi
+ \else 1%
+ \fi
+ \else 1%
+ \fi
+ 0 %
+ \expandafter\vpe@@special
+ \else
+ \expandafter\@gobble
+ \fi
+}
+\def\vpe@special@sphack{%
+ \ifcase
+ \ifvpe@ok
+ \ifvpe@document
+ \ifhmode
+ \else 1%
+ \fi
+ \else 1%
+ \fi
+ \else 1%
+ \fi
+ 0 %
+ \expandafter\vpe@@special
+ \else
+ \expandafter\@gobble
+ \fi
+}
+\let\vpe@lastspecial\@empty
+\def\vpe@@special#1{%
+ \begingroup
+ \vpe@okfalse % prevent nesting
+ \let\vpe@temp\vpe@lastspecial
+ \xdef\vpe@lastspecial{#1 \vpe@peekfile}%
+ \ifvpe@dupes
+ \vpe@@@special{#1}%
+ \else
+ \ifx\vpe@temp\vpe@lastspecial
+ \else
+ \vpe@@@special{#1}%
+ \fi
+ \fi
+ \endgroup
+}
+\def\vpe@@@special#1{%
+ \count@=#1\relax
+ \ifnum\count@<1 \count@=1 \fi
+ \edef\vpe@line{\the\count@}%
+ \ifvpe@linux
+ \let\vpe@temp\@empty
+ \expandafter\vpe@scan\the\count@\@nil
+ \vpe@debug{SRC: \vpe@peekfile, \vpe@line\space(\vpe@temp)}%
+ \else
+ \let\vpe@temp\vpe@parameters
+ \expandafter\vpe@setline\vpe@temp$d\@nil{\the\count@}%
+ \expandafter\vpe@setfile\vpe@temp$s\@nil\vpe@peekfile
+ \vpe@debug{SRC: \vpe@peekfile, \vpe@line}%
+ \fi
+ \vpe@insertmark
+}
+
+\def\vpe@rule{%
+ width\vpe@width bp height\vpe@height bp depth\vpe@depth bp%
+}
+\def\vpe@borderdefault{0 0 1}
+\def\vpe@colordefault{0 0 0}
+\def\vpe@scan#1#2\@nil{%
+ \count@=#1\relax
+ \ifnum\count@>\ifx\vpe@temp\@empty 5 \else 4 \fi
+ \advance\count@ by -5
+ \def\p{.}%
+ \else
+ \let\p\@empty
+ \fi
+ \@whilenum\count@>0 \do{%
+ \advance\count@ by -1
+ \edef\vpe@temp{\vpe@temp/}%
+ }%
+ \edef\vpe@temp{\vpe@temp\p./}%
+ \ifx\\#2\\%
+ \else
+ \@ReturnAfterFi{%
+ \vpe@scan#2\@nil
+ }%
+ \fi
+}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+
+\def\vpe@removeslash#1{%
+ \if/#1%
+ \else
+ #1%
+ \fi
+}
+
+\def\vpe@setline#1$d#2\@nil#3{%
+ \ifx\limits#2\limits
+ \else
+ \edef\vpe@temp{#1#3\vpe@remline#2\@nil}%
+ \fi
+}
+\def\vpe@remline#1$d\@nil{#1}
+\def\vpe@setfile#1$s#2\@nil#3{%
+ \ifx\limits#2\limits
+ \else
+ \def\vpe@temp{#1#3\vpe@remfile#2\@nil}%
+ \fi
+}
+\def\vpe@remfile#1$s\@nil{#1}
+
+%*** def check
+\def\vpe@redef#1{%
+ \expandafter\ifx\csname vpeorg@#1\endcsname\@empty
+ \begingroup
+ \let\on@line\@empty
+ \PackageInfo{vpe}{src marker in %
+ \expandafter\string\csname #1\endcsname\space
+ disabled%
+ }%
+ \endgroup
+ \expandafter\@gobble
+ \else
+ \expandafter\let
+ \csname vpeorg@#1\expandafter\endcsname
+ \csname #1\endcsname
+ \expandafter\@firstofone
+ \fi
+}
+% #1: active character or special case (eg: ~, \\)
+% #2: string for command names (eg: TILDE, NL)
+\def\vpe@redefspecial#1#2{%
+ \expandafter\ifx\csname vpeorg@#2\endcsname\@empty
+ \begingroup
+ \let\on@line\@empty
+ \PackageInfo{vpe}{src marker in \string#1 disabled}%
+ \endgroup
+ \expandafter\@gobble
+ \else
+ \expandafter\let\csname vpeorg@#2\endcsname#1%
+ \expandafter\@firstofone
+ \fi
+}
+\def\vpe@check#1{%
+ \expandafter\ifx\csname vpeorg@#1\endcsname\@empty
+ \begingroup
+ \let\on@line\@empty
+ \PackageInfo{vpe}{src marker in %
+ \expandafter\string\csname #1\endcsname\space
+ disabled%
+ }%
+ \endgroup
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+}
+
+%*** file name stack
+\newcount\vpe@sp % stack pointer
+\global\vpe@sp=0
+
+\newif\ifvpe@stack
+\vpe@stacktrue
+\AtEndDocument{\global\vpe@stackfalse}
+
+\def\vpe@push#1{%
+ \ifvpe@stack
+ \global\advance\vpe@sp by 1
+ \vpe@debug{PUSH(\the\vpe@sp): #1}%
+ \immediate\write18{%
+ \vpe@command\space
+ -sty
+ -progname=\vpe@progname\space
+ \ifx\vpe@debug\@gobble\else -v \fi
+ #1 %
+ \jobname.vpe%
+ }%
+ \gdef\vpe@file{#1}%
+ \gdef\vpe@last{10000}%
+ \ifeof\vpe@read
+ \vpe@debug{EOF: \jobname.vpe}%
+ \else
+ \begingroup
+ \endlinechar-1 %
+ \read\vpe@read to \vpe@temp
+ \vpe@temp
+ \endgroup
+ \fi
+ \vpe@debug{%
+ LEVEL: \the\vpe@sp, FILE: \vpe@file, LAST: \vpe@last
+ }%
+ \expandafter\xdef\csname vpeF\the\vpe@sp\endcsname{\vpe@file}%
+ \expandafter\xdef\csname vpeL\the\vpe@sp\endcsname{\vpe@last}%
+ \fi
+}
+\def\vpeentry#1#2{%
+ \gdef\vpe@file{#1}%
+ \gdef\vpe@last{#2}%
+}
+\def\vpe@pop{%
+ \ifvpe@stack
+ \global\advance\vpe@sp by -1 %
+ \vpe@debug{POP(\the\vpe@sp)}%
+ \fi
+}
+\def\vpe@peekfile{%
+ \csname vpeF\the\vpe@sp\endcsname
+}
+\def\vpe@peeklast{%
+ \csname vpeL\the\vpe@sp\endcsname
+}
+
+\vpe@push{\jobname}
+
+\AtEndDocument{%
+ \vpe@debug{MAKE SYMBOL LINKS}%
+ \immediate\write18{%
+ \vpe@command\space
+ \ifx\vpe@debug\@gobble\else -v \fi\jobname.pdf%
+ }%
+}
+
+%*** file input
+\def\vpe@doinput#1#2{%
+ \VPE
+ \vpe@push{#2}%
+ \vpe@srcfirst
+ #1{#2}%
+ \vpe@srclast
+ \vpe@pop
+ \VPE
+}
+
+\vpe@redef{input}{%
+ \def\input{\@ifnextchar\bgroup\vpe@input\vpeorg@input}
+ \def\vpe@input{\vpe@doinput\vpeorg@input}
+}
+\vpe@redef{@input}{%
+ \def\@input#1{%
+ \IfFileExists{#1}\@firstofone\@gobble\vpe@doinput
+ \vpeorg@@input{#1}%
+ }%
+}
+
+\vpe@redef{include}{\def\include{\vpe@doinput\vpeorg@include}}
+
+\vpe@redef{newpage}{%
+ \def\newpage{%
+ \VPE
+ \vpeorg@newpage
+ \vpe@emptyeverypar
+ }%
+}
+\vpe@redef{clearpage}{\def\clearpage{\vpeorg@clearpage\VPE}}
+
+%*** everypar
+\def\vpe@everypar{\everypar\expandafter{\the\everypar\VPE}}
+\def\vpe@emptyeverypar{%
+ \edef\vpe@temp{\the\everypar}%
+ \ifx\vpe@temp\@empty
+ \everypar{\VPE}%
+ \fi
+}
+\iffalse
+\vpe@redef{everypar}{%
+ \def\everypar#1#{\vpe@everypar}
+ \def\vpe@everypar#1{%
+ \vpeorg@everypar{#1\VPE}%
+ }%
+}
+\fi
+\vpe@redef{document}{%
+ \def\document{%
+ \global\vpe@stackfalse
+ \vpeorg@document
+ \global\vpe@stacktrue
+ \VPE
+ \vpe@emptyeverypar
+ \ignorespaces
+ }%
+}
+\vpe@redef{@item}{%
+ \def\@item[#1]{%
+ \vpeorg@@item[{#1}]%
+ \VPE
+ \vpe@doubleeverypar
+ \ignorespaces
+ }%
+}
+\iffalse
+\vpe@redef{@verbatim}{%
+ \def\@verbatim{%
+ \vpeorg@@verbatim
+ \vpe@everypar
+ }%
+}
+\fi
+\vpe@check{@doendpe}{%
+ \def\@doendpe{%
+ \@endpetrue
+ \def\par{%
+ \@restorepar
+ \everypar{\VPE}%
+ \par
+ \@endpefalse
+ }%
+ \everypar{%
+ {\setbox\z@\lastbox}%
+ \everypar{\VPE}%
+ \@endpefalse
+ \VPE
+ }%
+ }%
+}
+\vpe@redef{@arrayparboxrestore}{%
+ \def\@arrayparboxrestore{%
+ \vpeorg@@arrayparboxrestore
+ \vpe@everypar
+ }%
+}
+\vpe@redef{@xsect}{%
+ \def\@xsect#1{%
+ \vpeorg@@xsect{#1}%
+ \vpe@doubleeverypar
+ \ignorespaces
+ }%
+}
+\vpe@redef{@afterheading}{%
+ \def\@afterheading{%
+ \vpeorg@@afterheading
+ \vpe@doubleeverypar
+ }%
+}
+\vpe@redef{@setminipage}{%
+ \def\@setminipage{%
+ \vpeorg@@setminipage
+ \vpe@doubleeverypar
+ }%
+}
+\def\vpe@doubleeverypar{%
+ \expandafter\vpe@@doubleeverypar\the\everypar\everypar!!\@nil
+}
+\def\vpe@@doubleeverypar#1\everypar#2#3\@nil{%
+ \def\vpe@temp{#2}%
+ \ifx\vpe@temp\@empty
+ \everypar\expandafter{\the\everypar\vpe@everypar}%
+ \fi
+ \vpe@everypar
+}
+\vpe@redef{@startsection}{%
+ \def\@startsection{%
+ \if@nobreak
+ \let\vpe@orgeverypar\everypar
+ \let\everypar\vpe@tempeverypar
+ \fi
+ \vpeorg@@startsection
+ }%
+}
+\def\vpe@tempeverypar#1{%
+ \let\everypar\vpe@orgeverypar
+ \everypar{#1\VPE}%
+}
+
+\vpe@check{everymath}{\everymath{\VPE}}
+
+\ifvpe@everyhbox
+ \everyhbox\expandafter{\the\everyhbox\VPE}%
+\fi
+
+\vpe@redef{newline}{\def\newline{\VPE\vpeorg@newline}}
+\vpe@redefspecial{\\}{NL}{\def\\{\VPE\vpeorg@NL}}
+\vpe@redef{tabularnewline}{%
+ \def\tabularnewline{\VPE\tabularnewline}
+}
+
+\vpe@redef{mbox}{%
+ \def\mbox{\VPE\vpe@mbox}
+ \long\def\vpe@mbox#1{\vpeorg@mbox{#1\VPE}}
+}
+
+\vpe@redefspecial{~}{TILDE}{\def~{\VPE\vpeorg@TILDE}}
+
+\vpe@redef{ref}{\def\ref{\VPE\vpeorg@ref}}
+\vpe@redef{cite}{\def\cite{\VPE\vpeorg@cite}}
+
+\vpe@redef{item}{\def\item{\VPE\vpeorg@item}}
+\vpe@redef{trivlist}{\def\trivlist{\VPE\vpeorg@trivlist}}
+\vpe@redef{endtrivlist}{\def\endtrivlist{\VPE\vpeorg@endtrivlist}}
+
+\vpe@redef{@bsphack}{\def\@bsphack{\vpeorg@@bsphack\VPE}}
+\vpe@redef{@esphack}{\def\@esphack{\VPE\vpeorg@@esphack}}
+\vpe@redef{@Esphack}{\def\@Esphack{\VPE\vpeorg@@Esphack}}
+\vpe@redef{@xaddvskip}{\def\@xaddvskip{\vpeorg@@xaddvskip\VPE}}
+
+\vpe@redef{@tabularcr}{\def\@tabularcr{\VPE\vpeorg@@tabularcr}}
+\vpe@redef{@arraycr}{\def\@arraycr{\VPE\vpeorg@@arraycr}}
+
+\vpe@redef{hrule}{\def\hrule{\VPE\vpeorg@hrule}}
+\vpe@redef{vrule}{\def\vrule{\VPE\vpeorg@vrule}}
+\endinput