summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/oberdiek
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-08-27 22:38:54 +0000
committerKarl Berry <karl@freefriends.org>2006-08-27 22:38:54 +0000
commit2607d53137ede06e9780342b225218743e100bb4 (patch)
treec6c88c805dd21a5bbb6ad6f26d3d53c517f4b866 /Master/texmf-dist/source/latex/oberdiek
parentfb0d58de45c0fc32bab09a839c186de46f75628e (diff)
oberdiek update from tds zip (28aug06)
git-svn-id: svn://tug.org/texlive/trunk@2054 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/oberdiek')
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/aliascnt.dtx475
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/alphalph.dtx805
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/alphalph.ins72
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/attachfile2.dtx2108
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/auxhook.dtx475
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/bmpsize.dtx3790
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/chemarr.dtx409
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/classlist.dtx499
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/colonequals.dtx525
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/dvipscol.dtx406
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/embedfile.dtx857
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/engord.dtx677
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx488
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/grffile.dtx640
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/holtxdoc.dtx511
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/hypbmsec.dtx382
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/hypbmsec.ins76
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/hypcap.dtx397
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/hypcap.ins79
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/hypdestopt.dtx816
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/hypdoc.dtx941
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/ifdraft.dtx429
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/ifpdf.dtx569
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/ifvtex.dtx491
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/inputenx.dtx8587
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/kvoptions.dtx86
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx838
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/makerobust.dtx398
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/oberdiek.ins89
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/oberdiek.tex645
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/pagesel.dtx535
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/pagesel.ins80
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/pdfcolmk.dtx859
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/pdfcrypt.dtx1042
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/pdflscape.dtx668
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/picture.dtx626
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/pmboxdraw.dtx1808
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/readme-ctan.txt43
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/refcount.dtx8
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/setouterhbox.dtx821
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/settobox.dtx636
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/tabularht.dtx1083
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/tabularkv.dtx389
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/telprint.dtx651
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/twoopt.dtx379
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/twoopt.ins72
-rw-r--r--Master/texmf-dist/source/latex/oberdiek/zref.dtx3261
47 files changed, 39474 insertions, 1047 deletions
diff --git a/Master/texmf-dist/source/latex/oberdiek/aliascnt.dtx b/Master/texmf-dist/source/latex/oberdiek/aliascnt.dtx
new file mode 100644
index 00000000000..aceb4c27e89
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/aliascnt.dtx
@@ -0,0 +1,475 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file aliascnt.dtx
+% and the derived files
+% aliascnt.sty, aliascnt.pdf, aliascnt.ins, aliascnt.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/aliascnt.dtx
+% CTAN:macros/latex/contrib/oberdiek/aliascnt.pdf
+%
+% Unpacking:
+% (a) If aliascnt.ins is present:
+% tex aliascnt.ins
+% (b) Without aliascnt.ins:
+% tex aliascnt.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{aliascnt.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If aliascnt.drv is present:
+% latex aliascnt.drv
+% (b) Without aliascnt.drv:
+% latex aliascnt.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex aliascnt.dtx
+% makeindex -s gind.ist aliascnt.idx
+% pdflatex aliascnt.dtx
+% makeindex -s gind.ist aliascnt.idx
+% pdflatex aliascnt.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/aliascnt.sty
+% TDS:doc/latex/oberdiek/aliascnt.pdf
+% TDS:source/latex/oberdiek/aliascnt.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: aliascnt 2006/08/16 v1.1 Alias counter (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file aliascnt.dtx
+and the derived files
+ aliascnt.sty, aliascnt.pdf, aliascnt.ins, aliascnt.drv.
+
+\endpreamble
+
+\generate{%
+ \file{aliascnt.ins}{\from{aliascnt.dtx}{install}}%
+ \file{aliascnt.drv}{\from{aliascnt.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{aliascnt.sty}{\from{aliascnt.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* aliascnt.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `aliascnt.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{aliascnt.drv}%
+ [2006/08/16 v1.1 Alias counter (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{aliascnt.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{75}
+%
+% \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 \~}
+%
+% \GetFileInfo{aliascnt.drv}
+%
+% \title{The \xpackage{aliascnt} package}
+% \date{2006/08/16 v1.1}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{aliascnt} introduces \emph{alias counters} that
+% share the same counter register and clear list.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{User interface}
+%
+% \subsection{Introduction}
+%
+% There are features that rely on the name of counters. For
+% example, \xpackage{hyperref}'s \cs{autoref} indirectly uses
+% the counter name to determine which label text it puts in front
+% of the reference number (\cite{hyperref}).
+% In some circumstances this fail: several theorem environments
+% are defined by \cs{newtheorem} that share the same counter.
+%
+% \subsection{Syntax}
+%
+% Macro names in user land contain the package name
+% \texttt{aliascnt} in order to prevent name clashes.
+%
+% \newenvironment{desc}{^^A
+% \list{}{^^A
+% \setlength{\labelwidth}{0pt}^^A
+% \setlength{\itemindent}{-.5\marginparwidth}^^A
+% \setlength{\leftmargin}{0pt}^^A
+% \let\makelabel\desclabel
+% }^^A
+% }{^^A
+% \endlist
+% }
+% \newcommand*{\desclabel}[1]{^^A
+% \hspace{\labelsep}^^A
+% \normalfont
+% #1^^A
+% }
+% \newcommand*{\itemcs}[2]{^^A
+% \item[^^A
+% \expandafter\SpecialUsageIndex\csname #1\endcsname
+% {\cs{#1}#2}^^A
+% ]\mbox{}\\*[.5ex]^^A
+% \ignorespaces
+% }
+% \begin{desc}
+% \itemcs{newaliascnt}{\marg{ALIASCNT}\marg{BASECNT}}
+% An alias counter ALIASCNT is created that does not allocate
+% a new \TeX\ counter register. It shares the count register and
+% the clear list with counter BASECNT. If the value of either
+% the two registers is changed, the changes affects both.
+% \itemcs{aliascntresetthe}{\marg{ALIASCNT}}
+% This fixes a problem with \cs{newtheorem} if it
+% is fooled by an alias counter with the same name:
+% \begin{quote}
+%\begin{verbatim}
+%\newtheorem{foo}{Foo}% counter "foo"
+%\newaliascnt{bar}{foo}% alias counter "bar"
+%\newtheorem{bar}[bar]{Bar}
+%\aliascntresetthe{bar}
+%\end{verbatim}
+% \end{quote}
+% \end{desc}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Identification}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{aliascnt}%
+ [2006/08/16 v1.1 Alias counter (HO)]
+% \end{macrocode}
+%
+% \subsection{Create new alias counter}
+%
+% \begin{macro}{\newaliascnt}
+% A new alias counter is set up by \cs{newaliascnt}.
+% The following properties are added for the new counter CNT:
+% \begin{description}
+% \item[\mdseries\cs{theH}\meta{CNT}:] Compatibility for \xpackage{hyperref}
+% \item[\mdseries\cs{AC@cnt@}\meta{CNT}:] Name of the referenced counter
+% in the definition.
+% \end{description}
+% \begin{macrocode}
+\newcommand*{\newaliascnt}[2]{%
+ \begingroup
+ \def\AC@glet##1{%
+ \global\expandafter\let\csname##1#1\expandafter\endcsname
+ \csname##1#2\endcsname
+ }%
+ \@ifundefined{c@#2}{%
+ \@nocounterr{#2}%
+ }{%
+ \@ifdefinable{c@#1}{%
+ \AC@glet{c@}%
+ \AC@glet{the}%
+ \AC@glet{theH}%
+ \AC@glet{p@}%
+ \expandafter\gdef\csname AC@cnt@#1\endcsname{#2}%
+ \expandafter\gdef\csname cl@#1\expandafter\endcsname
+ \expandafter{\csname cl@#2\endcsname}%
+ }%
+ }%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\aliascntresetthe}
+% The \cs{the}\meta{CNT} macro is restored using the
+% main counter.
+% \begin{macrocode}
+\newcommand*{\aliascntresetthe}[1]{%
+ \@ifundefined{AC@#1}{%
+ \PackageError{aliascnt}{%
+ `#1' is not an alias counter%
+ }\@ehc
+ }{%
+ \expandafter\let\csname the#1\expandafter\endcsname
+ \csname the\csname AC@cnt@#1\endcsname\endcsname
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Counter clear list}
+%
+% The alias counters share the same register and clear list.
+% Therefore we must ensure that manipulations to the clear list
+% are done with the clear list macro of a real counter.
+% \begin{macro}{\AC@findrootcnt}
+% \cs{AC@findrootcnt} walks throught the aliasing relations
+% to find the base counter.
+% \begin{macrocode}
+\newcommand*{\AC@findrootcnt}[1]{%
+ \@ifundefined{AC@#1}{%
+ #1%
+ }{%
+ \expandafter\AC@findrootcnt\csname AC@cnt@#1\endcsname
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Clear lists are manipulated by \cs{@addtoreset} and
+% \cs{@removefromreset}. The latter one is provided by
+% the \xpackage{remreset} package (\cite{remreset}).
+%
+% \begin{macro}{\AC@patch}
+% The same patch principle is applicable to both
+% \cs{@addtoreset} and \cs{@removefromreset}.
+% \begin{macrocode}
+\def\AC@patch#1{%
+ \expandafter\let\csname AC@org@#1reset\expandafter\endcsname
+ \csname @#1reset\endcsname
+ \expandafter\def\csname @#1reset\endcsname##1##2{%
+ \csname AC@org@#1reset\endcsname{##1}{\AC@findrootcnt{##2}}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% If \xpackage{remreset} is not loaded we cannot delay
+% the patch to \cs{AtBeginDocumen}, because \cs{@removefromreset}
+% can be called in between. Therefore we force the loading of
+% the package.
+% \begin{macrocode}
+\RequirePackage{remreset}
+\AC@patch{addto}
+\AC@patch{removefrom}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/aliascnt.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/aliascnt.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex aliascnt.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% aliascnt.sty & tex/latex/oberdiek/aliascnt.sty\\
+% aliascnt.pdf & doc/latex/oberdiek/aliascnt.pdf\\
+% aliascnt.dtx & source/latex/oberdiek/aliascnt.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk aliascnt.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{aliascnt.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex aliascnt.dtx
+%makeindex -s gind.ist aliascnt.idx
+%pdflatex aliascnt.dtx
+%makeindex -s gind.ist aliascnt.idx
+%pdflatex aliascnt.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \section{Acknowledment}
+%
+% \begin{description}
+% \item[Ulrich Schwarz:] The package is based on his draft for
+% ``Die \TeX nische Kom\"odie'', see \cite{schwarz}.
+% \end{description}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{schwarz}
+% Ulrich Schwarz:
+% \textit{Was hinten herauskommt z\"ahlt: Counter Aliasing in \LaTeX},
+% \textit{Die \TeX nische Kom\"odie}, 3/2006, pages 8--14, Juli 2006.
+%
+% \bibitem{remreset}
+% David Carlisle: \textit{The \xpackage{remreset} package};
+% 1997/09/28;
+% \CTAN{macros/latex/contrib/carlisle/remreset.sty}.
+%
+% \bibitem{hyperref}
+% Sebastian Rahtz, Heiko Oberdiek:
+% \textit{The \xpackage{hyperref} package};
+% 2006/08/16 v6.75c;
+% \CTAN{macros/latex/contrib/hyperref/}.
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2006/02/20 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \begin{Version}{2006/08/16 v1.1}
+% \item
+% Update of bibliography.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/alphalph.dtx b/Master/texmf-dist/source/latex/oberdiek/alphalph.dtx
index 8e6b906b92b..5d8b86d3719 100644
--- a/Master/texmf-dist/source/latex/oberdiek/alphalph.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/alphalph.dtx
@@ -1,100 +1,187 @@
% \iffalse meta-comment
%
-% alphalph.dtx
-%
-% 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>.
-%
-% This is the desperate try to use only one identification string
-% with the verion info:
-%<*dtx>
- \ProvidesFile{alphalph.dtx}
-%</dtx>
-%<package>\ifx\ProvidesPackage\UnDeFiNeD
-%<package>\begingroup\def\x#1#2#3[#4]#5{\endgroup\csname fi\endcsname
-%<package>\immediate\write-1{Package: #3 #4 }}\x
-%<package>\else
-%<package>\ProvidesPackage{alphalph}%
-%<driver>\ProvidesFile{alphalph.drv}
-% \fi
-% \ProvidesFile{alphalph.dtx}
- [1999/04/13 v1.1 Converting numbers to letters (HO)]
-%
-% \iffalse
-%<package>\fi
-% \fi
-% \GetFileInfo{alphalph.dtx}
-%
-% \CheckSum{268}
-%
-%% \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 \~}
-%%
-% \iffalse
+% Copyright (C) 1999, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file alphalph.dtx
+% and the derived files
+% alphalph.sty, alphalph.pdf, alphalph.ins, alphalph.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/alphalph.dtx
+% CTAN:macros/latex/contrib/oberdiek/alphalph.pdf
+%
+% Unpacking:
+% (a) If alphalph.ins is present:
+% tex alphalph.ins
+% (b) Without alphalph.ins:
+% tex alphalph.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{alphalph.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If alphalph.drv is present:
+% latex alphalph.drv
+% (b) Without alphalph.drv:
+% latex alphalph.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex alphalph.dtx
+% makeindex -s gind.ist alphalph.idx
+% pdflatex alphalph.dtx
+% makeindex -s gind.ist alphalph.idx
+% pdflatex alphalph.dtx
+%
+% Installation:
+% TDS:tex/generic/oberdiek/alphalph.sty
+% TDS:doc/latex/oberdiek/alphalph.pdf
+% TDS:source/latex/oberdiek/alphalph.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: alphalph 2006/05/30 v1.4 Converting numbers to letters (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 1999, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file alphalph.dtx
+and the derived files
+ alphalph.sty, alphalph.pdf, alphalph.ins, alphalph.drv.
+
+\endpreamble
+
+\generate{%
+ \file{alphalph.ins}{\from{alphalph.dtx}{install}}%
+ \file{alphalph.drv}{\from{alphalph.dtx}{driver}}%
+ \usedir{tex/generic/oberdiek}%
+ \file{alphalph.sty}{\from{alphalph.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* alphalph.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `alphalph.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{alphalph.drv}%
+ [2006/05/30 v1.4 Converting numbers to letters (HO)]
\documentclass{ltxdoc}
-\usepackage{holtxdoc,alphalph}
+\usepackage{holtxdoc}
+\usepackage{alphalph}
\begin{document}
- \DocInput{alphalph.dtx}
+ \DocInput{alphalph.dtx}
\end{document}
%</driver>
% \fi
%
-% ^^A\DoNotIndex{\ifnum,\ifx,\ifcase}
-% \DoNotIndex{\or,\else,\fi,\csname,\endcsname}
-% \DoNotIndex{\def,\edef,\long,\begingroup,\endgroup}
-% \DoNotIndex{\@,\\}
-% \DoNotIndex{\the,\relax,\expandafter}
-%
-% \newenvironment{param}{^^A
-% \newcommand{\entry}[1]{\meta{\###1}:&}^^A
-% \begin{tabular}[t]{@{}l@{ }l@{}}^^A
-% }{^^A
-% \end{tabular}^^A
-% }
+% \CheckSum{393}
+%
+% \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 \~}
+%
+% \GetFileInfo{alphalph.drv}
+%
+% \title{The \xpackage{alphalph} package}
+% \date{2006/05/30 v1.4}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
%
-% \SetupTitle{number,count,alph,TeX}
% \maketitle
%
% \begin{abstract}
-% The package provides the new expandable commands \cmd{\alphalph}
-% and \cmd{\AlphAlph}.
-% They are like \cmd{\number}, but the expansion consists of
-% lowercase and uppercase letters respectively.
+% The package provides the new expandable commands \cs{alphalph}
+% and \cs{AlphAlph}. They are like \cs{number}, but the expansion
+% consists of lowercase and uppercase letters respectively.
% \end{abstract}
%
% \tableofcontents
%
+% \newenvironment{param}{^^A
+% \newcommand{\entry}[1]{\meta{\###1}:&}^^A
+% \begin{tabular}[t]{@{}l@{ }l@{}}^^A
+% }{^^A
+% \end{tabular}^^A
+% }
+%
% \section{Usage}
-% The package \Package{alphalph} can used with both plain\TeX\
+% The package \Package{alphalph} can be used with both \plainTeX\
% and \LaTeX:
% \begin{description}
-% \item[plain\TeX:] |\input alphalph.sty|
+% \item[\plainTeX:] |\input alphalph.sty|
% \item[\LaTeXe:] |\usepackage{alphalph}|\\
% There aren't any options.
% \end{description}
@@ -141,27 +228,84 @@
% \end{tabular}
% \end{center}
%
-% \section{Installation}
-% \InstallPackage
-% Or for use with TeX:
-% \begin{quote}
-% \Verb{texmf/tex/generic/misc/alphalph.sty}
-% \end{quote}
-% \newcommand*{\ExtraDocumentation}{%
-% For generating the documentation the \eTeX-extension is recommended,
-% because it works faster with \Package{alphalph}.
+% \subsubsection{New commands like \cs{alphalph}}
+% \begin{description}
+% \item[\cmd{\newalphalph}:]\DescribeMacro{\newalphalph}
+% This macro defines a new command that acts like \cs{alphalph}.
+% The use of \eTeX is required.
+% The macro has three arguments:
+% \begin{itemize}
+% \item[\texttt{\#1}:] The command to be defined.
+% \item[\texttt{\#2}:] A macro that converts a positive number
+% to a symbol.
+% \item[\texttt{\#3}:] The number of available symbols.
+% \end{itemize}
+% \end{description}
+%
+% Example:
+%\begin{quote}
+%\begin{verbatim}
+%\newcommand*{\myvocals}[1]{%
+% \ifcase#1\or A\or E\or I\or O\or U\fi
+%}
+%\newalphalph{\vocalsvocals}{\myvocals}{5}
+%\end{verbatim}
+%\end{quote}
+%
+% \StopEventually{
% }
-% \InstallDocumentation
-%
-% \StopEventually{}
%
% \section{Implementation}
% \subsection{Begin\texorpdfstring{ of package}{}}
% \begin{macrocode}
%<*package>
% \end{macrocode}
-% The package identification is done at the top of the |.dtx| file
-% in order to use only one identification string.
+% Reload check, especially if the package is not used with \LaTeX.
+% \begin{macrocode}
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@alphalph.sty\endcsname
+ \ifcase 0%
+ \ifx\x\relax % plain
+ \else
+ \ifx\x\empty % LaTeX
+ \else
+ 1%
+ \fi
+ \fi
+ \else
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
+ \fi
+ \x{alphalph}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+% \end{macrocode}
+% Package identification:
+% \begin{macrocode}
+\begingroup
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@alphalph.sty\endcsname
+\ProvidesPackage{alphalph}%
+ [2006/05/30 v1.4 Converting numbers to letters (HO)]
+% \end{macrocode}
%
% For unique command names this package uses |aa@| as prefix
% for internal command names. Because we need |@| as a letter
@@ -248,7 +392,7 @@
% methods: a fast and simple one that uses the \eTeX\ extension
% and a method that is restricted to the standard \TeX\ means.
%
-% Now we distinguish between \TeX\ and \eTeX by checking
+% Now we distinguish between \TeX\ and \eTeX\ by checking
% whether \cmd{\numexpr} is defined or isn't.
% Because the \TeX\ primitive \cmd{\csname} defines an
% undefined command to be \cmd{\relax}, \cmd{\csname}
@@ -263,14 +407,14 @@
% \cmd{\aa@make} catches the cases, if the number is zero or negative.
% Then it expands to nothing like \cmd{\romannumeral}.
% \begin{macrocode}
-\def\aa@make#1#2{%
- \ifnum#1<1
- \else
- \@ReturnAfterFi{%
- \aa@process1;#1;1..#2%
- }%
- \fi
-}
+ \def\aa@make#1#2{%
+ \ifnum#1<1
+ \else
+ \@ReturnAfterFi{%
+ \aa@process1;#1;1..#2%
+ }%
+ \fi
+ }
% \end{macrocode}
% \end{macro}
%
@@ -312,15 +456,15 @@
% Now \cmd{\aa@alphinc} makes its job and returns with its
% argument |;#2;|. At last the first character |;| finishes \cmd{\number}.
% \begin{macrocode}
-\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@process#1;#2;{%
+ \ifnum#1=#2
+ \expandafter\aa@getresult
+ \else
+ \@ReturnAfterFi{%
+ \expandafter\aa@process\number\aa@inc{#1}\aa@alphinc{;#2;}%
+ }%
+ \fi
+ }
% \end{macrocode}
% \end{macro}
%
@@ -342,9 +486,9 @@
% command |#2|. Then it
% calls \cmd{\aa@@getresult} with its arguments.
% \begin{macrocode}
-\def\aa@getresult#1..#2{%
- \aa@@getresult!#2#1..%
-}
+ \def\aa@getresult#1..#2{%
+ \aa@@getresult!#2#1..%
+ }
% \end{macrocode}
% \end{macro}
%
@@ -357,19 +501,19 @@
% If the digit |#3| is empty, the end of the digit form is reached
% and the process stops and the ready letter number is output.
% \begin{macrocode}
-\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@@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
+ }
% \end{macrocode}
% \end{macro}
%
@@ -383,20 +527,20 @@
% after |9| is neccessary.)
% \begin{macrocode}
% \aa@inc adds one to its argument #1.
-\def\aa@inc#1{%
- \ifnum#1<9
- \aa@nextdigit{#1}%
- \else
- \aa@reverse#1!!%
- \fi
-}
+ \def\aa@inc#1{%
+ \ifnum#1<9
+ \aa@nextdigit{#1}%
+ \else
+ \aa@reverse#1!!%
+ \fi
+ }
% \end{macrocode}
% \end{macro}
% \begin{macro}{\aa@nextdigit}
% \cmd{\aa@nextdigit} increments the digit |#1|. The result
% is a digit again. \cmd{\aa@addone} works off the case ``9+1''.
% \begin{macrocode}
-\def\aa@nextdigit#1{\ifcase#1 1\or2\or3\or4\or5\or6\or7\or8\or9\fi}
+ \def\aa@nextdigit#1{\ifcase#1 1\or2\or3\or4\or5\or6\or7\or8\or9\fi}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\aa@reverse}
@@ -406,15 +550,15 @@
% reverses the order of the digits and calls \cmd{\aa@addone},
% if it is ready.
% \begin{macrocode}
-\def\aa@reverse#1#2!#3!{%
- \ifx\\#2\\%
- \aa@addone#1#3!!%
- \else
- \@ReturnAfterFi{%
- \aa@reverse#2!#1#3!%
- }%
- \fi
-}
+ \def\aa@reverse#1#2!#3!{%
+ \ifx\\#2\\%
+ \aa@addone#1#3!!%
+ \else
+ \@ReturnAfterFi{%
+ \aa@reverse#2!#1#3!%
+ }%
+ \fi
+ }
% \end{macrocode}
% \end{macro}
% \begin{macro}{\aa@addone}
@@ -424,21 +568,21 @@
% Already incremented digits are stored in |#3| in reversed order
% to take some work of \cmd{\aa@lastreverse}.
% \begin{macrocode}
-\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@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
+ }
% \end{macrocode}
% \end{macro}
% \begin{macro}{\aa@lastreverse}
@@ -446,15 +590,15 @@
% perform the addition in \cmd{\aa@addone}. Now we have to return
% to the original order that is done by \cmd{\aa@lastreverse}.
% \begin{macrocode}
-\def\aa@lastreverse#1#2!#3!{%
- \ifx\\#2\\%
- #1#3%
- \else
- \@ReturnAfterFi{%
- \aa@lastreverse#2!#1#3!%
- }%
- \fi
-}
+ \def\aa@lastreverse#1#2!#3!{%
+ \ifx\\#2\\%
+ #1#3%
+ \else
+ \@ReturnAfterFi{%
+ \aa@lastreverse#2!#1#3!%
+ }%
+ \fi
+ }
% \end{macrocode}
% \end{macro}
%
@@ -468,26 +612,26 @@
% |#2| contains the next digit in the range of 1 until 26.
% An empty |#2| marks the end of the number.
% \begin{macrocode}
-\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@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
+ }
% \end{macrocode}
% \end{macro}
% \begin{macro}{\aa@alphinclast}
@@ -495,7 +639,16 @@
% several tokens (e.g. |;100;|), we cannot jump over it via
% \cmd{\expandafter} in \cmd{\aa@alphinc}.
% \begin{macrocode}
-\def\aa@alphinclast#1#2{#2#1.}
+ \def\aa@alphinclast#1#2{#2#1.}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newalphalph}
+% \begin{macrocode}
+ \newcommand*{\newalphalph}[3]{%
+ \PackageError{alphalph}{%
+ \string\newalphalph\space requires e-TeX%
+ }\@ehc
% \end{macrocode}
% \end{macro}
%
@@ -509,14 +662,14 @@
% \cmd{\aa@make} catches the cases, if the number is zero or negative.
% Then it expands to nothing like \cmd{\romannumeral}.
% \begin{macrocode}
-\def\aa@make#1#2{%
- \ifnum#1<1
- \else
- \@ReturnAfterFi{%
- \aa@eprocess#1;#2%
- }%
- \fi
-}
+ \def\aa@make#1#2{%
+ \ifnum#1<1 %
+ \else
+ \@ReturnAfterFi{%
+ \aa@eprocess#1;#2%
+ }%
+ \fi
+ }%
% \end{macrocode}
% \end{macro}
%
@@ -531,20 +684,92 @@
% The only feature of \eTeX\ we use the new primitive \cmd{\numexpr}.
% It provides expandible mathematical calculations.
% \begin{macrocode}
-\def\aa@eprocess#1;#2{%
- \ifnum#1<27
- \@ReturnAfterElseFi{%
- #2{#1}%
- }%
- \else
- \@ReturnAfterFi{%
- \expandafter\aa@eprocess\number\numexpr(#1-14)/26%
+ \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
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Generic version}
+%
+% \begin{macro}{\aa@gen@callmake}
+% See macro \cs{aa@callmake}. Argument |#3| holds the
+% number of available symbols.
+% \begin{macrocode}
+ \def\aa@gen@callmake#1#2#3{%
+ \expandafter\aa@gen@make\expandafter{\number#3}#1{#2}%
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\aa@gen@make}
+% See macro \cs{aa@make}. Argument |#3| holds the number of
+% available symbols.
+% \begin{macrocode}
+ \def\aa@gen@make#1#2#3{%
+ \ifnum#1<1 %
+ \else
+ \@ReturnAfterFi{%
+ \aa@gen@eprocess{#3}#1;#2%
+ }%
+ \fi
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\aa@gen@eprocess}
+% See macro \cs{aa@eprocess}. Argument |#1| holds the number of
+% available symbols.
+% \begin{macrocode}
+ \def\aa@gen@eprocess#1#2;#3{%
+ \ifnum#2>#1 %
+ \@ReturnAfterElseFi{%
+ \expandafter\aa@gen@eprocess\expandafter{%
+ \number#1\expandafter
+ }%
+ \number\numexpr(#2-(\aa@half{#1}+1))/#1%
\expandafter\expandafter\expandafter;%
- \expandafter\expandafter\expandafter#2%
- #2{\numexpr#1-((#1-14)/26)*26}%
+ \expandafter\expandafter\expandafter#3%
+ #3{\numexpr#2-((#2-(\aa@half{#1}+1))/#1)*#1\relax}%
+ }%
+ \else
+ \@ReturnAfterFi{%
+ #3{#2}%
+ }%
+ \fi
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\aa@half}
+% Macro \cs{aa@half} implements integer division by two
+% without rounding.
+% \begin{macrocode}
+ \def\aa@half#1{%
+ \number\dimexpr.5\dimexpr #1sp\relax\relax
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\newalphalph}
+% New macros are defined by \cs{newalphalph} that act like
+% \cs{alphalph}. The macro to be defined is |#1|. Argument |#2|
+% contains the macro that converts a number to a symbol and
+% argument |#3| holds the number of available symbols.
+% \begin{macrocode}
+ \newcommand*{\newalphalph}[3]{%
+ \newcommand*{#1}{}%
+ \edef#1{%
+ \noexpand\aa@gen@callmake\noexpand#2{\number\numexpr#3}%
}%
- \fi
-}
+ }%
% \end{macrocode}
% \end{macro}
%
@@ -561,34 +786,146 @@
% \begin{macrocode}
%</package>
% \end{macrocode}
+% \section{Installation}
%
-% \StartHistory
-% \HistVersion{1999/03/19 v0.1}
-% \begin{itemize}
-% \item The first version was built as a response to a
-% \URL{question}^^A
-% {http://www.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=455791936}^^A
-% of \Email[Will Douglas]{william.douglas@wolfson.ox.ac.uk}
-% and the
-% \URL{request}^^A
-% {http://www.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=456358639}^^A
-% of \Email[Donald Arsenau]{asnd@reg.triumf.ca},
-% published in the newsgroup
-% \href{news:comp.text.tex}{comp.text.tex}:
-% \URL{``Re: alph counters \textgreater\ 26''}^^A
-% {http://www.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=456485421}
-% \item Copyright: LPPL (\CTAN{macros/latex/base/lppl.txt})
-% \end{itemize}
-% \HistVersion{1999/04/12 v1.0}
-% \begin{itemize}
-% \item Documentation added in dtx format.
-% \item \eTeX\ support added.
-% \end{itemize}
-% \HistVersion{1999/04/13 v1.1}
-% \begin{itemize}
-% \item Minor documentation change.
-% \item First CTAN release.
-% \end{itemize}
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/alphalph.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/alphalph.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex alphalph.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% alphalph.sty & tex/generic/oberdiek/alphalph.sty\\
+% alphalph.pdf & doc/latex/oberdiek/alphalph.pdf\\
+% alphalph.dtx & source/latex/oberdiek/alphalph.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk alphalph.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{alphalph.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex alphalph.dtx
+%makeindex -s gind.ist alphalph.idx
+%pdflatex alphalph.dtx
+%makeindex -s gind.ist alphalph.idx
+%pdflatex alphalph.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{1999/03/19 v0.1}
+% \item
+% The first version was built as a response to a
+% \URL{question}^^A
+% {http://www.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=455791936}^^A
+% of \NameEmail{Will Douglas}{william.douglas@wolfson.ox.ac.uk}
+% and the
+% \URL{request}^^A
+% {http://www.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=456358639}^^A
+% of \NameEmail{Donald Arsenau}{asnd@reg.triumf.ca},
+% published in the newsgroup
+% \href{news:comp.text.tex}{comp.text.tex}:
+% \URL{``Re: alph counters \textgreater\ 26''}^^A
+% {http://www.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=456485421}
+% \item
+% Copyright: LPPL (\CTAN{macros/latex/base/lppl.txt})
+% \end{Version}
+% \begin{Version}{1999/04/12 v1.0}
+% \item
+% Documentation added in dtx format.
+% \item
+% \eTeX\ support added.
+% \end{Version}
+% \begin{Version}{1999/04/13 v1.1}
+% \item
+% Minor documentation change.
+% \item
+% First CTAN release.
+% \end{Version}
+% \begin{Version}{1999/06/26 v1.2}
+% \item
+% First generic code about \cmd{\ProvidesPackage} improved.
+% \item
+% Documentation: Installation part revised.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.3}
+% \item
+% Reload check (for \plainTeX)
+% \item
+% New DTX framework.
+% \item
+% LPPL 1.3
+% \end{Version}
+% \begin{Version}{2006/05/30 v1.4}
+% \item
+% \cs{newalphalph} added.
+% \end{Version}
+% \end{History}
%
% \PrintIndex
%
diff --git a/Master/texmf-dist/source/latex/oberdiek/alphalph.ins b/Master/texmf-dist/source/latex/oberdiek/alphalph.ins
deleted file mode 100644
index 33bd11f99f2..00000000000
--- a/Master/texmf-dist/source/latex/oberdiek/alphalph.ins
+++ /dev/null
@@ -1,72 +0,0 @@
-% alphalph.ins
-%
-% 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>.
-%
-
-\def\batchfile{alphalph.ins}
-\input docstrip.tex
-{\ifx\generate\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.3c or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old `docstrip.tex'.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\keepsilent
-
-\preamble
-
-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>.
-
-\endpreamble
-
-\generateFile{alphalph.sty}{f}{\from{alphalph.dtx}{package}}
-%\generateFile{alphalph.drv}{f}{\from{alphalph.dtx}{driver}}
-
-\Msg{***********************************************************}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space alphalph.sty}
-\Msg{*}
-\Msg{* To produce the documentation run the file `alphalph.dtx'}
-\Msg{* through LaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-
-\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/attachfile2.dtx b/Master/texmf-dist/source/latex/oberdiek/attachfile2.dtx
new file mode 100644
index 00000000000..89ecfa1f99e
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/attachfile2.dtx
@@ -0,0 +1,2108 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file attachfile2.dtx
+% and the derived files
+% attachfile2.sty, attachfile2.pdf, attachfile2.ins, attachfile2.drv,
+% atfidvips.def, atfipdftex.def, pdfatfi.pl.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/attachfile2.dtx
+% CTAN:macros/latex/contrib/oberdiek/attachfile2.pdf
+%
+% Unpacking:
+% (a) If attachfile2.ins is present:
+% tex attachfile2.ins
+% (b) Without attachfile2.ins:
+% tex attachfile2.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{attachfile2.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If attachfile2.drv is present:
+% latex attachfile2.drv
+% (b) Without attachfile2.drv:
+% latex attachfile2.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex attachfile2.dtx
+% makeindex -s gind.ist attachfile2.idx
+% pdflatex attachfile2.dtx
+% makeindex -s gind.ist attachfile2.idx
+% pdflatex attachfile2.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/attachfile2.sty
+% TDS:tex/latex/oberdiek/atfidvips.def
+% TDS:tex/latex/oberdiek/atfipdftex.def
+% TDS:doc/latex/oberdiek/attachfile2.pdf
+% TDS:source/latex/oberdiek/attachfile2.dtx
+% TDS:scripts/oberdiek/pdfatfi.pl
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: attachfile2 2006/08/16 v2.2 attach files into PDF (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file attachfile2.dtx
+and the derived files
+ attachfile2.sty, attachfile2.pdf, attachfile2.ins, attachfile2.drv,
+ atfidvips.def, atfipdftex.def, pdfatfi.pl.
+
+\endpreamble
+
+\generate{%
+ \file{attachfile2.ins}{\from{attachfile2.dtx}{install}}%
+ \file{attachfile2.drv}{\from{attachfile2.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{attachfile2.sty}{\from{attachfile2.dtx}{package}}%
+ \file{atfidvips.def}{\from{attachfile2.dtx}{dvips}}%
+ \file{atfipdftex.def}{\from{attachfile2.dtx}{pdftex}}%
+ \usedir{scripts/oberdiek}%
+ \nopreamble
+ \nopostamble
+ \csname execfiletrue\endcsname
+ \file{pdfatfi.pl}{\from{attachfile2.dtx}{pdfatfi}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* attachfile2.sty, atfidvips.def, atfipdftex.def}
+\Msg{*}
+\Msg{* To produce the documentation run the file `attachfile2.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{attachfile2.drv}%
+ [2006/08/16 v2.2 attach files into PDF (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\AtBeginDocument{%
+ \csname @ifpackageloaded\endcsname{dtx-attach}{%
+ \embedfile[
+ stringmethod=escape,
+ mimetype=text/plain,
+ desc={Helper Perl script for package `attachfile2'}
+ ]{pdfatfi.pl}%
+ }{}%
+}
+\begin{document}
+ \DocInput{attachfile2.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{1382}
+%
+% \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 \~}
+%
+% \GetFileInfo{attachfile2.drv}
+%
+% \title{The \xpackage{attachfile2} package}
+% \date{2006/08/16 v2.2}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package can be used to attach files to a PDF document.
+% It is a further development of Scott Pakin's package
+% \xpackage{attachfile} for \pdfTeX. Apart from bug fixes,
+% package \xpackage{attachfile2} adds support for \xoption{dvips},
+% some new options, gets and writes meta information data about
+% the attached files.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% \subsection{Introduction}
+%
+% The PDF format (\cite{pdfspec}) allows the inclusion of files
+% inside the PDF document. The included files can be bound to an
+% annotation on a page. Or they can be recorded in a sorted
+% list of embedded files. The packages \xpackage{attachfile}
+% or \xpackage{attachfile2} follow the first approach,
+% package \xpackage{embedfile} uses the latter method.
+%
+% \subsubsection{Future development}
+%
+% My dream is a large package that merges the features of
+% all these packages meantioned before:
+% \begin{itemize}
+% \item Files can be attached to a page.
+% \item Files can be attached to the document.
+% \item An easy user interface for simple, common tasks and
+% beginners.
+% \item An interface for the advanced users that want to setup
+% every detail.
+% \item Support of many drivers (pdftex, dvips, dvipdfm, \dots).
+% \item \dots
+% \end{itemize}
+% However, I have not managed to take the time for this project.
+% Instead:
+% \begin{itemize}
+% \item First I experimented with package \xpackage{attachfile},
+% adding driver support, fixing bugs, \dots. The result is
+% currently named as \xpackage{attachfile2}. It uses an external
+% script to get file properties (size, date, checksum, \dots).
+% \item In order to avoid an external program for getting basic
+% file properties I provided a patch ``EscapeAndOther'' for
+% pdfTeX that was accepted for version 1.30.
+% \item Package \xpackage{embedfile} closes a gap left by the
+% packages for attaching
+% files and allows the embedding of files to the document.
+% Also it makes use of the new primitives of \pdfTeX.
+% \end{itemize}
+% Until this future becomes true, I provide the intermediate
+% step \xpackage{attachfile2} at its current state.
+% There are many things to do:
+% \begin{itemize}
+% \item Documentation, documentation, \dots
+% \item Improving portability of the Perl script \xfile{pdfatfi.pl}
+% (Windows, non-GNU, \dots).
+% \item Comfortable program for extracting embeddd files.
+% \item Embedding files to the document, see package \xpackage{embedfile}.
+% \item Additionally use featurs of \pdfTeX\ 1.30. With a recent
+% \pdfTeX\ the Perl script step is then obsolete.
+% \item GoToE links.
+% \item Layout of PinPush, especially the tip does not scale well.
+% \item Driver for \xoption{dvipsone}, similar to \xoption{dvips}, changes:
+% \begin{itemize}
+% \item coordinate transformation need to be fixed here,
+% \xfile{hdvipson.def} contains:
+% \begin{quote}
+%\begin{verbatim}
+%/DvipsToPDF { 65781 div } def
+%/PDFToDvips { 65781 mul } def
+%\end{verbatim}
+% \end{quote}
+% \item Syntax for \cs{special}: \xfile{hdvipson.def} contains
+% both \verb|\special{! #1}| and
+% \verb|\special{headertext= #1}|. Are bothe the same?
+% \end{itemize}
+% \item File name conversion, see PDF specification:
+% \begin{quote}
+% \verb|c:\somewhere\foobar.txt| $\rightarrow$
+% \verb|/c/somewhere/foobar.txt|
+% \end{quote}
+% \item Option \xoption{scale} for icons?
+% \item Compatibility for \plainTeX.
+% \item ToDos for \xfile{atfidvips.def}.
+% \end{itemize}
+%
+% \subsection{User interface}
+%
+% Basically this package \xpackage{attachfile2} follows the
+% user interface of package \xpackage{attachfile},
+% look into its documentation (\cite{attachfile}).
+%
+% \subsubsection{New options}
+% \begin{itemize}
+% \item Driver options \xoption{dvips} and \xoption{pdftex}.
+% \item New options \xoption{final} and \xoption{draft}.
+% \item New option \xoption{scale} for scaling the annotation rectangle.
+% \item Options \xoption{file} and \xoption{nofile} for controlling
+% the generation of the auxiliary file \xfile{.atfi}.
+% \end{itemize}
+%
+% \subsubsection{Perl script \xfile{pdfatfi.pl}}
+%
+% This package also tries to get and add meta information data,
+% such as file size, file date, checksum, \dots.
+% As package \xpackage{embedfile} shows the new features
+% of \pdfTeX\ 1.30 are very useful for getting this kind of
+% data. However the main development preceded this \pdfTeX\ version.
+% Thus the Perl script \xfile{pdfatfi.pl} is used to provide this data.
+% The use of the Perl script is not mandatory. This data can be shown
+% by PDF viewers, but they are not a requirement of the PDF specification.
+%
+% Package \xpackage{attachfile2} and the Perl script communicate
+% via an auxiliary file with file extension \xfile{.atfi}. The script
+% is used between two \LaTeX\ runs and updates the auxiliary file,
+% example for \xoption{dvips}:
+% \begin{quote}
+%\begin{verbatim}
+%latex test
+%pdfatfi test
+%latex test
+%dvips test
+%ps2pdf test.ps test.pdf
+%\end{verbatim}
+% \end{quote}
+%
+% \subsection{Changes to \xpackage{attachfile}}
+%
+% Some of the changes I can remember:
+% \begin{itemize}
+% \item Support for dvips.
+% \item Setting and filling the /Param entry for files
+% (file date, file size, \dots).
+% \item Perl script \xfile{pdfatfi.pl}.
+% \item New options.
+% \item Bug fixes.
+% \item \dots
+% \end{itemize}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Package}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{attachfile2}%
+ [2006/08/16 v2.2 attach files into PDF (HO)]
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage{ifpdf}
+\RequirePackage{keyval}
+\RequirePackage{color}
+\RequirePackage{kvoptions}[2006/08/17]
+
+% --- hyperref ---
+
+\RequirePackage{hyperref}
+% because of \pdfstringdef
+
+\def\atfi@pdfstringdef#1#2{%
+ \pdfstringdef\atfi@temp@string{#2}%
+ \edef#1{\atfi@temp@string}%
+}
+
+% --- convert to hex ---
+
+\def\atfi@hexdigit#1{%
+ \ifcase#1%
+ 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or 9\or
+ a\or b\or c\or d\or e\or f%
+ \fi
+}
+% detour via \dimexpr to avoid eTeX's nasty expression rounding
+\def\atfi@hexchar#1{%
+ \atfi@hexdigit{\numexpr\dimexpr.0625\dimexpr`#1sp\relax\relax\relax}%
+ \atfi@hexdigit{%
+ \numexpr`#1-16*\dimexpr.0625\dimexpr`#1sp\relax\relax\relax
+ }%
+}
+\def\atfi@tohex#1{%
+ \ifx\relax#1%
+ \else
+ \atfi@hexchar{#1}%
+ \expandafter\atfi@tohex
+ \fi
+}
+
+% --- convert to name ---
+
+\def\atfi@converttoname#1#2{%
+ \edef#1{#2}%
+ \@onelevel@sanitize#1%
+ \edef#1{\expandafter\atfi@spacetoother#1 \relax}%
+ \edef#1{\expandafter\atfi@converttokens#1\relax}%
+}
+
+\edef\atfi@hash{\string#}%
+\catcode`\ =12\relax%
+\def\atfi@space{ }%
+\catcode`\ =10\relax%
+
+\def\atfi@spacetoother#1 #2\relax{%
+ #1%
+ \ifx\\#2\\%
+ \else
+ \atfi@space
+ \@ReturnAfterFi{%
+ \atfi@spacetoother #2\relax
+ }%
+ \fi
+}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+
+\def\atfi@converttokens#1{%
+ \ifx\relax#1%
+ \else
+ \ifnum`#1<33 %
+ \ifcase`#1%
+ % drop illegal zero
+ \else
+ \atfi@hash\atfi@hexchar#1%
+ \fi
+ \else
+ \ifnum`#1>126 %
+ \atfi@hash\atfi@hexchar#1%
+ \else
+ \ifnum`#1=40 % (
+ \atfi@hash 28%
+ \else\ifnum`#1=41 % )
+ \atfi@hash 29%
+ \else\ifnum`#1=60 % <
+ \atfi@hash 3c%
+ \else\ifnum`#1=62 % >
+ \atfi@hash 3e%
+ \else\ifnum`#1=91 % [
+ \atfi@hash 5b%
+ \else\ifnum`#1=93 % ]
+ \atfi@hash 5d%
+ \else\ifnum`#1=123 % {
+ \atfi@hash 7b%
+ \else\ifnum`#1=125 % }
+ \atfi@hash 7d%
+ \else\ifnum`#1=47 % /
+ \atfi@hash 2f%
+ \else\ifnum`#1=37 % %
+ \atfi@hash 25%
+ \else
+ #1%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \fi
+ \fi
+ \expandafter\atfi@converttokens
+ \fi
+}
+
+
+% --- options ---
+
+% options "draft" and "final"
+\newif\ifatfi@draft
+\let\atfi@finaltrue\atfi@draftfalse
+\let\atfi@finalfalse\atfi@drafttrue
+\define@key{AtFi}{final}[true]{%
+ \csname atfi@final#1\endcsname
+}
+\define@key{AtFi}{draft}[true]{%
+ \csname atfi@draft#1\endcsname
+}
+
+% option mimetype
+\def\atfi@mimetype{}
+\define@key{AtFi}{mimetype}{%
+ \atfi@converttoname\atfi@mimetype{#1}%
+ \edef\atfi@mimetype{/Subtype/\atfi@mimetype}%
+}
+
+% option icon
+\define@key{AtFi}{icon}{%
+ \def\atfi@icon{/Name/#1}%
+ \def\atfi@icon@icon{#1}%
+}
+\setkeys{AtFi}{icon=PushPin}
+
+% option color
+\define@key{AtFi}{color}{%
+ \def\atfi@color{/C[#1]}%
+ \def\atfi@color@rgb{#1}%
+}
+\setkeys{AtFi}{color=1 0.9255 0.7765}
+
+% time options timezone and date
+\def\atfi@pad@ii#1{%
+ \ifnum#1>9
+ \number#1%
+ \else
+ 0\number#1%
+ \fi%
+}
+\let\atfi@timezone\@empty
+\define@key{AtFi}{timezone}{\def\atfi@timezone{#1}}
+\edef\atfi@time{\the\time}
+\def\atfi@hours{%
+ \numexpr\dimexpr0.01667\dimexpr\atfi@time sp\relax\relax\relax
+}
+\def\atfi@minutes{%
+ \numexpr\atfi@time-60*\atfi@hours\relax
+}
+\def\atfi@seconds{0}
+\def\atfi@date{%
+ /M(D:\the\year
+ \atfi@pad@ii\month
+ \atfi@pad@ii\day
+ \atfi@pad@ii\atfi@hours
+ \atfi@pad@ii\atfi@minutes
+ \atfi@pad@ii\atfi@seconds
+ \atfi@timezone)%
+}
+\define@key{AtFi}{date}{%
+ \atfi@pdfstringdef\atfi@date{#1}%
+ \edef\atfi@date{/M(\atfi@date)}%
+}
+
+% name for annotation to be used in GoToE actions
+\let\atfi@annotname\@empty
+\define@key{AtFi}{annotname}{%
+ \atfi@pdfstringdef\atfi@annotname{#1}%
+ \edef\atfi@annotname{/NM(\atfi@annotname)}%
+}
+
+% text options author, description, and subject
+\DeclareRobustCommand{\atfi@pdfstringdef}[2]{%
+ \pdfstringdef\atfi@temp@string{#2}%
+ \edef#1{\atfi@temp@string}%
+}
+
+% option author
+\def\atfi@author{}
+\define@key{AtFi}{author}{%
+ \atfi@pdfstringdef\atfi@author{#1}%
+ \edef\atfi@author{/T(\atfi@author)}%
+}
+
+% option description
+\def\atfi@description{}
+\define@key{AtFi}{description}{%
+ \atfi@pdfstringdef\atfi@description{#1}%
+ \edef\atfi@description{/Contents(\atfi@description)}%
+}
+
+% option subject
+\def\atfi@subject{}
+\define@key{AtFi}{subject}{%
+ \atfi@pdfstringdef\atfi@subject{#1}%
+ \edef\atfi@subject{/Subj(\atfi@subject)}%
+}
+
+% option print
+\newif\ifatfi@print
+\atfi@printtrue
+\define@key{AtFi}{print}[true]{\csname atfi@print#1\endcsname}
+
+% option zoom
+\newif\ifatfi@zoom
+\atfi@zoomtrue
+\define@key{AtFi}{zoom}[true]{\csname atfi@zoom#1\endcsname}
+
+% option appearance
+\newif\ifatfi@appearance
+\atfi@appearancetrue
+\define@key{AtFi}{appearance}[true]{%
+ \csname atfi@appearance#1\endcsname
+}
+
+% option scale
+\def\atfi@scale{1}
+\define@key{AtFi}{scale}[1]{%
+ \def\atfi@scale{#1}%
+}
+
+% option nofiles
+\newif\ifatfi@nofiles
+\atfi@nofilesfalse
+\define@key{AtFi}{nofiles}[true]{%
+ \csname atfi@nofiles#1\endcsname
+}
+
+% driver options
+\let\atfi@driver\@empty
+\def\atfi@driver@pdftex{pdftex}
+\def\atfi@driver@dvips{dvips}
+
+\define@key{AtFi}{pdftex}[true]{%
+ \let\atfi@driver\atfi@driver@pdftex
+}
+\define@key{AtFi}{dvips}[true]{%
+ \let\atfi@driver\atfi@driver@dvips
+}
+
+\DeclareRobustCommand{\attachfilesetup}[1]{\setkeys{AtFi}{#1}}
+
+% timezone setting, ...
+\InputIfFileExists{attachfile.cfg}{}{}
+
+\ProcessKeyvalOptions{AtFi}
+
+% --- evaluate driver options ---
+
+\ifpdf
+ % ignoring other driver options
+ \let\atfi@driver\atfi@driver@pdftex
+\else
+ \ifx\atfi@driver\@empty
+ \PackageWarningNoLine{attachfile2}{%
+ Driver is not specified,\MessageBreak
+ enforce draft settings%
+ }%
+ \atfi@drafttrue
+ \fi
+\fi
+
+% --- evaluate draft/final options ---
+
+\DeclareRobustCommand{\notextattachfile}[2][]{%
+ \begingroup
+ \setkeys{AtFi}{#1}%
+ \ifatfi@print
+ \def\atfi@textcolor(##1 ##2 ##3)##4{%
+ \textcolor[rgb]{##1,##2,##3}{##4}}%
+ \expandafter\atfi@textcolor\expandafter
+ (\atfi@color@rgb){#2\strut}%
+ \else
+ \setbox0=\hbox{#2\strut}%
+ \makebox[\wd0]{}%
+ \fi
+ \endgroup
+}
+
+\ifatfi@draft
+ \def\atfi@dummy@pushpin{%
+ \raisebox{-1.25bp}{\parbox[b][14bp]{24bp}{}}%
+ }
+ \DeclareRobustCommand{\textattachfile}[3][]{%
+ \notextattachfile[#1]{#3}%
+ }
+ \DeclareRobustCommand{\noattachfile}[1][]{%
+ \notextattachfile[#1]{\atfi@dummy@pushpin}%
+ }
+ \DeclareRobustCommand{\attachfile}[2][]{%
+ \noattachfile[#1]%
+ }
+ \expandafter\endinput
+\fi
+
+% --- load driver file ---
+
+\input{atfi\atfi@driver.def}
+
+% --- graphics ---
+
+\def\atfi@acroGraph@data{%
+ \atfi@GSAVE
+ 0.5 \atfi@SETGRAYFILL
+ 1.1133 0 20.7202 18.2754 \atfi@RECTFILL
+ 0 \atfi@SETFLAT
+ 0.5 \atfi@SETLINEWIDTH
+ 4 \atfi@SETMITERLIMIT
+ \atfi@RECTSTROKEFILL{%
+ 1 \atfi@SETGRAYFILL
+ }{%
+ 0 \atfi@SETGRAYSTROKE
+ }{%
+ 0.25 1.6453 20.145 17.7715 %
+ }%
+ 0 \atfi@SETGRAYFILL
+ 2.7319 4.1367 3.9571 13.8867 \atfi@RECTFILL
+ 8.7031 4.1367 3.9571 9.8867 \atfi@RECTFILL
+ 14.7471 4.1367 3.9571 11.8867 \atfi@RECTFILL
+ \atfi@color@rgb\space \atfi@SETRGBCOLORFILL
+ 1.689 3.0938 3.9571 13.8867 \atfi@RECTFILL
+ 7.6602 3.0938 3.9571 9.8867 \atfi@RECTFILL
+ 13.7041 3.0938 3.9571 11.8867 \atfi@RECTFILL
+ \atfi@GRESTORE
+}
+\def\atfi@acroGraph{%
+ \raisebox{-1.5bp}{\parbox[b][20bp]{22bp}{%
+ \rule{0pt}{0pt}\atfi@literal{\atfi@acroGraph@data}}%
+ }%
+}
+\newcommand{\atfi@acroPaperclip@data}{%
+ \atfi@GSAVE
+ 0.75 \atfi@SETGRAYSTROKE
+ 0 \atfi@SETFLAT
+ 2.5 \atfi@SETLINEWIDTH
+ 1 \atfi@SETLINECAP
+ 4 \atfi@SETMITERLIMIT
+ 1.9619 11.7559 \atfi@MOVETO
+ 1.9619 3.3037 1.9619 2.5059 \atfi@CURVETOV
+ 1.9619 1.707 4.0947 1.25 \atfi@CURVETOY
+ 7.4141 1.25 \atfi@LINETO
+ 9.4292 1.8223 9.4292 3.3066 \atfi@CURVETOV
+ 9.4292 4.79 9.4292 16.8945 \atfi@CURVETOY
+ 9.7852 18.1514 8.481 18.1514 \atfi@CURVETOV
+ 7.1768 18.1514 5.1616 18.1514 \atfi@CURVETOY
+ 3.8574 17.9209 3.8574 16.8945 \atfi@CURVETOV
+ 3.8574 15.8652 3.8574 6.6172 \atfi@CURVETOY
+ 4.3325 5.418 5.1025 5.418 \atfi@CURVETOV
+ 5.8726 5.418 6.5845 5.418 \atfi@CURVETOY
+ 7.6812 5.6455 7.6812 6.4736 \atfi@CURVETOV
+ 7.6812 7.3027 7.6812 11.5264 \atfi@CURVETOY
+ \atfi@STROKE
+ 0 \atfi@SETGRAYSTROKE
+ 1.2495 12.4404 \atfi@MOVETO
+ 1.2495 3.9883 1.2495 3.1895 \atfi@CURVETOV
+ 1.2495 2.3906 3.3833 1.9326 \atfi@CURVETOY
+ 6.7026 1.9326 \atfi@LINETO
+ 8.7178 2.5068 8.7178 3.9902 \atfi@CURVETOV
+ 8.7178 5.4736 8.7178 17.5781 \atfi@CURVETOY
+ 9.0732 18.834 7.769 18.834 \atfi@CURVETOV
+ 6.4653 18.834 4.4497 18.834 \atfi@CURVETOY
+ 3.146 18.6055 3.146 17.5781 \atfi@CURVETOV
+ 3.146 16.5498 3.146 7.3018 \atfi@CURVETOY
+ 3.6201 6.1016 4.3911 6.1016 \atfi@CURVETOV
+ 5.1611 6.1016 5.873 6.1016 \atfi@CURVETOY
+ 6.9692 6.3301 6.9692 7.1572 \atfi@CURVETOV
+ 6.9692 7.9863 6.9692 12.21 \atfi@CURVETOY
+ \atfi@STROKE
+ \atfi@color@rgb\space \atfi@SETRGBCOLORSTROKE
+ 1 \atfi@SETLINEWIDTH
+ 1.2495 12.4404 \atfi@MOVETO
+ 1.2495 3.9883 1.2495 3.1895 \atfi@CURVETOV
+ 1.2495 2.3906 3.3833 1.9326 \atfi@CURVETOY
+ 6.7026 1.9326 \atfi@LINETO
+ 8.7178 2.5068 8.7178 3.9902 \atfi@CURVETOV
+ 8.7178 5.4736 8.7178 17.5781 \atfi@CURVETOY
+ 9.0732 18.834 7.769 18.834 \atfi@CURVETOV
+ 6.4653 18.834 4.4497 18.834 \atfi@CURVETOY
+ 3.146 18.6055 3.146 17.5781 \atfi@CURVETOV
+ 3.146 16.5498 3.146 7.3018 \atfi@CURVETOY
+ 3.6201 6.1016 4.3911 6.1016 \atfi@CURVETOV
+ 5.1611 6.1016 5.873 6.1016 \atfi@CURVETOY
+ 6.9692 6.3301 6.9692 7.1572 \atfi@CURVETOV
+ 6.9692 7.9863 6.9692 12.21 \atfi@CURVETOY
+ \atfi@STROKE
+ \atfi@GRESTORE
+}
+\def\atfi@acroPaperclip{%
+ \raisebox{-1.25bp}{\parbox[b][21bp]{12bp}{%
+ \rule{0pt}{0pt}\atfi@literal{\atfi@acroPaperclip@data}}%
+ }%
+}
+\def\atfi@acroPushPin@data{%
+ \atfi@GSAVE
+ 1 \atfi@SETLINEWIDTH
+ 1 6 \atfi@MOVETO
+ 11 6 \atfi@LINETO
+ 11 13 \atfi@LINETO
+ 12 13 \atfi@LINETO
+ 14 11 \atfi@LINETO
+ 21 11 \atfi@LINETO
+ 22 12 \atfi@LINETO
+ 23 12 \atfi@LINETO
+ 23 2 \atfi@LINETO
+ 22 2 \atfi@LINETO
+ 21 3 \atfi@LINETO
+ 14 3 \atfi@LINETO
+ 12 1 \atfi@LINETO
+ 11 1 \atfi@LINETO
+ 11 6 \atfi@LINETO
+ \atfi@FILLSTROKE{%
+ \atfi@color@rgb\space\atfi@SETRGBCOLORFILL
+ }{%
+ 0 \atfi@SETGRAYSTROKE
+ }%
+ 0.5 \atfi@SETGRAYSTROKE
+ 0 7 \atfi@MOVETO
+ 10 7 \atfi@LINETO
+ 10 8 \atfi@LINETO
+ 1 8 \atfi@LINETO
+ \atfi@STROKE
+ 1 \atfi@SETGRAYSTROKE
+ 12 12 \atfi@MOVETO
+ 14 10 \atfi@LINETO
+ 22 10 \atfi@LINETO
+ 22 11 \atfi@LINETO
+ \atfi@STROKE
+ \atfi@GRESTORE
+}
+\def\atfi@acroPushPin{%
+ \raisebox{-1.25bp}{\parbox[b][14bp]{24bp}{%
+ \rule{0pt}{0pt}\atfi@literal{\atfi@acroPushPin@data}}%
+ }%
+}
+\def\atfi@acroTag@data{%
+ \atfi@GSAVE
+ 0.5 \atfi@SETGRAYFILL
+ 10.0542 14.9873 \atfi@MOVETO
+ 24.27 14.9873 \atfi@LINETO
+ 25.252 14.0059 \atfi@LINETO
+ 25.252 1.1455 \atfi@LINETO
+ 24.1064 0 \atfi@LINETO
+ 9.9609 0 \atfi@LINETO
+ 6.0327 6.0088 \atfi@LINETO
+ 6.0327 9.002 \atfi@LINETO
+ 10.0542 14.9873 \atfi@LINETO
+ 9.3994 9.376 \atfi@MOVETO
+ 8.5215 9.376 7.8096 8.5596 7.8096 7.5527 \atfi@CURVETO
+ 7.8096 6.5449 8.5215 5.7285 9.3994 5.7285 \atfi@CURVETO
+ 10.2778 5.7285 10.9897 6.5449 10.9897 7.5527 \atfi@CURVETO
+ 10.9897 8.5596 10.2778 9.376 9.3994 9.376 \atfi@CURVETO
+ \atfi@CLOSEPATH
+ \atfi@FILL
+ 0 \atfi@SETFLAT
+ 0.5 \atfi@SETLINEWIDTH
+ 4 \atfi@SETMITERLIMIT
+ 1 \atfi@SETLINEJOIN
+ 8.5107 16.5313 \atfi@MOVETO
+ 22.7266 16.5313 \atfi@LINETO
+ 23.7085 15.5488 \atfi@LINETO
+ 23.7085 2.6895 \atfi@LINETO
+ 22.563 1.543 \atfi@LINETO
+ 8.4175 1.543 \atfi@LINETO
+ 4.4893 7.5527 \atfi@LINETO
+ 4.4893 10.5449 \atfi@LINETO
+ 8.5107 16.5313 \atfi@LINETO
+ 7.856 10.9199 \atfi@MOVETO
+ 6.978 10.9199 6.2661 10.1035 6.2661 9.0957 \atfi@CURVETO
+ 6.2661 8.0879 6.978 7.2715 7.856 7.2715 \atfi@CURVETO
+ 8.7344 7.2715 9.4463 8.0879 9.4463 9.0957 \atfi@CURVETO
+ 9.4463 10.1035 8.7344 10.9199 7.856 10.9199 \atfi@CURVETO
+ \atfi@CLOSEPATH
+ \atfi@FILLSTROKE{%
+ \atfi@color@rgb\space\atfi@SETRGBCOLORFILL
+ }{%
+ 0 \atfi@SETGRAYSTROKE
+ }%
+ 1 \atfi@SETLINEWIDTH
+ 12.3291 12.2656 \atfi@MOVETO
+ 21.1206 12.2656 \atfi@LINETO
+ \atfi@STROKE
+ 12.3291 9.1797 \atfi@MOVETO
+ 21.1206 9.1797 \atfi@LINETO
+ \atfi@STROKE
+ 12.3291 6.1875 \atfi@MOVETO
+ 21.1206 6.1875 \atfi@LINETO
+ \atfi@STROKE
+ % 0 \atfi@SETGRAYSTROKE % redundant?
+ 0.5 \atfi@SETLINEWIDTH
+ 0 9.0488 \atfi@MOVETO
+ 6.2661 9.0957 \atfi@LINETO
+ \atfi@STROKE
+ 1.4028 5.2148 \atfi@MOVETO
+ 1.4028 9.6094 \atfi@LINETO
+ 1.6831 10.6387 2.4316 10.6387 \atfi@CURVETOV
+ 3.6475 10.6387 3.5542 9.0488 \atfi@CURVETOY
+ \atfi@STROKE
+ \atfi@GRESTORE
+}
+\DeclareRobustCommand{\atfi@acroTag}{%
+ \raisebox{-1.6bp}{\parbox[b][17bp]{25bp}{%
+ \rule{0pt}{0pt}\atfi@literal{\atfi@acroTag@data}}%
+ }%
+}
+
+% --- .atfi file reading support ---
+
+% commands used in \jobname.atfi:
+% * \attachfile@timezone{<timezone in PDF format>}
+% * \attachfile@file[
+% Size=<size>,
+% CreationDate=<date>, % <date> local time without "D:" and timezone
+% ModDate=<date>,
+% CheckSum=<checksum>
+% ]{<filename as hex string>}
+%
+\def\attachfile@timezone#1{%
+ \ifx\\#1\\%
+ % no timezone information given
+ \else
+ \def\atfi@timezone{#1}%
+ \fi
+}
+\newcommand*{\attachfile@file}[2][]{%
+ \ifx\\#2\\%
+ \PackageError{attachfile2}{Empty file name}\@ehc
+ \else
+ \edef\atfi@restore{\uccode0=\the\uccode0 \relax}%
+ \let\atfi@filename\@empty
+ \atfi@getfilename#2\relax\relax
+ \atfi@restore
+ \@namedef{atfi@file@\atfi@filename}{#1}%
+ \fi
+}
+% convert file name from hex string
+\begingroup
+ \catcode0=12 %
+ \gdef\atfi@getfilename#1#2{%
+ \ifx\relax#1%
+ \else
+ \uccode0=\numexpr 16*\atfi@hexnum{#1} + \atfi@hexnum{#2}\relax
+ \uppercase{%
+ \edef\atfi@filename{%
+ \atfi@filename^^@%
+ }%
+ }%
+ \expandafter\atfi@getfilename
+ \fi
+ }%
+\endgroup
+\def\atfi@hexnum#1{%
+ \ifnum`#1<58 %
+ \numexpr `#1-48\relax
+ \else
+ \numexpr `#1-87\relax
+ \fi
+}
+
+\InputIfFileExists{\jobname.atfi}{}{}%
+
+\newif\ifatfi@checksum
+\define@key{AtFi@file}{CheckSum}{%
+ \atfi@checksumtrue
+ \edef\atfi@params{\atfi@params/CheckSum<#1>}%
+}
+\newif\ifatfi@creationdate
+\define@key{AtFi@file}{CreationDate}{%
+ \atfi@creationdatetrue
+ \edef\atfi@params{\atfi@params/CreationDate(D:#1\atfi@timezone)}%
+}
+\newif\ifatfi@moddate
+\define@key{AtFi@file}{ModDate}{%
+ \atfi@moddatetrue
+ \edef\atfi@params{\atfi@params/ModDate(D:#1\atfi@timezone)}%
+}
+
+% --- .atfi file writing support ---
+
+% respect \nofiles and option nofiles
+% \nofiles has more weight than option nofiles
+\if@filesw
+\else
+ \atfi@nofilestrue
+\fi
+\ifatfi@nofiles
+ \PackageInfo{attachfile2}{%
+ File `\jobname.atfi' will not be written because of\MessageBreak
+ \string\nofiles\space or option `nofiles'%
+ }%
+ \let\atfi@writefile\@gobble
+\else
+ \newwrite\atfi@stream
+ \immediate\openout\atfi@stream=\jobname.atfi
+ \immediate\write\atfi@stream{%
+ \string\attachfile@timezone{\atfi@timezone}%
+ }%
+ \def\atfi@writefile#1{%
+ \begingroup
+ \def\file{#1}%
+ \@onelevel@sanitize\file
+ \edef\file{\@firstofone{\expandafter\atfi@replace\file} \@nil}%
+ \edef\file{\expandafter\atfi@tohex\file\relax}%
+ \immediate\write\atfi@stream{%
+ \string\attachfile@file[%
+ \@ifundefined{atfi@file@#1}{}{\@nameuse{atfi@file@#1}}%
+ ]{\file}%
+ }%
+ \endgroup
+ }%
+\fi
+
+\def\atfi@attachfile#1#2{%
+ \@ifundefined{atfi@fileobj@#2}{%
+ \atfi@writefile{#2}%
+ }{%
+ % don't need duplicates
+ }%
+ \setkeys{AtFi}{#1}%
+ \atfi@embedfile{#2}%
+ \atfi@set@appearance@icon
+ \atfi@flags@to@int
+ \atfi@insert@file@annot{#2}%
+ \endgroup
+}
+
+% convert to hex string
+
+\def\atfi@replace#1 #2\@nil{%
+ #1%
+ \ifx\\#2\\%
+ \else
+ \atfi@space
+ \@ReturnAfterFi{%
+ \atfi@replace#2\@nil
+ }%
+ \fi
+}%
+
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+
+% ---
+
+\newlength{\atfi@appearancewidth}
+\newlength{\atfi@appearanceheight}
+\newlength{\atfi@appearancedepth}
+\newsavebox{\atfi@appearancebox}
+
+\def\atfi@set@appearance@icon{%
+ \@ifundefined{atfi@appobj@\atfi@icon@icon}{%
+ \savebox{\atfi@appearancebox}{\@nameuse{atfi@acro\atfi@icon@icon}}%
+ \expandafter\xdef\csname atfi@appwidth@\atfi@icon@icon\endcsname{%
+ \the\wd\atfi@appearancebox
+ }%
+ \expandafter\xdef\csname atfi@appheight@\atfi@icon@icon\endcsname{%
+ \the\ht\atfi@appearancebox
+ }%
+ \expandafter\xdef\csname atfi@appdepth@\atfi@icon@icon\endcsname{%
+ \the\dp\atfi@appearancebox
+ }%
+ \atfi@xform@icon
+ \global\expandafter\let\csname atfi@appobj@\atfi@icon@icon\endcsname
+ \atfi@appearanceobj
+ }{%
+ }%
+ % optimization: \setlength dropped
+ \atfi@appearancewidth=\@nameuse{atfi@appwidth@\atfi@icon@icon}\relax
+ \atfi@appearanceheight=\@nameuse{atfi@appheight@\atfi@icon@icon}\relax
+ \atfi@appearancedepth=\@nameuse{atfi@appdepth@\atfi@icon@icon}\relax
+ \expandafter\let\expandafter\atfi@appearanceobj
+ \csname atfi@appobj@\atfi@icon@icon\endcsname
+}
+
+\def\atfi@set@appearance#1{%
+ \savebox{\atfi@appearancebox}{#1}%
+ \atfi@appearancewidth=\wd\atfi@appearancebox
+ \atfi@appearanceheight=\ht\atfi@appearancebox
+ \atfi@appearancedepth=\dp\atfi@appearancebox
+ \atfi@xform
+}
+
+\newcounter{atfi@flags}
+\DeclareRobustCommand{\atfi@flags@to@int}{%
+ \setcounter{atfi@flags}{0}%
+ \ifatfi@print
+ \addtocounter{atfi@flags}{4}%
+ \fi%
+ \ifatfi@zoom
+ \else
+ \addtocounter{atfi@flags}{8}%
+ \fi%
+}
+
+\def\atfi@textattachfile#1#2{%
+ \endgroup
+ \atfi@textattachfile@i{#1}{#2}%
+}
+\def\atfi@textattachfile@i#1#2#3{%
+ \setkeys{AtFi}{#1}%
+ \atfi@embedfile{#2}%
+ \def\atfi@textcolor(##1 ##2 ##3)##4{%
+ \textcolor[rgb]{##1,##2,##3}{##4}}%
+ \atfi@set@appearance{%
+ \expandafter\atfi@textcolor\expandafter
+ (\atfi@color@rgb){#3\strut}}%
+ \atfi@flags@to@int
+ \atfi@insert@file@annot{#2}%
+ \endgroup
+}
+
+\DeclareRobustCommand{\attachfile}[1][]{%
+ \begingroup
+ \let\do\@makeother
+ \dospecials
+ \catcode`\{=1\relax
+ \catcode`\}=2\relax
+ \atfi@attachfile{#1}%
+}
+\DeclareRobustCommand{\textattachfile}[1][]{%
+ \begingroup
+ \begingroup
+ \let\do\@makeother
+ \dospecials
+ \catcode`\{=1\relax
+ \catcode`\}=2\relax
+ \atfi@textattachfile{#1}%
+}
+\DeclareRobustCommand{\noattachfile}[1][]{%
+ \begingroup
+ \setkeys{AtFi}{#1}%
+ \atfi@set@appearance@icon
+ \ifatfi@print
+ \expandafter\atfi@refxform\csname atfi@appobj@\atfi@icon@icon\endcsname
+ \else
+ \makebox[\atfi@appearancewidth]{}%
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \subsection{Drivers}
+%
+% \subsubsection{\pdfTeX}
+%
+% \begin{macrocode}
+%<*pdftex>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{atfipdftex.def}%
+ [2006/08/16 v2.2 attachfile2 driver for pdfTeX (HO)]
+% \end{macrocode}
+% \begin{macrocode}
+\let\atfi@literal\pdfliteral
+
+% --- macros for graphics data ---
+
+\def\atfi@GSAVE{q }
+\def\atfi@GRESTORE{Q }
+\def\atfi@SETLINEWIDTH{w }
+\def\atfi@LINETO{l }
+\def\atfi@MOVETO{m }
+\def\atfi@STROKE{S }
+\def\atfi@FILL{f }
+% \atfi@FILLSTROKE{<fill color>}{<stroke color>}
+\def\atfi@FILLSTROKE#1#2{#1#2B }
+% color: uppercase are stroke colors, lowercase non-stroke (fill) colors
+% PS, however, does not different between stroke and not-stroke colors
+\def\atfi@SETRGBCOLORSTROKE{RG }
+\def\atfi@SETRGBCOLORFILL{rg }
+\def\atfi@SETGRAYSTROKE{G }
+\def\atfi@SETGRAYFILL{g }
+\def\atfi@RECTFILL{re f }
+\def\atfi@RECTSTROKEFILL#1#2#3{#1#2#3re B }
+\def\atfi@SETMITERLIMIT{M }
+\def\atfi@SETFLAT{i }
+\def\atfi@SETLINECAP{J }
+\def\atfi@CURVETO{c }
+\def\atfi@CURVETOV{v }
+\def\atfi@CURVETOY{y }
+\def\atfi@CLOSEPATH{h }
+\def\atfi@SETLINEJOIN{j }
+
+% ---
+
+\define@key{AtFi@file}{Size}{%
+ \edef\atfi@params{\atfi@params/Size #1}%
+}
+
+\def\atfi@embedfile#1{%
+ \@ifundefined{atfi@fileobj@#1}{%
+ \begingroup
+ \let\atfi@params\@empty
+ \@ifundefined{atfi@file@#1}{}{%
+ \edef\x{\noexpand\setkeys{AtFi@file}{\@nameuse{atfi@file@#1}}}%
+ \x
+ }%
+ \ifx\atfi@params\@empty
+ \else
+ \edef\atfi@params{/Params<<\atfi@params>>}%
+ \fi
+ \immediate\pdfobj stream attr {%
+ /Type/EmbeddedFile%
+ \atfi@mimetype
+ \atfi@params
+ } file {#1}%
+ \expandafter\xdef\csname atfi@fileobj@#1\endcsname{\the\pdflastobj}%
+ \endgroup
+ }{%
+ % file already embedded
+ }%
+}
+
+% ---
+
+% input: \atfi@appearancebox, output: \atfi@appearanceobj
+\def\atfi@xform{%
+ \immediate\pdfxform\atfi@appearancebox
+ \edef\atfi@appearanceobj{\the\pdflastxform}%
+}
+\let\atfi@xform@icon\atfi@xform
+
+\def\atfi@refxform#1{%
+ \pdfrefxform#1\relax
+}
+
+% ---
+
+\def\atfi@insert@file@annot#1{%
+ \rule{0pt}{0pt}%
+ \ifatfi@appearance
+ \def\atfi@appearance@dict{%
+ /AP<<%
+ /N \atfi@appearanceobj\space 0 R%
+ /R \atfi@appearanceobj\space 0 R%
+ /D \atfi@appearanceobj\space 0 R%
+ >>%
+ }%
+ \else
+ \let\atfi@appearance@dict\@empty
+ \fi
+ \@ifundefined{atfi@fsobj@#1}{%
+ \atfi@pdfstringdef\atfi@file{#1}%
+ \immediate\pdfobj{%
+ <<%
+ /Type/Filespec%
+ /F(\atfi@file)%
+ /EF<<%
+ /F \@nameuse{atfi@fileobj@#1} 0 R%
+ >>%
+ >>%
+ }%
+ \expandafter\xdef\csname atfi@fsobj@#1\endcsname{%
+ \the\pdflastobj
+ }%
+ }{%
+ }%
+ \pdfannot width \atfi@scale\atfi@appearancewidth
+ height \atfi@scale\atfi@appearanceheight
+ depth \atfi@scale\atfi@appearancedepth {%
+ /Subtype/FileAttachment%
+ \atfi@icon
+ \atfi@color
+ \atfi@author
+ \atfi@date
+ \atfi@annotname
+ \atfi@description
+ \atfi@subject
+ \atfi@appearance@dict
+ /F \theatfi@flags
+ /FS \@nameuse{atfi@fsobj@#1} 0 R%
+ }%
+ \rule{0pt}{\atfi@appearanceheight}%
+ \rule[-\atfi@appearancedepth]{0pt}{\atfi@appearancedepth}%
+ \rule{\atfi@appearancewidth}{0pt}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+%</pdftex>
+% \end{macrocode}
+%
+% \subsubsection{dvips}
+%
+% \begin{macrocode}
+%<*dvips>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{atfipdftex.def}%
+ [2006/08/16 v2.2 attachfile2 driver for dvips (HO)]
+% \end{macrocode}
+% \begin{macrocode}
+\def\atfi@literal#1{%
+ \special{ps:atfi_dict begin{#1}atfi_?pdfmark end}%
+}
+
+\def\atfi@header#1{%
+ \special{! #1}%
+}
+
+% --- macros for graphics data ---
+
+\atfi@header{%
+ userdict begin 20 dict dup /atfi_dict exch def end begin
+ /atfi_?pdfmark systemdict
+ dup /pdfmark known
+ {
+ /exec get def
+ }{
+ /pop get def
+ } ifelse
+ {
+ %
+ % x y width height atfi_re ->
+ languagelevel 2 ge {
+ /atfi_rectfill { rectfill } bind def
+ /atfi_rectstroke { rectstroke } bind def
+ }{%
+ /atfi_rect {
+ /atfi_height exch def
+ /atfi_width exch def
+ /atfi_x exch def
+ /atfi_y exch def
+ newpath
+ atfi_x atfi_y moveto
+ atfi_x atfi_width add atfi_y lineto
+ atfi_x atfi_width add atfi_y atfi_height add lineto
+ atfi_x atfi_y atfi_height add lineto
+ closepath
+ } bind def
+ /atfi_rectfill {
+ atfi_rect fill
+ } bind def
+ /atfi_rectstroke {
+ atfi_rect stroke
+ } bind def
+ } ifelse
+ /atfi_curveto_v {
+ currentpoint 6 2 roll curveto
+ } bind def
+ /atfi_curveto_y {
+ 2 copy curveto
+ } bind def
+ %
+ % help macro for atfi_convert_date
+ /atfi_two {
+ dup 10 lt
+ {
+ 1 string cvs
+ exch 1 add exch
+ }{
+ 2 string cvs
+ } ifelse
+ putinterval
+ } bind def
+ %
+ % <seconds since 1970-01-01> atfi_convert_date -> (D:...Z)
+ /atfi_convert_date {
+ dup
+ /atfi_days exch 3600 idiv 24 idiv def
+ % calc date part
+ /atfi_year 1970 def
+ {
+ atfi_year 400 mod 0 eq
+ atfi_year 100 mod 0 ne
+ atfi_year 4 mod 0 eq
+ and or
+ { 366 } { 365 } ifelse
+ dup atfi_days lt
+ {
+ atfi_days exch sub /atfi_days exch def
+ /atfi_year atfi_year 1 add def
+ }{
+ exit
+ } ifelse
+ } loop
+ /atfi_month 1 def
+ /atfi_days atfi_days 1 add def
+ 31 atfi_days lt
+ {
+ atfi_days 31 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 366 eq { 29 } { 28 } ifelse dup atfi_days lt
+ {
+ atfi_days exch sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 31 atfi_days lt
+ {
+ atfi_days 31 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 30 atfi_days lt
+ {
+ atfi_days 30 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 31 atfi_days lt
+ {
+ atfi_days 31 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 30 atfi_days lt
+ {
+ atfi_days 30 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 31 atfi_days lt
+ {
+ atfi_days 31 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 31 atfi_days lt
+ {
+ atfi_days 31 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 30 atfi_days lt
+ {
+ atfi_days 30 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 31 atfi_days lt
+ {
+ atfi_days 31 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 30 atfi_days lt
+ {
+ atfi_days 30 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ 31 atfi_days lt
+ {
+ atfi_days 31 sub /atfi_days exch def
+ /atfi_month atfi_month 1 add def
+ } if
+ } if
+ } if
+ } if
+ } if
+ } if
+ } if
+ } if
+ } if
+ } if
+ } { pop } ifelse
+ }{ pop } ifelse
+ % calc time part
+ 3600 24 mul mod
+ dup 3600 idiv dup /atfi_hour exch def
+ 3600 mul sub
+ dup 60 idiv dup /atfi_min exch def
+ 60 mul sub
+ /atfi_sec exch def
+ (D:19700101000000Z)
+ dup 2 atfi_year 4 string cvs putinterval
+ dup 6 atfi_month atfi_two
+ dup 8 atfi_days atfi_two
+ dup 10 atfi_hour atfi_two
+ dup 12 atfi_min atfi_two
+ dup 14 atfi_sec atfi_two
+ } bind def
+ %
+ % <filename> atfi_calc_checksum -> /CheckSum <checksum>
+ % or returns nothing, if MD5Encode is not given
+ false
+ languagelevel 2 ge {
+ (MD5Encode)
+ { pop true or }
+ (MD5Encode) length string
+ /Filter
+ resourceforall
+ } if
+ {
+ /atfi_calc_checksum {
+ /atfi_checksum 16 string def
+ /atfi_file exch (r) file def
+ /atfi_md5sum atfi_checksum /MD5Encode filter def
+ % not too efficient to read and write byte by byte,
+ % using a buffer is probably faster
+ atfi_size {
+ atfi_file read
+ {
+ atfi_md5sum exch write
+ } if
+ } repeat
+ atfi_md5sum closefile
+ atfi_file closefile
+ /CheckSum atfi_checksum
+ } bind def
+ }{
+ /atfi_calc_checksum { pop } bind def
+ } ifelse
+ %
+ /atfi_pttobp { 72.27 div 72 mul } bind def
+ /atfi_pdftodvipsx { 72.27 div Resolution mul } bind def
+ /atfi_pdftodvipsy { 72.27 div VResolution mul } bind def
+ %
+ } atfi_?pdfmark
+ end
+}
+
+\def\atfi@GSAVE{gsave }
+\def\atfi@GRESTORE{grestore }
+\def\atfi@SETLINEWIDTH{setlinewidth }
+\def\atfi@LINETO{lineto }
+\def\atfi@MOVETO{moveto }
+\def\atfi@STROKE{stroke }
+\def\atfi@FILL{fill }
+\def\atfi@FILLSTROKE#1#2{gsave #1 fill grestore #2 stroke }
+\def\atfi@SETRGBCOLORSTROKE{setrgbcolor }
+\def\atfi@SETRGBCOLORFILL{setrgbcolor }
+\def\atfi@SETGRAYSTROKE{setgray }
+\def\atfi@SETGRAYFILL{setgray }
+\def\atfi@RECTFILL{atfi_rectfill }
+\def\atfi@RECTSTROKEFILL#1#2#3{%
+ #3%
+ #1%
+ gsave atfi_rectfill grestore
+ #2%
+ #3%
+ atfi_rectstroke
+ #1%
+}
+\def\atfi@SETMITERLIMIT{setmiterlimit }
+\def\atfi@SETFLAT{setflat }
+\def\atfi@SETLINECAP{setlinecap }
+\def\atfi@CURVETO{curveto }
+\def\atfi@CURVETOV{atfi_curveto_v }
+\def\atfi@CURVETOY{atfi_curveto_y }
+\def\atfi@CLOSEPATH{closepath }
+\def\atfi@SETLINEJOIN{setlinejoin }
+
+% ---
+
+\newcounter{atfi@obj}
+\renewcommand*{\theatfi@obj}{%
+ {atfi_obj_\number\c@atfi@obj}%
+}
+
+
+% most values for Params dictionary found in the .atfi file have
+% priority:
+% * Recalculation (md5sum, ...) is avoided.
+% * An external script has more possibilities than programming
+% at PostScript level (operating system, getting the date and
+% time values of the file with correct interpretation.
+% * Exception: status is called to test file existence, thus
+% we get the value of size for free
+
+\define@key{AtFi@file}{Size}{}
+
+\def\atfi@embedfile#1{%
+ \@ifundefined{atfi@fileobj@#1}{%
+ \atfi@pdfstringdef\atfi@psfilename{#1}%
+ \stepcounter{atfi@obj}%
+ \expandafter\xdef\csname atfi@fileobj@#1\endcsname{\theatfi@obj}%
+ \begingroup
+ \let\atfi@params\@empty
+ \@ifundefined{atfi@file@#1}{}{%
+ \edef\x{\noexpand\setkeys{AtFi@file}{\@nameuse{atfi@file@#1}}}%
+ \x
+ }%
+ \atfi@literal{%
+ /atfi_filename (\atfi@psfilename) def
+ atfi_filename status
+ {
+ % ok: file found
+ % save parameters of status command
+ /atfi_created exch def
+ /atfi_referenced exch def
+ /atfi_size exch def
+ pop % drop parameter "pages" (storage space), never needed
+ % ghostscript:
+ % created: stat.st_ctime
+ % referenced: stat.st_mtime
+ % stat.st_ctime: interpretion depends on operating system:
+ % * unix: inode change time (not interesting)
+ % * win32: probably creation time
+ % --> /CreationDate
+ % stat.st_mtime: modification time --> /ModDate
+ % time values are seconds since 1970-01-01, GMT
+ % TODO: ghostscript offers "getenv" for getting the value
+ % of an environment variable. That could be used to
+ % to detect windows and settingthe /CreationDate entry.
+ % TODO: how are these values interpreted by other distiller
+ % programs?
+ %
+ [
+ /_objdef \theatfi@obj
+ /type /stream
+ /OBJ pdfmark
+ [
+ \theatfi@obj
+ <<
+ /Type /EmbeddedFile
+ \atfi@mimetype
+ /Params
+ <<
+ \atfi@params
+ %
+ /Size atfi_size
+ %
+ /product where
+ {
+ pop
+ % check for ghostscript
+ product (Ghostscript) search
+ {
+ pop pop pop
+ % ghostscript is running
+ %
+ \ifatfi@creationdate
+ \else
+ false % TODO: test for windows
+ {
+ /CreationDate atfi_created atfi_convert_date
+ } if
+ \fi
+ \ifatfi@moddate
+ \else
+ /ModDate atfi_referenced atfi_convert_date
+ \fi
+ } if
+ %
+ % look for MD5Encode filter and calculate CheckSum
+ } if
+ \ifatfi@checksum
+ \else
+ atfi_filename atfi_calc_checksum
+ \fi
+ >>
+ >>
+ /PUT pdfmark
+ [
+ \theatfi@obj
+ atfi_filename (r) file
+ /PUT pdfmark
+ [
+ \theatfi@obj
+ /CLOSE pdfmark
+ }{
+ % error: file not found
+ % currently nothing is done
+ } ifelse
+ }%
+ \endgroup
+ }{%
+ % file already embedded
+ }%
+}
+
+% ---
+
+% output: \atfi@appearanceobj
+% input: \atfi@appearancebox, \atfi@icon@icon
+\def\atfi@xform@icon{%
+ \stepcounter{atfi@obj}%
+ \edef\atfi@appearanceobj{\theatfi@obj}%
+ \atfi@literal{%
+ [
+ /_objdef \atfi@appearanceobj
+ /BBox [
+ 0
+ 0
+ \strip@pt\wd\atfi@appearancebox\space atfi_pttobp
+ \strip@pt\dimexpr\dp\atfi@appearancebox
+ +\ht\atfi@appearancebox\relax\space atfi_pttobp
+ ]
+ /BP pdfmark
+ \csname atfi@acro\atfi@icon@icon @data\endcsname
+ [
+ /EP pdfmark
+ }%
+}
+% output: \atfi@appearanceobj
+% input: \atfi@appearancebox
+\def\atfi@xform{%
+ \stepcounter{atfi@obj}%
+ \edef\atfi@appearanceobj{\theatfi@obj}%
+ \begingroup
+ \setbox0=\hbox{%
+ \atfi@literal{%
+ [
+ /_objdef \atfi@appearanceobj
+ /BBox [
+ currentpoint
+ \strip@pt\dp\atfi@appearancebox\space sub
+ currentpoint
+ exch \strip@pt\wd\atfi@appearancebox\space add
+ exch \strip@pt\ht\atfi@appearancebox\space add
+ ]
+ /BP pdfmark
+ gsave
+ currentpoint
+ 2 copy translate
+ 72.27 Resolution div 72.27 VResolution div neg scale
+ exch neg exch neg translate
+ }%
+ \usebox{\atfi@appearancebox}%
+ \atfi@literal{%
+ grestore
+ [
+ /EP pdfmark
+ }%
+ }%
+ % do not allocate any space for xobject definition
+ \dp0=\z@
+ \ht0=\z@
+ \wd0=\z@
+ \mbox{\usebox0}%
+ \endgroup
+}
+
+\def\atfi@refxform#1{%
+ \raisebox{-\atfi@appearancedepth}{%
+ \atfi@literal{%
+ gsave
+ currentpoint translate
+ Resolution 72 div VResolution neg 72 div scale
+ [ #1 /SP pdfmark
+ grestore
+ }%
+ \makebox[\atfi@appearancewidth]{}%
+ }%
+ \rule{0pt}{\atfi@appearanceheight}%
+}
+
+% ---
+
+\def\atfi@insert@file@annot#1{%
+ \rule{0pt}{0pt}%
+ \ifatfi@appearance
+ \def\atfi@appearance@dict{%
+ /AP<<%
+ /N \atfi@appearanceobj
+ /R \atfi@appearanceobj
+ /D \atfi@appearanceobj
+ >>%
+ }%
+ \else
+ \let\atfi@appearance@dict\@empty
+ \fi
+ \@ifundefined{atfi@fsobj@#1}{%
+ \stepcounter{atfi@obj}%
+ \expandafter\xdef\csname atfi@fsobj@#1\endcsname{\theatfi@obj}%
+ \atfi@pdfstringdef\atfi@file{#1}%
+ \atfi@literal{%
+ [
+ /_objdef \theatfi@obj
+ /type /dict
+ /OBJ pdfmark
+ [
+ \theatfi@obj
+ <<
+ /Type /Filespec
+ /F (\atfi@file)
+ /EF <<
+ /F \csname atfi@fileobj@#1\endcsname
+ >>
+ >>
+ /PUT pdfmark
+ }%
+ }{%
+ }%
+ \atfi@literal{%
+ [
+ /Subtype/FileAttachment%
+ \atfi@icon
+ \atfi@color
+ \atfi@author
+ \atfi@date
+ \atfi@annotname
+ \atfi@description
+ \atfi@subject
+ \atfi@appearance@dict
+ /F \theatfi@flags
+ /FS \csname atfi@fsobj@#1\endcsname
+ /Rect [
+ currentpoint
+ \strip@pt\dimexpr\atfi@scale\atfi@appearancedepth\relax
+ \space atfi_pdftodvipsy add
+ currentpoint
+ exch \strip@pt\dimexpr\atfi@scale\atfi@appearancewidth\relax
+ \space atfi_pdftodvipsx add
+ exch \strip@pt\dimexpr\atfi@scale\atfi@appearanceheight\relax
+ \space atfi_pdftodvipsy sub
+ ]
+ /ANN pdfmark
+ }%
+ \rule{0pt}{\atfi@appearanceheight}%
+ \rule[-\atfi@appearancedepth]{0pt}{\atfi@appearancedepth}%
+ \rule{\atfi@appearancewidth}{0pt}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+%</dvips>
+% \end{macrocode}
+%
+% \subsection{Perl script \xfile{pdfatfi.pl}}
+%
+% \begin{macrocode}
+%<*pdfatfi>
+% \end{macrocode}
+% \begin{macrocode}
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
+ if 0;
+use strict;
+$^W=1; # turn warning on
+#
+# pdfatfi.pl
+#
+# Copyright (C) 2005, 2006 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 2005/12/01 or later.
+#
+# This work has the LPPL maintenance status "maintained".
+#
+# This Current Maintainer of this work is Heiko Oberdiek.
+#
+# See file "attachfile2.pdf" for a list of files that belong to this project.
+#
+# This file "pdfatfi.pl" may be renamed to "pdfatfi"
+# for installation purposes.
+#
+my $file = "pdfatfi.pl";
+my $program = uc($&) if $file =~ /^\w+/;
+my $version = "2.2";
+my $date = "2006/08/16";
+my $author = "Heiko Oberdiek";
+my $copyright = "Copyright (c) 2005, 2006 by $author.";
+#
+# History:
+# 2005/05/21 v1.0: First release.
+# 2006/08/16 v2.2: Included in DTX file of attachfile2.dtx.
+#
+
+use POSIX qw(strftime); # %z is used (GNU)
+use Digest::MD5;
+
+### program identification
+my $title = "$program $version, $date - $copyright\n";
+
+### error strings
+my $Error = "!!! Error:"; # error prefix
+
+### variables
+my $atfifile;
+
+### option variables
+my @bool = ("false", "true");
+$::opt_help = 0;
+$::opt_quiet = 0;
+$::opt_debug = 0;
+$::opt_verbose = 0;
+
+my $usage = <<"END_OF_USAGE";
+${title}Syntax: \L$program\E [options] <file[.atfi]>
+Function: Help program for LaTeX package "attachfile2".
+Options: (defaults:)
+ --help print usage
+ --(no)quiet suppress messages ($bool[$::opt_quiet])
+ --(no)verbose verbose printing ($bool[$::opt_verbose])
+ --(no)debug debug informations ($bool[$::opt_debug])
+END_OF_USAGE
+
+### process options
+my @OrgArgv = @ARGV;
+use Getopt::Long;
+GetOptions(
+ "help!",
+ "quiet!",
+ "debug!",
+ "verbose!",
+) or die $usage;
+!$::opt_help or die $usage;
+@ARGV == 1 or die "$usage$Error Missing jobname!\n";
+
+$::opt_quiet = 0 if $::opt_verbose;
+
+print $title unless $::opt_quiet;
+
+### get jobname
+$atfifile = $ARGV[0];
+if (!-f $atfifile && -f "$atfifile.atfi") {
+ $atfifile .= ".atfi";
+}
+-f $atfifile or die "$Error File `$atfifile' not found!\n";
+
+print "* job file = $atfifile\n" if $::opt_verbose;
+
+if ($::opt_debug) {
+ print <<"END_DEB";
+* OSNAME: $^O
+* PERL_VERSION: $]
+* ARGV: @OrgArgv
+END_DEB
+}
+
+my $tmpfile = $atfifile . ".tmp";
+
+my $timezone = strftime "%z", localtime;
+$timezone =~ s/^([+\-]\d\d)(\d\d)$/$1'$2'/;
+
+open(IN, $atfifile) or die "$Error Cannot open `$atfifile'!\n";
+open(OUT, ">$tmpfile") or die "$Error Cannot write `$tmpfile'!\n";
+
+while(<IN>) {
+ # timezone
+ if (s/^(\\attachfile\@timezone\{).*(\})$/$1$timezone$2/) {
+ print "* timezone = $timezone\n" if $::opt_verbose;
+ }
+
+ # file entry
+ if (/^\\attachfile\@file\[[^\]]*\]\{(.*)\}$/) {
+ my $hexfile = $1;
+ my $file = pack('H*', $hexfile);
+ my @s = stat($file);
+ if (@s == 0) {
+ print "!!! Warning: File `$file' not found!\n";
+ }
+ else {
+ my $size = @s[7];
+ my $mtime = @s[9];
+ my $ctime = @s[10]; # inode change time
+
+ my ($sec, $min, $hour, $mday, $mon, $year) = localtime($mtime);
+ my $moddate = sprintf("%04d%02d%02d%02d%02d%02d",
+ $year + 1900, $mon + 1, $mday,
+ $hour, $min, $sec);
+
+ # Manual page "perlport" says that "ctime" is creation
+ # time instead of inode change time for "Win32" and
+ # "Mac OS", but it is unsupported for "Mac OS X".
+ my $creationdate = "";
+ if ($^O eq 'MSWin32') { # cygwin?
+ ($sec, $min, $hour, $mday, $mon, $year) = localtime($ctime);
+ $creationdate = sprintf("%04d%02d%02d%02d%02d%02d",
+ $year + 1900, $mon + 1, $mday,
+ $hour, $min, $sec);
+ }
+
+ # md5 checksum
+ my $checksum = "";
+ my $ctx = Digest::MD5->new;
+ if (open(FILE, $file)) {
+ $ctx->addfile(*FILE);
+ $checksum = $ctx->hexdigest;
+ close(FILE);
+ }
+ else {
+ print "!!! Warning: File `$file' cannot be read,"
+ . " dropping checksum!\n";
+ }
+
+ $_ = "\\attachfile\@file["
+ . "ModDate=$moddate,Size=$size"
+ . (($checksum) ? ",CheckSum=$checksum" : "")
+ . (($creationdate) ? ",CreationDate=$creationdate" : "")
+ . "]{$hexfile}\n";
+ if ($::opt_verbose) {
+ print "* file entry = $file\n";
+ print " size = $size\n";
+ print " moddate = $moddate\n";
+ print " creationdate = $creationdate\n" if $creationdate;
+ print " checksum = $checksum\n" if $checksum;
+ }
+ }
+ }
+
+ print OUT $_;
+}
+
+close(IN);
+close(OUT);
+
+unlink($atfifile) or die "$Error Cannot delete old `$atfifile'!\n";
+rename $tmpfile, $atfifile
+ or die "$Error Cannot move `$tmpfile' to `$atfifile'!\n";
+
+print "*** ready. ***\n" unless $::opt_quiet;
+
+__END__
+% \end{macrocode}
+% \begin{macrocode}
+%</pdfatfi>
+% \end{macrocode}
+%
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/attachfile2.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/attachfile2.pdf}] Documentation.
+% \item[\CTAN{macros/latex/contrib/oberdiek/pdfatfi.pl}] Script.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex attachfile2.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% attachfile2.sty & tex/latex/oberdiek/attachfile2.sty\\
+% atfidvips.def & tex/latex/oberdiek/atfidvips.def\\
+% atfipdftex.def & tex/latex/oberdiek/atfipdftex.def\\
+% attachfile2.pdf & doc/latex/oberdiek/attachfile2.pdf\\
+% attachfile2.dtx & source/latex/oberdiek/attachfile2.dtx\\
+% pdfatfi.pl & scripts/oberdiek/pdfatfi.pl\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \paragraph{Script install.}
+% This package comes with a Perl script \xfile{pdfatfi.pl}.
+% Install it somewhere so that it is executed, when it is called
+% as \verb|pdfatfi| on the command line. Example for
+% installing it under Linux:
+% \begin{quote}
+%\begin{verbatim}
+%cp pdfatfi.pl /usr/local/bin/pdfatfi
+%chmod +x /usr/local/bin/pdfatfi
+%\end{verbatim}
+% \end{quote}
+%
+
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk attachfile2.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{attachfile2.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex attachfile2.dtx
+%makeindex -s gind.ist attachfile2.idx
+%pdflatex attachfile2.dtx
+%makeindex -s gind.ist attachfile2.idx
+%pdflatex attachfile2.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+% \bibitem{attachfile}
+% Scott Pakin: \textit{The \xpackage{attachfile} package};
+% 2005/02/20 v1.2;
+% \CTAN{macros/latex/contrib/attachfile/}.
+%
+% \bibitem{embedfile}
+% Heiko Oberdiek: \textit{The \xpackage{embedfile} package};
+% 2006/08/16 v1.0;
+% \CTAN{macros/latex/contrib/oberdiek/embedfile.pdf}.
+%
+% \bibitem{pdfspec}
+% Adobe Systems Incorporated:
+% \href{http://partners.adobe.com/public/developer/en/pdf/PDFReference16.pdf}%
+% {\textit{PDF Reference, Fifth Edition, Version 1.6}},%
+% November 2004;
+% \url{http://partners.adobe.com/public/developer/pdf/index_reference.html}.
+%
+% \bibitem{mime}
+% Network Working Group: RFC 2046, \textit{Multipurpose Internet Mail Extensions (MIME) Part Two:
+% Media Types}, November 1996; \url{http://www.rfc-editor.org/}.
+%
+% \bibitem{types}
+% IANA (Internet Assigned Numbers Authority):
+% \textit{MIME Media Types}, May 2006;
+% \url{http://www.iana.org/assignments/media-types/}.
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2005/02/23 v2.0}
+% \item
+% New options: \xoption{draft}/\xoption{final}.
+% \item
+% New option scale for scaling the annotation rectangle.
+% \item
+% Supported driver options: \xoption{pdftex}, \xoption{dvips}.
+% \item
+% Configuration file `attachfile.cfg' supported.
+% \item
+% Dependency of package calc dropped.
+% \item
+% \eTeX\ (\cs{numexpr}, \cs{dimexpr}) used.
+% \item
+% New auxiliary file \cs{jobname.atfi} to get data unavailable
+% by (pdf)\TeX, controlled by \cs{nofiles} and option nofiles.
+% \item
+% Use of package \xpackage{prokvopt} (never released).
+% \end{Version}
+% \begin{Version}{2005/10/07 v2.1}
+% \item
+% Option \xoption{annotname} for naming annotations
+% (this name can be used for embedded go-to actions).
+% \end{Version}
+% \begin{Version}{2006/08/17 v2.2}
+% \item
+% Use of package \xpackage{kvoptions} instead of \xpackage{prokvopt}.
+% \item
+% DTX framework.
+% \item
+% A little documentation.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/auxhook.dtx b/Master/texmf-dist/source/latex/oberdiek/auxhook.dtx
new file mode 100644
index 00000000000..aea6e225c54
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/auxhook.dtx
@@ -0,0 +1,475 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file auxhook.dtx
+% and the derived files
+% auxhook.sty, auxhook.pdf, auxhook.ins, auxhook.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/auxhook.dtx
+% CTAN:macros/latex/contrib/oberdiek/auxhook.pdf
+%
+% Unpacking:
+% (a) If auxhook.ins is present:
+% tex auxhook.ins
+% (b) Without auxhook.ins:
+% tex auxhook.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{auxhook.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If auxhook.drv is present:
+% latex auxhook.drv
+% (b) Without auxhook.drv:
+% latex auxhook.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex auxhook.dtx
+% makeindex -s gind.ist auxhook.idx
+% pdflatex auxhook.dtx
+% makeindex -s gind.ist auxhook.idx
+% pdflatex auxhook.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/auxhook.sty
+% TDS:doc/latex/oberdiek/auxhook.pdf
+% TDS:source/latex/oberdiek/auxhook.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: auxhook 2006/05/31 v1.0 Hooks for auxiliary files (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file auxhook.dtx
+and the derived files
+ auxhook.sty, auxhook.pdf, auxhook.ins, auxhook.drv.
+
+\endpreamble
+
+\generate{%
+ \file{auxhook.ins}{\from{auxhook.dtx}{install}}%
+ \file{auxhook.drv}{\from{auxhook.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{auxhook.sty}{\from{auxhook.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* auxhook.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `auxhook.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{auxhook.drv}%
+ [2006/05/31 v1.0 Hooks for auxiliary files (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{auxhook.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{126}
+%
+% \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 \~}
+%
+% \GetFileInfo{auxhook.drv}
+%
+% \title{The \xpackage{auxhook} package}
+% \date{2006/05/31 v1.0}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{auxhook} provides hooks for adding stuff at
+% the begin of \xfile{.aux} files.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{User interface}
+%
+% There are two kinds of \xfile{.aux} files, the main \xfile{.aux} file
+% and the \xfile{.aux} file that belongs to an included file, specified
+% by \cs{include}.
+%
+% Some packages write macros in the auxiliary files.
+% If the user stops using the package, these macros will usually
+% cause error messages because of unknown commands. Prominent example
+% is package \xpackage{babel}'s \cs{select@language}.
+%
+% But such a package could be written more cooperative. It can
+% also provide a definition in the auxiliary file (\cs{providecommand})
+% that silently disables the macros of the package
+% if the package is no longer in use.
+%
+% In case of the main auxiliary file, \cs{AtBeginDocument} can be used
+% for this purpose. Especially if several packages are involved, the
+% order cannot be controlled always (e.g., see package
+% \xpackage{hypdestopt} that hooks into \xpackage{hyperref}'s macros).
+% And there isn't any hook for the auxiliary files of the \cs{include}
+% feature.
+%
+% Thus this package patches \LaTeX's macros \cs{document} and
+% \cs{@include} to add the hooks where the auxiliary files
+% are opend and the first line with \cs{relax} is written.
+%
+% The patching can fail, if these macros are redefined by some
+% other package. If the other package still uses the original
+% definition, then load package \xpackage{auxhook} earlier.
+% (With \cs{RequirePackage} the package also can be loaded before
+% the class). If the redefinition doesn't use the original meaning,
+% then you can try to load package \xpackage{auxhook} afterwards,
+% but you need luck that the patch succeeds.
+%
+% The hooks are macros:
+% \begin{description}
+% \item[\cs{@beginmainauxhook}:] Start of the main auxiliary file.
+% The hook is called after the first line with \cs{relax} is written.
+% \item[\cs{@beginpartauxhook}:] The same for the auxiliary files
+% that belongs to the files that are included by \cs{include}.
+% \end{description}
+% If you want to add something to these hooks, you can use
+% \cs{g@addto@macro} from \LaTeX's kernel. But the package provides
+% macros to add code that adds a line to the auxiliary file:
+%
+% \begin{declcs}{AddLineBeginMainAux}\,\M{line}\\
+% \cs{AddLineBeginPartAux}\,\M{line}\\
+% \cs{AddLineBeginAux}\,\M{line}
+% \end{declcs}
+% The \meta{line} is added at the begin of the main auxiliary file
+% by \cs{AddLineBeginMainAux} and at the begin of the auxiliary files
+% of included files by \cs{AddLineBeginPartAux}. \cs{AddLineBeginAux} writes
+% in both kinds of auxiliary files.
+%
+% Examples, see packages \xpackage{hypdestopt} (\cite{hypdestopt}) and
+% \xpackage{zref} (\cite{zref}).
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Identification}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{auxhook}%
+ [2006/05/31 v1.0 Hooks for auxiliary files (HO)]
+% \end{macrocode}
+%
+% \subsection{Hook setup}
+%
+% \begin{macro}{\@beginmainauxhook}
+% The hook for the main auxiliary file, initially empty.
+% \begin{macrocode}
+\providecommand*{\@beginmainauxhook}{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@beginpartauxhook}
+% The hook for auxiliary files of included files, initially empty.
+% \begin{macrocode}
+\providecommand*{\@beginpartauxhook}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{User macros}
+%
+% \begin{macro}{\AddLineBeginMainAux}
+% \begin{macrocode}
+\newcommand{\AddLineBeginMainAux}[1]{%
+ \g@addto@macro\@beginmainauxhook{%
+ \immediate\write\@mainaux{#1}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\AtBeginPartAuxLine}
+% \begin{macrocode}
+\newcommand{\AddLineBeginPartAux}[1]{%
+ \g@addto@macro\@beginpartauxhook{%
+ \immediate\write\@partaux{#1}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\AddLineBeginAux}
+% \begin{macrocode}
+\newcommand{\AddLineBeginAux}[1]{%
+ \AddLineBeginMainAux{#1}%
+ \AddLineBeginPartAux{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Patches}
+%
+% \subsubsection{\cs{document}}
+%
+% \begin{macrocode}
+\begingroup
+ \def\y#1\immediate\write\@mainaux#2#3\auxhook@nil{%
+ \toks@{%
+ #1\immediate\write\@mainaux{#2}%
+ \@beginmainauxhook
+ #3%
+ }%
+ \xdef\document{\the\toks@}%
+ \endgroup
+ }%
+ \def\x#1\immediate\write\@mainaux#2#3\auxhook@nil{%
+ \toks@{#3}%
+ \edef\x{\the\toks@}%
+ \ifx\x\@empty
+ \PackageWarningNoLine{auxhook}{%
+ Cannot patch \string\document,\MessageBreak
+ use \string\AtBeginDocument\space instead%
+ }%
+ \endgroup
+ \AtBeginDocument{%
+ \if@filesw
+ \@beginmainauxhook
+ \fi
+ }%
+ \else
+ \expandafter\y\document\auxhook@nil
+ \fi
+ }%
+\expandafter\x\document\immediate\write\@mainaux{}\auxhook@nil
+% \end{macrocode}
+%
+% \subsubsection{\cs{@include}}
+%
+% \begin{macrocode}
+\begingroup
+ \def\y#1\immediate\write\@partaux#2#3\auxhook@nil{%
+ \endgroup
+ \def\@include##1 {%
+ #1\immediate\write\@partaux{#2}%
+ \@beginpartauxhook
+ #3%
+ }%
+ }%
+ \def\x#1\immediate\write\@partaux#2#3\auxhook@nil{%
+ \toks@{#3}%
+ \edef\x{\the\toks@}%
+ \ifx\x\@empty
+ \PackageWarningNoLine{auxhook}{%
+ Cannot patch \string\@include,\MessageBreak
+ patch dropped%
+ }%
+ \endgroup
+ \else
+ \expandafter\y\@include{##1} \auxhook@nil
+ \fi
+ }%
+\expandafter\x\@include{#1} \immediate\write\@partaux{}\auxhook@nil
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/auxhook.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/auxhook.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex auxhook.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% auxhook.sty & tex/latex/oberdiek/auxhook.sty\\
+% auxhook.pdf & doc/latex/oberdiek/auxhook.pdf\\
+% auxhook.dtx & source/latex/oberdiek/auxhook.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk auxhook.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{auxhook.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex auxhook.dtx
+%makeindex -s gind.ist auxhook.idx
+%pdflatex auxhook.dtx
+%makeindex -s gind.ist auxhook.idx
+%pdflatex auxhook.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{hypdestopt}
+% Heiko Oberdiek: \textit{The \xpackage{hypdestopt} package};
+% 2006/05/30 v1.0;
+% \CTAN{macros/latex/contrib/oberdiek/hypdestopt.pdf}.
+%
+% \bibitem{hyperref}
+% Sebastian Rahtz, Heiko Oberdiek:
+% \textit{The \xpackage{hyperref} package};
+% 2006/08/16 v6.75c;
+% \CTAN{macros/latex/contrib/hyperref/}.
+%
+% \bibitem{zref}
+% Heiko Oberdiek: \textit{The \xpackage{zref} package};
+% 2006/05/25 v1.2;
+% \CTAN{macros/latex/contrib/oberdiek/zref.pdf}.
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2006/05/31 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/bmpsize.dtx b/Master/texmf-dist/source/latex/oberdiek/bmpsize.dtx
new file mode 100644
index 00000000000..f315db219f3
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/bmpsize.dtx
@@ -0,0 +1,3790 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file bmpsize.dtx
+% and the derived files
+% bmpsize.sty, bmpsize.pdf, bmpsize.ins, bmpsize.drv,
+% bmpsize-base.sty, bmpsize-test.tex, bmpsize-dvips.def,
+% bmpsize-dvipdfm.def, bmpsize-dvipdfmx.def.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/bmpsize.dtx
+% CTAN:macros/latex/contrib/oberdiek/bmpsize.pdf
+%
+% Unpacking:
+% (a) If bmpsize.ins is present:
+% tex bmpsize.ins
+% (b) Without bmpsize.ins:
+% tex bmpsize.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{bmpsize.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If bmpsize.drv is present:
+% latex bmpsize.drv
+% (b) Without bmpsize.drv:
+% latex bmpsize.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex bmpsize.dtx
+% makeindex -s gind.ist bmpsize.idx
+% pdflatex bmpsize.dtx
+% makeindex -s gind.ist bmpsize.idx
+% pdflatex bmpsize.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/bmpsize.sty
+% TDS:tex/latex/oberdiek/bmpsize-base.sty
+% TDS:tex/latex/oberdiek/bmpsize-test.tex
+% TDS:tex/latex/oberdiek/bmpsize-dvips.def
+% TDS:tex/latex/oberdiek/bmpsize-dvipdfm.def
+% TDS:tex/latex/oberdiek/bmpsize-dvipdfmx.def
+% TDS:doc/latex/oberdiek/bmpsize.pdf
+% TDS:source/latex/oberdiek/bmpsize.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: bmpsize 2006/08/24 v1.0 Extract size and resolution data from bitmap files (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file bmpsize.dtx
+and the derived files
+ bmpsize.sty, bmpsize.pdf, bmpsize.ins, bmpsize.drv,
+ bmpsize-base.sty, bmpsize-test.tex, bmpsize-dvips.def,
+ bmpsize-dvipdfm.def, bmpsize-dvipdfmx.def.
+
+\endpreamble
+
+\generate{%
+ \file{bmpsize.ins}{\from{bmpsize.dtx}{install}}%
+ \file{bmpsize.drv}{\from{bmpsize.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{bmpsize.sty}{\from{bmpsize.dtx}{package}}%
+ \file{bmpsize-base.sty}{\from{bmpsize.dtx}{base}}%
+ \file{bmpsize-test.tex}{\from{bmpsize.dtx}{test}}%
+ \file{bmpsize-dvips.def}{\from{bmpsize.dtx}{dvips}}%
+ \file{bmpsize-dvipdfm.def}{\from{bmpsize.dtx}{dvipdfm}}%
+ \file{bmpsize-dvipdfmx.def}{\from{bmpsize.dtx}{dvipdfmx}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* bmpsize.sty, bmpsize-base.sty, bmpsize-test.tex,}
+\Msg{* bmpsize-dvips.def, bmpsize-dvipdfm.def,}
+\Msg{* bmpsize-dvipdfmx.def}
+\Msg{*}
+\Msg{* To produce the documentation run the file `bmpsize.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{bmpsize.drv}%
+ [2006/08/24 v1.0 Extract size and resolution data from bitmap files (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{bmpsize.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{3510}
+%
+% \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 \~}
+%
+% \GetFileInfo{bmpsize.drv}
+%
+% \title{The \xpackage{bmpsize} package}
+% \date{2006/08/24 v1.0}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{bmpsize} analyzes bitmap images to extract
+% size and resolution data. It adds this feature to the graphics package
+% that now do not need separate bounding box files for bitmap images.
+% Additionally the implementation for the inclusion of bitmap images
+% in some drivers of package \xpackage{graphicx} are rewritten to support
+% options \xoption{viewport}, \xoption{trim} and \xoption{clip}.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% \subsection{Introduction}
+%
+% The support of bitmap images in the \TeX\ world is quite poor.
+% \TeX\ can read text files and thus parse the bounding box
+% of EPS files, but it cannot read binary files. If \TeX\ reads
+% a line, it removes spaces before the line end and normalizes
+% the line end itself to get independent from the convention of
+% the operating system.
+%
+% The situation changed with \pdfTeX. It is a \TeX\ compiler,
+% where the output driver is already integrated.
+% Images of type JPEG and PNG are supported directly and
+% the size of the images are reported back to the \TeX\ language.
+% Thus it is easy for package \xpackage{graphics} to get the
+% size of the images.
+%
+% The problem remains for other drivers than \pdfTeX\ in PDF mode.
+% The size information must either be given manually by the
+% bounding box options or an additional file is used for each
+% image, where the size information is stored as EPS bounding box.
+% Program \xpackage{dvips} comes with the program \xpackage{ebb}
+% that create these \xfile{.bb} files. However it ignores the
+% natural size of the image and uses a fixed resolution of 100\,DPI.
+%
+% Since \pdfTeX\ 1.30.0 there are some new primites. Especially
+% \cs{pdffiledump} is very helpful. It reads a file in binary mode
+% and reports the selected area as hex dump. It works in both
+% DVI and PDF mode of \pdfTeX. Thus it is now possible to read
+% and parse bitmap files to get their size.
+% This project uses this feature to implement parsers for many
+% bitmap file types.
+%
+% \subsection{Bitmap image parsers}
+%
+% This project supports the following image types:
+% \begin{quote}
+% BMP, GIF, JPEG, MSP, PAM, PCX, PNG, PNM, SGI, TGA, TIFF, WMF, XPM
+% \end{quote}
+% Consult the documentation of your \TeX\ distribution and driver
+% which types are supported by your driver. Sometimes automatically triggered
+% conversions can be configured to extend the range of supported
+% image types.
+%
+% \subsubsection{User interface}
+%
+% Package \xpackage{bmpsize} hooks into package \xpackage{graphics}.
+% If an image is included and its size is not given, then
+% \xpackage{bmpsize} investigates the image. If it could be
+% parsed as known bitmap file type, the size is reported back
+% to package \xpackage{graphics}.
+%
+% The following options are added to the options of package \xpackage{graphicx}:
+% \begin{description}
+% \item[\xoption{resolutionunit}:] Specifies the unit of the
+% options for setting the resolution. Default is \verb|1in| that means
+% the numbers are interpreted as dots per inch (DPI).
+% \item[\xoption{defaultresolution}:] Bitmap files do not always provide
+% information about their resolution (density). If this information
+% is not given, the values of this option are used to calculate the
+% image size. Default: \verb|72 !|
+% \item[\xoption{resolution}:] This option override the resolution given
+% in the bitmap file.
+% \item[\xoption{bmpsizefast}:] Values are \verb|true| and \verb|false|.
+% The option is enabled by default. Then mainly \eTeX's arithmetic is
+% used to calculate the width and height. However the dimen dimensions
+% are limited. Therefore overflow errors can happen.
+% Disable then this option to use the arithmetic of package \xpackage{fp}.
+% It allows a larger range of numbers at the cost of speed.
+% \end{description}
+% Options \xoption{defaultresolution} and \xoption{resolution} expect
+% two numbers, separated by a space. The first is taken as density
+% for the horizontal x axis, the second for the vertical y axis.
+% One of the numbers may be replaced by an exclamation mark. In this
+% an aspect ratio is respected and the correct density for this axis
+% automatically calculated. If one number is given, this number is
+% used for both axes.
+% Examples:
+% \begin{quote}
+% \def\comment#1{%
+% \unskip\qquad\textit{\%\space#1}\\%
+% \ignorespaces
+% }%
+% |defaultresolution=72 !| \comment{Default}
+% |resolution=100| \comment{Simulates behaviour of program \xpackage{ebb}}
+% \end{quote}
+%
+% The options can be set in \cs{includegraphics} or using \cs{bmpsizesetup}.
+% \verb|\setkeys{Gin}| is equivalent to the latter case.
+% \begin{quote}
+%\begin{verbatim}
+%\bmpsizesetup{resolutionunit=1in, resolution=100}
+%\includegraphics[
+% defaultresolution=72 !,
+% bmpsizefast=false
+%]{image}
+%\end{verbatim}
+% \end{quote}
+%
+% \subsubsection{Hints}
+%
+% \begin{itemize}
+% \item My version of \xfile{dvips.def} 1999/02/16 v3.0i defines
+% rules for the supported bitmap extensions, but does not
+% include them in the list of extensions that are tried
+% if the file name is not given with an extension.
+% In such a case, the list of extensions can be set
+% by \cs{DeclareGraphicsExtensions}, see \xpackage{grfguide}.
+% The following code just extends the list:
+% \begin{quote}
+%\begin{verbatim}
+%\makeatletter
+%\g@addto@macro\Gin@extensions{,.bmp,.pcx,.msp}
+%\makeatother
+%\end{verbatim}
+% \end{quote}
+% \item My version of \xfile{dvipdfm.def} 1998/11/24 vx.x misses
+% the graphics rule for PNG files. It can be added by:
+% \begin{quote}
+%\begin{verbatim}
+%\DeclareGraphicsRule{.png}{bmp}{.bb}{#1}
+%\end{verbatim}
+% \end{quote}
+% See the previous issue to add the extension \xfile{.png} to the list
+% of extensions for package \xpackage{graphics}.
+% \end{itemize}
+%
+% \subsubsection{Test program}
+%
+% There is a test program \xfile{bmpsize-test.tex}. Run it through
+% \verb|latex|, \verb|pdflatex|, or \verb|pdftex|. Then given
+% image files are inspected and the result is printed.
+%
+% \subsubsection{Interface for programmers}
+%
+% The macro names of the parsers are \verb|\bmpsize@read@|\meta{type}.
+% Example: \cs{bmpsize@read@jpg} in case of JPEG.
+%
+% A parser sets the switch \cs{ifbmpsize@ok} to true, if it
+% could successfully parse the image file.
+% The width and height are returnd in \cs{bmpsize@width} and
+% \cs{bmpsize@height}. If information about density is available,
+% it is used to calculate width and height of the image, otherwise
+% the values given by option \xoption{defaultresolution} is used.
+% \xoption{resolution} overwrites the values in the image file.
+%
+% \subsection{Improved bitmap inclusion}
+%
+% Some drivers for package \xpackage{graphics} define the graphics
+% type \xoption{bmp} for bitmap images. The code in the standard
+% drivers for \xoption{dvips}, \xoption{dvipdfm}, and \xoption{dvipdfmx}
+% is very basic and misses essential features of the
+% package \xpackage{graphicx}. Therefore the code for bitmap
+% inclusion is automatically rewritten by this package to add
+% the following features:
+% \begin{itemize}
+% \item Support for \xoption{viewport} and \xoption{trim}.
+% \item Support for \xoption{clip}.
+% \item In case of \xoption{dvipdfm} and \xoption{dvipdfmx} the
+% bitmap images are reused and not included again if they
+% are used more than once.
+% \end{itemize}
+% However, there is a difference between \xoption{dvipdfm} and
+% \xoption{dvipdfmx}, especially if images are reused. In the
+% former case the reused box has width and height of 1bp, in the
+% latter case 1in. Thus the correct driver option must be given.
+% \xoption{dvipdfm} and \xoption{dvipdfmx} are not equivalent.
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Basic package \xpackage{bmpsize-base}}
+%
+% Identification.
+% \begin{macrocode}
+%<*base>
+\ProvidesPackage{bmpsize-base}%
+ [2006/08/24 v1.0 Basic part of bmpsize (HO)]
+% \end{macrocode}
+% Modules of package \xpackage{fp} are used for calculations.
+% \begin{macrocode}
+\RequirePackage{fp-basic}
+\RequirePackage{fp-snap}
+% \end{macrocode}
+% Package \xpackage{fp} uses nested \cs{loop} structures.
+% That breaks with the plain-\TeX\ version of \cs{loop}.
+% Therefore we use the \LaTeX\ variant.
+% \begin{macro}{\@bmpsize@plain@loop}
+% \begin{macrocode}
+\long\def\@bmpsize@plain@loop#1\repeat{%
+ \def\iterate{%
+ #1\relax
+ \expandafter\iterate\fi
+ }%
+ \iterate
+ \let\iterate\relax
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\newif\ifbmpsize@ok
+\let\@bmpsize@ok\bmpsize@oktrue
+
+\newif\if@bmpsize@bigendian
+\newif\if@bmpsize@absnum
+\newif\if@bmpsize@user@resolution
+\newif\if@bmpsize@fast
+\@bmpsize@fasttrue
+
+\def\@bmpsize@init{%
+ \let\@bmpsize@org@plain@loop\loop
+ \let\loop\@bmpsize@plain@loop
+ \bmpsize@okfalse
+ \@bmpsize@bigendiantrue
+ \@bmpsize@absnumfalse
+ \let\bmpsize@pixelwidth\relax
+ \let\bmpsize@pixelheight\relax
+ \let\bmpsize@pixelx\relax
+ \let\bmpsize@pixely\relax
+ \let\bmpsize@unit\relax
+ \let\bmpsize@pixelxdenom\relax
+ \let\bmpsize@pixelydenom\relax
+}
+
+\def\@bmpsize@stop#1\@nil{}
+
+\def\@bmpsize@loop#1{%
+ #1%
+ \@bmpsize@loop{#1}%
+}
+\def\@bmpsize@break#1\@bmpsize@loop#2{}
+
+\def\@bmpsize@size#1#2#3{%
+ \edef#3{\pdffilesize{#1}}%
+ \ifx#3\@empty
+ \expandafter\@bmpsize@stop
+ \fi
+ \ifnum#3<#2\relax
+ \expandafter\@bmpsize@stop
+ \fi
+}
+
+\def\@bmpsize@read#1#2#3{%
+ \edef\@bmpsize@buf{\pdffiledump offset#3length#2{#1}}%
+ \edef\@bmpsize@temp{%
+ \noexpand\@bmpsize@check@byte{#2}\@bmpsize@buf{}{}\noexpand\\%
+ }%
+ \@bmpsize@temp
+}
+\def\@bmpsize@fillbuf#1{%
+ \ifx\@bmpsize@buf\@empty
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \edef\@bmpsize@buf{%
+ \pdffiledump offset\bmpsize@offset
+ length\bmpsize@fillbuflength{#1}%
+ }%
+ \ifx\@bmpsize@buf\@empty
+ \expandafter\@bmpsize@stop
+ \fi
+ \edef\bmpsize@offset{\the\numexpr\bmpsize@offset+\bmpsize@fillbuflength}%
+ }%
+}
+\def\bmpsize@fillbuflength{10}
+
+\def\@bmpsize@append#1#2#3{%
+ \edef#1{#2#3}%
+}
+\def\@bmpsize@pushback#1{%
+ \edef\@bmpsize@buf{#1\@bmpsize@buf}%
+}
+
+\def\@bmpsize@iswhite#1{%
+ \ifnum\pdfstrcmp{#1}{09}=\z@
+ \else
+ \ifnum\pdfstrcmp{#1}{0A}=\z@
+ \else
+ \ifnum\pdfstrcmp{#1}{0D}=\z@
+ \else
+ \ifnum\pdfstrcmp{#1}{20}=\z@
+ \else
+ 1%
+ \fi
+ \fi
+ \fi
+ \fi
+ \space
+}
+\def\@bmpsize@isdigit#1{%
+ \ifnum\pdfstrcmp{#1}{30}<\z@
+ 1%
+ \else
+ \ifnum\pdfstrcmp{#1}{39}>\z@
+ 1%
+ \fi
+ \fi
+ \space
+}
+
+\def\@bmpsize@check@byte#1#2#3{%
+ \ifnum#1<\@ne
+ \csname fi\endcsname
+ \@bmpsize@cleanup@end
+ \else
+ \csname fi\endcsname
+ \ifx!#2#3!%
+ \csname fi\endcsname
+ \@bmpsize@stop
+ \else
+ \csname fi\endcsname
+ \expandafter\@bmpsize@check@byte\expandafter{\the\numexpr#1-1}%
+}
+\def\@bmpsize@cleanup@end#1\\{}
+
+\def\@bmpsize@swap@maybe#1{%
+ \if@bmpsize@bigendian
+ \else
+ \edef#1{\expandafter\@bmpsize@@swap#1\@empty\@empty\@empty\@empty}%
+ \fi
+}
+\def\@bmpsize@@swap#1#2#3#4#5#6#7#8{%
+ #7#8#5#6#3#4#1#2%
+}
+
+\def\@bmpsize@skip@one{%
+ \edef\@bmpsize@buf{\expandafter\@gobbletwo\@bmpsize@buf}%
+}
+\def\@bmpsize@skip@two{%
+ \edef\@bmpsize@buf{\expandafter\@gobblefour\@bmpsize@buf}%
+}
+\def\@bmpsize@skip@four{%
+ \edef\@bmpsize@buf{%
+ \expandafter\expandafter\expandafter\@gobblefour\expandafter
+ \@gobblefour\@bmpsize@buf
+ }%
+}
+
+\def\@bmpsize@grab#1#2{%
+ \edef#1{\noexpand\@bmpsize@grab@byte#2=\@bmpsize@buf\noexpand\\}%
+ \edef#1{#1}%
+}
+\def\@bmpsize@grab@byte#1=#2#3{%
+ #2#3%
+ \ifnum#1>\@ne
+ \expandafter\@bmpsize@grab@byte\the\numexpr#1-1\expandafter=%
+ \else
+ \expandafter\@bmpsize@cleanup@end
+ \fi
+}
+
+\def\@bmpsize@abs@maybe#1{%
+ \let\@bmpsize@temp\relax
+ \if@bmpsize@absnum
+ \ifnum"\expandafter\@car#1\@nil>7 %
+ \edef#1{\expandafter\@bmpsize@abs@byte#1\relax}%
+ \ifnum\pdfstrcmp{#1}{7FFFFFFF}=\z@
+ \let\@bmpsize@temp\@bmpsize@stop
+ \else
+ \def\@bmpsize@temp{\edef#1{\the\numexpr#1+1}}%
+ \fi
+ \fi
+ \fi
+}
+\def\@bmpsize@abs@byte#1{%
+ \ifx#1\relax
+ \else
+ \ifcase"0#1 %
+ F\or E\or D\or C\or B\or A\or 9\or 8\or
+ 7\or 6\or 5\or 4\or 3\or 2\or 1\or 0%
+ \fi
+ \expandafter\@bmpsize@abs@byte
+ \fi
+}
+
+\def\@bmpsize@num@one#1{%
+ \@bmpsize@grab#11%
+ \@bmpsize@abs@maybe#1%
+ \edef#1{\number"#1}%
+ \@bmpsize@temp
+ \@bmpsize@skip@one
+}
+\def\@bmpsize@num@two#1{%
+ \@bmpsize@grab#12%
+ \@bmpsize@swap@maybe#1%
+ \@bmpsize@abs@maybe#1%
+ \edef#1{\number"#1}%
+ \@bmpsize@temp
+ \@bmpsize@skip@two
+}
+\def\@bmpsize@num@four#1{%
+ \@bmpsize@grab#14%
+ \@bmpsize@swap@maybe#1%
+ \@bmpsize@abs@maybe#1%
+ \ifnum\pdfstrcmp{#1}{7FFFFFFF}>\z@
+ \expandafter\@bmpsize@stop
+ \fi
+ \edef#1{\number"#1}%
+ \@bmpsize@temp
+ \@bmpsize@skip@four
+}
+
+\def\@bmpsize@div#1#2#3{% #1 := #2/#3
+ \FPdiv#1{#2}{#3}%
+ \@bmpsize@beautify#1%
+}
+\def\@bmpsize@beautify#1{%
+ \FPifint#1%
+ \edef#1{\expandafter\@bmpsize@trunc#1.\@nil}%
+ \else
+ \edef#1{\expandafter\@bmpsize@cleanup@frac#1.\@nil}%
+ \fi
+}
+\def\@bmpsize@trunc#1.#2\@nil{#1}
+% #1 isn't an integer, thus we should have at least one
+% necessary digit after the dot
+\def\@bmpsize@cleanup@frac#1.#2#3.#4\@nil{%
+ #1.#2%
+ \ifx\\#3\\%
+ \else
+ \@bmpsize@cleanup@fracdigits#3000000000\@nil
+ \fi
+}
+\def\@bmpsize@cleanup@fracdigits#1#2#3#4#5#6#7#8#9{%
+ \ifcase#9 %
+ \ifcase#8 %
+ \ifcase#7 %
+ \ifcase#6 %
+ \ifcase#5 %
+ \ifcase #4 %
+ \ifcase #3 %
+ \ifcase #2 %
+ \ifcase #1 %
+ \else
+ #1%
+ \fi
+ \else
+ #1#2%
+ \fi
+ \else
+ #1#2#3%
+ \fi
+ \else
+ #1#2#3#4%
+ \fi
+ \else
+ #1#2#3#4#5%
+ \fi
+ \else
+ #1#2#3#4#5#6%
+ \fi
+ \else
+ #1#2#3#4#5#6#7%
+ \fi
+ \else
+ #1#2#3#4#5#6#7#8%
+ \fi
+ \else
+ #1#2#3#4#5#6#7#8#9%
+ \fi
+ \@bmpsize@trunc.%
+}
+
+\def\@bmpsize@end{%
+ \ifbmpsize@ok
+ \ifx\bmpsize@pixelwidth\relax
+ \bmpsize@okfalse
+ \fi
+ \ifx\bmpsize@pixelheight\relax
+ \bmpsize@okfalse
+ \fi
+ \fi
+ \ifbmpsize@ok
+ \ifnum\bmpsize@pixelwidth>\z@
+ \else
+ \bmpsize@okfalse
+ \fi
+ \ifnum\bmpsize@pixelheight>\z@
+ \else
+ \bmpsize@okfalse
+ \fi
+ \fi
+ \ifbmpsize@ok
+ \ifcase 0%
+ \ifx\bmpsize@pixelx\relax 1 \fi
+ \ifx\bmpsize@pixely\relax 1 \fi
+ \ifnum\bmpsize@pixelx>\z@\else 1 \fi
+ \ifnum\bmpsize@pixely>\z@\else 1 \fi
+ \ifx\bmpsize@pixelxdenom\relax
+ \ifx\bmpsize@pixelydenom\relax\else 1 \fi
+ \else
+ \ifnum\bmpsize@pixelxdenom>\z@\else 1 \fi
+ \fi
+ \ifx\bmpsize@pixelydenom\relax
+ \else
+ \ifnum\bmpsize@pixelydenom>\z@\else 1 \fi
+ \fi
+ \else
+ \let\bmpsize@pixelx\relax
+ \let\bmpsize@pixely\relax
+ \let\bmpsize@unit\relax
+ \let\bmpsize@pixelxdenom\relax
+ \let\bmpsize@pixelydenom\relax
+ \fi
+ \ifx\bmpsize@pixelxdenom\relax
+ \else
+ \@bmpsize@div\bmpsize@pixelx\bmpsize@pixelx\bmpsize@pixelxdenom
+ \@bmpsize@div\bmpsize@pixely\bmpsize@pixely\bmpsize@pixelydenom
+ \let\bmpsize@pixelxdenom\relax
+ \let\bmpsize@pixelydenom\relax
+ \fi
+ \ifcase 0\ifx\bmpsize@unit\relax 1\fi
+ \if@bmpsize@user@resolution 1\fi
+ \relax
+ \let\bmpsize@calc@unit\bmpsize@unit
+ \let\bmpsize@calc@pixelx\bmpsize@pixelx
+ \let\bmpsize@calc@pixely\bmpsize@pixely
+ \else
+ \let\bmpsize@calc@unit\bmpsize@unit@default
+ \let\bmpsize@calc@pixelx\bmpsize@pixelx@default
+ \let\bmpsize@calc@pixely\bmpsize@pixely@default
+ \ifx\bmpsize@calc@pixely\Gin@exclamation
+ \ifx\bmpsize@pixelx\relax
+ \let\bmpsize@calc@pixely\bmpsize@calc@pixelx
+ \else
+ \FPdiv\bmpsize@calc@pixely\bmpsize@calc@pixelx\bmpsize@pixelx
+ \FPmul\bmpsize@calc@pixely\bmpsize@calc@pixely\bmpsize@pixely
+ \fi
+ \else
+ \ifx\bmpsize@calc@pixelx\Gin@exclamation
+ \ifx\bmpsize@pixelx\relax
+ \let\bmpsize@calc@pixelx\bmpsize@calc@pixely
+ \else
+ \FPdiv\bmpsize@calc@pixelx\bmpsize@calc@pixely\bmpsize@pixely
+ \FPmul\bmpsize@calc@pixelx\bmpsize@calc@pixelx\bmpsize@pixelx
+ \fi
+ \fi
+ \fi
+ \fi
+ \FPdiv\bmpsize@width\bmpsize@pixelwidth\bmpsize@calc@pixelx
+ \FPdiv\bmpsize@height\bmpsize@pixelheight\bmpsize@calc@pixely
+ % calculation of width and height in bp for package graphics
+ % 1in = 72bp = 72.27pt, 72/72.27 = 8/8.03, 1pt = 65536sp
+ \if@bmpsize@fast
+ \edef\bmpsize@width{%
+ \strip@pt\dimexpr.99626\dimexpr
+ \bmpsize@width\dimexpr\bmpsize@calc@unit
+ }%
+ \edef\bmpsize@height{%
+ \strip@pt\dimexpr.99626\dimexpr
+ \bmpsize@height\dimexpr\bmpsize@calc@unit
+ }%
+ \else
+ \edef\@bmpsize@temp{\number\dimexpr\bmpsize@calc@unit}%
+ \ifnum\@bmpsize@temp>100000 %
+ \FPmul\@bmpsize@temp\@bmpsize@temp{0.00001}%
+ \def\@bmpsize@corr{100000}%
+ \else
+ \let\@bmpsize@corr\relax
+ \fi
+ \FPmul\bmpsize@width\bmpsize@width\@bmpsize@temp
+ \FPmul\bmpsize@height\bmpsize@height\@bmpsize@temp
+ \FPmul\bmpsize@width\bmpsize@width{8}%
+ \FPmul\bmpsize@height\bmpsize@height{8}%
+ \FPdiv\bmpsize@width\bmpsize@width{8.03}%
+ \FPdiv\bmpsize@height\bmpsize@height{8.03}%
+ \FPdiv\bmpsize@width\bmpsize@width{65536}%
+ \FPdiv\bmpsize@height\bmpsize@height{65536}%
+ \ifx\@bmpsize@corr\relax
+ \else
+ \FPmul\bmpsize@width\bmpsize@width\@bmpsize@corr
+ \FPmul\bmpsize@height\bmpsize@height\@bmpsize@corr
+ \fi
+ \FPround\bmpsize@width\bmpsize@width{5}%
+ \FPround\bmpsize@height\bmpsize@height{5}%
+ \@bmpsize@beautify\bmpsize@width
+ \@bmpsize@beautify\bmpsize@height
+ \fi
+ \fi
+ \let\loop\@bmpsize@org@plain@loop
+}
+\def\bmpsize@unit@default{1in}
+\def\bmpsize@pixelx@default{72}
+\let\bmpsize@pixely@default\Gin@exclamation
+
+\def\bmpsize@types{png,jpg,bmp,gif,tiff,pnm,pam,xpm,tga,pcx,msp,sgi}
+%</base>
+% \end{macrocode}
+%
+% \subsection{Bitmap formats}
+%
+% \subsubsection{png}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin png
+%big-endian
+%
+%read 24 0
+%grab 8 -> $temp
+%check streq $temp [0x89 "PNG" 0x0D 0x0A 0x1A 0x0A]
+%num 4 -> $length
+%grab 4 -> $temp
+%check streq $temp ["IHDR"]
+%num 4 -> $pixelwidth
+%num 4 -> $pixelheight
+%ok
+%assign numexpr(20 + $length) -> $offset
+%loop
+% read 8 $offset
+% num 4 -> $length
+% grab 4 -> $temp
+% if streq $temp ["IDAT"]
+% stop
+% fi
+% if streq $temp ["pHYs"]
+% read 9 numexpr($offset + 8)
+% num 4 -> $pixelx
+% num 4 -> $pixely
+% grab 1 -> $temp
+% if numeq $temp 1
+% assign {100cm} -> $unit
+% fi
+% stop
+% fi
+% assign numexpr($offset + 12 + $length) -> $offset
+%repeat
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@png}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@png#1{%
+ \@bmpsize@init
+ \@bmpsize@bigendiantrue
+ \@bmpsize@read{#1}{24}{0}%
+ \@bmpsize@grab\bmpsize@temp{8}%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@four
+ \ifnum\pdfstrcmp{\bmpsize@temp}{89504E470D0A1A0A}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@num@four\bmpsize@length
+ \@bmpsize@grab\bmpsize@temp{4}%
+ \@bmpsize@skip@four
+ \ifnum\pdfstrcmp{\bmpsize@temp}{49484452}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@num@four\bmpsize@pixelwidth
+ \@bmpsize@num@four\bmpsize@pixelheight
+ \@bmpsize@ok
+ \edef\bmpsize@offset{\the\numexpr20+\bmpsize@length}%
+ \@bmpsize@loop{%
+ \@bmpsize@read{#1}{8}{\bmpsize@offset}%
+ \@bmpsize@num@four\bmpsize@length
+ \@bmpsize@grab\bmpsize@temp{4}%
+ \@bmpsize@skip@four
+ \ifnum\pdfstrcmp{\bmpsize@temp}{49444154}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@stop
+ }%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{70485973}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@read{#1}{9}{\numexpr\bmpsize@offset+8\relax}%
+ \@bmpsize@num@four\bmpsize@pixelx
+ \@bmpsize@num@four\bmpsize@pixely
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\bmpsize@temp=1\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \def\bmpsize@unit{100cm}%
+ }%
+ \@bmpsize@stop
+ }%
+ \edef\bmpsize@offset{\the\numexpr\bmpsize@offset+12+\bmpsize@length}%
+ }%
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{jpg}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin jpg
+%
+%read 3 0
+%grab 3 -> $temp % SOI and 0xFF
+%check streq $temp [0xFF 0xD8 0xFF]
+%assign {2} -> $offset
+%assign {0} -> $exifdensity
+%loop
+% read 4 $offset
+% grab 1 -> $temp
+% check streq $temp [0xFF]
+% num 1 -> $temp
+% if numeq $temp 0xDA % SOS
+% stop
+% fi
+% % look for JFIF APP0 segment
+% if numeq $temp 0xE0 % APP0
+% num 2 -> $length
+% if numeq $exifdensity 0
+% if numge $length 16 % a JFIF segment has 16 bytes at least
+% read 12 numexpr($offset + 4)
+% grab 5 -> $temp % identifier
+% if streq $temp ["JFIF" 0x0]
+% check numge $length 16
+% skip 2 % version
+% num 1 -> $temp % units
+% if numeq $temp 1
+% assign {1in} -> $unit
+% else
+% if numeq $temp 2
+% assign {1cm} -> $unit
+% fi
+% fi
+% num 2 -> $pixelx
+% num 2 -> $pixely
+% fi
+% fi
+% fi
+% else
+% if numeq $temp 0xE1 % APP1
+% % look for Exif APP1 segment
+% num 2 -> $length
+% if numge $length 20 % identifier (6) + Tiff header (8) + first IFD (>=6)
+% read 20 numexpr($offset + 4)
+% grab 6 -> $temp
+% if streq $temp ["Exif" 0x0 0x0]
+% assign numexpr($offset + 10) -> $exifoffset
+% % read TIFF header
+% grab 2 -> $temp
+% if streq $temp ["II"]
+% little-endian
+% else
+% check streq $temp ["MM"]
+% % big-endian
+% fi
+% num 2 -> $temp
+% check numeq $temp 42
+% num 4 -> $temp % offset of first IFD
+% check numgt $temp 0
+% % read first IFD
+% assign numexpr($temp + $exifoffset) -> $off
+% read 2 $off
+% num 2 -> $entries
+% assign numexpr($off + 2) -> $off
+% loop
+% if numeq $entries 0
+% break
+% fi
+% assign numexpr($entries - 1) -> $entries
+% % entry format:
+% % 2 tag
+% % 2 field type
+% % 4 count
+% % 4 value/offset
+% read 12 $off
+% assign numexpr($off + 12) -> $off
+% num 2 -> $tag
+% if numeq $tag 296 % ResolutionUnit
+% skip 6 % type: 3 (short), count: 1
+% num 2 -> $temp
+% ifcase $temp
+% or % 1
+% clear $unit
+% or % 2
+% assign {1in} -> $unit
+% or % 3
+% assign {1cm} -> $unit
+% else
+% clear $unit % unknown
+% fi
+% ifcase $temp
+% or % 1
+% or % 2
+% assign {1} -> $exifdensity
+% or % 3
+% assign {1} -> $exifdensity
+% else
+% assign $exifdensity -> $exifdensity
+% fi
+% fi
+% % 256 ImageWidth (use width of JPG part)
+% % 257 ImageHeight (use height of JPG part)
+% if numeq $tag 282 % XResolution
+% skip 6
+% num 4 -> $temp
+% read 8 numexpr($temp + $exifoffset)
+% num 4 -> $pixelx
+% num 4 -> $temp
+% if numeq $temp 1
+% else
+% assign numexpr($temp) -> $pixelxdenom
+% % div $pixelx $temp -> $pixelx
+% fi
+% fi
+% if numeq $tag 283 % YResolution
+% skip 6
+% num 4 -> $temp
+% read 8 numexpr($temp + $exifoffset)
+% num 4 -> $pixely
+% num 4 -> $temp
+% if numeq $temp 1
+% else
+% assign numexpr($temp) -> $pixelydenom
+% % div $pixely $temp -> $pixely
+% fi
+% fi
+% repeat
+% big-endian
+% fi
+% fi
+% else
+% assign numexpr($temp - 0xC0) -> $temp
+% ifcase $temp % SOF_0
+% or % SOF_1
+% or % SOF_2
+% or % SOF_3
+% or % DHT
+% assign {-1} -> $temp
+% or % SOF_5
+% or % SOF_6
+% or % SOF_7
+% or % JPG
+% assign {-1} -> $temp
+% or % SOF_9
+% or % SOF_10
+% or % SOF_11
+% or % DAC
+% assign {-1} -> $temp
+% or % SOF_13
+% or % SOF_14
+% or % SOF_15
+% else
+% assign {-1} -> $temp
+% fi
+% if numeq $temp -1
+% else
+% read 4 numexpr($offset + 5)
+% num 2 -> $pixelheight
+% num 2 -> $pixelwidth
+% if numeq $pixelheight 0
+% clear $pixelheight
+% stop
+% fi
+% ok
+% stop
+% fi
+% num 2 -> $length
+% fi
+% fi
+% assign numexpr($offset + $length + 2) -> $offset
+%repeat
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@jpg}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@jpg#1{%
+ \@bmpsize@init
+ \@bmpsize@read{#1}{3}{0}%
+ \@bmpsize@grab\bmpsize@temp{3}%
+ \@bmpsize@skip@two
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{FFD8FF}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \def\bmpsize@offset{2}%
+ \def\bmpsize@exifdensity{0}%
+ \@bmpsize@loop{%
+ \@bmpsize@read{#1}{4}{\bmpsize@offset}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{FF}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@num@one\bmpsize@temp
+ \ifnum\bmpsize@temp=218\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@stop
+ }%
+ \ifnum\bmpsize@temp=224\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@num@two\bmpsize@length
+ \ifnum\bmpsize@exifdensity=0\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \unless\ifnum\bmpsize@length<16\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@read{#1}{12}{\numexpr\bmpsize@offset+4\relax}%
+ \@bmpsize@grab\bmpsize@temp{5}%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{4A46494600}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \ifnum\bmpsize@length<16\relax
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@skip@two
+ \@bmpsize@num@one\bmpsize@temp
+ \ifnum\bmpsize@temp=1\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \def\bmpsize@unit{1in}%
+ }{%
+ \ifnum\bmpsize@temp=2\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \def\bmpsize@unit{1cm}%
+ }%
+ }%
+ \@bmpsize@num@two\bmpsize@pixelx
+ \@bmpsize@num@two\bmpsize@pixely
+ }%
+ }%
+ }%
+ }{%
+ \ifnum\bmpsize@temp=225\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@num@two\bmpsize@length
+ \unless\ifnum\bmpsize@length<20\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@read{#1}{20}{\numexpr\bmpsize@offset+4\relax}%
+ \@bmpsize@grab\bmpsize@temp{6}%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \ifnum\pdfstrcmp{\bmpsize@temp}{457869660000}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \edef\bmpsize@exifoffset{\the\numexpr\bmpsize@offset+10}%
+ \@bmpsize@grab\bmpsize@temp{2}%
+ \@bmpsize@skip@two
+ \ifnum\pdfstrcmp{\bmpsize@temp}{4949}=\z@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@bigendianfalse
+ }{%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{4D4D}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ }%
+ \@bmpsize@num@two\bmpsize@temp
+ \ifnum\bmpsize@temp=42\relax
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@num@four\bmpsize@temp
+ \ifnum\bmpsize@temp>0\relax
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \edef\bmpsize@off{\the\numexpr\bmpsize@temp+\bmpsize@exifoffset}%
+ \@bmpsize@read{#1}{2}{\bmpsize@off}%
+ \@bmpsize@num@two\bmpsize@entries
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+2}%
+ \@bmpsize@loop{%
+ \ifnum\bmpsize@entries=0\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@break
+ }%
+ \edef\bmpsize@entries{\the\numexpr\bmpsize@entries-1}%
+ \@bmpsize@read{#1}{12}{\bmpsize@off}%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+12}%
+ \@bmpsize@num@two\bmpsize@tag
+ \ifnum\bmpsize@tag=296\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \@bmpsize@num@two\bmpsize@temp
+ \ifcase\bmpsize@temp\relax
+ \or
+ \let\bmpsize@unit\relax
+ \or
+ \def\bmpsize@unit{1in}%
+ \or
+ \def\bmpsize@unit{1cm}%
+ \else
+ \let\bmpsize@unit\relax
+ \fi
+ \ifcase\bmpsize@temp\relax
+ \or
+ \or
+ \def\bmpsize@exifdensity{1}%
+ \or
+ \def\bmpsize@exifdensity{1}%
+ \else
+ \let\bmpsize@exifdensity\bmpsize@exifdensity
+ \fi
+ }%
+ \ifnum\bmpsize@tag=282\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \@bmpsize@num@four\bmpsize@temp
+ \@bmpsize@read{#1}{8}{\numexpr\bmpsize@temp+\bmpsize@exifoffset\relax}%
+ \@bmpsize@num@four\bmpsize@pixelx
+ \@bmpsize@num@four\bmpsize@temp
+ \ifnum\bmpsize@temp=1\relax
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \edef\bmpsize@pixelxdenom{\the\numexpr\bmpsize@temp}%
+ }%
+ }%
+ \ifnum\bmpsize@tag=283\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \@bmpsize@num@four\bmpsize@temp
+ \@bmpsize@read{#1}{8}{\numexpr\bmpsize@temp+\bmpsize@exifoffset\relax}%
+ \@bmpsize@num@four\bmpsize@pixely
+ \@bmpsize@num@four\bmpsize@temp
+ \ifnum\bmpsize@temp=1\relax
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \edef\bmpsize@pixelydenom{\the\numexpr\bmpsize@temp}%
+ }%
+ }%
+ }%
+ \@bmpsize@bigendiantrue
+ }%
+ }%
+ }{%
+ \edef\bmpsize@temp{\the\numexpr\bmpsize@temp-192}%
+ \ifcase\bmpsize@temp\relax
+ \or
+ \or
+ \or
+ \or
+ \def\bmpsize@temp{-1}%
+ \or
+ \or
+ \or
+ \or
+ \def\bmpsize@temp{-1}%
+ \or
+ \or
+ \or
+ \or
+ \def\bmpsize@temp{-1}%
+ \or
+ \or
+ \or
+ \else
+ \def\bmpsize@temp{-1}%
+ \fi
+ \ifnum\bmpsize@temp=-1\relax
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \@bmpsize@read{#1}{4}{\numexpr\bmpsize@offset+5\relax}%
+ \@bmpsize@num@two\bmpsize@pixelheight
+ \@bmpsize@num@two\bmpsize@pixelwidth
+ \ifnum\bmpsize@pixelheight=0\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \let\bmpsize@pixelheight\relax
+ \@bmpsize@stop
+ }%
+ \@bmpsize@ok
+ \@bmpsize@stop
+ }%
+ \@bmpsize@num@two\bmpsize@length
+ }%
+ }%
+ \edef\bmpsize@offset{\the\numexpr\bmpsize@offset+\bmpsize@length+2}%
+ }%
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{bmp}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin bmp
+%little-endian
+%
+%read 26 0
+%grab 2 -> $temp
+%check streq $temp ["BM"]
+%skip 12
+%% header size is 4 bytes in V3+, unknown for V1, V2,
+%% known header sizes fit in 2 bytes
+%num 2 -> $temp
+%if numeq $temp 12 % V1
+% skip 2
+% num 2 -> $pixelwidth
+% num 2 -> $pixelheight
+% % no resolution entries
+% ok
+% stop
+%fi
+%if numeq $temp 64 % V2
+% skip 2
+% num 2 -> $pixelwidth
+% num 2 -> $pixelheight
+% % missing specification for resolution
+% ok
+% stop
+%fi
+%% V3, V4, V5
+%skip 2
+%num 4 -> $pixelwidth
+%absnum 4 -> $pixelheight
+%ok
+%read 8 38
+%num 4 -> $pixelx
+%num 4 -> $pixely
+%assign {100cm} -> $unit
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@bmp}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@bmp#1{%
+ \@bmpsize@init
+ \@bmpsize@bigendianfalse
+ \@bmpsize@read{#1}{26}{0}%
+ \@bmpsize@grab\bmpsize@temp{2}%
+ \@bmpsize@skip@two
+ \ifnum\pdfstrcmp{\bmpsize@temp}{424D}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@skip@four
+ \@bmpsize@skip@four
+ \@bmpsize@skip@four
+ \@bmpsize@num@two\bmpsize@temp
+ \ifnum\bmpsize@temp=12\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@skip@two
+ \@bmpsize@num@two\bmpsize@pixelwidth
+ \@bmpsize@num@two\bmpsize@pixelheight
+ \@bmpsize@ok
+ \@bmpsize@stop
+ }%
+ \ifnum\bmpsize@temp=64\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@skip@two
+ \@bmpsize@num@two\bmpsize@pixelwidth
+ \@bmpsize@num@two\bmpsize@pixelheight
+ \@bmpsize@ok
+ \@bmpsize@stop
+ }%
+ \@bmpsize@skip@two
+ \@bmpsize@num@four\bmpsize@pixelwidth
+ \@bmpsize@absnumtrue
+ \@bmpsize@num@four\bmpsize@pixelheight
+ \@bmpsize@absnumfalse
+ \@bmpsize@ok
+ \@bmpsize@read{#1}{8}{38}%
+ \@bmpsize@num@four\bmpsize@pixelx
+ \@bmpsize@num@four\bmpsize@pixely
+ \def\bmpsize@unit{100cm}%
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{gif}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin gif
+%little-endian
+%
+%% Header
+%read 13 0
+%grab 3 -> $temp
+%check streq $temp ["GIF"]
+%skip 3 % version
+%
+%% Logical Screen Descriptor
+%num 2 -> $pixelwidth
+%num 2 -> $pixelheight
+%skip 2
+%num 1 -> $temp % Pixel Aspect Ratio
+%if numeq $temp 0
+%else
+% assign numexpr($temp + 15) -> $pixelx
+% assign {64} -> $pixely
+%fi
+%ok
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@gif}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@gif#1{%
+ \@bmpsize@init
+ \@bmpsize@bigendianfalse
+ \@bmpsize@read{#1}{13}{0}%
+ \@bmpsize@grab\bmpsize@temp{3}%
+ \@bmpsize@skip@two
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{474946}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@skip@two
+ \@bmpsize@skip@one
+ \@bmpsize@num@two\bmpsize@pixelwidth
+ \@bmpsize@num@two\bmpsize@pixelheight
+ \@bmpsize@skip@two
+ \@bmpsize@num@one\bmpsize@temp
+ \ifnum\bmpsize@temp=0\relax
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \edef\bmpsize@pixelx{\the\numexpr\bmpsize@temp+15}%
+ \def\bmpsize@pixely{64}%
+ }%
+ \@bmpsize@ok
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{tiff}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin tiff
+%% defaults
+%assign {1in} -> $unit
+%
+%% Image File Header
+%read 8 0
+%grab 2 -> $temp
+%if streq $temp ["II"]
+% little-endian
+%else
+% check streq $temp ["MM"]
+% big-endian
+%fi
+%num 2 -> $temp
+%check numeq $temp 42
+%num 4 -> $offset % first IFD (Image File Directory)
+%
+%% First IFD
+%read 2 $offset
+%assign numexpr($offset + 2) -> $offset
+%num 2 -> $entries
+%ok % must rely on checks at the end
+%loop
+% if numeq $entries 0
+% stop
+% fi
+% assign numexpr($entries - 1) -> $entries
+% % entry format:
+% % 2 tag
+% % 2 field type
+% % 4 count
+% % 4 value/offset
+% read 12 $offset
+% assign numexpr($offset + 12) -> $offset
+% num 2 -> $tag % tag
+% if numeq $temp 296 % ResolutionUnit
+% skip 6 % type: 3 (short), count: 1
+% num 2 -> $temp
+% ifcase $temp
+% or % 1
+% clear $unit
+% or % 2
+% assign {1in} -> $unit
+% or % 3
+% assign {1cm} -> $unit
+% else
+% clear $unit
+% fi
+% fi
+% if numeq $tag 256 % ImageWidth
+% skip 6
+% num 4 -> $pixelwidth
+% fi
+% if numeq $tag 257 % ImageLength
+% skip 6
+% num 4 -> $pixelheight
+% fi
+% if numeq $tag 282 % XResolution
+% skip 6
+% num 4 -> $temp
+% read 8 $temp
+% num 4 -> $pixelx
+% num 4 -> $temp
+% if numeq $temp 1
+% else
+% assign numexpr($temp) -> $pixelxdenom
+% % div $pixelx $temp -> $pixelx
+% fi
+% fi
+% if numeq $tag 283 % YResolution
+% skip 6
+% num 4 -> $temp
+% read 8 $temp
+% num 4 -> $pixely
+% num 4 -> $temp
+% if numeq $temp 1
+% else
+% assign numexpr($temp) -> $pixelydenom
+% % div $pixely $temp -> $pixely
+% fi
+% fi
+%repeat
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@tiff}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@tiff#1{%
+ \@bmpsize@init
+ \def\bmpsize@unit{1in}%
+ \@bmpsize@read{#1}{8}{0}%
+ \@bmpsize@grab\bmpsize@temp{2}%
+ \@bmpsize@skip@two
+ \ifnum\pdfstrcmp{\bmpsize@temp}{4949}=\z@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@bigendianfalse
+ }{%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{4D4D}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@bigendiantrue
+ }%
+ \@bmpsize@num@two\bmpsize@temp
+ \ifnum\bmpsize@temp=42\relax
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@num@four\bmpsize@offset
+ \@bmpsize@read{#1}{2}{\bmpsize@offset}%
+ \edef\bmpsize@offset{\the\numexpr\bmpsize@offset+2}%
+ \@bmpsize@num@two\bmpsize@entries
+ \@bmpsize@ok
+ \@bmpsize@loop{%
+ \ifnum\bmpsize@entries=0\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@stop
+ }%
+ \edef\bmpsize@entries{\the\numexpr\bmpsize@entries-1}%
+ \@bmpsize@read{#1}{12}{\bmpsize@offset}%
+ \edef\bmpsize@offset{\the\numexpr\bmpsize@offset+12}%
+ \@bmpsize@num@two\bmpsize@tag
+ \ifnum\bmpsize@temp=296\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \@bmpsize@num@two\bmpsize@temp
+ \ifcase\bmpsize@temp\relax
+ \or
+ \let\bmpsize@unit\relax
+ \or
+ \def\bmpsize@unit{1in}%
+ \or
+ \def\bmpsize@unit{1cm}%
+ \else
+ \let\bmpsize@unit\relax
+ \fi
+ }%
+ \ifnum\bmpsize@tag=256\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \@bmpsize@num@four\bmpsize@pixelwidth
+ }%
+ \ifnum\bmpsize@tag=257\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \@bmpsize@num@four\bmpsize@pixelheight
+ }%
+ \ifnum\bmpsize@tag=282\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \@bmpsize@num@four\bmpsize@temp
+ \@bmpsize@read{#1}{8}{\bmpsize@temp}%
+ \@bmpsize@num@four\bmpsize@pixelx
+ \@bmpsize@num@four\bmpsize@temp
+ \ifnum\bmpsize@temp=1\relax
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \edef\bmpsize@pixelxdenom{\the\numexpr\bmpsize@temp}%
+ }%
+ }%
+ \ifnum\bmpsize@tag=283\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \@bmpsize@num@four\bmpsize@temp
+ \@bmpsize@read{#1}{8}{\bmpsize@temp}%
+ \@bmpsize@num@four\bmpsize@pixely
+ \@bmpsize@num@four\bmpsize@temp
+ \ifnum\bmpsize@temp=1\relax
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \edef\bmpsize@pixelydenom{\the\numexpr\bmpsize@temp}%
+ }%
+ }%
+ }%
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{pnm}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin pnm
+%assign {0} -> $offset
+%read 3 $offset
+%assign {3} -> $offset
+%grab 1 -> $temp
+%check streq $temp ["P"]
+%grab 1 -> $temp
+%check strge $temp ["1"]
+%check strle $temp ["6"]
+%% ensure one white space
+%grab 1 -> $temp
+%if iswhite $temp
+%else
+% stop
+%fi
+%loop
+% % skip white space
+% fillbuf
+% grab 1 -> $temp
+% if iswhite $temp
+% else
+% if streq $temp ["#"]
+% % ignore comments
+% loop
+% fillbuf
+% grab 1 -> $temp
+% if streq $temp [0x0A]
+% break
+% else
+% if streq $temp [0x0D]
+% break
+% fi
+% fi
+% repeat
+% else
+% pushback $temp
+% break
+% fi
+% fi
+%repeat
+%assign {} -> $tempnum
+%loop
+% fillbuf
+% grab 1 -> $temp
+% if isdigit $temp
+% append $tempnum $temp -> $tempnum
+% else
+% if iswhite $temp
+% break
+% else
+% stop
+% fi
+% fi
+%repeat
+%assign unescapehex($tempnum) -> $pixelwidth
+%loop
+% fillbuf
+% grab 1 -> $temp
+% if iswhite $temp
+% else
+% pushback $temp
+% break
+% fi
+%repeat
+%assign {} -> $tempnum
+%loop
+% fillbuf
+% grab 1 -> $temp
+% if isdigit $temp
+% append $tempnum $temp -> $tempnum
+% else
+% if iswhite $temp
+% break
+% else
+% stop
+% fi
+% fi
+%repeat
+%assign unescapehex($tempnum) -> $pixelheight
+%ok
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@pnm}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@pnm#1{%
+ \@bmpsize@init
+ \def\bmpsize@offset{0}%
+ \@bmpsize@read{#1}{3}{\bmpsize@offset}%
+ \def\bmpsize@offset{3}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{50}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{31}<\z@
+ \expandafter\@bmpsize@stop
+ \fi
+ \ifnum\pdfstrcmp{\bmpsize@temp}{36}>\z@
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \@bmpsize@stop
+ }%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{23}=\z@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{0A}=\z@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@break
+ }{%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{0D}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@break
+ }%
+ }%
+ }%
+ }{%
+ \@bmpsize@pushback\bmpsize@temp
+ \@bmpsize@break
+ }%
+ }%
+ }%
+ \def\bmpsize@tempnum{}%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@isdigit\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@append\bmpsize@tempnum\bmpsize@tempnum\bmpsize@temp
+ }{%
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@break
+ }{%
+ \@bmpsize@stop
+ }%
+ }%
+ }%
+ \edef\bmpsize@pixelwidth{\pdfunescapehex{\bmpsize@tempnum}}%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \@bmpsize@pushback\bmpsize@temp
+ \@bmpsize@break
+ }%
+ }%
+ \def\bmpsize@tempnum{}%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@isdigit\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@append\bmpsize@tempnum\bmpsize@tempnum\bmpsize@temp
+ }{%
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@break
+ }{%
+ \@bmpsize@stop
+ }%
+ }%
+ }%
+ \edef\bmpsize@pixelheight{\pdfunescapehex{\bmpsize@tempnum}}%
+ \@bmpsize@ok
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{pam}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin pam
+%read 3 0
+%assign {3} -> $offset
+%assign $offset -> $off
+%grab 3 -> $temp
+%check streq $temp ["P7" 0x0A]
+%loop
+% fillbuf
+% grab 1 -> $temp
+% if iswhite $temp
+% % ignore white space
+% assign numexpr($off + 1) -> $off
+% else
+% if streq $temp ["#"]
+% % ignore comment line
+% assign numexpr($off + 1) -> $off
+% loop
+% fillbuf
+% grab 1 -> $temp
+% assign numexpr($off + 1) -> $off
+% if streq $temp [0x0A]
+% break
+% fi
+% repeat
+% else
+% read 6 $off
+% assign numexpr($off + 6) -> $offset
+% grab 5 -> $head
+% if streq $head ["WIDTH"]
+% assign numexpr($off + 5) -> $off
+% % skip white space
+% loop
+% fillbuf
+% grab 1 -> $temp
+% if iswhite $temp
+% assign numexpr($off + 1) -> $off
+% else
+% if isdigit $temp
+% assign numexpr($off + 1) -> $off
+% break
+% else
+% % error
+% stop
+% fi
+% fi
+% repeat
+% % read number
+% assign $temp -> $tempnum
+% loop
+% fillbuf
+% grab 1 -> $temp
+% if isdigit $temp
+% assign numexpr($off + 1) -> $off
+% append $tempnum $temp -> $tempnum
+% else
+% pushback $temp
+% break
+% fi
+% repeat
+% % skip to end of line
+% loop
+% fillbuf
+% grab 1 -> $temp
+% assign numexpr($off + 1) -> $off
+% if streq $temp [0x0A]
+% break
+% fi
+% repeat
+% assign unescapehex($tempnum) -> $pixelwidth
+% else
+% grab 1 -> $temp
+% append $head $temp -> $head
+% if streq $head ["ENDHDR"]
+% % last header line
+% ok
+% stop
+% else
+% if streq $head ["HEIGHT"]
+% assign numexpr($off + 6) -> $off
+% % skip white space
+% loop
+% fillbuf
+% grab 1 -> $temp
+% if iswhite $temp
+% assign numexpr($off + 1) -> $off
+% else
+% if isdigit $temp
+% assign numexpr($off + 1) -> $off
+% break
+% else
+% % error
+% stop
+% fi
+% fi
+% repeat
+% % read number
+% assign $temp -> $tempnum
+% loop
+% fillbuf
+% grab 1 -> $temp
+% if isdigit $temp
+% assign numexpr($off + 1) -> $off
+% append $tempnum $temp -> $tempnum
+% else
+% pushback $temp
+% break
+% fi
+% repeat
+% % skip to end of line
+% loop
+% fillbuf
+% grab 1 -> $temp
+% assign numexpr($off + 1) -> $off
+% if streq $temp [0x0A]
+% break
+% fi
+% repeat
+% assign unescapehex($tempnum) -> $pixelheight
+% else
+% % ignore unknown header line
+% pushback $head
+% loop
+% fillbuf
+% grab 1 -> $temp
+% assign numexpr($off + 1) -> $off
+% if streq $temp [0x0A]
+% break
+% fi
+% repeat
+% fi
+% fi
+% fi
+% fi
+% fi
+%repeat
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@pam}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@pam#1{%
+ \@bmpsize@init
+ \@bmpsize@read{#1}{3}{0}%
+ \def\bmpsize@offset{3}%
+ \let\bmpsize@off\bmpsize@offset
+ \@bmpsize@grab\bmpsize@temp{3}%
+ \@bmpsize@skip@two
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{50370A}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ }{%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{23}=\z@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{0A}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@break
+ }%
+ }%
+ }{%
+ \@bmpsize@read{#1}{6}{\bmpsize@off}%
+ \edef\bmpsize@offset{\the\numexpr\bmpsize@off+6}%
+ \@bmpsize@grab\bmpsize@head{5}%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@head}{5749445448}=\z@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+5}%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ }{%
+ \ifcase 0\@bmpsize@isdigit\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ \@bmpsize@break
+ }{%
+ \@bmpsize@stop
+ }%
+ }%
+ }%
+ \let\bmpsize@tempnum\bmpsize@temp
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@isdigit\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ \@bmpsize@append\bmpsize@tempnum\bmpsize@tempnum\bmpsize@temp
+ }{%
+ \@bmpsize@pushback\bmpsize@temp
+ \@bmpsize@break
+ }%
+ }%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{0A}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@break
+ }%
+ }%
+ \edef\bmpsize@pixelwidth{\pdfunescapehex{\bmpsize@tempnum}}%
+ }{%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \@bmpsize@append\bmpsize@head\bmpsize@head\bmpsize@temp
+ \ifnum\pdfstrcmp{\bmpsize@head}{454E44484452}=\z@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@ok
+ \@bmpsize@stop
+ }{%
+ \ifnum\pdfstrcmp{\bmpsize@head}{484549474854}=\z@
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+6}%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ }{%
+ \ifcase 0\@bmpsize@isdigit\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ \@bmpsize@break
+ }{%
+ \@bmpsize@stop
+ }%
+ }%
+ }%
+ \let\bmpsize@tempnum\bmpsize@temp
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@isdigit\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ \@bmpsize@append\bmpsize@tempnum\bmpsize@tempnum\bmpsize@temp
+ }{%
+ \@bmpsize@pushback\bmpsize@temp
+ \@bmpsize@break
+ }%
+ }%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{0A}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@break
+ }%
+ }%
+ \edef\bmpsize@pixelheight{\pdfunescapehex{\bmpsize@tempnum}}%
+ }{%
+ \@bmpsize@pushback\bmpsize@head
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \edef\bmpsize@off{\the\numexpr\bmpsize@off+1}%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{0A}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@break
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{xpm}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin xpm
+%read 9 0
+%grab 9 -> $temp
+%assign {9} -> $offset
+%check streq $temp ["/* XPM */"]
+%loop
+% fillbuf
+% grab 1 -> $temp
+% if streq $temp [0x22] % "
+% break
+% fi
+% if streq $temp ["/"]
+% fillbuf
+% grab 1 -> $temp
+% if streq $temp ["*"]
+% % look for end of C comment
+% loop
+% fillbuf
+% grab 1 -> $temp
+% if streq $temp ["*"]
+% loop
+% fillbuf
+% grab 1 -> $temp
+% if streq $temp ["/"]
+% break
+% fi
+% if streq $temp ["*"]
+% else
+% break
+% fi
+% repeat
+% if streq $temp ["/"]
+% break
+% fi
+% fi
+% repeat
+% fi
+% fi
+%repeat
+%% width
+%assign {} -> $tempnum
+%loop
+% fillbuf
+% grab 1 -> $temp
+% if iswhite $temp
+% else
+% if isdigit $temp
+% append $tempnum $temp -> $tempnum
+% break
+% else
+% stop
+% fi
+% fi
+%repeat
+%loop
+% fillbuf
+% grab 1 -> $temp
+% if isdigit $temp
+% append $tempnum $temp -> $tempnum
+% else
+% if iswhite $temp
+% break
+% else
+% stop
+% fi
+% fi
+%repeat
+%assign unescapehex($tempnum) -> $pixelwidth
+%% height
+%assign {} -> $tempnum
+%loop
+% fillbuf
+% grab 1 -> $temp
+% if iswhite $temp
+% else
+% if isdigit $temp
+% append $tempnum $temp -> $tempnum
+% break
+% else
+% stop
+% fi
+% fi
+%repeat
+%loop
+% fillbuf
+% grab 1 -> $temp
+% if isdigit $temp
+% append $tempnum $temp -> $tempnum
+% else
+% if iswhite $temp
+% break
+% else
+% stop
+% fi
+% fi
+%repeat
+%assign unescapehex($tempnum) -> $pixelheight
+%ok
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@xpm}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@xpm#1{%
+ \@bmpsize@init
+ \@bmpsize@read{#1}{9}{0}%
+ \@bmpsize@grab\bmpsize@temp{9}%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@four
+ \@bmpsize@skip@one
+ \def\bmpsize@offset{9}%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{2F2A2058504D202A2F}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{22}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@break
+ }%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{2F}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{2A}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{2A}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{2F}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@break
+ }%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{2A}=\z@
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \@bmpsize@break
+ }%
+ }%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{2F}=\z@
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@break
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ \def\bmpsize@tempnum{}%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \ifcase 0\@bmpsize@isdigit\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@append\bmpsize@tempnum\bmpsize@tempnum\bmpsize@temp
+ \@bmpsize@break
+ }{%
+ \@bmpsize@stop
+ }%
+ }%
+ }%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@isdigit\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@append\bmpsize@tempnum\bmpsize@tempnum\bmpsize@temp
+ }{%
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@break
+ }{%
+ \@bmpsize@stop
+ }%
+ }%
+ }%
+ \edef\bmpsize@pixelwidth{\pdfunescapehex{\bmpsize@tempnum}}%
+ \def\bmpsize@tempnum{}%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \ifcase 0\@bmpsize@isdigit\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@append\bmpsize@tempnum\bmpsize@tempnum\bmpsize@temp
+ \@bmpsize@break
+ }{%
+ \@bmpsize@stop
+ }%
+ }%
+ }%
+ \@bmpsize@loop{%
+ \@bmpsize@fillbuf{#1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifcase 0\@bmpsize@isdigit\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@append\bmpsize@tempnum\bmpsize@tempnum\bmpsize@temp
+ }{%
+ \ifcase 0\@bmpsize@iswhite\bmpsize@temp
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \@bmpsize@break
+ }{%
+ \@bmpsize@stop
+ }%
+ }%
+ }%
+ \edef\bmpsize@pixelheight{\pdfunescapehex{\bmpsize@tempnum}}%
+ \@bmpsize@ok
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{tga}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin tga
+%little-endian
+% % id length (1 byte)
+%read 16 1
+%grab 1 -> $temp % color map type (1 byte), values: 0, 1
+%if streq $temp [0x00]
+%else
+% if streq $temp [0x01]
+% else
+% stop
+% fi
+%fi
+%skip 10 % image type (1 byte)
+% % color map specification (5 bytes)
+% % x origin (2 bytes)
+% % y origin (2 bytes)
+%num 2 -> $pixelwidth % image width
+%num 2 -> $pixelheight % image height
+%ok
+%% TGA File Footer
+%size 26 -> $temp
+%read 26 numexpr($temp - 26)
+%num 4 -> $offset % the extension area offset
+%skip 4 % the developer directory offset
+%grab 18 -> $temp % the signature, ".", 0x00
+%if streq $temp ["TRUEVISION-XFILE." 0x00]
+%else
+% stop
+%fi
+%if numeq $offset 0
+% stop % no extension area
+%fi
+%read 4 numexpr($offset + 474) % pixel aspect ratio (4 bytes)
+%num 2 -> $pixelx % pixel ratio numerator (pixel width)
+%num 2 -> $pixely % pixel ratio denominator (pixel height)
+%if numeq $pixely 0 % no pixel aspect ratio
+% clear $pixelx
+% clear $pixely
+%fi
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@tga}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@tga#1{%
+ \@bmpsize@init
+ \@bmpsize@bigendianfalse
+ \@bmpsize@read{#1}{16}{1}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{00}=\z@
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{01}=\z@
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \@bmpsize@stop
+ }%
+ }%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \@bmpsize@num@two\bmpsize@pixelwidth
+ \@bmpsize@num@two\bmpsize@pixelheight
+ \@bmpsize@ok
+ \@bmpsize@size{#1}{26}\bmpsize@temp \@bmpsize@read{#1}{26}{\numexpr\bmpsize@temp-26\relax}%
+ \@bmpsize@num@four\bmpsize@offset
+ \@bmpsize@skip@four
+ \@bmpsize@grab\bmpsize@temp{18}%
+ \@bmpsize@skip@four
+ \@bmpsize@skip@four
+ \@bmpsize@skip@four
+ \@bmpsize@skip@four
+ \@bmpsize@skip@two
+ \ifnum\pdfstrcmp{\bmpsize@temp}{54525545564953494F4E2D5846494C452E00}=\z@
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \@bmpsize@stop
+ }%
+ \ifnum\bmpsize@offset=0\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@stop
+ }%
+ \@bmpsize@read{#1}{4}{\numexpr\bmpsize@offset+474\relax}%
+ \@bmpsize@num@two\bmpsize@pixelx
+ \@bmpsize@num@two\bmpsize@pixely
+ \ifnum\bmpsize@pixely=0\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \let\bmpsize@pixelx\relax
+ \let\bmpsize@pixely\relax
+ }%
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{pcx}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin pcx
+%little-endian
+%read 16 0
+%grab 1 -> $temp % manufacturer
+%check streq $temp [0x0A]
+%skip 1 % version
+%num 1 -> $temp % encoding
+%check numeq $temp 1
+%skip 1 % bits per pixel
+%num 2 -> $pixelwidth % x_min
+%num 2 -> $pixelheight % y_min
+%num 2 -> $temp % x_max
+%assign numexpr($temp - $pixelwidth + 1) -> $pixelwidth
+%num 2 -> $temp % y_max
+%assign numexpr($temp - $pixelheight + 1) -> $pixelheight
+%check numgt $pixelwidth 0
+%check numgt $pixelheight 0
+%ok
+%num 2 -> $pixelx % horizontal resolution in DPI
+%num 2 -> $pixely % vertical resolution in DPI
+%assign {1in} -> $unit
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@pcx}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@pcx#1{%
+ \@bmpsize@init
+ \@bmpsize@bigendianfalse
+ \@bmpsize@read{#1}{16}{0}%
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\pdfstrcmp{\bmpsize@temp}{0A}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@skip@one
+ \@bmpsize@num@one\bmpsize@temp
+ \ifnum\bmpsize@temp=1\relax
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@skip@one
+ \@bmpsize@num@two\bmpsize@pixelwidth
+ \@bmpsize@num@two\bmpsize@pixelheight
+ \@bmpsize@num@two\bmpsize@temp
+ \edef\bmpsize@pixelwidth{\the\numexpr\bmpsize@temp-\bmpsize@pixelwidth+1}%
+ \@bmpsize@num@two\bmpsize@temp
+ \edef\bmpsize@pixelheight{\the\numexpr\bmpsize@temp-\bmpsize@pixelheight+1}%
+ \ifnum\bmpsize@pixelwidth>0\relax
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \ifnum\bmpsize@pixelheight>0\relax
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@ok
+ \@bmpsize@num@two\bmpsize@pixelx
+ \@bmpsize@num@two\bmpsize@pixely
+ \def\bmpsize@unit{1in}%
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{msp}
+%
+%<*ignore>
+%\begin{verbatim}
+%begin msp
+%little-endian
+%
+%read 16 0
+%
+%% header 4
+%grab 4 -> $temp
+%if streq $temp ["DanM"]
+%else
+% check streq $temp ["LinS"]
+%fi
+%num 2 -> $pixelwidth
+%num 2 -> $pixelheight
+%ok
+%num 2 -> $pixelx % x_asp
+%num 2 -> $pixely % y_asp
+%assign {1in} -> $unit % guessing
+%if numeq $pixelx 0
+% num 2 -> $pixelx % x_asp_prn
+% num 2 -> $pixely % y_asp_prn
+%fi
+%% num 2 % width_prn
+%% num 2 % height_prn
+%end
+%\end{verbatim}
+%</ignore>
+% \begin{macro}{\bmpsize@read@msp}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@msp#1{%
+ \@bmpsize@init
+ \@bmpsize@bigendianfalse
+ \@bmpsize@read{#1}{16}{0}%
+ \@bmpsize@grab\bmpsize@temp{4}%
+ \@bmpsize@skip@four
+ \ifnum\pdfstrcmp{\bmpsize@temp}{44616E4D}=\z@
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \ifnum\pdfstrcmp{\bmpsize@temp}{4C696E53}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ }%
+ \@bmpsize@num@two\bmpsize@pixelwidth
+ \@bmpsize@num@two\bmpsize@pixelheight
+ \@bmpsize@ok
+ \@bmpsize@num@two\bmpsize@pixelx
+ \@bmpsize@num@two\bmpsize@pixely
+ \def\bmpsize@unit{1in}%
+ \ifnum\bmpsize@pixelx=0\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \@bmpsize@num@two\bmpsize@pixelx
+ \@bmpsize@num@two\bmpsize@pixely
+ }%
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{sgi}
+%
+%\begin{verbatim}
+%begin sgi
+%big-endian
+%read 10 0
+%grab 2 -> $temp
+%check streq $temp [0x01 0xDA] % magic: 474 decimal
+%grab 1 -> $temp % storage: 0 or 1
+%check numge $temp 0
+%check numle $temp 1
+%skip 2 % bpc, dimension
+%num 2 -> $pixelwidth
+%num 2 -> $pixelheight
+%ok
+%end
+%\end{verbatim}
+% \begin{macro}{\bmpsize@read@sgi}
+% \begin{macrocode}
+%<*base>
+\def\bmpsize@read@sgi#1{%
+ \@bmpsize@init
+ \@bmpsize@bigendiantrue
+ \@bmpsize@read{#1}{10}{0}%
+ \@bmpsize@grab\bmpsize@temp{2}%
+ \@bmpsize@skip@two
+ \ifnum\pdfstrcmp{\bmpsize@temp}{01DA}=\z@
+ \else
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@grab\bmpsize@temp{1}%
+ \@bmpsize@skip@one
+ \ifnum\bmpsize@temp<0\relax
+ \expandafter\@bmpsize@stop
+ \fi
+ \ifnum\bmpsize@temp>1\relax
+ \expandafter\@bmpsize@stop
+ \fi
+ \@bmpsize@skip@two
+ \@bmpsize@num@two\bmpsize@pixelwidth
+ \@bmpsize@num@two\bmpsize@pixelheight
+ \@bmpsize@ok
+ \@bmpsize@stop
+ \@nil
+ \@bmpsize@end
+}%
+%</base>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Package \xpackage{bmpsize}}
+%
+% \begin{macrocode}
+%<*package>
+\ProvidesPackage{bmpsize}%
+ [2006/08/24 v1.0 Extract size and resolution data from bitmap files (HO)]
+\RequirePackage{ifpdf}
+\ifpdf
+ \PackageInfo{bmpsize}{Superseded by pdfTeX in PDF mode}%
+ \expandafter\endinput
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdffiledump\endcsname\relax
+ \PackageError{bmpsize}{%
+ You need pdfTeX 1.30.0 or newer%
+ }{Package loading is aborted.}%
+ \expandafter\endinput
+\fi
+
+\RequirePackage{graphics}
+\RequirePackage{keyval}
+\RequirePackage{bmpsize-base}
+
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname PackageWarning\endcsname\relax
+ \def\@bmpsize@warning#1#2{%
+ \begingroup
+ \newlinechar=10 %
+ \def\MessageBreak{%
+ ^^J%
+ (bmpsize) %
+ \space\space\space\space
+ \space\space\space\space
+ \space\space\space\space
+ \space\space\space
+ }%
+ \immediate\write16{%
+ Package bmpsize Warning: #2 %
+ on input line \the\inputlineno.%
+ }%
+ \endgroup
+ }%
+\else
+ \def\@bmpsize@warning{\PackageWarning{bmpsize}}%
+\fi
+
+\InputIfFileExists{bmpsize-\Gin@driver}{}{}
+
+\define@key{Gin}{bmpsizefast}[true]{%
+ \expandafter\ifx\csname if#1\expandafter\endcsname\csname iftrue\endcsname
+ \@bmpsize@fasttrue
+ \else
+ \@bmpsize@fastfalse
+ \fi
+}
+\define@key{Gin}{resolutionunit}{%
+ \def\bmpsize@unit@default{#1}%
+}
+\begingroup
+ \def\x#1{\endgroup
+ \define@key{Gin}{resolution}{%
+ \@bmpsize@read@resolution\@bmpsize@user@resolutiontrue##1#1#1\@nil
+ }%
+ \define@key{Gin}{defaultresolution}{%
+ \@bmpsize@read@resolution\@bmpsize@user@resolutionfalse##1#1#1\@nil
+ }%
+ }%
+\x{ }
+\def\@bmpsize@read@resolution#1#2 #3 #4\@nil{%
+ \ifcase 0\ifx\\#2\\1\fi
+ \ifnum\pdfstrcmp{#2}{\Gin@exclamation}=\z@
+ \ifx\\#3\\1\fi
+ \ifnum\pdfstrcmp{#3}{\Gin@exclamation}=\z@
+ 1%
+ \fi
+ \fi
+ \ifcase\pdfstrcmp{#2}{\Gin@exclamation}\relax
+ \let\bmpsize@pixelx@default\Gin@exclamation
+ \else
+ \edef\bmpsize@pixelx@default{#2}%
+ \fi
+ \ifcase\pdfstrcmp{#3}{\Gin@exclamation}\relax
+ \let\bmpsize@pixely@default\Gin@exclamation
+ \else
+ \ifx\\#3\\%
+ \let\bmpsize@pixely@default\bmpsize@pixelx@default
+ \else
+ \edef\bmpsize@pixely@default{#3}%
+ \fi
+ \fi
+ #1%
+ \else
+ \PackageError{bmpsize}{%
+ Wrong syntax for key (default)resolution%
+ }{%
+ See package documentation for correct syntax.%
+ }%
+ \fi
+}
+\newcommand*{\bmpsizesetup}{\setkeys{Gin}}
+
+\let\@bmpsize@org@setfile\Gin@setfile
+\def\Gin@setfile#1#2#3{%
+ \ifcase\pdfstrcmp{#1}{bmp}\relax
+ \expandafter\@firstofone
+ \else
+ \expandafter\@gobble
+ \fi
+ {%
+ \bmpsize@okfalse
+ \edef\bmpsize@ext{\ifx\Gin@ext\relax\Gin@eext\else\Gin@ext\fi}%
+ \edef\bmpsize@file{\Gin@base\bmpsize@ext}%
+ \edef\@bmpsize@temp{\bmpsize@ext}%
+ \@ifundefined{bmpsize@read@\@bmpsize@temp}{%
+ \@ifundefined{bmpsize@map@\@bmpsize@temp}{}{%
+ \expandafter\let\expandafter\@bmpsize@temp
+ \csname bmpsize@map@\@bmpsize@temp\endcsname
+ }%
+ }{}%
+ \@ifundefined{bmpsize@read@\@bmpsize@temp}{%
+ }{%
+ \csname bmpsize@read@\@bmpsize@temp\endcsname\bmpsize@file
+ }%
+ \ifbmpsize@ok
+ \else
+ \@for\@bmpsize@temp:=\bmpsize@types\do{%
+ \ifbmpsize@ok
+ \else
+ \csname bmpsize@read@\@bmpsize@temp\endcsname\bmpsize@file
+ \fi
+ }%
+ \fi
+ \ifbmpsize@ok
+ \ifGin@bbox
+ \@ifundefined{Gin@vllx}{%
+ \@bmpsize@warning{Explicit bounding box is ignored}%
+ }{%
+ \ifx\Gin@viewport@code\relax
+ \def\Gin@ollx{0}%
+ \let\Gin@olly\Gin@ollx
+ \let\Gin@ourx\bmpsize@width
+ \let\Gin@oury\bmpsize@height
+ \let\Gin@vllx\Gin@llx
+ \let\Gin@vlly\Gin@lly
+ \let\Gin@vurx\Gin@urx
+ \let\Gin@vury\Gin@ury
+ \let\Gin@viewport@code\Gin@viewport
+ \@bmpsize@warning{%
+ Explicit bounding box replaced by\MessageBreak
+ viewport setting
+ }%
+ \else
+ \@bmpsize@warning{Explicit bounding box is ignored}%
+ \fi
+ }%
+ \fi
+ \def\Gin@llx{0}%
+ \def\Gin@lly{0}%
+ \let\Gin@urx\bmpsize@width
+ \let\Gin@ury\bmpsize@height
+ \Gin@bboxtrue
+ \else
+ \PackageInfo{bmpsize}{Unknown image type of \bmpsize@file}%
+ \fi
+ }%
+ \@bmpsize@org@setfile{#1}{#2}{#3}%
+}
+\newcommand*{\bmpsize@ext@type}[1]{%
+ \@namedef{bmpsize@map@#1}%
+}
+\bmpsize@ext@type{.jpg}{jpg}
+\bmpsize@ext@type{.jpe}{jpg}
+\bmpsize@ext@type{.jfif}{jpg}
+\bmpsize@ext@type{.jpeg}{jpg}
+\bmpsize@ext@type{.tif}{tiff}
+\bmpsize@ext@type{.tiff}{tiff}
+\bmpsize@ext@type{.pcx}{pcx}
+\bmpsize@ext@type{.msp}{msp}
+\bmpsize@ext@type{.bmp}{bmp}
+\bmpsize@ext@type{.png}{png}
+\bmpsize@ext@type{.pnm}{pnm}
+\bmpsize@ext@type{.pbm}{pnm}
+\bmpsize@ext@type{.pgm}{pnm}
+\bmpsize@ext@type{.ppm}{pnm}
+\bmpsize@ext@type{.pam}{pam}
+\bmpsize@ext@type{.xpm}{xpm}
+\bmpsize@ext@type{.gif}{gif}
+\bmpsize@ext@type{.tga}{tga}
+\bmpsize@ext@type{.sgi}{sgi}
+%</package>
+% \end{macrocode}
+%
+% \subsection{Drivers}
+%
+% \subsubsection{dvips}
+%
+% Identification.
+% \begin{macrocode}
+%<*dvips>
+\ProvidesFile{bmpsize-dvips.def}%
+ [2006/08/24 v1.0 Graphics bitmap driver for dvips (HO)]
+% \end{macrocode}
+% Ensure correct catcodes.
+% \begin{macrocode}
+\expandafter\edef\csname @bmpsize@driver@catcodes\endcsname{%
+ \catcode44 \the\catcode44 % ,
+ \catcode58 \the\catcode58 % :
+ \catcode60 \the\catcode60 % <
+ \catcode61 \the\catcode61 % =
+ \catcode62 \the\catcode62 % >
+ \catcode64 \the\catcode64 % @
+}
+\catcode64 11 %
+\@makeother\,
+\@makeother\:
+\@makeother\<
+\@makeother\=
+\@makeother\>
+% \end{macrocode}
+% \begin{macro}{\Ginclude@bmp}
+% Added features: support for viewport/trim and clip.
+% \begin{macrocode}
+\def\Ginclude@bmp#1{%
+ \message{<#1>}%
+ \raise\Gin@req@height
+ \hbox to\Gin@req@width{%
+% \end{macrocode}
+% Clipping support.
+% \begin{macrocode}
+ \ifGin@clip
+ \vbox to\z@{%
+ \special{ps:gsave currentpoint}%
+ \kern\Gin@req@height
+ \hbox to\z@{%
+ \kern\Gin@req@width
+ \special{ps:%
+ currentpoint
+ newpath
+ 3 index 3 index moveto
+ 1 index 3 index lineto
+ 2 copy lineto
+ exch pop exch pop
+ lineto
+ closepath
+ clip
+ }%
+ \hss
+ }%
+ \vss
+ }%
+ \fi
+% \end{macrocode}
+% Support for viewport/trim. The original bounding box is
+% `0 0 width height'. If package \xpackage{bmpsize} is used
+% and the image has been recognized, then the original width
+% and height are known (\cs{bmpsize@width}, \cs{bmpsize@height}).
+% Otherwise we try the saved values \cs{Gin@ourx} and \cs{Gin@oury}.
+% This guessing will fail, if options viewport and trim are used
+% both or several times. This is a deficiency of package {graphicx}.
+% One of options viewport and trim should be used at most once.
+% \begin{macrocode}
+ \@ifundefined{Gin@ollx}{%
+ \dimen@\z@
+ }{%
+ \ifx\Gin@scalex\Gin@exclamation
+ \let\Gin@scalex\Gin@scaley
+ \fi
+ \ifx\Gin@scaley\Gin@exclamation
+ \let\Gin@scaley\Gin@scalex
+ \fi
+ \@ifundefined{bmpsize@width}{%
+ \let\bmpsize@width\Gin@ourx
+ \let\bmpsize@height\Gin@oury
+ }{}%
+ \dimen@=\Gin@llx bp\relax
+ \dimen@=\Gin@scalex\dimen@
+ \kern-\dimen@
+ \advance\Gin@req@width\dimen@
+ \dimen@=\bmpsize@width bp\relax
+ \advance\dimen@ by -\Gin@urx bp\relax
+ \dimen@=\Gin@scalex\dimen@
+ \advance\Gin@req@width\dimen@
+ \dimen@=\Gin@lly bp\relax
+ \dimen@=\Gin@scaley\dimen@
+ \advance\Gin@req@height\dimen@
+ \dimen@=\bmpsize@height bp\relax
+ \advance\dimen@ by -\Gin@ury bp\relax
+ \dimen@=\Gin@scaley\dimen@
+ \advance\Gin@req@height\dimen@
+ }%
+ \ifdim\dimen@=\z@
+ \else
+ \vbox to\z@\bgroup
+ \kern-\dimen@
+ \fi
+% \end{macrocode}
+% The special for the image.
+% \begin{macrocode}
+ \special{em:graph #1,\the\Gin@req@width,\the\Gin@req@height}%
+ \ifdim\dimen@=\z@
+ \else
+ \vss
+ \egroup
+ \fi
+ \ifGin@clip
+ \special{ps::grestore}%
+ \fi
+ \hss
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\@bmpsize@driver@catcodes
+%</dvips>
+% \end{macrocode}
+%
+% \subsubsection{dvipdfm}
+%
+% Identification.
+% \begin{macrocode}
+%<*dvipdfm>
+\ProvidesFile{bmpsize-dvipdfm.def}%
+ [2006/08/24 v1.0 Graphics bitmap driver for dvipdfm (HO)]
+% \end{macrocode}
+% Ensure correct catcodes.
+% \begin{macrocode}
+\expandafter\edef\csname @bmpsize@driver@catcodes\endcsname{%
+ \catcode44 \the\catcode44 % ,
+ \catcode46 \the\catcode46 % .
+ \catcode58 \the\catcode58 % :
+ \catcode60 \the\catcode60 % <
+ \catcode61 \the\catcode61 % =
+ \catcode62 \the\catcode62 % >
+ \catcode64 \the\catcode64 % @
+}
+\catcode64 11 %
+\@makeother\,
+\@makeother\.
+\@makeother\:
+\@makeother\<
+\@makeother\=
+\@makeother\>
+% \end{macrocode}
+% Counter resource to generate unique names for xform objects.
+% \begin{macrocode}
+\@ifundefined{@bmpsize@count}{%
+ \csname newcount\endcsname\@bmpsize@count
+ \@bmpsize@count=\z@
+}{}
+% \end{macrocode}
+% The file name is given as PDF string in the image special.
+% If we have \pdfTeX\ with \cs{pdfescapestring} we use it.
+% \begin{macro}{\@bmpsize@pdfescapestring}
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdfescapestring\endcsname\relax
+ \def\@bmpsize@pdfescapestring#1{#1}%
+\else
+ \let\@bmpsize@pdfescapestring\pdfescapestring
+\fi
+% \end{macrocode}
+% \end{macro}
+% The size of reused images of dvipdfm 0.13.2c is 1bp.
+% Thus the reused image must be scaled to the requested
+% width and height. The factor is just the conversion
+% from pt to bp (72/72.27).
+% \begin{macro}{\bmpsize@dvipdfm@factor}
+% \begin{macrocode}
+\@ifundefined{bmpsize@dvipdfm@factor}{%
+ \def\bmpsize@dvipdfm@factor{.99626}%
+}{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Ginclude@bmp}
+% Added features: support for viewport/trim, clip, and image reuse.
+% \begin{macrocode}
+\def\Ginclude@bmp#1{%
+ \message{<#1>}%
+% \end{macrocode}
+% Clip support is achieved by putting the image inside
+% a xform object. These xform objects are automatically clipped
+% when they are used.
+% \begin{macrocode}
+ \ifGin@clip
+ \global\advance\@bmpsize@count\@ne
+ \edef\@bmpsize@clip@name{@CLIP@\the\@bmpsize@count}%
+ \special{%
+ pdf:bxobj \@bmpsize@clip@name\space
+ width \the\Gin@req@width\space
+ height \the\Gin@req@height
+ }%
+ \fi
+% \end{macrocode}
+% Support for viewport/trim.
+% \begin{macrocode}
+ \hbox to \z@{%
+ \@ifundefined{Gin@ollx}{%
+ \dimen@\z@
+ }{%
+ \ifx\Gin@scalex\Gin@exclamation
+ \let\Gin@scalex\Gin@scaley
+ \fi
+ \ifx\Gin@scaley\Gin@exclamation
+ \let\Gin@scaley\Gin@scalex
+ \fi
+ \@ifundefined{bmpsize@width}{%
+ \let\bmpsize@width\Gin@ourx
+ \let\bmpsize@height\Gin@oury
+ }{}%
+ \dimen@=\Gin@llx bp\relax
+ \dimen@=\Gin@scalex\dimen@
+ \kern-\dimen@
+ \advance\Gin@req@width\dimen@
+ \dimen@=\bmpsize@width bp\relax
+ \advance\dimen@ by -\Gin@urx bp\relax
+ \dimen@=\Gin@scalex\dimen@
+ \advance\Gin@req@width\dimen@
+ \dimen@=\bmpsize@height bp\relax
+ \advance\dimen@ by -\Gin@ury bp\relax
+ \dimen@=\Gin@scaley\dimen@
+ \advance\Gin@req@height\dimen@
+ \dimen@=\Gin@lly bp\relax
+ \dimen@=\Gin@scaley\dimen@
+ \advance\Gin@req@height\dimen@
+ }%
+ \ifdim\dimen@=\z@
+ \else
+ \vbox to\z@\bgroup
+ \kern\dimen@
+ \fi
+% \end{macrocode}
+% Reuse support, dvipdfm just remember the image. The requested
+% sizes, clipping, \dots do not matter.
+% \begin{macrocode}
+ \edef\@bmpsize@temp{@IMG@\@bmpsize@pdfescapestring{#1}}%
+ \@ifundefined{\@bmpsize@temp}{%
+ \global\advance\@bmpsize@count\@ne
+ \expandafter\xdef\csname\@bmpsize@temp\endcsname{%
+ \the\@bmpsize@count
+ }%
+ \special{%
+ pdf:image @IMG\csname\@bmpsize@temp\endcsname\space
+ width \the\Gin@req@width\space
+ height \the\Gin@req@height\space
+ depth 0pt (\@bmpsize@pdfescapestring{#1})%
+ }%
+ }{%
+ \special{%
+ pdf:bt %
+ xscale \strip@pt\dimexpr
+ \bmpsize@dvipdfm@factor\Gin@req@width\relax\space
+ yscale \strip@pt\dimexpr
+ \bmpsize@dvipdfm@factor\Gin@req@height\relax
+ }%
+ \special{pdf:uxobj @IMG\csname\@bmpsize@temp\endcsname}%
+ \special{pdf:et}%
+ }%
+ \ifdim\dimen@=\z@
+ \else
+ \vss
+ \egroup
+ \fi
+ \hss
+ }%
+ \ifGin@clip
+ \special{pdf:exobj}%
+ \special{pdf:uxobj \@bmpsize@clip@name}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\@bmpsize@driver@catcodes
+%</dvipdfm>
+% \end{macrocode}
+%
+% \subsubsection{dvipdfmx}
+%
+% Identification.
+% \begin{macrocode}
+%<*dvipdfmx>
+\ProvidesFile{bmpsize-dvipdfmx.def}%
+ [2006/08/24 v1.0 Graphics bitmap driver for dvipdfmx (HO)]
+% \end{macrocode}
+% Ensure correct catcodes.
+% \begin{macrocode}
+\expandafter\edef\csname @bmpsize@driver@catcodes\endcsname{%
+ \catcode46 \the\catcode46 % .
+ \catcode64 \the\catcode64 % @
+}
+\catcode64 11 %
+\@makeother\.
+% \end{macrocode}
+% The size of reused images of dvipdfmx-20050823 is 1in in opposite
+% the 1bp of dvipdfm.
+% The reused image must be scaled to the requested
+% width and height. The factor is the conversion
+% from in to pt (1/72.27).
+% \begin{macro}{\bmpsize@dvipdfm@factor}
+% \begin{macrocode}
+\@ifundefined{bmpsize@dvipdfm@factor}{%
+ \def\bmpsize@dvipdfm@factor{.01384}%
+}{}
+% \end{macrocode}
+% \end{macro}
+% The rest is the same as for dvipdfm.
+% \begin{macrocode}
+\@bmpsize@driver@catcodes
+\input{bmpsize-dvipdfm.def}
+%</dvipdfmx>
+% \end{macrocode}
+%
+% \subsection{Test program \xpackage{bmpsize-test.tex}}
+%
+% \begin{macrocode}
+%<*test>
+\expandafter\ifx\csname NeedsTeXFormat\endcsname\relax
+\input miniltx
+\fi
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdfoutput\endcsname\relax
+\else
+ \pdfoutput=0 %
+\fi
+\RequirePackage{bmpsize}
+
+\endlinechar=-1
+\catcode`\@=11
+\def\msg#{\immediate\write16}
+
+\def\init{%
+ \msg{}%
+ \msg{File name menu}%
+ \msg{==============}%
+ \msg{* Option menu: use `opt' as file name}%
+ \msg{* Quit program: <return>}%
+ \msg{}%
+ \message{Image file name = }%
+ \read-1 to \imagename
+ \ifx\imagename\@empty
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ {%
+ \csname @@end\endcsname
+ \end
+ }{%
+ \ifnum\pdfstrcmp{\imagename}{opt}=\z@
+ \expandafter\optionmenu
+ \else
+ \startimg
+ \expandafter\init
+ \fi
+ }%
+}
+\def\optionmenu{%
+ \msg{}%
+ \msg{Option menu}%
+ \msg{===========}%
+ \msg{Current setting:}%
+ \msg{* bmpsizefast = \if@bmpsize@fast true\else false\fi}%
+ \msg{* \if@bmpsize@user@resolution\else default\fi resolution = %
+ \bmpsize@pixelx@default
+ \space
+ \bmpsize@pixely@default
+ }%
+ \msg{* \if@bmpsize@user@resolution default\fi resolution: not set}%
+ \msg{* resolutionunit = \bmpsize@unit@default}%
+ \msg{* Quit option menu: <return>}%
+ \msg{}%
+ \message{Options = }%
+ \read-1 to \options
+ \ifx\options\empty
+ \expandafter\init
+ \else
+ \edef\@bmpsize@temp{%
+ \noexpand\setkeys{Gin}{\options}%
+ }%
+ \@bmpsize@temp
+ \expandafter\optionmenu
+ \fi
+}
+
+\def\startimg{%
+ \let\@found\@empty
+ \msg{}%
+ \msg{* File [\imagename]}%
+ \@for\@type:=\bmpsize@types\do{%
+ \ifx\@found\@empty
+ \csname bmpsize@read@\@type\endcsname\imagename
+ \ifbmpsize@ok
+ \let\@found\@type
+ \msg{\space\space Type: \@type}%
+ \msg{\space\space Pixel width: \bmpsize@pixelwidth\space px}%
+ \msg{\space\space Pixel height: \bmpsize@pixelheight\space px}%
+ \ifx\bmpsize@pixelx\relax
+ \else
+ \ifx\bmpsize@unit\relax
+ \let\@unit@spec\@empty
+ \def\@ratio@name{Ratio }%
+ \else
+ \def\@unit@spec{\space dots per \bmpsize@unit}%
+ \def\@ratio@name{Density }%
+ \fi
+ \msg{\space\space \@ratio@name x: \bmpsize@pixelx\@unit@spec}%
+ \msg{\space\space \@ratio@name y: \bmpsize@pixely\@unit@spec}%
+ \fi
+ \msg{\space\space Width: \bmpsize@width\space bp}%
+ \msg{\space\space Height: \bmpsize@height\space bp}%
+ \fi
+ \fi
+ }%
+ \ifx\@found\@empty
+ \edef\@file@date{\pdffilemoddate{\imagename}}%
+ \ifx\@file@date\@empty
+ \msg{\space\space --> File not found <--}%
+ \else
+ \msg{\space\space --> Unknown image type <--}%
+ \fi
+ \fi
+}
+
+\ifx\noinit!\else\expandafter\init\fi
+%</test>
+% \end{macrocode}
+%
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/bmpsize.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/bmpsize.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex bmpsize.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% bmpsize.sty & tex/latex/oberdiek/bmpsize.sty\\
+% bmpsize-base.sty & tex/latex/oberdiek/bmpsize-base.sty\\
+% bmpsize-test.tex & tex/latex/oberdiek/bmpsize-test.tex\\
+% bmpsize-dvips.def & tex/latex/oberdiek/bmpsize-dvips.def\\
+% bmpsize-dvipdfm.def & tex/latex/oberdiek/bmpsize-dvipdfm.def\\
+% bmpsize-dvipdfmx.def & tex/latex/oberdiek/bmpsize-dvipdfmx.def\\
+% bmpsize.pdf & doc/latex/oberdiek/bmpsize.pdf\\
+% bmpsize.dtx & source/latex/oberdiek/bmpsize.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk bmpsize.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{bmpsize.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex bmpsize.dtx
+%makeindex -s gind.ist bmpsize.idx
+%pdflatex bmpsize.dtx
+%makeindex -s gind.ist bmpsize.idx
+%pdflatex bmpsize.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+% \bibitem{grfguide}
+% D.\,P.\,Carlisle, The \LaTeX\ Project:
+% \textit{Packages in the `graphics' bundle},
+% 2005/11/14;
+% \CTAN{macros/latex/required/graphics/grfguide.pdf}.
+%
+% \subsection{URLs for bitmap format descriptions}
+%
+% \subsubsection{JPEG}
+% \begin{itemize}
+% \item \url{http://www.w3.org/Graphics/JPEG/jfif3.pdf}
+% \item \url{http://exif.org/Exif2-2.PDF}
+% \end{itemize}
+%
+% \subsubsection{PNG}
+% \begin{itemize}
+% \item \url{http://en.wikipedia.org/wiki/PNG}
+% \item \url{http://www.w3.org/TR/PNG}
+% \end{itemize}
+%
+% \subsubsection{GIF}
+% \begin{itemize}
+% \item \url{http://www.w3.org/Graphics/GIF/spec-gif89a.txt}
+% \end{itemize}
+%
+% \subsubsection{BMP}
+% \begin{itemize}
+% \item \url{http://en.wikipedia.org/wiki/Windows_bitmap}
+% \item \url{http://de.wikipedia.org/wiki/Windows_bitmap}
+% \item \url{http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_4v1h.asp}
+% \item \url{http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_62uq.asp}
+% \end{itemize}
+%
+% \subsubsection{PCX}
+% \begin{itemize}
+% \item \url{http://en.wikipedia.org/wiki/PCX}
+% \item \url{http://de.wikipedia.org/wiki/PCX}
+% \item \url{http://www.qzx.com/pc-gpe/pcx.txt}
+% \end{itemize}
+%
+% \subsubsection{MSP}
+% \begin{itemize}
+% \item \url{http://en.wikipedia.org/wiki/Microsoft_Paint}
+% \item Sources of \xpackage{dvips}.
+% \end{itemize}
+%
+% \subsubsection{TIFF}
+% \begin{itemize}
+% \item \url{http://en.wikipedia.org/wiki/TIFF}
+% \item \url{http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf}
+% \end{itemize}
+%
+% \subsubsection{TGA}
+% \begin{itemize}
+% \item \url{http://de.wikipedia.org/wiki/Targa_Image_File}
+% \item \url{http://en.wikipedia.org/wiki/Truevision_TGA}
+% \item \url{http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf}
+% \end{itemize}
+%
+% \subsubsection{SGI}
+% \begin{itemize}
+% \item \url{http://en.wikipedia.org/wiki/Silicon_Graphics_Image}
+% \item \url{ftp://ftp.sgi.com/graphics/SGIIMAGESPEC}
+% \end{itemize}
+%
+% \subsubsection{WMF}
+% \begin{itemize}
+% \item \url{http://www.fileformat.info/format/wmf/}
+% \end{itemize}
+%
+% \subsubsection{XPM}
+% \begin{itemize}
+% \item \url{http://en.wikipedia.org/wiki/XPM_%28image_format%29}
+% \item \url{http://de.wikipedia.org/wiki/Xpm}
+% \item \url{http://koala.ilog.fr/ftp/pub/xpm/xpm-README.html}
+% \end{itemize}
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2006/08/24 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/chemarr.dtx b/Master/texmf-dist/source/latex/oberdiek/chemarr.dtx
new file mode 100644
index 00000000000..12679be4f70
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/chemarr.dtx
@@ -0,0 +1,409 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2001, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file chemarr.dtx
+% and the derived files
+% chemarr.sty, chemarr.pdf, chemarr.ins, chemarr.drv,
+% chemarr-example.tex.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/chemarr.dtx
+% CTAN:macros/latex/contrib/oberdiek/chemarr.pdf
+%
+% Unpacking:
+% (a) If chemarr.ins is present:
+% tex chemarr.ins
+% (b) Without chemarr.ins:
+% tex chemarr.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{chemarr.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If chemarr.drv is present:
+% latex chemarr.drv
+% (b) Without chemarr.drv:
+% latex chemarr.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex chemarr.dtx
+% makeindex -s gind.ist chemarr.idx
+% pdflatex chemarr.dtx
+% makeindex -s gind.ist chemarr.idx
+% pdflatex chemarr.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/chemarr.sty
+% TDS:doc/latex/oberdiek/chemarr.pdf
+% TDS:doc/latex/oberdiek/chemarr-example.tex
+% TDS:source/latex/oberdiek/chemarr.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: chemarr 2006/02/20 v1.2 Chemical reaction arrows (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2001, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file chemarr.dtx
+and the derived files
+ chemarr.sty, chemarr.pdf, chemarr.ins, chemarr.drv,
+ chemarr-example.tex.
+
+\endpreamble
+
+\generate{%
+ \file{chemarr.ins}{\from{chemarr.dtx}{install}}%
+ \file{chemarr.drv}{\from{chemarr.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{chemarr.sty}{\from{chemarr.dtx}{package}}%
+ \usedir{doc/latex/oberdiek}%
+ \file{chemarr-example.tex}{\from{chemarr.dtx}{example}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* chemarr.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `chemarr.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{chemarr.drv}%
+ [2006/02/20 v1.2 Chemical reaction arrows (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\usepackage{chemarr}
+\begin{document}
+ \DocInput{chemarr.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{48}
+%
+% \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 \~}
+%
+% \GetFileInfo{chemarr.drv}
+%
+% \title{The \xpackage{chemarr} package}
+% \date{2006/02/20 v1.2}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Very often chemists need a longer version
+% of reaction arrows (\cs{rightleftharpoons}) with
+% the possibility to put text above and below.
+% Analogous to \xpackage{amsmath}'s \cs{xrightarrow} and
+% \cs{xleftarrow} this package provides the macro
+% \cs{xrightleftharpoons}.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Usage}
+%
+% \DescribeMacro{\xrightleftharpoons}
+% This \LaTeX\ package defines \cs{xrightleftharpoons}. It prints
+% extensible arrows (harpoons), usually used in chemical reactions.
+% It allows to put some text above and below the harpoons and can
+% be used inside and outside of math mode.
+%
+% The package is based on \xpackage{amsmath}, thus it loads it,
+% if necessary.
+%
+% \subsection{Example}
+%
+% \begin{macrocode}
+%<*example>
+\documentclass{article}
+\usepackage{chemarr}
+\begin{document}
+\begin{center}
+ left
+ \xrightleftharpoons[\text{below}]{\text{above}}
+ right
+\end{center}
+\[
+ A
+ \xrightleftharpoons[T \geq 400\,\mathrm{K}]{p > 10\,\mathrm{hPa}}
+ B
+\]
+\end{document}
+%</example>
+% \end{macrocode}
+% The result:
+% \begin{center}
+% left
+% \xrightleftharpoons[\text{below}]{\text{above}}
+% right
+% \end{center}
+% \[
+% A
+% \xrightleftharpoons[T \geq 400\,\mathrm{K}]{p > 10\,\mathrm{hPa}}
+% B
+% \]
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{chemarr}%
+ [2006/02/20 v1.2 Chemical reaction arrows (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequirePackage{amsmath}
+% \end{macrocode}
+% The package \xpackage{amsmath} is needed for the following commands:
+% \begin{quote}
+% \cs{ext@arrow}, \cs{@ifnotempty}, \cs{arrowfill@}\\
+% \cs{relbar}, \cs{std@minus}\\
+% \cs{@ifempty}, \cs{@xifempty}, \cs{@xp}
+% \end{quote}
+%
+% \begin{macro}{\xrightleftharpoons}
+% In \xfile{fontmath.ltx} \cs{rightleftharpoons} is defined with
+% a vertical space of 2pt.
+% \begin{macrocode}
+\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}}%
+ $%
+ }%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\leftharpoondownfill@}
+% \begin{macrocode}
+\newcommand*{\leftharpoondownfill@}{%
+ \arrowfill@\leftharpoondown\relbar\relbar
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\rightharpoonupfill@}
+% \begin{macrocode}
+\newcommand*{\rightharpoonupfill@}{%
+ \arrowfill@\relbar\relbar\rightharpoonup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/chemarr.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/chemarr.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex chemarr.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% chemarr.sty & tex/latex/oberdiek/chemarr.sty\\
+% chemarr.pdf & doc/latex/oberdiek/chemarr.pdf\\
+% chemarr-example.tex & doc/latex/oberdiek/chemarr-example.tex\\
+% chemarr.dtx & source/latex/oberdiek/chemarr.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk chemarr.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{chemarr.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex chemarr.dtx
+%makeindex -s gind.ist chemarr.idx
+%pdflatex chemarr.dtx
+%makeindex -s gind.ist chemarr.idx
+%pdflatex chemarr.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2001/06/21 v1.0}
+% \item
+% First public version.
+% \end{Version}
+% \begin{Version}{2001/06/22 v1.1}
+% \item
+% Documentation fixes.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.2}
+% \item
+% DTX framework.
+% \item
+% Example added.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/classlist.dtx b/Master/texmf-dist/source/latex/oberdiek/classlist.dtx
new file mode 100644
index 00000000000..c43598f08b9
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/classlist.dtx
@@ -0,0 +1,499 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file classlist.dtx
+% and the derived files
+% classlist.sty, classlist.pdf, classlist.ins, classlist.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/classlist.dtx
+% CTAN:macros/latex/contrib/oberdiek/classlist.pdf
+%
+% Unpacking:
+% (a) If classlist.ins is present:
+% tex classlist.ins
+% (b) Without classlist.ins:
+% tex classlist.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{classlist.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If classlist.drv is present:
+% latex classlist.drv
+% (b) Without classlist.drv:
+% latex classlist.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex classlist.dtx
+% makeindex -s gind.ist classlist.idx
+% pdflatex classlist.dtx
+% makeindex -s gind.ist classlist.idx
+% pdflatex classlist.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/classlist.sty
+% TDS:doc/latex/oberdiek/classlist.pdf
+% TDS:source/latex/oberdiek/classlist.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: classlist 2006/02/20 v1.2 Record loaded classes (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file classlist.dtx
+and the derived files
+ classlist.sty, classlist.pdf, classlist.ins, classlist.drv.
+
+\endpreamble
+
+\generate{%
+ \file{classlist.ins}{\from{classlist.dtx}{install}}%
+ \file{classlist.drv}{\from{classlist.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{classlist.sty}{\from{classlist.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* classlist.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `classlist.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{classlist.drv}%
+ [2006/02/20 v1.2 Record loaded classes (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{classlist.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{162}
+%
+% \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 \~}
+%
+% \GetFileInfo{classlist.drv}
+%
+% \title{The \xpackage{classlist} package}
+% \date{2006/02/20 v1.2}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package records the loaded classes and stores
+% them in a list.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% \subsection{Background}
+%
+% This packages is an answer of a newsgroup question:
+% \begin{quote}
+% \begin{tabular}{@{}ll@{}}
+% Newsgroup: & comp.text.tex\\
+% Subject: & Finding the Document Class\\
+% From: & Herber Schulz\\
+% Date: & 18 Jun 2005 13:16:49 -0500\\
+% Message-ID: &
+% \textless
+% \texttt{herbs-D55DB9.13170418062005@news.isp.giganews.com}^^A
+% \textgreater
+% \end{tabular}
+% \end{quote}
+%
+% \subsection{Usage}
+%
+% Load this package before \cs{documentclass}:
+% \begin{quote}
+% |\RequirePackage{classlist}|\\
+% |\documentclass[some,options]{whatever}|
+% \end{quote}
+% It then records the classes with options.
+%
+% If used after \cs{documentclass}, \cs{@filelist} is
+% parsed for classes. The additional data
+% specified options and requested version is no
+% longer available here.
+%
+% \begin{description}
+% \item[\cs{MainClass}] contains the first loaded class.
+% \item[\cs{ClassList}] stores the class entries, eg.
+% \begin{quote}
+% \begin{tabular}{@{}l@{ }l@{}}
+% \cs{ClassList} $\rightarrow$&
+% |\ClassListEntry{myarticle}{a4paper}{}|\\
+% &|\ClassListEntry{article}{}{}|
+% \end{tabular}
+% \end{quote}
+% \item[\cs{ClassListEntry}] has three arguments:
+% \begin{quote}
+% \begin{tabular}{@{}ll@{}}
+% |#1|: & class name\\
+% |#2|: & options given in \cs{documentclass}/\cs{LoadClass}\\
+% |#3|: & requested version, not the version of class
+% \end{tabular}
+% \end{quote}
+% \item[\cs{PrintClassList}] prints the list on screen it can be
+% configured by
+% \item[\cs{PrintClassListTitle}] for the title and
+% \item[\cs{PrintClassListEntry}] for formatting the entries.
+% See the implemenation how to use these.
+% \end{description}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{classlist}%
+ [2006/02/20 v1.2 Record loaded classes (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\ClassList\@empty
+\let\MainClassName\relax
+% \end{macrocode}
+%
+% Test, whether we are called before \cs{documentclass}.
+% \begin{macrocode}
+\ifx\@classoptionslist\relax
+ \let\CL@org@fileswith@pti@ns\@fileswith@pti@ns
+ \def\@fileswith@pti@ns#1[#2]#3[#4]{%
+% \end{macrocode}
+% \begin{tabular}{@{}ll@{}}
+% |#1|: & \cs{@clsextension}\\
+% |#2|: & options of \cs{documentclass}/\cs{LoadClass}\\
+% |#3|: & class name\\
+% |#4|: & requested version
+% \end{tabular}
+% \begin{macrocode}
+ \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}]%
+ }
+ \let\@@fileswith@pti@ns\@fileswith@pti@ns
+\else
+% \end{macrocode}
+% Called after \cs{documentclass}.
+% \begin{macrocode}
+ \PackageInfo{classlist}{Use \string\@filelist\space method}%
+
+ \let\ClassListEntry\relax
+ \expandafter\def\expandafter\CL@test
+ \expandafter#\expandafter1\@clsextension#2\@nil{%
+ \ifx\\#2\\%
+% \end{macrocode}
+% Name does not contain \cs{@clsextension}
+% \begin{macrocode}
+ \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
+% \end{macrocode}
+% Names with more than one \cs{@clsextension} are not supported.
+% \begin{macrocode}
+ \fi
+ }
+ \@for\CL@entry:=\@filelist\do{%
+ \expandafter\expandafter\expandafter\CL@test\expandafter
+ \CL@entry\@clsextension\@nil
+ }%
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\PrintClassListEntry}
+% \begin{macrocode}
+\providecommand*{\PrintClassListEntry}[3]{%
+ \toks@{* #1}%
+ \typeout{\the\toks@}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\PrintClassListTitle}
+% \begin{macrocode}
+\providecommand*{\PrintClassListTitle}{%
+ \typeout{Class list:}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\PrintClassList}
+% \begin{macrocode}
+\providecommand*{\PrintClassList}{%
+ \begingroup
+ \let\ClassListEntry\PrintClassListEntry
+ \PrintClassListTitle
+ \ClassList
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\CL@InfoEntry}
+% \begin{macrocode}
+\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
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \begingroup
+ \count@=\z@
+ \def\CL@Info{Class List:}%
+ \let\ClassListEntry\CL@InfoEntry
+ \ClassList
+ \let\on@line\@empty
+ \PackageInfo{classlist}{\CL@Info}
+ \endgroup
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/classlist.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/classlist.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex classlist.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% classlist.sty & tex/latex/oberdiek/classlist.sty\\
+% classlist.pdf & doc/latex/oberdiek/classlist.pdf\\
+% classlist.dtx & source/latex/oberdiek/classlist.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk classlist.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{classlist.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex classlist.dtx
+%makeindex -s gind.ist classlist.idx
+%pdflatex classlist.dtx
+%makeindex -s gind.ist classlist.idx
+%pdflatex classlist.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2005/06/19 v1.0}
+% \item
+% First published version
+% (comp.text.tex, CTAN).
+% \end{Version}
+% \begin{Version}{2005/06/19 v1.1}
+% \item
+% After \cs{documentclass} the package looks
+% at \cs{@filelist} instead of aborting with error.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.2}
+% \item
+% DTX framework.
+% \item
+% Fix for \cs{@@fileswith@pti@ns}.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/colonequals.dtx b/Master/texmf-dist/source/latex/oberdiek/colonequals.dtx
new file mode 100644
index 00000000000..0c28915581f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/colonequals.dtx
@@ -0,0 +1,525 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file colonequals.dtx
+% and the derived files
+% colonequals.sty, colonequals.pdf, colonequals.ins, colonequals.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/colonequals.dtx
+% CTAN:macros/latex/contrib/oberdiek/colonequals.pdf
+%
+% Unpacking:
+% (a) If colonequals.ins is present:
+% tex colonequals.ins
+% (b) Without colonequals.ins:
+% tex colonequals.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{colonequals.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If colonequals.drv is present:
+% latex colonequals.drv
+% (b) Without colonequals.drv:
+% latex colonequals.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex colonequals.dtx
+% makeindex -s gind.ist colonequals.idx
+% pdflatex colonequals.dtx
+% makeindex -s gind.ist colonequals.idx
+% pdflatex colonequals.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/colonequals.sty
+% TDS:doc/latex/oberdiek/colonequals.pdf
+% TDS:source/latex/oberdiek/colonequals.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: colonequals 2006/08/01 v1.0 Colon equals symbols (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file colonequals.dtx
+and the derived files
+ colonequals.sty, colonequals.pdf, colonequals.ins, colonequals.drv.
+
+\endpreamble
+
+\generate{%
+ \file{colonequals.ins}{\from{colonequals.dtx}{install}}%
+ \file{colonequals.drv}{\from{colonequals.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{colonequals.sty}{\from{colonequals.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* colonequals.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `colonequals.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{colonequals.drv}%
+ [2006/08/01 v1.0 Colon equals symbols (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\usepackage{colonequals}
+\usepackage{array}
+\usepackage{capt-of}
+\usepackage{longtable}
+\begin{document}
+ \DocInput{colonequals.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{92}
+%
+% \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 \~}
+%
+% \GetFileInfo{colonequals.drv}
+%
+% \title{The \xpackage{colonequals} package}
+% \date{2006/08/01 v1.0}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{colonequals} defines poor man's symbols
+% for math relation symbols such as ``colon equals''.
+% The colon is centered around the horizontal math axis.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{User interface}
+%
+% \subsection{Introduction}
+%
+% Math symbols consisting of the colon character can be
+% constructed with the colon text character, if the math font
+% lacks of the complete symbol. Often, however, the colon text
+% character is not centered around the math axis. Especially
+% combined with the equals symbol the composed symbol does not
+% look symmetrically. Thus this packages defines a colon
+% math symbol \cs{ratio} that is centered around the horizontal
+% math axis. Also math symbols are provided that consist of the
+% colon symbol. The package is not necessary, if the math
+% font contains the composed symbols. Examples are \textsf{txfonts}
+% (\cite{txfonts}) or \textsf{mathabx} (\cite{mathabx}).
+%
+% \subsection{Symbols}
+%
+% All symbols of this package are relation symbols.
+% The relation property can be changed by the appropriate
+% \TeX\ command \cs{mathbin}, \cs{mathord}, \dots
+%
+% \begin{center}
+% \captionof{table}{Unicode mathematical operators}
+% \kern1ex
+% \begin{tabular}{l>{\scshape}l>{$}l<{$}l}
+% U+2236 & ratio & \ratio & \cs{ratio} \\
+% U+2237 & proportion & \coloncolon & \cs{coloncolon} \\
+% U+2239 & excess & \colonminus & \cs{colonminus} \\
+% U+2254 & colon equals & \colonequals & \cs{colonequals} \\
+% U+2255 & equals colon & \equalscolon & \cs{equalscolon} \\
+% \end{tabular}
+% \end{center}
+%
+% The following grammar generates all symbols that are supported by
+% this package:
+% \begin{center}
+% \captionof{table}{Symbol grammar}
+% \kern1ex
+% \begin{tabular}{@{}l>{$}r<{$}l@{}}
+% symbols & \coloncolonequals & col \\
+% & \mid & col symbol \\
+% & \mid & symbol col \\
+% & ; & \\[1ex]
+% col & \coloncolonequals & '\texttt{:}' \\
+% & \mid & '\texttt{::}' \\
+% & ; & \\[1ex]
+% symbol & \coloncolonequals & '\texttt{=}' \\
+% & \mid & '\texttt{-}' \\
+% & \mid & '$\approx$' \\
+% & \mid & '$\sim$' \\
+% & ; &
+% \end{tabular}
+% \end{center}
+%
+% \def\entry#1{\csname #1\endcsname&\cs{#1}\\}
+% \def\entryset#1{^^A
+% \entry{colon#1}^^A
+% \entry{coloncolon#1}^^A
+% \entry{#1colon}^^A
+% \entry{#1coloncolon}^^A
+% }
+% \begin{longtable}{>{$}l<{$}l}
+% \caption{All relation symbols}\\
+% \entry{ratio}
+% \entry{coloncolon}
+% \entryset{equals}
+% \entryset{minus}
+% \entryset{approx}
+% \entryset{sim}
+% \end{longtable}
+%
+% \subsection{Fine tuning}
+%
+% The distances in composed symbols can be configured:
+%
+% \begin{declcs}{colonsep}
+% \end{declcs}
+% Macro \cs{colonsep} is executed between the colon and
+% the other symbol.
+%
+% \begin{declcs}{doublecolonsep}
+% \end{declcs}
+% Macro \cs{doublecolonsep} controls the distance between
+% two colons.
+%
+% \subsubsection{Example}
+% \begin{quote}
+% \verb|\renewcommand*{\colonsep}{\mskip-.5\thinmuskip}|
+% \end{quote}
+%
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Identification}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{colonequals}%
+ [2006/08/01 v1.0 Colon equals symbols (HO)]
+% \end{macrocode}
+%
+% \subsection{Distance control}
+%
+% \begin{macro}{\colonsep}
+% \begin{macrocode}
+\newcommand*{\colonsep}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\doublecolonsep}
+% \begin{macrocode}
+\newcommand*{\doublecolonsep}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Centered colons}
+%
+% \begin{macrocode}
+\def\@center@colon{%
+ \mathpalette\@center@math{:}%
+}
+\def\@center@math#1#2{%
+ \vcenter{%
+ \m@th
+ \hbox{$#1#2$}%
+ }%
+}
+% \end{macrocode}
+%
+% \begin{macro}{\ratio}
+% Because the name \cs{colon} is already in use, the Unicode name
+% \cs{ratio} is used for the centered colon relation symbol.
+% (The \cs{ratio} of package \textsf{calc} is not used outside
+% calc expressions.)
+% \begin{macrocode}
+\newcommand*{\ratio}{%
+ \ensuremath{%
+ \mathrel{%
+ \@center@colon
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\coloncolon}
+% \begin{macrocode}
+\newcommand*{\coloncolon}{%
+ \ensuremath{%
+ \mathrel{%
+ \@center@colon
+ \doublecolonsep
+ \@center@colon
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Combined symbols}
+%
+% \begin{macrocode}
+\def\@make@colon@set#1#2{%
+ \begingroup
+ \let\@center@colon\relax
+ \let\newcommand\relax
+ \let\ensuremath\relax
+ \let\mathrel\relax
+ \let\colonsep\relax
+ \let\doublecolonsep\relax
+ \def\csx##1{%
+ \expandafter\noexpand\csname ##1\endcsname
+ }%
+ \edef\x{\endgroup
+ \newcommand*{\csx{colon#1}}{%
+ \ensuremath{%
+ \mathrel{%
+ \@center@colon
+ \colonsep
+ {#2}%
+ }%
+ }%
+ }%
+ \newcommand*{\csx{coloncolon#1}}{%
+ \ensuremath{%
+ \mathrel{%
+ \@center@colon
+ \doublecolonsep
+ \@center@colon
+ \colonsep
+ {#2}%
+ }%
+ }%
+ }%
+ \newcommand*{\csx{#1colon}}{%
+ \ensuremath{%
+ \mathrel{%
+ {#2}%
+ \colonsep
+ \@center@colon
+ }%
+ }%
+ }%
+ \newcommand*{\csx{#1coloncolon}}{%
+ \ensuremath{%
+ \mathrel{%
+ {#2}%
+ \colonsep
+ \@center@colon
+ \doublecolonsep
+ \@center@colon
+ }%
+ }%
+ }%
+ }%
+ \x
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@make@colon@set{equals}{=}%
+\@make@colon@set{minus}{-}%
+\@make@colon@set{approx}{\approx}
+\@make@colon@set{sim}{\sim}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/colonequals.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/colonequals.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex colonequals.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% colonequals.sty & tex/latex/oberdiek/colonequals.sty\\
+% colonequals.pdf & doc/latex/oberdiek/colonequals.pdf\\
+% colonequals.dtx & source/latex/oberdiek/colonequals.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk colonequals.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{colonequals.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex colonequals.dtx
+%makeindex -s gind.ist colonequals.idx
+%pdflatex colonequals.dtx
+%makeindex -s gind.ist colonequals.idx
+%pdflatex colonequals.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{txfonts}
+% Young Ryu: \textit{The TX Fonts};
+% 2000/12/15;
+% \CTAN{fonts/txfonts/}.
+%
+% \bibitem{mathabx}
+% Anthony Phan: \textit{Mathabx font series};
+% 2005/05/16;
+% \CTAN{fonts/mathabx/}.
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2006/08/01 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/dvipscol.dtx b/Master/texmf-dist/source/latex/oberdiek/dvipscol.dtx
new file mode 100644
index 00000000000..bb77bc11d9c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/dvipscol.dtx
@@ -0,0 +1,406 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2000, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file dvipscol.dtx
+% and the derived files
+% dvipscol.sty, dvipscol.pdf, dvipscol.ins, dvipscol.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/dvipscol.dtx
+% CTAN:macros/latex/contrib/oberdiek/dvipscol.pdf
+%
+% Unpacking:
+% (a) If dvipscol.ins is present:
+% tex dvipscol.ins
+% (b) Without dvipscol.ins:
+% tex dvipscol.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{dvipscol.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If dvipscol.drv is present:
+% latex dvipscol.drv
+% (b) Without dvipscol.drv:
+% latex dvipscol.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex dvipscol.dtx
+% makeindex -s gind.ist dvipscol.idx
+% pdflatex dvipscol.dtx
+% makeindex -s gind.ist dvipscol.idx
+% pdflatex dvipscol.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/dvipscol.sty
+% TDS:doc/latex/oberdiek/dvipscol.pdf
+% TDS:source/latex/oberdiek/dvipscol.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: dvipscol 2006/02/20 v1.1 Fix for dvips.def (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2000, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file dvipscol.dtx
+and the derived files
+ dvipscol.sty, dvipscol.pdf, dvipscol.ins, dvipscol.drv.
+
+\endpreamble
+
+\generate{%
+ \file{dvipscol.ins}{\from{dvipscol.dtx}{install}}%
+ \file{dvipscol.drv}{\from{dvipscol.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{dvipscol.sty}{\from{dvipscol.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* dvipscol.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `dvipscol.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{dvipscol.drv}%
+ [2006/02/20 v1.1 Fix for dvips.def (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{dvipscol.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{49}
+%
+% \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 \~}
+%
+% \GetFileInfo{dvipscol.drv}
+%
+% \title{The \xpackage{dvipscol} package}
+% \date{2006/02/20 v1.1}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Color support for dvips in \xfile{dvips.def} involves the
+% color stack of dvips. The package tries to remove unnecessary
+% uses of the stack to avoid the error ``out of coor stack space''.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% \subsection{Introduction}
+%
+% This package tries a solution, if the program
+% dvips complains:
+% \begin{quote}
+% |! out of color stack space|
+% \end{quote}
+% The driver file \xfile{dvips.def} contains the
+% low level color commands for the package \xpackage{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 \cs{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 \eTeX\ the group level can easily be
+% detected (\cs{currentgrouplevel}). Alone with
+% \TeX\ this is not possible.
+%
+% \subsection{Usage}
+%
+% \subsubsection{With \eTeX}
+%
+% With e-TeX the package fixes \cs{set@color}, therefore
+% no interaction with the user is required. Just load the package:
+% \begin{quote}
+% |\usepackage[dvips]{color}|\\
+% |\usepackage{dvipscol}|
+% \end{quote}
+%
+% \subsubsection{Without \eTeX}
+%
+% \begin{quote}
+% |\usepackage[dvips]{color}|\\
+% |\usepackage{dvipscol}|
+% \end{quote}
+% Without \eTeX\ the package does not know, which \cs{color}
+% do not need the stack. Therefore it defines \cs{nogroupcolor},
+% that the user can use manually instead of \cs{color}.
+% But caution: it should only be used outside of all
+% groups, for example the following will not work:
+% \begin{quote}
+% |\textcolor{black}{\nogroupcolor{blue}...}|
+% \end{quote}
+%
+% The use of \eTeX is strongly recommended.
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{dvipscol}%
+ [2006/02/20 v1.1 Fix for dvips.def (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifundefined{ver@dvips.def}{%
+ \PackageWarningNoLine{dvipscol}{%
+ Nothing to fix, because \string`dvips.def\string' not loaded%
+ }%
+ \endinput
+}
+% \end{macrocode}
+% \begin{macrocode}
+\CheckCommand*{\set@color}{%
+ \special{color push \current@color}%
+ \aftergroup\reset@color
+}
+% \end{macrocode}
+% \begin{macro}{\nogroupcolor}
+% \begin{macrocode}
+\newcommand*{\nogroupcolor}{%
+ \let\saved@org@set@color\set@color
+ \def\set@color{%
+ \let\set@color\saved@org@set@color
+ \special{color \current@color}%
+ }%
+ \color
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Patch for \eTeX\ users.
+% \begin{macrocode}
+\ifx\currentgrouplevel\@undefined
+ \PackageWarningNoLine{dvipscol}{%
+ \string\set@color\space cannot be fixed, %
+ because the\MessageBreak
+ e-TeX extensions are not available%
+ }%
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+% \begin{macrocode}
+\def\set@color{%
+ \ifcase\currentgrouplevel
+ \special{color \current@color}%
+ \else
+ \special{color push \current@color}%
+ \aftergroup\reset@color
+ \fi
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/dvipscol.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/dvipscol.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex dvipscol.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% dvipscol.sty & tex/latex/oberdiek/dvipscol.sty\\
+% dvipscol.pdf & doc/latex/oberdiek/dvipscol.pdf\\
+% dvipscol.dtx & source/latex/oberdiek/dvipscol.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk dvipscol.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{dvipscol.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex dvipscol.dtx
+%makeindex -s gind.ist dvipscol.idx
+%pdflatex dvipscol.dtx
+%makeindex -s gind.ist dvipscol.idx
+%pdflatex dvipscol.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2000/08/31 v1.0}
+% \item
+% First public release created as answer to
+% a question of Deepak Goel in \xnewsgroup{comp.text.tex}:\\
+% |\color{} problems.. :Out of stack space..|
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.1}
+% \item
+% DTX framework.
+% \item
+% Code is not changed.
+% \item
+% LPPL 1.3
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/embedfile.dtx b/Master/texmf-dist/source/latex/oberdiek/embedfile.dtx
new file mode 100644
index 00000000000..bd94e2639a3
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/embedfile.dtx
@@ -0,0 +1,857 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file embedfile.dtx
+% and the derived files
+% embedfile.sty, embedfile.pdf, embedfile.ins, embedfile.drv,
+% dtx-attach.sty, embedfile-example-plain.tex.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/embedfile.dtx
+% CTAN:macros/latex/contrib/oberdiek/embedfile.pdf
+%
+% Unpacking:
+% (a) If embedfile.ins is present:
+% tex embedfile.ins
+% (b) Without embedfile.ins:
+% tex embedfile.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{embedfile.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If embedfile.drv is present:
+% latex embedfile.drv
+% (b) Without embedfile.drv:
+% latex embedfile.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex embedfile.dtx
+% makeindex -s gind.ist embedfile.idx
+% pdflatex embedfile.dtx
+% makeindex -s gind.ist embedfile.idx
+% pdflatex embedfile.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/embedfile.sty
+% TDS:tex/latex/oberdiek/dtx-attach.sty
+% TDS:doc/latex/oberdiek/embedfile.pdf
+% TDS:doc/latex/oberdiek/embedfile-example-plain.tex
+% TDS:source/latex/oberdiek/embedfile.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: embedfile 2006/08/16 v1.0 embed files into PDF (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file embedfile.dtx
+and the derived files
+ embedfile.sty, embedfile.pdf, embedfile.ins, embedfile.drv,
+ dtx-attach.sty, embedfile-example-plain.tex.
+
+\endpreamble
+
+\generate{%
+ \file{embedfile.ins}{\from{embedfile.dtx}{install}}%
+ \file{embedfile.drv}{\from{embedfile.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{embedfile.sty}{\from{embedfile.dtx}{package}}%
+ \file{dtx-attach.sty}{\from{embedfile.dtx}{dtxattach}}%
+ \usedir{doc/latex/oberdiek}%
+ \file{embedfile-example-plain.tex}{\from{embedfile.dtx}{exampleplain}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* embedfile.sty, dtx-attach.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `embedfile.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{embedfile.drv}%
+ [2006/08/16 v1.0 embed files into PDF (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{embedfile.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{430}
+%
+% \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 \~}
+%
+% \GetFileInfo{embedfile.drv}
+%
+% \title{The \xpackage{embedfile} package}
+% \date{2006/08/16 v1.0}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package embeds files to a PDF document.
+% Currently \pdfTeX\ >= 1.30 in PDF mode is supported only.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% \subsection{Introduction}
+%
+% The PDF format (\cite{pdfspec}) allows the inclusion of files
+% inside the PDF document. The included files can be bound to an
+% annotation on a page. Or they can be recorded in a sorted
+% list of embedded files. The packages \xpackage{attachfile}
+% or \xpackage{attachfile2} follow the first approach, this
+% package uses the latter method.
+%
+% \subsubsection{Future development}
+%
+% My dream is a large package that merges the features of
+% all these packages meantioned before:
+% \begin{itemize}
+% \item Files can be attached to a page.
+% \item Files can be attached to the document.
+% \item An easy user interface for simple, common tasks and
+% beginners.
+% \item An interface for the advanced users that want to setup
+% every detail.
+% \item Support of many drivers (pdftex, dvips, dvipdfm, \dots).
+% \item \dots
+% \end{itemize}
+% However, I have not managed to take the time for this project.
+% Instead:
+% \begin{itemize}
+% \item First I experimented with package \xpackage{attachfile},
+% adding driver support, fixing bugs, \dots. The result is
+% currently named as \xpackage{attachfile2}. It uses an external
+% script to get file properties (size, date, checksum, \dots).
+% \item In order to avoid an external program for getting basic
+% file properties I provided a patch ``EscapeAndOther'' for
+% pdfTeX that was accepted for version 1.30.
+% \item This package closes a gap left by the packages for attaching
+% files and allows the embedding of files to the document.
+% Also it makes use of the new primitives of \pdfTeX.
+% \end{itemize}
+%
+% \subsection{User interface}
+%
+% This package \xpackage{embedfile} can be used with both
+% \LaTeX\ and \plainTeX. See \autoref{sec:plain} that
+% explains the use with \plainTeX\ by an example.
+% In \LaTeX\ the package is loaded as usually. There are no options.
+% \begin{quote}
+% \verb|\usepackage{embedfile}|
+% \end{quote}
+%
+% \begin{declcs}{embedfile}
+% |[|\meta{options}|]| \M{file}
+% \end{declcs}
+% The macro \cs{embedfile} includes file \meta{file} and
+% attaches it to the PDF document. At the end of the document
+% the sorted list of embedded files are written. Thus you can
+% safely use \cs{embedfile} before \verb|\end{document}|.
+% Embedding files using \cs{AtEndDocument} will only work,
+% if \cs{AtEndDocument} is called before loading the package
+% \xpackage{embedfile}
+%
+% The \meta{options} are give as key value pairs. The following
+% keys are supported:
+% \begin{description}
+% \item[\xoption{filespec}]
+% This allows to override the file name
+% that appears in the PDF file. If you are using other than
+% simple file names (8bit, path separators, \dots), look into
+% the PDF specification (\cite{pdfspec}).
+% There are rules how these file names
+% must be written/encoded.
+% \item[\xoption{filesystem}]
+% This sets the entry \verb|/FS| in
+% the file specification dictionary, see PDF specification
+% (\cite{pdfspec}).
+% Example: \verb|filesystem=URL|.
+% \item[\xoption{mimetype}]
+% This sets the mime type (\cite{mime}) of the file,
+% see \autoref{sec:plain} for examples and \cite{types}
+% for a list of officially registered types.
+% \item[\xoption{desc}]
+% The description for the file.
+% \item[\xoption{stringmethod}]
+% The package must convert the values of the keys \xoption{filespec}
+% and \xoption{desc} into a PDF string. If \xpackage{hyperref}
+% is found, then its \cs{pdfstringdef} will be used, otherwise
+% \pdfTeX's \cs{pdfescapestring} is used. Value \verb|psd|
+% forces the use of \cs{pdfstringdef}, value \verb|escape|
+% the use of \cs{pdfescapestring}.
+% \end{description}
+%
+% \subsection{Examples}
+%
+% \subsubsection{\plainTeX}\label{sec:plain}
+%
+% The package can be used with \plainTeX. Because is uses
+% package \xpackage{keyval} and \cs{@ifnextchar}, it needs
+% a little help from \xfile{miniltx.tex}.
+%
+% If additionally package \xpackage{keyval} (\xpackage{graphicx})
+% is needed, load it first. Then package \xpackage{embedfile} avoids
+% a duplicate loading of package \xpackage{keyval}.
+%
+% Because \plainTeX\ does not provide a hook at end of the document,
+% you have to call \cs{embedfilefinish} manually at the end
+% after the last embedded file.
+% \begin{macrocode}
+%<*exampleplain>
+ % Load packages
+\input miniltx
+ % \def\Gin@driver{pdftex.def}
+ % \input graphicx.sty
+\input embedfile.sty
+\resetatcatcode
+
+ % default setting
+\embedfilesetup{
+ mimetype=text/plain
+}
+
+ % Embed files
+\embedfile[
+ filespec=example.tex,
+ desc={Source code (plain-TeX) of this example}
+]{embedfile-example-plain.tex}
+
+\embedfile[
+ desc={Source of package `embedfile'}
+]{embedfile.dtx}
+
+\embedfile[
+ mimetype=application/pdf,
+ desc={Documentation of package `embedfile'}
+]{embedfile.pdf}
+
+ % Some text
+This example document contains three embedded files.
+
+ % End of document
+\embedfilefinish % don't forget
+\bye
+%</exampleplain>
+% \end{macrocode}
+%
+% \subsection{Package \xpackage{dtx-attach}}
+%
+% Package \xpackage{dtx-attach} is just a small application of
+% package \xpackage{embedfile}. I am using it for the CTAN
+% documentation of my packages in \CTAN{macros/latex/contrib/oberdiek/}.
+% It also serves as small example for the use of the package with \LaTeX.
+%
+% \begin{macrocode}
+%<*dtxattach>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{dtx-attach}
+ [2006/08/16 v1.0 Embed \string\jobname.dtx (HO)]
+\RequirePackage{embedfile}[2006/08/16]
+\embedfile[
+ stringmethod=escape,
+ mimetype=plain/text,
+ desc={LaTeX docstrip source archive for package `\jobname'}
+]{\jobname.dtx}
+%</dtxattach>
+% \end{macrocode}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \subsection{Reload check and package identification}
+% Reload check, especially if the package is not used with \LaTeX.
+% \begin{macrocode}
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@embedfile.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{embedfile}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+% \end{macrocode}
+% Package identification:
+% \begin{macrocode}
+\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@embedfile.sty\endcsname
+\ProvidesPackage{embedfile}%
+ [2006/08/16 v1.0 embed files into PDF (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\edef\EmbedFileRestoreCatcodes{%
+ \catcode39 \the\catcode39 % '
+ \catcode40 \the\catcode40 % (
+ \catcode41 \the\catcode41 % )
+ \catcode47 \the\catcode47 % /
+ \catcode60 \the\catcode60 % <
+ \catcode62 \the\catcode62 % >
+ \catcode64 \the\catcode64 % @
+ \catcode91 \the\catcode91 % [
+ \catcode93 \the\catcode93 % ]
+ \catcode96 \the\catcode96 % `
+}
+\catcode39 12 % '
+\catcode40 12 % (
+\catcode41 12 % )
+\catcode47 12 % /
+\catcode60 12 % <
+\catcode62 12 % >
+\catcode64 11 % @
+\catcode91 12 % [
+\catcode93 12 % ]
+\catcode96 12 % `
+% \end{macrocode}
+%
+% \subsection{Tools}
+%
+% \begin{macro}{\EmbedFile@PackageError}
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname PackageError\endcsname\relax
+ \def\EmbedFile@PackageError#1#2{%
+ \errhelp{#2}%
+ \errmessage{Package embedfile Error: #1.}%
+ }%
+\else
+ \def\EmbedFile@PackageError#1#2{%
+ \begingroup
+ \let\on@line\empty
+ \PackageError{embedfile}{#1}{#2}%
+ \endgroup
+ }%
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\EmbedFile@RequirePackage}
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname RequirePackage\endcsname\relax
+ \def\EmbedFile@RequirePackage#1#2{%
+ \expandafter\ifx\csname #2\encsname\relax
+ \input #1.sty\relax
+ \fi
+ }%
+\else
+ \def\EmbedFile@RequirePackage#1#2{%
+ \expandafter\ifx\csname #2\endcsname\relax
+ \RequirePackage{#1}%
+ \fi
+ }%
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Check for recent \pdfTeX\ in PDF mode}
+%
+% Load package \xpackage{ifpdf} and check mode.
+% \begin{macrocode}
+\EmbedFile@RequirePackage{ifpdf}{ifpdf}
+\ifpdf
+\else
+ \EmbedFile@PackageError{%
+ Missing pdfTeX in PDF mode%
+ }{%
+ Currently other drivers are not supported. Package loading is aborted.%
+ }%
+ \EmbedFileRestoreCatcodes
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+% Check version.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdffilesize\endcsname\relax
+ \EmbedFile@PackageError{%
+ Unsupported pdfTeX version%
+ }{%
+ At least version 1.30 is necessary. Package loading is aborted.%
+ }%
+ \EmbedFileRestoreCatcodes
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+%
+% \subsection{Key value definitions}
+%
+% \begin{macrocode}
+\EmbedFile@RequirePackage{keyval}{define@key}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\EmbedFile@DefineKey#1#2{%
+ \define@key{EmbedFile}{#1}{%
+ \expandafter\def\csname EmbedFile@#1\endcsname{##1}%
+ }%
+ \expandafter\def\csname EmbedFile@#1\endcsname{#2}%
+}
+% \end{macrocode}
+% Subtype of the embedded file (optional).
+% \begin{macrocode}
+\EmbedFile@DefineKey{mimetype}{}
+% \end{macrocode}
+% File specification string.
+% \begin{macrocode}
+\EmbedFile@DefineKey{filespec}{\EmbedFile@file}
+% \end{macrocode}
+% File system (optional).
+% \begin{macrocode}
+\EmbedFile@DefineKey{filesystem}{}
+% \end{macrocode}
+% Description (optional).
+% \begin{macrocode}
+\EmbedFile@DefineKey{desc}{}
+% \end{macrocode}
+% Method for converting text to PDF strings.
+% \begin{macrocode}
+\EmbedFile@DefineKey{stringmethod}{%
+ \ifx\pdfstringdef\@undefined
+ escape%
+ \else
+ \ifx\pdfstringdef\relax
+ escape%
+ \else
+ psd%
+ \fi
+ \fi
+}
+% \end{macrocode}
+%
+% \begin{macro}{\embedfilesetup}
+% \begin{macrocode}
+\def\embedfilesetup{%
+ \setkeys{EmbedFile}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Embed the file}
+%
+% \begin{macro}{\embedfile}
+% \begin{macrocode}
+\def\embedfile{%
+ \@ifnextchar[\EmbedFile@embedfile{\EmbedFile@embedfile[]}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\EmbedFile@embedfile}
+% \begin{macrocode}
+\def\EmbedFile@embedfile[#1]#2{%
+ \ifEmbedFile@finished
+ \EmbedFile@PackageError{%
+ \string\embedfile\space after \string\embedfilefinish
+ }{%
+ The list of embedded files is already written.%
+ }%
+ \else
+ \begingroup
+ \def\EmbedFile@file{#2}%
+ \setkeys{EmbedFile}{#1}%
+ \expandafter\ifx\expandafter\\\pdffilesize{\EmbedFile@file}\\%
+ \EmbedFile@PackageError{%
+ File `\EmbedFile@file' not found%
+ }{%
+ The unknown file is not embedded.%
+ }%
+ \else
+ \EmbedFile@convert\EmbedFile@filespec\EmbedFile@@filespec
+ \ifx\EmbedFile@desc\empty
+ \let\EmbedFile@@desc\empty
+ \else
+ \EmbedFile@convert\EmbedFile@desc\EmbedFile@@desc
+ \fi
+ \immediate\pdfobj stream attr{%
+ /Type/EmbeddedFile%
+ \ifx\EmbedFile@mimetype\empty
+ \else
+ /Subtype/\pdfescapename{\EmbedFile@mimetype}%
+ \fi
+ /Params<<%
+ /ModDate(\pdffilemoddate{\EmbedFile@file})%
+ /Size \pdffilesize{\EmbedFile@file}%
+ /CheckSum<\pdfmdfivesum file{\EmbedFile@file}>%
+ >>%
+ }file{\EmbedFile@file}\relax
+ \immediate\pdfobj{%
+ <<%
+ /Type/Filespec%
+ \ifx\EmbedFile@filesystem\empty
+ \else
+ /FS/\pdfescapename{\EmbedFile@filesystem}%
+ \fi
+ /F(\EmbedFile@@filespec)%
+ \ifx\EmbedFile@@desc\empty
+ \else
+ /Desc(\EmbedFile@@desc)%
+ \fi
+ /EF<<%
+ /F \the\pdflastobj\space 0 R%
+ >>%
+ >>%
+ }%
+ \EmbedFile@add{%
+ \EmbedFile@@filespec
+ }{\the\pdflastobj\space 0 R}%
+ \fi
+ \endgroup
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\EmbedFile@convert}
+% \begin{macrocode}
+\def\EmbedFile@convert#1#2{%
+ \ifnum\pdfstrcmp{\EmbedFile@stringmethod}{psd}=0 %
+ \pdfstringdef\EmbedFile@temp{#1}%
+ \let#2\EmbedFile@temp
+ \else
+ \edef#2{\pdfescapestring{#1}}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\global\let\EmbedFile@list\empty
+% \end{macrocode}
+% \begin{macro}{\EmbedFile@add}
+% Sorting is done by the insertion sort algorithm.
+% Probably the sorting could be done more reliable.
+% However, the PDF specification is not too clear to me
+% regarding precise sorting rules (how to deal with
+% different encodings, escaped characters, \dots).
+% \begin{macrocode}
+\def\EmbedFile@add#1#2{%
+ \begingroup
+ \edef\key{\pdfescapehex{#1}}%
+ \ifx\EmbedFile@list\empty
+ \xdef\EmbedFile@list{\noexpand\do{\key}{#2}}%
+ \else
+ \def\do##1##2{%
+ \ifnum\pdfstrcmp{##1}{\key}>0 %
+ \edef\x{%
+ \toks@{%
+ \the\toks@%
+ \noexpand\do{\key}{#2}%
+ \noexpand\do{##1}{##2}%
+ }%
+ }%
+ \x
+ \def\do####1####2{%
+ \toks@\expandafter{\the\toks@\do{####1}{####2}}%
+ }%
+ \def\stop{%
+ \xdef\EmbedFile@list{\the\toks@}%
+ }%
+ \else
+ \toks@\expandafter{\the\toks@\do{##1}{##2}}%
+ \fi
+ }%
+ \def\stop{%
+ \xdef\EmbedFile@list{\the\toks@\noexpand\do{\key}{#2}}%
+ }%
+ \toks@{}%
+ \EmbedFile@list\stop
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\newif\ifEmbedFile@finished
+% \end{macrocode}
+% \begin{macro}{\embedfilefinish}
+% \begin{macrocode}
+\def\embedfilefinish{%
+ \ifEmbedFile@finished
+ \EmbedFile@PackageError{%
+ Too many invocations of \string\embedfilefinish
+ }{%
+ The list of embedded files is already written.%
+ }%
+ \else
+ \ifx\EmbedFile@list\empty
+ \else
+ \global\EmbedFile@finishedtrue
+ \begingroup
+ \def\do##1##2{%
+ <##1>##2%
+ }%
+ \immediate\pdfobj{%
+ <<%
+ /Names[\EmbedFile@list]%
+ >>%
+ }%
+ \pdfnames{%
+ /EmbeddedFiles \the\pdflastobj\space 0 R%
+ }%
+ \endgroup
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname AtEndDocument\endcsname\relax
+\else
+ \AtEndDocument{\embedfilefinish}%
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\EmbedFileRestoreCatcodes
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/embedfile.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/embedfile.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex embedfile.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% embedfile.sty & tex/latex/oberdiek/embedfile.sty\\
+% dtx-attach.sty & tex/latex/oberdiek/dtx-attach.sty\\
+% embedfile.pdf & doc/latex/oberdiek/embedfile.pdf\\
+% embedfile-example-plain.tex & doc/latex/oberdiek/embedfile-example-plain.tex\\
+% embedfile.dtx & source/latex/oberdiek/embedfile.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk embedfile.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{embedfile.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex embedfile.dtx
+%makeindex -s gind.ist embedfile.idx
+%pdflatex embedfile.dtx
+%makeindex -s gind.ist embedfile.idx
+%pdflatex embedfile.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+% \bibitem{attachfile}
+% Scott Pakin: \textit{The \xpackage{attachfile} package};
+% 2005/02/20 v1.2;
+% \CTAN{macros/latex/contrib/attachfile/}.
+%
+% \bibitem{attachfile2}
+% Heiko Oberdiek: \textit{The \xpackage{attachfile2} package};
+% 2006/08/16 v2.2;
+% \CTAN{macros/latex/contrib/oberdiek/attachfile2.pdf}.
+%
+% \bibitem{pdfspec}
+% Adobe Systems Incorporated:
+% \href{http://partners.adobe.com/public/developer/en/pdf/PDFReference16.pdf}%
+% {\textit{PDF Reference, Fifth Edition, Version 1.6}},%
+% November 2004;
+% \url{http://partners.adobe.com/public/developer/pdf/index_reference.html}.
+%
+% \bibitem{mime}
+% Network Working Group: RFC 2046, \textit{Multipurpose Internet Mail Extensions (MIME) Part Two:
+% Media Types}, November 1996; \url{http://www.rfc-editor.org/}.
+%
+% \bibitem{types}
+% IANA (Internet Assigned Numbers Authority):
+% \textit{MIME Media Types}, May 2006;
+% \url{http://www.iana.org/assignments/media-types/}.
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2006/08/16 v1.0}
+% \item
+% First public version,
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/engord.dtx b/Master/texmf-dist/source/latex/oberdiek/engord.dtx
new file mode 100644
index 00000000000..cc3e34747ec
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/engord.dtx
@@ -0,0 +1,677 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2000, 2003, 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file engord.dtx
+% and the derived files
+% engord.sty, engord.pdf, engord.ins, engord.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/engord.dtx
+% CTAN:macros/latex/contrib/oberdiek/engord.pdf
+%
+% Unpacking:
+% (a) If engord.ins is present:
+% tex engord.ins
+% (b) Without engord.ins:
+% tex engord.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{engord.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If engord.drv is present:
+% latex engord.drv
+% (b) Without engord.drv:
+% latex engord.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex engord.dtx
+% makeindex -s gind.ist engord.idx
+% pdflatex engord.dtx
+% makeindex -s gind.ist engord.idx
+% pdflatex engord.dtx
+%
+% Installation:
+% TDS:tex/generic/oberdiek/engord.sty
+% TDS:doc/latex/oberdiek/engord.pdf
+% TDS:source/latex/oberdiek/engord.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: engord 2006/02/20 v1.2 Provides the ifpdf switch (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2000, 2003, 2006 by
+ Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file engord.dtx
+and the derived files
+ engord.sty, engord.pdf, engord.ins, engord.drv.
+
+\endpreamble
+
+\generate{%
+ \file{engord.ins}{\from{engord.dtx}{install}}%
+ \file{engord.drv}{\from{engord.dtx}{driver}}%
+ \usedir{tex/generic/oberdiek}%
+ \file{engord.sty}{\from{engord.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* engord.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `engord.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{engord.drv}%
+ [2006/02/20 v1.2 Provides the ifpdf switch (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{engord.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{274}
+%
+% \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 \~}
+%
+% \GetFileInfo{engord.drv}
+%
+% \title{The \xpackage{engord} package}
+% \date{2006/02/20 v1.2}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% The package generates the suffix of English ordinal numbers.
+% It can be used with plain and \LaTeX\ formats.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Usage}
+%
+% \begin{declcs}{engord}\,\M{\LaTeX\ counter name}
+% \end{declcs}
+% It prints the value of the \LaTeX\ counter as English
+% ordinal number. It can be used in the same way as
+% \cs{arabic}, \cs{roman}, or \cs{alph}. The command is
+% not available in \plainTeX.
+%
+% \begin{declcs}{engordnumber}\,\M{any \TeX\ number}
+% \end{declcs}
+% It prints the number as English ordinal number.
+%
+% \begin{declcs}{engordletters}\,|{#1}|
+% \end{declcs}
+% This command formats the English ordinal letters
+% after the number. It defaults to \cs{textsuperscript}.
+%
+% \begin{declcs}{engorderror}\,|{#1}|
+% \end{declcs}
+% It can be redefined, if an other error handling is
+% wanted. The argument is a negative number or zero.
+%
+% \begin{declcs}{engordraisetrue}\\
+% \SpecialUsageIndex{\engordraisefalse}\cs{engordraisefalse}
+% \end{declcs}
+% These commands set the switch \cs{ifengordraise} that is
+% asked by the default \cs{engordletters} before raising the
+% ordinal letters.
+%
+% \subsection{Package options}
+%
+% \begin{description}
+% \item[\xoption{normal}:] \cs{engordraisefalse}
+% \item[\xoption{raise}:] \cs{engordraisetrue}
+% \end{description}
+% Default is \xoption{raise}.
+%
+% \subsection{Examples}
+%
+% \begin{itemize}
+% \item
+% |\usepackage[normal]{engord}|\\
+% \begin{tabular}{@{}l@{ $\rightarrow$ }l@{}}
+% |\engordnumber{1}| & 1st\\
+% |\engordnumber{12}| & 12th\\
+% |\engordnumber{123}| & 123rd\\
+% |\engord{page}| & 1st (if page has the value of one)\\
+% \multicolumn{2}{@{}l}{\cs{engordraisetrue}}\\
+% |\engordnumber{12}| & 12\textsuperscript{th}
+% \end{tabular}
+% \item
+% The default output of a counter can be redefined:
+% \begin{quote}
+% |\newcounter{mycounter}|\\
+% |\renewcommand{\theengcounter}{\engord{mycounter}}|
+% \end{quote}
+% \item
+% Because the implementation of \cs{engord} and \cs{engordnumber}
+% is kept expandable, these commands can be used to make
+% command names with an appropriate definition of
+% \cs{engordletters}:
+% \begin{quote}
+% |\renewcommand*{\engordletters}[#1]{#1}|\\
+% |\@namedef{My\engordnumber{3}Command}{...}|
+% \end{quote}
+% This generates the command name `\cs{My4rdCommand}'.
+% Since version 1.2 the redefinition can be dropped if
+% the letters are not raised.
+% \item
+% If the letters should not be raised, use \LaTeX\ package
+% option \xoption{normal} or use
+% \begin{quote}
+% \cs{engordraisefalse}
+% \end{quote}
+% Also \cs{engordletters} could be redefined for this purpose:
+% \begin{quote}
+% |\renewcommand*{\engordletters}[1]{#1}|
+% \end{quote}
+% \end{itemize}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Reload check and identification}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Reload check, especially if the package is not used with \LaTeX.
+% \begin{macrocode}
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@engord.sty\endcsname
+ \ifcase 0%
+ \ifx\x\relax % plain
+ \else
+ \ifx\x\empty % LaTeX
+ \else
+ 1%
+ \fi
+ \fi
+ \else
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
+ \fi
+ \x{engord}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+% \end{macrocode}
+% Package identification:
+% \begin{macrocode}
+\begingroup
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@engord.sty\endcsname
+\ProvidesPackage{engord}%
+ [2006/02/20 v1.2 Provides the ifpdf switch (HO)]
+% \end{macrocode}
+%
+% \subsection{Help commands for plain compatibility}
+%
+% \begin{macro}{\EO@atcode}
+% Save catcode of |@|.
+% \begin{macrocode}
+\expandafter\chardef\csname EO@atcode\endcsname\catcode`\@
+\catcode`\@=11 %
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\EO@def}
+% Definitions, \cs{newcommand} does not exist in \plainTeX.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname newcommand\endcsname\relax
+ \def\EO@def{\def}%
+\else
+ \def\EO@def#1{%
+ \newcommand*{#1}{}%
+ \def#1%
+ }%
+\fi
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\EO@PackageWarning}
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname PackageWarning\endcsname\relax
+ \def\EO@PackageWarning#1#2{%
+ \immediate\write16{%
+ Package #1 Warning: #2 on input line \the\inputlineno.%
+ }%
+ }%
+\else
+ \def\EO@PackageWarning{\PackageWarning}%
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{User macros}
+%
+% \begin{macro}{\ifengordraise}
+% The switch \cs{ifengordraise}, whether the ordinal letters
+% are raised or not. Default is raised because of compatibility.
+% \begin{macrocode}
+\newif\ifengordraise
+\engordraisetrue
+% \end{macrocode}
+% \end{macro}
+% In \LaTeX\ this also can be controlled by option \xoption{normal}
+% or \xoption{raise}.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname DeclareOption\endcsname\relax
+\else
+ \DeclareOption{normal}{\engordraisefalse}%
+ \DeclareOption{raise}{\engordraisetrue}%
+ \ProcessOptions*\relax
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\engordletters}
+% \cs{engordletters} is called with one argument, the english
+% ordinal letters, and contains the code to format them. It
+% defaults to \cs{textsuperscript} depending on \cs{ifengordraise}.
+% \begin{macrocode}
+\expandafter\ifx\csname engordletters\endcsname\relax
+ \EO@def\engordletters{%
+ \ifengordraise
+ \expandafter\engordtextsuperscript
+ \fi
+ }%
+\fi
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\engordtextsuperscript}
+% For \plainTeX\ the definition is quite ugly, redefine
+% \cs{engordtextsuperscript} if you have a better one.
+% \begin{macrocode}
+\expandafter\ifx\csname engordtextsuperscript\endcsname\relax
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname textsuperscript\endcsname\relax
+ \def\engordtextsuperscript#1{%
+ \relax
+ \ifmmode
+ ^{\rm#1}%
+ \else
+ $^{\rm#1}$%
+ \fi
+ }%
+ \else
+ \def\engordtextsuperscript{\textsuperscript}%
+ \fi
+\fi
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\engorderror}
+% \cs{engorderror} is called, if the number is zero
+% or negative.
+% \begin{macrocode}
+\expandafter\ifx\csname engorderror\endcsname\relax
+ \EO@def\engorderror#1{%
+ #1\engordletters{!ERROR!}%
+ \EO@PackageWarning{engord}{%
+ `#1' is not an ordinal number%
+ }%
+ }%
+\fi
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\engord}
+% \cs{engord} expects a \LaTeX\ counter name as argument and
+% calls \cs{engordnumber}. It is defined only, if \LaTeX\ is used.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname newcounter\endcsname\relax
+\else
+ \EO@def\engord#1{%
+ \engordnumber{\value{#1}}%
+ }%
+\fi
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\engordnumber}
+% \cs{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, \dots
+%
+% In a safe way it converts the \TeX\ number argument
+% into a form that only consists of decimal digits.
+% \begin{macrocode}
+\EO@def\engordnumber#1{%
+ \expandafter\EO@number\expandafter{\number#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Suffix generation}
+%
+% \begin{macro}{\EO@number}
+% \cs{EO@number} expects a number with decimal digits as
+% argument and looks at the size of the number and
+% the count of the digits:
+% \begin{macrocode}
+\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
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@ReturnAfterFi}
+% An internal help macro to prevent a too deep \cs{if} nesting.
+% \begin{macrocode}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\EO@ord}
+% \cs{EO@ord} prints the number with ord letters.\\
+% |#1|: decimal digits, |#1| $<$ 21
+% \begin{macrocode}
+\def\EO@ord#1{%
+ #1%
+ \expandafter\engordletters
+ \ifcase#1{th}\or
+ {st}\or
+ {nd}\or
+ {rd}\else
+ {th}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\EO@twodigits}
+% \cs{EO@twodigits} expects a number with two digits,\\
+% 20 $<$ number $<$ 100
+% \begin{macrocode}
+\def\EO@twodigits#1#2{%
+ #1\EO@ord{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\EO@reverse}
+% \cs{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
+% \begin{macrocode}
+\def\EO@reverse#1#2\@nil#3#4{%
+ \ifx\\#2\\%
+ #4{#1#3}%
+ \else
+ \@ReturnAfterFi{%
+ \EO@reverse#2\@nil{#1#3}{#4}%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\EO@afterreverse}
+% \cs{EO@afterreverse} calls \cs{EO@reverseback} so that
+% \cs{EO@reverseback} can inspect the digits of the number.
+% \begin{macrocode}
+\def\EO@afterreverse#1{%
+ \EO@reverseback#1\@nil
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\EO@reverseback}
+% \cs{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 \cs{EO@reverseback} is
+% only called with numbers $>$ 100.
+% \begin{macrocode}
+\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
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Restore catcode of |@|.
+% \begin{macrocode}
+\catcode`\@=\EO@atcode
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/engord.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/engord.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex engord.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% engord.sty & tex/generic/oberdiek/engord.sty\\
+% engord.pdf & doc/latex/oberdiek/engord.pdf\\
+% engord.dtx & source/latex/oberdiek/engord.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk engord.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{engord.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex engord.dtx
+%makeindex -s gind.ist engord.idx
+%pdflatex engord.dtx
+%makeindex -s gind.ist engord.idx
+%pdflatex engord.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2000/05/23 v1.0}
+% \item
+% First public release.
+% \end{Version}
+% \begin{Version}{2003/04/28 v1.1}
+% \item
+% Bug fix for 30, 40, 50, \dots, 100, 130, \dots
+% \item
+% \cs{ordletters} renamed to documented \cs{engordletters}.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.2}
+% \item
+% Support for \plainTeX.
+% \item
+% Switch \cs{ifengordraise} added.
+% \item
+% Package options \xoption{raise} and \xoption{normal} added.
+% \item
+% DTX framework.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx b/Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx
new file mode 100644
index 00000000000..d59d929a4c1
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/epstopdf.dtx
@@ -0,0 +1,488 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2001, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file epstopdf.dtx
+% and the derived files
+% epstopdf.sty, epstopdf.pdf, epstopdf.ins, epstopdf.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/epstopdf.dtx
+% CTAN:macros/latex/contrib/oberdiek/epstopdf.pdf
+%
+% Unpacking:
+% (a) If epstopdf.ins is present:
+% tex epstopdf.ins
+% (b) Without epstopdf.ins:
+% tex epstopdf.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{epstopdf.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If epstopdf.drv is present:
+% latex epstopdf.drv
+% (b) Without epstopdf.drv:
+% latex epstopdf.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex epstopdf.dtx
+% makeindex -s gind.ist epstopdf.idx
+% pdflatex epstopdf.dtx
+% makeindex -s gind.ist epstopdf.idx
+% pdflatex epstopdf.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/epstopdf.sty
+% TDS:doc/latex/oberdiek/epstopdf.pdf
+% TDS:source/latex/oberdiek/epstopdf.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: epstopdf 2006/08/26 v1.3 Conversion with epstopdf on the fly (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2001, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file epstopdf.dtx
+and the derived files
+ epstopdf.sty, epstopdf.pdf, epstopdf.ins, epstopdf.drv.
+
+\endpreamble
+
+\generate{%
+ \file{epstopdf.ins}{\from{epstopdf.dtx}{install}}%
+ \file{epstopdf.drv}{\from{epstopdf.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{epstopdf.sty}{\from{epstopdf.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* epstopdf.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `epstopdf.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{epstopdf.drv}%
+ [2006/08/26 v1.3 Conversion with epstopdf on the fly (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{epstopdf.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{182}
+%
+% \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 \~}
+%
+% \GetFileInfo{epstopdf.drv}
+%
+% \title{The \xpackage{epstopdf} package}
+% \date{2006/08/26 v1.3}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This packages adds support of handling eps images
+% to package \xpackage{graphics} or \xpackage{graphicx}
+% with option \xoption{pdftex}. If an eps image is detected,
+% epstopdf is automatically called to convert it to pdf format.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Usage}
+%\begin{verbatim}
+% 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.
+%\end{verbatim}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \subsection{Relead check and identification}
+% Reload check, especially if the package is not used with \LaTeX.
+% \begin{macrocode}
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@epstopdf.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{epstopdf}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+% \end{macrocode}
+% Package identification:
+% \begin{macrocode}
+\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@epstopdf.sty\endcsname
+\ProvidesPackage{epstopdf}%
+ [2006/08/26 v1.3 Conversion with epstopdf on the fly (HO)]
+% \end{macrocode}
+%
+% \subsection{Help macros for miniltx mode}
+%
+% \begin{macrocode}
+\@ifundefined{PackageWarning}{%
+ \def\PackageWarning#1#2{%
+ \begingroup
+ \newlinechar=10 %
+ \def\MessageBreak{%
+ ^^J(#1)\@spaces\@spaces\@spaces\@spaces
+ }%
+ \immediate\write16{^^JPackage #1 Warning: #2\on@line.^^J}%
+ \endgroup
+ }%
+}{}
+\@ifundefined{PackageWarningNoLine}{%
+ \def\PackageWarningNoLine#1#2{%
+ \PackageWarning{#1}{#2\@gobble}%
+ }%
+}{}
+\@ifundefined{on@line}{%
+ \def\on@line{ on input line \the\inputlineno}%
+}{}
+\@ifundefined{@spaces}{%
+ \def\@spaces{\space\space\space\space}%
+}{}
+% \end{macrocode}
+%
+% \subsection{Checks}
+%
+% Check, whether package graphics is loaded
+% (also graphicx loads graphics).
+% Because miniltx.tex does not know \cs{@ifpackageloaded}
+% we test for \cs{Gin@setfile} instead.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname Gin@setfile\endcsname\relax
+ \PackageWarningNoLine{epstopdf}{%
+ No graphics package \string`graphic{s,x}\string' found%
+ }%
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+%
+% Check, whether pdftex.def is loaded. \cs{ver@pdftex.def} is not
+% available with miniltx.tex, thus we test for \cs{Gin@driver}.
+% \begin{macrocode}
+\begingroup
+ \def\x{pdftex.def}%
+ \ifx\Gin@driver\x
+ \else
+ \PackageWarningNoLine{epstopdf}{%
+ Graphics driver file \string`pdftex.def\string' not found%
+ }
+ \expandafter\endgroup\expandafter\endinput
+ \fi
+\endgroup
+% \end{macrocode}
+%
+% Check, whether the shell escape feature is enabled.
+%
+% \begin{macrocode}
+\begingroup
+ \expandafter\ifx\csname pdfshellescape\endcsname\relax
+ \else
+ \ifnum\pdfshellescape>0 %
+ \else
+ \PackageWarningNoLine{epstopdf}{%
+ Shell escape feature is not enabled%
+ }%
+ \fi
+ \fi
+\endgroup
+% \end{macrocode}
+%
+% \subsection{Adding conversion support}
+%
+% Patch \cs{Gin@setfile} to execute |#3|, if it contains
+% a command.
+% \begin{macrocode}
+\let\ETEorg@Gin@setfile\Gin@setfile
+\def\Gin@setfile#1#2#3{%
+ \if`\@car #3\relax\@nil
+ \immediate\write18{\@cdr #3\@empty\@nil}%
+ \ETEorg@Gin@setfile{#1}{#2}{\Gin@base #2}%
+ \else
+ \ETEorg@Gin@setfile{#1}{#2}{#3}%
+ \fi
+}
+% \end{macrocode}
+%
+% Adding .eps at the end of the list of extensions,
+% defined by \cs{DeclareGraphicsExtensions}.
+% \begin{macrocode}
+\@ifundefined{Gin@extensions}{%
+ \def\Gin@extensions{.eps}%
+}{%
+ \expandafter\ifx\expandafter\indent\Gin@extensions\indent
+ \def\Gin@extensions{.eps}%
+ \else
+ \expandafter\def\expandafter\Gin@extensions\expandafter{%
+ \Gin@extensions,.eps%
+ }%
+ \fi
+}
+% \end{macrocode}
+%
+% \cs{DeclareGraphicsRule} for .eps
+% \begin{macrocode}
+\@namedef{Gin@rule@.eps}#1{{pdf}{.pdf}{`epstopdf #1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/epstopdf.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/epstopdf.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex epstopdf.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% epstopdf.sty & tex/latex/oberdiek/epstopdf.sty\\
+% epstopdf.pdf & doc/latex/oberdiek/epstopdf.pdf\\
+% epstopdf.dtx & source/latex/oberdiek/epstopdf.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk epstopdf.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{epstopdf.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex epstopdf.dtx
+%makeindex -s gind.ist epstopdf.idx
+%pdflatex epstopdf.dtx
+%makeindex -s gind.ist epstopdf.idx
+%pdflatex epstopdf.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2001/01/06 v1.0}
+% \item
+% First public version,
+% published in the \pdfTeX\ mailing list.
+% \end{Version}
+% \begin{Version}{2001/02/04 v1.1}
+% \item
+% Minor documentation update.
+% \item
+% CTAN.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.2}
+% \item
+% DTX framework.
+% \item
+% Compatibility for \xfile{miniltx.tex}.
+% \end{Version}
+% \begin{Version}{2006/08/26 v1.3}
+% \item
+% Check for \cs{write18} if available and print a warning
+% if the feature is not enabled.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/grffile.dtx b/Master/texmf-dist/source/latex/oberdiek/grffile.dtx
new file mode 100644
index 00000000000..e4e8ee5a404
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/grffile.dtx
@@ -0,0 +1,640 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file grffile.dtx
+% and the derived files
+% grffile.sty, grffile.pdf, grffile.ins, grffile.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/grffile.dtx
+% CTAN:macros/latex/contrib/oberdiek/grffile.pdf
+%
+% Unpacking:
+% (a) If grffile.ins is present:
+% tex grffile.ins
+% (b) Without grffile.ins:
+% tex grffile.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{grffile.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If grffile.drv is present:
+% latex grffile.drv
+% (b) Without grffile.drv:
+% latex grffile.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex grffile.dtx
+% makeindex -s gind.ist grffile.idx
+% pdflatex grffile.dtx
+% makeindex -s gind.ist grffile.idx
+% pdflatex grffile.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/grffile.sty
+% TDS:doc/latex/oberdiek/grffile.pdf
+% TDS:source/latex/oberdiek/grffile.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: grffile 2006/08/17 v1.1 Extended file name support for graphics (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file grffile.dtx
+and the derived files
+ grffile.sty, grffile.pdf, grffile.ins, grffile.drv.
+
+\endpreamble
+
+\generate{%
+ \file{grffile.ins}{\from{grffile.dtx}{install}}%
+ \file{grffile.drv}{\from{grffile.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{grffile.sty}{\from{grffile.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* grffile.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `grffile.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{grffile.drv}%
+ [2006/08/17 v1.1 Extended file name support for graphics (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{grffile.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{346}
+%
+% \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 \~}
+%
+% \GetFileInfo{grffile.drv}
+%
+% \title{The \xpackage{grffile} package}
+% \date{2006/08/17 v1.1}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% The package extends the file name processing of package \xpackage{graphics}
+% to support a larger range of file names. For example, the file name
+% may contain several dots. Or in case of \pdfTeX\ in PDF mode the file name may
+% contain spaces.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Usage}
+%
+% \subsection{Option \xoption{multidot}}
+%
+% The file name parsing of package \xpackage{graphics} is changed, in order
+% to detect known extensions. This allows both the use of dots inside the
+% base file name and extensions with several dots.
+%
+% Assume there are two files in the currect directory: \texttt{Hello.World.eps}
+% and \texttt{Hello.World.pdf}. \verb|\includegraphics{Hello.World}| will find
+% \verb|Hello.World.pdf| with driver \xoption{pdftex} or
+% \verb|Hello.World.eps| with driver \xoption{dvips}.
+%
+% \paragraph{Limitations:} Problem could occur on systems, which don't
+% use the dot as extension delimiter. These systems needs an own
+% \verb|texsys.cfg| containing definitions for \verb|\filename@parse|.
+% The author could not test that, due to a missing example.
+%
+% \subsection{Option \xoption{extendedchars}}
+%
+% If the input encoding is the same encoding as the encoding that
+% is used for file names and the driver allows non-ascii characters,
+% then this option can be used to use file names with such characters.
+%
+% Example:
+% \begin{verbatim}
+% \usepackage[latin1]{inputenc}
+% \usepackage[extendedchars]{grffile}
+% \includegraphics{Bäckerstraße}
+% \end{verbatim}
+%
+% If the \verb|draft| option of the graphics package is enabled, the
+% file name is printed with the current font encoding for \verb|\ttfamily|.
+% Thus it is possible, that such characters are omitted or the wrong
+% characters are displayed, if the font encoding is not the same as
+% the file name encoding.
+%
+% \paragraph{Limitations:} As mentioned above. The \verb|inputenc| package
+% is used to determine the encoding of the special characters in the file
+% name. What if the document uses utf-8 inputenc, but the system use latin1
+% encoding to create files? The option "extendedchar" will work anyway, but
+% the file name has to be handed over to \verb|\includegraphics| using latin1
+% encoding.
+%
+% \subsection{Option \xoption{space}}
+%
+% This option allows graphics file names that contain spaces
+% if possible.
+%
+% In general it is not possible to use space inside file names,
+% because \TeX\ considers the space character as termination in its
+% syntax for commands that expect a file name.
+%
+% Regarding graphics inclusion with the package \xpackage{graphics}
+% file names are used in two or three contexts:
+% \begin{enumerate}
+% \item The basic \cs{special} statement or primitive command for
+% graphics inclusion. The \cs{special} statements for
+% drivers \xoption{dvips} or \xoption{dvipdfm} do not allow
+% spaces. However \pdfTeX's primitive \cs{pdfximage}
+% uses curly braces to delimit the file name and allows spaces.
+% \item \cs{includegraphics} checks the existence of the file.
+% Also it looks for the right extension if the extension is
+% not given. If \pdfTeX\ 1.30 is given, the file existence test
+% can be rewritten using a new primitive that allows spaces.
+% This works in both modes DVI and PDF.
+% \item Sometimes files are read as \TeX\ input files. For example,
+% \verb|.bb| files or MPS files.
+% \end{enumerate}
+% If \pdfTeX\ 1.30 or greater is used in PDF mode then the
+% graphics file names may contain spaces except for MPS files.
+% Therefore option \xoption{space} is only enabled by default,
+% if the supported \pdfTeX\ in PDF mode is detected.
+% You can enable the option manually, if you know, your DVI driver
+% supports spaces in its \cs{special} syntax and if there is no
+% need to read the image file as \TeX\ input file (third context).
+%
+% \subsection{General use}
+%
+% The options can be given at many places:
+%
+% \begin{enumerate}
+% \item As package options:\\
+% \verb|\usepackage[<options>]{grffile}|
+% \item Setup command of package \xpackage{grffile}:\\
+% \verb|\grffilesetup{<options>}|
+% \item The options are also available as options
+% for package \xpackage{graphicx}:\\
+% \verb|\setkeys{Gin}{<options>}|
+% \item If package \xpackage{graphicx} is loaded the options can also be
+% applied for a single image:\\
+% \verb|\includegraphics[<options>]{...}|
+% \end{enumerate}
+%
+% \subsection{Default settings}
+%
+% \begin{quote}
+% \begin{tabular}{@{}lll@{}}
+% \xoption{multidot} & \verb|true|\\
+% \xoption{extendedchars} & \verb|false|\\
+% \xoption{space} & \verb|true| & if \pdfTeX\ 1.30 or greater is used in PDF mode\\
+% & \verb|false| & otherwise
+% \end{tabular}
+% \end{quote}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Identification}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{grffile}%
+ [2006/08/17 v1.1 Extended file name support for graphics (HO)]
+% \end{macrocode}
+%
+% \subsection{Catcode stuff}
+%
+% \begin{macrocode}
+\edef\grffile@RestoreCatcodes{%
+ \catcode`\noexpand\=\the\catcode`\=\relax
+ \catcode`\noexpand\:\the\catcode`\:\relax
+ \catcode`\noexpand\.\the\catcode`\.\relax
+ \catcode`\noexpand\'\the\catcode`\'\relax
+ \catcode`\noexpand\<\the\catcode`\<\relax
+ \catcode`\noexpand\>\the\catcode`\>\relax
+ \catcode`\noexpand\*\the\catcode`\*\relax
+ \catcode`\noexpand\^\the\catcode`\^\relax
+ \catcode`\noexpand\~\the\catcode`\~\relax
+}
+\@makeother\=
+\@makeother\:
+\@makeother\.
+\@makeother\'
+\@makeother\<
+\@makeother\>
+\@makeother\*
+\catcode`\^=7 %
+\catcode`\~=\active
+% \end{macrocode}
+%
+% \subsection{Options}
+%
+% \begin{macrocode}
+\RequirePackage{ifpdf}
+\RequirePackage{kvoptions}[2006/08/17]
+\SetupKeyvalOptions{
+ family=Gin,
+ prefix=grffile@
+}
+\DeclareBoolOption[true]{multidot}
+\DeclareBoolOption[false]{extendedchars}
+\DeclareBoolOption{space}
+\DeclareDefaultOption{%
+ \PassOptionsToPackage\CurrentOption{graphics}%
+}
+% \end{macrocode}
+% Default setting for option \xoption{space}.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdffilesize\endcsname\relax
+ \grffile@spacefalse
+ \let\grffile@space@disabled\@empty
+ \def\grffile@spacetrue{%
+ \PackageWarning{grffile}{%
+ Option `space' is not available,\MessageBreak
+ because it needs pdfTeX >= 1.30%
+ }%
+ }%
+\else
+ \ifpdf
+ \grffile@spacetrue
+ \else
+ \grffile@spacefalse
+ \fi
+\fi
+% \end{macrocode}
+% \begin{macrocode}
+\ProcessKeyvalOptions*
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage{graphics}
+% \end{macrocode}
+%
+% \begin{macro}{\grffilesetup}
+% \begin{macrocode}
+\newcommand*{\grffilesetup}{%
+ \setkeys{Gin}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\let\grffile@org@Ginclude@graphics\Ginclude@graphics
+\renewcommand*{\Ginclude@graphics}{%
+ \ifgrffile@extendedchars
+ \begingroup
+% \end{macrocode}
+% Support of babel's shorthand characters.
+% \begin{macrocode}
+ \csname @safe@activestrue\endcsname
+% \end{macrocode}
+% Support of active tilde.
+% \begin{macrocode}
+ \edef~{\string~}%
+% \end{macrocode}
+% Support of characters controlled by package \xpackage{inputenc}.
+% \begin{macrocode}
+ \grffile@inputenc@loop\^^A\^^H%
+ \grffile@inputenc@loop\^^K\^^K%
+ \grffile@inputenc@loop\^^N\^^_%
+ \grffile@inputenc@loop\^^?\^^ff%
+ \expandafter\grffile@extchar@Ginclude@graphics
+ \else
+ \expandafter\grffile@Ginclude@graphics
+ \fi
+}
+\def\grffile@extchar@Ginclude@graphics#1{%
+ \edef\x{\endgroup
+ \noexpand\grffile@Ginclude@graphics{#1}%
+ }%
+ \x
+}
+\def\grffile@inputenc@loop#1#2{%
+ \count@=`#1\relax
+ \loop
+ \begingroup
+ \uccode`\~=\count@
+ \uppercase{%
+ \endgroup
+ \edef~{\string~}%
+ }%
+ \ifnum\count@<`#2\relax
+ \advance\count@\@ne
+ \repeat
+}
+% \end{macrocode}
+% Support for option \xoption{space}
+% \begin{macrocode}
+\def\grffile@space@getbase#1{%
+ \edef\grffile@tempa{%
+ \def\noexpand\@tempa####1#1\noexpand\@nil{%
+ \def\noexpand\Gin@base{####1}%
+ }%
+ }%
+ \grffile@IfFileExists{\filename@area\filename@base#1}{%
+ \grffile@tempa
+ \expandafter\@tempa\grffile@file@found\@nil
+ \edef\Gin@ext{#1}%
+ }{%
+ }%
+}
+\def\grffile@IfFileExists#1{%
+ \expandafter\ifx\expandafter\\\pdffilesize{#1}\\%
+ \let\reserved@a\@secondoftwo
+ \ifx\input@path\@undefined
+ \else
+ \expandafter\@tfor\expandafter\reserved@b\expandafter
+ :\expandafter=\input@path\do{%
+ \expandafter\ifx\expandafter\\\pdffilesize{\reserved@b#1}\\%
+ \else
+ \edef\grffile@file@found{\reserved@b#1}%
+ \let\reserved@a\@firstoftwo
+ \@break@tfor
+ \fi
+ }%
+ \fi
+ \expandafter\reserved@a
+ \else
+ \edef\grffile@file@found{#1}%
+ \expandafter\@firstoftwo
+ \fi
+}
+
+\def\grffile@Ginclude@graphics#1{%
+ \begingroup
+ \ifgrffile@space
+ \let\Gin@getbase\grffile@space@getbase
+ \fi
+ \ifgrffile@multidot
+ \let\filename@base\@empty
+ \let\filename@simple\grffile@filename@simple
+ \fi
+ \grffile@org@Ginclude@graphics{#1}%
+ \endgroup
+}%
+
+\def\grffile@filename@simple#1.#2\\{%
+ \ifx\\#2\\%
+ \let\filename@ext\relax
+ \else
+ \expandafter\ifx\csname
+ Gin@rule@.\filename@dot #2\\\endcsname\relax
+ \edef\filename@base{\filename@base #1.}%
+ \grffile@ReturnAfterFiFiBase{\grffile@filename@simple #2\\}%
+ \else
+ \edef\filename@ext{\filename@dot #2\\}%
+ \fi
+ \fi
+ \edef\filename@base{\filename@base #1}%
+}
+\def\grffile@ReturnAfterFiFiBase#1#2\filename@base#3{\fi\fi#1}
+% \end{macrocode}
+%
+% Print current option setting
+% \begin{macrocode}
+\def\grffile@option@status#1{%
+ \begingroup
+ \let\on@line\@empty
+ \PackageInfo{grffile}{%
+ Option `#1' is %
+ \expandafter\ifx\csname ifgrffile@#1\expandafter\endcsname
+ \csname iftrue\endcsname
+ set to `true'%
+ \else
+ \expandafter\ifx\csname grffile@#1@disabled\endcsname\@empty
+ not available%
+ \else
+ set to `false'%
+ \fi
+ \fi
+ }%
+ \endgroup
+}
+\grffile@option@status{multidot}
+\grffile@option@status{extendedchars}
+\grffile@option@status{space}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\grffile@RestoreCatcodes
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/grffile.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/grffile.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex grffile.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% grffile.sty & tex/latex/oberdiek/grffile.sty\\
+% grffile.pdf & doc/latex/oberdiek/grffile.pdf\\
+% grffile.dtx & source/latex/oberdiek/grffile.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk grffile.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{grffile.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex grffile.dtx
+%makeindex -s gind.ist grffile.idx
+%pdflatex grffile.dtx
+%makeindex -s gind.ist grffile.idx
+%pdflatex grffile.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{graphics}
+% David Carlisle, Sebastian Rahtz: \textit{The \xpackage{graphics} package};
+% 2006/02/20 v1.0o;
+% \CTAN{macros/latex/required/graphics/graphics.dtx}.
+%
+% \bibitem{graphicx}
+% Sebastian Rahtz, Heiko Oberdiek:
+% \textit{The \xpackage{graphicx} package};
+% 1999/02/16 v1.0f;
+% \CTAN{macros/latex/required/graphics/graphicx.dtx}.
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2004/07/18 v0.5}
+% \item
+% First version.
+% \end{Version}
+% \begin{Version}{2006/08/15 v1.0}
+% \item
+% File existence check by new primitives of pdfTeX 1.30.
+% \item
+% Implementation partly rewritten.
+% \item
+% New DTX framework.
+% \end{Version}
+% \begin{Version}{2006/08/17 v1.1}
+% \item
+% Adaptation to version 2.3 of package \xpackage{kvoptions}.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/holtxdoc.dtx b/Master/texmf-dist/source/latex/oberdiek/holtxdoc.dtx
new file mode 100644
index 00000000000..e247d88abe0
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/holtxdoc.dtx
@@ -0,0 +1,511 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 1999-2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file holtxdoc.dtx
+% and the derived files
+% holtxdoc.sty, holtxdoc.pdf, holtxdoc.ins, holtxdoc.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/holtxdoc.dtx
+% CTAN:macros/latex/contrib/oberdiek/holtxdoc.pdf
+%
+% Unpacking:
+% (a) If holtxdoc.ins is present:
+% tex holtxdoc.ins
+% (b) Without holtxdoc.ins:
+% tex holtxdoc.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{holtxdoc.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If holtxdoc.drv is present:
+% latex holtxdoc.drv
+% (b) Without holtxdoc.drv:
+% latex holtxdoc.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex holtxdoc.dtx
+% makeindex -s gind.ist holtxdoc.idx
+% pdflatex holtxdoc.dtx
+% makeindex -s gind.ist holtxdoc.idx
+% pdflatex holtxdoc.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/holtxdoc.sty
+% TDS:doc/latex/oberdiek/holtxdoc.pdf
+% TDS:source/latex/oberdiek/holtxdoc.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: holtxdoc 2006/06/02 v0.7 Private additional ltxdoc support (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 1999-2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file holtxdoc.dtx
+and the derived files
+ holtxdoc.sty, holtxdoc.pdf, holtxdoc.ins, holtxdoc.drv.
+
+\endpreamble
+
+\generate{%
+ \file{holtxdoc.ins}{\from{holtxdoc.dtx}{install}}%
+ \file{holtxdoc.drv}{\from{holtxdoc.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{holtxdoc.sty}{\from{holtxdoc.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* holtxdoc.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `holtxdoc.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{holtxdoc.drv}%
+ [2006/06/02 v0.7 Private additional ltxdoc support (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{holtxdoc.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{240}
+%
+% \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 \~}
+%
+% \GetFileInfo{holtxdoc.drv}
+%
+% \title{The \xpackage{holtxdoc} package}
+% \date{2006/06/02 v0.7}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% The package is used for the documentation of my packages in
+% DTX format. It contains some private macros and setup for
+% my needs. Thus do not use it. I have separated the part
+% that may be useful for others in package \xpackage{hypdoc}.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{No usage}
+%
+% Caution: \emph{This package is not intended for public use!}
+%
+% It contains the macros and settings to generate the
+% documentation of my packages in \CTAN{macros/latex/contrib/oberdiek/}.
+% Thus the package does not know anything about compatibility. Only
+% my current packages' documentation must compile.
+%
+% Older versions were more interesting, because they contained code
+% to add \xpackage{hyperref}'s features to \LaTeX's \xpackage{doc}
+% system, e.g. bookmarks and index links. I separated this stuff
+% and made a new package \xpackage{hypdoc}.
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{holtxdoc}%
+ [2006/06/02 v0.7 Private additional ltxdoc support (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequirePackage[numbered]{hypdoc}
+\RequirePackage{array}
+% \end{macrocode}
+%
+% \subsection{Help macros}
+%
+% \begin{macrocode}
+\def\hld@info#1{%
+ \PackageInfo{holtxdoc}{#1\@gobble}%
+}
+\def\hld@warn#1{%
+ \PackageWarningNoLine{holtxdoc}{#1}%
+}
+% \end{macrocode}
+%
+% \subsection{History}
+%
+% \begin{macrocode}
+\newcommand*{\StartHistory}{%
+ \section{History}%
+}
+\newcommand*{\HistVersion}[1]{%
+ \subsection*{%
+ \phantomsection
+ \addcontentsline{toc}{subsection}{[#1]}%
+ [#1]%
+ }%
+ \def\HistLabel##1{%
+ \begingroup
+ \edef\x{[#1]}%
+ \let\@currentlabel\x
+ \label{##1}%
+ \endgroup
+ }%
+}
+\newenvironment{History}{%
+ \StartHistory
+ \def\Version##1{%
+ \HistVersion{##1}%
+ \itemize
+ }%
+ \let\endVersion\enditemize
+}{}
+% \end{macrocode}
+%
+% \subsection{Formatting macros}
+%
+% \cs{UrlFoot}\\
+% |#1|: text\\
+% |#2|: url
+% \begin{macrocode}
+\newcommand{\URL}[2]{%
+ #1\footnote{Url: \url{#2}}%
+}
+% \end{macrocode}
+% \cs{NameEmail}\\
+% |#1|: name\\
+% |#2|: email address
+% \begin{macrocode}
+\newcommand*{\NameEmail}[2]{%
+ \expandafter\hld@NameEmail\expandafter{#2}{#1}%
+}
+\def\hld@NameEmail#1#2{%
+ \expandafter\hld@@NameEmail\expandafter{#2}{#1}%
+}
+\def\hld@@NameEmail#1#2{%
+ \ifx\\#1#2\\%
+ \hld@warn{%
+ Command \string\NameEmail\space without name and email%
+ }%
+ \else
+ \ifx\\#1\\%
+ \href{mailto:#2}{\nolinkurl{#2}}%
+ \else
+ #1%
+ \ifx\\#2\\%
+ \else
+ \footnote{%
+ #1's email address: %
+ \href{mailto:#2}{\nolinkurl{#2}}%
+ }%
+ \fi
+ \fi
+ \fi
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\Package}[1]{\texttt{#1}}
+\newcommand*{\File}[1]{\texttt{#1}}
+\newcommand*{\Verb}[1]{\texttt{#1}}
+\newcommand*{\CS}[1]{\texttt{\expandafter\@gobble\string\\#1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\CTAN}[1]{%
+ \href{ftp://ftp.ctan.org/tex-archive/#1}{\nolinkurl{CTAN:#1}}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\Newsgroup}[1]{%
+ \href{http://groups.google.com/group/#1}{\nolinkurl{news:#1}}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\xpackage}[1]{\textsf{#1}}
+\newcommand*{\xclass}[1]{\textsf{#1}}
+\newcommand*{\xoption}[1]{\textsf{#1}}
+\newcommand*{\xfile}[1]{\texttt{#1}}
+\newcommand*{\xext}[1]{\texttt{.#1}}
+\newcommand*{\xemail}[1]{%
+ \textless\texttt{#1}\textgreater%
+}
+\newcommand*{\xnewsgroup}[1]{\texttt{#1}}
+% \end{macrocode}
+%
+% The following environment |declcs| is derived from
+% environment |decl| of \xfile{ltxguide.cls}:
+% \begin{macrocode}
+\newenvironment{declcs}[1]{%
+ \par
+ \addvspace{4.5ex plus 1ex}%
+ \vskip -\parskip
+ \noindent
+ \hspace{-\leftmargini}%
+ \def\M##1{\texttt{\{}\meta{##1}\texttt{\}}}%
+ \def\*{\unskip\,\texttt{*}}%
+ \begin{tabular}{|l|}%
+ \hline
+ \expandafter\SpecialUsageIndex\csname #1\endcsname
+ \cs{#1}%
+}{%
+ \\%
+ \hline
+ \end{tabular}%
+ \nobreak
+ \par
+ \nobreak
+ \vspace{2.3ex}%
+ \vskip -\parskip
+ \noindent
+ \ignorespacesafterend
+}
+% \end{macrocode}
+%
+% \subsection{Names}
+%
+% \begin{macrocode}
+\providecommand*{\eTeX}{\mbox{$\varepsilon$-\TeX}}
+\providecommand*{\pdfTeX}{pdf\TeX}
+\providecommand*{\pdfLaTeX}{pdf\LaTeX}
+\providecommand*{\teTeX}{te\TeX}
+\providecommand*{\mikTeX}{mik\TeX}
+\providecommand*{\MakeIndex}{\textsl{MakeIndex}}
+\providecommand*{\docstrip}{\textsf{docstrip}}
+\providecommand*{\plainTeX}{\mbox{plain-\TeX}}
+\providecommand*{\VTeX}{V\TeX}
+% \end{macrocode}
+%
+% \subsection{Setup}
+%
+% \subsubsection{Package \xpackage{doc}}
+%
+% \begin{macrocode}
+\CodelineIndex
+\EnableCrossrefs
+\setcounter{IndexColumns}{2}
+% \end{macrocode}
+% \begin{macrocode}
+\DoNotIndex{\begingroup,\endgroup,\bgroup,\egroup}
+\DoNotIndex{\def,\edef,\xdef,\global,\long,\let}
+\DoNotIndex{\expandafter,\noexpand,\string}
+\DoNotIndex{\else,\fi,\or}
+\DoNotIndex{\relax}
+% \end{macrocode}
+%
+% \subsubsection{Page layout}
+% \begin{macrocode}
+\addtolength{\textheight}{\headheight}
+\addtolength{\textheight}{\headsep}
+\setlength{\headheight}{0pt}
+\setlength{\headsep}{0pt}
+% \end{macrocode}
+% \begin{macrocode}
+\addtolength{\topmargin}{-10mm}
+\addtolength{\textheight}{20mm}
+% \end{macrocode}
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/holtxdoc.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/holtxdoc.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex holtxdoc.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% holtxdoc.sty & tex/latex/oberdiek/holtxdoc.sty\\
+% holtxdoc.pdf & doc/latex/oberdiek/holtxdoc.pdf\\
+% holtxdoc.dtx & source/latex/oberdiek/holtxdoc.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk holtxdoc.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{holtxdoc.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex holtxdoc.dtx
+%makeindex -s gind.ist holtxdoc.idx
+%pdflatex holtxdoc.dtx
+%makeindex -s gind.ist holtxdoc.idx
+%pdflatex holtxdoc.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{1999/06/26 v0.3}
+% \item
+% \dots
+% \end{Version}
+% \begin{Version}{2000/08/14 v0.4}
+% \item
+% \dots
+% \end{Version}
+% \begin{Version}{2001/08/27 v0.5}
+% \item
+% \dots
+% \end{Version}
+% \begin{Version}{2001/09/02 v0.6}
+% \item
+% \dots
+% \end{Version}
+% \begin{Version}{2006/06/02 v0.7}
+% \item
+% Major change: most is put into a new package \xpackage{hypdoc}.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/hypbmsec.dtx b/Master/texmf-dist/source/latex/oberdiek/hypbmsec.dtx
index 8c65281e06c..a0d60c5bb66 100644
--- a/Master/texmf-dist/source/latex/oberdiek/hypbmsec.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/hypbmsec.dtx
@@ -1,81 +1,181 @@
% \iffalse meta-comment
%
-% hypbmsec.dtx
-%
-% 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>.
-%
-%<*dtx>
- \ProvidesFile{hypbmsec.dtx}
-%</dtx>
-%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{hypbmsec}
-%<driver>\ProvidesFile{hypbmsec.drv}
-% \fi
-% \ProvidesFile{hypbmsec.dtx}
- [2000/03/22 v2.1 Bookmarks in sectioning commands (HO).]
-%
-% \GetFileInfo{hypbmsec.dtx}
-%
-% \CheckSum{159}
-%
-%% \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 \~}
-%%
-% \iffalse
+% Copyright (C) 1998-2000, 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file hypbmsec.dtx
+% and the derived files
+% hypbmsec.sty, hypbmsec.pdf, hypbmsec.ins, hypbmsec.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/hypbmsec.dtx
+% CTAN:macros/latex/contrib/oberdiek/hypbmsec.pdf
+%
+% Unpacking:
+% (a) If hypbmsec.ins is present:
+% tex hypbmsec.ins
+% (b) Without hypbmsec.ins:
+% tex hypbmsec.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{hypbmsec.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If hypbmsec.drv is present:
+% latex hypbmsec.drv
+% (b) Without hypbmsec.drv:
+% latex hypbmsec.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex hypbmsec.dtx
+% makeindex -s gind.ist hypbmsec.idx
+% pdflatex hypbmsec.dtx
+% makeindex -s gind.ist hypbmsec.idx
+% pdflatex hypbmsec.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/hypbmsec.sty
+% TDS:doc/latex/oberdiek/hypbmsec.pdf
+% TDS:source/latex/oberdiek/hypbmsec.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: hypbmsec 2006/02/20 v2.2 Bookmarks in sectioning commands (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 1998-2000, 2006 by
+ Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file hypbmsec.dtx
+and the derived files
+ hypbmsec.sty, hypbmsec.pdf, hypbmsec.ins, hypbmsec.drv.
+
+\endpreamble
+
+\generate{%
+ \file{hypbmsec.ins}{\from{hypbmsec.dtx}{install}}%
+ \file{hypbmsec.drv}{\from{hypbmsec.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{hypbmsec.sty}{\from{hypbmsec.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* hypbmsec.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `hypbmsec.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{hypbmsec.drv}%
+ [2006/02/20 v2.2 Bookmarks in sectioning commands (HO)]
\documentclass{ltxdoc}
\usepackage{holtxdoc}
\begin{document}
- \DocInput{hypbmsec.dtx}
+ \DocInput{hypbmsec.dtx}
\end{document}
%</driver>
% \fi
%
-% \DoNotIndex{\csname,\endcsname,\expandafter,\noexpand,\string}
-% \DoNotIndex{\begingroup,\endgroup,\def,\xdef,\long,\let}
-% \DoNotIndex{\ifx,\newcommand,\renewcommand}
-%
-% \newcommand{\type}[1]{\textsf{#1}}
+% \CheckSum{161}
+%
+% \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 \~}
+%
+% \GetFileInfo{hypbmsec.drv}
+%
+% \title{The \xpackage{hypbmsec} package}
+% \date{2006/02/20 v2.2}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
%
-% \SetupTitle{hyperref,section,bookmark,pdf,LaTeX}
% \maketitle
%
% \begin{abstract}
-% This package expands the syntax of the sectioning commands. If the
-% argument of the sectioning commands isn't usable as outline entry,
-% a replacement for the bookmarks can be given.
+% This package expands the syntax of the sectioning commands. If the
+% argument of the sectioning commands isn't usable as outline entry,
+% a replacement for the bookmarks can be given.
% \end{abstract}
%
% \tableofcontents
%
+% \newcommand{\type}[1]{\textsf{#1}}
+%
+% ^^A No thread support.
+% \newenvironment{article}[1]{}{}
+%
% \section{Usage}
%
% \subsection{Bookmarks restrictions}\label{sec:restrictions}
@@ -252,14 +352,19 @@
% |\section(outlines(bookmarks{)}){text, toc}|
% \end{quote}
%
-% \Installation
-%
-% \StopEventually{}
+% \StopEventually{
+% }
%
% \section{Implementation}
% \begin{macrocode}
%<*package>
% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hypbmsec}%
+ [2006/02/20 v2.2 Bookmarks in sectioning commands (HO)]
+% \end{macrocode}
%
% Because of redifining the sectioning commands, it is dangerous
% to reload the package several times.
@@ -451,30 +556,135 @@
% \begin{macrocode}
%</package>
% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/hypbmsec.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/hypbmsec.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex hypbmsec.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% hypbmsec.sty & tex/latex/oberdiek/hypbmsec.sty\\
+% hypbmsec.pdf & doc/latex/oberdiek/hypbmsec.pdf\\
+% hypbmsec.dtx & source/latex/oberdiek/hypbmsec.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk hypbmsec.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{hypbmsec.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex hypbmsec.dtx
+%makeindex -s gind.ist hypbmsec.idx
+%pdflatex hypbmsec.dtx
+%makeindex -s gind.ist hypbmsec.idx
+%pdflatex hypbmsec.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{1998/11/20 v1.0}
+% \item
+% First version.
+% \item
+% It merges package \xpackage{hysecopt} and
+% \item
+% package \xpackage{hypbmpar}.
+% \item
+% Published for the DANTE'99 meating^^A
+% \URL{}{http://dante99.cs.uni-dortmund.de/handouts/oberdiek/hypbmsec.sty}.
+% \end{Version}
+% \begin{Version}{1999/04/12 v2.0}
+% \item
+% Adaptation to \Package{hyperref} version 6.54.
+% \item
+% Documentation in dtx format.
+% \item
+% Copyright: LPPL (\CTAN{macros/latex/base/lppl.txt})
+% \item
+% First CTAN release.
+% \end{Version}
+% \begin{Version}{2000/03/22 v2.1}
+% \item
+% Bug fix in redefinition of \cmd{\chapter}.
+% \item
+% Copyright: LPPL 1.2
+% \end{Version}
+% \begin{Version}{2006/02/20 v2.2}
+% \item
+% Code is not changed.
+% \item
+% New DTX framework.
+% \item
+% LPPL 1.3
+% \end{Version}
+% \end{History}
%
-% \StartHistory
-% \HistVersion{1998/11/20 v1.0}
-% \begin{itemize}
-% \item First version.
-% \item It merges package \Package{hysecopt} and
-% package \Package{hypbmpar}.
-% \item Published for the DANTE'99 meating^^A
-%\URL{}{http://dante99.cs.uni-dortmund.de/handouts/oberdiek/hypbmsec.sty}.
-% \end{itemize}
-% \HistVersion{1999/04/12 v2.0}
-% \begin{itemize}
-% \item Adaptation to \Package{hyperref} version 6.54.
-% \item Documentation in dtx format.
-% \item Copyright: LPPL (\CTAN{macros/latex/base/lppl.txt})
-% \item First CTAN release.
-% \end{itemize}
-% \HistVersion{2000/03/22 v2.1}
-% \begin{itemize}
-% \item Bug fix in redefinition of \cmd{\chapter}.
-% \item Copyright: LPPL 1.2
-% \end{itemize}
-%
-% \hfuzz10pt
% \PrintIndex
%
% \Finale
diff --git a/Master/texmf-dist/source/latex/oberdiek/hypbmsec.ins b/Master/texmf-dist/source/latex/oberdiek/hypbmsec.ins
deleted file mode 100644
index 5eee3aae7d6..00000000000
--- a/Master/texmf-dist/source/latex/oberdiek/hypbmsec.ins
+++ /dev/null
@@ -1,76 +0,0 @@
-% hypbmsec.ins
-%
-% 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>.
-%
-
-\def\batchfile{hypbmsec.ins}
-\input docstrip.tex
-{\ifx\generate\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.3c or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old `docstrip.tex'.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\keepsilent
-
-\preamble
-
-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>.
-
-\endpreamble
-
-\generateFile{hypbmsec.sty}{f}{\from{hypbmsec.dtx}{package}}
-%\generateFile{hypbmsec.drv}{f}{\from{hypbmsec.dtx}{driver}}
-
-\Msg{***********************************************************}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space hypbmsec.sty}
-\Msg{*}
-\Msg{* To produce the documentation run the file `hypbmsec.dtx'}
-\Msg{* through LaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-
-\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/hypcap.dtx b/Master/texmf-dist/source/latex/oberdiek/hypcap.dtx
index e43a8755f6c..21ec65d87dc 100644
--- a/Master/texmf-dist/source/latex/oberdiek/hypcap.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/hypcap.dtx
@@ -1,78 +1,176 @@
% \iffalse meta-comment
%
-% hypcap.dtx
-%
-% 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>.
-%
-%<*dtx>
-\ProvidesFile{hypcap.dtx}
-%</dtx>
-%<package>\ProvidesPackage{hypcap}
-%<driver>\ProvidesFile{hypcap.drv}
-% \fi
-% \ProvidesFile{hypcap.dtx}
- [2001/08/27 v1.3 Adjusting anchors of captions (HO)]
-%
-% \GetFileInfo{hypcap.dtx}
-% \CheckSum{131}
-%
-%% \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 \~}
-%%
-% \iffalse
+% Copyright (C) 1999-2001, 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file hypcap.dtx
+% and the derived files
+% hypcap.sty, hypcap.pdf, hypcap.ins, hypcap.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/hypcap.dtx
+% CTAN:macros/latex/contrib/oberdiek/hypcap.pdf
+%
+% Unpacking:
+% (a) If hypcap.ins is present:
+% tex hypcap.ins
+% (b) Without hypcap.ins:
+% tex hypcap.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{hypcap.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If hypcap.drv is present:
+% latex hypcap.drv
+% (b) Without hypcap.drv:
+% latex hypcap.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex hypcap.dtx
+% makeindex -s gind.ist hypcap.idx
+% pdflatex hypcap.dtx
+% makeindex -s gind.ist hypcap.idx
+% pdflatex hypcap.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/hypcap.sty
+% TDS:doc/latex/oberdiek/hypcap.pdf
+% TDS:source/latex/oberdiek/hypcap.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: hypcap 2006/02/20 v1.5 Adjusting anchors of captions (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 1999-2001, 2006 by
+ Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file hypcap.dtx
+and the derived files
+ hypcap.sty, hypcap.pdf, hypcap.ins, hypcap.drv.
+
+\endpreamble
+
+\generate{%
+ \file{hypcap.ins}{\from{hypcap.dtx}{install}}%
+ \file{hypcap.drv}{\from{hypcap.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{hypcap.sty}{\from{hypcap.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* hypcap.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `hypcap.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{hypcap.drv}%
+ [2006/02/20 v1.5 Adjusting anchors of captions (HO)]
\documentclass{ltxdoc}
\usepackage{holtxdoc}
\begin{document}
- \DocInput{hypcap.dtx}
+ \DocInput{hypcap.dtx}
\end{document}
%</driver>
% \fi
%
-% \DoNotIndex{\else,\fi,\csname,\endcsname}
-% \DoNotIndex{\def,\edef,\long,\begingroup,\endgroup}
-% \DoNotIndex{\the,\relax,\expandafter}
+% \CheckSum{133}
+%
+% \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 \~}
+%
+% \GetFileInfo{hypcap.drv}
+%
+% \title{The \xpackage{hypcap} package}
+% \date{2006/02/20 v1.5}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
%
-% \SetupTitle{hyperref, caption, anchor, TeX}
% \maketitle
%
% \begin{abstract}
-% This package tries a solution of the problem with
-% hyperref, that links to floats points below the
-% caption and not at the beginning of the float.
-% Therefore this package divides the task into two
-% part, the link setting with \cmd{\capstart} or
-% automatically at the beginning of a float and
-% the rest in the \cmd{\caption} command.
+% This package tries a solution of the problem with
+% hyperref, that links to floats points below the
+% caption and not at the beginning of the float.
+% Therefore this package divides the task into two
+% part, the link setting with \cs{capstart} or
+% automatically at the beginning of a float and
+% the rest in the \cs{caption} command.
% \end{abstract}
%
% \tableofcontents
@@ -88,18 +186,18 @@
% \subsection{Package options}
% The names of the four float environments |figure|, |figure*|,
% |table|, or |table*| can be used as option. Then the package
-% overloads the environment in order to insert \cmd{\capstart}
+% redefines the environment in order to insert \cmd{\capstart}
% (see below) in the beginning of the environment automatically.
%
-% Option |all| enables the overloading of all four
+% Option |all| enables the redefinitions of all four
% float environments. For other environments see
% the user command \cmd{\hypcapredef}.
%
% \subsection{User commands}
% \begin{description}
% \item[\cmd{\capstart}:]\DescribeMacro{\capstart}
-% First it increments the counter (\cmd{\@captype}). Then it
-% makes an anchor for package \Package{hyperref}.
+% First this command increments the counter (\cmd{\@captype}).
+% Then it makes an anchor for package \Package{hyperref}.
% At last \cmd{\caption} is redefined to remove the
% anchor setting part from \Package{hyperref}'s \cmd{\caption}.
%
@@ -120,10 +218,12 @@
% \end{quote}
% And the \cmd{\caption} command itself can be put in a group.
%
-% The options, described above, safe writing the
-% first \cmd{\capstart} in the float environment.
-% But also there must be a \cmd{\caption} in every
-% environment of this type.
+% With the options, described above, the extra
+% writing of \cmd{\capstart} can be avoided.
+% Consequently, there must be a \cmd{\caption} in every
+% environment of this type, specified by the option.
+% If you want to use more than one \cmd{\caption} in this
+% environment, you have to state \cmd{\capstart} again.
% \item[\cmd{\hypcapspace}:]\DescribeMacro{\hypcapspace}
% Because it looks poor, if the link points exactly at top of
% the figure, there is additional space: \cmd{\hypcapspace},
@@ -150,16 +250,19 @@
% \cmd{\@caption}.
% \end{itemize}
%
-% \Installation
-%
-% \StopEventually{}
+% \StopEventually{
+% }
%
% \section{Implementation}
% \begin{macrocode}
%<*package>
% \end{macrocode}
-% The package identification is done at the top of the |.dtx| file
-% in order to use only one identification string.
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hypcap}%
+ [2006/02/20 v1.5 Adjusting anchors of captions (HO)]
+% \end{macrocode}
%
% For unique command names this package uses |hc@| as prefix
% for internal command names.
@@ -318,28 +421,130 @@
% \begin{macrocode}
%</package>
% \end{macrocode}
-%
-% \StartHistory
-% \HistVersion{1999/02/13 v1.0}
-% \begin{itemize}
-% \item A beginning version.
-% \end{itemize}
-% \HistVersion{2000/08/14 v1.1}
-% \begin{itemize}
-% \item Global assignments of |\if@capstart|
-% in order to allow |\caption| in groups.
-% \item Option |all| added.
-% \end{itemize}
-% \HistVersion{2000/09/07 v1.2}
-% \begin{itemize}
-% \item Package in dtx format.
-% \end{itemize}
-% \HistVersion{2001/08/27 v1.3}
-% \begin{itemize}
-% \item Bug fix with hyperref's pdfmark driver\\
-% (\verb|\leavevmode| in
-% \verb|\hyper@@anchor|/\verb|\pdf@rect|).
-% \end{itemize}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/hypcap.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/hypcap.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex hypcap.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% hypcap.sty & tex/latex/oberdiek/hypcap.sty\\
+% hypcap.pdf & doc/latex/oberdiek/hypcap.pdf\\
+% hypcap.dtx & source/latex/oberdiek/hypcap.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk hypcap.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{hypcap.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex hypcap.dtx
+%makeindex -s gind.ist hypcap.idx
+%pdflatex hypcap.dtx
+%makeindex -s gind.ist hypcap.idx
+%pdflatex hypcap.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{1999/02/13 v1.0}
+% \item
+% A beginning version.
+% \end{Version}
+% \begin{Version}{2000/08/14 v1.1}
+% \item
+% Global assignments of \cs{if@capstart}
+% in order to allow \cs{caption} in groups.
+% \item
+% Option \texttt{all} added.
+% \end{Version}
+% \begin{Version}{2000/09/07 v1.2}
+% \item
+% Package in dtx format.
+% \end{Version}
+% \begin{Version}{2001/08/27 v1.3}
+% \item
+% Bug fix with hyperref's pdfmark driver\\
+% (\cs{leavevmode} in
+% \cs{hyper@@anchor}/\cs{pdf@rect}).
+% \end{Version}
+% \begin{Version}{2001/09/06 v1.4}
+% \item
+% Small fixes in the dtx file.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.5}
+% \item
+% Code is not changed.
+% \item
+% New DTX framework.
+% \end{Version}
+% \end{History}
%
% \PrintIndex
%
diff --git a/Master/texmf-dist/source/latex/oberdiek/hypcap.ins b/Master/texmf-dist/source/latex/oberdiek/hypcap.ins
deleted file mode 100644
index 185f234452b..00000000000
--- a/Master/texmf-dist/source/latex/oberdiek/hypcap.ins
+++ /dev/null
@@ -1,79 +0,0 @@
-% File: hypcap.ins
-% Version: 2001/08/27
-%
-% 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>.
-%
-
-\def\batchfile{hypcap.ins}
-\input docstrip.tex
-{\ifx\generate\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.3c or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old `docstrip.tex'.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\keepsilent
-
-\preamble
-
-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>.
-
-\endpreamble
-
-\generateFile{hypcap.sty}{f}{\from{hypcap.dtx}{package}}
-%\generateFile{hypcap.drv}{f}{\from{hypcap.dtx}{driver}}
-
-\Msg{***********************************************************}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space hypcap.sty}
-\Msg{*}
-\Msg{* To produce the documentation run the file `hypcap.dtx'}
-\Msg{* through LaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-
-\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/hypdestopt.dtx b/Master/texmf-dist/source/latex/oberdiek/hypdestopt.dtx
new file mode 100644
index 00000000000..8d0907415fe
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/hypdestopt.dtx
@@ -0,0 +1,816 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file hypdestopt.dtx
+% and the derived files
+% hypdestopt.sty, hypdestopt.pdf, hypdestopt.ins, hypdestopt.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/hypdestopt.dtx
+% CTAN:macros/latex/contrib/oberdiek/hypdestopt.pdf
+%
+% Unpacking:
+% (a) If hypdestopt.ins is present:
+% tex hypdestopt.ins
+% (b) Without hypdestopt.ins:
+% tex hypdestopt.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{hypdestopt.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If hypdestopt.drv is present:
+% latex hypdestopt.drv
+% (b) Without hypdestopt.drv:
+% latex hypdestopt.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex hypdestopt.dtx
+% makeindex -s gind.ist hypdestopt.idx
+% pdflatex hypdestopt.dtx
+% makeindex -s gind.ist hypdestopt.idx
+% pdflatex hypdestopt.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/hypdestopt.sty
+% TDS:doc/latex/oberdiek/hypdestopt.pdf
+% TDS:source/latex/oberdiek/hypdestopt.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: hypdestopt 2006/06/01 v2.0 Hyperref destination optimizer (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file hypdestopt.dtx
+and the derived files
+ hypdestopt.sty, hypdestopt.pdf, hypdestopt.ins, hypdestopt.drv.
+
+\endpreamble
+
+\generate{%
+ \file{hypdestopt.ins}{\from{hypdestopt.dtx}{install}}%
+ \file{hypdestopt.drv}{\from{hypdestopt.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{hypdestopt.sty}{\from{hypdestopt.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* hypdestopt.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `hypdestopt.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{hypdestopt.drv}%
+ [2006/06/01 v2.0 Hyperref destination optimizer (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{hypdestopt.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{514}
+%
+% \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 \~}
+%
+% \GetFileInfo{hypdestopt.drv}
+%
+% \title{The \xpackage{hypdestopt} package}
+% \date{2006/06/01 v2.0}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{hypdestopt} supports \xpackage{hyperref}'s
+% \xoption{pdftex} driver. It removes unnecessary destinations
+% and shortens the destination names or uses numbered destinations
+% to get smaller PDF files.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{User interface}
+%
+% \subsection{Introduction}
+%
+% Before PDF-1.5 annotations and destinations cannot be compressed.
+% If the destination names are not needed for external use, the
+% file size can be decreased by the following means:
+% \begin{itemize}
+% \item Unused destinations are removed.
+% \item The destination names are shortened (option \xoption{name}).
+% \item Using numbered destinations (option \xoption{num}).
+% \end{itemize}
+%
+% \subsection{Requirements}
+%
+% \begin{itemize}
+% \item Package \xpackage{hyperref} 2006/06/01 v6.75a or newer
+% (\cite{hyperref}).
+% \item Package \xpackage{alphalph} 2006/05/30 v1.4 or newer
+% (\cite{alphalph}), if option \xoption{name} is used.
+% \item Package \xpackage{ifpdf} (\cite{ifpdf}).
+% \item \pdfTeX\ 1.30.0 or newer.
+% \item \pdfTeX\ in PDF mode.
+% \item \eTeX\ extensions enabled.
+% \item Probably an additional compile run of \pdfLaTeX\ is necessary.
+% \end{itemize}
+%
+% In the first compile runs you can get warnings such as:
+%\begin{quote}
+%\begin{verbatim}
+%! pdfTeX warning (dest): name{...} has been referenced ...
+%\end{verbatim}
+%\end{quote}
+% These warnings should vanish in later compile runs.
+% However these warnings also can occur without this package.
+% The package does not cure them, thus these warnings will remain,
+% but the destination name can be different. In such cases test
+% without package, too.
+%
+% \subsection{Use}
+%
+% If the requirements are met, load the package:
+%\begin{quote}
+%\verb|\usepackage{hypdestopt}|
+%\end{quote}
+%
+% The following options are supported:
+% \begin{description}
+% \item[\xoption{verbose}:] Verbose debug output is enabled and written
+% in the protocol file.
+% \item[\xoption{num}:] Numbered destinations are used. The file size
+% is smaller, because names are no longer used.
+% This is the default.
+% \item[\xoption{name}:] Destinations are identified by names.
+% \end{description}
+%
+% \subsection{Limitations}
+%
+% \begin{itemize}
+% \item Forget this package, if you need preserved destination names.
+% \item Destination name strings use all bytes (0..255) except
+% the carriage return (13), left parenthesis (40), right
+% parenthesis (41), and backslash (92), because they
+% must be quoted in general and therefore occupy two bytes
+% instead of one.
+%
+% Further the zero byte (0) is avoided for programs
+% that implement strings using zero terminated C strings.
+% And 255 (0xFF) is avoided to get rid of a possible
+% unicode marker at the begin.
+%
+% So far I have not seen problems with:
+% \begin{itemize}
+% \item AcrobatReader 5.08/Linux
+% \item AcrobatReader 7.0/Linux
+% \item xpdf 3.00
+% \item Ghostscript 8.50
+% \item gv 3.5.8
+% \item GSview 4.6
+% \end{itemize}
+% But I have not tested all and all possible PDF viewers.
+% \item Use of named destinations (\cs{pdfdest}, \cs{pdfoutline},
+% \cs{pdfstartlink}, \dots) that are not supported by this
+% package.
+% \item Currently only \xpackage{hyperref} with \pdfTeX\ in PDF
+% mode is supported.
+% \end{itemize}
+%
+% \subsection{Future}
+%
+% A more general approach is a PDF postprocessor that takes
+% a PDF file, performs some transformations and writes the
+% result in a more optimized PDF file. Then it does not depend,
+% how the original PDF file was generated and further improvements
+% are easier to apply. For example, the destination names could be sorted:
+% often used destination names would then be shorter than seldom used ones.
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Identification}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hypdestopt}%
+ [2006/06/01 v2.0 Hyperref destination optimizer (HO)]
+% \end{macrocode}
+%
+% \subsection{Options}
+%
+% \subsubsection{Option \xoption{verbose}}
+%
+% \begin{macrocode}
+\newif\ifHypDest@Verbose
+\DeclareOption{verbose}{\HypDest@Verbosetrue}
+% \end{macrocode}
+%
+% \begin{macro}{\HypDest@VerboseInfo}
+% Wrapper for verbose messages.
+% \begin{macrocode}
+\def\HypDest@VerboseInfo#1{%
+ \ifHypDest@Verbose
+ \PackageInfo{hypdestopt}{#1}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Options \xoption{num} and \xoption{name}}
+%
+% The options \xoption{num} or \xoption{name} specify
+% the method, how destinations are referenced (by name or
+% number). Default is option \xoption{num}.
+% \begin{macrocode}
+\newif\ifHypDest@name
+\DeclareOption{num}{\HypDest@namefalse}
+\DeclareOption{name}{\HypDest@nametrue}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProcessOptions*\relax
+% \end{macrocode}
+%
+% \subsection{Check requirements}
+%
+% First \pdfTeX\ must running in PDF mode.
+% \begin{macrocode}
+\RequirePackage{ifpdf}
+\ifpdf
+\else
+ \PackageError{hypdestopt}{%
+ This package requires pdfTeX in PDF mode%
+ }\@ehc
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+% The version of \pdfTeX\ must not be too old, because
+% \cs{pdfescapehex} and \cs{pdfunescapehex} are used.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdfescapehex\endcsname\relax
+ \PackageError{hypdestopt}{%
+ This pdfTeX is too old, at least 1.30.0 is required%
+ }\@ehc
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+% Features of \eTeX\ are used, e.g. \cs{numexpr}.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname numexpr\endcsname\relax
+ \PackageError{hypdestopt}{%
+ e-TeX features are missing%
+ }\@ehc
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+% Package \xpackage{alphalph} provides \cs{newalphalph} since
+% version 2006/05/30 v1.4.
+% \begin{macrocode}
+\ifHypDest@name
+ \RequirePackage{alphalph}[2006/05/30]
+\fi
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage{auxhook}
+% \end{macrocode}
+%
+% \subsection{Preamble for auxiliary file}
+%
+% Provide dummy definitions for the macros that are used in the
+% auxiliary files. If the package is used no longer, then these
+% commands will not generate errors.
+%
+% \begin{macro}{\HypDest@PrependDocument}
+% We add our stuff in front of the \cs{AtBeginDocument} hook
+% to ensure that we are before \xpackage{hyperref}'s stuff.
+% \begin{macrocode}
+\long\def\HypDest@PrependDocument#1{%
+ \begingroup
+ \toks\z@{#1}%
+ \toks\tw@\expandafter{\@begindocumenthook}%
+ \xdef\@begindocumenthook{\the\toks\z@\the\toks\tw@}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\AddLineBeginAux{%
+ \string\providecommand{\string\HypDest@Use}[1]{}%
+}
+% \end{macrocode}
+%
+% \subsection{Generation of destination names}
+%
+% Counter |HypDest| is used for identifying destinations.
+% \begin{macrocode}
+\newcounter{HypDest}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifHypDest@name
+% \end{macrocode}
+%
+% \begin{macro}{\HypDest@HexChar}
+% Destination names are generated by automatically
+% numbering with the help of package \xpackage{alphalph}.
+% \cs{HypDest@HexChar} converts a number of the range 1 until 252
+% into the hexadecimal representation of the string character.
+% \begin{macrocode}
+ \def\HypDest@HexChar#1{%
+ \ifcase#1\or
+% \end{macrocode}
+% Avoid zero byte because of C strings in PDF viewer
+% applications.
+% \begin{macrocode}
+ 01\or 02\or 03\or 04\or 05\or 06\or 07\or
+% \end{macrocode}
+% Omit carriage return (13/\verb|^^0d|).
+% It needs quoting, otherwise it would be converted
+% to line feed (10/\verb|^^0a|).
+% \begin{macrocode}
+ 08\or 09\or 0A\or 0B\or 0C\or 0E\or 0F\or
+ 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or
+ 18\or 19\or 1A\or 1B\or 1C\or 1D\or 1E\or 1F\or
+ 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or
+% \end{macrocode}
+% Omit left and right parentheses (40/\verb|^^28|, 41/\verb|^^39|),
+% they need quoting in general.
+% \begin{macrocode}
+ 2A\or 2B\or 2C\or 2D\or 2E\or 2F\or
+ 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or
+ 38\or 39\or 3A\or 3B\or 3C\or 3D\or 3E\or 3F\or
+ 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or
+ 48\or 49\or 4A\or 4B\or 4C\or 4D\or 4E\or 4F\or
+ 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or
+% \end{macrocode}
+% Omit backslash (92/\verb|^^5C|), it needs quoting.
+% \begin{macrocode}
+ 58\or 59\or 5A\or 5B\or 5D\or 5E\or 5F\or
+ 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or
+ 68\or 69\or 6A\or 6B\or 6C\or 6D\or 6E\or 6F\or
+ 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or
+ 78\or 79\or 7A\or 7B\or 7C\or 7D\or 7E\or 7F\or
+ 80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or
+ 88\or 89\or 8A\or 8B\or 8C\or 8D\or 8E\or 8F\or
+ 90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or
+ 98\or 99\or 9A\or 9B\or 9C\or 9D\or 9E\or 9F\or
+ A0\or A1\or A2\or A3\or A4\or A5\or A6\or A7\or
+ A8\or A9\or AA\or AB\or AC\or AD\or AE\or AF\or
+ B0\or B1\or B2\or B3\or B4\or B5\or B6\or B7\or
+ B8\or B9\or BA\or BB\or BC\or BD\or BE\or BF\or
+ C0\or C1\or C2\or C3\or C4\or C5\or C6\or C7\or
+ C8\or C9\or CA\or CB\or CC\or CD\or CE\or CF\or
+ D0\or D1\or D2\or D3\or D4\or D5\or D6\or D7\or
+ D8\or D9\or DA\or DB\or DC\or DD\or DE\or DF\or
+ E0\or E1\or E2\or E3\or E4\or E5\or E6\or E7\or
+ E8\or E9\or EA\or EB\or EC\or ED\or EE\or EF\or
+ F0\or F1\or F2\or F3\or F4\or F5\or F6\or F7\or
+% \end{macrocode}
+% Avoid 255 (0xFF) to get rid of a possible unicode
+% marker at the begin of the string.
+% \begin{macrocode}
+ F8\or F9\or FA\or FB\or FC\or FD\or FE%
+ \fi
+ }%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{HypDest@HexString}
+% Now package \xpackage{alphalph} comes into play.
+% \cs{HypDest@HexString} is defined and converts
+% a positive number into a string, given in hexadecimal
+% representation.
+% \begin{macrocode}
+ \newalphalph\HypDest@HexString\HypDest@HexChar{250}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\theHypDest}
+% For use, the hexadecimal string is converted back.
+% \begin{macrocode}
+ \renewcommand*{\theHypDest}{%
+ \pdfunescapehex{\HypDest@HexString{\value{HypDest}}}%
+ }%
+% \end{macrocode}
+% \end{macro}
+%
+% With option \xoption{num} we use the number directly.
+% \begin{macrocode}
+\else
+ \renewcommand*{\theHypDest}{%
+ \number\value{HypDest}%
+ }%
+\fi
+% \end{macrocode}
+%
+% \subsection{Assign destination names}
+%
+% \begin{macro}{\HypDest@Prefix}
+% The new destination names are remembered in macros whose names
+% start with prefix \cs{HypDest@Prefix}.
+% \begin{macrocode}
+\edef\HypDest@Prefix{HypDest\string:}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\HypDest@Use}
+% During the first read of the auxiliary files, the used destinations
+% get fresh generated short destination names. Also for the old
+% destination names we use the hexadecimal representation. That
+% avoid problems with arbitrary names.
+% \begin{macrocode}
+\def\HypDest@Use#1{%
+ \begingroup
+ \edef\x{%
+ \expandafter\noexpand
+ \csname\HypDest@Prefix\pdfunescapehex{#1}\endcsname
+ }%
+ \expandafter\ifx\x\relax
+ \stepcounter{HypDest}%
+ \expandafter\xdef\x{\theHypDest}%
+ \let\on@line\@empty
+ \ifHypDest@name
+ \HypDest@VerboseInfo{%
+ Use: (\pdfunescapehex{#1}) -\string> %
+ 0x\pdfescapehex{\x} (\number\value{HypDest})%
+ }%
+ \else
+ \HypDest@VerboseInfo{%
+ Use: (\pdfunescapehex{#1}) -\string> num \x
+ }%
+ \fi
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% After the first \xfile{.aux} file processing the destination names
+% are assigned and we can disable \cs{HypDest@Use}.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \let\HypDest@Use\@gobble
+}
+% \end{macrocode}
+%
+% \begin{macro}{\HypDest@MarkUsed}
+% Destinations that are actually used are marked by \cs{HypDest@MarkUsed}.
+% \cs{nofiles} is respected.
+% \begin{macrocode}
+\def\HypDest@MarkUsed#1{%
+ \HypDest@VerboseInfo{%
+ MarkUsed: (#1)%
+ }%
+ \if@filesw
+ \immediate\write\@auxout{%
+ \string\HypDest@Use{\pdfescapehex{#1}}%
+ }%
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Redefinition of \xpackage{hyperref}'s hooks}
+%
+% Package \xpackage{hyperref} can be loaded later, therefore
+% we redefine \xpackage{hyperref}'s macros at |\begin{document}|.
+% \begin{macrocode}
+\HypDest@PrependDocument{%
+% \end{macrocode}
+%
+% Check hyperref version.
+% \begin{macrocode}
+ \@ifpackagelater{hyperref}{2006/06/01}{}{%
+ \PackageError{hypdestopt}{%
+ hyperref 2006/06/01 v6.75a or later is required%
+ }\@ehc
+ }%
+% \end{macrocode}
+%
+% \subsubsection{Destination setting}
+%
+% \begin{macrocode}
+ \ifHypDest@name
+ \let\HypDest@Org@DestName\Hy@DestName
+ \renewcommand*{\Hy@DestName}[2]{%
+ \@ifundefined{\HypDest@Prefix#1}{%
+ \HypDest@VerboseInfo{%
+ DestName: (#1) unused%
+ }%
+ }{%
+ \HypDest@Org@DestName{\csname\HypDest@Prefix#1\endcsname}{#2}%
+ \HypDest@VerboseInfo{%
+ DestName: (#1) %
+ 0x\pdfescapehex{\csname\HypDest@Prefix#1\endcsname}%
+ }%
+ }%
+ }%
+ \else
+ \renewcommand*{\Hy@DestName}[2]{%
+ \@ifundefined{\HypDest@Prefix#1}{%
+ \HypDest@VerboseInfo{%
+ DestName: (#1) unused%
+ }%
+ }{%
+ \pdfdest num\csname\HypDest@Prefix#1\endcsname#2\relax
+ \HypDest@VerboseInfo{%
+ DestName: (#1) %
+ num \csname\HypDest@Prefix#1\endcsname
+ }%
+ }%
+ }%
+ \fi
+% \end{macrocode}
+%
+% \subsubsection{Links}
+%
+% \begin{macrocode}
+ \let\HypDest@Org@StartlinkName\Hy@StartlinkName
+ \ifHypDest@name
+ \renewcommand*{\Hy@StartlinkName}[2]{%
+ \HypDest@MarkUsed{#2}%
+ \HypDest@Org@StartlinkName{#1}{%
+ \@ifundefined{\HypDest@Prefix#2}{%
+ #2%
+ }{%
+ \csname\HypDest@Prefix#2\endcsname
+ }%
+ }%
+ }%
+ \else
+ \renewcommand*{\Hy@StartlinkName}[2]{%
+ \HypDest@MarkUsed{#2}%
+ \@ifundefined{\HypDest@Prefix#2}{%
+ \HypDest@Org@StartlinkName{#1}{#2}%
+ }{%
+ \pdfstartlink attr{#1}%
+ goto num\csname\HypDest@Prefix#2\endcsname
+ \relax
+ }%
+ }%
+ \fi
+% \end{macrocode}
+%
+% \subsubsection{Outlines}
+%
+% \begin{macrocode}
+ \let\HypDest@Org@OutlineName\Hy@OutlineName
+ \ifHypDest@name
+ \renewcommand*{\Hy@OutlineName}[4]{%
+ \HypDest@Org@OutlineName{#1}{%
+ \@ifundefined{\HypDest@Prefix#2}{%
+ #2%
+ }{%
+ \csname\HypDest@Prefix#2\endcsname
+ }%
+ }{#3}{#4}%
+ }%
+ \else
+ \renewcommand*{\Hy@OutlineName}[4]{%
+ \@ifundefined{\HypDest@Prefix#2}{%
+ \HypDest@Org@OutlineName{#1}{#2}{#3}{#4}%
+ }{%
+ \pdfoutline goto num\csname\HypDest@Prefix#2\endcsname
+ count#3{#4}%
+ }%
+ }%
+ \fi
+% \end{macrocode}
+% Because \cs{Hy@OutlineName} is called after the \xfile{.out} file
+% is written in the previous run. Therefore we mark the destination
+% earlier in \cs{@@writetorep}.
+% \begin{macrocode}
+ \let\HypDest@Org@@writetorep\@@writetorep
+ \renewcommand*{\@@writetorep}[5]{%
+ \begingroup
+ \edef\Hy@tempa{#5}%
+ \ifx\Hy@tempa\Hy@bookmarkstype
+ \HypDest@MarkUsed{#3}%
+ \fi
+ \endgroup
+ \HypDest@Org@@writetorep{#1}{#2}{#3}{#4}{#5}%
+ }%
+% \end{macrocode}
+%
+% \begin{macrocode}
+}
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/hypdestopt.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/hypdestopt.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex hypdestopt.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% hypdestopt.sty & tex/latex/oberdiek/hypdestopt.sty\\
+% hypdestopt.pdf & doc/latex/oberdiek/hypdestopt.pdf\\
+% hypdestopt.dtx & source/latex/oberdiek/hypdestopt.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk hypdestopt.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{hypdestopt.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex hypdestopt.dtx
+%makeindex -s gind.ist hypdestopt.idx
+%pdflatex hypdestopt.dtx
+%makeindex -s gind.ist hypdestopt.idx
+%pdflatex hypdestopt.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{alphalph}
+% Heiko Oberdiek: \textit{The \xpackage{alphalph} package};
+% 2006/05/30 v1.4;
+% \CTAN{macros/latex/contrib/oberdiek/alphalph.pdf}.
+%
+% \bibitem{hyperref}
+% Sebastian Rahtz, Heiko Oberdiek:
+% \textit{The \xpackage{hyperref} package};
+% 2006/06/01 v6.75a;
+% \CTAN{macros/latex/contrib/hyperref/}.
+%
+% \bibitem{ifpdf}
+% Heiko Oberdiek: \textit{The \xpackage{ifpdf} package};
+% 2006/02/20 v1.4;
+% \CTAN{macros/latex/contrib/oberdiek/ifpdf.pdf}.
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2006/06/01 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \begin{Version}{2006/06/01 v2.0}
+% \item
+% New method for referencing destinations by number; an idea
+% proposed by Lars Hellstr\"om in the mailing list LATEX-L.
+% \item
+% Options \xoption{name} and \xoption{num} added.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/hypdoc.dtx b/Master/texmf-dist/source/latex/oberdiek/hypdoc.dtx
new file mode 100644
index 00000000000..1c058c30a29
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/hypdoc.dtx
@@ -0,0 +1,941 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2002, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file hypdoc.dtx
+% and the derived files
+% hypdoc.sty, hypdoc.pdf, hypdoc.ins, hypdoc.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/hypdoc.dtx
+% CTAN:macros/latex/contrib/oberdiek/hypdoc.pdf
+%
+% Unpacking:
+% (a) If hypdoc.ins is present:
+% tex hypdoc.ins
+% (b) Without hypdoc.ins:
+% tex hypdoc.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{hypdoc.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If hypdoc.drv is present:
+% latex hypdoc.drv
+% (b) Without hypdoc.drv:
+% latex hypdoc.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex hypdoc.dtx
+% makeindex -s gind.ist hypdoc.idx
+% pdflatex hypdoc.dtx
+% makeindex -s gind.ist hypdoc.idx
+% pdflatex hypdoc.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/hypdoc.sty
+% TDS:doc/latex/oberdiek/hypdoc.pdf
+% TDS:source/latex/oberdiek/hypdoc.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: hypdoc 2006/06/02 v1.4 Hyper extensions for doc.sty (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2002, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file hypdoc.dtx
+and the derived files
+ hypdoc.sty, hypdoc.pdf, hypdoc.ins, hypdoc.drv.
+
+\endpreamble
+
+\generate{%
+ \file{hypdoc.ins}{\from{hypdoc.dtx}{install}}%
+ \file{hypdoc.drv}{\from{hypdoc.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{hypdoc.sty}{\from{hypdoc.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* hypdoc.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `hypdoc.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{hypdoc.drv}%
+ [2006/06/02 v1.4 Hyper extensions for doc.sty (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{hypdoc.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{682}
+%
+% \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 \~}
+%
+% \GetFileInfo{hypdoc.drv}
+%
+% \title{The \xpackage{hypdoc} package}
+% \date{2006/06/02 v1.4}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package adds hyper features to the package
+% \xpackage{doc} that is used in the documentation
+% system of \LaTeXe. Bookmarks are added and references
+% are linked as far as possible.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Features}
+%
+% The package adds the following features:
+% \begin{description}
+% \item[Bookmarks:]
+% For supporting bookmarks package \verb|hyperref| is loaded.
+% Some \TeX\ code inside section titles can cause problems
+% during bookmark processing; these can be warnings, ugly
+% bookmark titles or even errors. With the help of
+% \verb|\pdfstringdefDisableCommands| or \verb|\texorpdfstring|
+% you can manage these things, see \verb|hyperref|'s package
+% documentation.
+% \item[Additional bookmarks:]
+% Unnumbered bookmark entries are generated for:
+% \begin{itemize}
+% \item Table of contents
+% \item List of figures
+% \item List of tables
+% \item Index
+% \item Glossary
+% \end{itemize}
+% Option \texttt{numbered} controls, whether these section or
+% chapters should be numbered. The exception is the table
+% of contents if this it would be the first numbered
+% section. Then just a bookmark is added.
+% \item[Metadata:]
+% The loaded package \verb|hyperref|, enforced by
+% option \verb|pdfusetitle|, tries to detect \verb|\title|
+% and \verb|\author| and sets the corresponding PDF
+% information fields. In case of problems see the previous
+% item about bookmarks.
+% These enries can be overwritten or new ones added by
+% \verb|\hypersetup| after the packages is loaded, see
+% documentation of package \verb|hyperref|.
+% \item[References, links:] Because of package \verb|\hyperref|
+% |\ref| become links, also \verb|\url|, footnote referencing
+% are supported.
+% \item[Index:]
+% The main part of this package deals with index links in order
+% to support the kind of index that package \verb|doc| provides.
+% \item[Thumbnails:]
+% Package \verb|thumbpdf| is loaded for the case that the
+% PDF file also should contain thumbnails, see the documentation
+% of this package. But thumbnail embedding is not really
+% necessary, because nowadays AcrobatReader is able to
+% generate and view thumbnails on the fly.
+% \end{description}
+%
+% \section{Usage}
+%
+% The purpose of this packages is to add PDF features to
+% the documentation of LaTeX packages. Thus just load
+% the package in the driver file that generates the
+% documentation:
+% \begin{quote}
+% \verb|\usepackage{hypdoc}|
+% \end{quote}
+% Package \verb|doc| is loaded by \verb|hypdoc|, thus you
+% also can replace a \verb|\usepackage{doc}| with this line.
+% At any case, the package must be loaded before macros of
+% package \verb|doc| such as \verb|\CodelineIndex| or
+% \verb|\PageIndex| are used.
+%
+% If the class \verb|ltxdoc| is used, you can also use
+% the configuration file for this class to add
+% package \verb|hypdoc|. Add the following line
+% to the file \verb|ltxdoc.cfg| (or create a new one):
+% \begin{quote}
+%\begin{verbatim}
+%\AtEndOfClass{\RequirePackage{hypdoc}}
+%\end{verbatim}
+% \end{quote}
+%
+% \subsection{Options}
+%
+% There is one option \texttt{numbered}. It controls,
+% whether the starred versions of section or chapter
+% inside \cs{tableofcontents}, \cs{listoffigures}, \dots
+% should be replaced by the non-star versions.
+%
+% \subsection{Simple example}
+% Example of a simple driver file \verb|foobar.drv|
+% of a package \verb|foobar|. Often the driver file
+% is packed in the file \verb|foobar.dtx| and can
+% be extracted by docstrip or if an instruction file
+% for docstrip is provided by:
+% \begin{quote}
+% \verb|tex foobar.ins|
+% \end{quote}
+% Note that although docstrip doesn't rely on \LaTeX,
+% sometimes you need to run the \verb|.ins| file through
+% \LaTeX. Oddly enough, often the only \LaTeX\ feature
+% in use is \verb|\NeedsTeXFormat{LaTeX2e}| in the first line.
+% \begin{quote}
+%\begin{verbatim}
+%\documentclass{ltxdoc}
+%\usepackage{hypdoc}
+%\RecordChanges
+%\EnableCrossrefs
+%\CodelineIndex
+%\begin{document}
+%\title{Title for package \texttt{foobar}}
+%\author{Author of package \texttt{foobar}}
+%\date{...}
+%\maketitle
+%\tableofcontents
+%\DocInput{foobar.dtx}
+%\PrintChanges
+%\PrintIndex
+%\end{document}
+%\end{verbatim}
+% \end{quote}
+%
+% Then compile it, for example with pdf\LaTeX.
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex foobar.drv
+%makeindex -s gind.ist foobar.idx
+%makeindex -s gglo.ist -o foobar.gls foobar.glo
+%pdflatex foobar.drv
+%\end{verbatim}
+% \end{quote}
+% You will need several cycles until the cross references
+% and similar things are correct.
+%
+% \subsection{Example \texttt{source2e.tex}}
+%
+% The source code of the base of \LaTeX\ is available as
+% a bunch of \verb|.dtx| files. \LaTeX\ provides the file
+% \verb|source2e.tex| to merge them all together.
+%
+% Now you can either load package \verb|hypdoc| in a private copy
+% of this file (please, respect the LPPL) or use the configuration
+% file \verb|ltxdoc.cfg|. Example that also sets A4 paper size:
+% \begin{quote}
+%\begin{verbatim}
+%\PassOptionsToClass{a4paper}{article}
+%\AtEndOfClass{\RequirePackage{hypdoc}}
+%\end{verbatim}
+% \end{quote}
+%
+% Then \verb|source2e.tex| can be compiled by pdf\TeX, for example:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex source2e
+%makeindex -s gind.ist source2e.idx
+%makeindex -s gglo.ist -o source2e.glo source2e.gls
+%pdflatex source2e
+%makeindex -s gind.ist source2e.idx
+%makeindex -s gglo.ist -o source2e.glo source2e.gls
+%pdflatex source2e
+%\end{verbatim}
+% \end{quote}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hypdoc}%
+ [2006/06/02 v1.4 Hyper extensions for doc.sty (HO)]
+% \end{macrocode}
+% The package identification is done at the top of the |.dtx| file
+% in order to use only one identification string.
+%
+% For unique command names this package uses |HD@| as prefix
+%
+% \begin{macrocode}
+%
+\newif\ifHD@numbered
+\DeclareOption{numbered}{\HD@numberedtrue}
+\ProcessOptions*\relax
+
+\RequirePackage{doc}
+
+\ifx\numexpr\@undefined
+ \RequirePackage{calc}
+\fi
+\RequirePackage[%
+ hyperindex=false,%
+ pdfusetitle,%
+ colorlinks,%
+ pdfpagelabels,%
+]{hyperref}[2002/05/09]%
+\hypersetup{%
+ plainpages=false,%
+ bookmarksopen,%
+ bookmarksnumbered,%
+ bookmarksopenlevel=0,%
+ pdfstartview={FitBH \hypercalcbp{%
+ \paperheight-\topmargin-1in-\headheight-\headsep
+ }},%
+}
+\RequirePackage{thumbpdf}
+
+\newcounter{HD@unique}
+\renewcommand{\theHD@unique}{%
+ \number\value{HD@unique}%
+}
+
+\g@addto@macro\Hy@UseMaketitleInfos{%
+ \@ifundefined{fileinfo}{}{%
+ \ifx\@pdfsubject\@empty
+ \hypersetup{pdfsubject={\fileinfo}}%
+ \fi
+ }%
+}
+
+\pdfstringdefDisableCommands{%
+ \let\thanks\@gobble
+ \let\footnote\@gobble
+ \def\cs#1{\textbackslash #1}%
+ \let\normalfont\@empty
+ \let\scshape\@empty
+ \def\and{and }%
+}
+
+%%% Bookmarks
+
+\def\HD@sectionpatch{%
+ \ifHD@numbered
+ \HD@@sectionpatch{section}%
+ \HD@@sectionpatch{chapter}%
+ \else
+ \let\Hy@writebookmark\HD@disable@writebookmark
+ \fi
+}
+\def\HD@@sectionpatch#1{%
+ \expandafter\let\csname HDorg@@#1\expandafter\endcsname
+ \csname #1\endcsname
+ \@namedef{#1}{%
+ \@ifstar{\@nameuse{HDorg@@#1}}{\@nameuse{HDorg@@#1}}%
+ }%
+}
+\def\HD@disable@writebookmark#1#2#3#4#5{}
+
+% A wild guessing of the toclevel. There is the hope, that
+% the macro \verb|#1| starts with a sectioning command.
+\def\HD@guesstoclevel#1{%
+ \expandafter\HD@@guesstoclevel#1\section\HD@end
+}
+\def\HD@@guesstoclevel#1#2\HD@end{%
+ \@ifundefined{toclevel@\expandafter\@gobble\string#1\@empty}{%
+ 1%
+ }{%
+ \@nameuse{toclevel@\expandafter\@gobble\string#1\@empty}%
+ }%
+}
+
+\let\HDorg@tableofcontents\tableofcontents
+\def\tableofcontents{%
+ % As first section the table of contents shouldn't
+ % go into the toc itself. Also a number looks too funny then.
+ % Just a bookmark is enough in this case.
+ \begingroup
+ \@ifundefined{c@section}{%
+ \def\c@section{0}%
+ }{}%
+ \expandafter\endgroup
+ \ifcase\c@section
+ \stepcounter{HD@unique}%
+ \pdfbookmark[\HD@guesstoclevel{\HDorg@tableofcontents}]
+ {\contentsname}{toc\theHD@unique}%
+ \HDorg@tableofcontents
+ \else
+ \ifHD@numbered
+ \else
+ \stepcounter{HD@unique}%
+ \pdfbookmark[\HD@guesstoclevel{\HDorg@tableofcontents}]
+ {\contentsname}{toc\theHD@unique}%
+ \fi
+ \begingroup
+ \HD@sectionpatch
+ \HDorg@tableofcontents
+ \endgroup
+ \fi
+}
+
+\let\HDorg@listoffigures\listoffigures
+\def\listoffigures{%
+ \ifHD@numbered
+ \else
+ \stepcounter{HD@unique}%
+ \pdfbookmark[\HD@guesstoclevel{\HDorg@listoffigures}]
+ {\contentsname}{toc\theHd@unique}%
+ \fi
+ \begingroup
+ \HD@sectionpatch
+ \HDorg@listoffigures
+ \endgroup
+}
+
+\let\HDorg@listoftables\listoftables
+\def\listoftables{%
+ \ifHD@numbered
+ \else
+ \stepcounter{HD@unique}%
+ \pdfbookmark[\HD@guesstoclevel{\HDorg@listoftables}]
+ {\contentsname}{toc\theHD@unique}%
+ \fi
+ \begingroup
+ \HD@sectionpatch
+ \HDorg@listoftables
+ \endgroup
+}
+
+\let\HDorg@thebibliography\thebibliography
+\def\thebibliography{%
+ \ifHD@numbered
+ \else
+ \stepcounter{HD@unique}%
+ \pdfbookmark[\HD@guesstoclevel{\HDorg@thebibliography}]
+ {\@ifundefined{chapter}{\refname}{\bibname}}{bib\theHD@unique}%
+ \fi
+ \HD@sectionpatch
+ \HDorg@thebibliography
+}
+
+\let\HDorg@theindex\theindex
+\def\theindex{%
+ \let\HDorg@index@prologue\index@prologue
+ \let\HDorg@writebookmark\Hy@writebookmark
+ \HD@sectionpatch
+ \g@addto@macro\IndexParms{%
+ \ifHD@numbered
+ \else
+ \let\Hy@writebookmark\HDorg@writebookmark
+ \fi
+ \let\bfseries\HD@bfseries
+ }%
+ \edef\HD@toclevel@index{\HD@guesstoclevel{\index@prologue}}%
+ \begingroup
+ \count@=\HD@toclevel@index\relax
+ \advance\count@ by 1 %
+ \xdef\HD@toclevel@subindex{\the\count@}%
+ \endgroup
+ \def\index@prologue{%
+ \ifHD@numbered
+ \else
+ \begingroup
+ \stepcounter{HD@unique}%
+ \let\Hy@writebookmark\HDorg@writebookmark
+ \pdfbookmark[\HD@toclevel@index]%
+ {\indexname}{index\theHD@unique}%
+ \endgroup
+ \fi
+ \HDorg@index@prologue
+ }%
+ \HDorg@theindex
+}
+\let\HDorg@bfseries\bfseries
+\def\HD@bfseries{\futurelet\HD@hfil\HD@@bfseries}%
+\def\HD@@bfseries{%
+ \HDorg@bfseries
+ \ifx\HD@hfil\hfil
+ \expandafter\HD@@@bfseries
+ \fi
+}%
+\def\HD@@@bfseries\hfil#1\hfil{%
+ \ifx\\#1\\%
+ \else
+ \raisebox{\baselineskip}[0pt]{%
+ \kern-\HD@margin\relax
+ \pdfbookmark[\HD@toclevel@subindex]{#1}{HD.#1}%
+ \kern\HD@margin\relax
+ }%
+ \fi
+ \hfil#1\hfil
+}%
+\def\HD@margin{1mm}
+
+\let\HDorg@theglossary\theglossary
+\def\theglossary{%
+ \let\HDorg@glossary@prologue\glossary@prologue
+ \let\HDorg@writebookmark\Hy@writebookmark
+ \HD@sectionpatch
+ \def\glossary@prologue{%
+ \ifHD@numbered
+ \else
+ \begingroup
+ \let\Hy@writebookmark\HDorg@writebookmark
+ \stepcounter{HD@unique}%
+ \pdfbookmark[\HD@guesstoclevel{\HDorg@glossary@prologue}]
+ {\glossaryname}{glossary\theHD@unique}%
+ \endgroup
+ \fi
+ \HDorg@glossary@prologue
+ }%
+ \HDorg@theglossary
+}
+\providecommand*{\glossaryname}{Change History}
+
+%%% Index stuff
+
+\newcounter{HD@hypercount}
+\newlength{\HD@helplength}
+\newif\ifHD@savedest
+\HD@savedesttrue
+\AtBeginDocument{%
+ \HD@savedest@init
+}
+\begingroup
+ \catcode`\^^M=\active
+\@firstofone{\endgroup
+ \def\HD@savedest@init{%
+ \ifHD@savedest
+ \let\HDorg@tilde~%
+ \let~\HD@savedest@entry
+ \edef\HDorg@catcodeM{\the\catcode`\^^M}%
+ \catcode`\^^M=\active
+ \def^^M{}%
+ \InputIfFileExists{\jobname.hd}{}{}%
+ \let~\HDorg@tilde
+ \catcode`\^^M=\HDorg@catcodeM\relax
+ \newwrite\HD@savedest@out
+ \immediate\openout\HD@savedest@out=\jobname.hd\relax
+ \AtEndDocument{\immediate\closeout\HD@savedest@out}%
+ \else
+ \let\HD@savedest@add\@gobble
+ \fi
+ }%
+ \def\HD@savedest@entry#1^^M{%
+ \@namedef{HD.#1}{}%
+ }%
+}
+\def\HD@savedest@add#1{%
+ \immediate\write\HD@savedest@out{\string~#1}%
+}
+
+\newif\ifHD@targetraise
+\HD@targetraisetrue
+
+\def\HD@target{%
+ \ifHD@targetraise
+ \ifhmode
+ \settoheight{\HD@helplength}{[H]}%
+ \addtolength{\HD@helplength}{0.4ex}%
+ \raisebox{\HD@helplength}{%
+ \HD@maketarget
+ }%
+ \else
+ \HD@maketarget
+ \fi
+ \else
+ \HD@maketarget
+ \fi
+}
+\def\HD@maketarget{%
+ \stepcounter{HD@hypercount}%
+ \def\HD@next{%
+ \llap{\hypertarget{HD.\the\c@HD@hypercount}{}\,}%
+ }%
+ \ifHD@savedest
+ \expandafter\ifx\csname HD.\the\c@HD@hypercount\endcsname\@empty
+ \else
+ \let\HD@next\relax
+ \fi
+ \fi
+ \HD@next
+}
+
+\g@addto@macro\CodelineIndex{%
+ \let\special@index\HD@codeline@wrindex
+}
+\g@addto@macro\PageIndex{%
+ \let\special@index\HD@page@wrindex
+}
+
+\def\HD@codeline@wrindex#1{%
+ \begingroup
+ \let\HDorg@encapchar\encapchar
+ \def\encapchar##1\encapchar##2\@nil{%
+ \HDorg@encapchar
+ hdclindex{\the\c@HD@hypercount}{##1}%
+ }%
+ \codeline@wrindex{%
+ #1\encapchar\encapchar\@nil
+ }%
+ \endgroup
+}
+\def\HD@page@wrindex#1{%
+ \begingroup
+ \let\HDorg@encapchar\encapchar
+ \def\encapchar##1\encapchar##2\@nil{%
+ \HDorg@encapchar
+ hdpindex{##1}%
+ }%
+ \HDorg@index{#1\encapchar\encapchar\@nil}%
+ \endgroup
+}
+
+\def\hdclindex#1#2#3{%
+ \csname\ifx\\#2\\relax\else#2\fi\endcsname{%
+ \hyperlink{HD.#1}{#3}%
+ \HD@savedest@add{#1}%
+ }%
+}
+\def\hdpindex#1#2{%
+ \csname\ifx\\#1\\relax\else#1\fi\endcsname{%
+ \hyperpage{#2}%
+ }%
+}
+
+\let\HDorg@PrintDescribeMacro\PrintDescribeMacro
+\renewcommand\PrintDescribeMacro[1]{%
+ \begingroup
+ \let\HDorg@MacroFont\MacroFont
+ \def\MacroFont{%
+ \HD@target
+ \HDorg@MacroFont
+ }%
+ \HDorg@PrintDescribeMacro{#1}%
+ \endgroup
+}
+
+\let\HDorg@PrintMacroName\PrintMacroName
+\renewcommand\PrintMacroName[1]{%
+ \begingroup
+ \let\HDorg@MacroFont\MacroFont
+ \def\MacroFont{%
+ \HD@target
+ \HDorg@MacroFont
+ }%
+ \HDorg@PrintMacroName{#1}%
+ \endgroup
+}
+
+\let\HDorg@theCodelineNo\theCodelineNo
+\renewcommand*\theCodelineNo{%
+ \settowidth{\HD@helplength}{\HDorg@theCodelineNo\ }%
+ \ifdim\HD@helplength<\MacroIndent
+ \addtolength{\HD@helplength}{-\MacroIndent}%
+ \llap{%
+ \begingroup\HD@target\endgroup
+ \hspace*{-\HD@helplength}%
+ }%
+ \else
+ \HD@target
+ \fi
+ \HDorg@theCodelineNo
+}
+
+\AtBeginDocument{%
+ \let\HDorg@index\index
+}
+
+\let\HDorg@SpecialUsageIndex\SpecialUsageIndex
+\renewcommand*\SpecialUsageIndex[1]{%
+ \@bsphack
+ \begingroup
+ \HD@target
+ \let\index\HDorg@index
+ \let\HDorg@encapchar\encapchar
+ \edef\encapchar usage{%
+ \HDorg@encapchar hdclindex{\the\c@HD@hypercount}{usage}%
+ }%
+ \HDorg@SpecialUsageIndex{#1}%
+ \endgroup
+ \@esphack
+}
+
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname autoindex\endcsname\relax
+\else
+ \let\HDorg@autoindex\autoindex
+ \renewcommand*\autoindex[1]{%
+ \@bsphack
+ \begingroup
+ \HD@target
+ \let\index\HDorg@index
+ \let\HDorg@encapchar\encapchar
+ \edef\encapchar usage{%
+ \HDorg@encapchar hdclindex{\the\c@HD@hypercount}{usage}%
+ }%
+ \HDorg@autoindex{#1}%
+ \endgroup
+ \@esphack
+ }
+\fi
+
+\let\HDorg@SpecialEnvIndex\SpecialEnvIndex
+\renewcommand*\SpecialEnvIndex[1]{%
+ \@bsphack
+ \begingroup
+ \HD@target
+ \let\HDorg@encapchar\encapchar
+ \edef\encapchar usage{%
+ \HDorg@encapchar hdclindex{\the\c@HD@hypercount}{usage}%
+ }%
+ \HDorg@SpecialEnvIndex{#1}%
+ \endgroup
+ \@esphack
+}
+
+\let\HDorg@SortIndex\SortIndex
+\renewcommand*{\SortIndex}[2]{%
+ \@bsphack
+ \begingroup
+ \let\index\HD@page@wrindex
+ \HDorg@SortIndex{#1}{#2}%
+ \endgroup
+ \@esphack
+}
+
+
+%%% glossary stuff
+
+\let\HDorg@wrglossary\@wrglossary
+\def\@wrglossary#1{%
+ \let\HDorg@encapchar\encapchar
+ \def\encapchar##1\encapchar##2\@nil{%
+ \HDorg@encapchar
+ hdpindex{##1}%
+ }%
+ \HDorg@wrglossary{#1\encapchar\encapchar\@nil}%
+}
+
+%%% \MacroIndent automatically calculated
+
+\AtEndDocument{%
+ \if@filesw
+ \immediate\write\@auxout{%
+ \noexpand\HD@SetMacroIndent{\number\value{CodelineNo}}%
+ }%
+ \fi
+}
+\def\HD@SetMacroIndent#1{%
+ \begingroup
+ \value{CodelineNo}=#1\relax
+ \settowidth{\MacroIndent}{\HDorg@theCodelineNo\ }%
+ \global\MacroIndent\MacroIndent
+ \endgroup
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/hypdoc.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/hypdoc.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex hypdoc.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% hypdoc.sty & tex/latex/oberdiek/hypdoc.sty\\
+% hypdoc.pdf & doc/latex/oberdiek/hypdoc.pdf\\
+% hypdoc.dtx & source/latex/oberdiek/hypdoc.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk hypdoc.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{hypdoc.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex hypdoc.dtx
+%makeindex -s gind.ist hypdoc.idx
+%pdflatex hypdoc.dtx
+%makeindex -s gind.ist hypdoc.idx
+%pdflatex hypdoc.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2002/05/10 v1.0}
+% \item
+% First standalone version.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.1}
+% \item
+% Option \xoption{numbered} added.
+% \item
+% \cs{HD@savedest@init} fixed (empty \xext{.hd} file triggered
+% first page with fl ligature).
+% \item
+% Bookmarks for \cs{listoffigures} and \cs{listoftables}.
+% \item
+% Documentation: features and usage added.
+% \item
+% LPPL 1.3.
+% \end{Version}
+% \begin{Version}{2006/04/27 v1.2}
+% \item
+% \cs{HD@target} fixed (\xfile{multicol.dtx}).
+% \end{Version}
+% \begin{Version}{2006/06/01 v1.3}
+% \item
+% Support for package \xpackage{amsdtx}'s \cs{autoindex} added.
+% \end{Version}
+% \begin{Version}{2006/06/02 v1.4}
+% \item
+% Bookmark fixed if there are several table of contents,
+% bibliographies, glossaries, \dots
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/ifdraft.dtx b/Master/texmf-dist/source/latex/oberdiek/ifdraft.dtx
new file mode 100644
index 00000000000..d439ebe56e1
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/ifdraft.dtx
@@ -0,0 +1,429 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 1999, 2005, 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file ifdraft.dtx
+% and the derived files
+% ifdraft.sty, ifdraft.pdf, ifdraft.ins, ifdraft.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/ifdraft.dtx
+% CTAN:macros/latex/contrib/oberdiek/ifdraft.pdf
+%
+% Unpacking:
+% (a) If ifdraft.ins is present:
+% tex ifdraft.ins
+% (b) Without ifdraft.ins:
+% tex ifdraft.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{ifdraft.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If ifdraft.drv is present:
+% latex ifdraft.drv
+% (b) Without ifdraft.drv:
+% latex ifdraft.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex ifdraft.dtx
+% makeindex -s gind.ist ifdraft.idx
+% pdflatex ifdraft.dtx
+% makeindex -s gind.ist ifdraft.idx
+% pdflatex ifdraft.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/ifdraft.sty
+% TDS:doc/latex/oberdiek/ifdraft.pdf
+% TDS:source/latex/oberdiek/ifdraft.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: ifdraft 2006/02/20 v1.2 Switch for option draft (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 1999, 2005, 2006 by
+ Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file ifdraft.dtx
+and the derived files
+ ifdraft.sty, ifdraft.pdf, ifdraft.ins, ifdraft.drv.
+
+\endpreamble
+
+\generate{%
+ \file{ifdraft.ins}{\from{ifdraft.dtx}{install}}%
+ \file{ifdraft.drv}{\from{ifdraft.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{ifdraft.sty}{\from{ifdraft.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* ifdraft.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `ifdraft.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{ifdraft.drv}%
+ [2006/02/20 v1.2 Switch for option draft (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{ifdraft.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{43}
+%
+% \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 \~}
+%
+% \GetFileInfo{ifdraft.drv}
+%
+% \title{The \xpackage{ifdraft} package}
+% \date{2006/02/20 v1.2}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% The package provides an interface for selecting code depending
+% on the options \xoption{draft} and \xoption{final}.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Usage}
+%
+% \subsection{Package loading}
+%
+% In order to detect the global class options \xoption{draft}
+% and \xoption{final}, load this package somewhere after
+% \cs{documentclass} without options:
+% \begin{quote}
+% |\usepackage{ifdraft}|
+% \end{quote}
+%
+% \subsection{User macros}
+%
+% \begin{declcs}{ifdraft}\ \M{draft case} \M{final case}\\
+% \SpecialUsageIndex{\ifoptiondraft}^^A
+% \cs{ifoptiondraft}\ \M{option draft is given}\ ^^A
+% \M{option draft is not given}\\
+% \SpecialUsageIndex{\ifoptionfinal}^^A
+% \cs{ifoptionfinal}\ \M{option final is given}\ ^^A
+% \M{option final is not given}
+% \end{declcs}
+% If none of the options \xoption{draft} or \xoption{final} is used,
+% then this package assumes \xoption{final} as default setting
+% for \cs{ifdraft}. All classes that are known to me behave this way.
+% (Otherwise you can find out with
+% \cs{ifoptiondraft} and \cs{ifoptionfinal}, whether none of
+% the options is set.)
+%
+% If either \xoption{draft} or \xoption{final} is used, \cs{ifdraft} is
+% sufficient to distinguish between these cases.
+%
+% Both options \xoption{draft} and \xoption{final} should not be used
+% at the same time. This is contradictionary input.
+% Which option is more important? The result is
+% unpredictable in general:
+% \begin{itemize}
+% \item
+% \xclass{article}, \xclass{report}, \xclass{book},
+% \xclass{scrartcl}, \xclass{scrreprt}, \xclass{scrbook}:\\
+% \xoption{draft}, \xoption{final}
+% $\rightarrow$ \xoption{final} is effective.\\
+% \xoption{final}, \xoption{draft}
+% $\rightarrow$ \xoption{final} is effective.\\
+% $\Rightarrow$ \xoption{final} wins, if given.
+% \item
+% \xclass{memoir}:\\
+% \xoption{draft}, \xoption{final}
+% $\rightarrow$ \xoption{draft} is effective.\\
+% \xoption{final}, \xoption{draft}
+% $\rightarrow$ \xoption{draft} is effective.\\
+% $\Rightarrow$ \xoption{draft} wins if given.
+% \end{itemize}
+% 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:
+% \begin{itemize}
+% \item
+% \xpackage{ifdraft}:\\
+% \xoption{draft}, \xoption{final}
+% $\rightarrow$ \cs{ifdraft} selects \xoption{final} clause.\\
+% \xoption{final}, \xoption{draft}
+% $\rightarrow$ \cs{ifdraft} selects \xoption{draft} clause.\\
+% $\Rightarrow$ latest given option wins.
+% \end{itemize}
+% Thus you know with \cs{ifdraft} the latest given option
+% and you can emulate the behaviour of the different
+% classes with the help of \cs{ifoptiondraft} and
+% \cs{ifoptionfinal}.
+%
+% Summary: \cs{ifdraft} is sufficient to deal with the
+% normal use cases: one or none out of \xoption{draft} and \xoption{final}.
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ifdraft}%
+ [2006/02/20 v1.2 Switch for option draft (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newif\if@draft
+\newif\if@option@draft
+\newif\if@option@final
+\DeclareOption{draft}{%
+ \@drafttrue
+ \@option@drafttrue
+}
+\DeclareOption{final}{%
+ \@draftfalse
+ \@option@finaltrue
+}
+\ProcessOptions*\relax
+% \end{macrocode}
+% \begin{macro}{\ifdraft}
+% \begin{macrocode}
+\newcommand*{\ifdraft}{%
+ \if@draft
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ifoptiondraft}
+% \begin{macrocode}
+\newcommand*{\ifoptiondraft}{%
+ \if@option@draft
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ifoptionfinal}
+% \begin{macrocode}
+\newcommand*{\ifoptionfinal}{%
+ \if@option@final
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/ifdraft.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/ifdraft.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex ifdraft.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% ifdraft.sty & tex/latex/oberdiek/ifdraft.sty\\
+% ifdraft.pdf & doc/latex/oberdiek/ifdraft.pdf\\
+% ifdraft.dtx & source/latex/oberdiek/ifdraft.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk ifdraft.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{ifdraft.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex ifdraft.dtx
+%makeindex -s gind.ist ifdraft.idx
+%pdflatex ifdraft.dtx
+%makeindex -s gind.ist ifdraft.idx
+%pdflatex ifdraft.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{1999/12/28 v1.0}
+% \item
+% First public release.
+% \item
+% LPPL 1.1
+% \end{Version}
+% \begin{Version}{2005/10/05 v1.1}
+% \item
+% \cs{ifoptiondraft} and \cs{ifoptionfinal} added.
+% \item
+% \cs{ProcessOptions} changed to \cs{ProcessOptions*}.
+% (Order of given class options matters instead
+% of the order of option declaration in this
+% package.)
+% \item
+% LPPL 1.3
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.2}
+% \item
+% DTX framework.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/ifpdf.dtx b/Master/texmf-dist/source/latex/oberdiek/ifpdf.dtx
new file mode 100644
index 00000000000..29bc07f5267
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/ifpdf.dtx
@@ -0,0 +1,569 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2001, 2005, 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file ifpdf.dtx
+% and the derived files
+% ifpdf.sty, ifpdf.pdf, ifpdf.ins, ifpdf.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/ifpdf.dtx
+% CTAN:macros/latex/contrib/oberdiek/ifpdf.pdf
+%
+% Unpacking:
+% (a) If ifpdf.ins is present:
+% tex ifpdf.ins
+% (b) Without ifpdf.ins:
+% tex ifpdf.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{ifpdf.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If ifpdf.drv is present:
+% latex ifpdf.drv
+% (b) Without ifpdf.drv:
+% latex ifpdf.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex ifpdf.dtx
+% makeindex -s gind.ist ifpdf.idx
+% pdflatex ifpdf.dtx
+% makeindex -s gind.ist ifpdf.idx
+% pdflatex ifpdf.dtx
+%
+% Installation:
+% TDS:tex/generic/oberdiek/ifpdf.sty
+% TDS:doc/latex/oberdiek/ifpdf.pdf
+% TDS:source/latex/oberdiek/ifpdf.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: ifpdf 2006/02/20 v1.4 Provides the ifpdf switch (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2001, 2005, 2006 by
+ Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file ifpdf.dtx
+and the derived files
+ ifpdf.sty, ifpdf.pdf, ifpdf.ins, ifpdf.drv.
+
+\endpreamble
+
+\generate{%
+ \file{ifpdf.ins}{\from{ifpdf.dtx}{install}}%
+ \file{ifpdf.drv}{\from{ifpdf.dtx}{driver}}%
+ \usedir{tex/generic/oberdiek}%
+ \file{ifpdf.sty}{\from{ifpdf.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* ifpdf.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `ifpdf.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{ifpdf.drv}%
+ [2006/02/20 v1.4 Provides the ifpdf switch (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{ifpdf.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{156}
+%
+% \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 \~}
+%
+% \GetFileInfo{ifpdf.drv}
+%
+% \title{The \xpackage{ifpdf} package}
+% \date{2006/02/20 v1.4}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package looks for pdfTeX in pdf mode and
+% implements and sets the switch \cs{ifpdf}.
+% The detection is based on \cs{pdfoutput} and
+% the package will not change this value.
+% It works with plain or LaTeX formats.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \hypersetup{bookmarksopenlevel=2}
+% \section{Documentation}
+%
+% \subsection{Introduction}
+%
+% It is commonly known that H\`an Th\^e Th\`anh's \pdfTeX\ generates
+% PDF output directly and many people uses \pdfTeX\ for this purpose.
+% However the DVI output was never thrown away. In contrary, he
+% new features for typesetting that works in both PDF and DVI mode.
+%
+% In the meantime many \TeX\ distributions replace the traditional
+% \TeX\ binary with \pdfTeX. Then, for example, called as |latex|
+% \pdfTeX\ works in DVI mode with the \LaTeX\ format preloaded,
+% called as |pdflatex| \pdfTeX\ starts in PDF mode.
+%
+% Often packages or users want to know, whether the current document
+% is typset by \pdfTeX\ in PDF mode, because the different modes
+% have different capabilities (color setting, graphics inclusion,
+% \dots). For this purpose \pdfTeX's
+% \cs{pdfoutput} can be asked.
+%
+% As regulary reader of \TeX\ newsgroups and mailing lists I could
+% observe many problems with this task. Common errors are:
+% \begin{itemize}
+% \item
+% \pdfTeX\ has \emph{two} modes. Using \pdfTeX\ does not mean
+% that the user always want to have PDF mode. For example, the
+% PostScript support is better in DVI mode in conjunction with a
+% PostScript aware DVI driver (e.g. dvips). Also the additional
+% typesetting features are mode independent and also available
+% in DVI mode.
+% \item
+% \LaTeX's \cs{@ifundefined} inherited the side effect from
+% \cs{csname}. Unknown commands are defined with the meaning
+% of \cs{relax}. If it is checked, whether \cs{pdfoutput} is
+% defined, then this should not be forgotten.
+% \item
+% Having \cs{pdfoutput} does not automatically mean PDF mode.
+% Also the value of \cs{pdfoutput} must be asked.
+% \item
+% \cs{pdfoutput} must not be destroyed in some way. Later
+% code and packages are fooled then and will perhaps make
+% wrong decisions. For example they may drop support for
+% PDF mode, because they do not know that \pdfTeX\ is
+% running at all.
+% \end{itemize}
+%
+% Robin Fairbairns provides an entry for this topic in his
+% excellent FAQ (\url{http://www.tex.ac.uk/faq}):
+% \href{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=ifpdf}^^A
+% {Am I using PDFTeX?}
+%
+% \subsection{Usage}
+%
+% The package \xpackage{ifpdf} can be used with both \plainTeX\
+% and \LaTeX:
+% \begin{description}
+% \item[\plainTeX:] |\input ifpdf.sty|
+% \item[\LaTeXe:] |\usepackage{ifpdf}|\\
+% \end{description}
+%
+% \DescribeMacro{\ifpdf}
+% The package provides the switch \cs{ifpdf}:
+% \begin{quote}
+% |\ifpdf|\\
+% \hspace{1.5em}\dots\ do things, if \pdfTeX\ is running in pdf mode \dots\\
+% |\else|\\
+% \hspace{1.5em}\dots\ other \TeX\ or \pdfTeX\ in dvi mode \dots\\
+% |\fi|
+% \end{quote}
+% Users of the package \xpackage{ifthen} can use the switch as boolean:
+% \begin{quote}
+% |\boolean{ifpdf}|
+% \end{quote}
+% The package can also be used to set global
+% documentclass options:
+% \begin{quote}
+% |\RequirePackage{ifpdf}|\\
+% |\ifpdf|\\
+% \hspace{1.5em}|\documentclass[pdftex,|\dots|]{|\dots|}|\\
+% |\else|\\
+% \hspace{1.5em}|\documentclass[|\dots|]{|\dots|}|\\
+% |\fi|
+% \end{quote}
+%
+% \subsection{Specification}
+%
+% The package have the following properties:
+% \begin{itemize}
+% \item It asks the setting of \cs{pdfoutput} for detecting
+% \pdfTeX\ in PDF mode.
+% \item It never changes \cs{pdfoutput}.
+% \item It can be used with many formats including
+% \plainTeX\ and \LaTeX.
+% \end{itemize}
+% The mode detection implements the following algorithm:
+% \begin{quote}
+% \def\={${:}{=}$}
+% \def\>{\null\qquad\ignorespaces}
+% \def\comment#1{^^A
+% \textrm{\itshape\% #1}^^A
+% }
+% \sffamily
+% if undefined(\cs{pdfoutput})\\
+% \> \cs{ifpdf} \= \cs{iffalse} \comment{\pdfTeX is not running}\\
+% else\\
+% \> if \cs{pdfoutput} $\leq$ 0\\
+% \>\> \cs{ifpdf} \= \cs{iffalse} \comment{\pdfTeX\ in DVI mode}\\
+% \> else\\
+% \>\> \cs{ifpdf} \= \cs{iftrue} \comment{\pdfTeX\ in PDF mode}\\
+% \> fi\\
+% fi
+% \end{quote}
+% The function \textsf{undefined} checks both cases, undefined command
+% and \cs{relax}.
+%
+% \subsection{Future}
+%
+% Currently the package can be fooled, by redefining/undefining
+% \cs{pdfoutput}. Therefore the package will use the \cs{primitive}
+% feature that is discussed currently on the \pdfTeX\ developer
+% list (2006), if it hits a stable release. Of course the package
+% will then remain usable with older \pdfTeX\ versions as usual.
+%
+% \hypersetup{bookmarksopenlevel=1}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \subsection{Reload check and package identification}
+% Reload check, especially if the package is not used with \LaTeX.
+% \begin{macrocode}
+\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
+% \end{macrocode}
+% Package identification:
+% \begin{macrocode}
+\begingroup
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@ifpdf.sty\endcsname
+\ProvidesPackage{ifpdf}%
+ [2006/02/20 v1.4 Provides the ifpdf switch (HO)]
+% \end{macrocode}
+%
+% \subsection{Check for previously defined \cs{ifpdf}}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsection{\cs{ifpdf}}
+%
+% \begin{macro}{\ifpdf}
+% Create and set the switch. \cs{newif} initializes the
+% switch with \cs{iffalse}.
+% \begin{macrocode}
+\newif\ifpdf
+% \end{macrocode}
+% Test \cs{pdfoutput}. Is it defined and different from
+% \cs{relax}? Someone could have used \LaTeX\ internal
+% \cs{@ifundefined}, or something else involving.
+% Notice, \cs{csname} is executed inside a group for the test
+% to cancel the side effect of \cs{csname}.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdfoutput\endcsname\relax
+\else
+ \ifnum\pdfoutput<1 %
+% \end{macrocode}
+% \cs{pdfoutput}|=0| or negative, so not generating pdf.
+% \begin{macrocode}
+ \else
+ \pdftrue
+ \fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Protocol entry}
+%
+% Log comment:
+% \begin{macrocode}
+\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
+% \end{macrocode}
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/ifpdf.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/ifpdf.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex ifpdf.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% ifpdf.sty & tex/generic/oberdiek/ifpdf.sty\\
+% ifpdf.pdf & doc/latex/oberdiek/ifpdf.pdf\\
+% ifpdf.dtx & source/latex/oberdiek/ifpdf.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk ifpdf.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{ifpdf.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex ifpdf.dtx
+%makeindex -s gind.ist ifpdf.idx
+%pdflatex ifpdf.dtx
+%makeindex -s gind.ist ifpdf.idx
+%pdflatex ifpdf.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2001/06/14 v1.0}
+% \item
+% First public version,
+% \end{Version}
+% \begin{Version}{2001/07/14 v1.1}
+% \item
+% Documentation addition: global options
+% \end{Version}
+% \begin{Version}{2001/09/26 v1.2}
+% \item
+% Documentation typo corrected.
+% \item
+% Version number corrected.
+% \item
+% Line number in log entry removed.
+% \end{Version}
+% \begin{Version}{2005/07/22 v1.3}
+% \item
+% Some source code comments from Robin Fairbairns added.
+% \item
+% Bug fix for negative values of \cs{pdfoutput}
+% (Oleg Katsitadze)
+% \item
+% LPPL 1.3
+% \item
+% Installation section with locations added.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.4}
+% \item
+% DTX framework.
+% \item
+% More robust check in case of undefined \cs{pdfoutput}.
+% \item
+% Extended documentation.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/ifvtex.dtx b/Master/texmf-dist/source/latex/oberdiek/ifvtex.dtx
new file mode 100644
index 00000000000..62554aeaa77
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/ifvtex.dtx
@@ -0,0 +1,491 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2001, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file ifvtex.dtx
+% and the derived files
+% ifvtex.sty, ifvtex.pdf, ifvtex.ins, ifvtex.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/ifvtex.dtx
+% CTAN:macros/latex/contrib/oberdiek/ifvtex.pdf
+%
+% Unpacking:
+% (a) If ifvtex.ins is present:
+% tex ifvtex.ins
+% (b) Without ifvtex.ins:
+% tex ifvtex.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{ifvtex.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If ifvtex.drv is present:
+% latex ifvtex.drv
+% (b) Without ifvtex.drv:
+% latex ifvtex.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex ifvtex.dtx
+% makeindex -s gind.ist ifvtex.idx
+% pdflatex ifvtex.dtx
+% makeindex -s gind.ist ifvtex.idx
+% pdflatex ifvtex.dtx
+%
+% Installation:
+% TDS:tex/generic/oberdiek/ifvtex.sty
+% TDS:doc/latex/oberdiek/ifvtex.pdf
+% TDS:source/latex/oberdiek/ifvtex.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: ifvtex 2006/02/20 v1.1 Provides the ifpdf switch (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2001, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file ifvtex.dtx
+and the derived files
+ ifvtex.sty, ifvtex.pdf, ifvtex.ins, ifvtex.drv.
+
+\endpreamble
+
+\generate{%
+ \file{ifvtex.ins}{\from{ifvtex.dtx}{install}}%
+ \file{ifvtex.drv}{\from{ifvtex.dtx}{driver}}%
+ \usedir{tex/generic/oberdiek}%
+ \file{ifvtex.sty}{\from{ifvtex.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* ifvtex.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `ifvtex.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{ifvtex.drv}%
+ [2006/02/20 v1.1 Provides the ifpdf switch (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{ifvtex.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{224}
+%
+% \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 \~}
+%
+% \GetFileInfo{ifvtex.drv}
+%
+% \title{The \xpackage{ifvtex} package}
+% \date{2006/02/20 v1.1}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package looks for \VTeX, implements
+% and sets the switches \cs{ifvtex}, \cs{ifvtex}\texttt{\meta{mode}},
+% \cs{ifvtexgex}. It works with plain or \LaTeX\ formats.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Usage}
+%
+% The package \xpackage{ifvtex} can be used with both \plainTeX\
+% and \LaTeX:
+% \begin{description}
+% \item[\plainTeX:] |\input ifvtex.sty|
+% \item[\LaTeXe:] |\usepackage{ifvtex}|\\
+% \end{description}
+%
+% The package implements switches for \VTeX\ and its different
+% modes and interprets \cs{VTeXversion}, \cs{OpMode}, and \cs{gexmode}.
+%
+% \begin{declcs}{ifvtex}
+% \end{declcs}
+% The package provides the switch \cs{ifvtex}:
+% \begin{quote}
+% |\ifvtex|\\
+% \hspace{1.5em}\dots\ do things, if \VTeX\ is running \dots\\
+% |\else|\\
+% \hspace{1.5em}\dots\ other \TeX\ compiler \dots\\
+% |\fi|
+% \end{quote}
+% Users of the package \xpackage{ifthen} can use the switch as boolean:
+% \begin{quote}
+% |\boolean{ifvtex}|
+% \end{quote}
+%
+% \begin{declcs}{ifvtexdvi}\\
+% \cs{ifvtexpdf}\SpecialUsageIndex{\ifvtexpdf}\\
+% \cs{ifvtexps}\SpecialUsageIndex{\ifvtexps}\\
+% \cs{ifvtexhtml}\SpecialUsageIndex{\ifvtexhtml}
+% \end{declcs}
+% \VTeX\ knows different output modes that can be asked by these
+% switches.
+%
+% \begin{declcs}{ifvtexgex}
+% \end{declcs}
+% This switch shows, whether GeX is available.
+%
+% \StopEventually{
+% }
+%
+% \section{Implemenation}
+%
+% \subsection{Reload check and package identification}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Reload check, especially if the package is not used with \LaTeX.
+% \begin{macrocode}
+\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
+% \end{macrocode}
+% Package identification:
+% \begin{macrocode}
+\begingroup
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@ifvtex.sty\endcsname
+\ProvidesPackage{ifvtex}%
+ [2006/02/20 v1.1 Provides the ifpdf switch (HO)]
+% \end{macrocode}
+%
+%
+% \subsection{Check for previously defined \cs{ifvtex}}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsection{\cs{ifvtex}}
+%
+% \begin{macro}{\ifvtex}
+% Create and set the switch. \cs{newif} initializes the
+% switch with \cs{iffalse}.
+% \begin{macrocode}
+\newif\ifvtex
+% \end{macrocode}
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname VTeXversion\endcsname\relax
+\else
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname OpMOde\endcsname\relax
+ \else
+ \vtextrue
+ \fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Mode and GeX switches}
+%
+% \begin{macrocode}
+\newif\ifvtexdvi
+\newif\ifvtexpdf
+\newif\ifvtexps
+\newif\ifvtexhtml
+\newif\ifvtexgex
+\ifvtex
+ \ifcase\OpMode\relax
+ \vtexdvitrue
+ \or % 1
+ \vtexpdftrue
+ \or % 2
+ \vtexpstrue
+ \or % 3
+ \vtexpstrue
+ \or\or\or\or\or\or\or % 10
+ \vtexhtmltrue
+ \fi
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname gexmode\endcsname\relax
+ \else
+ \ifnum\gexmode>0 %
+ \vtexgextrue
+ \fi
+ \fi
+\fi
+% \end{macrocode}
+%
+% \subsection{Protocol entry}
+%
+% Log comment:
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/ifvtex.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/ifvtex.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex ifvtex.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% ifvtex.sty & tex/generic/oberdiek/ifvtex.sty\\
+% ifvtex.pdf & doc/latex/oberdiek/ifvtex.pdf\\
+% ifvtex.dtx & source/latex/oberdiek/ifvtex.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk ifvtex.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{ifvtex.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex ifvtex.dtx
+%makeindex -s gind.ist ifvtex.idx
+%pdflatex ifvtex.dtx
+%makeindex -s gind.ist ifvtex.idx
+%pdflatex ifvtex.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2001/09/26 v1.0}
+% \item
+% First public version.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.1}
+% \item
+% DTX framework.
+% \item
+% Undefined tests changed.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/inputenx.dtx b/Master/texmf-dist/source/latex/oberdiek/inputenx.dtx
new file mode 100644
index 00000000000..c5a5022ed0d
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/inputenx.dtx
@@ -0,0 +1,8587 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file inputenx.dtx
+% and the derived files
+% inputenx.sty, inputenx.pdf, inputenx.ins, inputenx.drv,
+% ix-alias.def, ix-math.def, ix-name.def, ix-slot.def,
+% ix-uc.def, ix-utf8enc.dfu, x-ascii.def, x-iso-8859-1.def,
+% x-iso-8859-2.def, x-iso-8859-3.def, x-iso-8859-4.def,
+% x-iso-8859-9.def, x-iso-8859-10.def, x-iso-8859-13.def,
+% x-iso-8859-14.def, x-iso-8859-15.def, x-iso-8859-16.def,
+% x-cp437.def, x-cp850.def, x-cp852.def, x-cp858.def,
+% x-cp865.def, x-cp1250.def, x-cp1252.def, x-cp1257.def,
+% x-mac-roman.def, x-mac-ce.def, x-nextstep.def,
+% x-dec-mcs.def, inputenx-licrcmds.txt, inputenx-utf8enc.txt.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/inputenx.dtx
+% CTAN:macros/latex/contrib/oberdiek/inputenx.pdf
+%
+% Unpacking:
+% (a) If inputenx.ins is present:
+% tex inputenx.ins
+% (b) Without inputenx.ins:
+% tex inputenx.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{inputenx.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If inputenx.drv is present:
+% latex inputenx.drv
+% (b) Without inputenx.drv:
+% latex inputenx.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex inputenx.dtx
+% makeindex -s gind.ist inputenx.idx
+% pdflatex inputenx.dtx
+% makeindex -s gind.ist inputenx.idx
+% pdflatex inputenx.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/inputenx.sty
+% TDS:tex/latex/oberdiek/ix-alias.def
+% TDS:tex/latex/oberdiek/ix-math.def
+% TDS:tex/latex/oberdiek/ix-name.def
+% TDS:tex/latex/oberdiek/ix-slot.def
+% TDS:tex/latex/oberdiek/ix-uc.def
+% TDS:tex/latex/oberdiek/ix-utf8enc.dfu
+% TDS:tex/latex/oberdiek/x-ascii.def
+% TDS:tex/latex/oberdiek/x-iso-8859-1.def
+% TDS:tex/latex/oberdiek/x-iso-8859-2.def
+% TDS:tex/latex/oberdiek/x-iso-8859-3.def
+% TDS:tex/latex/oberdiek/x-iso-8859-4.def
+% TDS:tex/latex/oberdiek/x-iso-8859-9.def
+% TDS:tex/latex/oberdiek/x-iso-8859-10.def
+% TDS:tex/latex/oberdiek/x-iso-8859-13.def
+% TDS:tex/latex/oberdiek/x-iso-8859-14.def
+% TDS:tex/latex/oberdiek/x-iso-8859-15.def
+% TDS:tex/latex/oberdiek/x-iso-8859-16.def
+% TDS:tex/latex/oberdiek/x-cp437.def
+% TDS:tex/latex/oberdiek/x-cp850.def
+% TDS:tex/latex/oberdiek/x-cp852.def
+% TDS:tex/latex/oberdiek/x-cp858.def
+% TDS:tex/latex/oberdiek/x-cp865.def
+% TDS:tex/latex/oberdiek/x-cp1250.def
+% TDS:tex/latex/oberdiek/x-cp1252.def
+% TDS:tex/latex/oberdiek/x-cp1257.def
+% TDS:tex/latex/oberdiek/x-mac-roman.def
+% TDS:tex/latex/oberdiek/x-mac-ce.def
+% TDS:tex/latex/oberdiek/x-nextstep.def
+% TDS:tex/latex/oberdiek/x-dec-mcs.def
+% TDS:doc/latex/oberdiek/inputenx.pdf
+% TDS:doc/latex/oberdiek/inputenx-licrcmds.txt
+% TDS:doc/latex/oberdiek/inputenx-utf8enc.txt
+% TDS:source/latex/oberdiek/inputenx.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: inputenx 2006/08/24 v1.0 Enhanced input encoding handling (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file inputenx.dtx
+and the derived files
+ inputenx.sty, inputenx.pdf, inputenx.ins, inputenx.drv,
+ ix-alias.def, ix-math.def, ix-name.def, ix-slot.def,
+ ix-uc.def, ix-utf8enc.dfu, x-ascii.def, x-iso-8859-1.def,
+ x-iso-8859-2.def, x-iso-8859-3.def, x-iso-8859-4.def,
+ x-iso-8859-9.def, x-iso-8859-10.def, x-iso-8859-13.def,
+ x-iso-8859-14.def, x-iso-8859-15.def, x-iso-8859-16.def,
+ x-cp437.def, x-cp850.def, x-cp852.def, x-cp858.def,
+ x-cp865.def, x-cp1250.def, x-cp1252.def, x-cp1257.def,
+ x-mac-roman.def, x-mac-ce.def, x-nextstep.def,
+ x-dec-mcs.def, inputenx-licrcmds.txt, inputenx-utf8enc.txt.
+
+\endpreamble
+
+\generate{%
+ \file{inputenx.ins}{\from{inputenx.dtx}{install}}%
+ \file{inputenx.drv}{\from{inputenx.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{inputenx.sty}{\from{inputenx.dtx}{package}}%
+ \file{ix-alias.def}{\from{inputenx.dtx}{alias}}%
+ \file{ix-math.def}{\from{inputenx.dtx}{math}}%
+ \file{ix-name.def}{\from{inputenx.dtx}{name}}%
+ \file{ix-slot.def}{\from{inputenx.dtx}{slot}}%
+ \file{ix-uc.def}{\from{inputenx.dtx}{uc}}%
+ \file{ix-utf8enc.dfu}{\from{inputenx.dtx}{dfu}}%
+ \file{x-ascii.def}{\from{inputenx.dtx}{ascii}}%
+ \file{x-iso-8859-1.def}{\from{inputenx.dtx}{iso-8859-1}}%
+ \file{x-iso-8859-2.def}{\from{inputenx.dtx}{iso-8859-2}}%
+ \file{x-iso-8859-3.def}{\from{inputenx.dtx}{iso-8859-3}}%
+ \file{x-iso-8859-4.def}{\from{inputenx.dtx}{iso-8859-4}}%
+ \file{x-iso-8859-9.def}{\from{inputenx.dtx}{iso-8859-9}}%
+ \file{x-iso-8859-10.def}{\from{inputenx.dtx}{iso-8859-10}}%
+ \file{x-iso-8859-13.def}{\from{inputenx.dtx}{iso-8859-13}}%
+ \file{x-iso-8859-14.def}{\from{inputenx.dtx}{iso-8859-14}}%
+ \file{x-iso-8859-15.def}{\from{inputenx.dtx}{iso-8859-15}}%
+ \file{x-iso-8859-16.def}{\from{inputenx.dtx}{iso-8859-16}}%
+ \file{x-cp437.def}{\from{inputenx.dtx}{cp437}}%
+ \file{x-cp850.def}{\from{inputenx.dtx}{cp850}}%
+ \file{x-cp852.def}{\from{inputenx.dtx}{cp852}}%
+ \file{x-cp858.def}{\from{inputenx.dtx}{cp858}}%
+ \file{x-cp865.def}{\from{inputenx.dtx}{cp865}}%
+ \file{x-cp1250.def}{\from{inputenx.dtx}{cp1250}}%
+ \file{x-cp1252.def}{\from{inputenx.dtx}{cp1252}}%
+ \file{x-cp1257.def}{\from{inputenx.dtx}{cp1257}}%
+ \file{x-mac-roman.def}{\from{inputenx.dtx}{mac-roman}}%
+ \file{x-mac-ce.def}{\from{inputenx.dtx}{mac-ce}}%
+ \file{x-nextstep.def}{\from{inputenx.dtx}{nextstep}}%
+ \file{x-dec-mcs.def}{\from{inputenx.dtx}{dec-mcs}}%
+ \usedir{doc/latex/oberdiek}%
+ \file{inputenx-licrcmds.txt}{\from{inputenx.dtx}{licrcmds}}%
+ \file{inputenx-utf8enc.txt}{\from{inputenx.dtx}{dfudoc}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* inputenx.sty, ix-alias.def, ix-math.def, ix-name.def,}
+\Msg{* ix-slot.def, ix-uc.def, ix-utf8enc.dfu, x-ascii.def,}
+\Msg{* x-iso-8859-1.def, x-iso-8859-2.def, x-iso-8859-3.def,}
+\Msg{* x-iso-8859-4.def, x-iso-8859-9.def, x-iso-8859-10.def,}
+\Msg{* x-iso-8859-13.def, x-iso-8859-14.def, x-iso-8859-15.def,}
+\Msg{* x-iso-8859-16.def, x-cp437.def, x-cp850.def, x-cp852.def,}
+\Msg{* x-cp858.def, x-cp865.def, x-cp1250.def, x-cp1252.def,}
+\Msg{* x-cp1257.def, x-mac-roman.def, x-mac-ce.def, x-nextstep.def,}
+\Msg{* x-dec-mcs.def}
+\Msg{*}
+\Msg{* To produce the documentation run the file `inputenx.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{inputenx.drv}%
+ [2006/08/24 v1.0 Enhanced input encoding handling (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\usepackage{longtable}
+\begin{document}
+ \DocInput{inputenx.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{7200}
+%
+% \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 \~}
+%
+% \GetFileInfo{inputenx.drv}
+%
+% \title{The \xpackage{inputenx} package}
+% \date{2006/08/24 v1.0}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package deals with input encodings. The first stage
+% is already available. It provides input encodings using
+% standard mappings and covers nearly all slots. Thus it
+% serves as more uptodate replacement for package \xpackage{inputenc}.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% This project is unfinished. The main goal is to have a package
+% that allows the selection and defining input encodings by the
+% characters in question itself. Then the whole TeX file could
+% transparently be recoded without changing the specification of
+% the input encoding.
+%
+% However, the first stage is already available. Here the encoding
+% tables are build with mappings to Unicode.
+%
+% \subsection{Definition files}
+%
+% The input encoding definition files are prefixed with \verb|x-|
+% to distinguish them from the names package \xpackage{inputenc} uses.
+% The definition files of \xpackage{inputenx} may also be used
+% by package \xpackage{inputenc}, eg.:
+% \begin{quote}
+% \verb|\usepackage[x-iso-8859-1]{inputenc}|
+% \end{quote}
+% As option for package \xpackage{inputenx} the prefix may be dropped:
+% \begin{quote}
+% \verb|\usepackage[iso-8859-1]{inputenx}|
+% \end{quote}
+% The following definition files are available. The second column
+% lists alternative option names for \xpackage{inputenx}:
+% \begin{longtable}{@{}lll@{}}
+% \xfile{x-ascii.def} & \xoption{ascii}, \xoption{us-ascii} & ASCII encoding, 8bit characters disabled\\
+% \xfile{x-cp437.def} & \xoption{cp437}, \xoption{cp437de} & Code page 437\\
+% \xfile{x-cp850.def} & \xoption{cp850} & Code page 850\\
+% \xfile{x-cp852.def} & \xoption{cp852} & Code page 852\\
+% \xfile{x-cp858.def} & \xoption{cp858} & Code page 858\\
+% \xfile{x-cp865.def} & \xoption{cp865} & Code page 865\\
+% \xfile{x-cp1250.def} & \xoption{cp1250} & Code page 1250\\
+% \xfile{x-cp1252.def} & \xoption{cp1252}, \xoption{ansinew} & Code page 1252\\
+% \xfile{x-cp1257.def} & \xoption{cp1257} & Code page 1257\\
+% \xfile{x-dec-mcs.def} & \xoption{dec-mcs}, \xoption{decmulti} & DEC Multinational\\
+% \xfile{x-iso-8859-1.def} & \xoption{iso-8859-1}, \xoption{latin1} & ISO-8859-1\\
+% \xfile{x-iso-8859-2.def} & \xoption{iso-8859-2}, \xoption{latin2} & ISO-8859-2\\
+% \xfile{x-iso-8859-3.def} & \xoption{iso-8859-3}, \xoption{latin3} & ISO-8859-3\\
+% \xfile{x-iso-8859-4.def} & \xoption{iso-8859-4}, \xoption{latin4} & ISO-8859-4\\
+% \xfile{x-iso-8859-9.def} & \xoption{iso-8859-9}, \xoption{latin5} & ISO-8859-9\\
+% \xfile{x-iso-8859-10.def} & \xoption{iso-8859-10}, \xoption{latin6} & ISO-8859-10\\
+% \xfile{x-iso-8859-13.def} & \xoption{iso-8859-13}, \xoption{latin7} & ISO-8859-13\\
+% \xfile{x-iso-8859-14.def} & \xoption{iso-8859-14}, \xoption{latin8} & ISO-8859-14\\
+% \xfile{x-iso-8859-15.def} & \xoption{iso-8859-15}, \xoption{latin9} & ISO-8859-15\\
+% \xfile{x-iso-8859-16.def} & \xoption{iso-8859-16}, \xoption{latin10} & ISO-8859-16\\
+% \xfile{x-mac-ce.def} & \xoption{mac-ce}, \xoption{macce} & MAC OS Central European\\
+% \xfile{x-mac-roman.def} & \xoption{mac-roman}, \xoption{applemac} & MAC OS Roman\\
+% \xfile{x-nextstep} & \xoption{nextstep}, \xoption{next} & NextStep Encoding\\
+% \end{longtable}
+%
+% Also the box drawings characters of some older DOS code pages
+% (cp437, cp850, cp852, cp858, cp865) can be used.
+% They are provided by package \xpackage{pmboxdraw}.
+%
+% For the following characters I didn't find suitable LICR (\LaTeX\ Internal
+% Character Representation):
+% \begin{quote}
+%\begin{verbatim}
+%\DeclareUnicodeCharacter{2015}{}
+% % HORIZONTAL BAR
+% % QUOTATION DASH
+% % iso-8859-10[0xBD/189]
+%
+%\DeclareUnicodeCharacter{2017}{}
+% % DOUBLE LOW LINE
+% % SPACING DOUBLE UNDERSCORE
+% % cp850[0xF2/242] cp858[0xF2/242]
+%
+%\DeclareUnicodeCharacter{2310}{}
+% % REVERSED NOT SIGN
+% % cp437[0xA9/169] cp865[0xA9/169]
+%
+%\DeclareUnicodeCharacter{2320}{}
+% % TOP HALF INTEGRAL
+% % cp437[0xF4/244] cp865[0xF4/244]
+%
+%\DeclareUnicodeCharacter{2321}{}
+% % BOTTOM HALF INTEGRAL
+% % cp437[0xF5/245] cp865[0xF5/245]
+%
+%\DeclareUnicodeCharacter{F8FF}{}
+% % <Private Use, Last>
+% % mac-roman[0xF0/240]
+%\end{verbatim}
+% \end{quote}
+%
+% \subsection{Unicode}
+%
+% File \xfile{ix-utf8enc.dfu} provides additions to \xpackage{inputenc}'s
+% file \xfile{utf8enc.dfu}.
+%
+% \subsection{Math}
+%
+% The current philosophy of \LaTeX/package \xpackage{inputenc} is not to
+% declare characters for math only. Instead there is a experimental
+% package \xpackage{inpmath} that extends package \xpackage{inputenc},
+% to change the behaviour of input characters if used in math mode.
+% File \xfile{ix-math.def} provides some definitions of math characters.
+%
+% \subsection{ToDo}
+%
+% \begin{itemize}
+% \item Implementing the remaining main features.
+% \item Documentation.
+% \end{itemize}
+%
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Identification}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{inputenx}%
+ [2006/08/24 v1.0 Enhanced input encoding handling (HO)]
+% \end{macrocode}
+%
+% \subsection{Encoding names}
+%
+% \subsubsection{Record current encoding names}
+%
+% \begin{macro}{\CurrentInputEncodingName}
+% \begin{macrocode}
+\providecommand*{\CurrentInputEncodingName}{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\CurrentInputEncodingOption}
+% \begin{macrocode}
+\providecommand*{\CurrentInputEncodingOption}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Aliases for encoding names}
+%
+% \begin{macrocode}
+\def\IEX@LookupEncoding#1{%
+ \edef\CurrentInputEncodingName{#1}%
+ \@onelevel@sanitize\CurrentInputEncodingName
+ \let\CurrentInputEncodingOption\@empty
+ \@ifundefined{IEX@enc@\CurrentInputEncodingName}{%
+ \global\expandafter\let
+ \csname IEX@enc@\CurrentInputEncodingName\endcsname
+ \CurrentInputEncodingName
+ \IEX@DoLookup
+ }{}%
+ \edef\CurrentInputEncodingOption{%
+ \csname IEX@enc@\CurrentInputEncodingName\endcsname
+ }%
+ \ifx\CurrentInputEncodingOption\@empty
+ \PackageWarning{inputenx}{%
+ Encoding `\CurrentInputEncodingName' is not available\MessageBreak
+ and therefore ignored%
+ }%
+ \else
+ \IfFileExists{\CurrentInputEncodingOption.def}{%
+ \PackageInfo{inputenx}{%
+ Encoding name: \CurrentInputEncodingName\MessageBreak
+ Encoding file: \CurrentInputEncodingOption.def\MessageBreak
+ }%
+ }{%
+ \PackageError{inputenx}{%
+ Cannot load encoding `\CurrentInputEncodingName'.\MessageBreak
+ A valid encoding alias was not found and\MessageBreak
+ encoding file `\CurrentInputEncodingOption.def' does not exist%
+ }\@ehc
+ \global\expandafter\let
+ \csname IEX@enc@\CurrentInputEncodingName\endcsname\@empty
+ \let\CurrentInputEncodingName\@empty
+ \let\CurrentInputEncodingOption\@empty
+ }%
+ \fi
+}
+% \end{macrocode}
+% Encoding is in \cs{CurrentInputEncodingName}. Search the
+% alias file until an entry is found and define
+% |IEX@enc@\CurrentInputEncodingName|.
+% \begin{macrocode}
+\def\IEX@DoLookup{%
+ \begingroup
+ \advance\endlinechar\@M
+ \IfFileExists{ix-alias.cfg}{%
+ \input{ix-alias.cfg}%
+ }{%
+ \input{ix-alias.def}%
+ }%
+ \advance\endlinechar-\@M
+ \endgroup
+}
+% \end{macrocode}
+% \begin{macrocode}
+\def\InputenxAlias#1#2{%
+ \edef\IEX@temp{#1}%
+ \@onelevel@sanitize\IEX@temp
+ \ifx\IEX@temp\CurrentInputEncodingName
+ \edef\IEX@temp{#2}%
+ \@onelevel@sanitize\IEX@temp
+ \IfFileExists{\IEX@temp.def}{%
+ \global\expandafter\let
+ \csname IEX@enc@\CurrentInputEncodingName\endcsname\IEX@temp
+ \expandafter\endinput
+ }{%
+ \PackageWarning{inputenx}{%
+ Missing encoding file `\IEX@temp.def'\MessageBreak
+ for encoding `\CurrentInputEncodingName', continuing\MessageBreak
+ with lookup search%
+ }%
+ }%
+ \fi
+}
+% \end{macrocode}
+%
+% \subsection{Package options}
+%
+% \subsubsection{Declare and process options}
+%
+% \begin{macrocode}
+\newif\ifIEX@math
+\DeclareOption{math}{\IEX@mathtrue}
+\let\IEX@enclist\@empty
+\DeclareOption*{%
+ \ifx\IEX@enclist\@empty
+ \let\IEX@enclist\CurrentOption
+ \else
+ \edef\IEX@enclist{\IEX@enclist,\CurrentOption}%
+ \fi
+}
+\ProcessOptions*
+% \end{macrocode}
+%
+% \subsubsection{Load \xpackage{inputenc} with encoding options}
+%
+% \begin{macrocode}
+\@for\CurrentOption:=\IEX@enclist\do{%
+ \IEX@LookupEncoding\CurrentOption
+ \ifx\CurrentInputEncodingOption\@empty
+ \else
+ \PassOptionsToPackage{\CurrentInputEncodingOption}{inputenc}%
+ \fi
+}
+\RequirePackage{inputenc}
+% \end{macrocode}
+%
+% \subsubsection{\cs{InputEncoding}}
+%
+% \begin{macro}{\InputEncoding}
+% \cs{InputEncoding} is basically the same as \cs{inputencoding}
+% of package \xpackage{inputenc}. However aliases are supported.
+% \begin{macrocode}
+\newcommand*{\InputEncoding}[1]{%
+ \IEX@LookupEncoding{#1}%
+ \ifx\CurrentInputEncodingOption\@empty
+ \else
+ \inputencoding{\CurrentInputEncodingOption}%
+% \ifx\PassOptionsToPackage\@notprerr
+% \else
+% \expandafter\PassOptionsToPackage\expandafter{%
+% \CurrentInputEncodingOption
+% }{inputenc}%
+% \ifx\CurrentInputEncodingName\CurrentInputEncodingOption
+% \else
+% \expandafter\PassOptionsToPackage\expandafter{%
+% \CurrentInputEncodingName
+% }{inputenc}%
+% \fi
+% \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Option \xoption{math}}
+%
+% \begin{macrocode}
+\ifIEX@math
+ \RequirePackage{inpmath}
+ \IfFileExists{ix-math.cfg}{%
+ \input{ix-math.cfg}%
+ }{%
+ \input{ix-math.def}%
+ }%
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \subsection{Alias encoding file}
+%
+% \begin{macrocode}
+%<*alias>
+\ProvidesFile{ix-alias.def}[2006/08/24 v1.0 Alias list (inputenx)]
+% \end{macrocode}
+% The alias mechanism is also used to hide the prefix |x-|:
+% \begin{macrocode}
+\InputenxAlias{ascii}{x-ascii}
+\InputenxAlias{iso-8859-1}{x-iso-8859-1}
+\InputenxAlias{iso-8859-2}{x-iso-8859-2}
+\InputenxAlias{iso-8859-3}{x-iso-8859-3}
+\InputenxAlias{iso-8859-4}{x-iso-8859-4}
+\InputenxAlias{iso-8859-9}{x-iso-8859-9}
+\InputenxAlias{iso-8859-10}{x-iso-8859-10}
+\InputenxAlias{iso-8859-13}{x-iso-8859-13}
+\InputenxAlias{iso-8859-14}{x-iso-8859-14}
+\InputenxAlias{iso-8859-15}{x-iso-8859-15}
+\InputenxAlias{iso-8859-16}{x-iso-8859-16}
+\InputenxAlias{cp437}{x-cp437}
+\InputenxAlias{cp850}{x-cp850}
+\InputenxAlias{cp852}{x-cp852}
+\InputenxAlias{cp858}{x-cp858}
+\InputenxAlias{cp865}{x-cp865}
+\InputenxAlias{cp1250}{x-cp1250}
+\InputenxAlias{cp1252}{x-cp1252}
+\InputenxAlias{cp1257}{x-cp1257}
+\InputenxAlias{mac-roman}{x-mac-roman}
+\InputenxAlias{mac-ce}{x-mac-ce}
+\InputenxAlias{nextstep}{x-nextstep}
+\InputenxAlias{dec-mcs}{x-dec-mcs}
+% \end{macrocode}
+% Now the real aliases start:
+% \begin{macrocode}
+\InputenxAlias{ansinew}{x-cp1252}
+\InputenxAlias{applemac}{x-mac-roman}
+\InputenxAlias{cp437de}{x-cp437}
+\InputenxAlias{decmulti}{x-dec-mcs}
+\InputenxAlias{latin1}{x-iso-8859-1}
+\InputenxAlias{latin10}{x-iso-8859-16}
+\InputenxAlias{latin2}{x-iso-8859-2}
+\InputenxAlias{latin3}{x-iso-8859-3}
+\InputenxAlias{latin4}{x-iso-8859-4}
+\InputenxAlias{latin5}{x-iso-8859-9}
+\InputenxAlias{latin6}{x-iso-8859-10}
+\InputenxAlias{latin7}{x-iso-8859-13}
+\InputenxAlias{latin8}{x-iso-8859-14}
+\InputenxAlias{latin9}{x-iso-8859-15}
+\InputenxAlias{macce}{x-mac-ce}
+\InputenxAlias{next}{x-nextstep}
+\InputenxAlias{us-ascii}{x-ascii}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</alias>
+% \end{macrocode}
+%
+% \subsection{Encoding files}
+%
+% \subsubsection{Encoding ascii}
+%
+% The encoding file \xfile{ascii.def} of package \xpackage{inputenc}
+% before 2006/03/04 v1.1b generate a unnecessary warning. Therefore
+% a separate variant is provided here.
+% \begin{macrocode}
+%<*ascii>
+\ProvidesFile{x-ascii.def}%
+ [2006/08/24 v1.0 Input encoding ascii (inputenx)]
+\@inpenc@test
+%</ascii>
+% \end{macrocode}
+%
+% \subsubsection{Encoding iso-8859-1}
+%
+% \begin{macrocode}
+%<*iso-8859-1>
+\ProvidesFile{x-iso-8859-1.def}%
+ [2006/08/24 v1.0 Input encoding iso-8859-1 (inputenx)]
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+}
+\ProvideTextCommandDefault{\textbrokenbar}{%
+ \TextSymbolUnavailable\textbrokenbar
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textthreequarters}{%
+ \ensuremath{\frac34}%
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\textexclamdown}
+\DeclareInputText{162}{\textcent}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\textcurrency}
+\DeclareInputText{165}{\textyen}
+\DeclareInputText{166}{\textbrokenbar}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\textasciidieresis}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\textordfeminine}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputText{172}{\textlnot}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\textregistered}
+\DeclareInputText{175}{\textasciimacron}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\textpm}
+\DeclareInputText{178}{\texttwosuperior}
+\DeclareInputText{179}{\textthreesuperior}
+\DeclareInputText{180}{\textasciiacute}
+\DeclareInputText{181}{\textmu}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{184}{\c\ }
+\DeclareInputText{185}{\textonesuperior}
+\DeclareInputText{186}{\textordmasculine}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\textonequarter}
+\DeclareInputText{189}{\textonehalf}
+\DeclareInputText{190}{\textthreequarters}
+\DeclareInputText{191}{\textquestiondown}
+\DeclareInputText{192}{\@tabacckludge`A}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\~A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\r A}
+\DeclareInputText{198}{\AE}
+\DeclareInputText{199}{\c C}
+\DeclareInputText{200}{\@tabacckludge`E}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\^E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\@tabacckludge`I}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\"I}
+\DeclareInputText{208}{\DH}
+\DeclareInputText{209}{\~N}
+\DeclareInputText{210}{\@tabacckludge`O}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\~O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\texttimes}
+\DeclareInputText{216}{\O}
+\DeclareInputText{217}{\@tabacckludge`U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\^U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\@tabacckludge'Y}
+\DeclareInputText{222}{\TH}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge`a}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\~a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\r a}
+\DeclareInputText{230}{\ae}
+\DeclareInputText{231}{\c c}
+\DeclareInputText{232}{\@tabacckludge`e}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\^e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\@tabacckludge`\i}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\"\i}
+\DeclareInputText{240}{\dh}
+\DeclareInputText{241}{\~n}
+\DeclareInputText{242}{\@tabacckludge`o}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\~o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\textdiv}
+\DeclareInputText{248}{\o}
+\DeclareInputText{249}{\@tabacckludge`u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\^u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\@tabacckludge'y}
+\DeclareInputText{254}{\th}
+\DeclareInputText{255}{\"y}
+%</iso-8859-1>
+% \end{macrocode}
+%
+% \subsubsection{Encoding iso-8859-2}
+%
+% \begin{macrocode}
+%<*iso-8859-2>
+\ProvidesFile{x-iso-8859-2.def}%
+ [2006/08/24 v1.0 Input encoding iso-8859-2 (inputenx)]
+\ProvideTextCommandDefault{\textacutedbl}{%
+ \H{}%
+}
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciibreve}{%
+ \u{}%
+}
+\ProvideTextCommandDefault{\textasciicaron}{%
+ \v{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\k A}
+\DeclareInputText{162}{\textasciibreve}
+\DeclareInputText{163}{\L}
+\DeclareInputText{164}{\textcurrency}
+\DeclareInputText{165}{\v L}
+\DeclareInputText{166}{\@tabacckludge'S}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\textasciidieresis}
+\DeclareInputText{169}{\v S}
+\DeclareInputText{170}{\c S}
+\DeclareInputText{171}{\v T}
+\DeclareInputText{172}{\@tabacckludge'Z}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\v Z}
+\DeclareInputText{175}{\.Z}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\k a}
+\DeclareInputText{178}{\k{}}
+\DeclareInputText{179}{\l}
+\DeclareInputText{180}{\textasciiacute}
+\DeclareInputText{181}{\v l}
+\DeclareInputText{182}{\@tabacckludge's}
+\DeclareInputText{183}{\textasciicaron}
+\DeclareInputText{184}{\c\ }
+\DeclareInputText{185}{\v s}
+\DeclareInputText{186}{\c s}
+\DeclareInputText{187}{\v t}
+\DeclareInputText{188}{\@tabacckludge'z}
+\DeclareInputText{189}{\textacutedbl}
+\DeclareInputText{190}{\v z}
+\DeclareInputText{191}{\.z}
+\DeclareInputText{192}{\@tabacckludge'R}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\u A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\@tabacckludge'L}
+\DeclareInputText{198}{\@tabacckludge'C}
+\DeclareInputText{199}{\c C}
+\DeclareInputText{200}{\v C}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\k E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\v E}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\v D}
+\DeclareInputText{208}{\DJ}
+\DeclareInputText{209}{\@tabacckludge'N}
+\DeclareInputText{210}{\v N}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\H O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\texttimes}
+\DeclareInputText{216}{\v R}
+\DeclareInputText{217}{\r U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\H U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\@tabacckludge'Y}
+\DeclareInputText{222}{\c T}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge'r}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\u a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\@tabacckludge'l}
+\DeclareInputText{230}{\@tabacckludge'c}
+\DeclareInputText{231}{\c c}
+\DeclareInputText{232}{\v c}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\k e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\v e}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\v d}
+\DeclareInputText{240}{\dj}
+\DeclareInputText{241}{\@tabacckludge'n}
+\DeclareInputText{242}{\v n}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\H o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\textdiv}
+\DeclareInputText{248}{\v r}
+\DeclareInputText{249}{\r u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\H u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\@tabacckludge'y}
+\DeclareInputText{254}{\c t}
+\DeclareInputText{255}{\.{}}
+%</iso-8859-2>
+% \end{macrocode}
+%
+% \subsubsection{Encoding iso-8859-3}
+%
+% \begin{macrocode}
+%<*iso-8859-3>
+\ProvidesFile{x-iso-8859-3.def}%
+ [2006/08/24 v1.0 Input encoding iso-8859-3 (inputenx)]
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciibreve}{%
+ \u{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textmalteseH}{%
+ \TextSymbolUnavailable\textmalteseH
+}
+\ProvideTextCommandDefault{\textmalteseh}{%
+ \TextSymbolUnavailable\textmalteseh
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\textmalteseH}
+\DeclareInputText{162}{\textasciibreve}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\textcurrency}
+\DeclareInputText{166}{\^H}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\textasciidieresis}
+\DeclareInputText{169}{\.I}
+\DeclareInputText{170}{\c S}
+\DeclareInputText{171}{\u G}
+\DeclareInputText{172}{\^J}
+\DeclareInputText{173}{\-}
+\DeclareInputText{175}{\.Z}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\textmalteseh}
+\DeclareInputText{178}{\texttwosuperior}
+\DeclareInputText{179}{\textthreesuperior}
+\DeclareInputText{180}{\textasciiacute}
+\DeclareInputText{181}{\textmu}
+\DeclareInputText{182}{\^h}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{184}{\c\ }
+\DeclareInputText{185}{\i}
+\DeclareInputText{186}{\c s}
+\DeclareInputText{187}{\u g}
+\DeclareInputText{188}{\^j}
+\DeclareInputText{189}{\textonehalf}
+\DeclareInputText{191}{\.z}
+\DeclareInputText{192}{\@tabacckludge`A}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\.C}
+\DeclareInputText{198}{\^C}
+\DeclareInputText{199}{\c C}
+\DeclareInputText{200}{\@tabacckludge`E}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\^E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\@tabacckludge`I}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\"I}
+\DeclareInputText{209}{\~N}
+\DeclareInputText{210}{\@tabacckludge`O}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\.G}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\texttimes}
+\DeclareInputText{216}{\^G}
+\DeclareInputText{217}{\@tabacckludge`U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\^U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\u U}
+\DeclareInputText{222}{\^S}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge`a}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\.c}
+\DeclareInputText{230}{\^c}
+\DeclareInputText{231}{\c c}
+\DeclareInputText{232}{\@tabacckludge`e}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\^e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\@tabacckludge`\i}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\"\i}
+\DeclareInputText{241}{\~n}
+\DeclareInputText{242}{\@tabacckludge`o}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\.g}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\textdiv}
+\DeclareInputText{248}{\^g}
+\DeclareInputText{249}{\@tabacckludge`u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\^u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\u u}
+\DeclareInputText{254}{\^s}
+\DeclareInputText{255}{\.{}}
+%</iso-8859-3>
+% \end{macrocode}
+%
+% \subsubsection{Encoding iso-8859-4}
+%
+% \begin{macrocode}
+%<*iso-8859-4>
+\ProvidesFile{x-iso-8859-4.def}%
+ [2006/08/24 v1.0 Input encoding iso-8859-4 (inputenx)]
+\ProvideTextCommandDefault{\textTstroke}{%
+ \TextSymbolUnavailable\textTstroke
+}
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciicaron}{%
+ \v{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textkra}{%
+ \TextSymbolUnavailable\textkra
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttstroke}{%
+ \TextSymbolUnavailable\texttstroke
+}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\k A}
+\DeclareInputText{162}{\textkra}
+\DeclareInputText{163}{\c R}
+\DeclareInputText{164}{\textcurrency}
+\DeclareInputText{165}{\~I}
+\DeclareInputText{166}{\c L}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\textasciidieresis}
+\DeclareInputText{169}{\v S}
+\DeclareInputText{170}{\@tabacckludge=E}
+\DeclareInputText{171}{\c G}
+\DeclareInputText{172}{\textTstroke}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\v Z}
+\DeclareInputText{175}{\textasciimacron}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\k a}
+\DeclareInputText{178}{\k{}}
+\DeclareInputText{179}{\c r}
+\DeclareInputText{180}{\textasciiacute}
+\DeclareInputText{181}{\~\i}
+\DeclareInputText{182}{\c l}
+\DeclareInputText{183}{\textasciicaron}
+\DeclareInputText{184}{\c\ }
+\DeclareInputText{185}{\v s}
+\DeclareInputText{186}{\@tabacckludge=e}
+\DeclareInputText{187}{\c g}
+\DeclareInputText{188}{\texttstroke}
+\DeclareInputText{189}{\NG}
+\DeclareInputText{190}{\v z}
+\DeclareInputText{191}{\ng}
+\DeclareInputText{192}{\@tabacckludge=A}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\~A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\r A}
+\DeclareInputText{198}{\AE}
+\DeclareInputText{199}{\k I}
+\DeclareInputText{200}{\v C}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\k E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\.E}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\@tabacckludge=I}
+\DeclareInputText{208}{\DJ}
+\DeclareInputText{209}{\c N}
+\DeclareInputText{210}{\@tabacckludge=O}
+\DeclareInputText{211}{\c K}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\~O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\texttimes}
+\DeclareInputText{216}{\O}
+\DeclareInputText{217}{\k U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\^U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\~U}
+\DeclareInputText{222}{\@tabacckludge=U}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge=a}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\~a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\r a}
+\DeclareInputText{230}{\ae}
+\DeclareInputText{231}{\k i}
+\DeclareInputText{232}{\v c}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\k e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\.e}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\@tabacckludge=\i}
+\DeclareInputText{240}{\dj}
+\DeclareInputText{241}{\c n}
+\DeclareInputText{242}{\@tabacckludge=o}
+\DeclareInputText{243}{\c k}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\~o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\textdiv}
+\DeclareInputText{248}{\o}
+\DeclareInputText{249}{\k u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\^u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\~u}
+\DeclareInputText{254}{\@tabacckludge=u}
+\DeclareInputText{255}{\.{}}
+%</iso-8859-4>
+% \end{macrocode}
+%
+% \subsubsection{Encoding iso-8859-9}
+%
+% \begin{macrocode}
+%<*iso-8859-9>
+\ProvidesFile{x-iso-8859-9.def}%
+ [2006/08/24 v1.0 Input encoding iso-8859-9 (inputenx)]
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+}
+\ProvideTextCommandDefault{\textbrokenbar}{%
+ \TextSymbolUnavailable\textbrokenbar
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textthreequarters}{%
+ \ensuremath{\frac34}%
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\textexclamdown}
+\DeclareInputText{162}{\textcent}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\textcurrency}
+\DeclareInputText{165}{\textyen}
+\DeclareInputText{166}{\textbrokenbar}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\textasciidieresis}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\textordfeminine}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputText{172}{\textlnot}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\textregistered}
+\DeclareInputText{175}{\textasciimacron}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\textpm}
+\DeclareInputText{178}{\texttwosuperior}
+\DeclareInputText{179}{\textthreesuperior}
+\DeclareInputText{180}{\textasciiacute}
+\DeclareInputText{181}{\textmu}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{184}{\c\ }
+\DeclareInputText{185}{\textonesuperior}
+\DeclareInputText{186}{\textordmasculine}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\textonequarter}
+\DeclareInputText{189}{\textonehalf}
+\DeclareInputText{190}{\textthreequarters}
+\DeclareInputText{191}{\textquestiondown}
+\DeclareInputText{192}{\@tabacckludge`A}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\~A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\r A}
+\DeclareInputText{198}{\AE}
+\DeclareInputText{199}{\c C}
+\DeclareInputText{200}{\@tabacckludge`E}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\^E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\@tabacckludge`I}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\"I}
+\DeclareInputText{208}{\u G}
+\DeclareInputText{209}{\~N}
+\DeclareInputText{210}{\@tabacckludge`O}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\~O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\texttimes}
+\DeclareInputText{216}{\O}
+\DeclareInputText{217}{\@tabacckludge`U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\^U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\.I}
+\DeclareInputText{222}{\c S}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge`a}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\~a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\r a}
+\DeclareInputText{230}{\ae}
+\DeclareInputText{231}{\c c}
+\DeclareInputText{232}{\@tabacckludge`e}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\^e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\@tabacckludge`\i}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\"\i}
+\DeclareInputText{240}{\u g}
+\DeclareInputText{241}{\~n}
+\DeclareInputText{242}{\@tabacckludge`o}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\~o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\textdiv}
+\DeclareInputText{248}{\o}
+\DeclareInputText{249}{\@tabacckludge`u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\^u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\i}
+\DeclareInputText{254}{\c s}
+\DeclareInputText{255}{\"y}
+%</iso-8859-9>
+% \end{macrocode}
+%
+% \subsubsection{Encoding iso-8859-10}
+%
+% \begin{macrocode}
+%<*iso-8859-10>
+\ProvidesFile{x-iso-8859-10.def}%
+ [2006/08/24 v1.0 Input encoding iso-8859-10 (inputenx)]
+\ProvideTextCommandDefault{\textTstroke}{%
+ \TextSymbolUnavailable\textTstroke
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textkra}{%
+ \TextSymbolUnavailable\textkra
+}
+\ProvideTextCommandDefault{\texttstroke}{%
+ \TextSymbolUnavailable\texttstroke
+}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\k A}
+\DeclareInputText{162}{\@tabacckludge=E}
+\DeclareInputText{163}{\c G}
+\DeclareInputText{164}{\@tabacckludge=I}
+\DeclareInputText{165}{\~I}
+\DeclareInputText{166}{\c K}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\c L}
+\DeclareInputText{169}{\DJ}
+\DeclareInputText{170}{\v S}
+\DeclareInputText{171}{\textTstroke}
+\DeclareInputText{172}{\v Z}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\@tabacckludge=U}
+\DeclareInputText{175}{\NG}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\k a}
+\DeclareInputText{178}{\@tabacckludge=e}
+\DeclareInputText{179}{\c g}
+\DeclareInputText{180}{\@tabacckludge=\i}
+\DeclareInputText{181}{\~\i}
+\DeclareInputText{182}{\c k}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{184}{\c l}
+\DeclareInputText{185}{\dj}
+\DeclareInputText{186}{\v s}
+\DeclareInputText{187}{\texttstroke}
+\DeclareInputText{188}{\v z}
+\DeclareInputText{190}{\@tabacckludge=u}
+\DeclareInputText{191}{\ng}
+\DeclareInputText{192}{\@tabacckludge=A}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\~A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\r A}
+\DeclareInputText{198}{\AE}
+\DeclareInputText{199}{\k I}
+\DeclareInputText{200}{\v C}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\k E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\.E}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\"I}
+\DeclareInputText{208}{\DH}
+\DeclareInputText{209}{\c N}
+\DeclareInputText{210}{\@tabacckludge=O}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\~O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\~U}
+\DeclareInputText{216}{\O}
+\DeclareInputText{217}{\k U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\^U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\@tabacckludge'Y}
+\DeclareInputText{222}{\TH}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge=a}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\~a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\r a}
+\DeclareInputText{230}{\ae}
+\DeclareInputText{231}{\k i}
+\DeclareInputText{232}{\v c}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\k e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\.e}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\"\i}
+\DeclareInputText{240}{\dh}
+\DeclareInputText{241}{\c n}
+\DeclareInputText{242}{\@tabacckludge=o}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\~o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\~u}
+\DeclareInputText{248}{\o}
+\DeclareInputText{249}{\k u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\^u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\@tabacckludge'y}
+\DeclareInputText{254}{\th}
+\DeclareInputText{255}{\textkra}
+%</iso-8859-10>
+% \end{macrocode}
+%
+% \subsubsection{Encoding iso-8859-13}
+%
+% \begin{macrocode}
+%<*iso-8859-13>
+\ProvidesFile{x-iso-8859-13.def}%
+ [2006/08/24 v1.0 Input encoding iso-8859-13 (inputenx)]
+\ProvideTextCommandDefault{\textbrokenbar}{%
+ \TextSymbolUnavailable\textbrokenbar
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textthreequarters}{%
+ \ensuremath{\frac34}%
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\textquotedblright}
+\DeclareInputText{162}{\textcent}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\textcurrency}
+\DeclareInputText{165}{\quotedblbase}
+\DeclareInputText{166}{\textbrokenbar}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\O}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\c R}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputText{172}{\textlnot}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\textregistered}
+\DeclareInputText{175}{\AE}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\textpm}
+\DeclareInputText{178}{\texttwosuperior}
+\DeclareInputText{179}{\textthreesuperior}
+\DeclareInputText{180}{\textquotedblleft}
+\DeclareInputText{181}{\textmu}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{184}{\o}
+\DeclareInputText{185}{\textonesuperior}
+\DeclareInputText{186}{\c r}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\textonequarter}
+\DeclareInputText{189}{\textonehalf}
+\DeclareInputText{190}{\textthreequarters}
+\DeclareInputText{191}{\ae}
+\DeclareInputText{192}{\k A}
+\DeclareInputText{193}{\k I}
+\DeclareInputText{194}{\@tabacckludge=A}
+\DeclareInputText{195}{\@tabacckludge'C}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\r A}
+\DeclareInputText{198}{\k E}
+\DeclareInputText{199}{\@tabacckludge=E}
+\DeclareInputText{200}{\v C}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\@tabacckludge'Z}
+\DeclareInputText{203}{\.E}
+\DeclareInputText{204}{\c G}
+\DeclareInputText{205}{\c K}
+\DeclareInputText{206}{\@tabacckludge=I}
+\DeclareInputText{207}{\c L}
+\DeclareInputText{208}{\v S}
+\DeclareInputText{209}{\@tabacckludge'N}
+\DeclareInputText{210}{\c N}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\@tabacckludge=O}
+\DeclareInputText{213}{\~O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\texttimes}
+\DeclareInputText{216}{\k U}
+\DeclareInputText{217}{\L}
+\DeclareInputText{218}{\@tabacckludge'S}
+\DeclareInputText{219}{\@tabacckludge=U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\.Z}
+\DeclareInputText{222}{\v Z}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\k a}
+\DeclareInputText{225}{\k i}
+\DeclareInputText{226}{\@tabacckludge=a}
+\DeclareInputText{227}{\@tabacckludge'c}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\r a}
+\DeclareInputText{230}{\k e}
+\DeclareInputText{231}{\@tabacckludge=e}
+\DeclareInputText{232}{\v c}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\@tabacckludge'z}
+\DeclareInputText{235}{\.e}
+\DeclareInputText{236}{\c g}
+\DeclareInputText{237}{\c k}
+\DeclareInputText{238}{\@tabacckludge=\i}
+\DeclareInputText{239}{\c l}
+\DeclareInputText{240}{\v s}
+\DeclareInputText{241}{\@tabacckludge'n}
+\DeclareInputText{242}{\c n}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\@tabacckludge=o}
+\DeclareInputText{245}{\~o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\textdiv}
+\DeclareInputText{248}{\k u}
+\DeclareInputText{249}{\l}
+\DeclareInputText{250}{\@tabacckludge's}
+\DeclareInputText{251}{\@tabacckludge=u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\.z}
+\DeclareInputText{254}{\v z}
+\DeclareInputText{255}{\textquoteright}
+%</iso-8859-13>
+% \end{macrocode}
+%
+% \subsubsection{Encoding iso-8859-14}
+%
+% \begin{macrocode}
+%<*iso-8859-14>
+\ProvidesFile{x-iso-8859-14.def}%
+ [2006/08/24 v1.0 Input encoding iso-8859-14 (inputenx)]
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\.B}
+\DeclareInputText{162}{\.b}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\.C}
+\DeclareInputText{165}{\.c}
+\DeclareInputText{166}{\.D}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\@tabacckludge`W}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\@tabacckludge'W}
+\DeclareInputText{171}{\.d}
+\DeclareInputText{172}{\@tabacckludge`Y}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\textregistered}
+\DeclareInputText{175}{\"Y}
+\DeclareInputText{176}{\.F}
+\DeclareInputText{177}{\.f}
+\DeclareInputText{178}{\.G}
+\DeclareInputText{179}{\.g}
+\DeclareInputText{180}{\.M}
+\DeclareInputText{181}{\.m}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\.P}
+\DeclareInputText{184}{\@tabacckludge`w}
+\DeclareInputText{185}{\.p}
+\DeclareInputText{186}{\@tabacckludge'w}
+\DeclareInputText{187}{\.S}
+\DeclareInputText{188}{\@tabacckludge`y}
+\DeclareInputText{189}{\"W}
+\DeclareInputText{190}{\"w}
+\DeclareInputText{191}{\.s}
+\DeclareInputText{192}{\@tabacckludge`A}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\~A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\r A}
+\DeclareInputText{198}{\AE}
+\DeclareInputText{199}{\c C}
+\DeclareInputText{200}{\@tabacckludge`E}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\^E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\@tabacckludge`I}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\"I}
+\DeclareInputText{208}{\^W}
+\DeclareInputText{209}{\~N}
+\DeclareInputText{210}{\@tabacckludge`O}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\~O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\.T}
+\DeclareInputText{216}{\O}
+\DeclareInputText{217}{\@tabacckludge`U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\^U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\@tabacckludge'Y}
+\DeclareInputText{222}{\^Y}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge`a}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\~a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\r a}
+\DeclareInputText{230}{\ae}
+\DeclareInputText{231}{\c c}
+\DeclareInputText{232}{\@tabacckludge`e}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\^e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\@tabacckludge`\i}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\"\i}
+\DeclareInputText{240}{\^w}
+\DeclareInputText{241}{\~n}
+\DeclareInputText{242}{\@tabacckludge`o}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\~o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\.t}
+\DeclareInputText{248}{\o}
+\DeclareInputText{249}{\@tabacckludge`u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\^u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\@tabacckludge'y}
+\DeclareInputText{254}{\^y}
+\DeclareInputText{255}{\"y}
+%</iso-8859-14>
+% \end{macrocode}
+%
+% \subsubsection{Encoding iso-8859-15}
+%
+% \begin{macrocode}
+%<*iso-8859-15>
+\ProvidesFile{x-iso-8859-15.def}%
+ [2006/08/24 v1.0 Input encoding iso-8859-15 (inputenx)]
+\ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\texteuro}{%
+ \TextSymbolUnavailable\texteuro
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\textexclamdown}
+\DeclareInputText{162}{\textcent}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\texteuro}
+\DeclareInputText{165}{\textyen}
+\DeclareInputText{166}{\v S}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\v s}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\textordfeminine}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputText{172}{\textlnot}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\textregistered}
+\DeclareInputText{175}{\textasciimacron}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\textpm}
+\DeclareInputText{178}{\texttwosuperior}
+\DeclareInputText{179}{\textthreesuperior}
+\DeclareInputText{180}{\v Z}
+\DeclareInputText{181}{\textmu}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{184}{\v z}
+\DeclareInputText{185}{\textonesuperior}
+\DeclareInputText{186}{\textordmasculine}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\OE}
+\DeclareInputText{189}{\oe}
+\DeclareInputText{190}{\"Y}
+\DeclareInputText{191}{\textquestiondown}
+\DeclareInputText{192}{\@tabacckludge`A}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\~A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\r A}
+\DeclareInputText{198}{\AE}
+\DeclareInputText{199}{\c C}
+\DeclareInputText{200}{\@tabacckludge`E}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\^E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\@tabacckludge`I}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\"I}
+\DeclareInputText{208}{\DH}
+\DeclareInputText{209}{\~N}
+\DeclareInputText{210}{\@tabacckludge`O}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\~O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\texttimes}
+\DeclareInputText{216}{\O}
+\DeclareInputText{217}{\@tabacckludge`U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\^U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\@tabacckludge'Y}
+\DeclareInputText{222}{\TH}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge`a}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\~a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\r a}
+\DeclareInputText{230}{\ae}
+\DeclareInputText{231}{\c c}
+\DeclareInputText{232}{\@tabacckludge`e}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\^e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\@tabacckludge`\i}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\"\i}
+\DeclareInputText{240}{\dh}
+\DeclareInputText{241}{\~n}
+\DeclareInputText{242}{\@tabacckludge`o}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\~o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\textdiv}
+\DeclareInputText{248}{\o}
+\DeclareInputText{249}{\@tabacckludge`u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\^u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\@tabacckludge'y}
+\DeclareInputText{254}{\th}
+\DeclareInputText{255}{\"y}
+%</iso-8859-15>
+% \end{macrocode}
+%
+% \subsubsection{Encoding iso-8859-16}
+%
+% \begin{macrocode}
+%<*iso-8859-16>
+\ProvidesFile{x-iso-8859-16.def}%
+ [2006/08/24 v1.0 Input encoding iso-8859-16 (inputenx)]
+\ProvideTextCommandDefault{\textcommabelow}[1]{%
+ \hmode@bgroup
+ \ooalign{%
+ \null#1\crcr
+ \hidewidth
+ \raise-.31ex\hbox{%
+ \check@mathfonts
+ \fontsize\ssf@size\z@
+ \math@fontsfalse\selectfont,%
+ }%
+ \hidewidth
+ }%
+ \egroup
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\texteuro}{%
+ \TextSymbolUnavailable\texteuro
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\k A}
+\DeclareInputText{162}{\k a}
+\DeclareInputText{163}{\L}
+\DeclareInputText{164}{\texteuro}
+\DeclareInputText{165}{\quotedblbase}
+\DeclareInputText{166}{\v S}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\v s}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\textcommabelow S}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputText{172}{\@tabacckludge'Z}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\@tabacckludge'z}
+\DeclareInputText{175}{\.Z}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\textpm}
+\DeclareInputText{178}{\v C}
+\DeclareInputText{179}{\l}
+\DeclareInputText{180}{\v Z}
+\DeclareInputText{181}{\textquotedblright}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{184}{\v z}
+\DeclareInputText{185}{\v c}
+\DeclareInputText{186}{\textcommabelow s}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\OE}
+\DeclareInputText{189}{\oe}
+\DeclareInputText{190}{\"Y}
+\DeclareInputText{191}{\.z}
+\DeclareInputText{192}{\@tabacckludge`A}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\u A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\@tabacckludge'C}
+\DeclareInputText{198}{\AE}
+\DeclareInputText{199}{\c C}
+\DeclareInputText{200}{\@tabacckludge`E}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\^E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\@tabacckludge`I}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\"I}
+\DeclareInputText{208}{\DJ}
+\DeclareInputText{209}{\@tabacckludge'N}
+\DeclareInputText{210}{\@tabacckludge`O}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\H O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\@tabacckludge'S}
+\DeclareInputText{216}{\H U}
+\DeclareInputText{217}{\@tabacckludge`U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\^U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\k E}
+\DeclareInputText{222}{\textcommabelow T}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge`a}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\u a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\@tabacckludge'c}
+\DeclareInputText{230}{\ae}
+\DeclareInputText{231}{\c c}
+\DeclareInputText{232}{\@tabacckludge`e}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\^e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\@tabacckludge`\i}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\"\i}
+\DeclareInputText{240}{\dj}
+\DeclareInputText{241}{\@tabacckludge'n}
+\DeclareInputText{242}{\@tabacckludge`o}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\H o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\@tabacckludge's}
+\DeclareInputText{248}{\H u}
+\DeclareInputText{249}{\@tabacckludge`u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\^u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\k e}
+\DeclareInputText{254}{\textcommabelow t}
+\DeclareInputText{255}{\"y}
+%</iso-8859-16>
+% \end{macrocode}
+%
+% \subsubsection{Encoding cp437}
+%
+% \begin{macrocode}
+%<*cp437>
+\ProvidesFile{x-cp437.def}%
+ [2006/08/24 v1.0 Input encoding cp437 (inputenx)]
+\ProvideTextCommandDefault{\textGamma}{%
+ \ensuremath\Gamma
+}
+\ProvideTextCommandDefault{\textOmega}{%
+ \ensuremath\Omega
+}
+\ProvideTextCommandDefault{\textPhi}{%
+ \ensuremath\Phi
+}
+\ProvideTextCommandDefault{\textSigma}{%
+ \ensuremath\Sigma
+}
+\ProvideTextCommandDefault{\textTheta}{%
+ \ensuremath\Theta
+}
+\ProvideTextCommandDefault{\textalpha}{%
+ \ensuremath\alpha
+}
+\ProvideTextCommandDefault{\textapproxequal}{%
+ \ensuremath\approx
+}
+\ProvideTextCommandDefault{\textblacksquare}{%
+ \vrule \@width .3em \@height .4em \@depth -.1em\relax
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdelta}{%
+ \ensuremath\delta
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textepsilon}{%
+ \ensuremath\varepsilon
+}
+\ProvideTextCommandDefault{\textequivalence}{%
+ \ensuremath\equiv
+}
+\ProvideTextCommandDefault{\textflorin}{%
+ \textit{f}%
+}
+\ProvideTextCommandDefault{\textgreaterequal}{%
+ \ensuremath\geq
+}
+\ProvideTextCommandDefault{\textinfinity}{%
+ \ensuremath\infty
+}
+\ProvideTextCommandDefault{\textintersection}{%
+ \ensuremath\cap
+}
+\ProvideTextCommandDefault{\textlessequal}{%
+ \ensuremath\leq
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textnsuperior}{%
+ \ensuremath{{^n}}%
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textpeseta}{%
+ Pt%
+}
+\ProvideTextCommandDefault{\textphi}{%
+ \ensuremath\phi
+}
+\ProvideTextCommandDefault{\textpi}{%
+ \ensuremath\pi
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textsigma}{%
+ \ensuremath\sigma
+}
+\ProvideTextCommandDefault{\textsurd}{%
+ \ensuremath\surd
+}
+\ProvideTextCommandDefault{\texttau}{%
+ \ensuremath\tau
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+}
+\DeclareInputText{128}{\c C}
+\DeclareInputText{129}{\"u}
+\DeclareInputText{130}{\@tabacckludge'e}
+\DeclareInputText{131}{\^a}
+\DeclareInputText{132}{\"a}
+\DeclareInputText{133}{\@tabacckludge`a}
+\DeclareInputText{134}{\r a}
+\DeclareInputText{135}{\c c}
+\DeclareInputText{136}{\^e}
+\DeclareInputText{137}{\"e}
+\DeclareInputText{138}{\@tabacckludge`e}
+\DeclareInputText{139}{\"\i}
+\DeclareInputText{140}{\^\i}
+\DeclareInputText{141}{\@tabacckludge`\i}
+\DeclareInputText{142}{\"A}
+\DeclareInputText{143}{\r A}
+\DeclareInputText{144}{\@tabacckludge'E}
+\DeclareInputText{145}{\ae}
+\DeclareInputText{146}{\AE}
+\DeclareInputText{147}{\^o}
+\DeclareInputText{148}{\"o}
+\DeclareInputText{149}{\@tabacckludge`o}
+\DeclareInputText{150}{\^u}
+\DeclareInputText{151}{\@tabacckludge`u}
+\DeclareInputText{152}{\"y}
+\DeclareInputText{153}{\"O}
+\DeclareInputText{154}{\"U}
+\DeclareInputText{155}{\textcent}
+\DeclareInputText{156}{\textsterling}
+\DeclareInputText{157}{\textyen}
+\DeclareInputText{158}{\textpeseta}
+\DeclareInputText{159}{\textflorin}
+\DeclareInputText{160}{\@tabacckludge'a}
+\DeclareInputText{161}{\@tabacckludge'\i}
+\DeclareInputText{162}{\@tabacckludge'o}
+\DeclareInputText{163}{\@tabacckludge'u}
+\DeclareInputText{164}{\~n}
+\DeclareInputText{165}{\~N}
+\DeclareInputText{166}{\textordfeminine}
+\DeclareInputText{167}{\textordmasculine}
+\DeclareInputText{168}{\textquestiondown}
+\DeclareInputText{170}{\textlnot}
+\DeclareInputText{171}{\textonehalf}
+\DeclareInputText{172}{\textonequarter}
+\DeclareInputText{173}{\textexclamdown}
+\DeclareInputText{174}{\guillemotleft}
+\DeclareInputText{175}{\guillemotright}
+\DeclareInputText{176}{\textltshade}
+\DeclareInputText{177}{\textshade}
+\DeclareInputText{178}{\textdkshade}
+\DeclareInputText{179}{\textSFxi}
+\DeclareInputText{180}{\textSFix}
+\DeclareInputText{181}{\textSFxix}
+\DeclareInputText{182}{\textSFxx}
+\DeclareInputText{183}{\textSFxxi}
+\DeclareInputText{184}{\textSFxxii}
+\DeclareInputText{185}{\textSFxxiii}
+\DeclareInputText{186}{\textSFxxiv}
+\DeclareInputText{187}{\textSFxxv}
+\DeclareInputText{188}{\textSFxxvi}
+\DeclareInputText{189}{\textSFxxvii}
+\DeclareInputText{190}{\textSFxxviii}
+\DeclareInputText{191}{\textSFiii}
+\DeclareInputText{192}{\textSFii}
+\DeclareInputText{193}{\textSFvii}
+\DeclareInputText{194}{\textSFvi}
+\DeclareInputText{195}{\textSFviii}
+\DeclareInputText{196}{\textSFx}
+\DeclareInputText{197}{\textSFv}
+\DeclareInputText{198}{\textSFxxxvi}
+\DeclareInputText{199}{\textSFxxxvii}
+\DeclareInputText{200}{\textSFxxxviii}
+\DeclareInputText{201}{\textSFxxxix}
+\DeclareInputText{202}{\textSFxl}
+\DeclareInputText{203}{\textSFxli}
+\DeclareInputText{204}{\textSFxlii}
+\DeclareInputText{205}{\textSFxliii}
+\DeclareInputText{206}{\textSFxliv}
+\DeclareInputText{207}{\textSFxlv}
+\DeclareInputText{208}{\textSFxlvi}
+\DeclareInputText{209}{\textSFxlvii}
+\DeclareInputText{210}{\textSFxlviii}
+\DeclareInputText{211}{\textSFxlix}
+\DeclareInputText{212}{\textSFl}
+\DeclareInputText{213}{\textSFli}
+\DeclareInputText{214}{\textSFlii}
+\DeclareInputText{215}{\textSFliii}
+\DeclareInputText{216}{\textSFliv}
+\DeclareInputText{217}{\textSFiv}
+\DeclareInputText{218}{\textSFi}
+\DeclareInputText{219}{\textblock}
+\DeclareInputText{220}{\textdnblock}
+\DeclareInputText{221}{\textlfblock}
+\DeclareInputText{222}{\textrtblock}
+\DeclareInputText{223}{\textupblock}
+\DeclareInputText{224}{\textalpha}
+\DeclareInputText{225}{\ss}
+\DeclareInputText{226}{\textGamma}
+\DeclareInputText{227}{\textpi}
+\DeclareInputText{228}{\textSigma}
+\DeclareInputText{229}{\textsigma}
+\DeclareInputText{230}{\textmu}
+\DeclareInputText{231}{\texttau}
+\DeclareInputText{232}{\textPhi}
+\DeclareInputText{233}{\textTheta}
+\DeclareInputText{234}{\textOmega}
+\DeclareInputText{235}{\textdelta}
+\DeclareInputText{236}{\textinfinity}
+\DeclareInputText{237}{\textphi}
+\DeclareInputText{238}{\textepsilon}
+\DeclareInputText{239}{\textintersection}
+\DeclareInputText{240}{\textequivalence}
+\DeclareInputText{241}{\textpm}
+\DeclareInputText{242}{\textgreaterequal}
+\DeclareInputText{243}{\textlessequal}
+\DeclareInputText{246}{\textdiv}
+\DeclareInputText{247}{\textapproxequal}
+\DeclareInputText{248}{\textdegree}
+\DeclareInputText{249}{\textbullet}
+\DeclareInputText{250}{\textperiodcentered}
+\DeclareInputText{251}{\textsurd}
+\DeclareInputText{252}{\textnsuperior}
+\DeclareInputText{253}{\texttwosuperior}
+\DeclareInputText{254}{\textblacksquare}
+\DeclareInputText{255}{\nobreakspace}
+%</cp437>
+% \end{macrocode}
+%
+% \subsubsection{Encoding cp850}
+%
+% \begin{macrocode}
+%<*cp850>
+\ProvidesFile{x-cp850.def}%
+ [2006/08/24 v1.0 Input encoding cp850 (inputenx)]
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+}
+\ProvideTextCommandDefault{\textblacksquare}{%
+ \vrule \@width .3em \@height .4em \@depth -.1em\relax
+}
+\ProvideTextCommandDefault{\textbrokenbar}{%
+ \TextSymbolUnavailable\textbrokenbar
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textflorin}{%
+ \textit{f}%
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textthreequarters}{%
+ \ensuremath{\frac34}%
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+}
+\DeclareInputText{128}{\c C}
+\DeclareInputText{129}{\"u}
+\DeclareInputText{130}{\@tabacckludge'e}
+\DeclareInputText{131}{\^a}
+\DeclareInputText{132}{\"a}
+\DeclareInputText{133}{\@tabacckludge`a}
+\DeclareInputText{134}{\r a}
+\DeclareInputText{135}{\c c}
+\DeclareInputText{136}{\^e}
+\DeclareInputText{137}{\"e}
+\DeclareInputText{138}{\@tabacckludge`e}
+\DeclareInputText{139}{\"\i}
+\DeclareInputText{140}{\^\i}
+\DeclareInputText{141}{\@tabacckludge`\i}
+\DeclareInputText{142}{\"A}
+\DeclareInputText{143}{\r A}
+\DeclareInputText{144}{\@tabacckludge'E}
+\DeclareInputText{145}{\ae}
+\DeclareInputText{146}{\AE}
+\DeclareInputText{147}{\^o}
+\DeclareInputText{148}{\"o}
+\DeclareInputText{149}{\@tabacckludge`o}
+\DeclareInputText{150}{\^u}
+\DeclareInputText{151}{\@tabacckludge`u}
+\DeclareInputText{152}{\"y}
+\DeclareInputText{153}{\"O}
+\DeclareInputText{154}{\"U}
+\DeclareInputText{155}{\o}
+\DeclareInputText{156}{\textsterling}
+\DeclareInputText{157}{\O}
+\DeclareInputText{158}{\texttimes}
+\DeclareInputText{159}{\textflorin}
+\DeclareInputText{160}{\@tabacckludge'a}
+\DeclareInputText{161}{\@tabacckludge'\i}
+\DeclareInputText{162}{\@tabacckludge'o}
+\DeclareInputText{163}{\@tabacckludge'u}
+\DeclareInputText{164}{\~n}
+\DeclareInputText{165}{\~N}
+\DeclareInputText{166}{\textordfeminine}
+\DeclareInputText{167}{\textordmasculine}
+\DeclareInputText{168}{\textquestiondown}
+\DeclareInputText{169}{\textregistered}
+\DeclareInputText{170}{\textlnot}
+\DeclareInputText{171}{\textonehalf}
+\DeclareInputText{172}{\textonequarter}
+\DeclareInputText{173}{\textexclamdown}
+\DeclareInputText{174}{\guillemotleft}
+\DeclareInputText{175}{\guillemotright}
+\DeclareInputText{176}{\textltshade}
+\DeclareInputText{177}{\textshade}
+\DeclareInputText{178}{\textdkshade}
+\DeclareInputText{179}{\textSFxi}
+\DeclareInputText{180}{\textSFix}
+\DeclareInputText{181}{\@tabacckludge'A}
+\DeclareInputText{182}{\^A}
+\DeclareInputText{183}{\@tabacckludge`A}
+\DeclareInputText{184}{\textcopyright}
+\DeclareInputText{185}{\textSFxxiii}
+\DeclareInputText{186}{\textSFxxiv}
+\DeclareInputText{187}{\textSFxxv}
+\DeclareInputText{188}{\textSFxxvi}
+\DeclareInputText{189}{\textcent}
+\DeclareInputText{190}{\textyen}
+\DeclareInputText{191}{\textSFiii}
+\DeclareInputText{192}{\textSFii}
+\DeclareInputText{193}{\textSFvii}
+\DeclareInputText{194}{\textSFvi}
+\DeclareInputText{195}{\textSFviii}
+\DeclareInputText{196}{\textSFx}
+\DeclareInputText{197}{\textSFv}
+\DeclareInputText{198}{\~a}
+\DeclareInputText{199}{\~A}
+\DeclareInputText{200}{\textSFxxxviii}
+\DeclareInputText{201}{\textSFxxxix}
+\DeclareInputText{202}{\textSFxl}
+\DeclareInputText{203}{\textSFxli}
+\DeclareInputText{204}{\textSFxlii}
+\DeclareInputText{205}{\textSFxliii}
+\DeclareInputText{206}{\textSFxliv}
+\DeclareInputText{207}{\textcurrency}
+\DeclareInputText{208}{\dh}
+\DeclareInputText{209}{\DH}
+\DeclareInputText{210}{\^E}
+\DeclareInputText{211}{\"E}
+\DeclareInputText{212}{\@tabacckludge`E}
+\DeclareInputText{213}{\i}
+\DeclareInputText{214}{\@tabacckludge'I}
+\DeclareInputText{215}{\^I}
+\DeclareInputText{216}{\"I}
+\DeclareInputText{217}{\textSFiv}
+\DeclareInputText{218}{\textSFi}
+\DeclareInputText{219}{\textblock}
+\DeclareInputText{220}{\textdnblock}
+\DeclareInputText{221}{\textbrokenbar}
+\DeclareInputText{222}{\@tabacckludge`I}
+\DeclareInputText{223}{\textupblock}
+\DeclareInputText{224}{\@tabacckludge'O}
+\DeclareInputText{225}{\ss}
+\DeclareInputText{226}{\^O}
+\DeclareInputText{227}{\@tabacckludge`O}
+\DeclareInputText{228}{\~o}
+\DeclareInputText{229}{\~O}
+\DeclareInputText{230}{\textmu}
+\DeclareInputText{231}{\th}
+\DeclareInputText{232}{\TH}
+\DeclareInputText{233}{\@tabacckludge'U}
+\DeclareInputText{234}{\^U}
+\DeclareInputText{235}{\@tabacckludge`U}
+\DeclareInputText{236}{\@tabacckludge'y}
+\DeclareInputText{237}{\@tabacckludge'Y}
+\DeclareInputText{238}{\textasciimacron}
+\DeclareInputText{239}{\textasciiacute}
+\DeclareInputText{240}{\-}
+\DeclareInputText{241}{\textpm}
+\DeclareInputText{243}{\textthreequarters}
+\DeclareInputText{244}{\textparagraph}
+\DeclareInputText{245}{\textsection}
+\DeclareInputText{246}{\textdiv}
+\DeclareInputText{247}{\c\ }
+\DeclareInputText{248}{\textdegree}
+\DeclareInputText{249}{\textasciidieresis}
+\DeclareInputText{250}{\textperiodcentered}
+\DeclareInputText{251}{\textonesuperior}
+\DeclareInputText{252}{\textthreesuperior}
+\DeclareInputText{253}{\texttwosuperior}
+\DeclareInputText{254}{\textblacksquare}
+\DeclareInputText{255}{\nobreakspace}
+%</cp850>
+% \end{macrocode}
+%
+% \subsubsection{Encoding cp852}
+%
+% \begin{macrocode}
+%<*cp852>
+\ProvidesFile{x-cp852.def}%
+ [2006/08/24 v1.0 Input encoding cp852 (inputenx)]
+\ProvideTextCommandDefault{\textacutedbl}{%
+ \H{}%
+}
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciibreve}{%
+ \u{}%
+}
+\ProvideTextCommandDefault{\textasciicaron}{%
+ \v{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textblacksquare}{%
+ \vrule \@width .3em \@height .4em \@depth -.1em\relax
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\DeclareInputText{128}{\c C}
+\DeclareInputText{129}{\"u}
+\DeclareInputText{130}{\@tabacckludge'e}
+\DeclareInputText{131}{\^a}
+\DeclareInputText{132}{\"a}
+\DeclareInputText{133}{\r u}
+\DeclareInputText{134}{\@tabacckludge'c}
+\DeclareInputText{135}{\c c}
+\DeclareInputText{136}{\l}
+\DeclareInputText{137}{\"e}
+\DeclareInputText{138}{\H O}
+\DeclareInputText{139}{\H o}
+\DeclareInputText{140}{\^\i}
+\DeclareInputText{141}{\@tabacckludge'Z}
+\DeclareInputText{142}{\"A}
+\DeclareInputText{143}{\@tabacckludge'C}
+\DeclareInputText{144}{\@tabacckludge'E}
+\DeclareInputText{145}{\@tabacckludge'L}
+\DeclareInputText{146}{\@tabacckludge'l}
+\DeclareInputText{147}{\^o}
+\DeclareInputText{148}{\"o}
+\DeclareInputText{149}{\v L}
+\DeclareInputText{150}{\v l}
+\DeclareInputText{151}{\@tabacckludge'S}
+\DeclareInputText{152}{\@tabacckludge's}
+\DeclareInputText{153}{\"O}
+\DeclareInputText{154}{\"U}
+\DeclareInputText{155}{\v T}
+\DeclareInputText{156}{\v t}
+\DeclareInputText{157}{\L}
+\DeclareInputText{158}{\texttimes}
+\DeclareInputText{159}{\v c}
+\DeclareInputText{160}{\@tabacckludge'a}
+\DeclareInputText{161}{\@tabacckludge'\i}
+\DeclareInputText{162}{\@tabacckludge'o}
+\DeclareInputText{163}{\@tabacckludge'u}
+\DeclareInputText{164}{\k A}
+\DeclareInputText{165}{\k a}
+\DeclareInputText{166}{\v Z}
+\DeclareInputText{167}{\v z}
+\DeclareInputText{168}{\k E}
+\DeclareInputText{169}{\k e}
+\DeclareInputText{170}{\textlnot}
+\DeclareInputText{171}{\@tabacckludge'z}
+\DeclareInputText{172}{\v C}
+\DeclareInputText{173}{\c s}
+\DeclareInputText{174}{\guillemotleft}
+\DeclareInputText{175}{\guillemotright}
+\DeclareInputText{176}{\textltshade}
+\DeclareInputText{177}{\textshade}
+\DeclareInputText{178}{\textdkshade}
+\DeclareInputText{179}{\textSFxi}
+\DeclareInputText{180}{\textSFix}
+\DeclareInputText{181}{\@tabacckludge'A}
+\DeclareInputText{182}{\^A}
+\DeclareInputText{183}{\v E}
+\DeclareInputText{184}{\c S}
+\DeclareInputText{185}{\textSFxxiii}
+\DeclareInputText{186}{\textSFxxiv}
+\DeclareInputText{187}{\textSFxxv}
+\DeclareInputText{188}{\textSFxxvi}
+\DeclareInputText{189}{\.Z}
+\DeclareInputText{190}{\.z}
+\DeclareInputText{191}{\textSFiii}
+\DeclareInputText{192}{\textSFii}
+\DeclareInputText{193}{\textSFvii}
+\DeclareInputText{194}{\textSFvi}
+\DeclareInputText{195}{\textSFviii}
+\DeclareInputText{196}{\textSFx}
+\DeclareInputText{197}{\textSFv}
+\DeclareInputText{198}{\u A}
+\DeclareInputText{199}{\u a}
+\DeclareInputText{200}{\textSFxxxviii}
+\DeclareInputText{201}{\textSFxxxix}
+\DeclareInputText{202}{\textSFxl}
+\DeclareInputText{203}{\textSFxli}
+\DeclareInputText{204}{\textSFxlii}
+\DeclareInputText{205}{\textSFxliii}
+\DeclareInputText{206}{\textSFxliv}
+\DeclareInputText{207}{\textcurrency}
+\DeclareInputText{208}{\dj}
+\DeclareInputText{209}{\DJ}
+\DeclareInputText{210}{\v D}
+\DeclareInputText{211}{\"E}
+\DeclareInputText{212}{\v d}
+\DeclareInputText{213}{\v N}
+\DeclareInputText{214}{\@tabacckludge'I}
+\DeclareInputText{215}{\^I}
+\DeclareInputText{216}{\v e}
+\DeclareInputText{217}{\textSFiv}
+\DeclareInputText{218}{\textSFi}
+\DeclareInputText{219}{\textblock}
+\DeclareInputText{220}{\textdnblock}
+\DeclareInputText{221}{\c T}
+\DeclareInputText{222}{\r U}
+\DeclareInputText{223}{\textupblock}
+\DeclareInputText{224}{\@tabacckludge'O}
+\DeclareInputText{225}{\ss}
+\DeclareInputText{226}{\^O}
+\DeclareInputText{227}{\@tabacckludge'N}
+\DeclareInputText{228}{\@tabacckludge'n}
+\DeclareInputText{229}{\v n}
+\DeclareInputText{230}{\v S}
+\DeclareInputText{231}{\v s}
+\DeclareInputText{232}{\@tabacckludge'R}
+\DeclareInputText{233}{\@tabacckludge'U}
+\DeclareInputText{234}{\@tabacckludge'r}
+\DeclareInputText{235}{\H U}
+\DeclareInputText{236}{\@tabacckludge'y}
+\DeclareInputText{237}{\@tabacckludge'Y}
+\DeclareInputText{238}{\c t}
+\DeclareInputText{239}{\textasciiacute}
+\DeclareInputText{240}{\-}
+\DeclareInputText{241}{\textacutedbl}
+\DeclareInputText{242}{\k{}}
+\DeclareInputText{243}{\textasciicaron}
+\DeclareInputText{244}{\textasciibreve}
+\DeclareInputText{245}{\textsection}
+\DeclareInputText{246}{\textdiv}
+\DeclareInputText{247}{\c\ }
+\DeclareInputText{248}{\textdegree}
+\DeclareInputText{249}{\textasciidieresis}
+\DeclareInputText{250}{\.{}}
+\DeclareInputText{251}{\H u}
+\DeclareInputText{252}{\v R}
+\DeclareInputText{253}{\v r}
+\DeclareInputText{254}{\textblacksquare}
+\DeclareInputText{255}{\nobreakspace}
+%</cp852>
+% \end{macrocode}
+%
+% \subsubsection{Encoding cp858}
+%
+% \begin{macrocode}
+%<*cp858>
+\ProvidesFile{x-cp858.def}%
+ [2006/08/24 v1.0 Input encoding cp858 (inputenx)]
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+}
+\ProvideTextCommandDefault{\textblacksquare}{%
+ \vrule \@width .3em \@height .4em \@depth -.1em\relax
+}
+\ProvideTextCommandDefault{\textbrokenbar}{%
+ \TextSymbolUnavailable\textbrokenbar
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\texteuro}{%
+ \TextSymbolUnavailable\texteuro
+}
+\ProvideTextCommandDefault{\textflorin}{%
+ \textit{f}%
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textthreequarters}{%
+ \ensuremath{\frac34}%
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+}
+\DeclareInputText{128}{\c C}
+\DeclareInputText{129}{\"u}
+\DeclareInputText{130}{\@tabacckludge'e}
+\DeclareInputText{131}{\^a}
+\DeclareInputText{132}{\"a}
+\DeclareInputText{133}{\@tabacckludge`a}
+\DeclareInputText{134}{\r a}
+\DeclareInputText{135}{\c c}
+\DeclareInputText{136}{\^e}
+\DeclareInputText{137}{\"e}
+\DeclareInputText{138}{\@tabacckludge`e}
+\DeclareInputText{139}{\"\i}
+\DeclareInputText{140}{\^\i}
+\DeclareInputText{141}{\@tabacckludge`\i}
+\DeclareInputText{142}{\"A}
+\DeclareInputText{143}{\r A}
+\DeclareInputText{144}{\@tabacckludge'E}
+\DeclareInputText{145}{\ae}
+\DeclareInputText{146}{\AE}
+\DeclareInputText{147}{\^o}
+\DeclareInputText{148}{\"o}
+\DeclareInputText{149}{\@tabacckludge`o}
+\DeclareInputText{150}{\^u}
+\DeclareInputText{151}{\@tabacckludge`u}
+\DeclareInputText{152}{\"y}
+\DeclareInputText{153}{\"O}
+\DeclareInputText{154}{\"U}
+\DeclareInputText{155}{\o}
+\DeclareInputText{156}{\textsterling}
+\DeclareInputText{157}{\O}
+\DeclareInputText{158}{\texttimes}
+\DeclareInputText{159}{\textflorin}
+\DeclareInputText{160}{\@tabacckludge'a}
+\DeclareInputText{161}{\@tabacckludge'\i}
+\DeclareInputText{162}{\@tabacckludge'o}
+\DeclareInputText{163}{\@tabacckludge'u}
+\DeclareInputText{164}{\~n}
+\DeclareInputText{165}{\~N}
+\DeclareInputText{166}{\textordfeminine}
+\DeclareInputText{167}{\textordmasculine}
+\DeclareInputText{168}{\textquestiondown}
+\DeclareInputText{169}{\textregistered}
+\DeclareInputText{170}{\textlnot}
+\DeclareInputText{171}{\textonehalf}
+\DeclareInputText{172}{\textonequarter}
+\DeclareInputText{173}{\textexclamdown}
+\DeclareInputText{174}{\guillemotleft}
+\DeclareInputText{175}{\guillemotright}
+\DeclareInputText{176}{\textltshade}
+\DeclareInputText{177}{\textshade}
+\DeclareInputText{178}{\textdkshade}
+\DeclareInputText{179}{\textSFxi}
+\DeclareInputText{180}{\textSFix}
+\DeclareInputText{181}{\@tabacckludge'A}
+\DeclareInputText{182}{\^A}
+\DeclareInputText{183}{\@tabacckludge`A}
+\DeclareInputText{184}{\textcopyright}
+\DeclareInputText{185}{\textSFxxiii}
+\DeclareInputText{186}{\textSFxxiv}
+\DeclareInputText{187}{\textSFxxv}
+\DeclareInputText{188}{\textSFxxvi}
+\DeclareInputText{189}{\textcent}
+\DeclareInputText{190}{\textyen}
+\DeclareInputText{191}{\textSFiii}
+\DeclareInputText{192}{\textSFii}
+\DeclareInputText{193}{\textSFvii}
+\DeclareInputText{194}{\textSFvi}
+\DeclareInputText{195}{\textSFviii}
+\DeclareInputText{196}{\textSFx}
+\DeclareInputText{197}{\textSFv}
+\DeclareInputText{198}{\~a}
+\DeclareInputText{199}{\~A}
+\DeclareInputText{200}{\textSFxxxviii}
+\DeclareInputText{201}{\textSFxxxix}
+\DeclareInputText{202}{\textSFxl}
+\DeclareInputText{203}{\textSFxli}
+\DeclareInputText{204}{\textSFxlii}
+\DeclareInputText{205}{\textSFxliii}
+\DeclareInputText{206}{\textSFxliv}
+\DeclareInputText{207}{\textcurrency}
+\DeclareInputText{208}{\dh}
+\DeclareInputText{209}{\DH}
+\DeclareInputText{210}{\^E}
+\DeclareInputText{211}{\"E}
+\DeclareInputText{212}{\@tabacckludge`E}
+\DeclareInputText{213}{\texteuro}
+\DeclareInputText{214}{\@tabacckludge'I}
+\DeclareInputText{215}{\^I}
+\DeclareInputText{216}{\"I}
+\DeclareInputText{217}{\textSFiv}
+\DeclareInputText{218}{\textSFi}
+\DeclareInputText{219}{\textblock}
+\DeclareInputText{220}{\textdnblock}
+\DeclareInputText{221}{\textbrokenbar}
+\DeclareInputText{222}{\@tabacckludge`I}
+\DeclareInputText{223}{\textupblock}
+\DeclareInputText{224}{\@tabacckludge'O}
+\DeclareInputText{225}{\ss}
+\DeclareInputText{226}{\^O}
+\DeclareInputText{227}{\@tabacckludge`O}
+\DeclareInputText{228}{\~o}
+\DeclareInputText{229}{\~O}
+\DeclareInputText{230}{\textmu}
+\DeclareInputText{231}{\th}
+\DeclareInputText{232}{\TH}
+\DeclareInputText{233}{\@tabacckludge'U}
+\DeclareInputText{234}{\^U}
+\DeclareInputText{235}{\@tabacckludge`U}
+\DeclareInputText{236}{\@tabacckludge'y}
+\DeclareInputText{237}{\@tabacckludge'Y}
+\DeclareInputText{238}{\textasciimacron}
+\DeclareInputText{239}{\textasciiacute}
+\DeclareInputText{240}{\-}
+\DeclareInputText{241}{\textpm}
+\DeclareInputText{243}{\textthreequarters}
+\DeclareInputText{244}{\textparagraph}
+\DeclareInputText{245}{\textsection}
+\DeclareInputText{246}{\textdiv}
+\DeclareInputText{247}{\c\ }
+\DeclareInputText{248}{\textdegree}
+\DeclareInputText{249}{\textasciidieresis}
+\DeclareInputText{250}{\textperiodcentered}
+\DeclareInputText{251}{\textonesuperior}
+\DeclareInputText{252}{\textthreesuperior}
+\DeclareInputText{253}{\texttwosuperior}
+\DeclareInputText{254}{\textblacksquare}
+\DeclareInputText{255}{\nobreakspace}
+%</cp858>
+% \end{macrocode}
+%
+% \subsubsection{Encoding cp865}
+%
+% \begin{macrocode}
+%<*cp865>
+\ProvidesFile{x-cp865.def}%
+ [2006/08/24 v1.0 Input encoding cp865 (inputenx)]
+\ProvideTextCommandDefault{\textGamma}{%
+ \ensuremath\Gamma
+}
+\ProvideTextCommandDefault{\textOmega}{%
+ \ensuremath\Omega
+}
+\ProvideTextCommandDefault{\textPhi}{%
+ \ensuremath\Phi
+}
+\ProvideTextCommandDefault{\textSigma}{%
+ \ensuremath\Sigma
+}
+\ProvideTextCommandDefault{\textTheta}{%
+ \ensuremath\Theta
+}
+\ProvideTextCommandDefault{\textalpha}{%
+ \ensuremath\alpha
+}
+\ProvideTextCommandDefault{\textapproxequal}{%
+ \ensuremath\approx
+}
+\ProvideTextCommandDefault{\textblacksquare}{%
+ \vrule \@width .3em \@height .4em \@depth -.1em\relax
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdelta}{%
+ \ensuremath\delta
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textepsilon}{%
+ \ensuremath\varepsilon
+}
+\ProvideTextCommandDefault{\textequivalence}{%
+ \ensuremath\equiv
+}
+\ProvideTextCommandDefault{\textflorin}{%
+ \textit{f}%
+}
+\ProvideTextCommandDefault{\textgreaterequal}{%
+ \ensuremath\geq
+}
+\ProvideTextCommandDefault{\textinfinity}{%
+ \ensuremath\infty
+}
+\ProvideTextCommandDefault{\textintersection}{%
+ \ensuremath\cap
+}
+\ProvideTextCommandDefault{\textlessequal}{%
+ \ensuremath\leq
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textnsuperior}{%
+ \ensuremath{{^n}}%
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textpeseta}{%
+ Pt%
+}
+\ProvideTextCommandDefault{\textphi}{%
+ \ensuremath\phi
+}
+\ProvideTextCommandDefault{\textpi}{%
+ \ensuremath\pi
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textsigma}{%
+ \ensuremath\sigma
+}
+\ProvideTextCommandDefault{\textsurd}{%
+ \ensuremath\surd
+}
+\ProvideTextCommandDefault{\texttau}{%
+ \ensuremath\tau
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\DeclareInputText{128}{\c C}
+\DeclareInputText{129}{\"u}
+\DeclareInputText{130}{\@tabacckludge'e}
+\DeclareInputText{131}{\^a}
+\DeclareInputText{132}{\"a}
+\DeclareInputText{133}{\@tabacckludge`a}
+\DeclareInputText{134}{\r a}
+\DeclareInputText{135}{\c c}
+\DeclareInputText{136}{\^e}
+\DeclareInputText{137}{\"e}
+\DeclareInputText{138}{\@tabacckludge`e}
+\DeclareInputText{139}{\"\i}
+\DeclareInputText{140}{\^\i}
+\DeclareInputText{141}{\@tabacckludge`\i}
+\DeclareInputText{142}{\"A}
+\DeclareInputText{143}{\r A}
+\DeclareInputText{144}{\@tabacckludge'E}
+\DeclareInputText{145}{\ae}
+\DeclareInputText{146}{\AE}
+\DeclareInputText{147}{\^o}
+\DeclareInputText{148}{\"o}
+\DeclareInputText{149}{\@tabacckludge`o}
+\DeclareInputText{150}{\^u}
+\DeclareInputText{151}{\@tabacckludge`u}
+\DeclareInputText{152}{\"y}
+\DeclareInputText{153}{\"O}
+\DeclareInputText{154}{\"U}
+\DeclareInputText{155}{\o}
+\DeclareInputText{156}{\textsterling}
+\DeclareInputText{157}{\O}
+\DeclareInputText{158}{\textpeseta}
+\DeclareInputText{159}{\textflorin}
+\DeclareInputText{160}{\@tabacckludge'a}
+\DeclareInputText{161}{\@tabacckludge'\i}
+\DeclareInputText{162}{\@tabacckludge'o}
+\DeclareInputText{163}{\@tabacckludge'u}
+\DeclareInputText{164}{\~n}
+\DeclareInputText{165}{\~N}
+\DeclareInputText{166}{\textordfeminine}
+\DeclareInputText{167}{\textordmasculine}
+\DeclareInputText{168}{\textquestiondown}
+\DeclareInputText{170}{\textlnot}
+\DeclareInputText{171}{\textonehalf}
+\DeclareInputText{172}{\textonequarter}
+\DeclareInputText{173}{\textexclamdown}
+\DeclareInputText{174}{\guillemotleft}
+\DeclareInputText{175}{\textcurrency}
+\DeclareInputText{176}{\textltshade}
+\DeclareInputText{177}{\textshade}
+\DeclareInputText{178}{\textdkshade}
+\DeclareInputText{179}{\textSFxi}
+\DeclareInputText{180}{\textSFix}
+\DeclareInputText{181}{\textSFxix}
+\DeclareInputText{182}{\textSFxx}
+\DeclareInputText{183}{\textSFxxi}
+\DeclareInputText{184}{\textSFxxii}
+\DeclareInputText{185}{\textSFxxiii}
+\DeclareInputText{186}{\textSFxxiv}
+\DeclareInputText{187}{\textSFxxv}
+\DeclareInputText{188}{\textSFxxvi}
+\DeclareInputText{189}{\textSFxxvii}
+\DeclareInputText{190}{\textSFxxviii}
+\DeclareInputText{191}{\textSFiii}
+\DeclareInputText{192}{\textSFii}
+\DeclareInputText{193}{\textSFvii}
+\DeclareInputText{194}{\textSFvi}
+\DeclareInputText{195}{\textSFviii}
+\DeclareInputText{196}{\textSFx}
+\DeclareInputText{197}{\textSFv}
+\DeclareInputText{198}{\textSFxxxvi}
+\DeclareInputText{199}{\textSFxxxvii}
+\DeclareInputText{200}{\textSFxxxviii}
+\DeclareInputText{201}{\textSFxxxix}
+\DeclareInputText{202}{\textSFxl}
+\DeclareInputText{203}{\textSFxli}
+\DeclareInputText{204}{\textSFxlii}
+\DeclareInputText{205}{\textSFxliii}
+\DeclareInputText{206}{\textSFxliv}
+\DeclareInputText{207}{\textSFxlv}
+\DeclareInputText{208}{\textSFxlvi}
+\DeclareInputText{209}{\textSFxlvii}
+\DeclareInputText{210}{\textSFxlviii}
+\DeclareInputText{211}{\textSFxlix}
+\DeclareInputText{212}{\textSFl}
+\DeclareInputText{213}{\textSFli}
+\DeclareInputText{214}{\textSFlii}
+\DeclareInputText{215}{\textSFliii}
+\DeclareInputText{216}{\textSFliv}
+\DeclareInputText{217}{\textSFiv}
+\DeclareInputText{218}{\textSFi}
+\DeclareInputText{219}{\textblock}
+\DeclareInputText{220}{\textdnblock}
+\DeclareInputText{221}{\textlfblock}
+\DeclareInputText{222}{\textrtblock}
+\DeclareInputText{223}{\textupblock}
+\DeclareInputText{224}{\textalpha}
+\DeclareInputText{225}{\ss}
+\DeclareInputText{226}{\textGamma}
+\DeclareInputText{227}{\textpi}
+\DeclareInputText{228}{\textSigma}
+\DeclareInputText{229}{\textsigma}
+\DeclareInputText{230}{\textmu}
+\DeclareInputText{231}{\texttau}
+\DeclareInputText{232}{\textPhi}
+\DeclareInputText{233}{\textTheta}
+\DeclareInputText{234}{\textOmega}
+\DeclareInputText{235}{\textdelta}
+\DeclareInputText{236}{\textinfinity}
+\DeclareInputText{237}{\textphi}
+\DeclareInputText{238}{\textepsilon}
+\DeclareInputText{239}{\textintersection}
+\DeclareInputText{240}{\textequivalence}
+\DeclareInputText{241}{\textpm}
+\DeclareInputText{242}{\textgreaterequal}
+\DeclareInputText{243}{\textlessequal}
+\DeclareInputText{246}{\textdiv}
+\DeclareInputText{247}{\textapproxequal}
+\DeclareInputText{248}{\textdegree}
+\DeclareInputText{249}{\textbullet}
+\DeclareInputText{250}{\textperiodcentered}
+\DeclareInputText{251}{\textsurd}
+\DeclareInputText{252}{\textnsuperior}
+\DeclareInputText{253}{\texttwosuperior}
+\DeclareInputText{254}{\textblacksquare}
+\DeclareInputText{255}{\nobreakspace}
+%</cp865>
+% \end{macrocode}
+%
+% \subsubsection{Encoding cp1250}
+%
+% \begin{macrocode}
+%<*cp1250>
+\ProvidesFile{x-cp1250.def}%
+ [2006/08/24 v1.0 Input encoding cp1250 (inputenx)]
+\ProvideTextCommandDefault{\textacutedbl}{%
+ \H{}%
+}
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciibreve}{%
+ \u{}%
+}
+\ProvideTextCommandDefault{\textasciicaron}{%
+ \v{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textbrokenbar}{%
+ \TextSymbolUnavailable\textbrokenbar
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\texteuro}{%
+ \TextSymbolUnavailable\texteuro
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\DeclareInputText{128}{\texteuro}
+\DeclareInputText{130}{\quotesinglbase}
+\DeclareInputText{132}{\quotedblbase}
+\DeclareInputText{133}{\textellipsis}
+\DeclareInputText{134}{\textdagger}
+\DeclareInputText{135}{\textdaggerdbl}
+\DeclareInputText{137}{\textperthousand}
+\DeclareInputText{138}{\v S}
+\DeclareInputText{139}{\guilsinglleft}
+\DeclareInputText{140}{\@tabacckludge'S}
+\DeclareInputText{141}{\v T}
+\DeclareInputText{142}{\v Z}
+\DeclareInputText{143}{\@tabacckludge'Z}
+\DeclareInputText{145}{\textquoteleft}
+\DeclareInputText{146}{\textquoteright}
+\DeclareInputText{147}{\textquotedblleft}
+\DeclareInputText{148}{\textquotedblright}
+\DeclareInputText{149}{\textbullet}
+\DeclareInputText{150}{\textendash}
+\DeclareInputText{151}{\textemdash}
+\DeclareInputText{153}{\texttrademark}
+\DeclareInputText{154}{\v s}
+\DeclareInputText{155}{\guilsinglright}
+\DeclareInputText{156}{\@tabacckludge's}
+\DeclareInputText{157}{\v t}
+\DeclareInputText{158}{\v z}
+\DeclareInputText{159}{\@tabacckludge'z}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\textasciicaron}
+\DeclareInputText{162}{\textasciibreve}
+\DeclareInputText{163}{\L}
+\DeclareInputText{164}{\textcurrency}
+\DeclareInputText{165}{\k A}
+\DeclareInputText{166}{\textbrokenbar}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\textasciidieresis}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\c S}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputText{172}{\textlnot}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\textregistered}
+\DeclareInputText{175}{\.Z}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\textpm}
+\DeclareInputText{178}{\k{}}
+\DeclareInputText{179}{\l}
+\DeclareInputText{180}{\textasciiacute}
+\DeclareInputText{181}{\textmu}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{184}{\c\ }
+\DeclareInputText{185}{\k a}
+\DeclareInputText{186}{\c s}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\v L}
+\DeclareInputText{189}{\textacutedbl}
+\DeclareInputText{190}{\v l}
+\DeclareInputText{191}{\.z}
+\DeclareInputText{192}{\@tabacckludge'R}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\u A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\@tabacckludge'L}
+\DeclareInputText{198}{\@tabacckludge'C}
+\DeclareInputText{199}{\c C}
+\DeclareInputText{200}{\v C}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\k E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\v E}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\v D}
+\DeclareInputText{208}{\DJ}
+\DeclareInputText{209}{\@tabacckludge'N}
+\DeclareInputText{210}{\v N}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\H O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\texttimes}
+\DeclareInputText{216}{\v R}
+\DeclareInputText{217}{\r U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\H U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\@tabacckludge'Y}
+\DeclareInputText{222}{\c T}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge'r}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\u a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\@tabacckludge'l}
+\DeclareInputText{230}{\@tabacckludge'c}
+\DeclareInputText{231}{\c c}
+\DeclareInputText{232}{\v c}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\k e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\v e}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\v d}
+\DeclareInputText{240}{\dj}
+\DeclareInputText{241}{\@tabacckludge'n}
+\DeclareInputText{242}{\v n}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\H o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\textdiv}
+\DeclareInputText{248}{\v r}
+\DeclareInputText{249}{\r u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\H u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\@tabacckludge'y}
+\DeclareInputText{254}{\c t}
+\DeclareInputText{255}{\.{}}
+%</cp1250>
+% \end{macrocode}
+%
+% \subsubsection{Encoding cp1252}
+%
+% \begin{macrocode}
+%<*cp1252>
+\ProvidesFile{x-cp1252.def}%
+ [2006/08/24 v1.0 Input encoding cp1252 (inputenx)]
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+}
+\ProvideTextCommandDefault{\textbrokenbar}{%
+ \TextSymbolUnavailable\textbrokenbar
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\texteuro}{%
+ \TextSymbolUnavailable\texteuro
+}
+\ProvideTextCommandDefault{\textflorin}{%
+ \textit{f}%
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textthreequarters}{%
+ \ensuremath{\frac34}%
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+}
+\DeclareInputText{128}{\texteuro}
+\DeclareInputText{130}{\quotesinglbase}
+\DeclareInputText{131}{\textflorin}
+\DeclareInputText{132}{\quotedblbase}
+\DeclareInputText{133}{\textellipsis}
+\DeclareInputText{134}{\textdagger}
+\DeclareInputText{135}{\textdaggerdbl}
+\DeclareInputText{136}{\textasciicircum}
+\DeclareInputText{137}{\textperthousand}
+\DeclareInputText{138}{\v S}
+\DeclareInputText{139}{\guilsinglleft}
+\DeclareInputText{140}{\OE}
+\DeclareInputText{142}{\v Z}
+\DeclareInputText{145}{\textquoteleft}
+\DeclareInputText{146}{\textquoteright}
+\DeclareInputText{147}{\textquotedblleft}
+\DeclareInputText{148}{\textquotedblright}
+\DeclareInputText{149}{\textbullet}
+\DeclareInputText{150}{\textendash}
+\DeclareInputText{151}{\textemdash}
+\DeclareInputText{152}{\textasciitilde}
+\DeclareInputText{153}{\texttrademark}
+\DeclareInputText{154}{\v s}
+\DeclareInputText{155}{\guilsinglright}
+\DeclareInputText{156}{\oe}
+\DeclareInputText{158}{\v z}
+\DeclareInputText{159}{\"Y}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{161}{\textexclamdown}
+\DeclareInputText{162}{\textcent}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\textcurrency}
+\DeclareInputText{165}{\textyen}
+\DeclareInputText{166}{\textbrokenbar}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\textasciidieresis}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\textordfeminine}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputText{172}{\textlnot}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\textregistered}
+\DeclareInputText{175}{\textasciimacron}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\textpm}
+\DeclareInputText{178}{\texttwosuperior}
+\DeclareInputText{179}{\textthreesuperior}
+\DeclareInputText{180}{\textasciiacute}
+\DeclareInputText{181}{\textmu}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{184}{\c\ }
+\DeclareInputText{185}{\textonesuperior}
+\DeclareInputText{186}{\textordmasculine}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\textonequarter}
+\DeclareInputText{189}{\textonehalf}
+\DeclareInputText{190}{\textthreequarters}
+\DeclareInputText{191}{\textquestiondown}
+\DeclareInputText{192}{\@tabacckludge`A}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\~A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\r A}
+\DeclareInputText{198}{\AE}
+\DeclareInputText{199}{\c C}
+\DeclareInputText{200}{\@tabacckludge`E}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\^E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\@tabacckludge`I}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\"I}
+\DeclareInputText{208}{\DH}
+\DeclareInputText{209}{\~N}
+\DeclareInputText{210}{\@tabacckludge`O}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\~O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\texttimes}
+\DeclareInputText{216}{\O}
+\DeclareInputText{217}{\@tabacckludge`U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\^U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\@tabacckludge'Y}
+\DeclareInputText{222}{\TH}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge`a}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\~a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\r a}
+\DeclareInputText{230}{\ae}
+\DeclareInputText{231}{\c c}
+\DeclareInputText{232}{\@tabacckludge`e}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\^e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\@tabacckludge`\i}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\"\i}
+\DeclareInputText{240}{\dh}
+\DeclareInputText{241}{\~n}
+\DeclareInputText{242}{\@tabacckludge`o}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\~o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\textdiv}
+\DeclareInputText{248}{\o}
+\DeclareInputText{249}{\@tabacckludge`u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\^u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\@tabacckludge'y}
+\DeclareInputText{254}{\th}
+\DeclareInputText{255}{\"y}
+%</cp1252>
+% \end{macrocode}
+%
+% \subsubsection{Encoding cp1257}
+%
+% \begin{macrocode}
+%<*cp1257>
+\ProvidesFile{x-cp1257.def}%
+ [2006/08/24 v1.0 Input encoding cp1257 (inputenx)]
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciicaron}{%
+ \v{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+}
+\ProvideTextCommandDefault{\textbrokenbar}{%
+ \TextSymbolUnavailable\textbrokenbar
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\texteuro}{%
+ \TextSymbolUnavailable\texteuro
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textthreequarters}{%
+ \ensuremath{\frac34}%
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\DeclareInputText{128}{\texteuro}
+\DeclareInputText{130}{\quotesinglbase}
+\DeclareInputText{132}{\quotedblbase}
+\DeclareInputText{133}{\textellipsis}
+\DeclareInputText{134}{\textdagger}
+\DeclareInputText{135}{\textdaggerdbl}
+\DeclareInputText{137}{\textperthousand}
+\DeclareInputText{139}{\guilsinglleft}
+\DeclareInputText{141}{\textasciidieresis}
+\DeclareInputText{142}{\textasciicaron}
+\DeclareInputText{143}{\c\ }
+\DeclareInputText{145}{\textquoteleft}
+\DeclareInputText{146}{\textquoteright}
+\DeclareInputText{147}{\textquotedblleft}
+\DeclareInputText{148}{\textquotedblright}
+\DeclareInputText{149}{\textbullet}
+\DeclareInputText{150}{\textendash}
+\DeclareInputText{151}{\textemdash}
+\DeclareInputText{153}{\texttrademark}
+\DeclareInputText{155}{\guilsinglright}
+\DeclareInputText{157}{\textasciimacron}
+\DeclareInputText{158}{\k{}}
+\DeclareInputText{160}{\nobreakspace}
+\DeclareInputText{162}{\textcent}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\textcurrency}
+\DeclareInputText{166}{\textbrokenbar}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\O}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\c R}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputText{172}{\textlnot}
+\DeclareInputText{173}{\-}
+\DeclareInputText{174}{\textregistered}
+\DeclareInputText{175}{\AE}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\textpm}
+\DeclareInputText{178}{\texttwosuperior}
+\DeclareInputText{179}{\textthreesuperior}
+\DeclareInputText{180}{\textasciiacute}
+\DeclareInputText{181}{\textmu}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{184}{\o}
+\DeclareInputText{185}{\textonesuperior}
+\DeclareInputText{186}{\c r}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\textonequarter}
+\DeclareInputText{189}{\textonehalf}
+\DeclareInputText{190}{\textthreequarters}
+\DeclareInputText{191}{\ae}
+\DeclareInputText{192}{\k A}
+\DeclareInputText{193}{\k I}
+\DeclareInputText{194}{\@tabacckludge=A}
+\DeclareInputText{195}{\@tabacckludge'C}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\r A}
+\DeclareInputText{198}{\k E}
+\DeclareInputText{199}{\@tabacckludge=E}
+\DeclareInputText{200}{\v C}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\@tabacckludge'Z}
+\DeclareInputText{203}{\.E}
+\DeclareInputText{204}{\c G}
+\DeclareInputText{205}{\c K}
+\DeclareInputText{206}{\@tabacckludge=I}
+\DeclareInputText{207}{\c L}
+\DeclareInputText{208}{\v S}
+\DeclareInputText{209}{\@tabacckludge'N}
+\DeclareInputText{210}{\c N}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\@tabacckludge=O}
+\DeclareInputText{213}{\~O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\texttimes}
+\DeclareInputText{216}{\k U}
+\DeclareInputText{217}{\L}
+\DeclareInputText{218}{\@tabacckludge'S}
+\DeclareInputText{219}{\@tabacckludge=U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\.Z}
+\DeclareInputText{222}{\v Z}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\k a}
+\DeclareInputText{225}{\k i}
+\DeclareInputText{226}{\@tabacckludge=a}
+\DeclareInputText{227}{\@tabacckludge'c}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\r a}
+\DeclareInputText{230}{\k e}
+\DeclareInputText{231}{\@tabacckludge=e}
+\DeclareInputText{232}{\v c}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\@tabacckludge'z}
+\DeclareInputText{235}{\.e}
+\DeclareInputText{236}{\c g}
+\DeclareInputText{237}{\c k}
+\DeclareInputText{238}{\@tabacckludge=\i}
+\DeclareInputText{239}{\c l}
+\DeclareInputText{240}{\v s}
+\DeclareInputText{241}{\@tabacckludge'n}
+\DeclareInputText{242}{\c n}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\@tabacckludge=o}
+\DeclareInputText{245}{\~o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\textdiv}
+\DeclareInputText{248}{\k u}
+\DeclareInputText{249}{\l}
+\DeclareInputText{250}{\@tabacckludge's}
+\DeclareInputText{251}{\@tabacckludge=u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\.z}
+\DeclareInputText{254}{\v z}
+\DeclareInputText{255}{\.{}}
+%</cp1257>
+% \end{macrocode}
+%
+% \subsubsection{Encoding mac-roman}
+%
+% \begin{macrocode}
+%<*mac-roman>
+\ProvidesFile{x-mac-roman.def}%
+ [2006/08/24 v1.0 Input encoding mac-roman (inputenx)]
+\ProvideTextCommandDefault{\textOmega}{%
+ \ensuremath\Omega
+}
+\ProvideTextCommandDefault{\textacutedbl}{%
+ \H{}%
+}
+\ProvideTextCommandDefault{\textapproxequal}{%
+ \ensuremath\approx
+}
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciibreve}{%
+ \u{}%
+}
+\ProvideTextCommandDefault{\textasciicaron}{%
+ \v{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\texteuro}{%
+ \TextSymbolUnavailable\texteuro
+}
+\ProvideTextCommandDefault{\textflorin}{%
+ \textit{f}%
+}
+\ProvideTextCommandDefault{\textfractionsolidus}{%
+ /%
+}
+\ProvideTextCommandDefault{\textgreaterequal}{%
+ \ensuremath\geq
+}
+\ProvideTextCommandDefault{\textincrement}{%
+ \ensuremath\Delta
+}
+\ProvideTextCommandDefault{\textinfinity}{%
+ \ensuremath\infty
+}
+\ProvideTextCommandDefault{\textintegral}{%
+ \ensuremath\int
+}
+\ProvideTextCommandDefault{\textlessequal}{%
+ \ensuremath\leq
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textlozenge}{%
+ \ensuremath\diamond
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textnotequal}{%
+ \ensuremath\neq
+}
+\ProvideTextCommandDefault{\textpartial}{%
+ \ensuremath\partial
+}
+\ProvideTextCommandDefault{\textpi}{%
+ \ensuremath\pi
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textproduct}{%
+ \ensuremath\Pi
+}
+\ProvideTextCommandDefault{\textsummation}{%
+ \ensuremath\Sigma
+}
+\ProvideTextCommandDefault{\textsurd}{%
+ \ensuremath\surd
+}
+\ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+}
+\DeclareInputText{128}{\"A}
+\DeclareInputText{129}{\r A}
+\DeclareInputText{130}{\c C}
+\DeclareInputText{131}{\@tabacckludge'E}
+\DeclareInputText{132}{\~N}
+\DeclareInputText{133}{\"O}
+\DeclareInputText{134}{\"U}
+\DeclareInputText{135}{\@tabacckludge'a}
+\DeclareInputText{136}{\@tabacckludge`a}
+\DeclareInputText{137}{\^a}
+\DeclareInputText{138}{\"a}
+\DeclareInputText{139}{\~a}
+\DeclareInputText{140}{\r a}
+\DeclareInputText{141}{\c c}
+\DeclareInputText{142}{\@tabacckludge'e}
+\DeclareInputText{143}{\@tabacckludge`e}
+\DeclareInputText{144}{\^e}
+\DeclareInputText{145}{\"e}
+\DeclareInputText{146}{\@tabacckludge'\i}
+\DeclareInputText{147}{\@tabacckludge`\i}
+\DeclareInputText{148}{\^\i}
+\DeclareInputText{149}{\"\i}
+\DeclareInputText{150}{\~n}
+\DeclareInputText{151}{\@tabacckludge'o}
+\DeclareInputText{152}{\@tabacckludge`o}
+\DeclareInputText{153}{\^o}
+\DeclareInputText{154}{\"o}
+\DeclareInputText{155}{\~o}
+\DeclareInputText{156}{\@tabacckludge'u}
+\DeclareInputText{157}{\@tabacckludge`u}
+\DeclareInputText{158}{\^u}
+\DeclareInputText{159}{\"u}
+\DeclareInputText{160}{\textdagger}
+\DeclareInputText{161}{\textdegree}
+\DeclareInputText{162}{\textcent}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\textsection}
+\DeclareInputText{165}{\textbullet}
+\DeclareInputText{166}{\textparagraph}
+\DeclareInputText{167}{\ss}
+\DeclareInputText{168}{\textregistered}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\texttrademark}
+\DeclareInputText{171}{\textasciiacute}
+\DeclareInputText{172}{\textasciidieresis}
+\DeclareInputText{173}{\textnotequal}
+\DeclareInputText{174}{\AE}
+\DeclareInputText{175}{\O}
+\DeclareInputText{176}{\textinfinity}
+\DeclareInputText{177}{\textpm}
+\DeclareInputText{178}{\textlessequal}
+\DeclareInputText{179}{\textgreaterequal}
+\DeclareInputText{180}{\textyen}
+\DeclareInputText{181}{\textmu}
+\DeclareInputText{182}{\textpartial}
+\DeclareInputText{183}{\textsummation}
+\DeclareInputText{184}{\textproduct}
+\DeclareInputText{185}{\textpi}
+\DeclareInputText{186}{\textintegral}
+\DeclareInputText{187}{\textordfeminine}
+\DeclareInputText{188}{\textordmasculine}
+\DeclareInputText{189}{\textOmega}
+\DeclareInputText{190}{\ae}
+\DeclareInputText{191}{\o}
+\DeclareInputText{192}{\textquestiondown}
+\DeclareInputText{193}{\textexclamdown}
+\DeclareInputText{194}{\textlnot}
+\DeclareInputText{195}{\textsurd}
+\DeclareInputText{196}{\textflorin}
+\DeclareInputText{197}{\textapproxequal}
+\DeclareInputText{198}{\textincrement}
+\DeclareInputText{199}{\guillemotleft}
+\DeclareInputText{200}{\guillemotright}
+\DeclareInputText{201}{\textellipsis}
+\DeclareInputText{202}{\nobreakspace}
+\DeclareInputText{203}{\@tabacckludge`A}
+\DeclareInputText{204}{\~A}
+\DeclareInputText{205}{\~O}
+\DeclareInputText{206}{\OE}
+\DeclareInputText{207}{\oe}
+\DeclareInputText{208}{\textendash}
+\DeclareInputText{209}{\textemdash}
+\DeclareInputText{210}{\textquotedblleft}
+\DeclareInputText{211}{\textquotedblright}
+\DeclareInputText{212}{\textquoteleft}
+\DeclareInputText{213}{\textquoteright}
+\DeclareInputText{214}{\textdiv}
+\DeclareInputText{215}{\textlozenge}
+\DeclareInputText{216}{\"y}
+\DeclareInputText{217}{\"Y}
+\DeclareInputText{218}{\textfractionsolidus}
+\DeclareInputText{219}{\texteuro}
+\DeclareInputText{220}{\guilsinglleft}
+\DeclareInputText{221}{\guilsinglright}
+\DeclareInputText{222}{fi}
+\DeclareInputText{223}{fl}
+\DeclareInputText{224}{\textdaggerdbl}
+\DeclareInputText{225}{\textperiodcentered}
+\DeclareInputText{226}{\quotesinglbase}
+\DeclareInputText{227}{\quotedblbase}
+\DeclareInputText{228}{\textperthousand}
+\DeclareInputText{229}{\^A}
+\DeclareInputText{230}{\^E}
+\DeclareInputText{231}{\@tabacckludge'A}
+\DeclareInputText{232}{\"E}
+\DeclareInputText{233}{\@tabacckludge`E}
+\DeclareInputText{234}{\@tabacckludge'I}
+\DeclareInputText{235}{\^I}
+\DeclareInputText{236}{\"I}
+\DeclareInputText{237}{\@tabacckludge`I}
+\DeclareInputText{238}{\@tabacckludge'O}
+\DeclareInputText{239}{\^O}
+\DeclareInputText{241}{\@tabacckludge`O}
+\DeclareInputText{242}{\@tabacckludge'U}
+\DeclareInputText{243}{\^U}
+\DeclareInputText{244}{\@tabacckludge`U}
+\DeclareInputText{245}{\i}
+\DeclareInputText{246}{\textasciicircum}
+\DeclareInputText{247}{\textasciitilde}
+\DeclareInputText{248}{\textasciimacron}
+\DeclareInputText{249}{\textasciibreve}
+\DeclareInputText{250}{\.{}}
+\DeclareInputText{251}{\r{}}
+\DeclareInputText{252}{\c\ }
+\DeclareInputText{253}{\textacutedbl}
+\DeclareInputText{254}{\k{}}
+\DeclareInputText{255}{\textasciicaron}
+%</mac-roman>
+% \end{macrocode}
+%
+% \subsubsection{Encoding mac-ce}
+%
+% \begin{macrocode}
+%<*mac-ce>
+\ProvidesFile{x-mac-ce.def}%
+ [2006/08/24 v1.0 Input encoding mac-ce (inputenx)]
+\ProvideTextCommandDefault{\textasciicaron}{%
+ \v{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textgreaterequal}{%
+ \ensuremath\geq
+}
+\ProvideTextCommandDefault{\textincrement}{%
+ \ensuremath\Delta
+}
+\ProvideTextCommandDefault{\textlessequal}{%
+ \ensuremath\leq
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textlozenge}{%
+ \ensuremath\diamond
+}
+\ProvideTextCommandDefault{\textnotequal}{%
+ \ensuremath\neq
+}
+\ProvideTextCommandDefault{\textpartial}{%
+ \ensuremath\partial
+}
+\ProvideTextCommandDefault{\textsummation}{%
+ \ensuremath\Sigma
+}
+\ProvideTextCommandDefault{\textsurd}{%
+ \ensuremath\surd
+}
+\DeclareInputText{128}{\"A}
+\DeclareInputText{129}{\@tabacckludge=A}
+\DeclareInputText{130}{\@tabacckludge=a}
+\DeclareInputText{131}{\@tabacckludge'E}
+\DeclareInputText{132}{\k A}
+\DeclareInputText{133}{\"O}
+\DeclareInputText{134}{\"U}
+\DeclareInputText{135}{\@tabacckludge'a}
+\DeclareInputText{136}{\k a}
+\DeclareInputText{137}{\v C}
+\DeclareInputText{138}{\"a}
+\DeclareInputText{139}{\v c}
+\DeclareInputText{140}{\@tabacckludge'C}
+\DeclareInputText{141}{\@tabacckludge'c}
+\DeclareInputText{142}{\@tabacckludge'e}
+\DeclareInputText{143}{\@tabacckludge'Z}
+\DeclareInputText{144}{\@tabacckludge'z}
+\DeclareInputText{145}{\v D}
+\DeclareInputText{146}{\@tabacckludge'\i}
+\DeclareInputText{147}{\v d}
+\DeclareInputText{148}{\@tabacckludge=E}
+\DeclareInputText{149}{\@tabacckludge=e}
+\DeclareInputText{150}{\.E}
+\DeclareInputText{151}{\@tabacckludge'o}
+\DeclareInputText{152}{\.e}
+\DeclareInputText{153}{\^o}
+\DeclareInputText{154}{\"o}
+\DeclareInputText{155}{\~o}
+\DeclareInputText{156}{\@tabacckludge'u}
+\DeclareInputText{157}{\v E}
+\DeclareInputText{158}{\v e}
+\DeclareInputText{159}{\"u}
+\DeclareInputText{160}{\textdagger}
+\DeclareInputText{161}{\textdegree}
+\DeclareInputText{162}{\k E}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\textsection}
+\DeclareInputText{165}{\textbullet}
+\DeclareInputText{166}{\textparagraph}
+\DeclareInputText{167}{\ss}
+\DeclareInputText{168}{\textregistered}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\texttrademark}
+\DeclareInputText{171}{\k e}
+\DeclareInputText{172}{\textasciidieresis}
+\DeclareInputText{173}{\textnotequal}
+\DeclareInputText{174}{\c g}
+\DeclareInputText{175}{\k I}
+\DeclareInputText{176}{\k i}
+\DeclareInputText{177}{\@tabacckludge=I}
+\DeclareInputText{178}{\textlessequal}
+\DeclareInputText{179}{\textgreaterequal}
+\DeclareInputText{180}{\@tabacckludge=\i}
+\DeclareInputText{181}{\c K}
+\DeclareInputText{182}{\textpartial}
+\DeclareInputText{183}{\textsummation}
+\DeclareInputText{184}{\l}
+\DeclareInputText{185}{\c L}
+\DeclareInputText{186}{\c l}
+\DeclareInputText{187}{\v L}
+\DeclareInputText{188}{\v l}
+\DeclareInputText{189}{\@tabacckludge'L}
+\DeclareInputText{190}{\@tabacckludge'l}
+\DeclareInputText{191}{\c N}
+\DeclareInputText{192}{\c n}
+\DeclareInputText{193}{\@tabacckludge'N}
+\DeclareInputText{194}{\textlnot}
+\DeclareInputText{195}{\textsurd}
+\DeclareInputText{196}{\@tabacckludge'n}
+\DeclareInputText{197}{\v N}
+\DeclareInputText{198}{\textincrement}
+\DeclareInputText{199}{\guillemotleft}
+\DeclareInputText{200}{\guillemotright}
+\DeclareInputText{201}{\textellipsis}
+\DeclareInputText{202}{\nobreakspace}
+\DeclareInputText{203}{\v n}
+\DeclareInputText{204}{\H O}
+\DeclareInputText{205}{\~O}
+\DeclareInputText{206}{\H o}
+\DeclareInputText{207}{\@tabacckludge=O}
+\DeclareInputText{208}{\textendash}
+\DeclareInputText{209}{\textemdash}
+\DeclareInputText{210}{\textquotedblleft}
+\DeclareInputText{211}{\textquotedblright}
+\DeclareInputText{212}{\textquoteleft}
+\DeclareInputText{213}{\textquoteright}
+\DeclareInputText{214}{\textdiv}
+\DeclareInputText{215}{\textlozenge}
+\DeclareInputText{216}{\@tabacckludge=o}
+\DeclareInputText{217}{\@tabacckludge'R}
+\DeclareInputText{218}{\@tabacckludge'r}
+\DeclareInputText{219}{\v R}
+\DeclareInputText{220}{\guilsinglleft}
+\DeclareInputText{221}{\guilsinglright}
+\DeclareInputText{222}{\v r}
+\DeclareInputText{223}{\c R}
+\DeclareInputText{224}{\c r}
+\DeclareInputText{225}{\v S}
+\DeclareInputText{226}{\quotesinglbase}
+\DeclareInputText{227}{\quotedblbase}
+\DeclareInputText{228}{\v s}
+\DeclareInputText{229}{\@tabacckludge'S}
+\DeclareInputText{230}{\@tabacckludge's}
+\DeclareInputText{231}{\@tabacckludge'A}
+\DeclareInputText{232}{\v T}
+\DeclareInputText{233}{\v t}
+\DeclareInputText{234}{\@tabacckludge'I}
+\DeclareInputText{235}{\v Z}
+\DeclareInputText{236}{\v z}
+\DeclareInputText{237}{\@tabacckludge=U}
+\DeclareInputText{238}{\@tabacckludge'O}
+\DeclareInputText{239}{\^O}
+\DeclareInputText{240}{\@tabacckludge=u}
+\DeclareInputText{241}{\r U}
+\DeclareInputText{242}{\@tabacckludge'U}
+\DeclareInputText{243}{\r u}
+\DeclareInputText{244}{\H U}
+\DeclareInputText{245}{\H u}
+\DeclareInputText{246}{\k U}
+\DeclareInputText{247}{\k u}
+\DeclareInputText{248}{\@tabacckludge'Y}
+\DeclareInputText{249}{\@tabacckludge'y}
+\DeclareInputText{250}{\c k}
+\DeclareInputText{251}{\.Z}
+\DeclareInputText{252}{\L}
+\DeclareInputText{253}{\.z}
+\DeclareInputText{254}{\c G}
+\DeclareInputText{255}{\textasciicaron}
+%</mac-ce>
+% \end{macrocode}
+%
+% \subsubsection{Encoding nextstep}
+%
+% \begin{macrocode}
+%<*nextstep>
+\ProvidesFile{x-nextstep.def}%
+ [2006/08/24 v1.0 Input encoding nextstep (inputenx)]
+\ProvideTextCommandDefault{\textacutedbl}{%
+ \H{}%
+}
+\ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+}
+\ProvideTextCommandDefault{\textasciibreve}{%
+ \u{}%
+}
+\ProvideTextCommandDefault{\textasciicaron}{%
+ \v{}%
+}
+\ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+}
+\ProvideTextCommandDefault{\textasciigrave}{%
+ \@tabacckludge`{}%
+}
+\ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+}
+\ProvideTextCommandDefault{\textbrokenbar}{%
+ \TextSymbolUnavailable\textbrokenbar
+}
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+}
+\ProvideTextCommandDefault{\textflorin}{%
+ \textit{f}%
+}
+\ProvideTextCommandDefault{\textfractionsolidus}{%
+ /%
+}
+\ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textthreequarters}{%
+ \ensuremath{\frac34}%
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+}
+\DeclareInputText{128}{\nobreakspace}
+\DeclareInputText{129}{\@tabacckludge`A}
+\DeclareInputText{130}{\@tabacckludge'A}
+\DeclareInputText{131}{\^A}
+\DeclareInputText{132}{\~A}
+\DeclareInputText{133}{\"A}
+\DeclareInputText{134}{\r A}
+\DeclareInputText{135}{\c C}
+\DeclareInputText{136}{\@tabacckludge`E}
+\DeclareInputText{137}{\@tabacckludge'E}
+\DeclareInputText{138}{\^E}
+\DeclareInputText{139}{\"E}
+\DeclareInputText{140}{\@tabacckludge`I}
+\DeclareInputText{141}{\@tabacckludge'I}
+\DeclareInputText{142}{\^I}
+\DeclareInputText{143}{\"I}
+\DeclareInputText{144}{\DH}
+\DeclareInputText{145}{\~N}
+\DeclareInputText{146}{\@tabacckludge`O}
+\DeclareInputText{147}{\@tabacckludge'O}
+\DeclareInputText{148}{\^O}
+\DeclareInputText{149}{\~O}
+\DeclareInputText{150}{\"O}
+\DeclareInputText{151}{\@tabacckludge`U}
+\DeclareInputText{152}{\@tabacckludge'U}
+\DeclareInputText{153}{\^U}
+\DeclareInputText{154}{\"U}
+\DeclareInputText{155}{\@tabacckludge'Y}
+\DeclareInputText{156}{\TH}
+\DeclareInputText{157}{\textmu}
+\DeclareInputText{158}{\texttimes}
+\DeclareInputText{159}{\textdiv}
+\DeclareInputText{160}{\textcopyright}
+\DeclareInputText{161}{\textexclamdown}
+\DeclareInputText{162}{\textcent}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{164}{\textfractionsolidus}
+\DeclareInputText{165}{\textyen}
+\DeclareInputText{166}{\textflorin}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\textcurrency}
+\DeclareInputText{169}{\textquoteright}
+\DeclareInputText{170}{\textquotedblleft}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputText{172}{\guilsinglleft}
+\DeclareInputText{173}{\guilsinglright}
+\DeclareInputText{174}{fi}
+\DeclareInputText{175}{fl}
+\DeclareInputText{176}{\textregistered}
+\DeclareInputText{177}{\textendash}
+\DeclareInputText{178}{\textdagger}
+\DeclareInputText{179}{\textdaggerdbl}
+\DeclareInputText{180}{\textperiodcentered}
+\DeclareInputText{181}{\textbrokenbar}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\textbullet}
+\DeclareInputText{184}{\quotesinglbase}
+\DeclareInputText{185}{\quotedblbase}
+\DeclareInputText{186}{\textquotedblright}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\textellipsis}
+\DeclareInputText{189}{\textperthousand}
+\DeclareInputText{190}{\textlnot}
+\DeclareInputText{191}{\textquestiondown}
+\DeclareInputText{192}{\textonesuperior}
+\DeclareInputText{193}{\textasciigrave}
+\DeclareInputText{194}{\textasciiacute}
+\DeclareInputText{195}{\textasciicircum}
+\DeclareInputText{196}{\textasciitilde}
+\DeclareInputText{197}{\textasciimacron}
+\DeclareInputText{198}{\textasciibreve}
+\DeclareInputText{199}{\.{}}
+\DeclareInputText{200}{\textasciidieresis}
+\DeclareInputText{201}{\texttwosuperior}
+\DeclareInputText{202}{\r{}}
+\DeclareInputText{203}{\c\ }
+\DeclareInputText{204}{\textthreesuperior}
+\DeclareInputText{205}{\textacutedbl}
+\DeclareInputText{206}{\k{}}
+\DeclareInputText{207}{\textasciicaron}
+\DeclareInputText{208}{\textemdash}
+\DeclareInputText{209}{\textpm}
+\DeclareInputText{210}{\textonequarter}
+\DeclareInputText{211}{\textonehalf}
+\DeclareInputText{212}{\textthreequarters}
+\DeclareInputText{213}{\@tabacckludge`a}
+\DeclareInputText{214}{\@tabacckludge'a}
+\DeclareInputText{215}{\^a}
+\DeclareInputText{216}{\~a}
+\DeclareInputText{217}{\"a}
+\DeclareInputText{218}{\r a}
+\DeclareInputText{219}{\c c}
+\DeclareInputText{220}{\@tabacckludge`e}
+\DeclareInputText{221}{\@tabacckludge'e}
+\DeclareInputText{222}{\^e}
+\DeclareInputText{223}{\"e}
+\DeclareInputText{224}{\@tabacckludge`\i}
+\DeclareInputText{225}{\AE}
+\DeclareInputText{226}{\@tabacckludge'\i}
+\DeclareInputText{227}{\textordfeminine}
+\DeclareInputText{228}{\^\i}
+\DeclareInputText{229}{\"\i}
+\DeclareInputText{230}{\dh}
+\DeclareInputText{231}{\~n}
+\DeclareInputText{232}{\L}
+\DeclareInputText{233}{\O}
+\DeclareInputText{234}{\OE}
+\DeclareInputText{235}{\textordmasculine}
+\DeclareInputText{236}{\@tabacckludge`o}
+\DeclareInputText{237}{\@tabacckludge'o}
+\DeclareInputText{238}{\^o}
+\DeclareInputText{239}{\~o}
+\DeclareInputText{240}{\"o}
+\DeclareInputText{241}{\ae}
+\DeclareInputText{242}{\@tabacckludge`u}
+\DeclareInputText{243}{\@tabacckludge'u}
+\DeclareInputText{244}{\^u}
+\DeclareInputText{245}{\i}
+\DeclareInputText{246}{\"u}
+\DeclareInputText{247}{\@tabacckludge'y}
+\DeclareInputText{248}{\l}
+\DeclareInputText{249}{\o}
+\DeclareInputText{250}{\oe}
+\DeclareInputText{251}{\ss}
+\DeclareInputText{252}{\th}
+\DeclareInputText{253}{\"y}
+%</nextstep>
+% \end{macrocode}
+%
+% \subsubsection{Encoding dec-mcs}
+%
+% \begin{macrocode}
+%<*dec-mcs>
+\ProvidesFile{x-dec-mcs.def}%
+ [2006/08/24 v1.0 Input encoding dec-mcs (inputenx)]
+\ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+}
+\ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+}
+\ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+}
+\ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+}
+\ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+}
+\ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+}
+\ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+}
+\ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+}
+\ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+}
+\ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+}
+\ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+}
+\DeclareInputText{161}{\textexclamdown}
+\DeclareInputText{162}{\textcent}
+\DeclareInputText{163}{\textsterling}
+\DeclareInputText{165}{\textyen}
+\DeclareInputText{167}{\textsection}
+\DeclareInputText{168}{\textcurrency}
+\DeclareInputText{169}{\textcopyright}
+\DeclareInputText{170}{\textordfeminine}
+\DeclareInputText{171}{\guillemotleft}
+\DeclareInputText{176}{\textdegree}
+\DeclareInputText{177}{\textpm}
+\DeclareInputText{178}{\texttwosuperior}
+\DeclareInputText{179}{\textthreesuperior}
+\DeclareInputText{181}{\textmu}
+\DeclareInputText{182}{\textparagraph}
+\DeclareInputText{183}{\textperiodcentered}
+\DeclareInputText{185}{\textonesuperior}
+\DeclareInputText{186}{\textordmasculine}
+\DeclareInputText{187}{\guillemotright}
+\DeclareInputText{188}{\textonequarter}
+\DeclareInputText{189}{\textonehalf}
+\DeclareInputText{191}{\textquestiondown}
+\DeclareInputText{192}{\@tabacckludge`A}
+\DeclareInputText{193}{\@tabacckludge'A}
+\DeclareInputText{194}{\^A}
+\DeclareInputText{195}{\~A}
+\DeclareInputText{196}{\"A}
+\DeclareInputText{197}{\r A}
+\DeclareInputText{198}{\AE}
+\DeclareInputText{199}{\c C}
+\DeclareInputText{200}{\@tabacckludge`E}
+\DeclareInputText{201}{\@tabacckludge'E}
+\DeclareInputText{202}{\^E}
+\DeclareInputText{203}{\"E}
+\DeclareInputText{204}{\@tabacckludge`I}
+\DeclareInputText{205}{\@tabacckludge'I}
+\DeclareInputText{206}{\^I}
+\DeclareInputText{207}{\"I}
+\DeclareInputText{209}{\~N}
+\DeclareInputText{210}{\@tabacckludge`O}
+\DeclareInputText{211}{\@tabacckludge'O}
+\DeclareInputText{212}{\^O}
+\DeclareInputText{213}{\~O}
+\DeclareInputText{214}{\"O}
+\DeclareInputText{215}{\OE}
+\DeclareInputText{216}{\O}
+\DeclareInputText{217}{\@tabacckludge`U}
+\DeclareInputText{218}{\@tabacckludge'U}
+\DeclareInputText{219}{\^U}
+\DeclareInputText{220}{\"U}
+\DeclareInputText{221}{\"Y}
+\DeclareInputText{223}{\ss}
+\DeclareInputText{224}{\@tabacckludge`a}
+\DeclareInputText{225}{\@tabacckludge'a}
+\DeclareInputText{226}{\^a}
+\DeclareInputText{227}{\~a}
+\DeclareInputText{228}{\"a}
+\DeclareInputText{229}{\r a}
+\DeclareInputText{230}{\ae}
+\DeclareInputText{231}{\c c}
+\DeclareInputText{232}{\@tabacckludge`e}
+\DeclareInputText{233}{\@tabacckludge'e}
+\DeclareInputText{234}{\^e}
+\DeclareInputText{235}{\"e}
+\DeclareInputText{236}{\@tabacckludge`\i}
+\DeclareInputText{237}{\@tabacckludge'\i}
+\DeclareInputText{238}{\^\i}
+\DeclareInputText{239}{\"\i}
+\DeclareInputText{241}{\~n}
+\DeclareInputText{242}{\@tabacckludge`o}
+\DeclareInputText{243}{\@tabacckludge'o}
+\DeclareInputText{244}{\^o}
+\DeclareInputText{245}{\~o}
+\DeclareInputText{246}{\"o}
+\DeclareInputText{247}{\oe}
+\DeclareInputText{248}{\o}
+\DeclareInputText{249}{\@tabacckludge`u}
+\DeclareInputText{250}{\@tabacckludge'u}
+\DeclareInputText{251}{\^u}
+\DeclareInputText{252}{\"u}
+\DeclareInputText{253}{\"y}
+%</dec-mcs>
+% \end{macrocode}
+%
+% \subsubsection{Non-Unicode additions}
+%
+% \begin{macrocode}
+%<*mac-roman>
+\ProvideTextCommandDefault{\textapplelogo}{%
+ \TextSymbolUnavailable\textapplelogo
+}
+\DeclareInputText{240}{\textapplelogo}
+%</mac-roman>
+% \end{macrocode}
+%
+% \subsection{Additions for \xfile{utf8enc.dfu}}
+%
+% \begin{macrocode}
+%<*dfu>
+\ProvidesFile{ix-utf8enc.dfu}%
+ [2006/08/24 v1.0 Additions of inputenx for utf8enc.dfu]
+\DeclareUnicodeCharacter{00A0}{\nobreakspace}
+\DeclareUnicodeCharacter{00AD}{\-}
+\DeclareUnicodeCharacter{0100}{\@tabacckludge=A}
+\DeclareUnicodeCharacter{0101}{\@tabacckludge=a}
+\DeclareUnicodeCharacter{0108}{\^C}
+\DeclareUnicodeCharacter{0109}{\^c}
+\DeclareUnicodeCharacter{010A}{\.C}
+\DeclareUnicodeCharacter{010B}{\.c}
+\DeclareUnicodeCharacter{0112}{\@tabacckludge=E}
+\DeclareUnicodeCharacter{0113}{\@tabacckludge=e}
+\DeclareUnicodeCharacter{0116}{\.E}
+\DeclareUnicodeCharacter{0117}{\.e}
+\DeclareUnicodeCharacter{011C}{\^G}
+\DeclareUnicodeCharacter{011D}{\^g}
+\DeclareUnicodeCharacter{0120}{\.G}
+\DeclareUnicodeCharacter{0121}{\.g}
+\DeclareUnicodeCharacter{0122}{\c G}
+\DeclareUnicodeCharacter{0123}{\c g}
+\DeclareUnicodeCharacter{0124}{\^H}
+\DeclareUnicodeCharacter{0125}{\^h}
+\DeclareUnicodeCharacter{0126}{\textmalteseH}
+\DeclareUnicodeCharacter{0127}{\textmalteseh}
+\DeclareUnicodeCharacter{0128}{\~I}
+\DeclareUnicodeCharacter{0129}{\~\i}
+\DeclareUnicodeCharacter{012A}{\@tabacckludge=I}
+\DeclareUnicodeCharacter{012B}{\@tabacckludge=\i}
+\DeclareUnicodeCharacter{012E}{\k I}
+\DeclareUnicodeCharacter{012F}{\k i}
+\DeclareUnicodeCharacter{0134}{\^J}
+\DeclareUnicodeCharacter{0135}{\^j}
+\DeclareUnicodeCharacter{0136}{\c K}
+\DeclareUnicodeCharacter{0137}{\c k}
+\DeclareUnicodeCharacter{0138}{\textkra}
+\DeclareUnicodeCharacter{013B}{\c L}
+\DeclareUnicodeCharacter{013C}{\c l}
+\DeclareUnicodeCharacter{0145}{\c N}
+\DeclareUnicodeCharacter{0146}{\c n}
+\DeclareUnicodeCharacter{014C}{\@tabacckludge=O}
+\DeclareUnicodeCharacter{014D}{\@tabacckludge=o}
+\DeclareUnicodeCharacter{0156}{\c R}
+\DeclareUnicodeCharacter{0157}{\c r}
+\DeclareUnicodeCharacter{015C}{\^S}
+\DeclareUnicodeCharacter{015D}{\^s}
+\DeclareUnicodeCharacter{0166}{\textTstroke}
+\DeclareUnicodeCharacter{0167}{\texttstroke}
+\DeclareUnicodeCharacter{0168}{\~U}
+\DeclareUnicodeCharacter{0169}{\~u}
+\DeclareUnicodeCharacter{016A}{\@tabacckludge=U}
+\DeclareUnicodeCharacter{016B}{\@tabacckludge=u}
+\DeclareUnicodeCharacter{016C}{\u U}
+\DeclareUnicodeCharacter{016D}{\u u}
+\DeclareUnicodeCharacter{0172}{\k U}
+\DeclareUnicodeCharacter{0173}{\k u}
+\DeclareUnicodeCharacter{0174}{\^W}
+\DeclareUnicodeCharacter{0175}{\^w}
+\DeclareUnicodeCharacter{0176}{\^Y}
+\DeclareUnicodeCharacter{0177}{\^y}
+\DeclareUnicodeCharacter{1E02}{\.B}
+\DeclareUnicodeCharacter{1E03}{\.b}
+\DeclareUnicodeCharacter{1E0A}{\.D}
+\DeclareUnicodeCharacter{1E0B}{\.d}
+\DeclareUnicodeCharacter{1E1E}{\.F}
+\DeclareUnicodeCharacter{1E1F}{\.f}
+\DeclareUnicodeCharacter{1E40}{\.M}
+\DeclareUnicodeCharacter{1E41}{\.m}
+\DeclareUnicodeCharacter{1E56}{\.P}
+\DeclareUnicodeCharacter{1E57}{\.p}
+\DeclareUnicodeCharacter{1E60}{\.S}
+\DeclareUnicodeCharacter{1E61}{\.s}
+\DeclareUnicodeCharacter{1E6A}{\.T}
+\DeclareUnicodeCharacter{1E6B}{\.t}
+\DeclareUnicodeCharacter{1E80}{\@tabacckludge`W}
+\DeclareUnicodeCharacter{1E81}{\@tabacckludge`w}
+\DeclareUnicodeCharacter{1E82}{\@tabacckludge'W}
+\DeclareUnicodeCharacter{1E83}{\@tabacckludge'w}
+\DeclareUnicodeCharacter{1E84}{\"W}
+\DeclareUnicodeCharacter{1E85}{\"w}
+\DeclareUnicodeCharacter{1EF2}{\@tabacckludge`Y}
+\DeclareUnicodeCharacter{1EF3}{\@tabacckludge`y}
+\DeclareUnicodeCharacter{0218}{\textcommabelow S}
+\DeclareUnicodeCharacter{0219}{\textcommabelow s}
+\DeclareUnicodeCharacter{021A}{\textcommabelow T}
+\DeclareUnicodeCharacter{021B}{\textcommabelow t}
+\DeclareUnicodeCharacter{02CB}{\textasciigrave}
+\DeclareUnicodeCharacter{02D9}{\.{}}
+\DeclareUnicodeCharacter{02DA}{\r{}}
+\DeclareUnicodeCharacter{02DB}{\k{}}
+\DeclareUnicodeCharacter{0393}{\textGamma}
+\DeclareUnicodeCharacter{0398}{\textTheta}
+\DeclareUnicodeCharacter{03A3}{\textSigma}
+\DeclareUnicodeCharacter{03A6}{\textPhi}
+\DeclareUnicodeCharacter{03A9}{\textOmega}
+\DeclareUnicodeCharacter{03B1}{\textalpha}
+\DeclareUnicodeCharacter{03B4}{\textdelta}
+\DeclareUnicodeCharacter{03B5}{\textepsilon}
+\DeclareUnicodeCharacter{03C0}{\textpi}
+\DeclareUnicodeCharacter{03C3}{\textsigma}
+\DeclareUnicodeCharacter{03C4}{\texttau}
+\DeclareUnicodeCharacter{03C6}{\textphi}
+\DeclareUnicodeCharacter{207F}{\textnsuperior}
+\DeclareUnicodeCharacter{20A7}{\textpeseta}
+\DeclareUnicodeCharacter{2202}{\textpartial}
+\DeclareUnicodeCharacter{2206}{\textincrement}
+\DeclareUnicodeCharacter{220F}{\textproduct}
+\DeclareUnicodeCharacter{2211}{\textsummation}
+\DeclareUnicodeCharacter{2219}{\textbullet}
+\DeclareUnicodeCharacter{221A}{\textsurd}
+\DeclareUnicodeCharacter{221E}{\textinfinity}
+\DeclareUnicodeCharacter{2229}{\textintersection}
+\DeclareUnicodeCharacter{222B}{\textintegral}
+\DeclareUnicodeCharacter{2248}{\textapproxequal}
+\DeclareUnicodeCharacter{2260}{\textnotequal}
+\DeclareUnicodeCharacter{2261}{\textequivalence}
+\DeclareUnicodeCharacter{2264}{\textlessequal}
+\DeclareUnicodeCharacter{2265}{\textgreaterequal}
+\DeclareUnicodeCharacter{25A0}{\textblacksquare}
+\DeclareUnicodeCharacter{25CA}{\textlozenge}
+\DeclareUnicodeCharacter{FB01}{fi}
+\DeclareUnicodeCharacter{FB02}{fl}
+\DeclareUnicodeCharacter{2500}{\textSFx}
+\DeclareUnicodeCharacter{2502}{\textSFxi}
+\DeclareUnicodeCharacter{250C}{\textSFi}
+\DeclareUnicodeCharacter{2510}{\textSFiii}
+\DeclareUnicodeCharacter{2514}{\textSFii}
+\DeclareUnicodeCharacter{2518}{\textSFiv}
+\DeclareUnicodeCharacter{251C}{\textSFviii}
+\DeclareUnicodeCharacter{2524}{\textSFix}
+\DeclareUnicodeCharacter{252C}{\textSFvi}
+\DeclareUnicodeCharacter{2534}{\textSFvii}
+\DeclareUnicodeCharacter{253C}{\textSFv}
+\DeclareUnicodeCharacter{2550}{\textSFxliii}
+\DeclareUnicodeCharacter{2551}{\textSFxxiv}
+\DeclareUnicodeCharacter{2552}{\textSFli}
+\DeclareUnicodeCharacter{2553}{\textSFlii}
+\DeclareUnicodeCharacter{2554}{\textSFxxxix}
+\DeclareUnicodeCharacter{2555}{\textSFxxii}
+\DeclareUnicodeCharacter{2556}{\textSFxxi}
+\DeclareUnicodeCharacter{2557}{\textSFxxv}
+\DeclareUnicodeCharacter{2558}{\textSFl}
+\DeclareUnicodeCharacter{2559}{\textSFxlix}
+\DeclareUnicodeCharacter{255A}{\textSFxxxviii}
+\DeclareUnicodeCharacter{255B}{\textSFxxviii}
+\DeclareUnicodeCharacter{255C}{\textSFxxvii}
+\DeclareUnicodeCharacter{255D}{\textSFxxvi}
+\DeclareUnicodeCharacter{255E}{\textSFxxxvi}
+\DeclareUnicodeCharacter{255F}{\textSFxxxvii}
+\DeclareUnicodeCharacter{2560}{\textSFxlii}
+\DeclareUnicodeCharacter{2561}{\textSFxix}
+\DeclareUnicodeCharacter{2562}{\textSFxx}
+\DeclareUnicodeCharacter{2563}{\textSFxxiii}
+\DeclareUnicodeCharacter{2564}{\textSFxlvii}
+\DeclareUnicodeCharacter{2565}{\textSFxlviii}
+\DeclareUnicodeCharacter{2566}{\textSFxli}
+\DeclareUnicodeCharacter{2567}{\textSFxlv}
+\DeclareUnicodeCharacter{2568}{\textSFxlvi}
+\DeclareUnicodeCharacter{2569}{\textSFxl}
+\DeclareUnicodeCharacter{256A}{\textSFliv}
+\DeclareUnicodeCharacter{256B}{\textSFliii}
+\DeclareUnicodeCharacter{256C}{\textSFxliv}
+\DeclareUnicodeCharacter{2580}{\textupblock}
+\DeclareUnicodeCharacter{2584}{\textdnblock}
+\DeclareUnicodeCharacter{2588}{\textblock}
+\DeclareUnicodeCharacter{258C}{\textlfblock}
+\DeclareUnicodeCharacter{2590}{\textrtblock}
+\DeclareUnicodeCharacter{2591}{\textltshade}
+\DeclareUnicodeCharacter{2592}{\textshade}
+\DeclareUnicodeCharacter{2593}{\textdkshade}
+%</dfu>
+% \end{macrocode}
+%
+% \subsection{Name list}
+%
+% \begin{macrocode}
+%<*name>
+\ProvidesFile{ix-name.def}%
+ [2006/08/24 v1.0 Name list (inputenx)]
+% \end{macrocode}
+%
+% \textit{List omitted here, see \xfile{ix-name.def}.}
+% \iffalse
+% \begin{macrocode}
+\InputenxName{AE}{00C6}% LATIN CAPITAL LETTER AE
+\InputenxName{Aacute}{00C1}% LATIN CAPITAL LETTER A WITH ACUTE
+\InputenxName{Abreve}{0102}% LATIN CAPITAL LETTER A WITH BREVE
+\InputenxName{Acircumflex}{00C2}% LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\InputenxName{Adieresis}{00C4}% LATIN CAPITAL LETTER A WITH DIAERESIS
+\InputenxName{Agrave}{00C0}% LATIN CAPITAL LETTER A WITH GRAVE
+\InputenxName{Amacron}{0100}% LATIN CAPITAL LETTER A WITH MACRON
+\InputenxName{Aogonek}{0104}% LATIN CAPITAL LETTER A WITH OGONEK
+\InputenxName{Aring}{00C5}% LATIN CAPITAL LETTER A WITH RING ABOVE
+\InputenxName{Atilde}{00C3}% LATIN CAPITAL LETTER A WITH TILDE
+\InputenxName{Bdotaccent}{1E02}% LATIN CAPITAL LETTER B WITH DOT ABOVE
+\InputenxName{Cacute}{0106}% LATIN CAPITAL LETTER C WITH ACUTE
+\InputenxName{Ccaron}{010C}% LATIN CAPITAL LETTER C WITH CARON
+\InputenxName{Ccedilla}{00C7}% LATIN CAPITAL LETTER C WITH CEDILLA
+\InputenxName{Ccircumflex}{0108}% LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+\InputenxName{Cdot}{010A}% LATIN CAPITAL LETTER C WITH DOT ABOVE
+\InputenxName{Cdotaccent}{010A}% LATIN CAPITAL LETTER C WITH DOT ABOVE
+\InputenxName{DH}{00D0}% LATIN CAPITAL LETTER ETH
+\InputenxName{DJ}{0110}% LATIN CAPITAL LETTER D WITH STROKE
+\InputenxName{Dcaron}{010E}% LATIN CAPITAL LETTER D WITH CARON
+\InputenxName{Dcroat}{0110}% LATIN CAPITAL LETTER D WITH STROKE
+\InputenxName{Ddotaccent}{1E0A}% LATIN CAPITAL LETTER D WITH DOT ABOVE
+\InputenxName{Delta}{2206}% INCREMENT
+\InputenxName{Dslash}{0110}% LATIN CAPITAL LETTER D WITH STROKE
+\InputenxName{Eacute}{00C9}% LATIN CAPITAL LETTER E WITH ACUTE
+\InputenxName{Ecaron}{011A}% LATIN CAPITAL LETTER E WITH CARON
+\InputenxName{Ecircumflex}{00CA}% LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+\InputenxName{Edieresis}{00CB}% LATIN CAPITAL LETTER E WITH DIAERESIS
+\InputenxName{Edot}{0116}% LATIN CAPITAL LETTER E WITH DOT ABOVE
+\InputenxName{Edotaccent}{0116}% LATIN CAPITAL LETTER E WITH DOT ABOVE
+\InputenxName{Egrave}{00C8}% LATIN CAPITAL LETTER E WITH GRAVE
+\InputenxName{Emacron}{0112}% LATIN CAPITAL LETTER E WITH MACRON
+\InputenxName{Eng}{014A}% LATIN CAPITAL LETTER ENG
+\InputenxName{Eogonek}{0118}% LATIN CAPITAL LETTER E WITH OGONEK
+\InputenxName{Eth}{00D0}% LATIN CAPITAL LETTER ETH
+\InputenxName{Euro}{20AC}% EURO SIGN
+\InputenxName{Fdotaccent}{1E1E}% LATIN CAPITAL LETTER F WITH DOT ABOVE
+\InputenxName{Gamma}{0393}% GREEK CAPITAL LETTER GAMMA
+\InputenxName{Gbreve}{011E}% LATIN CAPITAL LETTER G WITH BREVE
+\InputenxName{Gcedilla}{0122}% LATIN CAPITAL LETTER G WITH CEDILLA
+\InputenxName{Gcircumflex}{011C}% LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+\InputenxName{Gcommaaccent}{0122}% LATIN CAPITAL LETTER G WITH CEDILLA
+\InputenxName{Gdot}{0120}% LATIN CAPITAL LETTER G WITH DOT ABOVE
+\InputenxName{Gdotaccent}{0120}% LATIN CAPITAL LETTER G WITH DOT ABOVE
+\InputenxName{Hbar}{0126}% LATIN CAPITAL LETTER H WITH STROKE
+\InputenxName{Hcircumflex}{0124}% LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+\InputenxName{Iacute}{00CD}% LATIN CAPITAL LETTER I WITH ACUTE
+\InputenxName{Icircumflex}{00CE}% LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\InputenxName{Idieresis}{00CF}% LATIN CAPITAL LETTER I WITH DIAERESIS
+\InputenxName{Idot}{0130}% LATIN CAPITAL LETTER I WITH DOT ABOVE
+\InputenxName{Idotaccent}{0130}% LATIN CAPITAL LETTER I WITH DOT ABOVE
+\InputenxName{Igrave}{00CC}% LATIN CAPITAL LETTER I WITH GRAVE
+\InputenxName{Imacron}{012A}% LATIN CAPITAL LETTER I WITH MACRON
+\InputenxName{Iogonek}{012E}% LATIN CAPITAL LETTER I WITH OGONEK
+\InputenxName{Itilde}{0128}% LATIN CAPITAL LETTER I WITH TILDE
+\InputenxName{Jcircumflex}{0134}% LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+\InputenxName{Kcedilla}{0136}% LATIN CAPITAL LETTER K WITH CEDILLA
+\InputenxName{Kcommaaccent}{0136}% LATIN CAPITAL LETTER K WITH CEDILLA
+\InputenxName{Lacute}{0139}% LATIN CAPITAL LETTER L WITH ACUTE
+\InputenxName{Lcaron}{013D}% LATIN CAPITAL LETTER L WITH CARON
+\InputenxName{Lcedilla}{013B}% LATIN CAPITAL LETTER L WITH CEDILLA
+\InputenxName{Lcommaaccent}{013B}% LATIN CAPITAL LETTER L WITH CEDILLA
+\InputenxName{Lslash}{0141}% LATIN CAPITAL LETTER L WITH STROKE
+\InputenxName{Mdotaccent}{1E40}% LATIN CAPITAL LETTER M WITH DOT ABOVE
+\InputenxName{NG}{014A}% LATIN CAPITAL LETTER ENG
+\InputenxName{Nacute}{0143}% LATIN CAPITAL LETTER N WITH ACUTE
+\InputenxName{Ncaron}{0147}% LATIN CAPITAL LETTER N WITH CARON
+\InputenxName{Ncedilla}{0145}% LATIN CAPITAL LETTER N WITH CEDILLA
+\InputenxName{Ncommaaccent}{0145}% LATIN CAPITAL LETTER N WITH CEDILLA
+\InputenxName{Ntilde}{00D1}% LATIN CAPITAL LETTER N WITH TILDE
+\InputenxName{OE}{0152}% LATIN CAPITAL LIGATURE OE
+\InputenxName{Oacute}{00D3}% LATIN CAPITAL LETTER O WITH ACUTE
+\InputenxName{Ocircumflex}{00D4}% LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\InputenxName{Odblacute}{0150}% LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+\InputenxName{Odieresis}{00D6}% LATIN CAPITAL LETTER O WITH DIAERESIS
+\InputenxName{Ograve}{00D2}% LATIN CAPITAL LETTER O WITH GRAVE
+\InputenxName{Ohungarumlaut}{0150}% LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+\InputenxName{Omacron}{014C}% LATIN CAPITAL LETTER O WITH MACRON
+\InputenxName{Omega}{03A9}% GREEK CAPITAL LETTER OMEGA
+\InputenxName{Omegagreek}{03A9}% GREEK CAPITAL LETTER OMEGA
+\InputenxName{Oslash}{00D8}% LATIN CAPITAL LETTER O WITH STROKE
+\InputenxName{Otilde}{00D5}% LATIN CAPITAL LETTER O WITH TILDE
+\InputenxName{Pdotaccent}{1E56}% LATIN CAPITAL LETTER P WITH DOT ABOVE
+\InputenxName{Phi}{03A6}% GREEK CAPITAL LETTER PHI
+\InputenxName{Racute}{0154}% LATIN CAPITAL LETTER R WITH ACUTE
+\InputenxName{Rcaron}{0158}% LATIN CAPITAL LETTER R WITH CARON
+\InputenxName{Rcedilla}{0156}% LATIN CAPITAL LETTER R WITH CEDILLA
+\InputenxName{Rcommaaccent}{0156}% LATIN CAPITAL LETTER R WITH CEDILLA
+\InputenxName{SFi}{250C}% BOX DRAWINGS LIGHT DOWN AND RIGHT
+\InputenxName{SFii}{2514}% BOX DRAWINGS LIGHT UP AND RIGHT
+\InputenxName{SFiii}{2510}% BOX DRAWINGS LIGHT DOWN AND LEFT
+\InputenxName{SFiv}{2518}% BOX DRAWINGS LIGHT UP AND LEFT
+\InputenxName{SFix}{2524}% BOX DRAWINGS LIGHT VERTICAL AND LEFT
+\InputenxName{SFl}{2558}% BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+\InputenxName{SFli}{2552}% BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+\InputenxName{SFlii}{2553}% BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+\InputenxName{SFliii}{256B}% BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+\InputenxName{SFliv}{256A}% BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+\InputenxName{SFv}{253C}% BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+\InputenxName{SFvi}{252C}% BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+\InputenxName{SFvii}{2534}% BOX DRAWINGS LIGHT UP AND HORIZONTAL
+\InputenxName{SFviii}{251C}% BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+\InputenxName{SFx}{2500}% BOX DRAWINGS LIGHT HORIZONTAL
+\InputenxName{SFxi}{2502}% BOX DRAWINGS LIGHT VERTICAL
+\InputenxName{SFxix}{2561}% BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+\InputenxName{SFxl}{2569}% BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+\InputenxName{SFxli}{2566}% BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+\InputenxName{SFxlii}{2560}% BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+\InputenxName{SFxliii}{2550}% BOX DRAWINGS DOUBLE HORIZONTAL
+\InputenxName{SFxliv}{256C}% BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+\InputenxName{SFxlix}{2559}% BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+\InputenxName{SFxlv}{2567}% BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+\InputenxName{SFxlvi}{2568}% BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+\InputenxName{SFxlvii}{2564}% BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+\InputenxName{SFxlviii}{2565}% BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+\InputenxName{SFxx}{2562}% BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+\InputenxName{SFxxi}{2556}% BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+\InputenxName{SFxxii}{2555}% BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+\InputenxName{SFxxiii}{2563}% BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+\InputenxName{SFxxiv}{2551}% BOX DRAWINGS DOUBLE VERTICAL
+\InputenxName{SFxxv}{2557}% BOX DRAWINGS DOUBLE DOWN AND LEFT
+\InputenxName{SFxxvi}{255D}% BOX DRAWINGS DOUBLE UP AND LEFT
+\InputenxName{SFxxvii}{255C}% BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+\InputenxName{SFxxviii}{255B}% BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+\InputenxName{SFxxxix}{2554}% BOX DRAWINGS DOUBLE DOWN AND RIGHT
+\InputenxName{SFxxxvi}{255E}% BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+\InputenxName{SFxxxvii}{255F}% BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+\InputenxName{SFxxxviii}{255A}% BOX DRAWINGS DOUBLE UP AND RIGHT
+\InputenxName{Sacute}{015A}% LATIN CAPITAL LETTER S WITH ACUTE
+\InputenxName{Scaron}{0160}% LATIN CAPITAL LETTER S WITH CARON
+\InputenxName{Scedilla}{015E}% LATIN CAPITAL LETTER S WITH CEDILLA
+\InputenxName{Scircumflex}{015C}% LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+\InputenxName{Scommaaccent}{0218}% LATIN CAPITAL LETTER S WITH COMMA BELOW
+\InputenxName{Sdotaccent}{1E60}% LATIN CAPITAL LETTER S WITH DOT ABOVE
+\InputenxName{Sigma}{03A3}% GREEK CAPITAL LETTER SIGMA
+\InputenxName{TH}{00DE}% LATIN CAPITAL LETTER THORN
+\InputenxName{Tbar}{0166}% LATIN CAPITAL LETTER T WITH STROKE
+\InputenxName{Tcaron}{0164}% LATIN CAPITAL LETTER T WITH CARON
+\InputenxName{Tcedilla}{0162}% LATIN CAPITAL LETTER T WITH CEDILLA
+\InputenxName{Tcommaaccent}{0162}% LATIN CAPITAL LETTER T WITH CEDILLA
+\InputenxName{Tdotaccent}{1E6A}% LATIN CAPITAL LETTER T WITH DOT ABOVE
+\InputenxName{Theta}{0398}% GREEK CAPITAL LETTER THETA
+\InputenxName{Thorn}{00DE}% LATIN CAPITAL LETTER THORN
+\InputenxName{Tstroke}{0166}% LATIN CAPITAL LETTER T WITH STROKE
+\InputenxName{Uacute}{00DA}% LATIN CAPITAL LETTER U WITH ACUTE
+\InputenxName{Ubreve}{016C}% LATIN CAPITAL LETTER U WITH BREVE
+\InputenxName{Ucircumflex}{00DB}% LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+\InputenxName{Udblacute}{0170}% LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+\InputenxName{Udieresis}{00DC}% LATIN CAPITAL LETTER U WITH DIAERESIS
+\InputenxName{Ugrave}{00D9}% LATIN CAPITAL LETTER U WITH GRAVE
+\InputenxName{Uhungarumlaut}{0170}% LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+\InputenxName{Umacron}{016A}% LATIN CAPITAL LETTER U WITH MACRON
+\InputenxName{Uogonek}{0172}% LATIN CAPITAL LETTER U WITH OGONEK
+\InputenxName{Uring}{016E}% LATIN CAPITAL LETTER U WITH RING ABOVE
+\InputenxName{Utilde}{0168}% LATIN CAPITAL LETTER U WITH TILDE
+\InputenxName{Wacute}{1E82}% LATIN CAPITAL LETTER W WITH ACUTE
+\InputenxName{Wcircumflex}{0174}% LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+\InputenxName{Wdieresis}{1E84}% LATIN CAPITAL LETTER W WITH DIAERESIS
+\InputenxName{Wgrave}{1E80}% LATIN CAPITAL LETTER W WITH GRAVE
+\InputenxName{Yacute}{00DD}% LATIN CAPITAL LETTER Y WITH ACUTE
+\InputenxName{Ycircumflex}{0176}% LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+\InputenxName{Ydieresis}{0178}% LATIN CAPITAL LETTER Y WITH DIAERESIS
+\InputenxName{Ygrave}{1EF2}% LATIN CAPITAL LETTER Y WITH GRAVE
+\InputenxName{Zacute}{0179}% LATIN CAPITAL LETTER Z WITH ACUTE
+\InputenxName{Zcaron}{017D}% LATIN CAPITAL LETTER Z WITH CARON
+\InputenxName{Zdot}{017B}% LATIN CAPITAL LETTER Z WITH DOT ABOVE
+\InputenxName{Zdotaccent}{017B}% LATIN CAPITAL LETTER Z WITH DOT ABOVE
+\InputenxName{aacute}{00E1}% LATIN SMALL LETTER A WITH ACUTE
+\InputenxName{abreve}{0103}% LATIN SMALL LETTER A WITH BREVE
+\InputenxName{acircumflex}{00E2}% LATIN SMALL LETTER A WITH CIRCUMFLEX
+\InputenxName{acute}{00B4}% ACUTE ACCENT
+\InputenxName{acutedbl}{02DD}% DOUBLE ACUTE ACCENT
+\InputenxName{adieresis}{00E4}% LATIN SMALL LETTER A WITH DIAERESIS
+\InputenxName{ae}{00E6}% LATIN SMALL LETTER AE
+\InputenxName{agrave}{00E0}% LATIN SMALL LETTER A WITH GRAVE
+\InputenxName{alpha}{03B1}% GREEK SMALL LETTER ALPHA
+\InputenxName{amacron}{0101}% LATIN SMALL LETTER A WITH MACRON
+\InputenxName{aogonek}{0105}% LATIN SMALL LETTER A WITH OGONEK
+\InputenxName{approxequal}{2248}% ALMOST EQUAL TO
+\InputenxName{aring}{00E5}% LATIN SMALL LETTER A WITH RING ABOVE
+\InputenxName{asciiacute}{00B4}% ACUTE ACCENT
+\InputenxName{asciibreve}{02D8}% BREVE
+\InputenxName{asciicaron}{02C7}% CARON
+\InputenxName{asciicircum}{02C6}% MODIFIER LETTER CIRCUMFLEX ACCENT
+\InputenxName{asciidieresis}{00A8}% DIAERESIS
+\InputenxName{asciigrave}{02CB}% MODIFIER LETTER GRAVE ACCENT
+\InputenxName{asciimacron}{00AF}% MACRON
+\InputenxName{asciitilde}{02DC}% SMALL TILDE
+\InputenxName{atilde}{00E3}% LATIN SMALL LETTER A WITH TILDE
+\InputenxName{bdotaccent}{1E03}% LATIN SMALL LETTER B WITH DOT ABOVE
+\InputenxName{blacksquare}{25A0}% BLACK SQUARE
+\InputenxName{block}{2588}% FULL BLOCK
+\InputenxName{breve}{02D8}% BREVE
+\InputenxName{brokenbar}{00A6}% BROKEN BAR
+\InputenxName{bullet}{2022}% BULLET
+\InputenxName{bulletoperator}{2219}% BULLET OPERATOR
+\InputenxName{cacute}{0107}% LATIN SMALL LETTER C WITH ACUTE
+\InputenxName{caron}{02C7}% CARON
+\InputenxName{ccaron}{010D}% LATIN SMALL LETTER C WITH CARON
+\InputenxName{ccedilla}{00E7}% LATIN SMALL LETTER C WITH CEDILLA
+\InputenxName{ccircumflex}{0109}% LATIN SMALL LETTER C WITH CIRCUMFLEX
+\InputenxName{cdot}{010B}% LATIN SMALL LETTER C WITH DOT ABOVE
+\InputenxName{cdotaccent}{010B}% LATIN SMALL LETTER C WITH DOT ABOVE
+\InputenxName{cedilla}{00B8}% CEDILLA
+\InputenxName{cent}{00A2}% CENT SIGN
+\InputenxName{circumflex}{02C6}% MODIFIER LETTER CIRCUMFLEX ACCENT
+\InputenxName{copyright}{00A9}% COPYRIGHT SIGN
+\InputenxName{currency}{00A4}% CURRENCY SIGN
+\InputenxName{dagger}{2020}% DAGGER
+\InputenxName{daggerdbl}{2021}% DOUBLE DAGGER
+\InputenxName{dcaron}{010F}% LATIN SMALL LETTER D WITH CARON
+\InputenxName{dcroat}{0111}% LATIN SMALL LETTER D WITH STROKE
+\InputenxName{ddotaccent}{1E0B}% LATIN SMALL LETTER D WITH DOT ABOVE
+\InputenxName{degree}{00B0}% DEGREE SIGN
+\InputenxName{delta}{03B4}% GREEK SMALL LETTER DELTA
+\InputenxName{dh}{00F0}% LATIN SMALL LETTER ETH
+\InputenxName{dieresis}{00A8}% DIAERESIS
+\InputenxName{div}{00F7}% DIVISION SIGN
+\InputenxName{divide}{00F7}% DIVISION SIGN
+\InputenxName{dj}{0111}% LATIN SMALL LETTER D WITH STROKE
+\InputenxName{dkshade}{2593}% DARK SHADE
+\InputenxName{dmacron}{0111}% LATIN SMALL LETTER D WITH STROKE
+\InputenxName{dnblock}{2584}% LOWER HALF BLOCK
+\InputenxName{dotaccent}{02D9}% DOT ABOVE
+\InputenxName{dotlessi}{0131}% LATIN SMALL LETTER DOTLESS I
+\InputenxName{eacute}{00E9}% LATIN SMALL LETTER E WITH ACUTE
+\InputenxName{ecaron}{011B}% LATIN SMALL LETTER E WITH CARON
+\InputenxName{ecircumflex}{00EA}% LATIN SMALL LETTER E WITH CIRCUMFLEX
+\InputenxName{edieresis}{00EB}% LATIN SMALL LETTER E WITH DIAERESIS
+\InputenxName{edot}{0117}% LATIN SMALL LETTER E WITH DOT ABOVE
+\InputenxName{edotaccent}{0117}% LATIN SMALL LETTER E WITH DOT ABOVE
+\InputenxName{egrave}{00E8}% LATIN SMALL LETTER E WITH GRAVE
+\InputenxName{ellipsis}{2026}% HORIZONTAL ELLIPSIS
+\InputenxName{emacron}{0113}% LATIN SMALL LETTER E WITH MACRON
+\InputenxName{emdash}{2014}% EM DASH
+\InputenxName{endash}{2013}% EN DASH
+\InputenxName{eng}{014B}% LATIN SMALL LETTER ENG
+\InputenxName{eogonek}{0119}% LATIN SMALL LETTER E WITH OGONEK
+\InputenxName{epsilon}{03B5}% GREEK SMALL LETTER EPSILON
+\InputenxName{equivalence}{2261}% IDENTICAL TO
+\InputenxName{eth}{00F0}% LATIN SMALL LETTER ETH
+\InputenxName{euro}{20AC}% EURO SIGN
+\InputenxName{exclamdown}{00A1}% INVERTED EXCLAMATION MARK
+\InputenxName{fdotaccent}{1E1F}% LATIN SMALL LETTER F WITH DOT ABOVE
+\InputenxName{fi}{FB01}% LATIN SMALL LIGATURE FI
+\InputenxName{filledbox}{25A0}% BLACK SQUARE
+\InputenxName{fl}{FB02}% LATIN SMALL LIGATURE FL
+\InputenxName{florin}{0192}% LATIN SMALL LETTER F WITH HOOK
+\InputenxName{fourthtonechinese}{02CB}% MODIFIER LETTER GRAVE ACCENT
+\InputenxName{fraction}{2044}% FRACTION SLASH
+\InputenxName{fractionsolidus}{2044}% FRACTION SLASH
+\InputenxName{gbreve}{011F}% LATIN SMALL LETTER G WITH BREVE
+\InputenxName{gcedilla}{0123}% LATIN SMALL LETTER G WITH CEDILLA
+\InputenxName{gcircumflex}{011D}% LATIN SMALL LETTER G WITH CIRCUMFLEX
+\InputenxName{gcommaaccent}{0123}% LATIN SMALL LETTER G WITH CEDILLA
+\InputenxName{gdot}{0121}% LATIN SMALL LETTER G WITH DOT ABOVE
+\InputenxName{gdotaccent}{0121}% LATIN SMALL LETTER G WITH DOT ABOVE
+\InputenxName{germandbls}{00DF}% LATIN SMALL LETTER SHARP S
+\InputenxName{greaterequal}{2265}% GREATER-THAN OR EQUAL TO
+\InputenxName{guillemotleft}{00AB}% LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\InputenxName{guillemotright}{00BB}% RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\InputenxName{guilsinglleft}{2039}% SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+\InputenxName{guilsinglright}{203A}% SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+\InputenxName{hbar}{0127}% LATIN SMALL LETTER H WITH STROKE
+\InputenxName{hcircumflex}{0125}% LATIN SMALL LETTER H WITH CIRCUMFLEX
+\InputenxName{hungarumlaut}{02DD}% DOUBLE ACUTE ACCENT
+\InputenxName{iacute}{00ED}% LATIN SMALL LETTER I WITH ACUTE
+\InputenxName{icircumflex}{00EE}% LATIN SMALL LETTER I WITH CIRCUMFLEX
+\InputenxName{idieresis}{00EF}% LATIN SMALL LETTER I WITH DIAERESIS
+\InputenxName{igrave}{00EC}% LATIN SMALL LETTER I WITH GRAVE
+\InputenxName{ilde}{02DC}% SMALL TILDE
+\InputenxName{imacron}{012B}% LATIN SMALL LETTER I WITH MACRON
+\InputenxName{increment}{2206}% INCREMENT
+\InputenxName{infinity}{221E}% INFINITY
+\InputenxName{integral}{222B}% INTEGRAL
+\InputenxName{intersection}{2229}% INTERSECTION
+\InputenxName{iogonek}{012F}% LATIN SMALL LETTER I WITH OGONEK
+\InputenxName{itilde}{0129}% LATIN SMALL LETTER I WITH TILDE
+\InputenxName{jcircumflex}{0135}% LATIN SMALL LETTER J WITH CIRCUMFLEX
+\InputenxName{kcedilla}{0137}% LATIN SMALL LETTER K WITH CEDILLA
+\InputenxName{kcommaaccent}{0137}% LATIN SMALL LETTER K WITH CEDILLA
+\InputenxName{kgreenlandic}{0138}% LATIN SMALL LETTER KRA
+\InputenxName{kra}{0138}% LATIN SMALL LETTER KRA
+\InputenxName{lacute}{013A}% LATIN SMALL LETTER L WITH ACUTE
+\InputenxName{lcaron}{013E}% LATIN SMALL LETTER L WITH CARON
+\InputenxName{lcedilla}{013C}% LATIN SMALL LETTER L WITH CEDILLA
+\InputenxName{lcommaaccent}{013C}% LATIN SMALL LETTER L WITH CEDILLA
+\InputenxName{lessequal}{2264}% LESS-THAN OR EQUAL TO
+\InputenxName{lfblock}{258C}% LEFT HALF BLOCK
+\InputenxName{lnot}{00AC}% NOT SIGN
+\InputenxName{logicalnot}{00AC}% NOT SIGN
+\InputenxName{lozenge}{25CA}% LOZENGE
+\InputenxName{lslash}{0142}% LATIN SMALL LETTER L WITH STROKE
+\InputenxName{ltshade}{2591}% LIGHT SHADE
+\InputenxName{macron}{00AF}% MACRON
+\InputenxName{malteseH}{0126}% LATIN CAPITAL LETTER H WITH STROKE
+\InputenxName{malteseh}{0127}% LATIN SMALL LETTER H WITH STROKE
+\InputenxName{mdotaccent}{1E41}% LATIN SMALL LETTER M WITH DOT ABOVE
+\InputenxName{middot}{00B7}% MIDDLE DOT
+\InputenxName{mu}{00B5}% MICRO SIGN
+\InputenxName{multiply}{00D7}% MULTIPLICATION SIGN
+\InputenxName{nacute}{0144}% LATIN SMALL LETTER N WITH ACUTE
+\InputenxName{nbspace}{00A0}% NO-BREAK SPACE
+\InputenxName{ncaron}{0148}% LATIN SMALL LETTER N WITH CARON
+\InputenxName{ncedilla}{0146}% LATIN SMALL LETTER N WITH CEDILLA
+\InputenxName{ncommaaccent}{0146}% LATIN SMALL LETTER N WITH CEDILLA
+\InputenxName{ng}{014B}% LATIN SMALL LETTER ENG
+\InputenxName{nobreakspace}{00A0}% NO-BREAK SPACE
+\InputenxName{nonbreakingspace}{00A0}% NO-BREAK SPACE
+\InputenxName{notequal}{2260}% NOT EQUAL TO
+\InputenxName{nsuperior}{207F}% SUPERSCRIPT LATIN SMALL LETTER N
+\InputenxName{ntilde}{00F1}% LATIN SMALL LETTER N WITH TILDE
+\InputenxName{oacute}{00F3}% LATIN SMALL LETTER O WITH ACUTE
+\InputenxName{ocircumflex}{00F4}% LATIN SMALL LETTER O WITH CIRCUMFLEX
+\InputenxName{odblacute}{0151}% LATIN SMALL LETTER O WITH DOUBLE ACUTE
+\InputenxName{odieresis}{00F6}% LATIN SMALL LETTER O WITH DIAERESIS
+\InputenxName{oe}{0153}% LATIN SMALL LIGATURE OE
+\InputenxName{ogonek}{02DB}% OGONEK
+\InputenxName{ograve}{00F2}% LATIN SMALL LETTER O WITH GRAVE
+\InputenxName{ohungarumlaut}{0151}% LATIN SMALL LETTER O WITH DOUBLE ACUTE
+\InputenxName{omacron}{014D}% LATIN SMALL LETTER O WITH MACRON
+\InputenxName{onehalf}{00BD}% VULGAR FRACTION ONE HALF
+\InputenxName{onequarter}{00BC}% VULGAR FRACTION ONE QUARTER
+\InputenxName{onesuperior}{00B9}% SUPERSCRIPT ONE
+\InputenxName{ordfeminine}{00AA}% FEMININE ORDINAL INDICATOR
+\InputenxName{ordmasculine}{00BA}% MASCULINE ORDINAL INDICATOR
+\InputenxName{oslash}{00F8}% LATIN SMALL LETTER O WITH STROKE
+\InputenxName{otilde}{00F5}% LATIN SMALL LETTER O WITH TILDE
+\InputenxName{overscore}{00AF}% MACRON
+\InputenxName{paragraph}{00B6}% PILCROW SIGN
+\InputenxName{partial}{2202}% PARTIAL DIFFERENTIAL
+\InputenxName{partialdiff}{2202}% PARTIAL DIFFERENTIAL
+\InputenxName{pdotaccent}{1E57}% LATIN SMALL LETTER P WITH DOT ABOVE
+\InputenxName{periodcentered}{00B7}% MIDDLE DOT
+\InputenxName{perthousand}{2030}% PER MILLE SIGN
+\InputenxName{peseta}{20A7}% PESETA SIGN
+\InputenxName{phi}{03C6}% GREEK SMALL LETTER PHI
+\InputenxName{pi}{03C0}% GREEK SMALL LETTER PI
+\InputenxName{plusminus}{00B1}% PLUS-MINUS SIGN
+\InputenxName{pm}{00B1}% PLUS-MINUS SIGN
+\InputenxName{product}{220F}% N-ARY PRODUCT
+\InputenxName{questiondown}{00BF}% INVERTED QUESTION MARK
+\InputenxName{quotedblbase}{201E}% DOUBLE LOW-9 QUOTATION MARK
+\InputenxName{quotedblleft}{201C}% LEFT DOUBLE QUOTATION MARK
+\InputenxName{quotedblright}{201D}% RIGHT DOUBLE QUOTATION MARK
+\InputenxName{quoteleft}{2018}% LEFT SINGLE QUOTATION MARK
+\InputenxName{quoteright}{2019}% RIGHT SINGLE QUOTATION MARK
+\InputenxName{quotesinglbase}{201A}% SINGLE LOW-9 QUOTATION MARK
+\InputenxName{racute}{0155}% LATIN SMALL LETTER R WITH ACUTE
+\InputenxName{radical}{221A}% SQUARE ROOT
+\InputenxName{rcaron}{0159}% LATIN SMALL LETTER R WITH CARON
+\InputenxName{rcedilla}{0157}% LATIN SMALL LETTER R WITH CEDILLA
+\InputenxName{rcommaaccent}{0157}% LATIN SMALL LETTER R WITH CEDILLA
+\InputenxName{registered}{00AE}% REGISTERED SIGN
+\InputenxName{ring}{02DA}% RING ABOVE
+\InputenxName{rtblock}{2590}% RIGHT HALF BLOCK
+\InputenxName{sacute}{015B}% LATIN SMALL LETTER S WITH ACUTE
+\InputenxName{scaron}{0161}% LATIN SMALL LETTER S WITH CARON
+\InputenxName{scedilla}{015F}% LATIN SMALL LETTER S WITH CEDILLA
+\InputenxName{scircumflex}{015D}% LATIN SMALL LETTER S WITH CIRCUMFLEX
+\InputenxName{scommaaccent}{0219}% LATIN SMALL LETTER S WITH COMMA BELOW
+\InputenxName{sdotaccent}{1E61}% LATIN SMALL LETTER S WITH DOT ABOVE
+\InputenxName{section}{00A7}% SECTION SIGN
+\InputenxName{sfthyphen}{00AD}% SOFT HYPHEN
+\InputenxName{shade}{2592}% MEDIUM SHADE
+\InputenxName{shadedark}{2593}% DARK SHADE
+\InputenxName{shadelight}{2591}% LIGHT SHADE
+\InputenxName{shademedium}{2592}% MEDIUM SHADE
+\InputenxName{sigma}{03C3}% GREEK SMALL LETTER SIGMA
+\InputenxName{softhyphen}{00AD}% SOFT HYPHEN
+\InputenxName{ss}{00DF}% LATIN SMALL LETTER SHARP S
+\InputenxName{sterling}{00A3}% POUND SIGN
+\InputenxName{summation}{2211}% N-ARY SUMMATION
+\InputenxName{surd}{221A}% SQUARE ROOT
+\InputenxName{tau}{03C4}% GREEK SMALL LETTER TAU
+\InputenxName{tbar}{0167}% LATIN SMALL LETTER T WITH STROKE
+\InputenxName{tcaron}{0165}% LATIN SMALL LETTER T WITH CARON
+\InputenxName{tcedilla}{0163}% LATIN SMALL LETTER T WITH CEDILLA
+\InputenxName{tcommaaccent}{0163}% LATIN SMALL LETTER T WITH CEDILLA
+\InputenxName{tdotaccent}{1E6B}% LATIN SMALL LETTER T WITH DOT ABOVE
+\InputenxName{th}{00FE}% LATIN SMALL LETTER THORN
+\InputenxName{thorn}{00FE}% LATIN SMALL LETTER THORN
+\InputenxName{threequarters}{00BE}% VULGAR FRACTION THREE QUARTERS
+\InputenxName{threesuperior}{00B3}% SUPERSCRIPT THREE
+\InputenxName{tilde}{02DC}% SMALL TILDE
+\InputenxName{times}{00D7}% MULTIPLICATION SIGN
+\InputenxName{trademark}{2122}% TRADE MARK SIGN
+\InputenxName{tstroke}{0167}% LATIN SMALL LETTER T WITH STROKE
+\InputenxName{twosuperior}{00B2}% SUPERSCRIPT TWO
+\InputenxName{uacute}{00FA}% LATIN SMALL LETTER U WITH ACUTE
+\InputenxName{ubreve}{016D}% LATIN SMALL LETTER U WITH BREVE
+\InputenxName{ucircumflex}{00FB}% LATIN SMALL LETTER U WITH CIRCUMFLEX
+\InputenxName{udblacute}{0171}% LATIN SMALL LETTER U WITH DOUBLE ACUTE
+\InputenxName{udieresis}{00FC}% LATIN SMALL LETTER U WITH DIAERESIS
+\InputenxName{ugrave}{00F9}% LATIN SMALL LETTER U WITH GRAVE
+\InputenxName{uhungarumlaut}{0171}% LATIN SMALL LETTER U WITH DOUBLE ACUTE
+\InputenxName{umacron}{016B}% LATIN SMALL LETTER U WITH MACRON
+\InputenxName{uogonek}{0173}% LATIN SMALL LETTER U WITH OGONEK
+\InputenxName{upblock}{2580}% UPPER HALF BLOCK
+\InputenxName{uring}{016F}% LATIN SMALL LETTER U WITH RING ABOVE
+\InputenxName{utilde}{0169}% LATIN SMALL LETTER U WITH TILDE
+\InputenxName{wacute}{1E83}% LATIN SMALL LETTER W WITH ACUTE
+\InputenxName{wcircumflex}{0175}% LATIN SMALL LETTER W WITH CIRCUMFLEX
+\InputenxName{wdieresis}{1E85}% LATIN SMALL LETTER W WITH DIAERESIS
+\InputenxName{wgrave}{1E81}% LATIN SMALL LETTER W WITH GRAVE
+\InputenxName{yacute}{00FD}% LATIN SMALL LETTER Y WITH ACUTE
+\InputenxName{ycircumflex}{0177}% LATIN SMALL LETTER Y WITH CIRCUMFLEX
+\InputenxName{ydieresis}{00FF}% LATIN SMALL LETTER Y WITH DIAERESIS
+\InputenxName{yen}{00A5}% YEN SIGN
+\InputenxName{ygrave}{1EF3}% LATIN SMALL LETTER Y WITH GRAVE
+\InputenxName{zacute}{017A}% LATIN SMALL LETTER Z WITH ACUTE
+\InputenxName{zcaron}{017E}% LATIN SMALL LETTER Z WITH CARON
+\InputenxName{zdot}{017C}% LATIN SMALL LETTER Z WITH DOT ABOVE
+\InputenxName{zdotaccent}{017C}% LATIN SMALL LETTER Z WITH DOT ABOVE
+% \end{macrocode}
+% \fi
+%
+% \begin{macrocode}
+%</name>
+% \end{macrocode}
+%
+% \subsection{Mapping Slot, UC to Encodings}
+%
+% \begin{macrocode}
+%<*slot>
+\ProvidesFile{ix-slot.def}%
+ [2006/08/24 v1.0 SLOT and UC to Encodings (inputenx)]
+% \end{macrocode}
+%
+% \textit{List omitted here, see \xfile{ix-slot.def}.}
+% \iffalse
+% \begin{macrocode}
+\InputenxSlot{128}{00A0}{\do{nextstep}}
+\InputenxSlot{128}{00C4}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{128}{00C7}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{128}{20AC}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{129}{00C0}{\do{nextstep}}
+\InputenxSlot{129}{00C5}{\do{mac-roman}}
+\InputenxSlot{129}{00FC}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{129}{0100}{\do{mac-ce}}
+\InputenxSlot{130}{00C1}{\do{nextstep}}
+\InputenxSlot{130}{00C7}{\do{mac-roman}}
+\InputenxSlot{130}{00E9}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{130}{0101}{\do{mac-ce}}
+\InputenxSlot{130}{201A}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{131}{00C2}{\do{nextstep}}
+\InputenxSlot{131}{00C9}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{131}{00E2}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{131}{0192}{\do{cp1252}}
+\InputenxSlot{132}{00C3}{\do{nextstep}}
+\InputenxSlot{132}{00D1}{\do{mac-roman}}
+\InputenxSlot{132}{00E4}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{132}{0104}{\do{mac-ce}}
+\InputenxSlot{132}{201E}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{133}{00C4}{\do{nextstep}}
+\InputenxSlot{133}{00D6}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{133}{00E0}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{133}{016F}{\do{cp852}}
+\InputenxSlot{133}{2026}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{134}{00C5}{\do{nextstep}}
+\InputenxSlot{134}{00DC}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{134}{00E5}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{134}{0107}{\do{cp852}}
+\InputenxSlot{134}{2020}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{135}{00C7}{\do{nextstep}}
+\InputenxSlot{135}{00E1}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{135}{00E7}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{135}{2021}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{136}{00C8}{\do{nextstep}}
+\InputenxSlot{136}{00E0}{\do{mac-roman}}
+\InputenxSlot{136}{00EA}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{136}{0105}{\do{mac-ce}}
+\InputenxSlot{136}{0142}{\do{cp852}}
+\InputenxSlot{136}{02C6}{\do{cp1252}}
+\InputenxSlot{137}{00C9}{\do{nextstep}}
+\InputenxSlot{137}{00E2}{\do{mac-roman}}
+\InputenxSlot{137}{00EB}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{137}{010C}{\do{mac-ce}}
+\InputenxSlot{137}{2030}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{138}{00CA}{\do{nextstep}}
+\InputenxSlot{138}{00E4}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{138}{00E8}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{138}{0150}{\do{cp852}}
+\InputenxSlot{138}{0160}{\do{cp1250}\do{cp1252}}
+\InputenxSlot{139}{00CB}{\do{nextstep}}
+\InputenxSlot{139}{00E3}{\do{mac-roman}}
+\InputenxSlot{139}{00EF}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{139}{010D}{\do{mac-ce}}
+\InputenxSlot{139}{0151}{\do{cp852}}
+\InputenxSlot{139}{2039}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{140}{00CC}{\do{nextstep}}
+\InputenxSlot{140}{00E5}{\do{mac-roman}}
+\InputenxSlot{140}{00EE}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{140}{0106}{\do{mac-ce}}
+\InputenxSlot{140}{0152}{\do{cp1252}}
+\InputenxSlot{140}{015A}{\do{cp1250}}
+\InputenxSlot{141}{00A8}{\do{cp1257}}
+\InputenxSlot{141}{00CD}{\do{nextstep}}
+\InputenxSlot{141}{00E7}{\do{mac-roman}}
+\InputenxSlot{141}{00EC}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{141}{0107}{\do{mac-ce}}
+\InputenxSlot{141}{0164}{\do{cp1250}}
+\InputenxSlot{141}{0179}{\do{cp852}}
+\InputenxSlot{142}{00C4}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{142}{00CE}{\do{nextstep}}
+\InputenxSlot{142}{00E9}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{142}{017D}{\do{cp1250}\do{cp1252}}
+\InputenxSlot{142}{02C7}{\do{cp1257}}
+\InputenxSlot{143}{00B8}{\do{cp1257}}
+\InputenxSlot{143}{00C5}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{143}{00CF}{\do{nextstep}}
+\InputenxSlot{143}{00E8}{\do{mac-roman}}
+\InputenxSlot{143}{0106}{\do{cp852}}
+\InputenxSlot{143}{0179}{\do{cp1250}\do{mac-ce}}
+\InputenxSlot{144}{00C9}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{144}{00D0}{\do{nextstep}}
+\InputenxSlot{144}{00EA}{\do{mac-roman}}
+\InputenxSlot{144}{017A}{\do{mac-ce}}
+\InputenxSlot{145}{00D1}{\do{nextstep}}
+\InputenxSlot{145}{00E6}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{145}{00EB}{\do{mac-roman}}
+\InputenxSlot{145}{010E}{\do{mac-ce}}
+\InputenxSlot{145}{0139}{\do{cp852}}
+\InputenxSlot{145}{2018}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{146}{00C6}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{146}{00D2}{\do{nextstep}}
+\InputenxSlot{146}{00ED}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{146}{013A}{\do{cp852}}
+\InputenxSlot{146}{2019}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{147}{00D3}{\do{nextstep}}
+\InputenxSlot{147}{00EC}{\do{mac-roman}}
+\InputenxSlot{147}{00F4}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{147}{010F}{\do{mac-ce}}
+\InputenxSlot{147}{201C}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{148}{00D4}{\do{nextstep}}
+\InputenxSlot{148}{00EE}{\do{mac-roman}}
+\InputenxSlot{148}{00F6}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{148}{0112}{\do{mac-ce}}
+\InputenxSlot{148}{201D}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{149}{00D5}{\do{nextstep}}
+\InputenxSlot{149}{00EF}{\do{mac-roman}}
+\InputenxSlot{149}{00F2}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{149}{0113}{\do{mac-ce}}
+\InputenxSlot{149}{013D}{\do{cp852}}
+\InputenxSlot{149}{2022}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{150}{00D6}{\do{nextstep}}
+\InputenxSlot{150}{00F1}{\do{mac-roman}}
+\InputenxSlot{150}{00FB}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{150}{0116}{\do{mac-ce}}
+\InputenxSlot{150}{013E}{\do{cp852}}
+\InputenxSlot{150}{2013}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{151}{00D9}{\do{nextstep}}
+\InputenxSlot{151}{00F3}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{151}{00F9}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{151}{015A}{\do{cp852}}
+\InputenxSlot{151}{2014}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{152}{00DA}{\do{nextstep}}
+\InputenxSlot{152}{00F2}{\do{mac-roman}}
+\InputenxSlot{152}{00FF}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{152}{0117}{\do{mac-ce}}
+\InputenxSlot{152}{015B}{\do{cp852}}
+\InputenxSlot{152}{02DC}{\do{cp1252}}
+\InputenxSlot{153}{00D6}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{153}{00DB}{\do{nextstep}}
+\InputenxSlot{153}{00F4}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{153}{2122}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{154}{00DC}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}\do{nextstep}%
+}
+\InputenxSlot{154}{00F6}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{154}{0161}{\do{cp1250}\do{cp1252}}
+\InputenxSlot{155}{00A2}{\do{cp437}}
+\InputenxSlot{155}{00DD}{\do{nextstep}}
+\InputenxSlot{155}{00F5}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{155}{00F8}{\do{cp850}\do{cp858}\do{cp865}}
+\InputenxSlot{155}{0164}{\do{cp852}}
+\InputenxSlot{155}{203A}{\do{cp1250}\do{cp1252}\do{cp1257}}
+\InputenxSlot{156}{00A3}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{156}{00DE}{\do{nextstep}}
+\InputenxSlot{156}{00FA}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{156}{0153}{\do{cp1252}}
+\InputenxSlot{156}{015B}{\do{cp1250}}
+\InputenxSlot{156}{0165}{\do{cp852}}
+\InputenxSlot{157}{00A5}{\do{cp437}}
+\InputenxSlot{157}{00AF}{\do{cp1257}}
+\InputenxSlot{157}{00B5}{\do{nextstep}}
+\InputenxSlot{157}{00D8}{\do{cp850}\do{cp858}\do{cp865}}
+\InputenxSlot{157}{00F9}{\do{mac-roman}}
+\InputenxSlot{157}{011A}{\do{mac-ce}}
+\InputenxSlot{157}{0141}{\do{cp852}}
+\InputenxSlot{157}{0165}{\do{cp1250}}
+\InputenxSlot{158}{00D7}{%
+ \do{cp850}\do{cp852}\do{cp858}\do{nextstep}%
+}
+\InputenxSlot{158}{00FB}{\do{mac-roman}}
+\InputenxSlot{158}{011B}{\do{mac-ce}}
+\InputenxSlot{158}{017E}{\do{cp1250}\do{cp1252}}
+\InputenxSlot{158}{02DB}{\do{cp1257}}
+\InputenxSlot{158}{20A7}{\do{cp437}\do{cp865}}
+\InputenxSlot{159}{00F7}{\do{nextstep}}
+\InputenxSlot{159}{00FC}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{159}{010D}{\do{cp852}}
+\InputenxSlot{159}{0178}{\do{cp1252}}
+\InputenxSlot{159}{017A}{\do{cp1250}}
+\InputenxSlot{159}{0192}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{160}{00A0}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+}
+\InputenxSlot{160}{00A9}{\do{nextstep}}
+\InputenxSlot{160}{00E1}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{160}{2020}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{161}{00A1}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-15}\do{cp1252}%
+ \do{nextstep}\do{dec-mcs}%
+}
+\InputenxSlot{161}{00B0}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{161}{00ED}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{161}{0104}{%
+ \do{iso-8859-2}\do{iso-8859-4}\do{iso-8859-10}\do{iso-8859-16}%
+}
+\InputenxSlot{161}{0126}{\do{iso-8859-3}}
+\InputenxSlot{161}{02C7}{\do{cp1250}}
+\InputenxSlot{161}{1E02}{\do{iso-8859-14}}
+\InputenxSlot{161}{201D}{\do{iso-8859-13}}
+\InputenxSlot{162}{00A2}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-15}%
+ \do{cp1252}\do{cp1257}\do{mac-roman}\do{nextstep}\do{dec-mcs}%
+}
+\InputenxSlot{162}{00F3}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{162}{0105}{\do{iso-8859-16}}
+\InputenxSlot{162}{0112}{\do{iso-8859-10}}
+\InputenxSlot{162}{0118}{\do{mac-ce}}
+\InputenxSlot{162}{0138}{\do{iso-8859-4}}
+\InputenxSlot{162}{02D8}{\do{iso-8859-2}\do{iso-8859-3}\do{cp1250}}
+\InputenxSlot{162}{1E03}{\do{iso-8859-14}}
+\InputenxSlot{163}{00A3}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-13}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{cp1252}\do{cp1257}%
+ \do{mac-roman}\do{mac-ce}\do{nextstep}\do{dec-mcs}%
+}
+\InputenxSlot{163}{00FA}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{163}{0122}{\do{iso-8859-10}}
+\InputenxSlot{163}{0141}{\do{iso-8859-2}\do{iso-8859-16}\do{cp1250}}
+\InputenxSlot{163}{0156}{\do{iso-8859-4}}
+\InputenxSlot{164}{00A4}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-13}\do{cp1250}\do{cp1252}\do{cp1257}%
+}
+\InputenxSlot{164}{00A7}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{164}{00F1}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{164}{0104}{\do{cp852}}
+\InputenxSlot{164}{010A}{\do{iso-8859-14}}
+\InputenxSlot{164}{012A}{\do{iso-8859-10}}
+\InputenxSlot{164}{2044}{\do{nextstep}}
+\InputenxSlot{164}{20AC}{\do{iso-8859-15}\do{iso-8859-16}}
+\InputenxSlot{165}{00A5}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-15}\do{cp1252}%
+ \do{nextstep}\do{dec-mcs}%
+}
+\InputenxSlot{165}{00D1}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{165}{0104}{\do{cp1250}}
+\InputenxSlot{165}{0105}{\do{cp852}}
+\InputenxSlot{165}{010B}{\do{iso-8859-14}}
+\InputenxSlot{165}{0128}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{165}{013D}{\do{iso-8859-2}}
+\InputenxSlot{165}{201E}{\do{iso-8859-13}\do{iso-8859-16}}
+\InputenxSlot{165}{2022}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{166}{00A6}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{cp1250}%
+ \do{cp1252}\do{cp1257}%
+}
+\InputenxSlot{166}{00AA}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{166}{00B6}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{166}{0124}{\do{iso-8859-3}}
+\InputenxSlot{166}{0136}{\do{iso-8859-10}}
+\InputenxSlot{166}{013B}{\do{iso-8859-4}}
+\InputenxSlot{166}{015A}{\do{iso-8859-2}}
+\InputenxSlot{166}{0160}{\do{iso-8859-15}\do{iso-8859-16}}
+\InputenxSlot{166}{017D}{\do{cp852}}
+\InputenxSlot{166}{0192}{\do{nextstep}}
+\InputenxSlot{166}{1E0A}{\do{iso-8859-14}}
+\InputenxSlot{167}{00A7}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{nextstep}\do{dec-mcs}%
+}
+\InputenxSlot{167}{00BA}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{167}{00DF}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{167}{017E}{\do{cp852}}
+\InputenxSlot{168}{00A4}{\do{nextstep}\do{dec-mcs}}
+\InputenxSlot{168}{00A8}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{cp1250}\do{cp1252}%
+}
+\InputenxSlot{168}{00AE}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{168}{00BF}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{168}{00D8}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{168}{0118}{\do{cp852}}
+\InputenxSlot{168}{013B}{\do{iso-8859-10}}
+\InputenxSlot{168}{0161}{\do{iso-8859-15}\do{iso-8859-16}}
+\InputenxSlot{168}{1E80}{\do{iso-8859-14}}
+\InputenxSlot{169}{00A9}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{mac-roman}\do{mac-ce}\do{dec-mcs}%
+}
+\InputenxSlot{169}{00AE}{\do{cp850}\do{cp858}}
+\InputenxSlot{169}{0110}{\do{iso-8859-10}}
+\InputenxSlot{169}{0119}{\do{cp852}}
+\InputenxSlot{169}{0130}{\do{iso-8859-3}}
+\InputenxSlot{169}{0160}{\do{iso-8859-2}\do{iso-8859-4}}
+\InputenxSlot{169}{2019}{\do{nextstep}}
+\InputenxSlot{170}{00AA}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-15}\do{cp1252}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{170}{00AC}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{170}{0112}{\do{iso-8859-4}}
+\InputenxSlot{170}{0156}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{170}{015E}{\do{iso-8859-2}\do{iso-8859-3}\do{cp1250}}
+\InputenxSlot{170}{0160}{\do{iso-8859-10}}
+\InputenxSlot{170}{0218}{\do{iso-8859-16}}
+\InputenxSlot{170}{1E82}{\do{iso-8859-14}}
+\InputenxSlot{170}{201C}{\do{nextstep}}
+\InputenxSlot{170}{2122}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{171}{00AB}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}\do{nextstep}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{171}{00B4}{\do{mac-roman}}
+\InputenxSlot{171}{00BD}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{171}{0119}{\do{mac-ce}}
+\InputenxSlot{171}{011E}{\do{iso-8859-3}}
+\InputenxSlot{171}{0122}{\do{iso-8859-4}}
+\InputenxSlot{171}{0164}{\do{iso-8859-2}}
+\InputenxSlot{171}{0166}{\do{iso-8859-10}}
+\InputenxSlot{171}{017A}{\do{cp852}}
+\InputenxSlot{171}{1E0B}{\do{iso-8859-14}}
+\InputenxSlot{172}{00A8}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{172}{00AC}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-15}%
+ \do{cp1250}\do{cp1252}\do{cp1257}%
+}
+\InputenxSlot{172}{00BC}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{172}{010C}{\do{cp852}}
+\InputenxSlot{172}{0134}{\do{iso-8859-3}}
+\InputenxSlot{172}{0166}{\do{iso-8859-4}}
+\InputenxSlot{172}{0179}{\do{iso-8859-2}\do{iso-8859-16}}
+\InputenxSlot{172}{017D}{\do{iso-8859-10}}
+\InputenxSlot{172}{1EF2}{\do{iso-8859-14}}
+\InputenxSlot{172}{2039}{\do{nextstep}}
+\InputenxSlot{173}{00A1}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{173}{00AD}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+}
+\InputenxSlot{173}{015F}{\do{cp852}}
+\InputenxSlot{173}{203A}{\do{nextstep}}
+\InputenxSlot{173}{2260}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{174}{00AB}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{174}{00AE}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{cp1250}\do{cp1252}\do{cp1257}%
+}
+\InputenxSlot{174}{00C6}{\do{mac-roman}}
+\InputenxSlot{174}{0123}{\do{mac-ce}}
+\InputenxSlot{174}{016A}{\do{iso-8859-10}}
+\InputenxSlot{174}{017A}{\do{iso-8859-16}}
+\InputenxSlot{174}{017D}{\do{iso-8859-2}\do{iso-8859-4}}
+\InputenxSlot{174}{FB01}{\do{nextstep}}
+\InputenxSlot{175}{00A4}{\do{cp865}}
+\InputenxSlot{175}{00AF}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-15}%
+ \do{cp1252}%
+}
+\InputenxSlot{175}{00BB}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}%
+}
+\InputenxSlot{175}{00C6}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{175}{00D8}{\do{mac-roman}}
+\InputenxSlot{175}{012E}{\do{mac-ce}}
+\InputenxSlot{175}{014A}{\do{iso-8859-10}}
+\InputenxSlot{175}{0178}{\do{iso-8859-14}}
+\InputenxSlot{175}{017B}{%
+ \do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-16}\do{cp1250}%
+}
+\InputenxSlot{175}{FB02}{\do{nextstep}}
+\InputenxSlot{176}{00AE}{\do{nextstep}}
+\InputenxSlot{176}{00B0}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{176}{012F}{\do{mac-ce}}
+\InputenxSlot{176}{1E1E}{\do{iso-8859-14}}
+\InputenxSlot{176}{221E}{\do{mac-roman}}
+\InputenxSlot{176}{2591}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{177}{00B1}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}\do{mac-roman}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{177}{0105}{\do{iso-8859-2}\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{177}{0127}{\do{iso-8859-3}}
+\InputenxSlot{177}{012A}{\do{mac-ce}}
+\InputenxSlot{177}{1E1F}{\do{iso-8859-14}}
+\InputenxSlot{177}{2013}{\do{nextstep}}
+\InputenxSlot{177}{2592}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{178}{00B2}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-13}%
+ \do{iso-8859-15}\do{cp1252}\do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{178}{010C}{\do{iso-8859-16}}
+\InputenxSlot{178}{0113}{\do{iso-8859-10}}
+\InputenxSlot{178}{0120}{\do{iso-8859-14}}
+\InputenxSlot{178}{02DB}{\do{iso-8859-2}\do{iso-8859-4}\do{cp1250}}
+\InputenxSlot{178}{2020}{\do{nextstep}}
+\InputenxSlot{178}{2264}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{178}{2593}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{179}{00B3}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-13}%
+ \do{iso-8859-15}\do{cp1252}\do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{179}{0121}{\do{iso-8859-14}}
+\InputenxSlot{179}{0123}{\do{iso-8859-10}}
+\InputenxSlot{179}{0142}{\do{iso-8859-2}\do{iso-8859-16}\do{cp1250}}
+\InputenxSlot{179}{0157}{\do{iso-8859-4}}
+\InputenxSlot{179}{2021}{\do{nextstep}}
+\InputenxSlot{179}{2265}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{179}{2502}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{180}{00A5}{\do{mac-roman}}
+\InputenxSlot{180}{00B4}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{cp1250}\do{cp1252}\do{cp1257}%
+}
+\InputenxSlot{180}{00B7}{\do{nextstep}}
+\InputenxSlot{180}{012B}{\do{iso-8859-10}\do{mac-ce}}
+\InputenxSlot{180}{017D}{\do{iso-8859-15}\do{iso-8859-16}}
+\InputenxSlot{180}{1E40}{\do{iso-8859-14}}
+\InputenxSlot{180}{201C}{\do{iso-8859-13}}
+\InputenxSlot{180}{2524}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{181}{00A6}{\do{nextstep}}
+\InputenxSlot{181}{00B5}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-13}%
+ \do{iso-8859-15}\do{cp1250}\do{cp1252}\do{cp1257}\do{mac-roman}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{181}{00C1}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{181}{0129}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{181}{0136}{\do{mac-ce}}
+\InputenxSlot{181}{013E}{\do{iso-8859-2}}
+\InputenxSlot{181}{1E41}{\do{iso-8859-14}}
+\InputenxSlot{181}{201D}{\do{iso-8859-16}}
+\InputenxSlot{181}{2561}{\do{cp437}\do{cp865}}
+\InputenxSlot{182}{00B6}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{nextstep}\do{dec-mcs}%
+}
+\InputenxSlot{182}{00C2}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{182}{0125}{\do{iso-8859-3}}
+\InputenxSlot{182}{0137}{\do{iso-8859-10}}
+\InputenxSlot{182}{013C}{\do{iso-8859-4}}
+\InputenxSlot{182}{015B}{\do{iso-8859-2}}
+\InputenxSlot{182}{2202}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{182}{2562}{\do{cp437}\do{cp865}}
+\InputenxSlot{183}{00B7}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-13}\do{iso-8859-15}\do{iso-8859-16}\do{cp1250}%
+ \do{cp1252}\do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{183}{00C0}{\do{cp850}\do{cp858}}
+\InputenxSlot{183}{011A}{\do{cp852}}
+\InputenxSlot{183}{02C7}{\do{iso-8859-2}\do{iso-8859-4}}
+\InputenxSlot{183}{1E56}{\do{iso-8859-14}}
+\InputenxSlot{183}{2022}{\do{nextstep}}
+\InputenxSlot{183}{2211}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{183}{2556}{\do{cp437}\do{cp865}}
+\InputenxSlot{184}{00A9}{\do{cp850}\do{cp858}}
+\InputenxSlot{184}{00B8}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{cp1250}\do{cp1252}%
+}
+\InputenxSlot{184}{00F8}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{184}{013C}{\do{iso-8859-10}}
+\InputenxSlot{184}{0142}{\do{mac-ce}}
+\InputenxSlot{184}{015E}{\do{cp852}}
+\InputenxSlot{184}{017E}{\do{iso-8859-15}\do{iso-8859-16}}
+\InputenxSlot{184}{1E81}{\do{iso-8859-14}}
+\InputenxSlot{184}{201A}{\do{nextstep}}
+\InputenxSlot{184}{220F}{\do{mac-roman}}
+\InputenxSlot{184}{2555}{\do{cp437}\do{cp865}}
+\InputenxSlot{185}{00B9}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-15}%
+ \do{cp1252}\do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{185}{0105}{\do{cp1250}}
+\InputenxSlot{185}{010D}{\do{iso-8859-16}}
+\InputenxSlot{185}{0111}{\do{iso-8859-10}}
+\InputenxSlot{185}{0131}{\do{iso-8859-3}}
+\InputenxSlot{185}{013B}{\do{mac-ce}}
+\InputenxSlot{185}{0161}{\do{iso-8859-2}\do{iso-8859-4}}
+\InputenxSlot{185}{03C0}{\do{mac-roman}}
+\InputenxSlot{185}{1E57}{\do{iso-8859-14}}
+\InputenxSlot{185}{201E}{\do{nextstep}}
+\InputenxSlot{185}{2563}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{186}{00BA}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-15}\do{cp1252}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{186}{0113}{\do{iso-8859-4}}
+\InputenxSlot{186}{013C}{\do{mac-ce}}
+\InputenxSlot{186}{0157}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{186}{015F}{\do{iso-8859-2}\do{iso-8859-3}\do{cp1250}}
+\InputenxSlot{186}{0161}{\do{iso-8859-10}}
+\InputenxSlot{186}{0219}{\do{iso-8859-16}}
+\InputenxSlot{186}{1E83}{\do{iso-8859-14}}
+\InputenxSlot{186}{201D}{\do{nextstep}}
+\InputenxSlot{186}{222B}{\do{mac-roman}}
+\InputenxSlot{186}{2551}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{187}{00AA}{\do{mac-roman}}
+\InputenxSlot{187}{00BB}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}\do{nextstep}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{187}{011F}{\do{iso-8859-3}}
+\InputenxSlot{187}{0123}{\do{iso-8859-4}}
+\InputenxSlot{187}{013D}{\do{mac-ce}}
+\InputenxSlot{187}{0165}{\do{iso-8859-2}}
+\InputenxSlot{187}{0167}{\do{iso-8859-10}}
+\InputenxSlot{187}{1E60}{\do{iso-8859-14}}
+\InputenxSlot{187}{2557}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{188}{00BA}{\do{mac-roman}}
+\InputenxSlot{188}{00BC}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{cp1252}%
+ \do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{188}{0135}{\do{iso-8859-3}}
+\InputenxSlot{188}{013D}{\do{cp1250}}
+\InputenxSlot{188}{013E}{\do{mac-ce}}
+\InputenxSlot{188}{0152}{\do{iso-8859-15}\do{iso-8859-16}}
+\InputenxSlot{188}{0167}{\do{iso-8859-4}}
+\InputenxSlot{188}{017A}{\do{iso-8859-2}}
+\InputenxSlot{188}{017E}{\do{iso-8859-10}}
+\InputenxSlot{188}{1EF3}{\do{iso-8859-14}}
+\InputenxSlot{188}{2026}{\do{nextstep}}
+\InputenxSlot{188}{255D}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{189}{00A2}{\do{cp850}\do{cp858}}
+\InputenxSlot{189}{00BD}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-13}%
+ \do{cp1252}\do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{189}{0139}{\do{mac-ce}}
+\InputenxSlot{189}{014A}{\do{iso-8859-4}}
+\InputenxSlot{189}{0153}{\do{iso-8859-15}\do{iso-8859-16}}
+\InputenxSlot{189}{017B}{\do{cp852}}
+\InputenxSlot{189}{02DD}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{189}{03A9}{\do{mac-roman}}
+\InputenxSlot{189}{1E84}{\do{iso-8859-14}}
+\InputenxSlot{189}{2030}{\do{nextstep}}
+\InputenxSlot{189}{255C}{\do{cp437}\do{cp865}}
+\InputenxSlot{190}{00A5}{\do{cp850}\do{cp858}}
+\InputenxSlot{190}{00AC}{\do{nextstep}}
+\InputenxSlot{190}{00BE}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-13}\do{cp1252}%
+ \do{cp1257}%
+}
+\InputenxSlot{190}{00E6}{\do{mac-roman}}
+\InputenxSlot{190}{013A}{\do{mac-ce}}
+\InputenxSlot{190}{013E}{\do{cp1250}}
+\InputenxSlot{190}{016B}{\do{iso-8859-10}}
+\InputenxSlot{190}{0178}{\do{iso-8859-15}\do{iso-8859-16}}
+\InputenxSlot{190}{017C}{\do{cp852}}
+\InputenxSlot{190}{017E}{\do{iso-8859-2}\do{iso-8859-4}}
+\InputenxSlot{190}{1E85}{\do{iso-8859-14}}
+\InputenxSlot{190}{255B}{\do{cp437}\do{cp865}}
+\InputenxSlot{191}{00BF}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-15}\do{cp1252}%
+ \do{nextstep}\do{dec-mcs}%
+}
+\InputenxSlot{191}{00E6}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{191}{00F8}{\do{mac-roman}}
+\InputenxSlot{191}{0145}{\do{mac-ce}}
+\InputenxSlot{191}{014B}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{191}{017C}{%
+ \do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-16}\do{cp1250}%
+}
+\InputenxSlot{191}{1E61}{\do{iso-8859-14}}
+\InputenxSlot{191}{2510}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{192}{00B9}{\do{nextstep}}
+\InputenxSlot{192}{00BF}{\do{mac-roman}}
+\InputenxSlot{192}{00C0}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{192}{0100}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{192}{0104}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{192}{0146}{\do{mac-ce}}
+\InputenxSlot{192}{0154}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{192}{2514}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{193}{00A1}{\do{mac-roman}}
+\InputenxSlot{193}{00C1}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{193}{012E}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{193}{0143}{\do{mac-ce}}
+\InputenxSlot{193}{02CB}{\do{nextstep}}
+\InputenxSlot{193}{2534}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{194}{00AC}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{194}{00B4}{\do{nextstep}}
+\InputenxSlot{194}{00C2}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{194}{0100}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{194}{252C}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{195}{00C3}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{195}{0102}{\do{iso-8859-2}\do{iso-8859-16}\do{cp1250}}
+\InputenxSlot{195}{0106}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{195}{02C6}{\do{nextstep}}
+\InputenxSlot{195}{221A}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{195}{251C}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{196}{00C4}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{196}{0144}{\do{mac-ce}}
+\InputenxSlot{196}{0192}{\do{mac-roman}}
+\InputenxSlot{196}{02DC}{\do{nextstep}}
+\InputenxSlot{196}{2500}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{197}{00AF}{\do{nextstep}}
+\InputenxSlot{197}{00C5}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-13}\do{iso-8859-14}\do{iso-8859-15}\do{cp1252}%
+ \do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{197}{0106}{\do{iso-8859-16}}
+\InputenxSlot{197}{010A}{\do{iso-8859-3}}
+\InputenxSlot{197}{0139}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{197}{0147}{\do{mac-ce}}
+\InputenxSlot{197}{2248}{\do{mac-roman}}
+\InputenxSlot{197}{253C}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{198}{00C6}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{iso-8859-16}\do{cp1252}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{198}{00E3}{\do{cp850}\do{cp858}}
+\InputenxSlot{198}{0102}{\do{cp852}}
+\InputenxSlot{198}{0106}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{198}{0108}{\do{iso-8859-3}}
+\InputenxSlot{198}{0118}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{198}{02D8}{\do{nextstep}}
+\InputenxSlot{198}{2206}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{198}{255E}{\do{cp437}\do{cp865}}
+\InputenxSlot{199}{00AB}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{199}{00C3}{\do{cp850}\do{cp858}}
+\InputenxSlot{199}{00C7}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-9}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{iso-8859-16}\do{cp1250}%
+ \do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{199}{0103}{\do{cp852}}
+\InputenxSlot{199}{0112}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{199}{012E}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{199}{02D9}{\do{nextstep}}
+\InputenxSlot{199}{255F}{\do{cp437}\do{cp865}}
+\InputenxSlot{200}{00A8}{\do{nextstep}}
+\InputenxSlot{200}{00BB}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{200}{00C8}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{200}{010C}{%
+ \do{iso-8859-2}\do{iso-8859-4}\do{iso-8859-10}\do{iso-8859-13}%
+ \do{cp1250}\do{cp1257}%
+}
+\InputenxSlot{200}{255A}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{201}{00B2}{\do{nextstep}}
+\InputenxSlot{201}{00C9}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{201}{2026}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{201}{2554}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{202}{00A0}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{202}{00CA}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{202}{0118}{%
+ \do{iso-8859-2}\do{iso-8859-4}\do{iso-8859-10}\do{cp1250}%
+}
+\InputenxSlot{202}{0179}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{202}{02DA}{\do{nextstep}}
+\InputenxSlot{202}{2569}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{203}{00B8}{\do{nextstep}}
+\InputenxSlot{203}{00C0}{\do{mac-roman}}
+\InputenxSlot{203}{00CB}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{203}{0116}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{203}{0148}{\do{mac-ce}}
+\InputenxSlot{203}{2566}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{204}{00B3}{\do{nextstep}}
+\InputenxSlot{204}{00C3}{\do{mac-roman}}
+\InputenxSlot{204}{00CC}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{204}{0116}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{204}{011A}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{204}{0122}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{204}{0150}{\do{mac-ce}}
+\InputenxSlot{204}{2560}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{205}{00CD}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{205}{00D5}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{205}{0136}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{205}{02DD}{\do{nextstep}}
+\InputenxSlot{205}{2550}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{206}{00CE}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{206}{012A}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{206}{0151}{\do{mac-ce}}
+\InputenxSlot{206}{0152}{\do{mac-roman}}
+\InputenxSlot{206}{02DB}{\do{nextstep}}
+\InputenxSlot{206}{256C}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{207}{00A4}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{207}{00CF}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{iso-8859-16}\do{cp1252}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{207}{010E}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{207}{012A}{\do{iso-8859-4}}
+\InputenxSlot{207}{013B}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{207}{014C}{\do{mac-ce}}
+\InputenxSlot{207}{0153}{\do{mac-roman}}
+\InputenxSlot{207}{02C7}{\do{nextstep}}
+\InputenxSlot{207}{2567}{\do{cp437}\do{cp865}}
+\InputenxSlot{208}{00D0}{%
+ \do{iso-8859-1}\do{iso-8859-10}\do{iso-8859-15}\do{cp1252}%
+}
+\InputenxSlot{208}{00F0}{\do{cp850}\do{cp858}}
+\InputenxSlot{208}{0110}{%
+ \do{iso-8859-2}\do{iso-8859-4}\do{iso-8859-16}\do{cp1250}%
+}
+\InputenxSlot{208}{0111}{\do{cp852}}
+\InputenxSlot{208}{011E}{\do{iso-8859-9}}
+\InputenxSlot{208}{0160}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{208}{0174}{\do{iso-8859-14}}
+\InputenxSlot{208}{2013}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{208}{2014}{\do{nextstep}}
+\InputenxSlot{208}{2568}{\do{cp437}\do{cp865}}
+\InputenxSlot{209}{00B1}{\do{nextstep}}
+\InputenxSlot{209}{00D0}{\do{cp850}\do{cp858}}
+\InputenxSlot{209}{00D1}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{209}{0110}{\do{cp852}}
+\InputenxSlot{209}{0143}{%
+ \do{iso-8859-2}\do{iso-8859-13}\do{iso-8859-16}\do{cp1250}%
+ \do{cp1257}%
+}
+\InputenxSlot{209}{0145}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{209}{2014}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{209}{2564}{\do{cp437}\do{cp865}}
+\InputenxSlot{210}{00BC}{\do{nextstep}}
+\InputenxSlot{210}{00CA}{\do{cp850}\do{cp858}}
+\InputenxSlot{210}{00D2}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{210}{010E}{\do{cp852}}
+\InputenxSlot{210}{0145}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{210}{0147}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{210}{014C}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{210}{201C}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{210}{2565}{\do{cp437}\do{cp865}}
+\InputenxSlot{211}{00BD}{\do{nextstep}}
+\InputenxSlot{211}{00CB}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{211}{00D3}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-9}%
+ \do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{211}{0136}{\do{iso-8859-4}}
+\InputenxSlot{211}{201D}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{211}{2559}{\do{cp437}\do{cp865}}
+\InputenxSlot{212}{00BE}{\do{nextstep}}
+\InputenxSlot{212}{00C8}{\do{cp850}\do{cp858}}
+\InputenxSlot{212}{00D4}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{212}{010F}{\do{cp852}}
+\InputenxSlot{212}{014C}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{212}{2018}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{212}{2558}{\do{cp437}\do{cp865}}
+\InputenxSlot{213}{00D5}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-13}\do{iso-8859-14}\do{iso-8859-15}\do{cp1252}%
+ \do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{213}{00E0}{\do{nextstep}}
+\InputenxSlot{213}{0120}{\do{iso-8859-3}}
+\InputenxSlot{213}{0131}{\do{cp850}}
+\InputenxSlot{213}{0147}{\do{cp852}}
+\InputenxSlot{213}{0150}{\do{iso-8859-2}\do{iso-8859-16}\do{cp1250}}
+\InputenxSlot{213}{2019}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{213}{20AC}{\do{cp858}}
+\InputenxSlot{213}{2552}{\do{cp437}\do{cp865}}
+\InputenxSlot{214}{00CD}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{214}{00D6}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{214}{00E1}{\do{nextstep}}
+\InputenxSlot{214}{00F7}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{214}{2553}{\do{cp437}\do{cp865}}
+\InputenxSlot{215}{00CE}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{215}{00D7}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-15}\do{cp1250}%
+ \do{cp1252}\do{cp1257}%
+}
+\InputenxSlot{215}{00E2}{\do{nextstep}}
+\InputenxSlot{215}{0152}{\do{dec-mcs}}
+\InputenxSlot{215}{015A}{\do{iso-8859-16}}
+\InputenxSlot{215}{0168}{\do{iso-8859-10}}
+\InputenxSlot{215}{1E6A}{\do{iso-8859-14}}
+\InputenxSlot{215}{256B}{\do{cp437}\do{cp865}}
+\InputenxSlot{215}{25CA}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{216}{00CF}{\do{cp850}\do{cp858}}
+\InputenxSlot{216}{00D8}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{216}{00E3}{\do{nextstep}}
+\InputenxSlot{216}{00FF}{\do{mac-roman}}
+\InputenxSlot{216}{011B}{\do{cp852}}
+\InputenxSlot{216}{011C}{\do{iso-8859-3}}
+\InputenxSlot{216}{014D}{\do{mac-ce}}
+\InputenxSlot{216}{0158}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{216}{0170}{\do{iso-8859-16}}
+\InputenxSlot{216}{0172}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{216}{256A}{\do{cp437}\do{cp865}}
+\InputenxSlot{217}{00D9}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{217}{00E4}{\do{nextstep}}
+\InputenxSlot{217}{0141}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{217}{0154}{\do{mac-ce}}
+\InputenxSlot{217}{016E}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{217}{0172}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{217}{0178}{\do{mac-roman}}
+\InputenxSlot{217}{2518}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{218}{00DA}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{218}{00E5}{\do{nextstep}}
+\InputenxSlot{218}{0155}{\do{mac-ce}}
+\InputenxSlot{218}{015A}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{218}{2044}{\do{mac-roman}}
+\InputenxSlot{218}{250C}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{219}{00DB}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-4}\do{iso-8859-9}%
+ \do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}\do{iso-8859-16}%
+ \do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{219}{00E7}{\do{nextstep}}
+\InputenxSlot{219}{0158}{\do{mac-ce}}
+\InputenxSlot{219}{016A}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{219}{0170}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{219}{20AC}{\do{mac-roman}}
+\InputenxSlot{219}{2588}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{220}{00DC}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{220}{00E8}{\do{nextstep}}
+\InputenxSlot{220}{2039}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{220}{2584}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{221}{00A6}{\do{cp850}\do{cp858}}
+\InputenxSlot{221}{00DD}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-10}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{cp1250}\do{cp1252}%
+}
+\InputenxSlot{221}{00E9}{\do{nextstep}}
+\InputenxSlot{221}{0118}{\do{iso-8859-16}}
+\InputenxSlot{221}{0130}{\do{iso-8859-9}}
+\InputenxSlot{221}{0162}{\do{cp852}}
+\InputenxSlot{221}{0168}{\do{iso-8859-4}}
+\InputenxSlot{221}{016C}{\do{iso-8859-3}}
+\InputenxSlot{221}{0178}{\do{dec-mcs}}
+\InputenxSlot{221}{017B}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{221}{203A}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{221}{258C}{\do{cp437}\do{cp865}}
+\InputenxSlot{222}{00CC}{\do{cp850}\do{cp858}}
+\InputenxSlot{222}{00DE}{%
+ \do{iso-8859-1}\do{iso-8859-10}\do{iso-8859-15}\do{cp1252}%
+}
+\InputenxSlot{222}{00EA}{\do{nextstep}}
+\InputenxSlot{222}{0159}{\do{mac-ce}}
+\InputenxSlot{222}{015C}{\do{iso-8859-3}}
+\InputenxSlot{222}{015E}{\do{iso-8859-9}}
+\InputenxSlot{222}{0162}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{222}{016A}{\do{iso-8859-4}}
+\InputenxSlot{222}{016E}{\do{cp852}}
+\InputenxSlot{222}{0176}{\do{iso-8859-14}}
+\InputenxSlot{222}{017D}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{222}{021A}{\do{iso-8859-16}}
+\InputenxSlot{222}{2590}{\do{cp437}\do{cp865}}
+\InputenxSlot{222}{FB01}{\do{mac-roman}}
+\InputenxSlot{223}{00DF}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{223}{00EB}{\do{nextstep}}
+\InputenxSlot{223}{0156}{\do{mac-ce}}
+\InputenxSlot{223}{2580}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{223}{FB02}{\do{mac-roman}}
+\InputenxSlot{224}{00D3}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{224}{00E0}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{224}{00EC}{\do{nextstep}}
+\InputenxSlot{224}{0101}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{224}{0105}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{224}{0155}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{224}{0157}{\do{mac-ce}}
+\InputenxSlot{224}{03B1}{\do{cp437}\do{cp865}}
+\InputenxSlot{224}{2021}{\do{mac-roman}}
+\InputenxSlot{225}{00B7}{\do{mac-roman}}
+\InputenxSlot{225}{00C6}{\do{nextstep}}
+\InputenxSlot{225}{00DF}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{225}{00E1}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{225}{012F}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{225}{0160}{\do{mac-ce}}
+\InputenxSlot{226}{00D4}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{226}{00E2}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{226}{00ED}{\do{nextstep}}
+\InputenxSlot{226}{0101}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{226}{0393}{\do{cp437}\do{cp865}}
+\InputenxSlot{226}{201A}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{227}{00AA}{\do{nextstep}}
+\InputenxSlot{227}{00D2}{\do{cp850}\do{cp858}}
+\InputenxSlot{227}{00E3}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{227}{0103}{\do{iso-8859-2}\do{iso-8859-16}\do{cp1250}}
+\InputenxSlot{227}{0107}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{227}{0143}{\do{cp852}}
+\InputenxSlot{227}{03C0}{\do{cp437}\do{cp865}}
+\InputenxSlot{227}{201E}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{228}{00E4}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{228}{00EE}{\do{nextstep}}
+\InputenxSlot{228}{00F5}{\do{cp850}\do{cp858}}
+\InputenxSlot{228}{0144}{\do{cp852}}
+\InputenxSlot{228}{0161}{\do{mac-ce}}
+\InputenxSlot{228}{03A3}{\do{cp437}\do{cp865}}
+\InputenxSlot{228}{2030}{\do{mac-roman}}
+\InputenxSlot{229}{00C2}{\do{mac-roman}}
+\InputenxSlot{229}{00D5}{\do{cp850}\do{cp858}}
+\InputenxSlot{229}{00E5}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-13}\do{iso-8859-14}\do{iso-8859-15}\do{cp1252}%
+ \do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{229}{00EF}{\do{nextstep}}
+\InputenxSlot{229}{0107}{\do{iso-8859-16}}
+\InputenxSlot{229}{010B}{\do{iso-8859-3}}
+\InputenxSlot{229}{013A}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{229}{0148}{\do{cp852}}
+\InputenxSlot{229}{015A}{\do{mac-ce}}
+\InputenxSlot{229}{03C3}{\do{cp437}\do{cp865}}
+\InputenxSlot{230}{00B5}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{230}{00CA}{\do{mac-roman}}
+\InputenxSlot{230}{00E6}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{iso-8859-16}\do{cp1252}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{230}{00F0}{\do{nextstep}}
+\InputenxSlot{230}{0107}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{230}{0109}{\do{iso-8859-3}}
+\InputenxSlot{230}{0119}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{230}{015B}{\do{mac-ce}}
+\InputenxSlot{230}{0160}{\do{cp852}}
+\InputenxSlot{231}{00C1}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{231}{00E7}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-9}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{iso-8859-16}\do{cp1250}%
+ \do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{231}{00F1}{\do{nextstep}}
+\InputenxSlot{231}{00FE}{\do{cp850}\do{cp858}}
+\InputenxSlot{231}{0113}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{231}{012F}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{231}{0161}{\do{cp852}}
+\InputenxSlot{231}{03C4}{\do{cp437}\do{cp865}}
+\InputenxSlot{232}{00CB}{\do{mac-roman}}
+\InputenxSlot{232}{00DE}{\do{cp850}\do{cp858}}
+\InputenxSlot{232}{00E8}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{232}{010D}{%
+ \do{iso-8859-2}\do{iso-8859-4}\do{iso-8859-10}\do{iso-8859-13}%
+ \do{cp1250}\do{cp1257}%
+}
+\InputenxSlot{232}{0141}{\do{nextstep}}
+\InputenxSlot{232}{0154}{\do{cp852}}
+\InputenxSlot{232}{0164}{\do{mac-ce}}
+\InputenxSlot{232}{03A6}{\do{cp437}\do{cp865}}
+\InputenxSlot{233}{00C8}{\do{mac-roman}}
+\InputenxSlot{233}{00D8}{\do{nextstep}}
+\InputenxSlot{233}{00DA}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{233}{00E9}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{233}{0165}{\do{mac-ce}}
+\InputenxSlot{233}{0398}{\do{cp437}\do{cp865}}
+\InputenxSlot{234}{00CD}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{234}{00DB}{\do{cp850}\do{cp858}}
+\InputenxSlot{234}{00EA}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{234}{0119}{%
+ \do{iso-8859-2}\do{iso-8859-4}\do{iso-8859-10}\do{cp1250}%
+}
+\InputenxSlot{234}{0152}{\do{nextstep}}
+\InputenxSlot{234}{0155}{\do{cp852}}
+\InputenxSlot{234}{017A}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{234}{03A9}{\do{cp437}\do{cp865}}
+\InputenxSlot{235}{00BA}{\do{nextstep}}
+\InputenxSlot{235}{00CE}{\do{mac-roman}}
+\InputenxSlot{235}{00D9}{\do{cp850}\do{cp858}}
+\InputenxSlot{235}{00EB}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{235}{0117}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{235}{0170}{\do{cp852}}
+\InputenxSlot{235}{017D}{\do{mac-ce}}
+\InputenxSlot{235}{03B4}{\do{cp437}\do{cp865}}
+\InputenxSlot{236}{00CF}{\do{mac-roman}}
+\InputenxSlot{236}{00EC}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{236}{00F2}{\do{nextstep}}
+\InputenxSlot{236}{00FD}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{236}{0117}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{236}{011B}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{236}{0123}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{236}{017E}{\do{mac-ce}}
+\InputenxSlot{236}{221E}{\do{cp437}\do{cp865}}
+\InputenxSlot{237}{00CC}{\do{mac-roman}}
+\InputenxSlot{237}{00DD}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{237}{00ED}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{237}{00F3}{\do{nextstep}}
+\InputenxSlot{237}{0137}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{237}{016A}{\do{mac-ce}}
+\InputenxSlot{237}{03C6}{\do{cp437}\do{cp865}}
+\InputenxSlot{238}{00AF}{\do{cp850}\do{cp858}}
+\InputenxSlot{238}{00D3}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{238}{00EE}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{238}{00F4}{\do{nextstep}}
+\InputenxSlot{238}{012B}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{238}{0163}{\do{cp852}}
+\InputenxSlot{238}{03B5}{\do{cp437}\do{cp865}}
+\InputenxSlot{239}{00B4}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{239}{00D4}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{239}{00EF}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{iso-8859-16}\do{cp1252}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{239}{00F5}{\do{nextstep}}
+\InputenxSlot{239}{010F}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{239}{012B}{\do{iso-8859-4}}
+\InputenxSlot{239}{013C}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{239}{2229}{\do{cp437}\do{cp865}}
+\InputenxSlot{240}{00AD}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{240}{00F0}{%
+ \do{iso-8859-1}\do{iso-8859-10}\do{iso-8859-15}\do{cp1252}%
+}
+\InputenxSlot{240}{00F6}{\do{nextstep}}
+\InputenxSlot{240}{0111}{%
+ \do{iso-8859-2}\do{iso-8859-4}\do{iso-8859-16}\do{cp1250}%
+}
+\InputenxSlot{240}{011F}{\do{iso-8859-9}}
+\InputenxSlot{240}{0161}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{240}{016B}{\do{mac-ce}}
+\InputenxSlot{240}{0175}{\do{iso-8859-14}}
+\InputenxSlot{240}{2261}{\do{cp437}\do{cp865}}
+\InputenxSlot{241}{00B1}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{241}{00D2}{\do{mac-roman}}
+\InputenxSlot{241}{00E6}{\do{nextstep}}
+\InputenxSlot{241}{00F1}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{241}{0144}{%
+ \do{iso-8859-2}\do{iso-8859-13}\do{iso-8859-16}\do{cp1250}%
+ \do{cp1257}%
+}
+\InputenxSlot{241}{0146}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{241}{016E}{\do{mac-ce}}
+\InputenxSlot{241}{02DD}{\do{cp852}}
+\InputenxSlot{242}{00DA}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{242}{00F2}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{242}{00F9}{\do{nextstep}}
+\InputenxSlot{242}{0146}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{242}{0148}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{242}{014D}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{242}{02DB}{\do{cp852}}
+\InputenxSlot{242}{2265}{\do{cp437}\do{cp865}}
+\InputenxSlot{243}{00BE}{\do{cp850}\do{cp858}}
+\InputenxSlot{243}{00DB}{\do{mac-roman}}
+\InputenxSlot{243}{00F3}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-9}%
+ \do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{243}{00FA}{\do{nextstep}}
+\InputenxSlot{243}{0137}{\do{iso-8859-4}}
+\InputenxSlot{243}{016F}{\do{mac-ce}}
+\InputenxSlot{243}{02C7}{\do{cp852}}
+\InputenxSlot{243}{2264}{\do{cp437}\do{cp865}}
+\InputenxSlot{244}{00B6}{\do{cp850}\do{cp858}}
+\InputenxSlot{244}{00D9}{\do{mac-roman}}
+\InputenxSlot{244}{00F4}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{244}{00FB}{\do{nextstep}}
+\InputenxSlot{244}{014D}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{244}{0170}{\do{mac-ce}}
+\InputenxSlot{244}{02D8}{\do{cp852}}
+\InputenxSlot{245}{00A7}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{245}{00F5}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-13}\do{iso-8859-14}\do{iso-8859-15}\do{cp1252}%
+ \do{cp1257}\do{dec-mcs}%
+}
+\InputenxSlot{245}{0121}{\do{iso-8859-3}}
+\InputenxSlot{245}{0131}{\do{mac-roman}\do{nextstep}}
+\InputenxSlot{245}{0151}{\do{iso-8859-2}\do{iso-8859-16}\do{cp1250}}
+\InputenxSlot{245}{0171}{\do{mac-ce}}
+\InputenxSlot{246}{00F6}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{246}{00F7}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{246}{00FC}{\do{nextstep}}
+\InputenxSlot{246}{0172}{\do{mac-ce}}
+\InputenxSlot{246}{02C6}{\do{mac-roman}}
+\InputenxSlot{247}{00B8}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{247}{00F7}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-13}\do{iso-8859-15}\do{cp1250}%
+ \do{cp1252}\do{cp1257}%
+}
+\InputenxSlot{247}{00FD}{\do{nextstep}}
+\InputenxSlot{247}{0153}{\do{dec-mcs}}
+\InputenxSlot{247}{015B}{\do{iso-8859-16}}
+\InputenxSlot{247}{0169}{\do{iso-8859-10}}
+\InputenxSlot{247}{0173}{\do{mac-ce}}
+\InputenxSlot{247}{02DC}{\do{mac-roman}}
+\InputenxSlot{247}{1E6B}{\do{iso-8859-14}}
+\InputenxSlot{247}{2248}{\do{cp437}\do{cp865}}
+\InputenxSlot{248}{00AF}{\do{mac-roman}}
+\InputenxSlot{248}{00B0}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{248}{00DD}{\do{mac-ce}}
+\InputenxSlot{248}{00F8}{%
+ \do{iso-8859-1}\do{iso-8859-4}\do{iso-8859-9}\do{iso-8859-10}%
+ \do{iso-8859-14}\do{iso-8859-15}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{248}{011D}{\do{iso-8859-3}}
+\InputenxSlot{248}{0142}{\do{nextstep}}
+\InputenxSlot{248}{0159}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{248}{0171}{\do{iso-8859-16}}
+\InputenxSlot{248}{0173}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{249}{00A8}{\do{cp850}\do{cp852}\do{cp858}}
+\InputenxSlot{249}{00F8}{\do{nextstep}}
+\InputenxSlot{249}{00F9}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-9}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{249}{00FD}{\do{mac-ce}}
+\InputenxSlot{249}{0142}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{249}{016F}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{249}{0173}{\do{iso-8859-4}\do{iso-8859-10}}
+\InputenxSlot{249}{02D8}{\do{mac-roman}}
+\InputenxSlot{249}{2219}{\do{cp437}\do{cp865}}
+\InputenxSlot{250}{00B7}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{250}{00FA}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1250}\do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{250}{0137}{\do{mac-ce}}
+\InputenxSlot{250}{0153}{\do{nextstep}}
+\InputenxSlot{250}{015B}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{250}{02D9}{\do{cp852}\do{mac-roman}}
+\InputenxSlot{251}{00B9}{\do{cp850}\do{cp858}}
+\InputenxSlot{251}{00DF}{\do{nextstep}}
+\InputenxSlot{251}{00FB}{%
+ \do{iso-8859-1}\do{iso-8859-3}\do{iso-8859-4}\do{iso-8859-9}%
+ \do{iso-8859-10}\do{iso-8859-14}\do{iso-8859-15}\do{iso-8859-16}%
+ \do{cp1252}\do{dec-mcs}%
+}
+\InputenxSlot{251}{016B}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{251}{0171}{\do{iso-8859-2}\do{cp852}\do{cp1250}}
+\InputenxSlot{251}{017B}{\do{mac-ce}}
+\InputenxSlot{251}{02DA}{\do{mac-roman}}
+\InputenxSlot{251}{221A}{\do{cp437}\do{cp865}}
+\InputenxSlot{252}{00B3}{\do{cp850}\do{cp858}}
+\InputenxSlot{252}{00B8}{\do{mac-roman}}
+\InputenxSlot{252}{00FC}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}%
+ \do{iso-8859-9}\do{iso-8859-10}\do{iso-8859-13}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{iso-8859-16}\do{cp1250}\do{cp1252}\do{cp1257}%
+ \do{dec-mcs}%
+}
+\InputenxSlot{252}{00FE}{\do{nextstep}}
+\InputenxSlot{252}{0141}{\do{mac-ce}}
+\InputenxSlot{252}{0158}{\do{cp852}}
+\InputenxSlot{252}{207F}{\do{cp437}\do{cp865}}
+\InputenxSlot{253}{00B2}{%
+ \do{cp437}\do{cp850}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{253}{00FD}{%
+ \do{iso-8859-1}\do{iso-8859-2}\do{iso-8859-10}\do{iso-8859-14}%
+ \do{iso-8859-15}\do{cp1250}\do{cp1252}%
+}
+\InputenxSlot{253}{00FF}{\do{nextstep}\do{dec-mcs}}
+\InputenxSlot{253}{0119}{\do{iso-8859-16}}
+\InputenxSlot{253}{0131}{\do{iso-8859-9}}
+\InputenxSlot{253}{0159}{\do{cp852}}
+\InputenxSlot{253}{0169}{\do{iso-8859-4}}
+\InputenxSlot{253}{016D}{\do{iso-8859-3}}
+\InputenxSlot{253}{017C}{\do{iso-8859-13}\do{cp1257}\do{mac-ce}}
+\InputenxSlot{253}{02DD}{\do{mac-roman}}
+\InputenxSlot{254}{00FE}{%
+ \do{iso-8859-1}\do{iso-8859-10}\do{iso-8859-15}\do{cp1252}%
+}
+\InputenxSlot{254}{0122}{\do{mac-ce}}
+\InputenxSlot{254}{015D}{\do{iso-8859-3}}
+\InputenxSlot{254}{015F}{\do{iso-8859-9}}
+\InputenxSlot{254}{0163}{\do{iso-8859-2}\do{cp1250}}
+\InputenxSlot{254}{016B}{\do{iso-8859-4}}
+\InputenxSlot{254}{0177}{\do{iso-8859-14}}
+\InputenxSlot{254}{017E}{\do{iso-8859-13}\do{cp1257}}
+\InputenxSlot{254}{021B}{\do{iso-8859-16}}
+\InputenxSlot{254}{02DB}{\do{mac-roman}}
+\InputenxSlot{254}{25A0}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{255}{00A0}{%
+ \do{cp437}\do{cp850}\do{cp852}\do{cp858}\do{cp865}%
+}
+\InputenxSlot{255}{00FF}{%
+ \do{iso-8859-1}\do{iso-8859-9}\do{iso-8859-14}\do{iso-8859-15}%
+ \do{iso-8859-16}\do{cp1252}%
+}
+\InputenxSlot{255}{0138}{\do{iso-8859-10}}
+\InputenxSlot{255}{02C7}{\do{mac-roman}\do{mac-ce}}
+\InputenxSlot{255}{02D9}{%
+ \do{iso-8859-2}\do{iso-8859-3}\do{iso-8859-4}\do{cp1250}\do{cp1257}%
+}
+\InputenxSlot{255}{2019}{\do{iso-8859-13}}
+% \end{macrocode}
+% \fi
+%
+% \begin{macrocode}
+%</slot>
+% \end{macrocode}
+%
+% \subsection{Mapping UC to LICR}
+%
+% \begin{macrocode}
+%<*uc>
+\ProvidesFile{ix-uc.def}%
+ [2006/08/24 v1.0 UC to LICR (inputenx)]
+% \end{macrocode}
+%
+% \textit{List omitted here, see \xfile{ix-uc.def}.}
+% \iffalse
+% \begin{macrocode}
+\InputenxUC{00A0}{\nobreakspace}{}
+\InputenxUC{00A1}{\textexclamdown}{}
+\InputenxUC{00A2}{\textcent}{%
+ \ProvideTextCommandDefault{\textcent}{%
+ \TextSymbolUnavailable\textcent
+ }%
+}
+\InputenxUC{00A3}{\textsterling}{}
+\InputenxUC{00A4}{\textcurrency}{%
+ \ProvideTextCommandDefault{\textcurrency}{%
+ \TextSymbolUnavailable\textcurrency
+ }%
+}
+\InputenxUC{00A5}{\textyen}{%
+ \ProvideTextCommandDefault{\textyen}{%
+ \TextSymbolUnavailable\textyen
+ }%
+}
+\InputenxUC{00A6}{\textbrokenbar}{%
+ \ProvideTextCommandDefault{\textbrokenbar}{%
+ \TextSymbolUnavailable\textbrokenbar
+ }%
+}
+\InputenxUC{00A7}{\textsection}{}
+\InputenxUC{00A8}{\textasciidieresis}{%
+ \ProvideTextCommandDefault{\textasciidieresis}{%
+ \"{}%
+ }%
+}
+\InputenxUC{00A9}{\textcopyright}{}
+\InputenxUC{00AA}{\textordfeminine}{}
+\InputenxUC{00AB}{\guillemotleft}{}
+\InputenxUC{00AC}{\textlnot}{%
+ \ProvideTextCommandDefault{\textlnot}{%
+ \ensuremath\lnot
+ }%
+}
+\InputenxUC{00AD}{\-}{}
+\InputenxUC{00AE}{\textregistered}{}
+\InputenxUC{00AF}{\textasciimacron}{%
+ \ProvideTextCommandDefault{\textasciimacron}{%
+ \@tabacckludge={}%
+ }%
+}
+\InputenxUC{00B0}{\textdegree}{%
+ \ProvideTextCommandDefault{\textdegree}{%
+ \ensuremath{{^\circ}}%
+ }%
+}
+\InputenxUC{00B1}{\textpm}{%
+ \ProvideTextCommandDefault{\textpm}{%
+ \ensuremath\pm
+ }%
+}
+\InputenxUC{00B2}{\texttwosuperior}{%
+ \ProvideTextCommandDefault{\texttwosuperior}{%
+ \ensuremath{{^2}}%
+ }%
+}
+\InputenxUC{00B3}{\textthreesuperior}{%
+ \ProvideTextCommandDefault{\textthreesuperior}{%
+ \ensuremath{{^3}}%
+ }%
+}
+\InputenxUC{00B4}{\textasciiacute}{%
+ \ProvideTextCommandDefault{\textasciiacute}{%
+ \@tabacckludge'{}%
+ }%
+}
+\InputenxUC{00B5}{\textmu}{%
+ \ProvideTextCommandDefault{\textmu}{%
+ \ensuremath\mu
+ }%
+}
+\InputenxUC{00B6}{\textparagraph}{}
+\InputenxUC{00B7}{\textperiodcentered}{}
+\InputenxUC{00B8}{\c\ }{}
+\InputenxUC{00B9}{\textonesuperior}{%
+ \ProvideTextCommandDefault{\textonesuperior}{%
+ \ensuremath{{^1}}%
+ }%
+}
+\InputenxUC{00BA}{\textordmasculine}{}
+\InputenxUC{00BB}{\guillemotright}{}
+\InputenxUC{00BC}{\textonequarter}{%
+ \ProvideTextCommandDefault{\textonequarter}{%
+ \ensuremath{\frac14}%
+ }%
+}
+\InputenxUC{00BD}{\textonehalf}{%
+ \ProvideTextCommandDefault{\textonehalf}{%
+ \ensuremath{\frac12}%
+ }%
+}
+\InputenxUC{00BE}{\textthreequarters}{%
+ \ProvideTextCommandDefault{\textthreequarters}{%
+ \ensuremath{\frac34}%
+ }%
+}
+\InputenxUC{00BF}{\textquestiondown}{}
+\InputenxUC{00C0}{\@tabacckludge`A}{}
+\InputenxUC{00C1}{\@tabacckludge'A}{}
+\InputenxUC{00C2}{\^A}{}
+\InputenxUC{00C3}{\~A}{}
+\InputenxUC{00C4}{\"A}{}
+\InputenxUC{00C5}{\r A}{}
+\InputenxUC{00C6}{\AE}{}
+\InputenxUC{00C7}{\c C}{}
+\InputenxUC{00C8}{\@tabacckludge`E}{}
+\InputenxUC{00C9}{\@tabacckludge'E}{}
+\InputenxUC{00CA}{\^E}{}
+\InputenxUC{00CB}{\"E}{}
+\InputenxUC{00CC}{\@tabacckludge`I}{}
+\InputenxUC{00CD}{\@tabacckludge'I}{}
+\InputenxUC{00CE}{\^I}{}
+\InputenxUC{00CF}{\"I}{}
+\InputenxUC{00D0}{\DH}{}
+\InputenxUC{00D1}{\~N}{}
+\InputenxUC{00D2}{\@tabacckludge`O}{}
+\InputenxUC{00D3}{\@tabacckludge'O}{}
+\InputenxUC{00D4}{\^O}{}
+\InputenxUC{00D5}{\~O}{}
+\InputenxUC{00D6}{\"O}{}
+\InputenxUC{00D7}{\texttimes}{%
+ \ProvideTextCommandDefault{\texttimes}{%
+ \ensuremath\times
+ }%
+}
+\InputenxUC{00D8}{\O}{}
+\InputenxUC{00D9}{\@tabacckludge`U}{}
+\InputenxUC{00DA}{\@tabacckludge'U}{}
+\InputenxUC{00DB}{\^U}{}
+\InputenxUC{00DC}{\"U}{}
+\InputenxUC{00DD}{\@tabacckludge'Y}{}
+\InputenxUC{00DE}{\TH}{}
+\InputenxUC{00DF}{\ss}{}
+\InputenxUC{00E0}{\@tabacckludge`a}{}
+\InputenxUC{00E1}{\@tabacckludge'a}{}
+\InputenxUC{00E2}{\^a}{}
+\InputenxUC{00E3}{\~a}{}
+\InputenxUC{00E4}{\"a}{}
+\InputenxUC{00E5}{\r a}{}
+\InputenxUC{00E6}{\ae}{}
+\InputenxUC{00E7}{\c c}{}
+\InputenxUC{00E8}{\@tabacckludge`e}{}
+\InputenxUC{00E9}{\@tabacckludge'e}{}
+\InputenxUC{00EA}{\^e}{}
+\InputenxUC{00EB}{\"e}{}
+\InputenxUC{00EC}{\@tabacckludge`\i}{}
+\InputenxUC{00ED}{\@tabacckludge'\i}{}
+\InputenxUC{00EE}{\^\i}{}
+\InputenxUC{00EF}{\"\i}{}
+\InputenxUC{00F0}{\dh}{}
+\InputenxUC{00F1}{\~n}{}
+\InputenxUC{00F2}{\@tabacckludge`o}{}
+\InputenxUC{00F3}{\@tabacckludge'o}{}
+\InputenxUC{00F4}{\^o}{}
+\InputenxUC{00F5}{\~o}{}
+\InputenxUC{00F6}{\"o}{}
+\InputenxUC{00F7}{\textdiv}{%
+ \ProvideTextCommandDefault{\textdiv}{%
+ \TextSymbolUnavailable\textdiv
+ }%
+}
+\InputenxUC{00F8}{\o}{}
+\InputenxUC{00F9}{\@tabacckludge`u}{}
+\InputenxUC{00FA}{\@tabacckludge'u}{}
+\InputenxUC{00FB}{\^u}{}
+\InputenxUC{00FC}{\"u}{}
+\InputenxUC{00FD}{\@tabacckludge'y}{}
+\InputenxUC{00FE}{\th}{}
+\InputenxUC{00FF}{\"y}{}
+\InputenxUC{0100}{\@tabacckludge=A}{}
+\InputenxUC{0101}{\@tabacckludge=a}{}
+\InputenxUC{0102}{\u A}{}
+\InputenxUC{0103}{\u a}{}
+\InputenxUC{0104}{\k A}{}
+\InputenxUC{0105}{\k a}{}
+\InputenxUC{0106}{\@tabacckludge'C}{}
+\InputenxUC{0107}{\@tabacckludge'c}{}
+\InputenxUC{0108}{\^C}{}
+\InputenxUC{0109}{\^c}{}
+\InputenxUC{010A}{\.C}{}
+\InputenxUC{010B}{\.c}{}
+\InputenxUC{010C}{\v C}{}
+\InputenxUC{010D}{\v c}{}
+\InputenxUC{010E}{\v D}{}
+\InputenxUC{010F}{\v d}{}
+\InputenxUC{0110}{\DJ}{}
+\InputenxUC{0111}{\dj}{}
+\InputenxUC{0112}{\@tabacckludge=E}{}
+\InputenxUC{0113}{\@tabacckludge=e}{}
+\InputenxUC{0116}{\.E}{}
+\InputenxUC{0117}{\.e}{}
+\InputenxUC{0118}{\k E}{}
+\InputenxUC{0119}{\k e}{}
+\InputenxUC{011A}{\v E}{}
+\InputenxUC{011B}{\v e}{}
+\InputenxUC{011C}{\^G}{}
+\InputenxUC{011D}{\^g}{}
+\InputenxUC{011E}{\u G}{}
+\InputenxUC{011F}{\u g}{}
+\InputenxUC{0120}{\.G}{}
+\InputenxUC{0121}{\.g}{}
+\InputenxUC{0122}{\c G}{}
+\InputenxUC{0123}{\c g}{}
+\InputenxUC{0124}{\^H}{}
+\InputenxUC{0125}{\^h}{}
+\InputenxUC{0126}{\textmalteseH}{%
+ \ProvideTextCommandDefault{\textmalteseH}{%
+ \TextSymbolUnavailable\textmalteseH
+ }%
+}
+\InputenxUC{0127}{\textmalteseh}{%
+ \ProvideTextCommandDefault{\textmalteseh}{%
+ \TextSymbolUnavailable\textmalteseh
+ }%
+}
+\InputenxUC{0128}{\~I}{}
+\InputenxUC{0129}{\~\i}{}
+\InputenxUC{012A}{\@tabacckludge=I}{}
+\InputenxUC{012B}{\@tabacckludge=\i}{}
+\InputenxUC{012E}{\k I}{}
+\InputenxUC{012F}{\k i}{}
+\InputenxUC{0130}{\.I}{}
+\InputenxUC{0131}{\i}{}
+\InputenxUC{0132}{\IJ}{}
+\InputenxUC{0133}{\ij}{}
+\InputenxUC{0134}{\^J}{}
+\InputenxUC{0135}{\^j}{}
+\InputenxUC{0136}{\c K}{}
+\InputenxUC{0137}{\c k}{}
+\InputenxUC{0138}{\textkra}{%
+ \ProvideTextCommandDefault{\textkra}{%
+ \TextSymbolUnavailable\textkra
+ }%
+}
+\InputenxUC{0139}{\@tabacckludge'L}{}
+\InputenxUC{013A}{\@tabacckludge'l}{}
+\InputenxUC{013B}{\c L}{}
+\InputenxUC{013C}{\c l}{}
+\InputenxUC{013D}{\v L}{}
+\InputenxUC{013E}{\v l}{}
+\InputenxUC{0141}{\L}{}
+\InputenxUC{0142}{\l}{}
+\InputenxUC{0143}{\@tabacckludge'N}{}
+\InputenxUC{0144}{\@tabacckludge'n}{}
+\InputenxUC{0145}{\c N}{}
+\InputenxUC{0146}{\c n}{}
+\InputenxUC{0147}{\v N}{}
+\InputenxUC{0148}{\v n}{}
+\InputenxUC{014A}{\NG}{}
+\InputenxUC{014B}{\ng}{}
+\InputenxUC{014C}{\@tabacckludge=O}{}
+\InputenxUC{014D}{\@tabacckludge=o}{}
+\InputenxUC{0150}{\H O}{}
+\InputenxUC{0151}{\H o}{}
+\InputenxUC{0152}{\OE}{}
+\InputenxUC{0153}{\oe}{}
+\InputenxUC{0154}{\@tabacckludge'R}{}
+\InputenxUC{0155}{\@tabacckludge'r}{}
+\InputenxUC{0156}{\c R}{}
+\InputenxUC{0157}{\c r}{}
+\InputenxUC{0158}{\v R}{}
+\InputenxUC{0159}{\v r}{}
+\InputenxUC{015A}{\@tabacckludge'S}{}
+\InputenxUC{015B}{\@tabacckludge's}{}
+\InputenxUC{015C}{\^S}{}
+\InputenxUC{015D}{\^s}{}
+\InputenxUC{015E}{\c S}{}
+\InputenxUC{015F}{\c s}{}
+\InputenxUC{0160}{\v S}{}
+\InputenxUC{0161}{\v s}{}
+\InputenxUC{0162}{\c T}{}
+\InputenxUC{0163}{\c t}{}
+\InputenxUC{0164}{\v T}{}
+\InputenxUC{0165}{\v t}{}
+\InputenxUC{0166}{\textTstroke}{%
+ \ProvideTextCommandDefault{\textTstroke}{%
+ \TextSymbolUnavailable\textTstroke
+ }%
+}
+\InputenxUC{0167}{\texttstroke}{%
+ \ProvideTextCommandDefault{\texttstroke}{%
+ \TextSymbolUnavailable\texttstroke
+ }%
+}
+\InputenxUC{0168}{\~U}{}
+\InputenxUC{0169}{\~u}{}
+\InputenxUC{016A}{\@tabacckludge=U}{}
+\InputenxUC{016B}{\@tabacckludge=u}{}
+\InputenxUC{016C}{\u U}{}
+\InputenxUC{016D}{\u u}{}
+\InputenxUC{016E}{\r U}{}
+\InputenxUC{016F}{\r u}{}
+\InputenxUC{0170}{\H U}{}
+\InputenxUC{0171}{\H u}{}
+\InputenxUC{0172}{\k U}{}
+\InputenxUC{0173}{\k u}{}
+\InputenxUC{0174}{\^W}{}
+\InputenxUC{0175}{\^w}{}
+\InputenxUC{0176}{\^Y}{}
+\InputenxUC{0177}{\^y}{}
+\InputenxUC{0178}{\"Y}{}
+\InputenxUC{0179}{\@tabacckludge'Z}{}
+\InputenxUC{017A}{\@tabacckludge'z}{}
+\InputenxUC{017B}{\.Z}{}
+\InputenxUC{017C}{\.z}{}
+\InputenxUC{017D}{\v Z}{}
+\InputenxUC{017E}{\v z}{}
+\InputenxUC{0192}{\textflorin}{%
+ \ProvideTextCommandDefault{\textflorin}{%
+ \textit{f}%
+ }%
+}
+\InputenxUC{0218}{\textcommabelow S}{%
+ \ProvideTextCommandDefault{\textcommabelow}[1]{%
+ \hmode@bgroup
+ \ooalign{%
+ \null#1\crcr
+ \hidewidth
+ \raise-.31ex\hbox{%
+ \check@mathfonts
+ \fontsize\ssf@size\z@
+ \math@fontsfalse\selectfont,%
+ }%
+ \hidewidth
+ }%
+ \egroup
+ }%
+}
+\InputenxUC{0219}{\textcommabelow s}{%
+ \ProvideTextCommandDefault{\textcommabelow}[1]{%
+ \hmode@bgroup
+ \ooalign{%
+ \null#1\crcr
+ \hidewidth
+ \raise-.31ex\hbox{%
+ \check@mathfonts
+ \fontsize\ssf@size\z@
+ \math@fontsfalse\selectfont,%
+ }%
+ \hidewidth
+ }%
+ \egroup
+ }%
+}
+\InputenxUC{021A}{\textcommabelow T}{%
+ \ProvideTextCommandDefault{\textcommabelow}[1]{%
+ \hmode@bgroup
+ \ooalign{%
+ \null#1\crcr
+ \hidewidth
+ \raise-.31ex\hbox{%
+ \check@mathfonts
+ \fontsize\ssf@size\z@
+ \math@fontsfalse\selectfont,%
+ }%
+ \hidewidth
+ }%
+ \egroup
+ }%
+}
+\InputenxUC{021B}{\textcommabelow t}{%
+ \ProvideTextCommandDefault{\textcommabelow}[1]{%
+ \hmode@bgroup
+ \ooalign{%
+ \null#1\crcr
+ \hidewidth
+ \raise-.31ex\hbox{%
+ \check@mathfonts
+ \fontsize\ssf@size\z@
+ \math@fontsfalse\selectfont,%
+ }%
+ \hidewidth
+ }%
+ \egroup
+ }%
+}
+\InputenxUC{02C6}{\textasciicircum}{}
+\InputenxUC{02C7}{\textasciicaron}{%
+ \ProvideTextCommandDefault{\textasciicaron}{%
+ \v{}%
+ }%
+}
+\InputenxUC{02CB}{\textasciigrave}{%
+ \ProvideTextCommandDefault{\textasciigrave}{%
+ \@tabacckludge`{}%
+ }%
+}
+\InputenxUC{02D8}{\textasciibreve}{%
+ \ProvideTextCommandDefault{\textasciibreve}{%
+ \u{}%
+ }%
+}
+\InputenxUC{02D9}{\.{}}{}
+\InputenxUC{02DA}{\r{}}{}
+\InputenxUC{02DB}{\k{}}{}
+\InputenxUC{02DC}{\textasciitilde}{}
+\InputenxUC{02DD}{\textacutedbl}{%
+ \ProvideTextCommandDefault{\textacutedbl}{%
+ \H{}%
+ }%
+}
+\InputenxUC{0393}{\textGamma}{%
+ \ProvideTextCommandDefault{\textGamma}{%
+ \ensuremath\Gamma
+ }%
+}
+\InputenxUC{0398}{\textTheta}{%
+ \ProvideTextCommandDefault{\textTheta}{%
+ \ensuremath\Theta
+ }%
+}
+\InputenxUC{03A3}{\textSigma}{%
+ \ProvideTextCommandDefault{\textSigma}{%
+ \ensuremath\Sigma
+ }%
+}
+\InputenxUC{03A6}{\textPhi}{%
+ \ProvideTextCommandDefault{\textPhi}{%
+ \ensuremath\Phi
+ }%
+}
+\InputenxUC{03A9}{\textOmega}{%
+ \ProvideTextCommandDefault{\textOmega}{%
+ \ensuremath\Omega
+ }%
+}
+\InputenxUC{03B1}{\textalpha}{%
+ \ProvideTextCommandDefault{\textalpha}{%
+ \ensuremath\alpha
+ }%
+}
+\InputenxUC{03B4}{\textdelta}{%
+ \ProvideTextCommandDefault{\textdelta}{%
+ \ensuremath\delta
+ }%
+}
+\InputenxUC{03B5}{\textepsilon}{%
+ \ProvideTextCommandDefault{\textepsilon}{%
+ \ensuremath\varepsilon
+ }%
+}
+\InputenxUC{03C0}{\textpi}{%
+ \ProvideTextCommandDefault{\textpi}{%
+ \ensuremath\pi
+ }%
+}
+\InputenxUC{03C3}{\textsigma}{%
+ \ProvideTextCommandDefault{\textsigma}{%
+ \ensuremath\sigma
+ }%
+}
+\InputenxUC{03C4}{\texttau}{%
+ \ProvideTextCommandDefault{\texttau}{%
+ \ensuremath\tau
+ }%
+}
+\InputenxUC{03C6}{\textphi}{%
+ \ProvideTextCommandDefault{\textphi}{%
+ \ensuremath\phi
+ }%
+}
+\InputenxUC{0401}{\CYRYO}{}
+\InputenxUC{0402}{\CYRDJE}{}
+\InputenxUC{0404}{\CYRIE}{}
+\InputenxUC{0405}{\CYRDZE}{}
+\InputenxUC{0406}{\CYRII}{}
+\InputenxUC{0407}{\CYRYI}{}
+\InputenxUC{0408}{\CYRJE}{}
+\InputenxUC{0409}{\CYRLJE}{}
+\InputenxUC{040A}{\CYRNJE}{}
+\InputenxUC{040B}{\CYRTSHE}{}
+\InputenxUC{040E}{\CYRUSHRT}{}
+\InputenxUC{040F}{\CYRDZHE}{}
+\InputenxUC{0410}{\CYRA}{}
+\InputenxUC{0411}{\CYRB}{}
+\InputenxUC{0412}{\CYRV}{}
+\InputenxUC{0413}{\CYRG}{}
+\InputenxUC{0414}{\CYRD}{}
+\InputenxUC{0415}{\CYRE}{}
+\InputenxUC{0416}{\CYRZH}{}
+\InputenxUC{0417}{\CYRZ}{}
+\InputenxUC{0418}{\CYRI}{}
+\InputenxUC{0419}{\CYRISHRT}{}
+\InputenxUC{041A}{\CYRK}{}
+\InputenxUC{041B}{\CYRL}{}
+\InputenxUC{041C}{\CYRM}{}
+\InputenxUC{041D}{\CYRN}{}
+\InputenxUC{041E}{\CYRO}{}
+\InputenxUC{041F}{\CYRP}{}
+\InputenxUC{0420}{\CYRR}{}
+\InputenxUC{0421}{\CYRS}{}
+\InputenxUC{0422}{\CYRT}{}
+\InputenxUC{0423}{\CYRU}{}
+\InputenxUC{0424}{\CYRF}{}
+\InputenxUC{0425}{\CYRH}{}
+\InputenxUC{0426}{\CYRC}{}
+\InputenxUC{0427}{\CYRCH}{}
+\InputenxUC{0428}{\CYRSH}{}
+\InputenxUC{0429}{\CYRSHCH}{}
+\InputenxUC{042A}{\CYRHRDSN}{}
+\InputenxUC{042B}{\CYRERY}{}
+\InputenxUC{042C}{\CYRSFTSN}{}
+\InputenxUC{042D}{\CYREREV}{}
+\InputenxUC{042E}{\CYRYU}{}
+\InputenxUC{042F}{\CYRYA}{}
+\InputenxUC{0430}{\cyra}{}
+\InputenxUC{0431}{\cyrb}{}
+\InputenxUC{0432}{\cyrv}{}
+\InputenxUC{0433}{\cyrg}{}
+\InputenxUC{0434}{\cyrd}{}
+\InputenxUC{0435}{\cyre}{}
+\InputenxUC{0436}{\cyrzh}{}
+\InputenxUC{0437}{\cyrz}{}
+\InputenxUC{0438}{\cyri}{}
+\InputenxUC{0439}{\cyrishrt}{}
+\InputenxUC{043A}{\cyrk}{}
+\InputenxUC{043B}{\cyrl}{}
+\InputenxUC{043C}{\cyrm}{}
+\InputenxUC{043D}{\cyrn}{}
+\InputenxUC{043E}{\cyro}{}
+\InputenxUC{043F}{\cyrp}{}
+\InputenxUC{0440}{\cyrr}{}
+\InputenxUC{0441}{\cyrs}{}
+\InputenxUC{0442}{\cyrt}{}
+\InputenxUC{0443}{\cyru}{}
+\InputenxUC{0444}{\cyrf}{}
+\InputenxUC{0445}{\cyrh}{}
+\InputenxUC{0446}{\cyrc}{}
+\InputenxUC{0447}{\cyrch}{}
+\InputenxUC{0448}{\cyrsh}{}
+\InputenxUC{0449}{\cyrshch}{}
+\InputenxUC{044A}{\cyrhrdsn}{}
+\InputenxUC{044B}{\cyrery}{}
+\InputenxUC{044C}{\cyrsftsn}{}
+\InputenxUC{044D}{\cyrerev}{}
+\InputenxUC{044E}{\cyryu}{}
+\InputenxUC{044F}{\cyrya}{}
+\InputenxUC{0451}{\cyryo}{}
+\InputenxUC{0452}{\cyrdje}{}
+\InputenxUC{0454}{\cyrie}{}
+\InputenxUC{0455}{\cyrdze}{}
+\InputenxUC{0456}{\cyrii}{}
+\InputenxUC{0457}{\cyryi}{}
+\InputenxUC{0458}{\cyrje}{}
+\InputenxUC{0459}{\cyrlje}{}
+\InputenxUC{045A}{\cyrnje}{}
+\InputenxUC{045B}{\cyrtshe}{}
+\InputenxUC{045E}{\cyrushrt}{}
+\InputenxUC{045F}{\cyrdzhe}{}
+\InputenxUC{0462}{\CYRYAT}{}
+\InputenxUC{0463}{\cyryat}{}
+\InputenxUC{046A}{\CYRBYUS}{}
+\InputenxUC{046B}{\cyrbyus}{}
+\InputenxUC{0472}{\CYRFITA}{}
+\InputenxUC{0473}{\cyrfita}{}
+\InputenxUC{0474}{\CYRIZH}{}
+\InputenxUC{0475}{\cyrizh}{}
+\InputenxUC{048C}{\CYRSEMISFTSN}{}
+\InputenxUC{048D}{\cyrsemisftsn}{}
+\InputenxUC{048E}{\CYRRTICK}{}
+\InputenxUC{048F}{\cyrrtick}{}
+\InputenxUC{0490}{\CYRGUP}{}
+\InputenxUC{0491}{\cyrgup}{}
+\InputenxUC{0492}{\CYRGHCRS}{}
+\InputenxUC{0493}{\cyrghcrs}{}
+\InputenxUC{0494}{\CYRGHK}{}
+\InputenxUC{0495}{\cyrghk}{}
+\InputenxUC{0496}{\CYRZHDSC}{}
+\InputenxUC{0497}{\cyrzhdsc}{}
+\InputenxUC{0498}{\CYRZDSC}{}
+\InputenxUC{0499}{\cyrzdsc}{}
+\InputenxUC{049A}{\CYRKDSC}{}
+\InputenxUC{049B}{\cyrkdsc}{}
+\InputenxUC{049C}{\CYRKVCRS}{}
+\InputenxUC{049D}{\cyrkvcrs}{}
+\InputenxUC{049E}{\CYRKHCRS}{}
+\InputenxUC{049F}{\cyrkhcrs}{}
+\InputenxUC{04A0}{\CYRKBEAK}{}
+\InputenxUC{04A1}{\cyrkbeak}{}
+\InputenxUC{04A2}{\CYRNDSC}{}
+\InputenxUC{04A3}{\cyrndsc}{}
+\InputenxUC{04A4}{\CYRNG}{}
+\InputenxUC{04A5}{\cyrng}{}
+\InputenxUC{04A6}{\CYRPHK}{}
+\InputenxUC{04A7}{\cyrphk}{}
+\InputenxUC{04A8}{\CYRABHHA}{}
+\InputenxUC{04A9}{\cyrabhha}{}
+\InputenxUC{04AA}{\CYRSDSC}{}
+\InputenxUC{04AB}{\cyrsdsc}{}
+\InputenxUC{04AC}{\CYRTDSC}{}
+\InputenxUC{04AD}{\cyrtdsc}{}
+\InputenxUC{04AE}{\CYRY}{}
+\InputenxUC{04AF}{\cyry}{}
+\InputenxUC{04B0}{\CYRYHCRS}{}
+\InputenxUC{04B1}{\cyryhcrs}{}
+\InputenxUC{04B2}{\CYRHDSC}{}
+\InputenxUC{04B3}{\cyrhdsc}{}
+\InputenxUC{04B4}{\CYRTETSE}{}
+\InputenxUC{04B5}{\cyrtetse}{}
+\InputenxUC{04B6}{\CYRCHRDSC}{}
+\InputenxUC{04B7}{\cyrchrdsc}{}
+\InputenxUC{04B8}{\CYRCHVCRS}{}
+\InputenxUC{04B9}{\cyrchvcrs}{}
+\InputenxUC{04BA}{\CYRSHHA}{}
+\InputenxUC{04BB}{\cyrshha}{}
+\InputenxUC{04BC}{\CYRABHCH}{}
+\InputenxUC{04BD}{\cyrabhch}{}
+\InputenxUC{04BE}{\CYRABHCHDSC}{}
+\InputenxUC{04BF}{\cyrabhchdsc}{}
+\InputenxUC{04C0}{\CYRpalochka}{}
+\InputenxUC{04C3}{\CYRKHK}{}
+\InputenxUC{04C4}{\cyrkhk}{}
+\InputenxUC{04C5}{\CYRLDSC}{}
+\InputenxUC{04C6}{\cyrldsc}{}
+\InputenxUC{04C7}{\CYRNHK}{}
+\InputenxUC{04C8}{\cyrnhk}{}
+\InputenxUC{04CB}{\CYRCHLDSC}{}
+\InputenxUC{04CC}{\cyrchldsc}{}
+\InputenxUC{04CD}{\CYRMDSC}{}
+\InputenxUC{04CE}{\cyrmdsc}{}
+\InputenxUC{04D4}{\CYRAE}{}
+\InputenxUC{04D5}{\cyrae}{}
+\InputenxUC{04D8}{\CYRSCHWA}{}
+\InputenxUC{04D9}{\cyrschwa}{}
+\InputenxUC{04E0}{\CYRABHDZE}{}
+\InputenxUC{04E1}{\cyrabhdze}{}
+\InputenxUC{04E8}{\CYROTLD}{}
+\InputenxUC{04E9}{\cyrotld}{}
+\InputenxUC{0E3F}{\textbaht}{%
+ \ProvideTextCommandDefault{\textbaht}{%
+ \hmode@bgroup
+ \ooalign{%
+ B%
+ \crcr%
+ \hidewidth
+ \setbox\z@\hbox{B}%
+ \dimen@\ht\z@
+ \advance\dimen@\dp\z@
+ \setbox\z@\hbox{\textbar}%
+ \advance\dimen@-\ht\z@
+ \advance\dimen@\dp\z@
+ \raise.5\dimen@\hbox{\textbar}%
+ \hidewidth
+ }%
+ \egroup
+ }%
+}
+\InputenxUC{1E02}{\.B}{}
+\InputenxUC{1E03}{\.b}{}
+\InputenxUC{1E0A}{\.D}{}
+\InputenxUC{1E0B}{\.d}{}
+\InputenxUC{1E1E}{\.F}{}
+\InputenxUC{1E1F}{\.f}{}
+\InputenxUC{1E40}{\.M}{}
+\InputenxUC{1E41}{\.m}{}
+\InputenxUC{1E56}{\.P}{}
+\InputenxUC{1E57}{\.p}{}
+\InputenxUC{1E60}{\.S}{}
+\InputenxUC{1E61}{\.s}{}
+\InputenxUC{1E6A}{\.T}{}
+\InputenxUC{1E6B}{\.t}{}
+\InputenxUC{1E80}{\@tabacckludge`W}{}
+\InputenxUC{1E81}{\@tabacckludge`w}{}
+\InputenxUC{1E82}{\@tabacckludge'W}{}
+\InputenxUC{1E83}{\@tabacckludge'w}{}
+\InputenxUC{1E84}{\"W}{}
+\InputenxUC{1E85}{\"w}{}
+\InputenxUC{1EF2}{\@tabacckludge`Y}{}
+\InputenxUC{1EF3}{\@tabacckludge`y}{}
+\InputenxUC{200C}{\textcompwordmark}{}
+\InputenxUC{2013}{\textendash}{}
+\InputenxUC{2014}{\textemdash}{}
+\InputenxUC{2016}{\textbardbl}{}
+\InputenxUC{2018}{\textquoteleft}{}
+\InputenxUC{2019}{\textquoteright}{}
+\InputenxUC{201A}{\quotesinglbase}{}
+\InputenxUC{201C}{\textquotedblleft}{}
+\InputenxUC{201D}{\textquotedblright}{}
+\InputenxUC{201E}{\quotedblbase}{}
+\InputenxUC{2020}{\textdagger}{}
+\InputenxUC{2021}{\textdaggerdbl}{}
+\InputenxUC{2022}{\textbullet}{}
+\InputenxUC{2026}{\textellipsis}{}
+\InputenxUC{2030}{\textperthousand}{}
+\InputenxUC{2031}{\textpertenthousand}{}
+\InputenxUC{2039}{\guilsinglleft}{}
+\InputenxUC{203A}{\guilsinglright}{}
+\InputenxUC{203B}{\textreferencemark}{}
+\InputenxUC{203D}{\textinterrobang}{%
+ \ProvideTextCommandDefault{\textinterrobang}{%
+ \hmode@bgroup\ooalign{?\crcr\hidewidth!\hidewidth}\egroup
+ }%
+}
+\InputenxUC{2044}{\textfractionsolidus}{%
+ \ProvideTextCommandDefault{\textfractionsolidus}{%
+ /%
+ }%
+}
+\InputenxUC{204E}{\textasteriskcentered}{}
+\InputenxUC{2052}{\textdiscount}{}
+\InputenxUC{207F}{\textnsuperior}{%
+ \ProvideTextCommandDefault{\textnsuperior}{%
+ \ensuremath{{^n}}%
+ }%
+}
+\InputenxUC{20A1}{\textcolonmonetary}{}
+\InputenxUC{20A4}{\textlira}{}
+\InputenxUC{20A6}{\textnaira}{}
+\InputenxUC{20A7}{\textpeseta}{%
+ \ProvideTextCommandDefault{\textpeseta}{%
+ Pt%
+ }%
+}
+\InputenxUC{20A9}{\textwon}{}
+\InputenxUC{20AB}{\textdong}{}
+\InputenxUC{20AC}{\texteuro}{%
+ \ProvideTextCommandDefault{\texteuro}{%
+ \TextSymbolUnavailable\texteuro
+ }%
+}
+\InputenxUC{20B1}{\textpeso}{}
+\InputenxUC{2103}{\textcelsius}{%
+ \ProvideTextCommandDefault{\textcelsius}{%
+ \ensuremath{{^\circ}}C%
+ }%
+}
+\InputenxUC{2116}{\textnumero}{%
+ \ProvideTextCommandDefault{\textnumero}{%
+ N%
+ \bgroup
+ \check@mathfonts
+ \fontsize\sf@size\z@
+ \math@fontsfalse
+ \selectfont
+ \ooalign{%
+ \raise0.5ex\hbox{o}%
+ \crcr
+ \hline
+ }%
+ \egroup
+ }%
+}
+\InputenxUC{2117}{\textcircledP}{%
+ \ProvideTextCommandDefault{\textcircledP}{%
+ \textcircled{%
+ \check@mathfonts
+ \fontsize\sf@size\z@
+ \math@fontsfalse
+ \selectfont
+ P%
+ }%
+ }%
+}
+\InputenxUC{211E}{\textrecipe}{}
+\InputenxUC{2120}{\textservicemark}{%
+ \ProvideTextCommandDefault{\textservicemark}{%
+ \textsuperscript{SM}%
+ }%
+}
+\InputenxUC{2122}{\texttrademark}{}
+\InputenxUC{2126}{\textohm}{%
+ \ProvideTextCommandDefault{\textohm}{%
+ \ensuremath\Omega
+ }%
+}
+\InputenxUC{2127}{\textmho}{}
+\InputenxUC{212E}{\textestimated}{}
+\InputenxUC{2190}{\textleftarrow}{%
+ \ProvideTextCommandDefault{\textleftarrow}{%
+ \ensuremath\leftarrow
+ }%
+}
+\InputenxUC{2191}{\textuparrow}{%
+ \ProvideTextCommandDefault{\textuparrow}{%
+ \ensuremath\uparrow
+ }%
+}
+\InputenxUC{2192}{\textrightarrow}{%
+ \ProvideTextCommandDefault{\textrightarrow}{%
+ \ensuremath\rightarrow
+ }%
+}
+\InputenxUC{2193}{\textdownarrow}{%
+ \ProvideTextCommandDefault{\textdownarrow}{%
+ \ensuremath\downarrow
+ }%
+}
+\InputenxUC{2202}{\textpartial}{%
+ \ProvideTextCommandDefault{\textpartial}{%
+ \ensuremath\partial
+ }%
+}
+\InputenxUC{2206}{\textincrement}{%
+ \ProvideTextCommandDefault{\textincrement}{%
+ \ensuremath\Delta
+ }%
+}
+\InputenxUC{220F}{\textproduct}{%
+ \ProvideTextCommandDefault{\textproduct}{%
+ \ensuremath\Pi
+ }%
+}
+\InputenxUC{2211}{\textsummation}{%
+ \ProvideTextCommandDefault{\textsummation}{%
+ \ensuremath\Sigma
+ }%
+}
+\InputenxUC{2219}{\textbullet}{}
+\InputenxUC{221A}{\textsurd}{%
+ \ProvideTextCommandDefault{\textsurd}{%
+ \ensuremath\surd
+ }%
+}
+\InputenxUC{221E}{\textinfinity}{%
+ \ProvideTextCommandDefault{\textinfinity}{%
+ \ensuremath\infty
+ }%
+}
+\InputenxUC{2229}{\textintersection}{%
+ \ProvideTextCommandDefault{\textintersection}{%
+ \ensuremath\cap
+ }%
+}
+\InputenxUC{222B}{\textintegral}{%
+ \ProvideTextCommandDefault{\textintegral}{%
+ \ensuremath\int
+ }%
+}
+\InputenxUC{2248}{\textapproxequal}{%
+ \ProvideTextCommandDefault{\textapproxequal}{%
+ \ensuremath\approx
+ }%
+}
+\InputenxUC{2260}{\textnotequal}{%
+ \ProvideTextCommandDefault{\textnotequal}{%
+ \ensuremath\neq
+ }%
+}
+\InputenxUC{2261}{\textequivalence}{%
+ \ProvideTextCommandDefault{\textequivalence}{%
+ \ensuremath\equiv
+ }%
+}
+\InputenxUC{2264}{\textlessequal}{%
+ \ProvideTextCommandDefault{\textlessequal}{%
+ \ensuremath\leq
+ }%
+}
+\InputenxUC{2265}{\textgreaterequal}{%
+ \ProvideTextCommandDefault{\textgreaterequal}{%
+ \ensuremath\geq
+ }%
+}
+\InputenxUC{2329}{\textlangle}{%
+ \ProvideTextCommandDefault{\textlangle}{%
+ \ensuremath\langle
+ }%
+}
+\InputenxUC{232A}{\textrangle}{%
+ \ProvideTextCommandDefault{\textrangle}{%
+ \ensuremath\rangle
+ }%
+}
+\InputenxUC{2422}{\textblank}{}
+\InputenxUC{2423}{\textvisiblespace}{}
+\InputenxUC{2500}{\textSFx}{}
+\InputenxUC{2502}{\textSFxi}{}
+\InputenxUC{250C}{\textSFi}{}
+\InputenxUC{2510}{\textSFiii}{}
+\InputenxUC{2514}{\textSFii}{}
+\InputenxUC{2518}{\textSFiv}{}
+\InputenxUC{251C}{\textSFviii}{}
+\InputenxUC{2524}{\textSFix}{}
+\InputenxUC{252C}{\textSFvi}{}
+\InputenxUC{2534}{\textSFvii}{}
+\InputenxUC{253C}{\textSFv}{}
+\InputenxUC{2550}{\textSFxliii}{}
+\InputenxUC{2551}{\textSFxxiv}{}
+\InputenxUC{2552}{\textSFli}{}
+\InputenxUC{2553}{\textSFlii}{}
+\InputenxUC{2554}{\textSFxxxix}{}
+\InputenxUC{2555}{\textSFxxii}{}
+\InputenxUC{2556}{\textSFxxi}{}
+\InputenxUC{2557}{\textSFxxv}{}
+\InputenxUC{2558}{\textSFl}{}
+\InputenxUC{2559}{\textSFxlix}{}
+\InputenxUC{255A}{\textSFxxxviii}{}
+\InputenxUC{255B}{\textSFxxviii}{}
+\InputenxUC{255C}{\textSFxxvii}{}
+\InputenxUC{255D}{\textSFxxvi}{}
+\InputenxUC{255E}{\textSFxxxvi}{}
+\InputenxUC{255F}{\textSFxxxvii}{}
+\InputenxUC{2560}{\textSFxlii}{}
+\InputenxUC{2561}{\textSFxix}{}
+\InputenxUC{2562}{\textSFxx}{}
+\InputenxUC{2563}{\textSFxxiii}{}
+\InputenxUC{2564}{\textSFxlvii}{}
+\InputenxUC{2565}{\textSFxlviii}{}
+\InputenxUC{2566}{\textSFxli}{}
+\InputenxUC{2567}{\textSFxlv}{}
+\InputenxUC{2568}{\textSFxlvi}{}
+\InputenxUC{2569}{\textSFxl}{}
+\InputenxUC{256A}{\textSFliv}{}
+\InputenxUC{256B}{\textSFliii}{}
+\InputenxUC{256C}{\textSFxliv}{}
+\InputenxUC{2580}{\textupblock}{}
+\InputenxUC{2584}{\textdnblock}{}
+\InputenxUC{2588}{\textblock}{}
+\InputenxUC{258C}{\textlfblock}{}
+\InputenxUC{2590}{\textrtblock}{}
+\InputenxUC{2591}{\textltshade}{}
+\InputenxUC{2592}{\textshade}{}
+\InputenxUC{2593}{\textdkshade}{}
+\InputenxUC{25A0}{\textblacksquare}{%
+ \ProvideTextCommandDefault{\textblacksquare}{%
+ \vrule \@width .3em \@height .4em \@depth -.1em\relax
+ }%
+}
+\InputenxUC{25CA}{\textlozenge}{%
+ \ProvideTextCommandDefault{\textlozenge}{%
+ \ensuremath\diamond
+ }%
+}
+\InputenxUC{25E6}{\textopenbullet}{%
+ \ProvideTextCommandDefault{\textopenbullet}{%
+ \ensuremath\circ
+ }%
+}
+\InputenxUC{25EF}{\textbigcircle}{}
+\InputenxUC{266A}{\textmusicalnote}{}
+\InputenxUC{FB01}{fi}{}
+\InputenxUC{FB02}{fl}{}
+% \end{macrocode}
+% \fi
+%
+% \begin{macrocode}
+%</uc>
+% \end{macrocode}
+%
+% \subsection{Math meaning declarations}
+%
+% Package \xpackage{inpmath} already declares math meanings
+% for LICRs. Here are some more. One goal is
+% to use the input characters in math that were defined
+% in the standard \LaTeX\ encodings using \cs{DeclareInputMath}.
+% \begin{macrocode}
+%<*math>
+\ProvidesFile{ix-math.def}%
+ [2006/08/24 v1.0 Math list (inputenx)]
+% \end{macrocode}
+%
+% The next math meaning for \cs{ss} looks a little funny.
+% But it is useful for input characters, where most encodings
+% share in practice the same slot for \cs{ss} and \cs{beta}.
+% Thus we do not need two encodings such as \xfile{cp437de.def}
+% and \xfile{cp437.def}.
+% \begin{macrocode}
+\DeclareMathMeaning{\ss}{\beta}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareMathMeaning{\textalpha}{\alpha}
+\DeclareMathMeaning{\textapproxequal}{\aprox}
+\DeclareMathMeaning{\textbardbl}{\Vert}% = \|
+\DeclareMathMeaning{\textbullet}{\bullet}
+\DeclareMathMeaning{\textcopyright}{{\nfss@text{\textcopyright}}}
+\DeclareMathMeaning{\textdagger}{\dagger}
+\DeclareMathMeaning{\textdaggerdbl}{\ddagger}
+\DeclareMathMeaning{\textdegree}{{^\circ}}
+\DeclareMathMeaning{\textdelta}{\delta}
+\DeclareMathMeaning{\textdollar}{\mathdollar}
+\DeclareMathMeaning{\textepsilon}{\varepsilon}
+\DeclareMathMeaning{\textequivalence}{\equiv}
+\DeclareMathMeaning{\textbraceleft}{\lbrace}
+\DeclareMathMeaning{\textbraceright}{\rbrace}
+\DeclareMathMeaning{\textdiv}{\div}
+\DeclareMathMeaning{\textdownarrow}{\downarrow}
+\DeclareMathMeaning{\textellipsis}{\mathellipsis}
+\DeclareMathMeaning{\textGamma}{\Gamma}
+\DeclareMathMeaning{\textgreaterequal}{\geq}
+\DeclareMathMeaning{\textincrement}{\Delta}
+\DeclareMathMeaning{\textinfinity}{\infty}
+\DeclareMathMeaning{\textintegral}{\int}
+\DeclareMathMeaning{\textintersection}{\cap}
+\DeclareMathMeaning{\textlangle}{\langle}
+\DeclareMathMeaning{\textleftarrow}{\leftarrow}
+\DeclareMathMeaning{\textlessequal}{\leq}
+\DeclareMathMeaning{\textlnot}{\lnot}
+\DeclareMathMeaning{\textlogicalnot}{\lnot}
+\DeclareMathMeaning{\textlozenge}{\diamond}
+\DeclareMathMeaning{\textmu}{\mu}
+\DeclareMathMeaning{\textnotequal}{\neq}
+\DeclareMathMeaning{\textnsuperior}{^n}
+\DeclareMathMeaning{\textohm}{\Omega}
+\DeclareMathMeaning{\textOmega}{\Omega}
+\DeclareMathMeaning{\textonehalf}{\frac12}
+\DeclareMathMeaning{\textonequarter}{\frac14}
+\DeclareMathMeaning{\textonesuperior}{^1}
+\DeclareMathMeaning{\textopenbullet}{\circ}
+\DeclareMathMeaning{\textparagraph}{\mathparagraph}
+\DeclareMathMeaning{\textpartial}{\partial}
+\DeclareMathMeaning{\textPhi}{\Phi}
+\DeclareMathMeaning{\textphi}{\phi}
+\DeclareMathMeaning{\textpi}{\pi}
+\DeclareMathMeaning{\textproduct}{\prod}
+\DeclareMathMeaning{\textrangle}{\rangle}
+\DeclareMathMeaning{\textrightarrow}{\rightarrow}
+\DeclareMathMeaning{\textsection}{\mathsection}
+\DeclareMathMeaning{\textSigma}{\Sigma}
+\DeclareMathMeaning{\textsigma}{\sigma}
+\DeclareMathMeaning{\textsterling}{\mathsterling}
+\DeclareMathMeaning{\textsummation}{\sum}
+\DeclareMathMeaning{\textsurd}{\surd}
+\DeclareMathMeaning{\texttau}{\tau}
+\DeclareMathMeaning{\textTheta}{\Theta}
+\DeclareMathMeaning{\textthreequarters}{\frac34}
+\DeclareMathMeaning{\textthreesuperior}{^3}
+\DeclareMathMeaning{\texttwosuperior}{^2}
+\DeclareMathMeaning{\textuparrow}{\uparrow}
+% \end{macrocode}
+% \begin{macrocode}
+%</math>
+% \end{macrocode}
+%
+% \subsection{Documentation files}
+%
+% \subsubsection{List of known LICR commands}
+%
+% This is the list of commands for use in LICR that are already
+% defined by standard \LaTeX\ without extra packages.
+% \begin{macrocode}
+%<*licrcmds>
+ % List of known LICR commdands of inputenx 2006/08/24 v1.0
+ %
+ % Format: \LICRcmd{<command>}{<type>}
+ % Types:
+ % Accent: <command> was defined by \DeclareTextAccentDefault
+ % Command: <command> was defined by \DeclareTextCommandDefault
+ % Symbol: <command> was defined by \DeclareTextSymbolDefault
+ % Internal: for \@tabacckludge
+ % Extra: additional commands
+ %
+ % Entries derived from the 2ekernel part
+ % of ltoutenc.dtx 2005/11/08 v1.99h.
+ %
+\LICRcmd{\ }{Extra}
+\LICRcmd{\"}{Composite}
+\LICRcmd{\'}{Composite}
+\LICRcmd{\-}{Extra}
+\LICRcmd{\.}{Composite}
+\LICRcmd{\=}{Accent}
+\LICRcmd{\@tabacckludge}{Internal}
+\LICRcmd{\AE}{Symbol}
+\LICRcmd{\DH}{Symbol}
+\LICRcmd{\DJ}{Symbol}
+\LICRcmd{\H}{Composite}
+\LICRcmd{\IJ}{Symbol}
+\LICRcmd{\L}{Symbol}
+\LICRcmd{\NG}{Symbol}
+\LICRcmd{\O}{Symbol}
+\LICRcmd{\OE}{Symbol}
+\LICRcmd{\SS}{Symbol}
+\LICRcmd{\TH}{Symbol}
+\LICRcmd{\^}{Composite}
+\LICRcmd{\`}{Composite}
+\LICRcmd{\ae}{Symbol}
+\LICRcmd{\b}{Command}
+\LICRcmd{\c}{Composite}
+\LICRcmd{\d}{Command}
+\LICRcmd{\dh}{Symbol}
+\LICRcmd{\dj}{Symbol}
+\LICRcmd{\guillemotleft}{Symbol}
+\LICRcmd{\guillemotright}{Symbol}
+\LICRcmd{\guilsinglleft}{Symbol}
+\LICRcmd{\guilsinglright}{Symbol}
+\LICRcmd{\i}{Symbol}
+\LICRcmd{\ij}{Symbol}
+\LICRcmd{\j}{Symbol}
+\LICRcmd{\k}{CompositeCommand}
+\LICRcmd{\l}{Symbol}
+\LICRcmd{\ng}{Symbol}
+\LICRcmd{\nobreakspace}{Extra}
+\LICRcmd{\o}{Symbol}
+\LICRcmd{\oe}{Symbol}
+\LICRcmd{\quotedblbase}{Symbol}
+\LICRcmd{\quotesinglbase}{Symbol}
+\LICRcmd{\r}{Composite}
+\LICRcmd{\ss}{Symbol}
+\LICRcmd{\t}{Accent}
+\LICRcmd{\textasciicircum}{Symbol}
+\LICRcmd{\textasciitilde}{Symbol}
+\LICRcmd{\textasteriskcentered}{Symbol}
+\LICRcmd{\textbackslash}{Symbol}
+\LICRcmd{\textbar}{Symbol}
+\LICRcmd{\textbardbl}{Symbol}
+\LICRcmd{\textbigcircle}{Symbol}
+\LICRcmd{\textbraceleft}{Symbol}
+\LICRcmd{\textbraceright}{Symbol}
+\LICRcmd{\textbullet}{Symbol}
+\LICRcmd{\textcircled}{Command}
+\LICRcmd{\textcompwordmark}{Symbol}
+\LICRcmd{\textcopyright}{CommandDefault}
+\LICRcmd{\textdagger}{Symbol}
+\LICRcmd{\textdaggerdbl}{Symbol}
+\LICRcmd{\textdollar}{Symbol}
+\LICRcmd{\textellipsis}{CommandDefault}
+\LICRcmd{\textemdash}{Symbol}
+\LICRcmd{\textendash}{Symbol}
+\LICRcmd{\textexclamdown}{Symbol}
+\LICRcmd{\textgreater}{Symbol}
+\LICRcmd{\textless}{Symbol}
+\LICRcmd{\textogonekcentered}{Command}
+\LICRcmd{\textordfeminine}{CommandDefault}
+\LICRcmd{\textordmasculine}{CommandDefault}
+\LICRcmd{\textparagraph}{Symbol}
+\LICRcmd{\textperiodcentered}{Symbol}
+\LICRcmd{\textpertenthousand}{Command}
+\LICRcmd{\textperthousand}{Command}
+\LICRcmd{\textquestiondown}{Symbol}
+\LICRcmd{\textquotedbl}{Symbol}
+\LICRcmd{\textquotedblleft}{Symbol}
+\LICRcmd{\textquotedblright}{Symbol}
+\LICRcmd{\textquoteleft}{Symbol}
+\LICRcmd{\textquoteright}{Symbol}
+\LICRcmd{\textregistered}{CommandDefault}
+\LICRcmd{\textsection}{Symbol}
+\LICRcmd{\textsterling}{Symbol}
+\LICRcmd{\texttrademark}{CommandDefault}
+\LICRcmd{\textunderscore}{Symbol}
+\LICRcmd{\textvisiblespace}{Symbol}
+\LICRcmd{\th}{Symbol}
+\LICRcmd{\u}{Composite}
+\LICRcmd{\v}{Composite}
+\LICRcmd{\~}{Composite}
+%</licrcmds>
+% \end{macrocode}
+%
+% \subsubsection{Commented additions for \xfile{utf8enc.dfu}}
+%
+% \begin{macrocode}
+%<*dfudoc>
+ % inputenx-utf8enc.txt 2006/08/24 v1.0
+ % Commented additions for utf8enc.dfu
+
+% \end{macrocode}
+%
+% \textit{List omitted here, see \xfile{inputenx-utf8enc.txt}.}
+% \iffalse
+% \begin{macrocode}
+\DeclareUnicodeCharacter{00A0}{\nobreakspace}
+ % NO-BREAK SPACE
+
+\DeclareUnicodeCharacter{00AD}{\-}
+ % SOFT HYPHEN
+
+\DeclareUnicodeCharacter{0100}{\@tabacckludge=A}
+ % LATIN CAPITAL LETTER A WITH MACRON
+
+\DeclareUnicodeCharacter{0101}{\@tabacckludge=a}
+ % LATIN SMALL LETTER A WITH MACRON
+
+\DeclareUnicodeCharacter{0108}{\^C}
+ % LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{0109}{\^c}
+ % LATIN SMALL LETTER C WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{010A}{\.C}
+ % LATIN CAPITAL LETTER C WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{010B}{\.c}
+ % LATIN SMALL LETTER C WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{0112}{\@tabacckludge=E}
+ % LATIN CAPITAL LETTER E WITH MACRON
+
+\DeclareUnicodeCharacter{0113}{\@tabacckludge=e}
+ % LATIN SMALL LETTER E WITH MACRON
+
+\DeclareUnicodeCharacter{0116}{\.E}
+ % LATIN CAPITAL LETTER E WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{0117}{\.e}
+ % LATIN SMALL LETTER E WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{011C}{\^G}
+ % LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{011D}{\^g}
+ % LATIN SMALL LETTER G WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{0120}{\.G}
+ % LATIN CAPITAL LETTER G WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{0121}{\.g}
+ % LATIN SMALL LETTER G WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{0122}{\c G}
+ % LATIN CAPITAL LETTER G WITH CEDILLA
+
+\DeclareUnicodeCharacter{0123}{\c g}
+ % LATIN SMALL LETTER G WITH CEDILLA
+
+\DeclareUnicodeCharacter{0124}{\^H}
+ % LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{0125}{\^h}
+ % LATIN SMALL LETTER H WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{0126}{\textmalteseH}
+ % LATIN CAPITAL LETTER H WITH STROKE
+ % LATIN CAPITAL LETTER H BAR
+ % latin3.def
+
+\DeclareUnicodeCharacter{0127}{\textmalteseh}
+ % LATIN SMALL LETTER H WITH STROKE
+ % LATIN SMALL LETTER H BAR
+ % latin3.def
+
+\DeclareUnicodeCharacter{0128}{\~I}
+ % LATIN CAPITAL LETTER I WITH TILDE
+
+\DeclareUnicodeCharacter{0129}{\~\i}
+ % LATIN SMALL LETTER I WITH TILDE
+ % LATIN SMALL LETTER I TILDE
+
+\DeclareUnicodeCharacter{012A}{\@tabacckludge=I}
+ % LATIN CAPITAL LETTER I WITH MACRON
+
+\DeclareUnicodeCharacter{012B}{\@tabacckludge=\i}
+ % LATIN SMALL LETTER I WITH MACRON
+
+\DeclareUnicodeCharacter{012E}{\k I}
+ % LATIN CAPITAL LETTER I WITH OGONEK
+
+\DeclareUnicodeCharacter{012F}{\k i}
+ % LATIN SMALL LETTER I WITH OGONEK
+
+\DeclareUnicodeCharacter{0134}{\^J}
+ % LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{0135}{\^j}
+ % LATIN SMALL LETTER J WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{0136}{\c K}
+ % LATIN CAPITAL LETTER K WITH CEDILLA
+
+\DeclareUnicodeCharacter{0137}{\c k}
+ % LATIN SMALL LETTER K WITH CEDILLA
+
+\DeclareUnicodeCharacter{0138}{\textkra}
+ % LATIN SMALL LETTER KRA
+ % latin4.def
+
+\DeclareUnicodeCharacter{013B}{\c L}
+ % LATIN CAPITAL LETTER L WITH CEDILLA
+
+\DeclareUnicodeCharacter{013C}{\c l}
+ % LATIN SMALL LETTER L WITH CEDILLA
+
+\DeclareUnicodeCharacter{0145}{\c N}
+ % LATIN CAPITAL LETTER N WITH CEDILLA
+
+\DeclareUnicodeCharacter{0146}{\c n}
+ % LATIN SMALL LETTER N WITH CEDILLA
+
+\DeclareUnicodeCharacter{014C}{\@tabacckludge=O}
+ % LATIN CAPITAL LETTER O WITH MACRON
+
+\DeclareUnicodeCharacter{014D}{\@tabacckludge=o}
+ % LATIN SMALL LETTER O WITH MACRON
+
+\DeclareUnicodeCharacter{0156}{\c R}
+ % LATIN CAPITAL LETTER R WITH CEDILLA
+
+\DeclareUnicodeCharacter{0157}{\c r}
+ % LATIN SMALL LETTER R WITH CEDILLA
+
+\DeclareUnicodeCharacter{015C}{\^S}
+ % LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{015D}{\^s}
+ % LATIN SMALL LETTER S WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{0166}{\textTstroke}
+ % LATIN CAPITAL LETTER T WITH STROKE
+ % latin4.def
+
+\DeclareUnicodeCharacter{0167}{\texttstroke}
+ % LATIN SMALL LETTER T WITH STROKE
+ % latin4.def
+
+\DeclareUnicodeCharacter{0168}{\~U}
+ % LATIN CAPITAL LETTER U WITH TILDE
+
+\DeclareUnicodeCharacter{0169}{\~u}
+ % LATIN SMALL LETTER U WITH TILDE
+
+\DeclareUnicodeCharacter{016A}{\@tabacckludge=U}
+ % LATIN CAPITAL LETTER U WITH MACRON
+
+\DeclareUnicodeCharacter{016B}{\@tabacckludge=u}
+ % LATIN SMALL LETTER U WITH MACRON
+
+\DeclareUnicodeCharacter{016C}{\u U}
+ % LATIN CAPITAL LETTER U WITH BREVE
+
+\DeclareUnicodeCharacter{016D}{\u u}
+ % LATIN SMALL LETTER U WITH BREVE
+
+\DeclareUnicodeCharacter{0172}{\k U}
+ % LATIN CAPITAL LETTER U WITH OGONEK
+
+\DeclareUnicodeCharacter{0173}{\k u}
+ % LATIN SMALL LETTER U WITH OGONEK
+
+\DeclareUnicodeCharacter{0174}{\^W}
+ % LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{0175}{\^w}
+ % LATIN SMALL LETTER W WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{0176}{\^Y}
+ % LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{0177}{\^y}
+ % LATIN SMALL LETTER Y WITH CIRCUMFLEX
+
+\DeclareUnicodeCharacter{1E02}{\.B}
+ % LATIN CAPITAL LETTER B WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E03}{\.b}
+ % LATIN SMALL LETTER B WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E0A}{\.D}
+ % LATIN CAPITAL LETTER D WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E0B}{\.d}
+ % LATIN SMALL LETTER D WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E1E}{\.F}
+ % LATIN CAPITAL LETTER F WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E1F}{\.f}
+ % LATIN SMALL LETTER F WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E40}{\.M}
+ % LATIN CAPITAL LETTER M WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E41}{\.m}
+ % LATIN SMALL LETTER M WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E56}{\.P}
+ % LATIN CAPITAL LETTER P WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E57}{\.p}
+ % LATIN SMALL LETTER P WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E60}{\.S}
+ % LATIN CAPITAL LETTER S WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E61}{\.s}
+ % LATIN SMALL LETTER S WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E6A}{\.T}
+ % LATIN CAPITAL LETTER T WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E6B}{\.t}
+ % LATIN SMALL LETTER T WITH DOT ABOVE
+
+\DeclareUnicodeCharacter{1E80}{\@tabacckludge`W}
+ % LATIN CAPITAL LETTER W WITH GRAVE
+
+\DeclareUnicodeCharacter{1E81}{\@tabacckludge`w}
+ % LATIN SMALL LETTER W WITH GRAVE
+
+\DeclareUnicodeCharacter{1E82}{\@tabacckludge'W}
+ % LATIN CAPITAL LETTER W WITH ACUTE
+
+\DeclareUnicodeCharacter{1E83}{\@tabacckludge'w}
+ % LATIN SMALL LETTER W WITH ACUTE
+
+\DeclareUnicodeCharacter{1E84}{\"W}
+ % LATIN CAPITAL LETTER W WITH DIAERESIS
+
+\DeclareUnicodeCharacter{1E85}{\"w}
+ % LATIN SMALL LETTER W WITH DIAERESIS
+
+\DeclareUnicodeCharacter{1EF2}{\@tabacckludge`Y}
+ % LATIN CAPITAL LETTER Y WITH GRAVE
+
+\DeclareUnicodeCharacter{1EF3}{\@tabacckludge`y}
+ % iso-8859-14[0xBC/188]
+
+\DeclareUnicodeCharacter{0218}{\textcommabelow S}
+ % LATIN CAPITAL LETTER S WITH COMMA BELOW
+ % latin10.def
+
+\DeclareUnicodeCharacter{0219}{\textcommabelow s}
+ % LATIN SMALL LETTER S WITH COMMA BELOW
+ % latin10.def
+
+\DeclareUnicodeCharacter{021A}{\textcommabelow T}
+ % LATIN CAPITAL LETTER T WITH COMMA BELOW
+ % latin10.def
+
+\DeclareUnicodeCharacter{021B}{\textcommabelow t}
+ % LATIN SMALL LETTER T WITH COMMA BELOW
+ % latin10.def
+
+\DeclareUnicodeCharacter{02CB}{\textasciigrave}
+ % MODIFIER LETTER GRAVE ACCENT
+ % ??? next.def: \@tabacckludge`{}
+
+\DeclareUnicodeCharacter{02D9}{\.{}}
+ % DOT ABOVE
+ % SPACING DOT ABOVE
+ % ??? \textasciidotabove with default "\.{}"
+
+\DeclareUnicodeCharacter{02DA}{\r{}}
+ % RING ABOVE
+ % SPACING RING ABOVE
+ % ??? \textasciiringabove with default "\r{}"
+
+\DeclareUnicodeCharacter{02DB}{\k{}}
+ % OGONEK
+ % SPACING OGONEK
+ % ??? \textasciiogonek with default "\k{}"
+
+\DeclareUnicodeCharacter{0393}{\textGamma}
+ % GREEK CAPITAL LETTER GAMMA
+ % ???
+
+\DeclareUnicodeCharacter{0398}{\textTheta}
+ % GREEK CAPITAL LETTER THETA
+ % ???
+
+\DeclareUnicodeCharacter{03A3}{\textSigma}
+ % GREEK CAPITAL LETTER SIGMA
+ % ???
+
+\DeclareUnicodeCharacter{03A6}{\textPhi}
+ % GREEK CAPITAL LETTER PHI
+ % ???
+
+\DeclareUnicodeCharacter{03A9}{\textOmega}
+ % GREEK CAPITAL LETTER OMEGA
+ % ???
+
+\DeclareUnicodeCharacter{03B1}{\textalpha}
+ % GREEK SMALL LETTER ALPHA
+ % ???
+
+\DeclareUnicodeCharacter{03B4}{\textdelta}
+ % GREEK SMALL LETTER DELTA
+ % ???
+
+\DeclareUnicodeCharacter{03B5}{\textepsilon}
+ % GREEK SMALL LETTER EPSILON
+ % ??? (\ensuremath{\varepsilon} as default)
+
+\DeclareUnicodeCharacter{03C0}{\textpi}
+ % GREEK SMALL LETTER PI
+ % ???
+
+\DeclareUnicodeCharacter{03C3}{\textsigma}
+ % GREEK SMALL LETTER SIGMA
+ % ???
+
+\DeclareUnicodeCharacter{03C4}{\texttau}
+ % GREEK SMALL LETTER TAU
+ % ???
+
+\DeclareUnicodeCharacter{03C6}{\textphi}
+ % GREEK SMALL LETTER PHI
+ % ???
+
+ % \DeclareUnicodeCharacter{2017}{}
+ % DOUBLE LOW LINE
+ % SPACING DOUBLE UNDERSCORE
+ % cp850[0xF2/242] cp858[0xF2/242]
+
+\DeclareUnicodeCharacter{207F}{\textnsuperior}
+ % SUPERSCRIPT LATIN SMALL LETTER N
+ % cp437[0xFC/252] cp865[0xFC/252]
+ % ???
+
+\DeclareUnicodeCharacter{20A7}{\textpeseta}
+ % PESETA SIGN
+
+\DeclareUnicodeCharacter{2202}{\textpartial}
+ % PARTIAL DIFFERENTIAL
+ % mac-roman[0xB6/182] mac-ce[0xB6/182]
+ % ??? (default: \ensuremath{\partial})
+
+\DeclareUnicodeCharacter{2206}{\textincrement}
+ % INCREMENT
+ % mac-roman[0xC6/198] mac-ce[0xC6/198]
+ % ??? (default: \ensuremath{\Delta})
+
+\DeclareUnicodeCharacter{220F}{\textproduct}
+ % N-ARY PRODUCT
+ % adobe glyph name: product
+ % applemac.def: \Pi
+ % ??? (default: \ensuremath{\Pi})
+ % ??? or \textprod because of \prod?
+
+\DeclareUnicodeCharacter{2211}{\textsummation}
+ % N-ARY SUMMATION
+ % adobe glyph name: summation
+ % applemac.def: \Sigma
+ % ??? (default: \ensuremath{\Sigma})
+ % ??? or \textsum because of \sum?
+
+\DeclareUnicodeCharacter{2219}{\textbullet}
+ % BULLET OPERATOR
+ % cp437[0xF9/249] cp865[0xF9/249]
+ % ???
+
+\DeclareUnicodeCharacter{221A}{\textsurd}
+ % SQUARE ROOT
+
+\DeclareUnicodeCharacter{221E}{\textinfinity}
+ % INFINITY
+ % adobe glyph name: infinity
+ % ??? or \textinfty or ...
+
+\DeclareUnicodeCharacter{2229}{\textintersection}
+ % INTERSECTION
+ % adobe glyph name: intersection
+ % ??? or \textcap or ...
+
+\DeclareUnicodeCharacter{222B}{\textintegral}
+ % INTEGRAL
+ % adobe glyph name: integral
+ % applemac.def: \int
+ % ??? or \textint or ...
+
+\DeclareUnicodeCharacter{2248}{\textapproxequal}
+ % ALMOST EQUAL TO
+ % adobe glyph name: approxequal
+ % ??? or \textapprox or ...
+
+\DeclareUnicodeCharacter{2260}{\textnotequal}
+ % NOT EQUAL TO
+ % adobe glyph name: notequal
+ % applemac.def: \neq
+ % ??? or \textne or \textneq or ...
+
+\DeclareUnicodeCharacter{2261}{\textequivalence}
+ % IDENTICAL TO
+ % adobe glyph name: equivalence
+ % cp437.def: \equiv
+ % ??? or \textequiv or ...
+
+\DeclareUnicodeCharacter{2264}{\textlessequal}
+ % LESS-THAN OR EQUAL TO
+ % adobe glyph name: lessequal
+ % cp437.def: \leq
+ % ??? or \textleq or \textle or \textlessorequal or ...
+
+\DeclareUnicodeCharacter{2265}{\textgreaterequal}
+ % GREATER-THAN OR EQUAL TO
+ % adobe glyph name: greaterequal
+ % cp437.def: \geq
+ % ??? or \textgeq or \textge or \textgreaterorequal
+
+ % \DeclareUnicodeCharacter{2310}{}
+ % REVERSED NOT SIGN
+ % adobe glyph name: revlogicalnot
+ % cp437[0xA9/169] cp865[0xA9/169]
+ % ???
+
+ % \DeclareUnicodeCharacter{2320}{}
+ % TOP HALF INTEGRAL
+ % adobe glyph name: integraltp
+ % cp437[0xF4/244] cp865[0xF4/244]
+ % ???
+
+ % \DeclareUnicodeCharacter{2321}{}
+ % BOTTOM HALF INTEGRAL
+ % adobe glyph name: integralbt
+ % cp437[0xF5/245] cp865[0xF5/245]
+ % ???
+
+ % \DeclareUnicodeCharacter{2500}{}
+ % BOX DRAWINGS LIGHT HORIZONTAL
+ % FORMS LIGHT HORIZONTAL
+ % cp437[0xC4/196] cp850[0xC4/196] cp852[0xC4/196] cp858[0xC4/196] cp865[0xC4/196]
+ % ???
+
+ % \DeclareUnicodeCharacter{2502}{}
+ % BOX DRAWINGS LIGHT VERTICAL
+ % FORMS LIGHT VERTICAL
+ % cp437[0xB3/179] cp850[0xB3/179] cp852[0xB3/179] cp858[0xB3/179] cp865[0xB3/179]
+ % ???
+
+ % \DeclareUnicodeCharacter{250C}{}
+ % BOX DRAWINGS LIGHT DOWN AND RIGHT
+ % FORMS LIGHT DOWN AND RIGHT
+ % cp437[0xDA/218] cp850[0xDA/218] cp852[0xDA/218] cp858[0xDA/218] cp865[0xDA/218]
+ % ???
+
+ % \DeclareUnicodeCharacter{2510}{}
+ % BOX DRAWINGS LIGHT DOWN AND LEFT
+ % FORMS LIGHT DOWN AND LEFT
+ % cp437[0xBF/191] cp850[0xBF/191] cp852[0xBF/191] cp858[0xBF/191] cp865[0xBF/191]
+ % ???
+
+ % \DeclareUnicodeCharacter{2514}{}
+ % BOX DRAWINGS LIGHT UP AND RIGHT
+ % FORMS LIGHT UP AND RIGHT
+ % cp437[0xC0/192] cp850[0xC0/192] cp852[0xC0/192] cp858[0xC0/192] cp865[0xC0/192]
+ % ???
+
+ % \DeclareUnicodeCharacter{2518}{}
+ % BOX DRAWINGS LIGHT UP AND LEFT
+ % FORMS LIGHT UP AND LEFT
+ % cp437[0xD9/217] cp850[0xD9/217] cp852[0xD9/217] cp858[0xD9/217] cp865[0xD9/217]
+ % ???
+
+ % \DeclareUnicodeCharacter{251C}{}
+ % BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+ % FORMS LIGHT VERTICAL AND RIGHT
+ % cp437[0xC3/195] cp850[0xC3/195] cp852[0xC3/195] cp858[0xC3/195] cp865[0xC3/195]
+ % ???
+
+ % \DeclareUnicodeCharacter{2524}{}
+ % BOX DRAWINGS LIGHT VERTICAL AND LEFT
+ % FORMS LIGHT VERTICAL AND LEFT
+ % cp437[0xB4/180] cp850[0xB4/180] cp852[0xB4/180] cp858[0xB4/180] cp865[0xB4/180]
+ % ???
+
+ % \DeclareUnicodeCharacter{252C}{}
+ % BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+ % FORMS LIGHT DOWN AND HORIZONTAL
+ % cp437[0xC2/194] cp850[0xC2/194] cp852[0xC2/194] cp858[0xC2/194] cp865[0xC2/194]
+ % ???
+
+ % \DeclareUnicodeCharacter{2534}{}
+ % BOX DRAWINGS LIGHT UP AND HORIZONTAL
+ % FORMS LIGHT UP AND HORIZONTAL
+ % cp437[0xC1/193] cp850[0xC1/193] cp852[0xC1/193] cp858[0xC1/193] cp865[0xC1/193]
+ % ???
+
+ % \DeclareUnicodeCharacter{253C}{}
+ % BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+ % FORMS LIGHT VERTICAL AND HORIZONTAL
+ % cp437[0xC5/197] cp850[0xC5/197] cp852[0xC5/197] cp858[0xC5/197] cp865[0xC5/197]
+ % ???
+
+ % \DeclareUnicodeCharacter{2550}{}
+ % BOX DRAWINGS DOUBLE HORIZONTAL
+ % FORMS DOUBLE HORIZONTAL
+ % cp437[0xCD/205] cp850[0xCD/205] cp852[0xCD/205] cp858[0xCD/205] cp865[0xCD/205]
+ % ???
+
+ % \DeclareUnicodeCharacter{2551}{}
+ % BOX DRAWINGS DOUBLE VERTICAL
+ % FORMS DOUBLE VERTICAL
+ % cp437[0xBA/186] cp850[0xBA/186] cp852[0xBA/186] cp858[0xBA/186] cp865[0xBA/186]
+ % ???
+
+ % \DeclareUnicodeCharacter{2552}{}
+ % BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+ % FORMS DOWN SINGLE AND RIGHT DOUBLE
+ % cp437[0xD5/213] cp865[0xD5/213]
+ % ???
+
+ % \DeclareUnicodeCharacter{2553}{}
+ % BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+ % FORMS DOWN DOUBLE AND RIGHT SINGLE
+ % cp437[0xD6/214] cp865[0xD6/214]
+ % ???
+
+ % \DeclareUnicodeCharacter{2554}{}
+ % BOX DRAWINGS DOUBLE DOWN AND RIGHT
+ % FORMS DOUBLE DOWN AND RIGHT
+ % cp437[0xC9/201] cp850[0xC9/201] cp852[0xC9/201] cp858[0xC9/201] cp865[0xC9/201]
+ % ???
+
+ % \DeclareUnicodeCharacter{2555}{}
+ % BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+ % FORMS DOWN SINGLE AND LEFT DOUBLE
+ % cp437[0xB8/184] cp865[0xB8/184]
+ % ???
+
+ % \DeclareUnicodeCharacter{2556}{}
+ % BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+ % FORMS DOWN DOUBLE AND LEFT SINGLE
+ % cp437[0xB7/183] cp865[0xB7/183]
+ % ???
+
+ % \DeclareUnicodeCharacter{2557}{}
+ % BOX DRAWINGS DOUBLE DOWN AND LEFT
+ % FORMS DOUBLE DOWN AND LEFT
+ % cp437[0xBB/187] cp850[0xBB/187] cp852[0xBB/187] cp858[0xBB/187] cp865[0xBB/187]
+ % ???
+
+ % \DeclareUnicodeCharacter{2558}{}
+ % BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+ % FORMS UP SINGLE AND RIGHT DOUBLE
+ % cp437[0xD4/212] cp865[0xD4/212]
+ % ???
+
+ % \DeclareUnicodeCharacter{2559}{}
+ % BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+ % FORMS UP DOUBLE AND RIGHT SINGLE
+ % cp437[0xD3/211] cp865[0xD3/211]
+ % ???
+
+ % \DeclareUnicodeCharacter{255A}{}
+ % BOX DRAWINGS DOUBLE UP AND RIGHT
+ % FORMS DOUBLE UP AND RIGHT
+ % cp437[0xC8/200] cp850[0xC8/200] cp852[0xC8/200] cp858[0xC8/200] cp865[0xC8/200]
+ % ???
+
+ % \DeclareUnicodeCharacter{255B}{}
+ % BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+ % FORMS UP SINGLE AND LEFT DOUBLE
+ % cp437[0xBE/190] cp865[0xBE/190]
+ % ???
+
+ % \DeclareUnicodeCharacter{255C}{}
+ % BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+ % FORMS UP DOUBLE AND LEFT SINGLE
+ % cp437[0xBD/189] cp865[0xBD/189]
+ % ???
+
+ % \DeclareUnicodeCharacter{255D}{}
+ % BOX DRAWINGS DOUBLE UP AND LEFT
+ % FORMS DOUBLE UP AND LEFT
+ % cp437[0xBC/188] cp850[0xBC/188] cp852[0xBC/188] cp858[0xBC/188] cp865[0xBC/188]
+ % ???
+
+ % \DeclareUnicodeCharacter{255E}{}
+ % BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+ % FORMS VERTICAL SINGLE AND RIGHT DOUBLE
+ % cp437[0xC6/198] cp865[0xC6/198]
+ % ???
+
+ % \DeclareUnicodeCharacter{255F}{}
+ % BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+ % FORMS VERTICAL DOUBLE AND RIGHT SINGLE
+ % cp437[0xC7/199] cp865[0xC7/199]
+ % ???
+
+ % \DeclareUnicodeCharacter{2560}{}
+ % BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+ % FORMS DOUBLE VERTICAL AND RIGHT
+ % cp437[0xCC/204] cp850[0xCC/204] cp852[0xCC/204] cp858[0xCC/204] cp865[0xCC/204]
+ % ???
+
+ % \DeclareUnicodeCharacter{2561}{}
+ % BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+ % FORMS VERTICAL SINGLE AND LEFT DOUBLE
+ % cp437[0xB5/181] cp865[0xB5/181]
+ % ???
+
+ % \DeclareUnicodeCharacter{2562}{}
+ % BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+ % FORMS VERTICAL DOUBLE AND LEFT SINGLE
+ % cp437[0xB6/182] cp865[0xB6/182]
+ % ???
+
+ % \DeclareUnicodeCharacter{2563}{}
+ % BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+ % FORMS DOUBLE VERTICAL AND LEFT
+ % cp437[0xB9/185] cp850[0xB9/185] cp852[0xB9/185] cp858[0xB9/185] cp865[0xB9/185]
+ % ???
+
+ % \DeclareUnicodeCharacter{2564}{}
+ % BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+ % FORMS DOWN SINGLE AND HORIZONTAL DOUBLE
+ % cp437[0xD1/209] cp865[0xD1/209]
+ % ???
+
+ % \DeclareUnicodeCharacter{2565}{}
+ % BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+ % FORMS DOWN DOUBLE AND HORIZONTAL SINGLE
+ % cp437[0xD2/210] cp865[0xD2/210]
+ % ???
+
+ % \DeclareUnicodeCharacter{2566}{}
+ % BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+ % FORMS DOUBLE DOWN AND HORIZONTAL
+ % cp437[0xCB/203] cp850[0xCB/203] cp852[0xCB/203] cp858[0xCB/203] cp865[0xCB/203]
+ % ???
+
+ % \DeclareUnicodeCharacter{2567}{}
+ % BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+ % FORMS UP SINGLE AND HORIZONTAL DOUBLE
+ % cp437[0xCF/207] cp865[0xCF/207]
+ % ???
+
+ % \DeclareUnicodeCharacter{2568}{}
+ % BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+ % FORMS UP DOUBLE AND HORIZONTAL SINGLE
+ % cp437[0xD0/208] cp865[0xD0/208]
+ % ???
+
+ % \DeclareUnicodeCharacter{2569}{}
+ % BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+ % FORMS DOUBLE UP AND HORIZONTAL
+ % cp437[0xCA/202] cp850[0xCA/202] cp852[0xCA/202] cp858[0xCA/202] cp865[0xCA/202]
+ % ???
+
+ % \DeclareUnicodeCharacter{256A}{}
+ % BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ % FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+ % cp437[0xD8/216] cp865[0xD8/216]
+ % ???
+
+ % \DeclareUnicodeCharacter{256B}{}
+ % BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ % FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+ % cp437[0xD7/215] cp865[0xD7/215]
+ % ???
+
+ % \DeclareUnicodeCharacter{256C}{}
+ % BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+ % FORMS DOUBLE VERTICAL AND HORIZONTAL
+ % cp437[0xCE/206] cp850[0xCE/206] cp852[0xCE/206] cp858[0xCE/206] cp865[0xCE/206]
+ % ???
+
+ % \DeclareUnicodeCharacter{2580}{}
+ % UPPER HALF BLOCK
+ % cp437[0xDF/223] cp850[0xDF/223] cp852[0xDF/223] cp858[0xDF/223] cp865[0xDF/223]
+ % ???
+
+ % \DeclareUnicodeCharacter{2584}{}
+ % LOWER HALF BLOCK
+ % cp437[0xDC/220] cp850[0xDC/220] cp852[0xDC/220] cp858[0xDC/220] cp865[0xDC/220]
+ % ???
+
+ %\DeclareUnicodeCharacter{2588}{}
+ % FULL BLOCK
+ % cp437[0xDB/219] cp850[0xDB/219] cp852[0xDB/219] cp858[0xDB/219] cp865[0xDB/219]
+ % ???
+
+ % \DeclareUnicodeCharacter{258C}{}
+ % LEFT HALF BLOCK
+ % cp437[0xDD/221] cp865[0xDD/221]
+ % ???
+
+ % \DeclareUnicodeCharacter{2590}{}
+ % RIGHT HALF BLOCK
+ % cp437[0xDE/222] cp865[0xDE/222]
+ % ???
+
+ % \DeclareUnicodeCharacter{2591}{}
+ % LIGHT SHADE
+ % cp437[0xB0/176] cp850[0xB0/176] cp852[0xB0/176] cp858[0xB0/176] cp865[0xB0/176]
+ % ???
+
+ % \DeclareUnicodeCharacter{2592}{}
+ % MEDIUM SHADE
+ % cp437[0xB1/177] cp850[0xB1/177] cp852[0xB1/177] cp858[0xB1/177] cp865[0xB1/177]
+ % ???
+
+ % \DeclareUnicodeCharacter{2593}{}
+ % DARK SHADE
+ % cp437[0xB2/178] cp850[0xB2/178] cp852[0xB2/178] cp858[0xB2/178] cp865[0xB2/178]
+ % ???
+
+\DeclareUnicodeCharacter{25A0}{\textblacksquare}
+ % BLACK SQUARE
+ % cp437.def: \textblacksquare
+
+\DeclareUnicodeCharacter{25CA}{\textlozenge}
+ % LOZENGE
+ % adobe glyph name: lozenge
+ % applemac.def: \diamond
+ % ???
+
+ % \DeclareUnicodeCharacter{F8FF}{}
+ % <Private Use, Last>
+ % applemac.def: \textapplelogo
+ % ???
+
+\DeclareUnicodeCharacter{FB01}{fi}
+ % LATIN SMALL LIGATURE FI
+ % applemac.def: fi
+ % ??? \textfi
+
+\DeclareUnicodeCharacter{FB02}{fl}
+ % LATIN SMALL LIGATURE FL
+ % applemac.def: fl
+ % ??? \textfl
+
+ % pmboxdraw:
+
+\DeclareUnicodeCharacter{2500}{\textSFx}
+\DeclareUnicodeCharacter{2502}{\textSFxi}
+\DeclareUnicodeCharacter{250C}{\textSFi}
+\DeclareUnicodeCharacter{2510}{\textSFiii}
+\DeclareUnicodeCharacter{2514}{\textSFii}
+\DeclareUnicodeCharacter{2518}{\textSFiv}
+\DeclareUnicodeCharacter{251C}{\textSFviii}
+\DeclareUnicodeCharacter{2524}{\textSFix}
+\DeclareUnicodeCharacter{252C}{\textSFvi}
+\DeclareUnicodeCharacter{2534}{\textSFvii}
+\DeclareUnicodeCharacter{253C}{\textSFv}
+\DeclareUnicodeCharacter{2550}{\textSFxliii}
+\DeclareUnicodeCharacter{2551}{\textSFxxiv}
+\DeclareUnicodeCharacter{2552}{\textSFli}
+\DeclareUnicodeCharacter{2553}{\textSFlii}
+\DeclareUnicodeCharacter{2554}{\textSFxxxix}
+\DeclareUnicodeCharacter{2555}{\textSFxxii}
+\DeclareUnicodeCharacter{2556}{\textSFxxi}
+\DeclareUnicodeCharacter{2557}{\textSFxxv}
+\DeclareUnicodeCharacter{2558}{\textSFl}
+\DeclareUnicodeCharacter{2559}{\textSFxlix}
+\DeclareUnicodeCharacter{255A}{\textSFxxxviii}
+\DeclareUnicodeCharacter{255B}{\textSFxxviii}
+\DeclareUnicodeCharacter{255C}{\textSFxxvii}
+\DeclareUnicodeCharacter{255D}{\textSFxxvi}
+\DeclareUnicodeCharacter{255E}{\textSFxxxvi}
+\DeclareUnicodeCharacter{255F}{\textSFxxxvii}
+\DeclareUnicodeCharacter{2560}{\textSFxlii}
+\DeclareUnicodeCharacter{2561}{\textSFxix}
+\DeclareUnicodeCharacter{2562}{\textSFxx}
+\DeclareUnicodeCharacter{2563}{\textSFxxiii}
+\DeclareUnicodeCharacter{2564}{\textSFxlvii}
+\DeclareUnicodeCharacter{2565}{\textSFxlviii}
+\DeclareUnicodeCharacter{2566}{\textSFxli}
+\DeclareUnicodeCharacter{2567}{\textSFxlv}
+\DeclareUnicodeCharacter{2568}{\textSFxlvi}
+\DeclareUnicodeCharacter{2569}{\textSFxl}
+\DeclareUnicodeCharacter{256A}{\textSFliv}
+\DeclareUnicodeCharacter{256B}{\textSFliii}
+\DeclareUnicodeCharacter{256C}{\textSFxliv}
+\DeclareUnicodeCharacter{2580}{\textupblock}
+\DeclareUnicodeCharacter{2584}{\textdnblock}
+\DeclareUnicodeCharacter{2588}{\textblock}
+\DeclareUnicodeCharacter{258C}{\textlfblock}
+\DeclareUnicodeCharacter{2590}{\textrtblock}
+\DeclareUnicodeCharacter{2591}{\textltshade}
+\DeclareUnicodeCharacter{2592}{\textshade}
+\DeclareUnicodeCharacter{2593}{\textdkshade}
+
+% \end{macrocode}
+% \fi
+%
+% \begin{macrocode}
+%</dfudoc>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/inputenx.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/inputenx.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex inputenx.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% inputenx.sty & tex/latex/oberdiek/inputenx.sty\\
+% ix-alias.def & tex/latex/oberdiek/ix-alias.def\\
+% ix-math.def & tex/latex/oberdiek/ix-math.def\\
+% ix-name.def & tex/latex/oberdiek/ix-name.def\\
+% ix-slot.def & tex/latex/oberdiek/ix-slot.def\\
+% ix-uc.def & tex/latex/oberdiek/ix-uc.def\\
+% ix-utf8enc.dfu & tex/latex/oberdiek/ix-utf8enc.dfu\\
+% x-ascii.def & tex/latex/oberdiek/x-ascii.def\\
+% x-iso-8859-1.def & tex/latex/oberdiek/x-iso-8859-1.def\\
+% x-iso-8859-2.def & tex/latex/oberdiek/x-iso-8859-2.def\\
+% x-iso-8859-3.def & tex/latex/oberdiek/x-iso-8859-3.def\\
+% x-iso-8859-4.def & tex/latex/oberdiek/x-iso-8859-4.def\\
+% x-iso-8859-9.def & tex/latex/oberdiek/x-iso-8859-9.def\\
+% x-iso-8859-10.def & tex/latex/oberdiek/x-iso-8859-10.def\\
+% x-iso-8859-13.def & tex/latex/oberdiek/x-iso-8859-13.def\\
+% x-iso-8859-14.def & tex/latex/oberdiek/x-iso-8859-14.def\\
+% x-iso-8859-15.def & tex/latex/oberdiek/x-iso-8859-15.def\\
+% x-iso-8859-16.def & tex/latex/oberdiek/x-iso-8859-16.def\\
+% x-cp437.def & tex/latex/oberdiek/x-cp437.def\\
+% x-cp850.def & tex/latex/oberdiek/x-cp850.def\\
+% x-cp852.def & tex/latex/oberdiek/x-cp852.def\\
+% x-cp858.def & tex/latex/oberdiek/x-cp858.def\\
+% x-cp865.def & tex/latex/oberdiek/x-cp865.def\\
+% x-cp1250.def & tex/latex/oberdiek/x-cp1250.def\\
+% x-cp1252.def & tex/latex/oberdiek/x-cp1252.def\\
+% x-cp1257.def & tex/latex/oberdiek/x-cp1257.def\\
+% x-mac-roman.def & tex/latex/oberdiek/x-mac-roman.def\\
+% x-mac-ce.def & tex/latex/oberdiek/x-mac-ce.def\\
+% x-nextstep.def & tex/latex/oberdiek/x-nextstep.def\\
+% x-dec-mcs.def & tex/latex/oberdiek/x-dec-mcs.def\\
+% inputenx.pdf & doc/latex/oberdiek/inputenx.pdf\\
+% inputenx-licrcmds.txt & doc/latex/oberdiek/inputenx-licrcmds.txt\\
+% inputenx-utf8enc.txt & doc/latex/oberdiek/inputenx-utf8enc.txt\\
+% inputenx.dtx & source/latex/oberdiek/inputenx.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk inputenx.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{inputenx.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex inputenx.dtx
+%makeindex -s gind.ist inputenx.idx
+%pdflatex inputenx.dtx
+%makeindex -s gind.ist inputenx.idx
+%pdflatex inputenx.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{inputenc}
+% Alan Jeffrey, Frank Mittelbach,
+% \textit{inputenc.sty}, 2006/05/05 v1.1b.
+% \CTAN{macros/latex/base/inputenc.dtx}
+%
+% \bibitem{ltc}
+% Frank Mittelbach, Michel Goossens,
+% \textit{The \LaTeX\ Companion}, second edition, April 2004.
+%
+% \bibitem{pmboxdraw}
+% Heiko Oberdiek
+% \textit{The pmboxdraw package}, 2006/05/03 v1.0.
+% \CTAN{macros/latex/contrib/oberdiek/pmboxdraw.pdf}
+%
+% \subsection{Mappings to Unicode}
+%
+% \bibitem{iso8859-1}
+% Ken Whistler,
+% \textit{ISO/IEC 8859-1:1998 to Unicode}, 27th July 1999.
+% \url{ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT}
+%
+% \bibitem{iso8859-2}
+% Ken Whistler,
+% \textit{ISO/IEC 8859-2:1999 to Unicode}, 27th July 1999.
+% \url{ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-2.TXT}
+%
+% \bibitem{iso8859-3}
+% Ken Whistler,
+% \textit{ISO/IEC 8859-3:1999 to Unicode}, 27th July 1999.
+% \url{ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-3.TXT}
+%
+% \bibitem{iso8859-4}
+% Ken Whistler,
+% \textit{ISO/IEC 8859-4:1998 to Unicode}, 27th July 1999.
+% \url{ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-4.TXT}
+%
+% \bibitem{iso8859-9}
+% Ken Whistler,
+% \textit{ISO/IEC 8859-9:1999 to Unicode}, 27th July 1999.
+% \url{ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-9.TXT}
+%
+% \bibitem{iso8859-15}
+% Ken Whistler,
+% \textit{ISO/IEC 8859-15:1999 to Unicode}, 27th July 1999.
+% \url{ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-15.TXT}
+%
+% \bibitem{iso8859-16}
+% Ken Whistler,
+% \textit{ISO/IEC 8859-16:2001 to Unicode}, 26th July 2001.
+% \url{ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-16.TXT}
+%
+% \bibitem{mac-ce}
+% Apple Computer,
+% \textit{Map (external version) from MAC OS Central European character
+% set to Unicode 2.1 and later}, 4th April 2005.
+% \url{ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CENTEURO.TXT}
+%
+% \bibitem{mac-roman}
+% Apple Computer,
+% \textit{Map (external version) from MAC OS Roman character
+% set to Unicode 2.1 and later}, 5th April 2005.
+% \url{ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMAN.TXT}
+%
+% \bibitem{nextstep}
+% Rick McGowan,
+% \textit{NextStep Encoding to Unicode}, 23rd September 1999.
+% \url{ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/NEXT/NEXTSTEP.TXT}
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2006/03/05 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/kvoptions.dtx b/Master/texmf-dist/source/latex/oberdiek/kvoptions.dtx
index 66bfb7f615c..fa95c2254a7 100644
--- a/Master/texmf-dist/source/latex/oberdiek/kvoptions.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/kvoptions.dtx
@@ -8,7 +8,7 @@
% 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.
+% LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
@@ -29,7 +29,7 @@
% (b) Without kvoptions.ins:
% tex kvoptions.dtx
% (c) If you insist on using LaTeX
-% latex \install=y\input{kvoptions.dtx}
+% latex \let\install=y\input{kvoptions.dtx}
% (quote the arguments according to the demands of your shell)
%
% Documentation:
@@ -68,7 +68,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: kvoptions 2006/06/01 v2.2 Connects package keyval with LaTeX options (HO)}
+\Msg{* Package: kvoptions 2006/08/22 v2.4 Connects package keyval with LaTeX options (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -86,7 +86,7 @@ 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.
+LaTeX version 2005/12/01 or later.
This work has the LPPL maintenance status "maintained".
@@ -131,7 +131,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{kvoptions.drv}%
- [2006/06/01 v2.2 Connects package keyval with LaTeX options (HO)]
+ [2006/08/22 v2.4 Connects package keyval with LaTeX options (HO)]
\documentclass{ltxdoc}
\usepackage{holtxdoc}
\begin{document}
@@ -140,7 +140,7 @@ and the derived files
%</driver>
% \fi
%
-% \CheckSum{1488}
+% \CheckSum{1519}
%
% \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
@@ -161,7 +161,7 @@ and the derived files
% \GetFileInfo{kvoptions.drv}
%
% \title{The \xpackage{kvoptions} package}
-% \date{2006/06/01 v2.2}
+% \date{2006/08/22 v2.4}
% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
%
% \maketitle
@@ -222,7 +222,7 @@ and the derived files
% \begin{tabular}[t]{@{}l@{}}
% \cs{DeclareVoidOption}\\
% \cs{DeclareStringOption}\\
-% \cs{DeclareBooleanOption}\\
+% \cs{DeclareBoolOption}\\
% \cs{DeclareComplementaryOption}\\
% \cs{DisableKeyvalOption}
% \end{tabular}
@@ -301,12 +301,12 @@ and the derived files
% \rule{0pt}{1.2\ht\csname @arstrutbox\endcsname}^^A
% |family| & \meta{\cs{\@currname}} & (|foobar|)
% & \cs{ProcessKeyvalOptions*} \\
-% &&& \cs{DeclareBooleanOption} \\
+% &&& \cs{DeclareBoolOption} \\
% &&& \cs{DeclareStringOption} \\
% \hline
% \rule{0pt}{1.2\ht\csname @arstrutbox\endcsname}^^A
% |prefix| & \meta{\cs{\@currname}}|@| & (|foobar@|)
-% & \cs{DeclareBooleanOption} \\
+% & \cs{DeclareBoolOption} \\
% &&& \cs{DeclareStringOption} \\
% &&& \cs{DeclareVoidOption}
% \end{tabular}
@@ -360,20 +360,20 @@ and the derived files
% |}|
% \end{quote}
%
-% \subsubsection{\cs{DeclareBooleanOption}}
+% \subsubsection{\cs{DeclareBoolOption}}
%
-% \begin{declcs}{DeclareBooleanOption}\,\O{init}\,\M{key}
+% \begin{declcs}{DeclareBoolOption}\,\O{init}\,\M{key}
% \end{declcs}
% A boolean switch is generated, initialized by value \meta{init}
% and the corresponding key \meta{key} is defined. If the
% initialization value is not given, |false| is used as default.
%
-% The internal actions of \cs{DeclareBooleanOption} are shown below.
+% The internal actions of \cs{DeclareBoolOption} are shown below.
% The example is given for a package author who has the following
% two lines in his package/class:
% \begin{quote}
% |\ProvidesPackage{foobar}|\\
-% |\DeclareBooleanOption{verbose}|
+% |\DeclareBoolOption{verbose}|
% \end{quote}
% First a new switch is created:
% \begin{quote}
@@ -419,7 +419,7 @@ and the derived files
% The option \meta{key} shares the switch of option \meta{parent}.
% Example:
% \begin{quote}
-% |\DeclareBooleanOption{draft}|\\
+% |\DeclareBoolOption{draft}|\\
% |\DeclareComplementaryOption{final}{draft}|
% \end{quote}
% Then |final| sets the switch of \xoption{draft} to |false|, and
@@ -548,7 +548,7 @@ and the derived files
% \begin{quote}
%\begin{verbatim}
%\ProvidesPackage{foobar}
-%\DeclareBooleanOption{color}
+%\DeclareBoolOption{color}
%\DeclareStringOption[red]{emphcolor}
%\ProcessKeyvalOptions*
%
@@ -595,7 +595,7 @@ and the derived files
% \cs{DeclareStringOption}
% & \prefix & holds the string\\
% \Hline
-% \cs{DeclareBooleanOption}
+% \cs{DeclareBoolOption}
% & \cs{if}\meta{prefix}\meta{key}& boolean switch\\
% &\prefix false& disable switch\\
% &\prefix true& enable switch\\
@@ -624,7 +624,7 @@ and the derived files
% Package identification
% -----------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{example-mycolorsetup}[2006/06/01 Managing my colors]
+\ProvidesPackage{example-mycolorsetup}[2006/08/22 Managing my colors]
\RequirePackage{ifpdf}
\RequirePackage{kvoptions}
@@ -639,9 +639,9 @@ and the derived files
% Use a shorter family name and prefix
% Option print
-\DeclareBooleanOption{print}
+\DeclareBoolOption{print}
% is the same as
- % \DeclareBooleanOption[false]{print}
+ % \DeclareBoolOption[false]{print}
% Option driver
\ifpdf
@@ -815,7 +815,7 @@ and the derived files
% The name of this option follows the convention of packages
% \xpackage{multicol}, \xpackage{tabularx}, and \xpackage{tracefnt}.
% Currently it prints the setting of boolean options, declared
-% by \cs{DeclareBooleanOption} in the \xfile{.log} file, if that
+% by \cs{DeclareBoolOption} in the \xfile{.log} file, if that
% boolean option is used.
% You can activate the option by
% \begin{itemize}
@@ -926,7 +926,7 @@ and the derived files
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{kvoptions}
- [2006/06/01 v2.2 Connects package keyval with LaTeX options (HO)]
+ [2006/08/22 v2.4 Connects package keyval with LaTeX options (HO)]
% \end{macrocode}
%
% \paragraph{External resources.}
@@ -997,7 +997,7 @@ and the derived files
% \end{macro}
%
% \begin{macro}{\KVO@prefix}
-% The value settings of options, declared by \cs{DeclareBooleanOption}
+% The value settings of options, declared by \cs{DeclareBoolOption}
% and \cs{DeclareStringOption} need to be saved in macros.
% in the first case this is a switch \cs{if}\meta{prefix}\meta{key},
% in the latter case a macro \cs{}\meta{prefix}\meta{key}.
@@ -1027,9 +1027,9 @@ and the derived files
% \end{macrocode}
% \end{macro}
%
-% \subsubsection{\cs{DeclareBooleanOption}}
+% \subsubsection{\cs{DeclareBoolOption}}
%
-% \begin{macro}{\DeclareBooleanOption}
+% \begin{macro}{\DeclareBoolOption}
% Usually options of boolean type can be given by the
% user without value and this means a setting to \emph{true}.
% We follow this convention here. Also it simplifies the
@@ -1044,7 +1044,7 @@ and the derived files
% the user from accidently redefining of \TeX's primitives
% and other macros.
% \begin{macrocode}
-\newcommand*{\DeclareBooleanOption}[2][false]{%
+\newcommand*{\DeclareBoolOption}[2][false]{%
\KVO@ifdefinable{if\KVO@prefix#2}{%
\KVO@ifdefinable{\KVO@prefix#2true}{%
\KVO@ifdefinable{\KVO@prefix#2false}{%
@@ -1108,7 +1108,7 @@ and the derived files
\expandafter\let\csname\KVO@prefix#1true\expandafter\endcsname
\csname\KVO@prefix#2false\endcsname
% \end{macrocode}
-% The same code part as in \cs{DeclareBooleanOption} can
+% The same code part as in \cs{DeclareBoolOption} can
% now be used.
% \begin{macrocode}
\begingroup
@@ -1335,7 +1335,7 @@ and the derived files
family=KVOdyn,%
prefix=KVOdyn@%
}
-\DeclareBooleanOption[true]{global}
+\DeclareBoolOption[true]{global}
\DeclareComplementaryOption{local}{global}
\DeclareStringOption[undef]{action}
\let\KVOdyn@name\relax
@@ -1849,6 +1849,24 @@ and the derived files
}
% \end{macrocode}
%
+% Variant of \cs{ExecuteOptions} that better protects \cs{CurrentOption}.
+% \begin{macrocode}
+\def\CurrentOption@SaveLevel{0}
+\def\ExecuteOptions{%
+ \expandafter\KVO@ExecuteOptions
+ \csname CurrentOption@\CurrentOption@SaveLevel\endcsname
+}
+\def\KVO@ExecuteOptions#1#2{%
+ \let#1\CurrentOption
+ \edef\CurrentOption@SaveLevel{\the\numexpr\CurrentOption@SaveLevel+1}%
+ \@for\CurrentOption:=#2\do{%
+ \csname ds@\CurrentOption\endcsname
+ }%
+ \edef\CurrentOption@SaveLevel{\the\numexpr\CurrentOption@SaveLevel-1}%
+ \let\CurrentOption#1%
+}
+% \end{macrocode}
+%
% \begin{macrocode}
\def\KVO@fileswith@pti@ns#1[#2]#3[#4]{%
\ifx#1\@clsextension
@@ -2162,8 +2180,6 @@ and the derived files
% these. For example, \teTeX\ users run \verb|texhash| or
% \verb|mktexlsr|.
%
-% Now the installation is complete.
-%
% \subsection{Some details for the interested}
%
% \paragraph{Attached source.}
@@ -2285,6 +2301,16 @@ and the derived files
% \item
% Fixes for option \xoption{patch}.
% \end{Version}
+% \begin{Version}{2006/08/17 v2.3}
+% \item
+% \cs{DeclareBooleanOption} renamed to \cs{DeclareBoolOption}
+% to avoid a name clash with package \cs{ifoption}.
+% \end{Version}
+% \begin{Version}{2006/08/22 v2.4}
+% \item
+% Option \xoption{patch}: \cs{ExecuteOptions} does not
+% change meaning of \cs{CurrentOption} at all.
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx b/Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx
new file mode 100644
index 00000000000..e3827ac5674
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/kvsetkeys.dtx
@@ -0,0 +1,838 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file kvsetkeys.dtx
+% and the derived files
+% kvsetkeys.sty, kvsetkeys.pdf, kvsetkeys.ins, kvsetkeys.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/kvsetkeys.dtx
+% CTAN:macros/latex/contrib/oberdiek/kvsetkeys.pdf
+%
+% Unpacking:
+% (a) If kvsetkeys.ins is present:
+% tex kvsetkeys.ins
+% (b) Without kvsetkeys.ins:
+% tex kvsetkeys.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{kvsetkeys.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If kvsetkeys.drv is present:
+% latex kvsetkeys.drv
+% (b) Without kvsetkeys.drv:
+% latex kvsetkeys.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex kvsetkeys.dtx
+% makeindex -s gind.ist kvsetkeys.idx
+% pdflatex kvsetkeys.dtx
+% makeindex -s gind.ist kvsetkeys.idx
+% pdflatex kvsetkeys.dtx
+%
+% Installation:
+% TDS:tex/generic/oberdiek/kvsetkeys.sty
+% TDS:doc/latex/oberdiek/kvsetkeys.pdf
+% TDS:source/latex/oberdiek/kvsetkeys.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: kvsetkeys 2006/03/06 v1.0 Key value parser with default handler support (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file kvsetkeys.dtx
+and the derived files
+ kvsetkeys.sty, kvsetkeys.pdf, kvsetkeys.ins, kvsetkeys.drv.
+
+\endpreamble
+
+\generate{%
+ \file{kvsetkeys.ins}{\from{kvsetkeys.dtx}{install}}%
+ \file{kvsetkeys.drv}{\from{kvsetkeys.dtx}{driver}}%
+ \usedir{tex/generic/oberdiek}%
+ \file{kvsetkeys.sty}{\from{kvsetkeys.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* kvsetkeys.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `kvsetkeys.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{kvsetkeys.drv}%
+ [2006/03/06 v1.0 Key value parser with default handler support (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{kvsetkeys.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{580}
+%
+% \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 \~}
+%
+% \GetFileInfo{kvsetkeys.drv}
+%
+% \title{The \xpackage{kvsetkeys} package}
+% \date{2006/03/06 v1.0}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{kvsetkeys} provides \cs{kvsetkeys}, a variant
+% of package \xpackage{keyval}'s \cs{setkeys}. It allows to specify
+% a handler that deals with unknown options. Active commas and equal
+% signs may be used (e.g. see \xpackage{babel}'s shorthands) and
+% only one level of curly braces are removed from the values.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \def\M#1{\texttt{\{}\meta{#1}\texttt{\}}}
+%
+% \section{Documentation}
+%
+% \cs{kvsetkeys} can be used as replacement for \xpackage{keyval}'s
+% \cs{setkeys}. Also it uses the same syntax. Before I describe
+% \cs{kvsetkeys} in more detail, first I want to explain, how
+% this package deals with key value lists. For the package also
+% provides low level interfaces that can be used by package authors.
+%
+% \subsection{Normalizing key value lists}
+%
+% \begin{declcs}{kv@normalize}\,\M{key value list}
+% \end{declcs}
+% Specifying key value lists, the user usually wants to have
+% nice formatted souce code, e.g.:
+% \begin{quote}
+%\begin{verbatim}
+%\hypersetup{
+% pdftitle = {...},
+% pdfsubject = {...},
+% pdfauthor = {...},
+% pdfkeywords = {...},
+% ...
+%}
+%\end{verbatim}
+% \end{quote}
+% Thus there can be spaces around keys, around |=| or around the value.
+% Also empty entries are possible by too many commas. Therefore these
+% spaces and empty entries are silently removed by package \xpackage{keyval}
+% and this package. Whereas the contents of the value can be protected
+% by curly braces, especially if spaces or commas are used inside,
+% a key name must not use spaces or other syntax characters.
+%
+% \cs{kv@normalize} takes a key value list and performs the cleanup:
+% \begin{itemize}
+% \item Spaces are removed.
+% \item Syntax characters (comma and equal sign) that are active
+% are replaces by the same characters with standard catcode.
+% (Example: \xpackage{babel}'s language option \xoption{turkish}
+% uses the equal sign as active shorthand character.)
+% \end{itemize}
+% The result is stored in \cs{kv@list}, e.g.:
+% \begin{quote}
+% |\kv@list| $\rightarrow$ |,pdftitle={},pdfsubject={},...,|
+% \end{quote}
+% Empty entries are removed later. In fact it adds a comma at the begin
+% and end to protect the last value and an easier implementation.
+%
+% \subsection{Parsing key value lists}
+%
+% \begin{declcs}{kv@parse}\,\M{key value list}\,\M{processor}
+% \end{declcs}
+% It is easier to parse a normalized list, thus \cs{kv@parse}
+% normalizes the list and calls \cs{kv@parse@normalized}.
+%
+% \begin{declcs}{kv@parse@normalized}\,\M{key value list}%
+% \,\M{processor}
+% \end{declcs}
+% Now the key value list is split into single key value pairs.
+% For further processing the key and value are given as arguments
+% for the \meta{processor}:
+% \begin{quote}
+% \meta{processor}\,\M{key}\,\M{value}
+% \end{quote}
+% Also key and value are stored in macro names:
+% \begin{itemize}
+% \item \cs{kv@key} stores the key.
+% \item \cs{kv@value} stores the value or if the value was not
+% specified it has the meaning \cs{relax}.
+% \end{itemize}
+% The behaviour in pseudo code:
+% \begin{quote}
+% foreach (\meta{key}, \meta{value}) in (\meta{key value list})\\
+% \hspace*{1.5em}\cs{kv@key} := \meta{key}\\
+% \hspace*{1.5em}\cs{kv@value} := \meta{value}\\
+% \hspace*{1.5em}\meta{processor}\,\M{key}\,\M{value}
+% \end{quote}
+%
+% \subsection{Processing key value pairs}
+%
+% \begin{declcs}{kv@processor@default}\,\M{family}\,\M{key}\,\M{value}
+% \end{declcs}
+% There are many possiblities to process key value pairs.
+% \cs{kv@processor@default} is the processor used in \cs{kvsetkeys}.
+% It reimplements and extends the behaviour of
+% \xpackage{keyval}'s \cs{setkeys}.
+% In case of unknown keys \cs{setkeys} raise an error.
+% This processer, however, calls a handler instead, if it
+% is provided by the family.
+%
+% The behaviour in pseudo code:
+% \begin{quote}
+% if \meta{key} exists\\
+% \hspace*{1.5em}call the keyval code of \meta{key}\\
+% else\\
+% \hspace*{1.5em}if \meta{handler} for \meta{family} exists\\
+% \hspace*{3em}\meta{handler}\,\M{key}\,\M{value}\\
+% \hspace*{1.5em}else\\
+% \hspace*{3em}raise unknown key error\\
+% \hspace*{1.5em}fi\\
+% fi
+% \end{quote}
+%
+% \begin{declcs}{kv@set@family@handler}\,\M{family}\,\M{handler}
+% \end{declcs}
+% This sets the handler \meta{handler} for the keyval family
+% \meta{family}.
+%
+% \subsection{Do it all}
+%
+% \begin{declcs}{kvsetkeys}\,\M{family}\,\M{key value list}
+% \end{declcs}
+% The work is done by the previous commands. \cs{kvsetkeys}
+% just calls them:
+% \begin{quote}
+% \cs{kv@parse}\,\M{key value list}^^A
+% \texttt{\{}\cs{kv@processor@default}\,\M{family}\texttt{\}}
+% \end{quote}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Identification}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Reload check, especially if the package is not used with \LaTeX.
+% \begin{macrocode}
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@kvsetkeys.sty\endcsname
+ \ifcase 0%
+ \ifx\x\relax % plain
+ \else
+ \ifx\x\empty % LaTeX
+ \else
+ 1%
+ \fi
+ \fi
+ \else
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
+ \fi
+ \x{kvsetkeys}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+% \end{macrocode}
+% Package identification:
+% \begin{macrocode}
+\begingroup
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@kvsetkeys.sty\endcsname
+\ProvidesPackage{kvsetkeys}%
+ [2006/03/06 v1.0 Key value parser with default handler support (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\expandafter\edef\csname KVS@endinput\endcsname{%
+ \catcode39 \the\catcode39 % '
+ \catcode44 \the\catcode44 % ,
+ \catcode61 \the\catcode61 % =
+ \catcode64 \the\catcode64 % @
+ \catcode94 \the\catcode94 % ^
+ \catcode96 \the\catcode96 % `
+ \catcode126 \the\catcode126 % ~
+ \relax
+ \noexpand\endinput
+}
+\catcode39 12 % '
+\catcode44 12 % ,
+\catcode61 12 % =
+\catcode64 11 % @
+\catcode94 7 % ^
+\catcode96 12 % `
+\catcode126 13 % ~
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\KVS@empty{}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+% \end{macrocode}
+%
+% \subsection{Normalizing key value lists}
+%
+% \begin{macro}{\kv@normalize}
+% \begin{macrocode}
+\def\kv@normalize#1{%
+ \begingroup
+ \toks@{,#1}%
+ \KVS@comma
+ \KVS@equal
+ \KVS@spaceA
+ \KVS@spaceB{ }%
+ \KVS@spaceC
+ \KVS@spaceD{ }%
+ \xdef\kv@global{\the\toks@}%
+ \endgroup
+ \let\kv@list\kv@global
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\KVS@comma}
+% Converts active commas into comma with catcode other.
+% Also adds a comma at the end to protect the last value
+% for next cleanup steps.
+% \begin{macrocode}
+\begingroup
+ \lccode`\,=`\,%
+ \lccode`\~=`\,%
+\lowercase{\endgroup
+ \def\KVS@comma{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@comma\the\toks@~\KVS@nil
+ }
+ \def\KVS@@comma#1~#2\KVS@nil{%
+ \toks@\expandafter{\the\toks@#1,}%
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@comma#2\KVS@nil
+ }%
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\KVS@equal}
+% Converts active equal signs into catcode other characters.
+% \begin{macrocode}
+\begingroup
+ \lccode`\==`\=%
+ \lccode`\~=`\=%
+\lowercase{\endgroup
+ \def\KVS@equal{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@equal\the\toks@~\KVS@nil
+ }
+ \def\KVS@@equal#1~#2\KVS@nil{%
+ \edef\x{\the\toks@}%
+ \ifx\x\KVS@empty
+ \toks@{#1}%
+ \else
+ \toks@\expandafter{\the\toks@=#1}%
+ \fi
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@equal#2\KVS@nil
+ }%
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\KVS@spaceA}
+% Removes one space after the equal sign. In theory also several
+% spaces could be removed, but this is not really necessary,
+% because \TeX\ usually collapses several spaces to one already.
+% \begin{macrocode}
+\def\KVS@spaceA{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@spaceA\the\toks@= \KVS@nil
+}
+\def\KVS@@spaceA#1= #2\KVS@nil{%
+ \edef\x{\the\toks@}%
+ \ifx\x\KVS@empty
+ \toks@{#1}%
+ \else
+ \toks@\expandafter{\the\toks@=#1}%
+ \fi
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@spaceA#2\KVS@nil
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\KVS@spaceB}
+% Removes one space before the comma.
+% \begin{macrocode}
+\def\KVS@spaceB#1{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@spaceB\the\toks@#1,\KVS@nil
+}
+\def\KVS@@spaceB#1 ,#2\KVS@nil{%
+ \edef\x{\the\toks@}%
+ \ifx\x\KVS@empty
+ \toks@{#1}%
+ \else
+ \toks@\expandafter{\the\toks@,#1}%
+ \fi
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@spaceB#2\KVS@nil
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\KVS@spaceC}
+% Removes one space after the comma.
+% \begin{macrocode}
+\def\KVS@spaceC{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@spaceC\the\toks@, \KVS@nil
+}
+\def\KVS@@spaceC#1, #2\KVS@nil{%
+ \edef\x{\the\toks@}%
+ \ifx\x\KVS@empty
+ \toks@{#1}%
+ \else
+ \toks@\expandafter{\the\toks@,#1}%
+ \fi
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@spaceC#2\KVS@nil
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\KVS@spaceD}
+% Removes one space before the equal sign.
+% \begin{macrocode}
+\def\KVS@spaceD#1{%
+ \toks@\expandafter{\expandafter}\expandafter
+ \KVS@@spaceD\the\toks@#1=\KVS@nil
+}
+\def\KVS@@spaceD#1 =#2\KVS@nil{%
+ \edef\x{\the\toks@}%
+ \ifx\x\KVS@empty
+ \toks@{#1}%
+ \else
+ \toks@\expandafter{\the\toks@=#1}%
+ \fi
+ \toks2{#2}%
+ \edef\x{\the\toks2}%
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@@spaceD#2\KVS@nil
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Parsing key value lists}
+%
+% \begin{macro}{\kv@parse}
+% Normalizes and parses the key value list. Also sets \cs{kv@list}.
+% \begin{macrocode}
+\def\kv@parse#1{%
+ \kv@normalize{#1}%
+ \expandafter\kv@parse@normalized\expandafter{\kv@list}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\kv@parse@normalized}
+% \begin{macrocode}
+\def\kv@parse@normalized#1#2{%
+ \KVS@parse#1,\KVS@nil{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\def\KVS@parse#1,#2\KVS@nil#3{%
+ \begingroup
+ \toks@{#1}%
+ \edef\x{\the\toks@}%
+ \expandafter\endgroup
+ \ifx\x\KVS@empty
+ \else
+ \KVS@process#1=\KVS@nil{#3}%
+ \fi
+ \begingroup
+ \toks@{#2}%
+ \edef\x{\the\toks@}%
+ \expandafter\endgroup
+ \ifx\x\KVS@empty
+ \else
+ \@ReturnAfterFi{%
+ \KVS@parse#2\KVS@nil{#3}%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \begin{macrocode}
+\def\KVS@process#1=#2\KVS@nil#3{%
+ \def\kv@key{#1}%
+ \begingroup
+ \toks@{#2}%
+ \edef\x{\the\toks@}%
+ \expandafter\endgroup
+ \ifx\x\KVS@empty
+ \let\kv@value\relax
+ #3{#1}{}%
+ \else
+ \KVS@@process{#1}#2\KVS@nil{#3}%
+ \fi
+}
+\def\KVS@@process#1#2=\KVS@nil#3{%
+ \begingroup
+ \toks@{#2}%
+ \xdef\KVS@global{\the\toks@}%
+ \endgroup
+ \let\kv@value\KVS@global
+ #3{#1}{#2}%
+}
+% \end{macrocode}
+%
+% \subsection{Processing key value pairs}
+%
+% \begin{macro}{\kv@processor@default}
+% \begin{macrocode}
+\def\kv@processor@default#1#2#3{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname KV@#1@#2\endcsname\relax
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname KVS@#1@handler\endcsname\relax
+ \kv@error@unknownkey{#1}{#2}%
+ \else
+ \csname KVS@#1@handler\endcsname{#2}{#3}%
+ \relax
+ \fi
+ \else
+ \ifx\kv@value\relax
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname KV@#1@#2@default\endcsname\relax
+ \kv@error@novalue{#1}{#2}%
+ \else
+ \csname KV@#1@#2@default\endcsname
+ \relax
+ \fi
+ \else
+ \csname KV@#1@#2\endcsname{#3}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\kv@set@family@handler}
+% \begin{macrocode}
+\def\kv@set@family@handler#1#{%
+ \expandafter\def\csname KVS@#1@handler\endcsname
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Error handling}
+%
+% \begin{macro}{\kv@error@novalue}
+% Only a poor \cs{PackageError} is provided by \xfile{miniltx.tex}.
+% \begin{macrocode}
+\expandafter\ifx\csname MessageBreak\endcsname\relax
+ \def\MessageBreak{^^J}%
+\fi
+\expandafter\ifx\csname @ehc\endcsname\relax
+ \def\@ehc{%
+ Try typing \space\string<return\string> %
+ \space to proceed.\MessageBreak
+ If that doesn't work, type \space X %
+ \string<return\string> \space to quit\string.%
+ }%
+\fi
+\def\kv@error@novalue{%
+ \kv@error@generic{No value specified for}%
+}
+\def\kv@error@unknownkey{%
+ \kv@error@generic{Undefined}%
+}
+\def\kv@error@generic#1#2#3{%
+ \begingroup
+ \newlinechar=10 %
+ \def\MessageBreak{^^J}%
+ \expandafter\ifx\csname PackageError\endcsname\relax
+ \edef\x{%
+ \errhelp{%
+ The keyval family of the key `#3' is `#2'.\MessageBreak
+ \MessageBreak
+ \@ehc
+ }%
+ }%
+ \x
+ \errmessage{kvsetkeys: #1 key `#3'}%
+ \else
+ \edef\x{%
+ \noexpand\PackageError{kvsetkeys}{%
+ #1 key `#3'%
+ }{%
+ The keyval family of the key `#3' is `#2'.\MessageBreak
+ \MessageBreak
+ \@ehc
+ }%
+ }%
+ \x
+ \fi
+ \endgroup
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Do it all}
+%
+% \begin{macro}{\kvsetkeys}
+% \begin{macrocode}
+\def\kvsetkeys#1#2{%
+ \kv@parse{#2}{\kv@processor@default{#1}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\KVS@endinput
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/kvsetkeys.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/kvsetkeys.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex kvsetkeys.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% kvsetkeys.sty & tex/generic/oberdiek/kvsetkeys.sty\\
+% kvsetkeys.pdf & doc/latex/oberdiek/kvsetkeys.pdf\\
+% kvsetkeys.dtx & source/latex/oberdiek/kvsetkeys.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk kvsetkeys.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{kvsetkeys.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex kvsetkeys.dtx
+%makeindex -s gind.ist kvsetkeys.idx
+%pdflatex kvsetkeys.dtx
+%makeindex -s gind.ist kvsetkeys.idx
+%pdflatex kvsetkeys.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{keyval}
+% David Carlisle:
+% \textit{The \xpackage{keyval} package};
+% 1999/03/16 v1.13;
+% \CTAN{macros/latex/required/graphics/keyval.dtx}.
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2006/03/06 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/makerobust.dtx b/Master/texmf-dist/source/latex/oberdiek/makerobust.dtx
new file mode 100644
index 00000000000..71f9395af67
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/makerobust.dtx
@@ -0,0 +1,398 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file makerobust.dtx
+% and the derived files
+% makerobust.sty, makerobust.pdf, makerobust.ins, makerobust.drv,
+% makerobust-example.tex.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/makerobust.dtx
+% CTAN:macros/latex/contrib/oberdiek/makerobust.pdf
+%
+% Unpacking:
+% (a) If makerobust.ins is present:
+% tex makerobust.ins
+% (b) Without makerobust.ins:
+% tex makerobust.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{makerobust.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If makerobust.drv is present:
+% latex makerobust.drv
+% (b) Without makerobust.drv:
+% latex makerobust.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex makerobust.dtx
+% makeindex -s gind.ist makerobust.idx
+% pdflatex makerobust.dtx
+% makeindex -s gind.ist makerobust.idx
+% pdflatex makerobust.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/makerobust.sty
+% TDS:doc/latex/oberdiek/makerobust.pdf
+% TDS:doc/latex/oberdiek/makerobust-example.tex
+% TDS:source/latex/oberdiek/makerobust.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: makerobust 2006/03/18 v1.0 Making a macro robust (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file makerobust.dtx
+and the derived files
+ makerobust.sty, makerobust.pdf, makerobust.ins, makerobust.drv,
+ makerobust-example.tex.
+
+\endpreamble
+
+\generate{%
+ \file{makerobust.ins}{\from{makerobust.dtx}{install}}%
+ \file{makerobust.drv}{\from{makerobust.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{makerobust.sty}{\from{makerobust.dtx}{package}}%
+ \usedir{doc/latex/oberdiek}%
+ \file{makerobust-example.tex}{\from{makerobust.dtx}{example}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* makerobust.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `makerobust.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{makerobust.drv}%
+ [2006/03/18 v1.0 Making a macro robust (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{makerobust.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{59}
+%
+% \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 \~}
+%
+% \GetFileInfo{makerobust.drv}
+%
+% \title{The \xpackage{makerobust} package}
+% \date{2006/03/18 v1.0}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{makerobust} provides \cs{MakeRobustCommand}
+% that converts an existing macro to a robust one.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{User interface}
+%
+% \LaTeX\ offers \cs{DeclareRobustCommand} to define a robust macro
+% that does not break if it is used in moving arguments.
+% Sometimes a macro is already defined, but not robust. For
+% example, \cs{(} and \cs{)} are not robust, inside \cs{section}
+% the user must use \cs{protect} explicitly. This could be
+% avoided by making \cs{(} and \cs{)} robust.
+%
+% \begin{declcs}{MakeRobustCommand}\M{cmd}
+% \end{declcs}
+% \cs{MakeRobustCommand} redefines the macro \meta{cmd}
+% by using \cs{DeclareRobustCommand} and the existing definition
+% of the macro \meta{cmd}.
+% \begin{itemize}
+% \item It is an error if \meta{cmd} is undefined. If you want to
+% define a robust command, then you can use \cs{DeclareRobustCommand}
+% directly.
+% \item If the macro has previously been
+% defined by \cs{DeclareRobustCommand} then the redefinition of
+% \cs{MakeRobustCommand} is omitted, because the macro is already robust.
+% Only an information entry is written to the \xfile{.log} file.
+% Thus you do not get a warning or an error if the macro is already
+% robust because of an updated LaTeX or package that defines the macro.
+% \item Two macros are defined for a macro, defined
+% by \cs{DeclareRobustCommand}. Example:
+% \begin{quote}
+% |\DeclareRobustCommand{\foobar}{definition text}|
+% \end{quote}
+% Then the macro ``\cs{foobar}'' contains the protection code
+% and, depending on the protection mode,
+% calls the internal macro ``\cs{foobar }''. Notice the space
+% at the end of the macro name.
+% This internal macro ``\cs{foobar }'' now contains the definition
+% ``|definition text|'', given in \cs{DeclareRobustCommand}.
+%
+% Sometimes it can happen, that the internal macro already exists.
+% This can be caused by a previous \cs{DeclareRobustCommand} followed
+% by \cs{renewcommand}. Then the redefinition by \cs{MakeRobustCommand}
+% would be safe.
+%
+% However, it can also be possible that the macro is already robust,
+% using the internal macro, but with a different protection code.
+% The redefinition by \cs{MakeRobustCommand} would then generate
+% an infinite loop.
+%
+% Therefore \cs{MakeRobustCommand} raises an error message,
+% if the internal macro (with space at the end) already exists.
+% \end{itemize}
+%
+% \subsection{Example}
+%
+% \begin{macrocode}
+%<*example>
+\documentclass{article}
+\usepackage{makerobust}
+\MakeRobustCommand\(
+\MakeRobustCommand\)
+\pagestyle{headings}
+\begin{document}
+\tableofcontents
+\section{Einstein: \(E=mc^2\)}
+\newpage
+Second page.
+\end{document}
+%</example>
+% \end{macrocode}
+%
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{makerobust}%
+ [2006/03/18 v1.0 Making a macro robust (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\MakeRobustCommand#1{%
+ \begingroup
+ \@ifundefined{\expandafter\@gobble\string#1}{%
+ \endgroup
+ \PackageError{makerobust}{%
+ Macro \string`\string#1\string' is not defined%
+ }\@ehc
+ }{%
+ \global\let\MR@gtemp#1%
+ \let#1\@undefined
+ \expandafter\let\expandafter\MR@temp
+ \csname\expandafter\@gobble\string#1 \endcsname
+ \DeclareRobustCommand#1{}%
+ \ifx#1\MR@gtemp
+ \endgroup
+ \PackageInfo{makerobust}{%
+ \string`\string#1\string' is already robust%
+ }%
+ \else
+ \@ifundefined{MR@temp}{%
+ \global\let\MR@gtemp#1%
+ \endgroup
+ \expandafter\let\csname\expandafter\@gobble\string#1 \endcsname#1%
+ \let#1\MR@gtemp
+ }{%
+ \endgroup
+ \PackageError{makerobust}{%
+ Internal macro \string`\string#1 \string' already exists%
+ }\@ehc
+ }%
+ \fi
+ }%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/makerobust.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/makerobust.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex makerobust.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% makerobust.sty & tex/latex/oberdiek/makerobust.sty\\
+% makerobust.pdf & doc/latex/oberdiek/makerobust.pdf\\
+% makerobust-example.tex & doc/latex/oberdiek/makerobust-example.tex\\
+% makerobust.dtx & source/latex/oberdiek/makerobust.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk makerobust.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{makerobust.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex makerobust.dtx
+%makeindex -s gind.ist makerobust.idx
+%pdflatex makerobust.dtx
+%makeindex -s gind.ist makerobust.idx
+%pdflatex makerobust.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2006/03/18 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins b/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins
index a1956291244..f42726f6949 100644
--- a/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins
+++ b/Master/texmf-dist/source/latex/oberdiek/oberdiek.ins
@@ -1,42 +1,73 @@
% oberdiek.ins
-% 2001/08/27
+% 2006/08/26
%
-% This file will generate fast loadable files and documentation
-% driver files from the doc files in this directory when run
-% through LaTeX or TeX.
+% Copyright (C) 1999, 2001, 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
%
-% Copyright (C) 1999, 2001 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 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.
+% This work has the LPPL maintenance status "maintained".
%
-% Please send error reports and suggestions for improvements to
-% Heiko Oberdiek <oberdiek@uni-freiburg.de>.
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the overview "oberdiek.pdf", its source
+% "oberdiek.tex", and the installation script "oberdiek.ins"
+% for the projects in CTAN:macros/latex/contrib/oberdiek/.
%
\input docstrip
-\batchinput{hypbmsec.ins}
-\batchinput{pagesel.ins}
-\batchinput{alphalph.ins}
-\batchinput{twoopt.ins}
-\batchinput{hypcap.ins}
+\batchinput{aliascnt.dtx}
+\batchinput{alphalph.dtx}
+\batchinput{attachfile2.dtx}
+\batchinput{auxhook.dtx}
+\batchinput{bmpsize.dtx}
+\batchinput{chemarr.dtx}
+\batchinput{classlist.dtx}
+\batchinput{colonequals.dtx}
+\batchinput{dvipscol.dtx}
+\batchinput{embedfile.dtx}
+\batchinput{engord.dtx}
+\batchinput{epstopdf.dtx}
+\batchinput{grffile.dtx}
+\batchinput{holtxdoc.dtx}
+\batchinput{hypbmsec.dtx}
+\batchinput{hypcap.dtx}
+\batchinput{hypdestopt.dtx}
+\batchinput{hypdoc.dtx}
+\batchinput{ifdraft.dtx}
+\batchinput{ifpdf.dtx}
+\batchinput{ifvtex.dtx}
+\batchinput{inputenx.dtx}
+\batchinput{kvoptions.dtx}
+\batchinput{kvsetkeys.dtx}
+\batchinput{makerobust.dtx}
+\batchinput{pagesel.dtx}
+\batchinput{pdfcolmk.dtx}
+\batchinput{pdfcrypt.dtx}
+\batchinput{pdflscape.dtx}
+\batchinput{picture.dtx}
+\batchinput{pmboxdraw.dtx}
+\batchinput{refcount.dtx}
+\batchinput{setouterhbox.dtx}
+\batchinput{settobox.dtx}
+\batchinput{tabularht.dtx}
+\batchinput{tabularkv.dtx}
+\batchinput{telprint.dtx}
+\batchinput{twoopt.dtx}
+\batchinput{zref.dtx}
-\Msg{***********************************************************}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* files into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space *.sty}
+\Msg{}
+\Msg{********************************************************}
\Msg{*}
-\Msg{* To produce the documentation run the files `*.dtx'}
-\Msg{* through LaTeX.}
+\Msg{* Unpacking completed, now finish the installation.}
\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
+\Msg{********************************************************}
+\Msg{}
\endbatchfile
diff --git a/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex b/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex
new file mode 100644
index 00000000000..558e0cfef24
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/oberdiek.tex
@@ -0,0 +1,645 @@
+\NeedsTeXFormat{LaTeX2e}
+
+\newcommand*{\Title}{Overview}
+\newcommand*{\CTANdir}{macros/latex/contrib/oberdiek/}
+\newcommand*{\CTANroot}{ftp://ftp.ctan.org/tex-archive/}
+\newcommand*{\Subject}{CTAN:\CTANdir}
+\newcommand*{\Author}{Heiko Oberdiek}
+\newcommand*{\Email}{oberdiek@uni-freiburg.de}
+\newcommand*{\Date}{2006/08/26}
+
+% Copyright (C) 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the overview "oberdiek.pdf", its source
+% "oberdiek.tex", and the installation script "oberdiek.ins"
+% for the projects in CTAN:macros/latex/contrib/oberdiek/.
+%
+\documentclass[a4paper,12pt]{article}
+\usepackage[
+ ignorehead,
+ top=1in,
+]{geometry}
+\usepackage{longtable}
+\usepackage{color}
+\usepackage[ngerman,english]{babel}
+
+\definecolor{link}{rgb}{1,0,0}% red
+\definecolor{file}{rgb}{0,0,1}% blue
+\definecolor{url}{cmyk}{0.1,1,0,0.1}
+
+\definecolor{file}{rgb}{1,0,0}% red
+\definecolor{url}{rgb}{0,0,1}% blue
+\definecolor{link}{rgb}{0,0.75,0}%
+
+\usepackage[
+ colorlinks,
+]{hyperref}[2006/02/12]
+\hypersetup{
+ pdftitle={CTAN:\CTANdir},
+ pdfsubject={Package Overview},
+ pdfauthor={\Author\ <\Email>},
+ bookmarksnumbered,
+ bookmarksopen,
+ bookmarksopenlevel=2,
+ bookmarksdepth=2,
+ filecolor=file,
+ urlcolor=url,
+ linkcolor=link,
+}
+\usepackage{hypdestopt}
+\setcounter{tocdepth}{1}
+\setcounter{secnumdepth}{1}
+
+\title{%
+ \href{\CTANroot\CTANdir}{CTAN:\CTANdir}%
+}
+\author{%
+ \Author\\
+ \textless
+ \href{mailto:\Email}{\texttt{\Email}}%
+ \textgreater
+}
+\date{\Date}
+
+\providecommand*{\pdfTeX}{pdf\TeX}
+\providecommand*{\VTeX}{V\TeX}
+\newcommand*{\xpackage}[1]{\textsf{#1}}
+\newcommand*{\xfile}[1]{\textsf{#1}}
+\newcommand*{\xoption}[1]{\textsf{#1}}
+\newcommand*{\cs}[1]{\texttt{\textbackslash#1}}
+\newcommand*{\meta}[1]{%
+ \ensuremath\langle
+ \textit{#1}%
+ \ensuremath\rangle
+}
+
+\makeatletter
+\g@addto@macro\abstract{\noindent\ignorespaces}
+
+\newcommand*{\tocinclude}[1]{%
+ \setcounter{tocdepth}{3}%
+ \begingroup
+ \makeatletter
+ \def\@prj{#1}%
+ \let\contentsline\foreign@contentsline
+ \input{../\@prj/\@prj.toc}%
+ \endgroup
+}
+\def\foreign@contentsline#1#2#3#4{%
+ \ifx\\#4\\%
+ \csname l@#1\endcsname{#2}{#3}%
+ \else
+ \ifHy@linktocpage
+ \csname l@#1\endcsname{{#2}}{%
+ \hyper@linkfile{#3}{\@prj.pdf}{#4}%
+ }%
+ \else
+ \csname l@#1\endcsname{%
+ \hyper@linkfile{#2}{\@prj.pdf}{#4}%
+ }{#3}%
+ \fi
+ \fi
+}%
+
+\newenvironment{overview}{%
+ \setlength{\tabcolsep}{0.8\tabcolsep}%
+ \setlength{\LTleft}{0pt}%
+ \longtable{@{}llll@{}}
+}{%
+ \endlongtable
+}
+\newcommand*{\entry}[4]{%
+ \href{file:#1.pdf}{%
+ \bfseries\xpackage{#1}%
+ }%
+ & #2%
+ & v#3%
+ & \href{\CTANroot\CTANdir #1.pdf}{[pdf]} %
+ \href{\CTANroot\CTANdir #1.dtx}{[dtx]}
+ \\*%
+ \hyperref[{#1}]{\small (contents)}%
+ &
+ \multicolumn{2}{l}{%
+ #4%
+ }%
+ \\%
+}
+\newcommand*{\entrysep}{1.5ex}
+
+\newcommand*{\pkgsectformat}[1]{%
+ \texorpdfstring{%
+ \textcolor{link}{The} %
+ \xpackage{#1} %
+ \textcolor{link}{package}%
+ }{#1}%
+}
+
+\makeatother
+
+\begin{document}
+\maketitle
+
+\section{Overview}
+\begin{overview}
+\entry{aliascnt}{2006/08/16}{1.1}{Alias counter}%
+[\entrysep]
+\entry{alphalph}{2006/05/30}{1.4}{Converting numbers to letters}%
+[\entrysep]
+\entry{attachfile2}{2006/08/16}{2.2}{attach files into PDF}%
+[\entrysep]
+\entry{auxhook}{2006/05/31}{1.0}{Hooks for auxiliary files}%
+[\entrysep]
+\entry{bmpsize}{2006/08/24}{1.0}{Extract size and resolution data from bitmap files}%
+[\entrysep]
+\entry{chemarr}{2006/02/20}{1.2}{Chemical reaction arrows}%
+[\entrysep]
+\entry{classlist}{2006/02/20}{1.2}{Record loaded classes}%
+[\entrysep]
+\entry{colonequals}{2006/08/01}{1.0}{Colon equals symbols}%
+[\entrysep]
+\entry{dvipscol}{2006/02/20}{1.1}{Fix for dvips.def}%
+[\entrysep]
+\entry{embedfile}{2006/08/16}{1.0}{embed files into PDF}%
+[\entrysep]
+\entry{engord}{2006/02/20}{1.2}{Provides the ifpdf switch}%
+[\entrysep]
+\entry{epstopdf}{2006/08/26}{1.3}{Conversion with epstopdf on the fly}%
+[\entrysep]
+\entry{grffile}{2006/08/17}{1.1}{Extended file name support for graphics}%
+[\entrysep]
+\entry{holtxdoc}{2006/06/02}{0.7}{Private additional ltxdoc support}%
+[\entrysep]
+\entry{hypbmsec}{2006/02/20}{2.2}{Bookmarks in sectioning commands}%
+[\entrysep]
+\entry{hypcap}{2006/02/20}{1.5}{Adjusting anchors of captions}%
+[\entrysep]
+\entry{hypdestopt}{2006/06/01}{2.0}{Hyperref destination optimizer}%
+[\entrysep]
+\entry{hypdoc}{2006/06/02}{1.4}{Hyper extensions for doc.sty}%
+[\entrysep]
+\entry{ifdraft}{2006/02/20}{1.2}{Switch for option draft}%
+[\entrysep]
+\entry{ifpdf}{2006/02/20}{1.4}{Provides the ifpdf switch}%
+[\entrysep]
+\entry{ifvtex}{2006/02/20}{1.1}{Provides the ifpdf switch}%
+[\entrysep]
+\entry{inputenx}{2006/08/24}{1.0}{Enhanced input encoding handling}%
+[\entrysep]
+\entry{kvoptions}{2006/08/22}{2.4}{Connects package keyval with \LaTeX{} options}%
+[\entrysep]
+\entry{kvsetkeys}{2006/03/06}{1.0}{Key value parser with default handler support}%
+[\entrysep]
+\entry{makerobust}{2006/03/18}{1.0}{Making a macro robust}%
+[\entrysep]
+\entry{pagesel}{2006/03/07}{1.5}{Selecting shipout output pages}%
+[\entrysep]
+\entry{pdfcolmk}{2006/02/20}{0.8}{PDFtex COLor MarK}%
+[\entrysep]
+\entry{pdfcrypt}{2006/02/20}{0.8}{Setting pdf encryption}%
+[\entrysep]
+\entry{pdflscape}{2006/04/24}{0.6}{Landscape pages in PDF}%
+[\entrysep]
+\entry{picture}{2006/08/26}{1.0}{Dimens for picture macros}%
+[\entrysep]
+\entry{pmboxdraw}{2006/05/03}{1.0}{Poor man's box drawing characters}%
+[\entrysep]
+\entry{refcount}{2006/02/20}{3.0}{Data extraction from references}%
+[\entrysep]
+\entry{setouterhbox}{2006/08/26}{1.4}{Set hbox in outer horizontal mode}%
+[\entrysep]
+\entry{settobox}{2006/02/20}{1.2}{Getting box sizes}%
+[\entrysep]
+\entry{tabularht}{2006/02/20}{2.2}{Tabular with height specification}%
+[\entrysep]
+\entry{tabularkv}{2006/02/20}{1.1}{Key value interface for tabular parameters}%
+[\entrysep]
+\entry{telprint}{2006/08/16}{1.7}{Formatting of German phone numbers}%
+[\entrysep]
+\entry{twoopt}{2006/02/20}{1.4}{Definitions with two optional arguments}%
+[\entrysep]
+\entry{zref}{2006/05/25}{1.2}{New reference scheme for \LaTeXe{}}%
+\end{overview}
+
+\section{Packages}
+\hypersetup{bookmarksnumbered=false}
+
+\subsection{\pkgsectformat{aliascnt}}
+\label{aliascnt}
+\begin{abstract}
+Package \xpackage{aliascnt} introduces \emph{alias counters} that
+share the same counter register and clear list.
+\end{abstract}
+\tocinclude{aliascnt}
+
+\newpage
+\subsection{\pkgsectformat{alphalph}}
+\label{alphalph}
+\begin{abstract}
+The package provides the new expandable commands \cs{alphalph}
+and \cs{AlphAlph}. They are like \cs{number}, but the expansion
+consists of lowercase and uppercase letters respectively.
+\end{abstract}
+\tocinclude{alphalph}
+
+\newpage
+\subsection{\pkgsectformat{attachfile2}}
+\label{attachfile2}
+\begin{abstract}
+This package can be used to attach files to a PDF document.
+It is a further development of Scott Pakin's package
+\xpackage{attachfile} for \pdfTeX. Apart from bug fixes,
+package \xpackage{attachfile2} adds support for \xoption{dvips},
+some new options, gets and writes meta information data about
+the attached files.
+\end{abstract}
+\tocinclude{attachfile2}
+
+\newpage
+\subsection{\pkgsectformat{auxhook}}
+\label{auxhook}
+\begin{abstract}
+Package \xpackage{auxhook} provides hooks for adding stuff at
+the begin of \xfile{.aux} files.
+\end{abstract}
+\tocinclude{auxhook}
+
+\newpage
+\subsection{\pkgsectformat{bmpsize}}
+\label{bmpsize}
+\begin{abstract}
+Package \xpackage{bmpsize} analyzes bitmap images to extract
+size and resolution data. It adds this feature to the graphics package
+that now do not need separate bounding box files for bitmap images.
+Additionally the implementation for the inclusion of bitmap images
+in some drivers of package \xpackage{graphicx} are rewritten to support
+options \xoption{viewport}, \xoption{trim} and \xoption{clip}.
+\end{abstract}
+\tocinclude{bmpsize}
+
+\newpage
+\subsection{\pkgsectformat{chemarr}}
+\label{chemarr}
+\begin{abstract}
+Very often chemists need a longer version
+of reaction arrows (\cs{rightleftharpoons}) with
+the possibility to put text above and below.
+Analogous to \xpackage{amsmath}'s \cs{xrightarrow} and
+\cs{xleftarrow} this package provides the macro
+\cs{xrightleftharpoons}.
+\end{abstract}
+\tocinclude{chemarr}
+
+\newpage
+\subsection{\pkgsectformat{classlist}}
+\label{classlist}
+\begin{abstract}
+This package records the loaded classes and stores
+them in a list.
+\end{abstract}
+\tocinclude{classlist}
+
+\newpage
+\subsection{\pkgsectformat{colonequals}}
+\label{colonequals}
+\begin{abstract}
+Package \xpackage{colonequals} defines poor man's symbols
+for math relation symbols such as ``colon equals''.
+The colon is centered around the horizontal math axis.
+\end{abstract}
+\tocinclude{colonequals}
+
+\newpage
+\subsection{\pkgsectformat{dvipscol}}
+\label{dvipscol}
+\begin{abstract}
+Color support for dvips in \xfile{dvips.def} involves the
+color stack of dvips. The package tries to remove unnecessary
+uses of the stack to avoid the error ``out of coor stack space''.
+\end{abstract}
+\tocinclude{dvipscol}
+
+\newpage
+\subsection{\pkgsectformat{embedfile}}
+\label{embedfile}
+\begin{abstract}
+This package embeds files to a PDF document.
+Currently \pdfTeX\ >= 1.30 in PDF mode is supported only.
+\end{abstract}
+\tocinclude{embedfile}
+
+\newpage
+\subsection{\pkgsectformat{engord}}
+\label{engord}
+\begin{abstract}
+The package generates the suffix of English ordinal numbers.
+It can be used with plain and \LaTeX\ formats.
+\end{abstract}
+\tocinclude{engord}
+
+\newpage
+\subsection{\pkgsectformat{epstopdf}}
+\label{epstopdf}
+\begin{abstract}
+This packages adds support of handling eps images
+to package \xpackage{graphics} or \xpackage{graphicx}
+with option \xoption{pdftex}. If an eps image is detected,
+epstopdf is automatically called to convert it to pdf format.
+\end{abstract}
+\tocinclude{epstopdf}
+
+\newpage
+\subsection{\pkgsectformat{grffile}}
+\label{grffile}
+\begin{abstract}
+The package extends the file name processing of package \xpackage{graphics}
+to support a larger range of file names. For example, the file name
+may contain several dots. Or in case of \pdfTeX\ in PDF mode the file name may
+contain spaces.
+\end{abstract}
+\tocinclude{grffile}
+
+\newpage
+\subsection{\pkgsectformat{holtxdoc}}
+\label{holtxdoc}
+\begin{abstract}
+The package is used for the documentation of my packages in
+DTX format. It contains some private macros and setup for
+my needs. Thus do not use it. I have separated the part
+that may be useful for others in package \xpackage{hypdoc}.
+\end{abstract}
+\tocinclude{holtxdoc}
+
+\newpage
+\subsection{\pkgsectformat{hypbmsec}}
+\label{hypbmsec}
+\begin{abstract}
+This package expands the syntax of the sectioning commands. If the
+argument of the sectioning commands isn't usable as outline entry,
+a replacement for the bookmarks can be given.
+\end{abstract}
+\tocinclude{hypbmsec}
+
+\newpage
+\subsection{\pkgsectformat{hypcap}}
+\label{hypcap}
+\begin{abstract}
+This package tries a solution of the problem with
+hyperref, that links to floats points below the
+caption and not at the beginning of the float.
+Therefore this package divides the task into two
+part, the link setting with \cs{capstart} or
+automatically at the beginning of a float and
+the rest in the \cs{caption} command.
+\end{abstract}
+\tocinclude{hypcap}
+
+\newpage
+\subsection{\pkgsectformat{hypdestopt}}
+\label{hypdestopt}
+\begin{abstract}
+Package \xpackage{hypdestopt} supports \xpackage{hyperref}'s
+\xoption{pdftex} driver. It removes unnecessary destinations
+and shortens the destination names or uses numbered destinations
+to get smaller PDF files.
+\end{abstract}
+\tocinclude{hypdestopt}
+
+\newpage
+\subsection{\pkgsectformat{hypdoc}}
+\label{hypdoc}
+\begin{abstract}
+This package adds hyper features to the package
+\xpackage{doc} that is used in the documentation
+system of \LaTeXe. Bookmarks are added and references
+are linked as far as possible.
+\end{abstract}
+\tocinclude{hypdoc}
+
+\newpage
+\subsection{\pkgsectformat{ifdraft}}
+\label{ifdraft}
+\begin{abstract}
+The package provides an interface for selecting code depending
+on the options \xoption{draft} and \xoption{final}.
+\end{abstract}
+\tocinclude{ifdraft}
+
+\newpage
+\subsection{\pkgsectformat{ifpdf}}
+\label{ifpdf}
+\begin{abstract}
+This package looks for pdfTeX in pdf mode and
+implements and sets the switch \cs{ifpdf}.
+The detection is based on \cs{pdfoutput} and
+the package will not change this value.
+It works with plain or LaTeX formats.
+\end{abstract}
+\tocinclude{ifpdf}
+
+\newpage
+\subsection{\pkgsectformat{ifvtex}}
+\label{ifvtex}
+\begin{abstract}
+This package looks for \VTeX, implements
+and sets the switches \cs{ifvtex}, \cs{ifvtex}\texttt{\meta{mode}},
+\cs{ifvtexgex}. It works with plain or \LaTeX\ formats.
+\end{abstract}
+\tocinclude{ifvtex}
+
+\newpage
+\subsection{\pkgsectformat{inputenx}}
+\label{inputenx}
+\begin{abstract}
+This package deals with input encodings. The first stage
+is already available. It provides input encodings using
+standard mappings and covers nearly all slots. Thus it
+serves as more uptodate replacement for package \xpackage{inputenc}.
+\end{abstract}
+\tocinclude{inputenx}
+
+\newpage
+\subsection{\pkgsectformat{kvoptions}}
+\label{kvoptions}
+\begin{abstract}
+This package is intended for package authors who want to
+use options in key value format for their package options.
+\end{abstract}
+\tocinclude{kvoptions}
+
+\newpage
+\subsection{\pkgsectformat{kvsetkeys}}
+\label{kvsetkeys}
+\begin{abstract}
+Package \xpackage{kvsetkeys} provides \cs{kvsetkeys}, a variant
+of package \xpackage{keyval}'s \cs{setkeys}. It allows to specify
+a handler that deals with unknown options. Active commas and equal
+signs may be used (e.g. see \xpackage{babel}'s shorthands) and
+only one level of curly braces are removed from the values.
+\end{abstract}
+\tocinclude{kvsetkeys}
+
+\newpage
+\subsection{\pkgsectformat{makerobust}}
+\label{makerobust}
+\begin{abstract}
+Package \xpackage{makerobust} provides \cs{MakeRobustCommand}
+that converts an existing macro to a robust one.
+\end{abstract}
+\tocinclude{makerobust}
+
+\newpage
+\subsection{\pkgsectformat{pagesel}}
+\label{pagesel}
+\begin{abstract}
+Single pages or page areas can be selected for output.
+\end{abstract}
+\tocinclude{pagesel}
+
+\newpage
+\subsection{\pkgsectformat{pdfcolmk}}
+\label{pdfcolmk}
+\begin{abstract}
+This package tries a solution for the missing color
+stack of \pdfTeX.
+\end{abstract}
+\tocinclude{pdfcolmk}
+
+\newpage
+\subsection{\pkgsectformat{pdfcrypt}}
+\label{pdfcrypt}
+\begin{abstract}
+This package supports the setting of pdf encryption options
+for \VTeX\ and some older versions of \pdfTeX.
+\end{abstract}
+\tocinclude{pdfcrypt}
+
+\newpage
+\subsection{\pkgsectformat{pdflscape}}
+\label{pdflscape}
+\begin{abstract}
+Package \xpackage{pdflscape} adds PDF support to the
+environment \texttt{landscape} of package \xpackage{lscape}
+by setting the PDF page attribute \texttt{/Rotate}.
+\end{abstract}
+\tocinclude{pdflscape}
+
+\newpage
+\subsection{\pkgsectformat{picture}}
+\label{picture}
+\begin{abstract}
+There are macro and environment arguments that expect numbers
+that will internally be multiplicated with \cs{unitlength}.
+This package extends the syntax of these arguments that
+dimens with calculation support can be added for these arguments.
+\end{abstract}
+\tocinclude{picture}
+
+\newpage
+\subsection{\pkgsectformat{pmboxdraw}}
+\label{pmboxdraw}
+\begin{abstract}
+Package \xpackage{pmboxdraw} declares box drawings characters of
+old code pages, e.g. cp437. It uses rules instead of using a font.
+\end{abstract}
+\tocinclude{pmboxdraw}
+
+\newpage
+\subsection{\pkgsectformat{refcount}}
+\label{refcount}
+\begin{abstract}
+References are not numbers, however they often store numerical
+data such as section or page numbers. \cs{ref} or \cs{pageref}
+cannot be used for counter assignments or calculations because
+they are not expandable, generate warnings, or can even be links,
+The package provides expandable macros to extract the data
+from references. Packages \xpackage{hyperref}, \xpackage{nameref},
+\xpackage{titleref}, and \xpackage{babel} are supported.
+\end{abstract}
+\tocinclude{refcount}
+
+\newpage
+\subsection{\pkgsectformat{setouterhbox}}
+\label{setouterhbox}
+\begin{abstract}
+If math stuff is set in an \cs{hbox}, then TeX
+performs some optimization and omits the implicite
+penalties \cs{binoppenalty} and \cs{relpenalty}.
+This packages tries to put stuff into an \cs{hbox}
+without getting lost of those penalties.
+\end{abstract}
+\tocinclude{setouterhbox}
+
+\newpage
+\subsection{\pkgsectformat{settobox}}
+\label{settobox}
+\begin{abstract}
+Commands are defined for getting box sizes similar
+to \LaTeX's \cs{settowidth} commands.
+\end{abstract}
+\tocinclude{settobox}
+
+\newpage
+\subsection{\pkgsectformat{tabularht}}
+\label{tabularht}
+\begin{abstract}
+This package defines some environments that adds
+a height specification to tabular and array.
+\end{abstract}
+\tocinclude{tabularht}
+
+\newpage
+\subsection{\pkgsectformat{tabularkv}}
+\label{tabularkv}
+\begin{abstract}
+This package adds a key value interface for tabular
+by the new environment \texttt{tabularkv}. Thus the
+\TeX\ source code looks better by named parameters,
+especially if package \xpackage{tabularht} is used.
+\end{abstract}
+\tocinclude{tabularkv}
+
+\newpage
+\subsection{\pkgsectformat{telprint}}
+\label{telprint}
+\begin{abstract}
+Package \xpackage{telprint} provides \cs{telprint} for formatting
+German phone numbers.
+\end{abstract}
+\tocinclude{telprint}
+
+\newpage
+\subsection{\pkgsectformat{twoopt}}
+\label{twoopt}
+\begin{abstract}
+This package provides commands to define macros with two
+optional arguments.
+\end{abstract}
+\tocinclude{twoopt}
+
+\newpage
+\subsection{\pkgsectformat{zref}}
+\label{zref}
+\begin{abstract}
+Package \xpackage{zref} tries to get rid of the restriction
+in \LaTeX's reference system that only two properties are
+supported. The package implements an extensible referencing
+system, where properties are handled in a more flexible way.
+It offers an interface for macro programmers for the access
+to the system and some applications that uses the new
+reference scheme.
+\end{abstract}
+\tocinclude{zref}
+\end{document}
diff --git a/Master/texmf-dist/source/latex/oberdiek/pagesel.dtx b/Master/texmf-dist/source/latex/oberdiek/pagesel.dtx
index 2f9636d734c..93f0674b29f 100644
--- a/Master/texmf-dist/source/latex/oberdiek/pagesel.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/pagesel.dtx
@@ -1,67 +1,173 @@
% \iffalse meta-comment
%
-% pagesel.dtx
-%
-% 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>.
-%
-%<*dtx>
- \ProvidesFile{pagesel.dtx}
-%</dtx>
-%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{pagesel}
-%<driver>\ProvidesFile{pagesel.drv}
-% \fi
-% \ProvidesFile{pagesel.dtx}
- [2003/06/05 v1.2 Selecting shipout output pages (HO)]
-%
-% \GetFileInfo{pagesel.dtx}
-%
-% \CheckSum{216}
-%
-%% \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 \~}
-%%
-% \iffalse
+% Copyright (C) 1999, 2003, 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file pagesel.dtx
+% and the derived files
+% pagesel.sty, pagesel.pdf, pagesel.ins, pagesel.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/pagesel.dtx
+% CTAN:macros/latex/contrib/oberdiek/pagesel.pdf
+%
+% Unpacking:
+% (a) If pagesel.ins is present:
+% tex pagesel.ins
+% (b) Without pagesel.ins:
+% tex pagesel.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{pagesel.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If pagesel.drv is present:
+% latex pagesel.drv
+% (b) Without pagesel.drv:
+% latex pagesel.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex pagesel.dtx
+% makeindex -s gind.ist pagesel.idx
+% pdflatex pagesel.dtx
+% makeindex -s gind.ist pagesel.idx
+% pdflatex pagesel.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/pagesel.sty
+% TDS:doc/latex/oberdiek/pagesel.pdf
+% TDS:source/latex/oberdiek/pagesel.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: pagesel 2006/03/07 v1.5 Selecting shipout output pages (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 1999, 2003, 2006 by
+ Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file pagesel.dtx
+and the derived files
+ pagesel.sty, pagesel.pdf, pagesel.ins, pagesel.drv.
+
+\endpreamble
+
+\generate{%
+ \file{pagesel.ins}{\from{pagesel.dtx}{install}}%
+ \file{pagesel.drv}{\from{pagesel.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{pagesel.sty}{\from{pagesel.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* pagesel.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `pagesel.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{pagesel.drv}%
+ [2006/03/07 v1.5 Selecting shipout output pages (HO)]
\documentclass{ltxdoc}
\usepackage{holtxdoc}
\begin{document}
- \DocInput{pagesel.dtx}
+ \DocInput{pagesel.dtx}
\end{document}
%</driver>
% \fi
%
-% \DoNotIndex{\maxdimen,\\,\END}
-% \DoNotIndex{\ifodd,\ifx,\ifnum}
+% \CheckSum{393}
+%
+% \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 \~}
+%
+% \GetFileInfo{pagesel.drv}
+%
+% \title{The \xpackage{pagesel} package}
+% \date{2006/03/07 v1.5}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Single pages or page areas can be selected for output.
+% \end{abstract}
+%
+% \tableofcontents
%
% \newenvironment{param}{^^A
% \newcommand{\entry}[1]{\meta{\###1}:&}^^A
@@ -72,16 +178,6 @@
%
% \newcommand*{\Option}[1]{\textsf{#1}}
%
-% \SetupTitle{page,select,shipout,LaTeX}
-% \maketitle
-%
-% \begin{abstract}
-% With this package single pages or page areas can be selected
-% for output.
-% \end{abstract}
-%
-% \tableofcontents
-%
% \section{Usage}
% The package \Package{pagesel} is a \LaTeXe\ package:
% \begin{quote}
@@ -89,8 +185,8 @@
% \end{quote}
% (For plain\TeX\ and \LaTeX\,2.09 the similar package
% \URL{\Package{selectp}}^^A
-% {ftp://ftp.dante.de/tex-archive/macros/latex209/contrib/misc/selectp.sty}
-% from \Email[Donald Arsenau]{asnd@triumf.ca} can be used.)
+% {ftp://ftp.ctan.org/tex-archive/macros/latex209/contrib/misc/selectp.sty}
+% from \NameEmail{Donald Arsenau}{asnd@triumf.ca} can be used.)
%
% Depending on the options the package works in two modes:
% \begin{enumerate}
@@ -153,7 +249,8 @@
% \subsubsection{Options\texorpdfstring{ for handling auxiliary files}{}}
% \begin{description}
% \item[\Option{nofiles}:] This is the default. Auxiliary files are
-% read but not written or changed.
+% read but not written or changed. Also the job is aborted
+% after the last selected page for saving time.
% \item[\Option{nonofiles}/\Option{files}:] Auxiliary files are
% written.
% \end{description}
@@ -165,7 +262,7 @@
% This is harmless and can be ignored.
% \item The outline auxiliary file \cmd{\jobname.out}, however,
% is opened and truncated to zero bytes.
-% Version \ref{Hist10} of this package had
+% Version 1.0 of this package had
% loaded a patch file \File{hypnofil.tex}, if it detects
% \Package{hyperref} to get \cmd{\nofiles} work.
%
@@ -174,14 +271,16 @@
% is no longer needed and removed.
% \end{itemize}
%
-% \Installation
-%
-% \StopEventually{}
+% \StopEventually{
+% }
%
% \section{Implementation}
% \subsection{Package}
% \begin{macrocode}
%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pagesel}
+ [2006/03/07 v1.5 Selecting shipout output pages (HO)]
% \end{macrocode}
%
% If the package is loaded twice, the package code does not
@@ -330,9 +429,26 @@
% \end{macro}
% \end{macro}
%
+% \begin{macrocode}
+\newcommand{\ps@lastpage}{\maxdimen}
+\ifx\ps@nofiles\nofiles
+ \ifx\ps@testlist\@empty
+ \else
+ \def\ps@lastpage{0}%
+ \newcommand*{\ps@pagetest}[2]{%
+ \ifnum#2>\ps@lastpage\relax
+ \def\ps@lastpage{#2}%
+ \fi
+ }%
+ \ps@testlist
+ \let\ps@pagetest\relax
+ \fi
+\fi
+% \end{macrocode}
+%
% \begin{macro}{\ps@ifinset}
% \begin{macrocode}
-\newcommand{\ps@ifinset}[4]{%
+\newcommand*{\ps@ifinset}[4]{%
\ifnum#1>\value{ps@count}%
\ps@ReturnAfterElseFi{#4}%
\else
@@ -359,6 +475,23 @@
% \begin{macrocode}
\EveryShipout{%
\stepcounter{ps@count}%
+ \ifnum\value{ps@count}>\ps@lastpage\relax
+ \global\output{%
+ \ps@cleanup@if
+ \ps@group@message
+ \typeout{%
+ Package pagesel Notice: Aborting LaTeX job %
+ after last selected page (\ps@lastpage).%
+ }%
+ \ps@message@ignore
+ \global\setbox255\box\voidb@x
+ \deadcycles0\relax
+% \end{macrocode}
+% First leave the output group before ending the job.
+% \begin{macrocode}
+ \aftergroup\@@end
+ }%
+ \fi
\let\ps@next\@empty
\ifx\ps@testlist\@empty
\else
@@ -377,43 +510,247 @@
\else
\fi
\fi
+ \ps@begindvi
\ps@next
}
% \end{macrocode}
+%
% \begin{macrocode}
-%</package>
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname currentiflevel\endcsname\relax
+ \let\ps@cleanup@if\@empty
+\else
+ \def\ps@cleanup@if{%
+ \ifnum\currentiflevel>\@ne
+ \csname fi\endcsname
+ \expandafter\ps@cleanup@if
+ \fi
+ }%
+\fi
+% \end{macrocode}
+% Because of \cs{aftergroup} it is too dangerous to perform
+% a similar cleanup for groups.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname currentgrouplevel\endcsname\relax
+ \let\ps@group@message\@empty
+ \def\ps@message@ignore{%
+ \typeout{%
+ (pagesel) \space\space\@spaces\@spaces\@spaces
+ Messages (\string\end\space occurred ...) can be ignored.%
+ }%
+ }%
+\else
+ \def\ps@group@message{%
+ \ifnum\currentgrouplevel>\@ne
+ \def\ps@message@ignore{%
+ \typeout{%
+ (pagesel) \space\space\@spaces\@spaces\@spaces
+ Message (\string\end\space occurred ...) %
+ can be ignored.%
+ }%
+ }%
+ \else
+ \let\ps@message@ignore\@empty
+ \fi
+ }%
+\fi
% \end{macrocode}
%
-% \StartHistory
-% \HistVersion{1999/03/01 v0.9}
-% \begin{itemize}
-% \item The first version was built as a response to a question
-% of \Email[Dirk Kuypers]{dk@comnets.rwth-aachen.de},
+% \subsection{AtBeginDvi hook support}
+%
+% The material of box \cs{@begindvibox} is recorded in parallel
+% in box \cs{ps@begindvibox}.
+% \begin{macrocode}
+\newbox\ps@begindvibox
+\ifvoid\@begindvibox
+\else
+ \global\setbox\ps@begindvibox\vbox{%
+ \unvbox\@begindvibox
+ }%
+\fi
+\let\ps@org@AtBeginDvi\AtBeginDvi
+\def\AtBeginDvi#1{%
+ \global\setbox\ps@begindvibox\vbox{%
+ \unvbox\ps@begindvibox
+ #1%
+ }%
+ \ps@org@AtBeginDvi{#1}%
+}
+% \end{macrocode}
+%
+% \begin{macro}{\ps@begindvi}
+% Macro \cs{ps@begindvi} is called the similar way as \cs{@begindvi}.
+% If the first page is printed, then \cs{AtBeginDvi} should work
+% as usual. Otherwise the contents of box \cs{ps@begindvibox} is
+% set on the first selected page.
+% \begin{macrocode}
+\def\ps@begindvi{%
+ \ifx\ps@next\@empty
+ \global\let\ps@begindvi\@empty
+ \else
+ \global\let\ps@begindvi\ps@begindvi@do
+ \fi
+}
+\def\ps@begindvi@do{%
+ \ifx\ps@next\@empty
+ \setbox\@cclv\vbox{%
+ \unvbox\ps@begindvibox
+ \box\@cclv
+ }%
+ \global\let\ps@begindvi\@empty
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/pagesel.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/pagesel.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex pagesel.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% pagesel.sty & tex/latex/oberdiek/pagesel.sty\\
+% pagesel.pdf & doc/latex/oberdiek/pagesel.pdf\\
+% pagesel.dtx & source/latex/oberdiek/pagesel.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk pagesel.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{pagesel.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex pagesel.dtx
+%makeindex -s gind.ist pagesel.idx
+%pdflatex pagesel.dtx
+%makeindex -s gind.ist pagesel.idx
+%pdflatex pagesel.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{1999/03/01 v0.9}
+% \item
+% The first version was built as a response to a question
+% of \NameEmail{Dirk Kuypers}{dk@comnets.rwth-aachen.de},
% published in the newsgroup
% \href{news:de.comp.text.tex}{de.comp.text.tex}:\\
% \URL{``Re: pdflatex nur fuer bestimmte Seiten?!?''}^^A
% {http://www.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=450111880}
-% \end{itemize}
-% \HistVersion{1999/04/05 v1.0}\HistLabel{Hist10}
-% \begin{itemize}
-% \item Documentation added in dtx format.
-% \item Copyright: LPPL (\CTAN{macros/latex/base/lppl.txt})
-% \item Options |odd|, |even| added.
-% \item \cmd{\nofiles} added, bug fix for \Package{hyperref}.
-% \item Abort loading of package, if nothing to do.
-% \end{itemize}
-% \HistVersion{1999/04/13 v1.1}
-% \begin{itemize}
-% \item \cmd{\nofiles} bug fix removed
-% because of \Package{hyperref} 6.55.
-% \item First CTAN release.
-% \end{itemize}
-% \HistVersion{2003/06/05 v1.2}
-% \begin{itemize}
-% \item \cmd{\deadcyles} is decremented for omitted pages.
-% \item LPPL 1.2.
-% \end{itemize}
-% \hfuzz10pt
+% \end{Version}
+% \begin{Version}{1999/04/05 v1.0}
+% \item
+% Documentation added in dtx format.
+% \item
+% Copyright: LPPL (\CTAN{macros/latex/base/lppl.txt})
+% \item
+% Options |odd|, |even| added.
+% \item
+% \cmd{\nofiles} added, bug fix for \Package{hyperref}.
+% \item
+% Abort loading of package, if nothing to do.
+% \end{Version}
+% \begin{Version}{1999/04/13 v1.1}
+% \item
+% \cs{nofiles} bug fix removed
+% because of \xpackage{hyperref} 6.55.
+% \item
+% First CTAN release.
+% \end{Version}
+% \begin{Version}{2003/06/05 v1.2}
+% \item
+% \cs{deadcyles} is decremented for omitted pages.
+% \item
+% LPPL 1.2.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.3}
+% \item
+% Code is not changed.
+% \item
+% New DTX framework.
+% \item
+% LPPL 1.3
+% \end{Version}
+% \begin{Version}{2006/03/02 v1.4}
+% \item
+% Support for \cs{AtBeginDvi} added.
+% \end{Version}
+% \begin{Version}{2006/03/07 v1.5}
+% \item
+% Job is aborted after last selected page.
+% \end{Version}
+% \end{History}
+%
% \PrintIndex
%
% \Finale
diff --git a/Master/texmf-dist/source/latex/oberdiek/pagesel.ins b/Master/texmf-dist/source/latex/oberdiek/pagesel.ins
deleted file mode 100644
index 80816293660..00000000000
--- a/Master/texmf-dist/source/latex/oberdiek/pagesel.ins
+++ /dev/null
@@ -1,80 +0,0 @@
-% pagesel.ins
-%
-% 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>.
-%
-
-\def\batchfile{pagesel.ins}
-\input docstrip.tex
-{\ifx\generate\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.3c or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old `docstrip.tex'.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\keepsilent
-
-\preamble
-
-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>.
-
-\endpreamble
-
-\usedir{tex/latex/oberdiek}
-
-\generateFile{pagesel.sty}{f}{\from{pagesel.dtx}{package}}
-%\generateFile{pagesel.drv}{f}{\from{pagesel.dtx}{driver}}
-
-\Msg{***********************************************************}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space pagesel.sty}
-\Msg{*}
-\Msg{* To produce the documentation run the file `pagesel.dtx'}
-\Msg{* through LaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-
-\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/pdfcolmk.dtx b/Master/texmf-dist/source/latex/oberdiek/pdfcolmk.dtx
new file mode 100644
index 00000000000..e45960785fe
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/pdfcolmk.dtx
@@ -0,0 +1,859 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2000, 2005, 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file pdfcolmk.dtx
+% and the derived files
+% pdfcolmk.sty, pdfcolmk.pdf, pdfcolmk.ins, pdfcolmk.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/pdfcolmk.dtx
+% CTAN:macros/latex/contrib/oberdiek/pdfcolmk.pdf
+%
+% Unpacking:
+% (a) If pdfcolmk.ins is present:
+% tex pdfcolmk.ins
+% (b) Without pdfcolmk.ins:
+% tex pdfcolmk.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{pdfcolmk.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If pdfcolmk.drv is present:
+% latex pdfcolmk.drv
+% (b) Without pdfcolmk.drv:
+% latex pdfcolmk.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex pdfcolmk.dtx
+% makeindex -s gind.ist pdfcolmk.idx
+% pdflatex pdfcolmk.dtx
+% makeindex -s gind.ist pdfcolmk.idx
+% pdflatex pdfcolmk.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/pdfcolmk.sty
+% TDS:doc/latex/oberdiek/pdfcolmk.pdf
+% TDS:source/latex/oberdiek/pdfcolmk.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: pdfcolmk 2006/02/20 v0.8 PDFtex COLor MarK (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2000, 2005, 2006 by
+ Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file pdfcolmk.dtx
+and the derived files
+ pdfcolmk.sty, pdfcolmk.pdf, pdfcolmk.ins, pdfcolmk.drv.
+
+\endpreamble
+
+\generate{%
+ \file{pdfcolmk.ins}{\from{pdfcolmk.dtx}{install}}%
+ \file{pdfcolmk.drv}{\from{pdfcolmk.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{pdfcolmk.sty}{\from{pdfcolmk.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* pdfcolmk.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `pdfcolmk.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{pdfcolmk.drv}%
+ [2006/02/20 v0.8 PDFtex COLor MarK (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{pdfcolmk.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{820}
+%
+% \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 \~}
+%
+% \GetFileInfo{pdfcolmk.drv}
+%
+% \title{The \xpackage{pdfcolmk} package}
+% \date{2006/02/20 v0.8}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package tries a solution for the missing color
+% stack of \pdfTeX.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% \subsection{Background}
+%
+% After the Dante meeting (Clausthal 2000) I have started
+% to experiment with the eTeX method of a \emph{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.
+%
+% \subsection{Limitations}
+%
+% \begin{itemize}
+% \item Mark limitations: page breaks in math.
+% \item \LaTeX's output routine is redefinded.
+% \begin{itemize}
+% \item Changes in the output routine of newer versions
+% of LaTeX are not detected.
+% \item Packages that change the output routine are not
+% supported.
+% \end{itemize}
+% \item It does not support several independent text
+% streams like footnotes.
+% \item Limitations in float and marginpar support.
+% \end{itemize}
+%
+% \subsection{Recommendation}
+%
+% \eTeX\ (for additional mark register)
+% Without \eTeX\ \LaTeX's mark commands are redefined
+% to store an additional color value.
+%
+% \subsection{Usage}
+%
+% Load after package color:
+% \begin{quote}
+% |\usepackage[pdftex]{color}|\\
+% |\usepackage{pdfcolmk}|
+% \end{quote}
+%
+% \subsection{Compatibility}
+%
+% \begin{itemize}
+% \item Load the following packages after \xpackage{pdfcolmk}:
+% \begin{quote}
+% \xpackage{mparhack.sty}
+% \end{quote}
+% \item Load the following packages before \xpackage{pdfcolmk}:
+% \begin{quote}
+% \xpackage{marn.sty}\\
+% \xpackage{newmarn.sty}
+% \end{quote}
+% \item Supported \cs{@addmarginpar} patch:
+% \begin{quote}
+% \xpackage{latex/base/latex.ltx}\\
+% \xpackage{memoir.cls}\\
+% \xpackage{poemscol/marn.sty}, \xpackage{poemscol/newmarn.sty}\\
+% \xpackage{mparhack.sty}
+% \end{quote}
+% \item Unsupported \cs{@addmarginpar} patch:
+% \begin{quote}
+% \xpackage{lineno.sty}\\
+% \xpackage{sttools/marginal.sty}\\
+% \xpackage{revtex4.cls}
+% \end{quote}
+% \end{itemize}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pdfcolmk}%
+ [2006/02/20 v0.8 PDFtex COLor MarK (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@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
+% \end{macrocode}
+%
+% \subsection{\cs{marginpar} fix}
+%
+% \begin{macrocode}
+\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
+}
+% \end{macrocode}
+%
+% \subsubsection{latex/base/latex.ltx}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsubsection{memoir.cls}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsubsection{poemscol/marn.sty, poemscol/newmarn.sty}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsubsection{refman/refart.cls, refnam/refrep.cls}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsection{Color fix}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/pdfcolmk.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/pdfcolmk.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex pdfcolmk.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% pdfcolmk.sty & tex/latex/oberdiek/pdfcolmk.sty\\
+% pdfcolmk.pdf & doc/latex/oberdiek/pdfcolmk.pdf\\
+% pdfcolmk.dtx & source/latex/oberdiek/pdfcolmk.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk pdfcolmk.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{pdfcolmk.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex pdfcolmk.dtx
+%makeindex -s gind.ist pdfcolmk.idx
+%pdflatex pdfcolmk.dtx
+%makeindex -s gind.ist pdfcolmk.idx
+%pdflatex pdfcolmk.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2000/08/27 v0.1}
+% \item
+% First published version
+% (\xnewsgroup{comp.text.tex}, \texttt{pdftex@tug.org}).
+% \end{Version}
+% \begin{Version}{2000/09/02 v0.2}
+% \item
+% Next try.
+% \end{Version}
+% \begin{Version}{2000/09/02 v0.3}
+% \item
+% Solution without \eTeX\ added.
+% \end{Version}
+% \begin{Version}{2000/09/06 v0.4}
+% \item
+% Patch commands added.
+% \item
+% Patch for seminar.cls added.
+% \end{Version}
+% \begin{Version}{2000/09/06 v0.5}
+% \item
+% Bug fix: initialization of \cs{pec@value} added.
+% \end{Version}
+% \begin{Version}{2005/06/15 v0.6}
+% \item
+% Support for \marginpar added.
+% See thread in \xnewsgroup{comp.text.tex}
+% (Message-ID: \verb|d86d3r$kpv$1@news.BelWue.DE|).
+% \end{Version}
+% \begin{Version}{2005/07/09 v0.7}
+% \item
+% Output support added for \xpackage{memoir},
+% provided by Lars Madsen.
+% \end{Version}
+% \begin{Version}{2006/02/20 v0.8}
+% \item
+% Code is not changed.
+% \item
+% DTX framework.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/pdfcrypt.dtx b/Master/texmf-dist/source/latex/oberdiek/pdfcrypt.dtx
new file mode 100644
index 00000000000..01db98d2d55
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/pdfcrypt.dtx
@@ -0,0 +1,1042 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2001, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file pdfcrypt.dtx
+% and the derived files
+% pdfcrypt.sty, pdfcrypt.pdf, pdfcrypt.ins, pdfcrypt.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/pdfcrypt.dtx
+% CTAN:macros/latex/contrib/oberdiek/pdfcrypt.pdf
+%
+% Unpacking:
+% (a) If pdfcrypt.ins is present:
+% tex pdfcrypt.ins
+% (b) Without pdfcrypt.ins:
+% tex pdfcrypt.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{pdfcrypt.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If pdfcrypt.drv is present:
+% latex pdfcrypt.drv
+% (b) Without pdfcrypt.drv:
+% latex pdfcrypt.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex pdfcrypt.dtx
+% makeindex -s gind.ist pdfcrypt.idx
+% pdflatex pdfcrypt.dtx
+% makeindex -s gind.ist pdfcrypt.idx
+% pdflatex pdfcrypt.dtx
+%
+% Installation:
+% TDS:tex/generic/oberdiek/pdfcrypt.sty
+% TDS:doc/latex/oberdiek/pdfcrypt.pdf
+% TDS:source/latex/oberdiek/pdfcrypt.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: pdfcrypt 2006/02/20 v0.8 Setting pdf encryption (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2001, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file pdfcrypt.dtx
+and the derived files
+ pdfcrypt.sty, pdfcrypt.pdf, pdfcrypt.ins, pdfcrypt.drv.
+
+\endpreamble
+
+\generate{%
+ \file{pdfcrypt.ins}{\from{pdfcrypt.dtx}{install}}%
+ \file{pdfcrypt.drv}{\from{pdfcrypt.dtx}{driver}}%
+ \usedir{tex/generic/oberdiek}%
+ \file{pdfcrypt.sty}{\from{pdfcrypt.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* pdfcrypt.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `pdfcrypt.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{pdfcrypt.drv}%
+ [2006/02/20 v0.8 Setting pdf encryption (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{pdfcrypt.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{730}
+%
+% \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 \~}
+%
+% \GetFileInfo{pdfcrypt.drv}
+%
+% \title{The \xpackage{pdfcrypt} package}
+% \date{2006/02/20 v0.8}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package supports the setting of pdf encryption options
+% for \VTeX\ and some older versions of \pdfTeX.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% This package allows the setting of pdf encryption
+% options for
+% \begin{itemize}
+% \item
+% \VTeX, since version 7.35, \url{http://www.micropress-inc.com/}.
+% \item
+% \pdfTeX, patched by
+% \NameEmail{Ricardo Sanchez Carmenes}{carmenes@bioquimica.uniovi.es}.\\
+% Some supported versions are:
+% \begin{quote}
+% \pdfTeX-1.00a,\\
+% \pdfTeX-0.14h-pdfcrypt-20010310,\\
+% pdfcrypt-20010331
+% \end{quote}
+% \end{itemize}
+%
+% \noindent
+% \textcolor{red}{Note:} Since \pdfTeX-1.10a (2003-01-16) encryption
+% support was dropped! Thus the package is now obsolete for recent
+% \pdfTeX\ versions.
+%
+% \subsection{Alternatives}
+%
+% There are free alternatives, programs that can
+% be used for postprocessing the pdf file:
+% \begin{itemize}
+% \item \textsf{pdftk}\\
+% \url{http://www.accesspdf.com/pdftk/}
+% \item \textsf{Multivalent}\\
+% \url{http://multivalent.sourceforge.net/}
+% \item \textsf{PDFBox}\\
+% \url{http://www.pdfbox.org/}
+% \item \textsf{PDFTrans}\\
+% \url{http://maddingue.free.fr/softwares/pdftrans.html}
+% \item \dots
+% \end{itemize}
+%
+% \subsection{Usage}
+%
+% The options can be set as package options or
+% with the command \cs{pdfcryptsetup}:
+% \begin{quote}
+% |owner=|\meta{owner password}\\
+% |user=|\meta{user password}\\
+% |print|, |copy|, |edit|, |annotate=true|, |false|\\
+% |all|, |none|\\
+% |debug|
+% \end{quote}
+% The encryption is set at |\begin{document}| by default,
+% but this can be forced for an earlier time
+% using the option |set|.
+% Example:
+% \begin{quote}
+% |\usepackage[owner=Donald,user=Knuth,print=false]{pdfcrypt}|\\
+% \dots\\
+% |\begin{document}|
+% \end{quote}
+% or
+% \begin{quote}
+% |\usepackage{pdfcrypt}|\\
+% |\pdfcryptsetup{owner=Donald,user=Knut}|\\
+% |\pdfcryptsetup{print=false,set}|\\
+% \dots\\
+% |\begin{document}|
+% \end{quote}
+%
+% \subsubsection{Special characters}
+%
+% The characters `|{|', `|}|', and `|\|' have to be
+% escaped with `|\|'. Then the string should not
+% be specified as package option but with
+% the macro \cs{pdfcryptsetup}, eg:
+% \begin{quote}
+% |\pdfcryptsetup{user={\{\\Hello\}},print=false}|
+% \end{quote}
+% 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.
+%
+% \subsubsection{\cs{nopdfcrypt}}
+%
+% Often the whole process of pdf generation includes
+% several \TeX\ compilations and perhaps other
+% postprocessing steps. Therefore a feature would
+% be useful to disable the encryption stuff in order
+% to speed up the first compilations.
+% Therefore package \xpackage{pdfcrypt} will look for
+% the macro \cs{nopdfcrypt}. If it has the meaning of the
+% letter `|Y|', the package will be disabled.
+% Example:
+% \begin{quote}
+% |pdflatex '\let\nopdfcrypt=Y\input myfile'|\\
+% |thumbpdf myfile|\\
+% |pdfelatex myfile|
+% \end{quote}
+%
+% \subsubsection{Configuration file}
+%
+% If the file \xfile{pdfcrypt.cfg} exists it is loaded
+% and can be used for common settings.
+%
+% \subsubsection{Support for \plainTeX}
+%
+% The package can also be used with \plainTeX. It defines the
+% missing \LaTeX\ macros and loads package \xpackage{keyval}.
+% The configuration file is not supported and automatically
+% loaded.
+%
+% \subsection{Hints for \pdfTeX}
+%
+% This section is out of date, because the encryption support
+% was removed from \pdfTeX. Therefore this hints are of
+% historical interest only.
+%
+%\begin{verbatim}
+%* There are packages such as thumbpdf that ship out
+% some stuff (\immediate\pdfobj{...}). In these cases
+% \pdfcrypt will be ignored without warning or error
+% message. Therefore the 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.
+%\end{verbatim}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \subsection{Help macros for \plainTeX}
+%
+% \begin{macrocode}
+\expandafter\edef\csname pc@endinput\endcsname{%
+ \catcode`\noexpand\@=\the\catcode`\@\relax
+ \noexpand\endinput
+}
+\catcode`\@=11 %
+
+\expandafter\ifx\csname @firstoftwo\endcsname\relax
+ \long\def\@firstoftwo#1#2{#1}%
+\fi
+
+\expandafter\ifx\csname @secondoftwo\endcsname\relax
+ \long\def\@secondoftwo#1#2{#2}%
+\fi
+
+\expandafter\ifx\csname @ifundefined\endcsname\relax
+ \def\@ifundefined#1{%
+ \expandafter\ifx\csname #1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }%
+\fi
+
+\@ifundefined{@ifnextchar}{%
+ \long\def\@ifnextchar#1#2#3{%
+ \let\reserved@d=#1%
+ \def\reserved@a{#2}%
+ \def\reserved@b{#3}%
+ \futurelet\@let@token\@ifnch
+ }%
+ \def\@ifnch{%
+ \ifx\@let@token\@sptoken
+ \let\reserved@c\@xifnch
+ \else
+ \ifx\@let@token\reserved@d
+ \let\reserved@c\reserved@a
+ \else
+ \let\reserved@c\reserved@b
+ \fi
+ \fi
+ \reserved@c
+ }%
+ \begingroup
+ \def\:{\global\let\@sptoken= }%
+ \: %
+ \def\:{\@xifnch}%
+ \expandafter\gdef\: {\futurelet\@let@token\@ifnch}%
+ \endgroup
+}{}
+
+\@ifundefined{ProvidesPackage}{%
+ \def\ProvidesPackage#1{%
+ \@ifnextchar[{\pc@ProvidesPackage{#1}}
+ {\pc@ProvidesPackage{#1}[]}%
+ }%
+ \def\pc@ProvidesPackage#1[#2]{%
+ \immediate\write-1{Package: #1 #2}%
+ }%
+}{}
+
+\@ifundefined{PackageError}{%
+ \def\PackageError#1#2#3{%
+ \begingroup
+ \newlinechar=10 %
+ \errhelp{#3}%
+ \errmessage{%
+ \MessageBreak
+ Package #1 Error: #2.\MessageBreak
+ \MessageBreak
+ See the #1 package documentation for explanation.\MessageBreak
+ Type \space H <return> \space for immediate help%
+ }%
+ \endgroup
+ }%
+}{}
+
+\@ifundefined{PackageWarning}{%
+ \def\PackageWarning#1#2{%
+ \begingroup
+ \newlinechar=10 %
+ \def\MessageBreak{%
+ ^^J(#1)\@spaces\@spaces\@spaces\@spaces
+ }%
+ \immediate\write16{^^JPackage #1 Warning: #2\on@line.^^J}%
+ \endgroup
+ }%
+}{}
+
+\@ifundefined{PackageWarningNoLine}{%
+ \def\PackageWarningNoLine#1#2{%
+ \PackageWarning{#1}{#2\@gobble}%
+ }%
+}{}
+
+\@ifundefined{@gobble}{%
+ \long\def\@gobble#1{}%
+}{}
+
+\@ifundefined{on@line}{%
+ \def\on@line{ on input line \the\inputlineno}%
+}{}
+
+\@ifundefined{@empty}{%
+ \def\@empty{}%
+}{}
+% \end{macrocode}
+%
+% \subsection{Package Identification and checks}
+%
+% \begin{macrocode}
+\ProvidesPackage{pdfcrypt}%
+ [2006/02/20 v0.8 Setting pdf encryption (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@ifundefined{pdfcryptsetup}{%
+ \let\pdfcryptsetup\@gobble
+}{%
+ \PackageWarningNoLine{pdfcrypt}{Package pdfcrypt is already loaded}%
+ \pc@endinput
+}
+% \end{macrocode}
+% Support for \cs{nopdfcrypt}.
+% \begin{macrocode}
+\newif\ifpc@nopdfcrypt
+\ifx Y\nopdfcrypt
+ \PackageWarningNoLine{pdfcrypt}{%
+ Encryption disabled by \string \nopdfcrypt\space request%
+ }%
+ \global\pc@nopdfcrypttrue
+\fi
+% \end{macrocode}
+%
+% \subsection{Driver detection}
+%
+% \begin{macrocode}
+\let\pc@driver\@empty
+\begingroup
+ % pdfTeX detection
+ \@ifundefined{pdfoutput}{%
+ }{%
+ \ifcase\pdfoutput
+ \else
+ \@ifundefined{pdfcrypt}{%
+ \PackageError{pdfcrypt}{%
+ PDF encryption is not supported with this pdfTeX%
+ }{%
+ Encryption support was added in 0.14h (2001/03/10)\MessageBreak
+ and removed in 1.10a (2003/01/16).%
+ }%
+ \endgroup
+ \pc@endinput
+ }{%
+ \gdef\pc@driver{pdftex}%
+ }
+ \fi
+ }%
+ % VTeX detection
+ \@ifundefined{OpMode}{%
+ }{%
+ \ifnum\OpMode=1 %
+ \ifnum\@ifundefined{VTeXversion}0\VTeXversion<735 %
+ \PackageError{pdfcrypt}{%
+ PDF encryption is not supported with this VTeX%
+ }{%
+ You need VTeX 7.35 or higher.%
+ }%
+ \endgroup
+ \pc@endinput
+ \else
+ \gdef\pc@driver{vtex}%
+ \fi
+ \fi
+ }%
+\endgroup
+% \end{macrocode}
+%
+% \subsection{Load package \xpackage{keyval}}
+%
+% \begin{macrocode}
+\@ifundefined{@makeother}{%
+ \def\@makeother#1{\catcode`#1=12\relax}%
+}{}
+
+\@ifundefined{g@addto@macro}{%
+ \long\def\g@addto@macro#1#2{%
+ \begingroup
+ \toks@\expandafter{#1#2}%
+ \xdef#1{\the\toks@}%
+ \endgroup
+ }%
+}{}
+
+\@ifundefined{@namedef}{%
+ \def\@namedef#1{\expandafter\def\csname#1\endcsname}
+}{}
+
+\@ifundefined{@nameuse}{%
+ \def\@nameuse#1{\csname #1\endcsname}%
+}{}
+
+\@ifundefined{MessageBreak}{%
+ \def\MessageBreak{^^J}%
+}{}
+
+\@ifundefined{@ehc}{%
+ \def\@ehc{%
+ Try typing \space <return> \space to proceed.\MessageBreak
+ If that doesn't work, type \space X <return> \space
+ to quit.%
+ }%
+}{}
+
+\@ifundefined{PackageInfo}{%
+ \def\PackageInfo#1#2{%
+ \begingroup
+ \newlinechar=10 %
+ \def\MessageBreak{%
+ ^^J(#1) \space\@spaces\@spaces\@spaces
+ }%
+ \wlog{Package #1 Info: #2}%
+ \endgroup
+ }%
+}{}
+
+\@ifundefined{@spaces}{%
+ \def\@spaces{\space\space\space\space}%
+}{}
+
+\def\pc@KeyvalRestore{%
+ \let\pc@KeyvalRestore\@undefined
+}
+
+\let\pcOrg@NeedsTeXFormat\NeedsTeXFormat
+\@ifundefined{NeedsTeXFormat}{%
+ \def\NeedsTeXFormat#1{}%
+ \g@addto@macro\pc@KeyvalRestore{%
+ \let\NeedsTeXFormat\pcOrg@NeedsTeXFormat
+ }%
+}{}
+
+\let\pcOrg@DeclareOption\DeclareOption
+\@ifundefined{DeclareOption}{%
+ \def\DeclareOption#1#2{#2}%
+ \g@addto@macro\pc@KeyvalRestore{%
+ \let\DeclareOption\pcOrg@DeclareOption
+ }%
+}{}
+
+\let\pcOrg@ExecuteOptions\ExecuteOptions
+\@ifundefined{ExecuteOptions}{%
+ \def\ExecuteOptions#1{}%
+ \g@addto@macro\pc@KeyvalRestore{%
+ \let\ExecuteOptions\pcOrg@ExecuteOptions
+ }%
+}{}
+
+\let\pcOrg@ProcessOptions\ProcessOptions
+\@ifundefined{ProcessOptions}{%
+ \def\ProcessOptions{}%
+ \g@addto@macro\pc@KeyvalRestore{%
+ \let\ProcessOptions\pcOrg@ProcessOptions
+ }%
+}{}%
+
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname RequirePackage\endcsname\relax
+ \input keyval.sty
+\else
+ \RequirePackage{keyval}
+\fi
+\pc@KeyvalRestore
+% \end{macrocode}
+%
+% \subsection{Define options}
+%
+% \begin{macrocode}
+\@ifundefined{@dblarg}{%
+ \long\def\@dblarg#1{\@ifnextchar[{#1}{\@xdblarg{#1}}}
+ \long\def\@xdblarg#1#2{#1[{#2}]{#2}}
+}{}
+
+\newif\ifpc@set
+\newif\ifpc@print
+\newif\ifpc@copy
+\newif\ifpc@edit
+\newif\ifpc@annotate
+\newif\ifpc@debug
+\let\pc@owner\@empty
+\let\pc@user\@empty
+
+% 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
+ \ifpc@nopdfcrypt
+ Encryption is disabled by `\string\nopdfcrypt'%
+ \else
+ Encryption is set for `\pc@driver'%
+ \fi
+ }
+ \ifpc@nopdfcrypt
+ \else
+ \@ifundefined{pc@set@\pc@driver}{%
+ \ifx\pc@driver\@empty
+ \PackageError{pdfcrypt}{No driver for encryption %
+ support found}\@ehc
+ \else
+ \PackageError{pdfcrypt}{Cannot set encryption for %
+ unknown driver `\pc@driver'}\@ehc
+ \fi
+ }{%
+ \@nameuse{pc@set@\pc@driver}%
+ }%
+ \fi
+}
+\def\pc@set@pdftex{%
+ \ifnum\pdftexversion<100 %
+ \pc@set@pdftexold
+ \else
+ \pc@set@pdftexnew
+ \fi
+}
+\def\pc@set@pdftexold{%
+ \pdfcrypt{%
+ owner "\pc@owner"
+ user "\pc@user"
+ \ifpc@print \else no\fi print
+ \ifpc@copy \else no\fi copy
+ \ifpc@edit \else no\fi edit
+ \ifpc@annotate\else no\fi annotate%
+ }%
+}
+\def\pc@set@pdftexnew{%
+ \pdfcrypt
+ owner{\pc@owner}%
+ user{\pc@user}%
+ \ifpc@print \else no\fi print
+ \ifpc@copy \else no\fi copy
+ \ifpc@edit \else no\fi edit
+ \ifpc@annotate\else no\fi annotate%
+ \relax
+}
+\def\pc@set@vtex{%
+ \immediate\special{!security %
+ O=\pc@MakeVTeXString\pc@owner,%
+ U=\pc@MakeVTeXString\pc@user,%
+ P\ifpc@print +\else -\fi,%
+ C\ifpc@copy +\else -\fi,%
+ M\ifpc@edit +\else -\fi,%
+ A\ifpc@annotate +\else -\fi
+ }%
+}
+\def\pc@MakeVTeXString#1{%
+ "\expandafter\pc@@MakeVTeXString#1"\@nil"%
+}
+\def\pc@@MakeVTeXString#1"#2\@nil{%
+ #1%
+ \ifx\\#2\\%
+ \else
+ ""%
+ \@ReturnAfterFi{%
+ \pc@@MakeVTeXString#2\@nil
+ }%
+ \fi
+}
+\long\def\@ReturnAfterFi#1\fi{\fi#1}
+\pc@temp
+
+\begingroup
+ \catcode`\ =12 \gdef\pc@spaceother{ }\catcode`\ =10\relax
+ \catcode`\|=0 %
+ \catcode`\\=12 %
+ |gdef|pc@DefString#1#2{%
+ |def#1{#2}%
+ |edef#1{|expandafter|strip@prefix|meaning#1}%
+ |edef#1{|expandafter|pc@SpaceToOther#1 |@nil}%
+ |edef#1{|expandafter|pc@EscapeRemove#1|@empty\|@empty|@nil}%
+ }
+ |gdef|pc@EscapeRemove#1\#2#3|@nil{%
+ #1#2%
+ |ifx|\#3|\%
+ |else
+ |@ReturnAfterFi{%
+ |pc@EscapeRemove#3|@nil
+ }%
+ |fi
+ }
+|endgroup
+\def\pc@SpaceToOther#1 #2\@nil{%
+ #1%
+ \ifx\\#2\\%
+ \else
+ \pc@spaceother
+ \@ReturnAfterFi{%
+ \pc@SpaceToOther#2\@nil
+ }%
+ \fi
+}
+
+\def\pc@boolkey{\@dblarg\pc@@boolkey}
+\def\pc@@boolkey[#1]#2#3{%
+ \lowercase{\def\pc@temp{#3}}%
+ \ifx\pc@temp\@empty
+ \let\pc@temp\pc@true
+ \fi
+ \ifx\pc@temp\pc@true
+ \else
+ \ifx\pc@temp\pc@false
+ \else
+ \let\pc@temp\relax
+ \fi
+ \fi
+ \ifx\pc@temp\relax
+ \PackageWarning{pdfcrypt}{%
+ Unexpected value \string`#3\string' of
+ option \string`#2\string'\MessageBreak
+ instead of
+ \string`true\string' or \string`false\string'%
+ }%
+ \else
+ \csname pc@#2\pc@temp\endcsname
+ \fi
+}
+\def\pc@true{true}
+\def\pc@false{false}
+
+\define@key{pc}{set}[true]{%
+ \pc@boolkey{set}{#1}%
+}
+\define@key{pc}{pdftex}[]{%
+ \def\pc@driver{pdftex}%
+}
+\define@key{pc}{vtex}[]{%
+ \def\pc@driver{vtex}%
+}
+\define@key{pc}{print}[true]{%
+ \pc@boolkey{print}{#1}%
+}
+\define@key{pc}{copy}[true]{%
+ \pc@boolkey{copy}{#1}%
+}
+\define@key{pc}{edit}[true]{%
+ \pc@boolkey{edit}{#1}%
+}
+\define@key{pc}{annotate}[true]{%
+ \pc@boolkey{annotate}{#1}%
+}
+\define@key{pc}{all}[]{%
+ \pc@boolkey{print}{true}%
+ \pc@boolkey{copy}{true}%
+ \pc@boolkey{edit}{true}%
+ \pc@boolkey{annotate}{true}%
+}
+\define@key{pc}{none}[]{%
+ \pc@boolkey{print}{false}%
+ \pc@boolkey{copy}{false}%
+ \pc@boolkey{edit}{false}%
+ \pc@boolkey{annotate}{false}%
+}
+
+\define@key{pc}{owner}{%
+ \pc@DefString\pc@owner{#1}%
+}
+\define@key{pc}{user}{%
+ \pc@DefString\pc@user{#1}%
+}
+\define@key{pc}{debug}[true]{%
+ \pc@boolkey{debug}{#1}%
+}
+
+\def\pdfcryptsetup#1{%
+ \setkeys{pc}{#1}%
+ \ifpc@set
+ \pc@set
+ \global\let\pc@set\relax
+ \gdef\pdfcryptsetup##1{%
+ \PackageWarning{pdfcrypt}{%
+ Encryption options are already set\MessageBreak
+ new values are ignored%
+ }%
+ }%
+ \fi
+}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname @onlypreamble\endcsname\relax
+\else
+ \@onlypreamble\pdfcryptsetup
+\fi
+% \end{macrocode}
+%
+% \subsection{support of configuration file}
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname InputIfFileExists\endcsname\relax
+ \PackageInfo{pdfcrypt}{%
+ Configuration file pdfcrypt.cfg not supported.%
+ }%
+\else
+ \let\pc@ExecuteOptions\ExecuteOptions
+ \InputIfFileExists{pdfcrypt.cfg}{}{}
+ \let\ExecuteOptions\pc@ExecuteOptions
+\fi
+% \end{macrocode}
+%
+% \subsection{Package options}
+%
+% Plain format does not know package options.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname @classoptionslist\endcsname\relax
+ \expandafter\pc@endinput
+\fi
+% \end{macrocode}
+% Process global and local options.
+% \begin{macrocode}
+\def\pc@ProcessOptionsWithKV{%
+ \let\pc@temp\@empty
+ \@for\CurrentOption:=\@classoptionslist\do{%
+ \@ifundefined{KV@pc@\CurrentOption}{}{%
+ \edef\pc@temp{\pc@temp,\CurrentOption,}%
+ \@expandtwoargs\@removeelement\CurrentOption
+ \@unusedoptionlist\@unusedoptionlist
+ }%
+ }%
+ \edef\pc@temp{%
+ \noexpand\pdfcryptsetup{%
+ \pc@temp\@ptionlist{\@currname.\@currext}%
+ }%
+ }%
+ \pc@temp
+}
+\pc@ProcessOptionsWithKV
+\AtEndOfPackage{\let\@unprocessedoptions\relax}
+\AtBeginDocument{\pc@set}
+
+\pc@endinput
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/pdfcrypt.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/pdfcrypt.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex pdfcrypt.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% pdfcrypt.sty & tex/generic/oberdiek/pdfcrypt.sty\\
+% pdfcrypt.pdf & doc/latex/oberdiek/pdfcrypt.pdf\\
+% pdfcrypt.dtx & source/latex/oberdiek/pdfcrypt.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk pdfcrypt.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{pdfcrypt.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex pdfcrypt.dtx
+%makeindex -s gind.ist pdfcrypt.idx
+%pdflatex pdfcrypt.dtx
+%makeindex -s gind.ist pdfcrypt.idx
+%pdflatex pdfcrypt.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2001/04/02 v0.1}
+% \item
+% First public version, published in the pdftex
+% mailing list for testing with pdfcrypt-20010331
+% \end{Version}
+% \begin{Version}{2001/07/19 v0.2}
+% \item
+% Default: all allowed.
+% \item
+% Support for \VTeX\ added.
+% \end{Version}
+% \begin{Version}{2001/07/19 v0.3}
+% \item
+% Bug fix: \VTeX\ letter for edit is M (modify).
+% \end{Version}
+% \begin{Version}{2001/07/19 v0.4}
+% \item
+% Bug fix: \cs{VTeXversion} is correct after
+% regenerating the format file.
+% \end{Version}
+% \begin{Version}{2001/08/05 v0.5}
+% \item
+% Syntax change in \pdfTeX\ 1.00a.
+% \end{Version}
+% \begin{Version}{2001/08/09 v0.6}
+% \item
+% Support of special characters:\\
+% input: |\{|, |\}|, |\\| for |{|, |}|, |\|\\
+% output: |"| in \VTeX
+% \item
+% Option debug added.
+% \end{Version}
+% \begin{Version}{2001/10/28 v0.7}
+% \item
+% Plain compatibility.
+% \item
+% \cs{nopdfcrypt} added.
+% \item
+% Typos corrected.
+% \end{Version}
+% \begin{Version}{2006/02/20 v0.8}
+% \item
+% Obsolete remarks for \pdfTeX.
+% \item
+% DTX framework.
+% \item
+% LPPL 1.3
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/pdflscape.dtx b/Master/texmf-dist/source/latex/oberdiek/pdflscape.dtx
new file mode 100644
index 00000000000..d1bb8fde9c6
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/pdflscape.dtx
@@ -0,0 +1,668 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2001, 2004, 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file pdflscape.dtx
+% and the derived files
+% pdflscape.sty, pdflscape.pdf, pdflscape.ins, pdflscape.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/pdflscape.dtx
+% CTAN:macros/latex/contrib/oberdiek/pdflscape.pdf
+%
+% Unpacking:
+% (a) If pdflscape.ins is present:
+% tex pdflscape.ins
+% (b) Without pdflscape.ins:
+% tex pdflscape.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{pdflscape.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If pdflscape.drv is present:
+% latex pdflscape.drv
+% (b) Without pdflscape.drv:
+% latex pdflscape.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex pdflscape.dtx
+% makeindex -s gind.ist pdflscape.idx
+% pdflatex pdflscape.dtx
+% makeindex -s gind.ist pdflscape.idx
+% pdflatex pdflscape.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/pdflscape.sty
+% TDS:doc/latex/oberdiek/pdflscape.pdf
+% TDS:source/latex/oberdiek/pdflscape.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: pdflscape 2006/04/24 v0.6 Landscape pages in PDF (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2001, 2004, 2006 by
+ Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file pdflscape.dtx
+and the derived files
+ pdflscape.sty, pdflscape.pdf, pdflscape.ins, pdflscape.drv.
+
+\endpreamble
+
+\generate{%
+ \file{pdflscape.ins}{\from{pdflscape.dtx}{install}}%
+ \file{pdflscape.drv}{\from{pdflscape.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{pdflscape.sty}{\from{pdflscape.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* pdflscape.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `pdflscape.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{pdflscape.drv}%
+ [2006/04/24 v0.6 Landscape pages in PDF (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{pdflscape.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{344}
+%
+% \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 \~}
+%
+% \GetFileInfo{pdflscape.drv}
+%
+% \title{The \xpackage{pdflscape} package}
+% \date{2006/04/24 v0.6}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{pdflscape} adds PDF support to the
+% environment \texttt{landscape} of package \xpackage{lscape}
+% by setting the PDF page attribute \texttt{/Rotate}.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% \subsection{Supported drivers}
+%
+% \begin{itemize}
+% \item \xoption{pdftex}
+% \item \xoption{dvips}, \xoption{dvipsone},
+% \xoption{pctex32}, \xoption{pctexps}
+% (and other drivers that provide a non-empty \cs{Gin@PS@raw})
+% \item \xoption{dvipdfm}
+% \end{itemize}
+%
+% \subsection{Caveat}
+%
+% Depending on the configuration Ghostscript
+% adds a guessed rotation entry by its own.
+% This can lead to two |/Rotate| entries per page.
+% To prevent this behaviour set the parameter
+% |AutoRotatePages| to |/None|, eg:
+% \begin{quote}
+% |ps2pdf -dAutoRotatePages=/None|
+% \end{quote}
+%
+% \subsection{Requirements}
+%
+% \begin{itemize}
+% \item The package \xpackage{lscape}.
+% \item The package \xpackage{everyshi} for all drivers
+% except \xoption{pdftex}.
+% \end{itemize}
+%
+% \subsection{Usage}
+%
+% Load this package instead of or after package \xpackage{lscape}:
+% \begin{quote}
+% |\usepackage{pdflscape}|\\
+% |\begin{landscape}|\dots|\end{landscape}|
+% \end{quote}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Package identification}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pdflscape}%
+ [2006/04/24 v0.6 Landscape pages in PDF (HO)]
+% \end{macrocode}
+%
+% \subsection{Driver options}
+%
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+%
+% \subsection{Autodetection of driver}
+%
+% \subsubsection{Driver \xoption{pdftex}}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsubsection{Driver \xoption{dvips}}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsubsection{Driver \xoption{dvipdfm}}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsection{Driver implementation}
+%
+% \begin{itemize}
+% \item |\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.
+% \item |\PLS@RemoveRotate|\\
+% it removes a previous |/Rotate| entry, if necessary.
+% \end{itemize}
+%
+% \subsubsection{\pdfTeX}
+%
+% Not too nice is the global setting of \cs{pdfpageattr}.
+% Perhaps this can be changed in future versions.
+%
+% \begin{macrocode}
+\def\PLS@temp{pdftex}
+\ifx\PLS@temp\PLS@driver
+ \def\PLS@AddRotate#1{%
+ \ifnum#1=0
+% \end{macrocode}
+% Already the default.
+% \begin{macrocode}
+ \else
+ \global\pdfpageattr\expandafter{%
+ \the\pdfpageattr
+ /Rotate #1%
+ }%
+ \fi
+ }
+% \end{macrocode}
+% Removes a |/Rotate| entry.
+% \begin{macrocode}
+ \def\PLS@RemoveRotate{%
+ \begingroup
+ \global\pdfpageattr\expandafter{\expandafter}%
+ \expandafter\PLS@@RemoveRotate
+ \the\pdfpageattr /Rotate\@nil
+ \endgroup
+ }
+ \def\PLS@@RemoveRotate#1/Rotate#2\@nil{%
+% \end{macrocode}
+% Append |/Rotate| free stuff to \cs{pdfpageattr}.
+% \begin{macrocode}
+ \global\pdfpageattr\expandafter{\the\pdfpageattr#1}%
+ \ifx\\#2\\%
+% \end{macrocode}
+% Ready, because the detected |/Rotate| is part of
+% the end marker: |/Rotate\@nil|
+% \begin{macrocode}
+ \else
+% \end{macrocode}
+% First read in the argument of |/Rotate|,
+% then continue parsing.
+% \begin{macrocode}
+ \afterassignment\PLS@@RemoveRotate
+ \count0=#2\@nil
+ \fi
+ }
+\fi
+% \end{macrocode}
+%
+% \subsubsection{PostScript driver}
+%
+% \begin{macrocode}
+\def\PLS@temp{dvips}
+\ifx\PLS@temp\PLS@driver
+ \RequirePackage{everyshi}%
+ \EveryShipout{\PLS@EveryShi}%
+ \let\PLS@EveryShi\@empty
+ \def\PLS@AddRotate#1{%
+ \ifnum#1=0
+ \else
+ \def\PLS@EveryShi{%
+ \global\setbox\@cclv\vbox{%
+ \Gin@PS@raw{%
+ [{ThisPage}\string<\string</Rotate #1\string>\string>%
+ /PUT pdfmark%
+ }%
+ \box\@cclv
+ }%
+ }%
+ \fi
+ }%
+ \def\PLS@RemoveRotate{\let\PLS@EveryShi\@empty}%
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Driver dvipdfm}
+%
+% \begin{macrocode}
+\def\PLS@temp{dvipdfm}
+\ifx\PLS@temp\PLS@driver
+ \RequirePackage{everyshi}%
+ \EveryShipout{\PLS@EveryShi}%
+ \let\PLS@EveryShi\@empty
+ \def\PLS@AddRotate#1{%
+ \ifnum#1=0
+ \else
+ \def\PLS@EveryShi{%
+ \global\setbox\@cclv\vbox{%
+ \special{pdf: put @thispage << /Rotate #1 >>}%
+ \box\@cclv
+ }%
+ }%
+ \fi
+ }%
+ \def\PLS@RemoveRotate{\let\PLS@EveryShi\@empty}%
+\fi
+% \end{macrocode}
+%
+% \subsection{Driver independent stuff}
+%
+% The landscape environment is extended by
+% adding the correct |/Rotate| entries.
+% \begin{macrocode}
+\g@addto@macro{\landscape}{\PLS@Rotate{90}}
+\g@addto@macro{\endlandscape}{\PLS@Rotate{0}}
+% \end{macrocode}
+%
+% \begin{macro}{\PLS@Rotate}
+% Main macro, that sets the |/Rotate| entry.\\
+% Argument: any TeX number or nothing, that means zero.\\
+% Driver independent.
+% \begin{macrocode}
+\def\PLS@Rotate#1{%
+ \begingroup
+% \end{macrocode}
+% 1. Check and validate the argument.
+% \begin{macrocode}
+ \PLS@CheckAngle{#1}%
+ \expandafter\endgroup
+% \end{macrocode}
+% 2. Remove previous |\Rotate| entry.
+% \begin{macrocode}
+ \expandafter\PLS@RemoveRotate
+% \end{macrocode}
+% 3. Add |/Rotate| entry.
+% \begin{macrocode}
+ \expandafter\PLS@AddRotate\expandafter{\the\count@}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PLS@CheckAngle}
+% Validates the rotation angle.\\
+% The result is stored in the count register |\count@|.\\
+% Driver independent.
+% \begin{macrocode}
+\def\PLS@CheckAngle#1{%
+% \end{macrocode}
+% Nothing means zero:
+% \begin{macrocode}
+ \ifx\\#1\\%
+ \count@=0
+ \else
+ \count@=#1\relax
+ \fi
+% \end{macrocode}
+% Normalise to interval -360 $<$ |\count@| $<$ 360.
+% \begin{macrocode}
+ \@whilenum\count@>359\do{\addtocounter\count@ -360 }%
+ \@whilenum\count@<-359\do{\addtocounter\count@ 360 }%
+% \end{macrocode}
+% Check values: 0, +/-90, +/-180, +/-270
+% \begin{macrocode}
+ \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
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/pdflscape.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/pdflscape.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex pdflscape.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% pdflscape.sty & tex/latex/oberdiek/pdflscape.sty\\
+% pdflscape.pdf & doc/latex/oberdiek/pdflscape.pdf\\
+% pdflscape.dtx & source/latex/oberdiek/pdflscape.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk pdflscape.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{pdflscape.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex pdflscape.dtx
+%makeindex -s gind.ist pdflscape.idx
+%pdflatex pdflscape.dtx
+%makeindex -s gind.ist pdflscape.idx
+%pdflatex pdflscape.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2001/01/15 v0.1}
+% \item
+% First public version,
+% published in \xnewsgroup{de.comp.text.tex}.
+% \end{Version}
+% \begin{Version}{2001/02/04 v0.2}
+% \item
+% Minor documentation update.
+% \item
+% CTAN.
+% \end{Version}
+% \begin{Version}{2004/05/11 v0.3}
+% \item
+% Support for dvipdfm added.
+% \end{Version}
+% \begin{Version}{2004/05/12 v0.4}
+% \item
+% Bug fix: support for multipage landscape environment
+% for all drivers except for \xoption{pdftex}.
+% \end{Version}
+% \begin{Version}{2006/02/20 v0.5}
+% \item
+% DTX framework.
+% \item
+% LPPL 1.3
+% \item
+% Code is not changed.
+% \end{Version}
+% \begin{Version}{2006/04/24 v0.6}
+% \item
+% Bug fix: \cs{PLS@RemoveRotate} reinserted for \cs{PLS@Rotate}.
+% \item
+% Fix for \cs{PLS@RemoveRotate} (dvips/dvipdfm): \cs{PLS@EverhShi}
+% hook is cleared.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/picture.dtx b/Master/texmf-dist/source/latex/oberdiek/picture.dtx
new file mode 100644
index 00000000000..c7d36515afc
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/picture.dtx
@@ -0,0 +1,626 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file picture.dtx
+% and the derived files
+% picture.sty, picture.pdf, picture.ins, picture.drv,
+% picture-example.tex.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/picture.dtx
+% CTAN:macros/latex/contrib/oberdiek/picture.pdf
+%
+% Unpacking:
+% (a) If picture.ins is present:
+% tex picture.ins
+% (b) Without picture.ins:
+% tex picture.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{picture.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If picture.drv is present:
+% latex picture.drv
+% (b) Without picture.drv:
+% latex picture.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex picture.dtx
+% makeindex -s gind.ist picture.idx
+% pdflatex picture.dtx
+% makeindex -s gind.ist picture.idx
+% pdflatex picture.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/picture.sty
+% TDS:doc/latex/oberdiek/picture.pdf
+% TDS:doc/latex/oberdiek/picture-example.tex
+% TDS:source/latex/oberdiek/picture.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: picture 2006/08/26 v1.0 Dimens for picture macros (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file picture.dtx
+and the derived files
+ picture.sty, picture.pdf, picture.ins, picture.drv,
+ picture-example.tex.
+
+\endpreamble
+
+\generate{%
+ \file{picture.ins}{\from{picture.dtx}{install}}%
+ \file{picture.drv}{\from{picture.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{picture.sty}{\from{picture.dtx}{package}}%
+ \usedir{doc/latex/oberdiek}%
+ \file{picture-example.tex}{\from{picture.dtx}{example}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* picture.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `picture.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{picture.drv}%
+ [2006/08/26 v1.0 Dimens for picture macros (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{picture.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{294}
+%
+% \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 \~}
+%
+% \GetFileInfo{picture.drv}
+%
+% \title{The \xpackage{picture} package}
+% \date{2006/08/26 v1.0}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% There are macro and environment arguments that expect numbers
+% that will internally be multiplicated with \cs{unitlength}.
+% This package extends the syntax of these arguments that
+% dimens with calculation support can be added for these arguments.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{User interface}
+%
+% \subsection{Introduction}
+%
+% The environment |picture| and macros such as \cs{put}, \cs{line},
+% \cs{vector} and other macros have arguments that expect numbers
+% that are used as factor for \cs{unitlength}.
+% This package redefines such macros and adds code that detects
+% whether such an argument is given as number or as length.
+% In the latter case, the length is used directly without multiplying
+% with \cs{unitlength}.
+%
+% \subsection{Options}
+%
+% Depending on the available features, also length expressions
+% can be given. Option \xoption{calc} loads package \xpackage{calc}.
+% Then expressions of these package may be used.
+% Otherwise \xoption{etex} wraps the length argument inside
+% \cs{dimexpr}\dots\cs{relax}, if \eTeX\ is available. Otherwise
+% option \xoption{plain} uses plain assignments without calculation
+% support.
+%
+% The default is \xoption{calc} if package \xpackage{calc}
+% is loaded before package \xoption{picture}. If you specify
+% option \xoption{calc} the loading of \xpackage{calc} is ensured.
+% Otherwise package \xpackage{picture} looks whether \cs{dimexpr}
+% is available and uses then option \xoption{etex} as default.
+% If \eTeX\ also could not be found, then \xoption{plain} is used.
+%
+% \subsection{Example}
+%
+% \begin{macrocode}
+%<*example>
+\documentclass{article}
+
+\usepackage[calc]{picture}
+
+\begin{document}
+
+\setlength{\unitlength}{1pt}
+
+\begin{picture}(\widthof{Hello World}, 10mm)
+ \put(0, 0){\makebox(0,0)[lb]{Hello World}}
+ \put(0, \heightof{Hello World} + \fboxsep){%
+ \line(1, 0){\widthof{Hello World}}%
+ }
+ \put(\widthof{Hello World}, 10mm){%
+ \line(0, -1){10mm}%
+ }
+\end{picture}%
+
+\end{document}
+%</example>
+% \end{macrocode}
+%
+% \subsection{Supported packages}
+%
+% Package \xpackage{pspicture} is supported, but it must be loaded
+% before package \xpackage{picture}.
+%
+% New macros can be supported by \cs{picture@redefine}.
+% The first argument is the macro which contains the arguments
+% in its parameter text that you want to support by package \xpackage{picture}.
+% The second argument contains the parameter text. Change \# to \& for
+% the arguments in question.
+% Examples (already used by package \xpackage{picture}):
+% \begin{quote}
+% |\picture@redefine\put{(&1,&2)}|\\
+% |\picture@redefine\line{(#1,#2)&3}|
+% \end{quote}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Identification}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{picture}%
+ [2006/08/26 v1.0 Dimens for picture macros (HO)]
+% \end{macrocode}
+%
+% \subsection{Options}
+%
+% \begin{macrocode}
+\def\Pc@calcname{calc}
+\def\Pc@etexname{etex}
+\def\Pc@plainname{plain}
+% \end{macrocode}
+% \begin{macro}{\Pc@method}
+% Macro \cs{Pc@method} stores the method to use for calculations.
+% Check which features are available and set the default for \cs{Pc@method}.
+% \begin{macrocode}
+\@ifpackageloaded{calc}{%
+ \let\Pc@method\Pc@calcname
+}{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname dimexpr\endcsname\relax
+ \let\Pc@method\Pc@plainname
+ \else
+ \let\Pc@method\Pc@etexname
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\DeclareOption{plain}{%
+ \let\Pc@method\Pc@plainname
+}
+\DeclareOption{etex}{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname dimexpr\endcsname\relax
+ \PackageError{picture}{%
+ e-TeX is not available%
+ }\@ehc
+ \else
+ \let\Pc@method\Pc@etexname
+ \fi
+}
+\DeclareOption{calc}{%
+ \let\Pc@method\Pc@calcname
+}
+\ProcessOptions*
+\begingroup
+ \let\on@line\@empty
+ \PackageInfo{picture}{Calculation method: \Pc@method}
+\endgroup
+% \end{macrocode}
+%
+% \subsection{Calculation method}
+%
+% \begin{macrocode}
+\ifx\Pc@method\Pc@calcname
+ \RequirePackage{calc}%
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Method \xoption{calc}}
+%
+% \begin{macrocode}
+\ifx\Pc@method\Pc@calcname
+ \def\Pc@tokslength#1{%
+ \begingroup
+ \let\calc@error\Pc@calc@error
+ \setlength\dimen@{#1\unitlength}\Pc@next\Pc@nil{#1}%
+ }%
+ \let\PcOrg@calc@error\calc@error
+ \def\Pc@calc@error#1{%
+ \expandafter\ifx\expandafter\unitlength\noexpand#1\relax
+ \def\calc@next##1!{%
+ \endgroup
+ \aftergroup\afterassignment
+ \aftergroup\Pc@next
+ }%
+ \else
+ \@ReturnAfterFi{%
+ \PcOrg@calc@error{#1}%
+ }%
+ \fi
+ }%
+ \expandafter\@firstofone
+\else
+ \expandafter\@gobble
+\fi
+{%
+ \long\def\@ReturnAfterFi#1\fi{\fi#1}%
+}
+% \end{macrocode}
+%
+% \subsubsection{Method \xoption{etex}}
+%
+% \begin{macrocode}
+\ifx\Pc@method\Pc@etexname
+ \def\Pc@tokslength#1{%
+ \begingroup
+ \afterassignment\Pc@next
+ \dimen@=\dimexpr#1\unitlength\Pc@nil{#1}%
+ }%
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Method \xoption{plain}}
+%
+% \begin{macrocode}
+\ifx\Pc@method\Pc@plainname
+ \def\Pc@tokslength#1{%
+ \begingroup
+ \afterassignment\Pc@next
+ \dimen@=#1\unitlength\Pc@nil{#1}%
+ }%
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Help macros}
+%
+% \begin{macrocode}
+\def\Pc@next#1\Pc@nil#2{%
+ \ifx\\#1\\%
+ \endgroup
+ \Pc@addtoks{{#2}}%
+ \else
+ \expandafter\endgroup
+ \expandafter\Pc@addtoks\expandafter{%
+ \expandafter{\the\dimen@\@gobble}%
+ }%
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{\Pc@nil}
+% \cs{Pc@nil} must not have the meaning of \cs{relax} because of
+% \cs{dimexpr}.
+% \begin{macrocode}
+\let\Pc@nil\message
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Pc@addtoks}
+% \begin{macrocode}
+\def\Pc@addtoks#1{%
+ \toks@=\expandafter{\the\toks@#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Pc@init}
+% \begin{macrocode}
+\def\Pc@init#1{%
+ \begingroup
+ \toks@={#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Pc@finish}
+% \begin{macrocode}
+\def\Pc@finish#1{%
+ \expandafter\endgroup
+ \expandafter#1\the\toks@
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Redefinitions}
+%
+% \begin{macro}{\picture@redefine}
+% \begin{tabular}[t]{@{}l@{ }l@{}}
+% |#1|:& command name\\
+% |#2|:& parameter text, length parameter with \& instead of \#
+% \end{tabular}
+% \begin{macrocode}
+\def\picture@redefine#1#2{%
+ \begingroup
+ \edef\reserved@a{%
+ \noexpand\noexpand
+ \expandafter\noexpand
+ \csname PcOrg@\expandafter\@gobble\string#1\endcsname
+ }%
+ \toks0{#1}%
+ \Pc@first#2&0%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Pc@first}
+% \begin{macrocode}
+\def\Pc@first#1&{%
+ \toks1={#1}%
+ \toks2={\Pc@init{#1}}%
+ \Pc@scanlength
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Pc@scanlength}
+% |#1|: number of length parameter or zero
+% \begin{macrocode}
+\def\Pc@scanlength#1{%
+ \ifcase#1 %
+ \expandafter\Pc@last
+ \else
+ \toks1=\expandafter{\the\toks1 ###1}%
+ \toks2=\expandafter{\the\toks2 \Pc@tokslength{###1}}%
+ \expandafter\Pc@scannext
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Pc@scannext}
+% \begin{macrocode}
+\def\Pc@scannext#1&{%
+ \ifx\\#1\\%
+ \else
+ \toks1=\expandafter{\the\toks1 #1}%
+ \toks2=\expandafter{\the\toks2 \Pc@addtoks{#1}}%
+ \fi
+ \Pc@scanlength
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Pc@last}
+% \begin{macrocode}
+\def\Pc@last{%
+ \edef\x{%
+ \endgroup
+ \let\reserved@a\the\toks0 %
+ \def\the\toks0 \the\toks1 {%
+ \the\toks2 %
+ \noexpand\Pc@finish\reserved@a
+ }%
+ }%
+ \x
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{\LaTeX\ base macros}
+%
+% \begin{macrocode}
+\picture@redefine\@picture{(&1,&2)(&3,&4)}
+\picture@redefine\put{(&1,&2)}
+\picture@redefine\multiput{(&1,&2)}
+\picture@redefine\@multiput{(&1,&2)}
+\picture@redefine\line{(#1,#2)&3}
+\picture@redefine\vector{(#1,#2)&3}
+\picture@redefine\dashbox{&1(&2,&3)}
+\picture@redefine\@circle{&1}
+\picture@redefine\@dot{&1}
+\picture@redefine\@bezier{#1(&2,&3)(&4,&5)(&6,&7)}
+\picture@redefine\@imakepicbox{(&1,&2)}
+% \end{macrocode}
+%
+% \subsubsection{Package \xpackage{pspicture}}
+%
+% Package \xpackage{pspicture} changes the signature of \cs{@oval}
+% by adding an optional argument.
+% \begin{macrocode}
+\@ifpackageloaded{pspicture}{%
+ \picture@redefine\@oval{[&1](&2,&3)}
+ \picture@redefine\Line{(&1,&2)}
+ \picture@redefine\Curve{(&1,&2)}
+ \picture@redefine\Vector{(&1,&2)}
+}{
+ \picture@redefine\@oval{(&1,&2)}
+}
+% \end{macrocode}
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/picture.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/picture.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex picture.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% picture.sty & tex/latex/oberdiek/picture.sty\\
+% picture.pdf & doc/latex/oberdiek/picture.pdf\\
+% picture-example.tex & doc/latex/oberdiek/picture-example.tex\\
+% picture.dtx & source/latex/oberdiek/picture.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk picture.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{picture.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex picture.dtx
+%makeindex -s gind.ist picture.idx
+%pdflatex picture.dtx
+%makeindex -s gind.ist picture.idx
+%pdflatex picture.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2006/08/26 v1.0}
+% \item
+% First released version. (First start of the project was June/July 2002.)
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/pmboxdraw.dtx b/Master/texmf-dist/source/latex/oberdiek/pmboxdraw.dtx
new file mode 100644
index 00000000000..2c742ff89f6
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/pmboxdraw.dtx
@@ -0,0 +1,1808 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file pmboxdraw.dtx
+% and the derived files
+% pmboxdraw.sty, pmboxdraw.pdf, pmboxdraw.ins, pmboxdraw.drv,
+% pmboxdrawenc.dfu.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/pmboxdraw.dtx
+% CTAN:macros/latex/contrib/oberdiek/pmboxdraw.pdf
+%
+% Unpacking:
+% (a) If pmboxdraw.ins is present:
+% tex pmboxdraw.ins
+% (b) Without pmboxdraw.ins:
+% tex pmboxdraw.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{pmboxdraw.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If pmboxdraw.drv is present:
+% latex pmboxdraw.drv
+% (b) Without pmboxdraw.drv:
+% latex pmboxdraw.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex pmboxdraw.dtx
+% makeindex -s gind.ist pmboxdraw.idx
+% pdflatex pmboxdraw.dtx
+% makeindex -s gind.ist pmboxdraw.idx
+% pdflatex pmboxdraw.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/pmboxdraw.sty
+% TDS:tex/latex/oberdiek/pmboxdrawenc.dfu
+% TDS:doc/latex/oberdiek/pmboxdraw.pdf
+% TDS:source/latex/oberdiek/pmboxdraw.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: pmboxdraw 2006/05/03 v1.0 Poor man's box drawing characters (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file pmboxdraw.dtx
+and the derived files
+ pmboxdraw.sty, pmboxdraw.pdf, pmboxdraw.ins, pmboxdraw.drv,
+ pmboxdrawenc.dfu.
+
+\endpreamble
+
+\generate{%
+ \file{pmboxdraw.ins}{\from{pmboxdraw.dtx}{install}}%
+ \file{pmboxdraw.drv}{\from{pmboxdraw.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{pmboxdraw.sty}{\from{pmboxdraw.dtx}{package}}%
+ \file{pmboxdrawenc.dfu}{\from{pmboxdraw.dtx}{utf8}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* pmboxdraw.sty, pmboxdrawenc.dfu}
+\Msg{*}
+\Msg{* To produce the documentation run the file `pmboxdraw.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{pmboxdraw.drv}%
+ [2006/05/03 v1.0 Poor man's box drawing characters (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\usepackage{color}
+\usepackage{pmboxdraw}
+\usepackage{longtable}
+\setcounter{tocdepth}{2}
+\hypersetup{bookmarksdepth=3}
+\begin{document}
+ \DocInput{pmboxdraw.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{2712}
+%
+% \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 \~}
+%
+% \GetFileInfo{pmboxdraw.drv}
+%
+% \title{The \xpackage{pmboxdraw} package}
+% \date{2006/05/03 v1.0}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{pmboxdraw} declares box drawings characters of
+% old code pages, e.g. cp437. It uses rules instead of using a font.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \DoNotIndex{\dimen,\dimen@,\z@,\tw@,\wd,\ht,\dp}
+% \DoNotIndex{\@width,\@height,\@depth}
+% \DoNotIndex{\advance,\hss,\kern,\rlap,\vrule}
+%
+% \section{User interface}
+%
+% \begin{quote}
+% \ttfamily
+% \catcode`=\active
+% \catcode`|\active
+% \catcode`-\active
+% \def={\textSFxliii}
+% \def|{\textSFxxiv}
+% \def-{\textSFx}
+% \def~{\mbox{ }}
+% \textSFxxxix===================\textSFxxv\\
+% | P M B O X D R A W |\\
+% \textSFxxxviii ==\textSFxlvii============\textSFxlvii===\textSFxxvi\\
+% ~~~\textSFxi~2006/05/03 \textSFxi\\
+% ~~~\textSFii------------\textSFiv
+% \end{quote}
+%
+% \subsection{Introduction}
+%
+% In old code pages (CP 437, \dots) many slots are occupied
+% by graphical characters. The definition files for the input
+% encodings that come with \LaTeX's package \xpackage{inputenc}
+% ignore these characters. This packages tries to close this gap.
+% Package \xpackage{inputenx} provides more complete definitions
+% files of input encodings (\cite{inputenx}).
+%
+% The graphical characters are available in some fonts, mostly
+% some derivates of Courier. However, the symbols are usually
+% used to gegnerate some kind of ASCII art. Thus it should fit
+% with the current typewriter font in use. That means:
+% \begin{itemize}
+% \item Same and constant symbol width.
+% \item Use of the full line height. Vertical lines should not be
+% interrupted if the symbols that contribute to that lines
+% are in adjacent text lines.
+% \end{itemize}
+% Therefore I decided to generate the symbols by rules.
+% Parameters such as rule width and box dimensions are accessible
+% at macro level. This avoids to generate many fonts for the used
+% typewriter fonts (Courier, LuxiMono, Computer/Latin Modern, \dots).
+%
+% The disadvantage is that there are no characters in the output
+% file, just rules. Thus operations such as cut and paste or text
+% search will not detect these graphical characters.
+%
+% \subsection{Setup}
+%
+% Usually the box drawings symbols of this package derive its parameters
+% from the current font. But they can be set explicitly.
+%
+% \begin{declcs}{pmboxdrawbox} \M{template}
+% \end{declcs}
+% The \meta{template} is used as size template for the symbols.
+% It is initialized by |\strut0|. (Usually |\strut| carries the information
+% about the \cs{baselineskip} and |0| the symbol width.)
+%
+% \begin{declcs}{pmboxdrawrulewidth} \M{dimen}
+% \end{declcs}
+% This macro allows the setup of the rule width used in the symbols.
+% It is initialized with |0.1\width|, that means 10\,\% of the symbol
+% width. \cs{width}, \cs{height}, and \cs{depth} can be used here and
+% are set to the corresponding symbol box parameter.
+%
+% \begin{declcs}{pmboxdrawdoublerulesep} \M{dimen}
+% \end{declcs}
+% Some symbols have double lines. The distance between the lines is
+% configured by this macro. It is set to |0.25\width|, a quarter of
+% the symbol width. Also \cs{height} and \cs{depth} are available.
+%
+% \subsection{Symbol list}
+%
+% The macro names for the symbols in \LaTeX\ (LICR) are derived
+% from Adobe's glyph names for these characters (\cite{aglfn}).
+% Example:
+% \begin{quote}
+% U+2580 (\textupblock) with glyph name \textsf{upblock}: \cs{textupblock}
+% \end{quote}
+% Some glyph names start with |SF|, two individual digits follow and
+% the name is closed by four digits zero. For the LICR name the
+% two individual digits form a number that is converted to lowercase
+% roman number. The trailing zeros are dropped. Example:
+% \begin{quote}
+% U+2556 (\textSFxxi) with glyph name \textsf{SF210000}: \cs{textSFxxi}
+% \end{quote}
+%
+% The three gray symbols require package \xpackage{color}:
+% \begin{quote}
+% U+2591 (\textltshade) light shade: \cs{textltshade}\\
+% U+2592 (\textshade) medium shade: \cs{textshade}\\
+% U+2593 (\textdkshade) dark shade: \cs{textdkshade}
+% \end{quote}
+%
+% It follows a list with all graphical symbols provided by this
+% package:
+%
+% \begingroup
+% \def\entrygen#1#2#3#4{%
+% \fbox{\texttt{\csname text#3\endcsname}}
+% & \texttt{U+25#1}
+% & \texttt{#2}
+% & \texttt{\textbackslash text#3}
+% \\*[-\fboxsep]
+% &
+% \multicolumn{3}{l}{\lowercase{#4}}\\
+% }
+% \def\entry#1#2{\entrygen{#1}{SF#20000}{SF\romannumeral#2}}
+% \def\entryB#1#2{\entrygen{#1}{#2}{#2}}
+% \begin{longtable}{clll}
+% Symbol & Unicode & Glyph name & LICR\\
+% \hline
+% \endhead
+% \entry{00}{10}{BOX DRAWINGS LIGHT HORIZONTAL}
+% \entry{02}{11}{BOX DRAWINGS LIGHT VERTICAL}
+% \entry{0C}{01}{BOX DRAWINGS LIGHT DOWN AND RIGHT}
+% \entry{10}{03}{BOX DRAWINGS LIGHT DOWN AND LEFT}
+% \entry{14}{02}{BOX DRAWINGS LIGHT UP AND RIGHT}
+% \entry{18}{04}{BOX DRAWINGS LIGHT UP AND LEFT}
+% \entry{1C}{08}{BOX DRAWINGS LIGHT VERTICAL AND RIGHT}
+% \entry{24}{09}{BOX DRAWINGS LIGHT VERTICAL AND LEFT}
+% \entry{2C}{06}{BOX DRAWINGS LIGHT DOWN AND HORIZONTAL}
+% \entry{34}{07}{BOX DRAWINGS LIGHT UP AND HORIZONTAL}
+% \entry{3C}{05}{BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL}
+% \entry{50}{43}{BOX DRAWINGS DOUBLE HORIZONTAL}
+% \entry{51}{24}{BOX DRAWINGS DOUBLE VERTICAL}
+% \entry{52}{51}{BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE}
+% \entry{53}{52}{BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE}
+% \entry{54}{39}{BOX DRAWINGS DOUBLE DOWN AND RIGHT}
+% \entry{55}{22}{BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE}
+% \entry{56}{21}{BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE}
+% \entry{57}{25}{BOX DRAWINGS DOUBLE DOWN AND LEFT}
+% \entry{58}{50}{BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE}
+% \entry{59}{49}{BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE}
+% \entry{5A}{38}{BOX DRAWINGS DOUBLE UP AND RIGHT}
+% \entry{5B}{28}{BOX DRAWINGS UP SINGLE AND LEFT DOUBLE}
+% \entry{5C}{27}{BOX DRAWINGS UP DOUBLE AND LEFT SINGLE}
+% \entry{5D}{26}{BOX DRAWINGS DOUBLE UP AND LEFT}
+% \entry{5E}{36}{BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE}
+% \entry{5F}{37}{BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE}
+% \entry{60}{42}{BOX DRAWINGS DOUBLE VERTICAL AND RIGHT}
+% \entry{61}{19}{BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE}
+% \entry{62}{20}{BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE}
+% \entry{63}{23}{BOX DRAWINGS DOUBLE VERTICAL AND LEFT}
+% \entry{64}{47}{BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE}
+% \entry{65}{48}{BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE}
+% \entry{66}{41}{BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL}
+% \entry{67}{45}{BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE}
+% \entry{68}{46}{BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE}
+% \entry{69}{40}{BOX DRAWINGS DOUBLE UP AND HORIZONTAL}
+% \entry{6A}{54}{BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE}
+% \entry{6B}{53}{BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE}
+% \entry{6C}{44}{BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL}
+% \entryB{80}{upblock}{UPPER HALF BLOCK}
+% \entryB{84}{dnblock}{LOWER HALF BLOCK}
+% \entryB{88}{block}{FULL BLOCK}
+% \entryB{8C}{lfblock}{LEFT HALF BLOCK}
+% \entryB{90}{rtblock}{RIGHT HALF BLOCK}
+% \entryB{91}{ltshade}{LIGHT SHADE}
+% \entryB{92}{shade}{MEDIUM SHADE}
+% \entryB{93}{dkshade}{DARK SHADE}
+% \end{longtable}
+% \endgroup
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Identification}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pmboxdraw}%
+ [2006/05/03 v1.0 Poor man's box drawing characters (HO)]
+% \end{macrocode}
+%
+% \subsection{Dummy font encoding}
+%
+% Using a dummy font encoding because of
+% \begin{quote}
+% |\usepackage[utf8]{inputenc}|
+% \end{quote}
+% \begin{macrocode}
+\DeclareFontEncoding{pmboxdraw}{}{}
+\DeclareFontFamily{pmboxdraw}{pmboxdraw}{}
+\DeclareFontShape{pmboxdraw}{pmboxdraw}{m}{n}{ <-> cmr10 }{}
+\DeclareFontSubstitution{pmboxdraw}{pmboxdraw}{m}{n}
+% \end{macrocode}
+%
+% \subsection{Setup}
+%
+% \begin{macro}{\pmboxdrawbox}
+% \begin{macrocode}
+\newcommand*{\pmboxdrawbox}[1]{%
+ \def\pmbd@box{#1}%
+}
+\pmboxdrawbox{\strut0}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pmboxdrawrulewidth}
+% \begin{macrocode}
+\newcommand*{\pmboxdrawrulewidth}[1]{%
+ \def\pmbd@rulewidth{#1}%
+}
+\pmboxdrawrulewidth{.1\width}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pmboxdrawdoublerulesep}
+% \begin{macrocode}
+\newcommand*{\pmboxdrawdoublerulesep}[1]{%
+ \def\pmbd@doublerulesep{#1}%
+}
+\pmboxdrawdoublerulesep{.25\width}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Block elements}
+%
+% \begin{macrocode}
+\def\pmbd@begin{%
+ \begingroup
+ \setbox\z@\hbox{\pmbd@box}%
+ \leavevmode
+ \setbox\tw@\hb@xt@\wd\z@\bgroup
+}
+\def\pmbd@end{%
+ \egroup
+ \ht\tw@\ht\z@
+ \dp\tw@\dp\z@
+ \box\tw@
+ \endgroup
+}
+% \end{macrocode}
+%
+% \subsubsection{U+2580} UPPER HALF BLOCK
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textupblock}{%
+ \pmbd@begin
+ \dimen@-\ht\z@
+ \advance\dimen@\dp\z@
+ \vrule\@width\wd\z@\@depth.5\dimen@
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2584} LOWER HALF BLOCK
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textdnblock}{%
+ \pmbd@begin
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \vrule\@width\wd\z@\@height.5\dimen@
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2588} FULL BLOCK
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textblock}{%
+ \pmbd@begin
+ \vrule\@width\wd\z@
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+258C} LEFT HALF BLOCK
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textlfblock}{%
+ \pmbd@begin
+ \vrule\@width.5\wd\z@
+ \hfill
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2590} RIGHT HALF BLOCK
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textrtblock}{%
+ \pmbd@begin
+ \hfill
+ \vrule\@width.5\wd\z@
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2591} LIGHT SHADE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textltshade}{%
+ \pmbd@begin
+ \@ifundefined{textcolor}{%
+ \pmbd@colorwarning\textltshade
+ }{%
+ \textcolor[gray]{.75}%
+ }{%
+ \vrule\@width\wd\z@
+ }%
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2592} MEDIUM SHADE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textshade}{%
+ \pmbd@begin
+ \@ifundefined{textcolor}{%
+ \pmbd@colorwarning\textshade
+ }{%
+ \textcolor[gray]{.5}%
+ }{%
+ \vrule\@width\wd\z@
+ }%
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2593} DARK SHADE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textdkshade}{%
+ \pmbd@begin
+ \@ifundefined{textcolor}{%
+ \pmbd@colorwarning\textdkshade
+ }{%
+ \textcolor[gray]{.25}%
+ }{%
+ \vrule\@width\wd\z@
+ }%
+ \pmbd@end
+}
+% \end{macrocode}
+%
+% \subsubsection{Color warning}
+%
+% \begin{macro}{\pmbd@colorwarning}
+% \begin{macrocode}
+\def\pmbd@colorwarning#1{%
+ \PackageWarning{pmboxdraw}{%
+ \string#1\space requires package \string`color\string'\MessageBreak
+ }%
+% \PackageWarningNoLine{pmboxdraw}{%
+% Package \string`color\string' is required for\MessageBreak
+% \string\textltshade, \string\textshade, and \string\textdkshade
+% }%
+% \global\let\pmbd@colorwarning\@secondoftwo
+ \@firstofone
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Box drawing, light single lines}
+%
+% \begin{macro}{\pmbd@beginA}
+% \begin{macrocode}
+\def\pmbd@beginA{%
+ \pmbd@begin
+ \def\width{\wd\z@}%
+ \def\height{\ht\z@}%
+ \def\depth{\dp\z@}%
+ \setlength{\dimen@}{\pmbd@rulewidth}%
+ \edef\pmbd@rulewidth{\number\dimen@ sp}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \noindent
+% \subsubsection{U+2500} BOX DRAWINGS LIGHT HORIZONTAL
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFx}{%
+ \pmbd@beginA
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2502} BOX DRAWINGS LIGHT VERTICAL
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxi}{%
+ \pmbd@beginA
+ \hss
+ \vrule\@width\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+250C} BOX DRAWINGS LIGHT DOWN AND RIGHT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFi}{%
+ \pmbd@beginA
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@\@depth\dp\z@
+ \hss
+ }%
+ }%
+ \hfill
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2510} BOX DRAWINGS LIGHT DOWN AND LEFT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFiii}{%
+ \pmbd@beginA
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@\@depth\dp\z@
+ \hss
+ }%
+ }%
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ \hfill
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2514} BOX DRAWINGS LIGHT UP AND RIGHT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFii}{%
+ \pmbd@beginA
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth-.5\dimen\tw@
+ \hss
+ }%
+ }%
+ \hfill
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2518} BOX DRAWINGS LIGHT UP AND LEFT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFiv}{%
+ \pmbd@beginA
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth-.5\dimen\tw@
+ \hss
+ }%
+ }%
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ \hfill
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+251C} BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFviii}{%
+ \pmbd@beginA
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth\dp\z@
+ \hss
+ }%
+ }%
+ \hfill
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2524} BOX DRAWINGS LIGHT VERTICAL AND LEFT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFix}{%
+ \pmbd@beginA
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth\dp\z@
+ \hss
+ }%
+ }%
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ \hfill
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+252C} BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFvi}{%
+ \pmbd@beginA
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2534} BOX DRAWINGS LIGHT UP AND HORIZONTAL
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFvii}{%
+ \pmbd@beginA
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+253C} BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFv}{%
+ \pmbd@beginA
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+%
+% \subsection{Box drawing, double lines}
+%
+% \begin{macro}{\pmbd@beginB}
+% \begin{macrocode}
+\def\pmbd@beginB{%
+ \pmbd@beginA
+ \setlength{\dimen@}{\pmbd@doublerulesep}%
+ \edef\pmbd@doublesepH{\number\dimen@ sp}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\pmbd@beginC}
+% \begin{macrocode}
+\def\pmbd@beginC{%
+ \pmbd@beginB
+ \advance\dimen@\pmbd@rulewidth
+ \edef\pmbd@doublesepV{\number\dimen@ sp}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{U+2550} BOX DRAWINGS DOUBLE HORIZONTAL
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxliii}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2551} BOX DRAWINGS DOUBLE VERTICAL
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxiv}{%
+ \pmbd@beginB
+ \hss
+ \vrule\@width\pmbd@rulewidth
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2552} BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFli}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \kern.5\wd\z@
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \rlap{%
+ \kern.5\wd\z@
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2553} BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFlii}{%
+ \pmbd@beginB
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \dimen4 \wd\z@
+ \advance\dimen4 \pmbd@doublesepH
+ \hb@xt@\wd\z@{%
+ \hfill
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2554} BOX DRAWINGS DOUBLE DOWN AND RIGHT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxxix}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \dimen4 \wd\z@
+ \begingroup
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \advance\dimen4 \pmbd@doublesepH
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@\@depth\dp\z@
+ \kern\pmbd@doublesepH
+ \kern\pmbd@rulewidth
+ \hss
+ }%
+ }%
+ \endgroup
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \advance\dimen4 -\pmbd@doublesepH
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \hss
+ \kern\pmbd@rulewidth
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2555} BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxii}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \rlap{%
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2556} BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxi}{%
+ \pmbd@beginB
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \dimen4 \wd\z@
+ \advance\dimen4 \pmbd@doublesepH
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2557} BOX DRAWINGS DOUBLE DOWN AND LEFT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxv}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \dimen4 \wd\z@
+ \begingroup
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \advance\dimen4 \pmbd@doublesepH
+ \rlap{%
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \kern\pmbd@rulewidth
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@\@depth\dp\z@
+ \hss
+ }%
+ }%
+ \endgroup
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \advance\dimen4 -\pmbd@doublesepH
+ \rlap{%
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \kern\pmbd@doublesepH
+ \kern\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2558} BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFl}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \kern.5\wd\z@
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \rlap{%
+ \kern.5\wd\z@
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2559} BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxlix}{%
+ \pmbd@beginB
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \dimen4 \wd\z@
+ \advance\dimen4 \pmbd@doublesepH
+ \hb@xt@\wd\z@{%
+ \hfill
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+255A} BOX DRAWINGS DOUBLE UP AND RIGHT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxxviii}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \dimen4 \wd\z@
+ \begingroup
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \advance\dimen4 -\pmbd@doublesepH
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \kern\pmbd@rulewidth
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth-.5\dimen\tw@
+ \hss
+ }%
+ }%
+ \endgroup
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \advance\dimen4 \pmbd@doublesepH
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \kern\pmbd@doublesepH
+ \kern\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+255B} BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxviii}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \rlap{%
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+255C} BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxvii}{%
+ \pmbd@beginB
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \dimen4 \wd\z@
+ \advance\dimen4 \pmbd@doublesepH
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+255D} BOX DRAWINGS DOUBLE UP AND LEFT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxvi}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \dimen4 \wd\z@
+ \begingroup
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \advance\dimen4 -\pmbd@doublesepH
+ \rlap{%
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth-.5\dimen\tw@
+ \kern\pmbd@doublesepH
+ \kern\pmbd@rulewidth
+ \hss
+ }%
+ }%
+ \endgroup
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \advance\dimen4 \pmbd@doublesepH
+ \rlap{%
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \kern\pmbd@rulewidth
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+255E} BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxxvi}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \kern.5\wd\z@
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \rlap{%
+ \kern.5\wd\z@
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+255F} BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxxvii}{%
+ \pmbd@beginB
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \dimen4 \wd\z@
+ \advance\dimen4 -\pmbd@doublesepH
+ \hb@xt@\wd\z@{%
+ \hfill
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2560} BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxlii}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \dimen4 \wd\z@
+ \advance\dimen4 -\pmbd@doublesepH
+ \begingroup
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \kern\pmbd@rulewidth
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth-.5\dimen\tw@
+ \hss
+ }%
+ }%
+ \endgroup
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2561} BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxix}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \rlap{%
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \vrule\@width.5\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2562} BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxx}{%
+ \pmbd@beginB
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \dimen4 \wd\z@
+ \advance\dimen4 -\pmbd@doublesepH
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2563} BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxxiii}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \dimen4 \wd\z@
+ \advance\dimen4 -\pmbd@doublesepH
+ \begingroup
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \rlap{%
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth-.5\dimen\tw@
+ \kern\pmbd@doublesepH
+ \kern\pmbd@rulewidth
+ \hss
+ }%
+ }%
+ \endgroup
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \rlap{%
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2564} BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxlvii}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \rlap{%
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2565} BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxlviii}{%
+ \pmbd@beginB
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2566} BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxli}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \dimen4 \wd\z@
+ \advance\dimen4 -\pmbd@doublesepH
+ \rlap{%
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ \hss
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2567} BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxlv}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \rlap{%
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2568} BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxlvi}{%
+ \pmbd@beginB
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@depth-.5\dimen\tw@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+2569} BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxl}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \dimen4 \wd\z@
+ \advance\dimen4 -\pmbd@doublesepH
+ \begingroup
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ \hss
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth-.5\dimen\tw@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth-.5\dimen\tw@
+ \hss
+ }%
+ }%
+ \endgroup
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+256A} BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFliv}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \rlap{%
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+256B} BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFliii}{%
+ \pmbd@beginB
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \rlap{%
+ \vrule\@width\wd\z@\@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+% \subsubsection{U+256C} BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+% \begin{macrocode}
+\DeclareTextCommandDefault{\textSFxliv}{%
+ \pmbd@beginC
+ \dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \dimen\tw@\dimen@
+ \advance\dimen@\pmbd@rulewidth
+ \advance\dimen\tw@-\pmbd@rulewidth
+ \dimen4 \wd\z@
+ \advance\dimen4 -\pmbd@doublesepH
+ \begingroup
+ \advance\dimen@\pmbd@doublesepV
+ \advance\dimen\tw@\pmbd@doublesepV
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ \hss
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth-.5\dimen\tw@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height\ht\z@\@depth-.5\dimen\tw@
+ \hss
+ }%
+ }%
+ \endgroup
+ \advance\dimen@-\pmbd@doublesepV
+ \advance\dimen\tw@-\pmbd@doublesepV
+ \rlap{%
+ \hb@xt@\wd\z@{%
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ \hss
+ \vrule\@width.5\dimen4 \@height.5\dimen@\@depth-.5\dimen\tw@
+ }%
+ }%
+ \hss
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \kern\pmbd@doublesepH
+ \vrule\@width\pmbd@rulewidth\@height.5\dimen@
+ \hss
+ \pmbd@end
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \subsection{Unicode support file}
+%
+% \begin{macrocode}
+%<*utf8>
+\ProvidesFile{pmboxdrawenc.dfu}%
+ [2006/05/03 v1.0 UTF-8 support for box drawing characters]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareUnicodeCharacter{2500}{\textSFx}
+\DeclareUnicodeCharacter{2502}{\textSFxi}
+\DeclareUnicodeCharacter{250C}{\textSFi}
+\DeclareUnicodeCharacter{2510}{\textSFiii}
+\DeclareUnicodeCharacter{2514}{\textSFii}
+\DeclareUnicodeCharacter{2518}{\textSFiv}
+\DeclareUnicodeCharacter{251C}{\textSFviii}
+\DeclareUnicodeCharacter{2524}{\textSFix}
+\DeclareUnicodeCharacter{252C}{\textSFvi}
+\DeclareUnicodeCharacter{2534}{\textSFvii}
+\DeclareUnicodeCharacter{253C}{\textSFv}
+\DeclareUnicodeCharacter{2550}{\textSFxliii}
+\DeclareUnicodeCharacter{2551}{\textSFxxiv}
+\DeclareUnicodeCharacter{2552}{\textSFli}
+\DeclareUnicodeCharacter{2553}{\textSFlii}
+\DeclareUnicodeCharacter{2554}{\textSFxxxix}
+\DeclareUnicodeCharacter{2555}{\textSFxxii}
+\DeclareUnicodeCharacter{2556}{\textSFxxi}
+\DeclareUnicodeCharacter{2557}{\textSFxxv}
+\DeclareUnicodeCharacter{2558}{\textSFl}
+\DeclareUnicodeCharacter{2559}{\textSFxlix}
+\DeclareUnicodeCharacter{255A}{\textSFxxxviii}
+\DeclareUnicodeCharacter{255B}{\textSFxxviii}
+\DeclareUnicodeCharacter{255C}{\textSFxxvii}
+\DeclareUnicodeCharacter{255D}{\textSFxxvi}
+\DeclareUnicodeCharacter{255E}{\textSFxxxvi}
+\DeclareUnicodeCharacter{255F}{\textSFxxxvii}
+\DeclareUnicodeCharacter{2560}{\textSFxlii}
+\DeclareUnicodeCharacter{2561}{\textSFxix}
+\DeclareUnicodeCharacter{2562}{\textSFxx}
+\DeclareUnicodeCharacter{2563}{\textSFxxiii}
+\DeclareUnicodeCharacter{2564}{\textSFxlvii}
+\DeclareUnicodeCharacter{2565}{\textSFxlviii}
+\DeclareUnicodeCharacter{2566}{\textSFxli}
+\DeclareUnicodeCharacter{2567}{\textSFxlv}
+\DeclareUnicodeCharacter{2568}{\textSFxlvi}
+\DeclareUnicodeCharacter{2569}{\textSFxl}
+\DeclareUnicodeCharacter{256A}{\textSFliv}
+\DeclareUnicodeCharacter{256B}{\textSFliii}
+\DeclareUnicodeCharacter{256C}{\textSFxliv}
+\DeclareUnicodeCharacter{2580}{\textupblock}
+\DeclareUnicodeCharacter{2584}{\textdnblock}
+\DeclareUnicodeCharacter{2588}{\textblock}
+\DeclareUnicodeCharacter{258C}{\textlfblock}
+\DeclareUnicodeCharacter{2590}{\textrtblock}
+\DeclareUnicodeCharacter{2591}{\textltshade}
+\DeclareUnicodeCharacter{2592}{\textshade}
+\DeclareUnicodeCharacter{2593}{\textdkshade}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</utf8>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/pmboxdraw.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/pmboxdraw.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex pmboxdraw.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% pmboxdraw.sty & tex/latex/oberdiek/pmboxdraw.sty\\
+% pmboxdrawenc.dfu & tex/latex/oberdiek/pmboxdrawenc.dfu\\
+% pmboxdraw.pdf & doc/latex/oberdiek/pmboxdraw.pdf\\
+% pmboxdraw.dtx & source/latex/oberdiek/pmboxdraw.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk pmboxdraw.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{pmboxdraw.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex pmboxdraw.dtx
+%makeindex -s gind.ist pmboxdraw.idx
+%pdflatex pmboxdraw.dtx
+%makeindex -s gind.ist pmboxdraw.idx
+%pdflatex pmboxdraw.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{inputenx}
+% Heiko Oberdiek, The \xpackage{inputenx} Package (Enhanced input encoding
+% handling), 2006/03/05 v1.0,
+% \url{ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/oberdiek/inputenx.pdf}.
+%
+% \bibitem{aglfn}
+% Adobe Systems Incorporated,
+% Adobe Glyph List for New Fonts (AGLFN), version 1.5, 2005/09/18,
+% \url{http://partners.adobe.com/public/developer/en/opentype/aglfn13.txt}.
+%
+% \bibitem{2500}
+% Unicode Inc.,
+% The Unicode Standard, Version 4.1, Box Drawing, Range: 2500--257F,
+% 2005.
+% \url{http://www.unicode.org/charts/PDF/U2500.pdf}
+%
+% \bibitem{2580}
+% Unicode Inc.,
+% The Unicode Standard, Version 4.1, Block Elements, Range: 2580--259F,
+% 2005.
+% \url{http://www.unicode.org/charts/PDF/U2580.pdf}
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2006/03/14 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/readme-ctan.txt b/Master/texmf-dist/source/latex/oberdiek/readme-ctan.txt
new file mode 100644
index 00000000000..261c28974e6
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/readme-ctan.txt
@@ -0,0 +1,43 @@
+README 2006/08/26
+
+This file describes the directory
+ CTAN:macros/latex/contrib/oberdiek/
+
+It contains several packages:
+ <package>.dtx: source code
+ <package>.pdf: documentation
+The PDF file also embeds the source code. Thus it is enough to
+download the PDF file, if you want to have the package.
+See the section `Installation' how to unpack and install the
+package in more detail. Here just short instructions are given:
+ 1a. Download the DTX source file and the PDF documentation.
+ 1b. Or skip the DTX source download and extract the embedded
+ source file, e.g.:
+ pdftk <package>.pdf unpack_files output .
+ 2. Unpack the package using docstrip:
+ tex <package>.dtx
+ 3. Install the files in your preferred TDS (texmf) tree.
+
+Installation is easier, if you want to install all packages:
+Just download oberdiek-tds.zip and unzip it in your preferred
+TDS (texmf) tree.
+
+Hint for attachfile2: This package comes with a Perl script pdfatfi.pl
+that should be installed somewhere in PATH as `pdfatfi', see also
+package documentation.
+
+Hints for users of old PDF viewer software (AR <= 5) that cannot
+read PDF-1.5 files. Only the PDF files in oberdiek-tds.zip uses
+the compression features of PDF-1.5 to get smaller file sizes.
+If you must support older PDF viewers, then use the PDF files in
+the CTAN directory that do not use the new compression features.
+
+Other files in the CTAN directory:
+* README: This file.
+* oberdiek.tex, oberdiek.pdf:
+ Table of contents of all packages in the directory.
+ It contains the table of contents and the abstract of the packages.
+ The name is a convenience to users of the program `texdoc'.
+
+Happy TeXing
+ Heiko Oberdiek <oberdiek at uni-freiburg.de>
diff --git a/Master/texmf-dist/source/latex/oberdiek/refcount.dtx b/Master/texmf-dist/source/latex/oberdiek/refcount.dtx
index 5a2fcbf7fef..fd72b512a20 100644
--- a/Master/texmf-dist/source/latex/oberdiek/refcount.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/refcount.dtx
@@ -9,7 +9,7 @@
% 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.
+% LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
@@ -29,7 +29,7 @@
% (b) Without refcount.ins:
% tex refcount.dtx
% (c) If you insist on using LaTeX
-% latex \install=y\input{refcount.dtx}
+% latex \let\install=y\input{refcount.dtx}
% (quote the arguments according to the demands of your shell)
%
% Documentation:
@@ -86,7 +86,7 @@ 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.
+LaTeX version 2005/12/01 or later.
This work has the LPPL maintenance status "maintained".
@@ -468,8 +468,6 @@ and the derived files
% these. For example, \teTeX\ users run \verb|texhash| or
% \verb|mktexlsr|.
%
-% Now the installation is complete.
-%
% \subsection{Some details for the interested}
%
% \paragraph{Attached source.}
diff --git a/Master/texmf-dist/source/latex/oberdiek/setouterhbox.dtx b/Master/texmf-dist/source/latex/oberdiek/setouterhbox.dtx
new file mode 100644
index 00000000000..73a2fc69d55
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/setouterhbox.dtx
@@ -0,0 +1,821 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file setouterhbox.dtx
+% and the derived files
+% setouterhbox.sty, setouterhbox.pdf, setouterhbox.ins, setouterhbox.drv,
+% setouterhbox-example.tex.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/setouterhbox.dtx
+% CTAN:macros/latex/contrib/oberdiek/setouterhbox.pdf
+%
+% Unpacking:
+% (a) If setouterhbox.ins is present:
+% tex setouterhbox.ins
+% (b) Without setouterhbox.ins:
+% tex setouterhbox.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{setouterhbox.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If setouterhbox.drv is present:
+% latex setouterhbox.drv
+% (b) Without setouterhbox.drv:
+% latex setouterhbox.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex setouterhbox.dtx
+% makeindex -s gind.ist setouterhbox.idx
+% pdflatex setouterhbox.dtx
+% makeindex -s gind.ist setouterhbox.idx
+% pdflatex setouterhbox.dtx
+%
+% Installation:
+% TDS:tex/generic/oberdiek/setouterhbox.sty
+% TDS:doc/latex/oberdiek/setouterhbox.pdf
+% TDS:doc/latex/oberdiek/setouterhbox-example.tex
+% TDS:source/latex/oberdiek/setouterhbox.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: setouterhbox 2006/08/26 v1.4 Set hbox in outer horizontal mode (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file setouterhbox.dtx
+and the derived files
+ setouterhbox.sty, setouterhbox.pdf, setouterhbox.ins, setouterhbox.drv,
+ setouterhbox-example.tex.
+
+\endpreamble
+
+\generate{%
+ \file{setouterhbox.ins}{\from{setouterhbox.dtx}{install}}%
+ \file{setouterhbox.drv}{\from{setouterhbox.dtx}{driver}}%
+ \usedir{tex/generic/oberdiek}%
+ \file{setouterhbox.sty}{\from{setouterhbox.dtx}{package}}%
+ \usedir{doc/latex/oberdiek}%
+ \file{setouterhbox-example.tex}{\from{setouterhbox.dtx}{example}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* setouterhbox.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `setouterhbox.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{setouterhbox.drv}%
+ [2006/08/26 v1.4 Set hbox in outer horizontal mode (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{setouterhbox.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{322}
+%
+% \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 \~}
+%
+% \GetFileInfo{setouterhbox.drv}
+%
+% \title{The \xpackage{setouterhbox} package}
+% \date{2006/08/26 v1.4}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% If math stuff is set in an \cs{hbox}, then TeX
+% performs some optimization and omits the implicite
+% penalties \cs{binoppenalty} and \cs{relpenalty}.
+% This packages tries to put stuff into an \cs{hbox}
+% without getting lost of those penalties.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% \subsection{Introduction}
+%
+% There is a situation in \xpackage{hyperref}'s driver for dvips
+% where the user wants to have links that can be broken across
+% lines. However dvips doesn't support the feature. With option
+% \xoption{breaklinks} \xpackage{hyperref} sets the links as
+% usual, put them in a box and write the link data with
+% box dimensions into the appropriate \cs{special}s.
+% Then, however, it does not set the complete unbreakable
+% box, but it unwrappes the material inside to allow line
+% breaks. Of course line breaking and glue setting will falsify
+% the link dimensions, but line breaking was more important
+% for the user.
+%
+% \subsection{Acknowledgement}
+%
+% Jonathan Fine, Donald Arsenau and me discussed the problem
+% in the newsgroup \xnewsgroup{comp.text.tex} where Damian
+% Menscher has started the thread, see \cite{newsstart}.
+%
+% The discussion was productive and generated many ideas
+% and code examples. In order to have a more permanent
+% result I wrote this package and tried to implement
+% most of the ideas, a kind of summary of the discussion.
+% Thus I want and have to thank Jonathan Fine and Donald Arsenau
+% very much.
+%
+% Two weeks later David Kastrup (posting in
+% \xnewsgroup{comp.text.tex}, \cite{kastrup})
+% remembered an old article of Michael Downes (\cite{downes})
+% in TUGboat, where Michael Downes already presented the
+% method we discuss here. Nowadays we have \eTeX\ that extends
+% the tool set of a \TeX\ macro programmer. Especially useful
+% \eTeX\ was in this package for detecting and dealing with
+% errorneous situations.
+%
+% However also nowadays a perfect solution for the problem
+% is still missing at macro level. Probably someone has
+% to go deep in the internals of the \TeX\ compiler to
+% implement a switch that let penalties stay where otherwise
+% \TeX\ would remove them for optimization reasons.
+%
+% \subsection{Usage}
+%
+% \paragraph{Package loading.}
+% \LaTeX: as usually:
+% \begin{quote}
+% |\usepackage{setouterhbox}|
+% \end{quote}
+% The package can also be included directly, thus \plainTeX\ users
+% write:
+% \begin{quote}
+% |\input setouterhbox.sty|
+% \end{quote}
+%
+% \paragraph{Register allocation.}
+% The material will be put into a box, thus we need to know these
+% box number. If you need to allocate a new box register:
+% \begin{description}
+% \item[\LaTeX:] |\newsavebox{\|\meta{name}|}|
+% \item[\plainTeX:] |\newbox\|\meta{name}
+% \end{description}
+% Then |\|\meta{name} is a command that held the box number.
+%
+% \paragraph{Box wrapping.}
+% \LaTeX\ users put the material in the box with an environment
+% similar to \texttt{lrbox}. The environment \texttt{setouterhbox}
+% uses the same syntax and offers the same features, such
+% as verbatim stuff inside:
+% \begin{quote}
+% |\begin{setouterhbox}{|\meta{box number}|}|\dots
+% |\end{setouterhbox}|
+% \end{quote}
+% Users with \plainTeX\ do not have environments, they use instead:
+% \begin{quote}
+% |setouterhbox{|\meta{box number}|}|\dots|\endsetouterhbox|
+% \end{quote}
+% In both cases the material is put into an \cs{hbox} and assigned
+% to the given box, denoted by \meta{box number}. Note the
+% assignment is local, the same way \texttt{lrbox} behaves.
+%
+% \paragraph{Unwrapping.}
+% The box material is ready for unwrapping:
+% \begin{quote}
+% |\unhbox\|\meta{box number}
+% \end{quote}
+%
+% \subsection{Option \xoption{hyperref}}
+%
+% Package url uses math mode for typesetting urls.
+% Break points are inserted by \cs{binoppenalty} and
+% \cs{relpenalty}. Unhappily these break points are
+% removed, if \xpackage{hyperref}
+% is used with option {breaklinks}
+% and drivers that depend on \xoption{pdfmark}:
+% \xoption{dvips}, \xoption{vtexpdfmark}, \xoption{textures},
+% and \xoption{dvipsone}.
+% Thus the option \xoption{hyperref} enables the method
+% of this package to avoid the removal of \cs{relpenalty}
+% and \cs{binoppenalty}. Thus you get more break points.
+% However, the link areas are still wrong for these
+% drivers, because they are not supporting broken
+% links.
+%
+% Note, you need version 2006/08/16 v6.75c of package \xpackage{hyperref},
+% because starting with this version the necessary hook is provided
+% that package \xpackage{setouterhbox} uses.
+% \begin{quote}
+% |\usepackage[|\dots|]{hyperref}[2006/08/16]|\\
+% |\usepackage[hyperref]{setouterhbox}|
+% \end{quote}
+% Package order does not matter.
+%
+% \subsection{Example}
+%
+% \begin{macrocode}
+%<*example>
+\documentclass[a5paper]{article}
+\usepackage{url}[2005/06/27]
+\usepackage{setouterhbox}
+
+\newsavebox{\testbox}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{2em}
+
+\begin{document}
+\raggedright
+
+\url{http://this.is.a.very.long.host.name/followed/%
+by/a/very_long_long_long_path.html}%
+
+\sbox\testbox{%
+ \url{http://this.is.a.very.long.host.name/followed/%
+ by/a/very_long_long_long_path.html}%
+}%
+\unhbox\testbox
+
+\begin{setouterhbox}{\testbox}%
+ \url{http://this.is.a.very.long.host.name/followed/%
+ by/a/very_long_long_long_path.html}%
+\end{setouterhbox}
+\unhbox\testbox
+
+\end{document}
+%</example>
+% \end{macrocode}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% Internal macros are prefixed by \cs{setouterhbox}, |@| is
+% not used inside names, thus we do not need to care of its
+% catcode if we are not using it as \LaTeX\ package.
+%
+% \subsection{Package start stuff}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% Prevent reloading more than one, necessary for \plainTeX:
+% \begin{macrocode}
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@setouterhbox.sty\endcsname
+ \ifcase 0%
+ \ifx\x\relax % plain
+ \else
+ \ifx\x\empty % LaTeX
+ \else
+ 1%
+ \fi
+ \fi
+ \else
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
+ \fi
+ \x{setouterhbox}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+% \end{macrocode}
+%
+% Package identification:
+% \begin{macrocode}
+\begingroup
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[#3]%
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@setouterhbox.sty\endcsname
+\ProvidesPackage{setouterhbox}%
+ [2006/08/26 v1.4 Set hbox in outer horizontal mode (HO)]
+% \end{macrocode}
+%
+% \begin{macro}{\setouterhboxBox}
+% The method requires a global box assignment. To be on the
+% safe side, a new box register is allocated for this
+% global box assignment.
+% \begin{macrocode}
+\newbox\setouterhboxBox
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setouterhboxFailure}
+% Error message for both \plainTeX\ and \LaTeX
+% \begin{macrocode}
+\def\setouterhboxFailure#1#2{%
+ \begingroup
+ \expandafter\ifx\csname PackageError\endcsname\relax
+ \def\MessageBreak{^^J}%
+ \newlinechar=10\relax
+ \edef\z{#2}%
+ \errhelp\expandafter{\z}%
+ \errmessage{Package setouterhbox Error: #1}%
+ \else
+ \PackageError{setouterhbox}{#1}{#2}%
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Main part}
+%
+% eTeX provides much better means for checking
+% error conditions. Thus lines marked by "E" are executed
+% if eTeX is available, otherwise the lines marked by "T" are
+% used.
+% \begin{macrocode}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname lastnodetype\endcsname\relax
+ \catcode`T=9 % ignore
+ \catcode`E=14 % comment
+\else
+ \catcode`T=14 % comment
+ \catcode`E=9 % ignore
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\setouterhboxRemove}
+% Remove all kern, glue, and penalty nodes;
+% poor man's version, if \eTeX\ is not available
+% \begin{macrocode}
+\def\setouterhboxRemove{%
+E \ifnum\lastnodetype<11 %
+E \else
+E \ifnum\lastnodetype>13 %
+E \else
+ \unskip\unkern\unpenalty
+E \expandafter\expandafter\expandafter\setouterhboxRemove
+E \fi
+E \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setouterhbox}
+% Passing the box contents by macro parameter would prevent
+% catcode changes in the box contents like by \cs{verb}.
+% Also \cs{bgroup} and \cs{egroup} does not work, because stuff
+% has to be added at the begin and end of the box, thus
+% the syntax
+% |\setouterhbox{|\meta{box number}|}|\dots|\endsetouterhbox|
+% is used. Also we automatically get an environment \texttt{setouterhbox}
+% if \LaTeX\ is used.
+% \begin{macrocode}
+\def\setouterhbox#1{%
+ \begingroup
+ \def\setouterhboxNum{#1}%
+ \setbox0\vbox\bgroup
+T \kern.123pt\relax % marker
+T \kern0pt\relax % removed by \setouterhboxRemove
+ \begingroup
+ \everypar{}%
+ \noindent
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\endsetouterhbox}
+% Most of the work is done in the end part, thus the heart of
+% the method follows:
+% \begin{macrocode}
+\def\endsetouterhbox{%
+ \endgroup
+% \end{macrocode}
+% Omit the first pass to get the penalties
+% of the second pass.
+% \begin{macrocode}
+ \pretolerance-1 %
+% \end{macrocode}
+% We don't want a third pass with \cs{emergencystretch}.
+% \begin{macrocode}
+ \tolerance10000 %
+ \hsize\maxdimen
+% \end{macrocode}
+% Line is not underfull:
+% \begin{macrocode}
+ \parfillskip 0pt plus 1filll\relax
+ \leftskip0pt\relax
+% \end{macrocode}
+% Suppress underful \cs{hbox} warnings,
+% is explicit line breaks are used.
+% \begin{macrocode}
+ \rightskip0pt plus 1fil\relax
+ \everypar{}%
+% \end{macrocode}
+% Ensure that there is a paragraph and
+% prevents \cs{endgraph} from eating terminal glue:
+% \begin{macrocode}
+ \kern0pt%
+ \endgraf
+ \setouterhboxRemove
+E \ifnum\lastnodetype=1 %
+E \global\setbox\setouterhboxBox\lastbox
+E \loop
+E \setouterhboxRemove
+E \ifnum\lastnodetype=1 %
+E \setbox0=\lastbox
+E \global\setbox\setouterhboxBox=\hbox{%
+E \unhbox0 %
+% \end{macrocode}
+% Remove \cs{rightskip}, a penalty with -10000 is part of the previous line.
+% \begin{macrocode}
+E \unskip
+E \unhbox\setouterhboxBox
+E }%
+E \repeat
+E \else
+E \setouterhboxFailure{%
+E Something is wrong%
+E }{%
+E Could not find expected line.%
+E \MessageBreak
+E (\string\lastnodetype: \number\lastnodetype, expected: 1)%
+E }%
+E \fi
+E \setouterhboxRemove
+T \global\setbox\setouterhboxBox\lastbox
+T \loop
+T \setouterhboxRemove
+T \setbox0=\lastbox
+T \ifcase\ifvoid0 1\else0\fi
+T \global\setbox\setouterhboxBox=\hbox{%
+T \unhbox0 %
+% \end{macrocode}
+% Remove \cs{rightskip}, a penalty with -10000 is part of the previous line.
+% \begin{macrocode}
+T \unskip
+T \unhbox\setouterhboxBox
+T }%
+T \repeat
+T \ifdim.123pt=\lastkern
+T \else
+T \setouterhboxFailure{%
+T Something is wrong%
+T }{%
+T Unexpected stuff was detected before the line.%
+T }%
+T \fi
+T \egroup
+T \ifcase \ifnum\wd0=0 \else 1\fi
+T \ifdim\ht0=.123pt \else 1\fi
+T \ifnum\dp0=0 \else 1\fi
+T 0 %
+E \ifnum\lastnodetype=-1 %
+% \end{macrocode}
+% There was just one line that we have caught.
+% \begin{macrocode}
+ \else
+ \setouterhboxFailure{%
+ Something is wrong%
+ }{%
+ After fetching the line there is more unexpected stuff.%
+E \MessageBreak
+E (\string\lastnodetype: \number\lastnodetype, expected: -1)%
+ }%
+ \fi
+E \egroup
+ \expandafter\endgroup
+ \expandafter\setouterhboxFinish\expandafter{%
+ \number\setouterhboxNum
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Environment support}
+%
+% Check \cs{@currenvir} for the case that \cs{setouterhbox}
+% was called as environment. Then the box assignment
+% must be put after the \cs{endgroup} of |\end{|\dots|}|.
+% \begin{macrocode}
+\def\setouterhboxCurr{setouterhbox}
+\def\setouterhboxLast#1{%
+ \setbox#1\hbox{%
+ \unhbox\setouterhboxBox
+ \unskip % remove \rightskip glue
+ \unskip % remove \parfillskip glue
+ \unpenalty % remove paragraph ending \penalty 10000
+ \unkern % remove explicit kern inserted above
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\setouterhboxFinish}
+% |#1| is an explicit number.
+% \begin{macrocode}
+\def\setouterhboxFinish#1{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname @currenvir\endcsname\setouterhboxCurr
+ \aftergroup\setouterhboxLast
+ \aftergroup{%
+ \setouterhboxAfter #1\NIL
+ \aftergroup}%
+ \else
+ \setouterhboxLast{#1}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\setouterhboxAfter}
+% |#1| is an explicit number.
+% \begin{macrocode}
+\def\setouterhboxAfter#1#2\NIL{%
+ \aftergroup#1%
+ \ifx\\#2\\%
+ \else
+ \setouterhboxReturnAfterFi{%
+ \setouterhboxAfter#2\NIL
+ }%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\setouterhboxReturnAfterFi}
+% A utility macro to get tail recursion.
+% \begin{macrocode}
+\long\def\setouterhboxReturnAfterFi#1\fi{\fi#1}
+% \end{macrocode}
+% \end{macro}
+% Restore catcodes we have need to distinguish between
+% the implementation with and without \eTeX.
+% \begin{macrocode}
+\catcode69=11\relax % E
+\catcode84=11\relax % T
+% \end{macrocode}
+%
+% \subsection{Option \xoption{hyperref}}
+% \begin{macrocode}
+\begingroup
+ \def\x{LaTeX2e}%
+\expandafter\endgroup
+\ifx\x\fmtname
+\else
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+% \begin{macro}{\Hy@setouterhbox}
+% \cs{Hy@setouterhbox} is the internal hook that \xpackage{hyperref}
+% uses since 2006/02/12 v6.75a.
+% \begin{macrocode}
+\DeclareOption{hyperref}{%
+ \long\def\Hy@setouterhbox#1#2{%
+ \setouterhbox{#1}#2\endsetouterhbox
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/setouterhbox.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/setouterhbox.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex setouterhbox.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% setouterhbox.sty & tex/generic/oberdiek/setouterhbox.sty\\
+% setouterhbox.pdf & doc/latex/oberdiek/setouterhbox.pdf\\
+% setouterhbox-example.tex & doc/latex/oberdiek/setouterhbox-example.tex\\
+% setouterhbox.dtx & source/latex/oberdiek/setouterhbox.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk setouterhbox.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{setouterhbox.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex setouterhbox.dtx
+%makeindex -s gind.ist setouterhbox.idx
+%pdflatex setouterhbox.dtx
+%makeindex -s gind.ist setouterhbox.idx
+%pdflatex setouterhbox.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{newsstart}
+% Damian Menscher, \Newsgroup{comp.text.tex},
+% \textit{overlong lines in List of Figures},
+% \nolinkurl{<dh058t$qbd$1@news.ks.uiuc.edu>},
+% 23rd September 2005.
+% \url{http://groups.google.com/group/comp.text.tex/msg/79648d4cf1f8bc13}
+%
+% \bibitem{kastrup}
+% David Kastrup, \Newsgroup{comp.text.tex},
+% \textit{Re: ANN: outerhbox.sty -- collect horizontal material,
+% for unboxing into a paragraph},
+% \nolinkurl{<85y855lrx3.fsf@lola.goethe.zz>},
+% 7th October 2005.
+% \url{http://groups.google.com/group/comp.text.tex/msg/7cf0a345ef932e52}
+%
+% \bibitem{downes}
+% Michael Downes, \textit{Line breaking in \cs{unhbox}ed Text},
+% TUGboat 11 (1990), pp. 605--612.
+%
+% \bibitem{hyperref}
+% Sebastian Rahtz, Heiko Oberdiek:
+% \textit{The \xpackage{hyperref} package};
+% 2006/08/16 v6.75c;
+% \CTAN{macros/latex/contrib/hyperref/}.
+%
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2005/10/05 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \begin{Version}{2005/10/07 v1.1}
+% \item
+% Option \xoption{hyperref} added.
+% \end{Version}
+% \begin{Version}{2005/10/18 v1.2}
+% \item
+% Support for explicit line breaks added.
+% \end{Version}
+% \begin{Version}{2006/02/12 v1.3}
+% \item
+% DTX format.
+% \item
+% Documentation extended.
+% \end{Version}
+% \begin{Version}{2006/08/26 v1.4}
+% \item
+% Date of hyperref updated.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/settobox.dtx b/Master/texmf-dist/source/latex/oberdiek/settobox.dtx
new file mode 100644
index 00000000000..1ee9a3260de
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/settobox.dtx
@@ -0,0 +1,636 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2000, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file settobox.dtx
+% and the derived files
+% settobox.sty, settobox.pdf, settobox.ins, settobox.drv,
+% settobox-example.tex.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/settobox.dtx
+% CTAN:macros/latex/contrib/oberdiek/settobox.pdf
+%
+% Unpacking:
+% (a) If settobox.ins is present:
+% tex settobox.ins
+% (b) Without settobox.ins:
+% tex settobox.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{settobox.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If settobox.drv is present:
+% latex settobox.drv
+% (b) Without settobox.drv:
+% latex settobox.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex settobox.dtx
+% makeindex -s gind.ist settobox.idx
+% pdflatex settobox.dtx
+% makeindex -s gind.ist settobox.idx
+% pdflatex settobox.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/settobox.sty
+% TDS:doc/latex/oberdiek/settobox.pdf
+% TDS:doc/latex/oberdiek/settobox-example.tex
+% TDS:source/latex/oberdiek/settobox.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: settobox 2006/02/20 v1.2 Getting box sizes (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2000, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file settobox.dtx
+and the derived files
+ settobox.sty, settobox.pdf, settobox.ins, settobox.drv,
+ settobox-example.tex.
+
+\endpreamble
+
+\generate{%
+ \file{settobox.ins}{\from{settobox.dtx}{install}}%
+ \file{settobox.drv}{\from{settobox.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{settobox.sty}{\from{settobox.dtx}{package}}%
+ \usedir{doc/latex/oberdiek}%
+ \file{settobox-example.tex}{\from{settobox.dtx}{example}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* settobox.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `settobox.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{settobox.drv}%
+ [2006/02/20 v1.2 Getting box sizes (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\usepackage{calc}
+\usepackage{settobox}
+\begin{document}
+ \DocInput{settobox.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{97}
+%
+% \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 \~}
+%
+% \GetFileInfo{settobox.drv}
+%
+% \title{The \xpackage{settobox} package}
+% \date{2006/02/20 v1.2}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Commands are defined for getting box sizes similar
+% to \LaTeX's \cs{settowidth} commands.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Usage}
+%
+% \subsection{Get box dimensions}
+%
+% \begin{declcs}^^A
+% {settoboxwidth}\,\M{\LaTeX\ length}\,\M{\LaTeX\ box}\\
+% \SpecialUsageIndex{\settoboxheight}^^A
+% \cs{settoboxheight}\,\M{\LaTeX\ length}\,\M{\LaTeX\ box}\\
+% \SpecialUsageIndex{\settoboxdepth}^^A
+% \cs{settoboxdepth}\,\M{\LaTeX\ length}\,\M{\LaTeX\ box}\\
+% \SpecialUsageIndex{\settoboxtotalheight}^^A
+% \cs{settoboxtotalheight}\,\M{\LaTeX\ length}\,\M{\LaTeX\ box}
+% \end{declcs}
+% A \meta{\LaTeX\ box} is allocated by \cs{newsavebox}.
+% It can be filled by \cs{sbox} or the environment \texttt{lrbox}.
+% The commands above extract then the desired lengths.
+%
+% \subsection{Set box dimensions}
+%
+% \begin{declcs}^^A
+% {setboxwidth}\,\M{\LaTeX\ box}\,\M{\LaTeX\ length expression}\\
+% \SpecialUsageIndex{\setboxheight}^^A
+% \cs{setboxheight}\,\M{\LaTeX\ box}\,\M{\LaTeX\ length expression}\\
+% \SpecialUsageIndex{\setboxdepth}^^A
+% \cs{setboxdepth}\,\M{\LaTeX\ box}\,\M{\LaTeX\ length expression}
+% \end{declcs}
+% These commands allow the manipulation of the box. Package \xpackage{calc}
+% is supported in the \meta{\LaTeX\ length expression}.
+% Also the following length are available in this expression:
+% \begin{quote}
+% \begin{tabular}{@{}ll@{}}
+% \cs{width}& width of the box\\
+% \cs{height}& height of the box\\
+% \cs{depth}& depth of the box\\
+% \cs{totalheight}& totalheight of the box\\
+% \end{tabular}
+% \end{quote}
+% Note, the base point (point at the left margin of the baseline)
+% always remain constant.
+%
+% \subsection{Move box}
+%
+% \begin{declcs}^^A
+% {setboxmoveleft}\,\M{\LaTeX\ box}\,\M{\LaTeX\ length expression}\\
+% \SpecialUsageIndex{\setboxmoveright}^^A
+% \cs{setboxmoveright}\,\M{\LaTeX\ box}\,\M{\LaTeX\ length expression}\\
+% \SpecialUsageIndex{\setboxlower}^^A
+% \cs{setboxlower}\,\M{\LaTeX\ box}\,\M{\LaTeX\ length expression}\\
+% \SpecialUsageIndex{\setboxright}^^A
+% \cs{setboxright}\,\M{\LaTeX\ box}\,\M{\LaTeX\ length expression}
+% \end{declcs}
+% Note, the box is shifted relative to the base point. The base point
+% is always inside the box, however the width and height of the
+% box change along with the movement.
+%
+% \subsection{Example}
+%
+% \subsubsection{Short example}
+%
+% \begin{quote}
+%\begin{verbatim}
+%\newsavebox{\mybox}
+%\newlength{\mylength}
+%\sbox{\mybox}{Hello World}
+%\settoboxwidth{\mylength}{\mybox}
+%\end{verbatim}
+% \end{quote}
+%
+% \subsubsection{Test file that shows box manipulations}
+%
+% \begin{macrocode}
+%<*example>
+\documentclass{article}
+
+\usepackage{settobox}
+\usepackage{calc}
+
+\newsavebox{\mybox}
+
+\setlength{\fboxsep}{0pt}
+\setlength{\parindent}{20pt}
+\setlength{\parskip}{10pt}
+\pagestyle{empty}
+
+ % \test{#1}
+ % The macro is called with commands in #1 that manipulates
+ % the box \mybox. These commands along with the result of
+ % the manipulation is shown. Thus the essence of the
+ % macro is:
+ %
+ % a) \sbox{\mybox}{The cracy fox.}
+ % b) #1 % manipulates \mybox
+ % c) Print #1 commands.
+ % d) Print box with frame
+ %
+ % The implemenation looks more weird:
+\makeatletter
+\newcommand*{\test}[1]{%
+ \par
+ \begingroup
+ \raggedright
+ \edef\x{\detokenize{#1}}
+ \let\do\@makeother
+ \dospecials
+ \catcode`\~\active
+ \catcode`\ =10\relax
+ \def~{\\}%
+ \noindent
+ \texttt{\scantokens\expandafter{\x}}
+ \par
+ \endgroup
+ \begingroup
+ \let~\relax
+ \sbox{\mybox}{The cracy fox.}
+ #1%
+ A---\fbox{\usebox\mybox}---B
+ \endgroup
+ \par
+}
+\makeatother
+
+\begin{document}
+
+\test{\setboxwidth{\mybox}{1.25\width}}
+\test{\setboxheight{\mybox}{0pt}}
+\test{\setboxheight{\mybox}{2\height}}
+\test{\setboxdepth{\mybox}{\height}}
+\test{\setboxmoveleft{\mybox}{5pt}}
+\test{%
+ \setboxmoveleft{\mybox}{5pt}~%
+ \setboxwidth{\mybox}{\width + 5pt}%
+}
+\test{\setboxmoveright{\mybox}{0.5\width}}
+\test{\setboxlower{\mybox}{\height}}
+\test{\setboxraise{\mybox}{\depth}}
+\test{%
+ \setboxmoveright{\mybox}{5pt}~%
+ \setboxwidth{\mybox}{\width + 5pt}~%
+ \setboxheight{\mybox}{\height + 5pt}~%
+ \setboxdepth{\mybox}{\depth + 5pt}%
+}
+
+\end{document}
+%</example>
+% \end{macrocode}
+%
+% \noindent
+% The result:
+%
+% \vspace{1ex}
+% \hrule
+%
+% \begingroup
+% \newsavebox{\mybox}
+%
+% \setlength{\fboxsep}{0pt}
+% \setlength{\parindent}{20pt}
+% \setlength{\parskip}{10pt}
+%
+% \makeatletter
+% \newcommand*{\test}[1]{^^A
+% \par
+% \begingroup
+% \raggedright
+% \edef\x{\detokenize{#1}}
+% \let\do\@makeother
+% \dospecials
+% \catcode`\~\active
+% \catcode`\ =10\relax
+% \def~{\\}^^A
+% \noindent
+% \texttt{\scantokens\expandafter{\x}}
+% \par
+% \endgroup
+% \begingroup
+% \let~\relax
+% \sbox{\mybox}{The cracy fox.}
+% #1^^A
+% A---\fbox{\usebox\mybox}---B
+% \endgroup
+% \par
+% }
+% \makeatother
+%
+% \test{\setboxwidth{\mybox}{1.25\width}}
+% \test{\setboxheight{\mybox}{0pt}}
+% \test{\setboxheight{\mybox}{2\height}}
+% \test{\setboxdepth{\mybox}{\height}}
+% \test{\setboxmoveleft{\mybox}{5pt}}
+% \test{^^A
+% \setboxmoveleft{\mybox}{5pt}~^^A
+% \setboxwidth{\mybox}{\width + 5pt}^^A
+% }
+% \test{\setboxmoveright{\mybox}{0.5\width}}
+% \test{\setboxlower{\mybox}{\height}}
+% \test{\setboxraise{\mybox}{\depth}}
+% \test{^^A
+% \setboxmoveright{\mybox}{5pt}~^^A
+% \setboxwidth{\mybox}{\width + 5pt}~^^A
+% \setboxheight{\mybox}{\height + 5pt}~^^A
+% \setboxdepth{\mybox}{\depth + 5pt}^^A
+% }
+%
+% \endgroup
+% \vspace{1ex}
+% \hrule
+% \vspace{4ex}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{settobox}%
+ [2006/02/20 v1.2 Getting box sizes (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\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}%
+}
+% \end{macrocode}
+%
+% \begin{macro}{\setboxwidth}
+% \begin{macrocode}
+\newcommand*{\setboxwidth}[2]{%
+ \settobox@length\wd{#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\setboxheight}
+% \begin{macrocode}
+\newcommand*{\setboxheight}[2]{%
+ \settobox@length\ht{#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\setboxheight}
+% \begin{macrocode}
+\newcommand*{\setboxdepth}[2]{%
+ \settobox@length\dp{#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\setboxmoveleft}
+% \begin{macrocode}
+\newcommand*{\setboxmoveleft}[2]{%
+ \settobox@horiz{-}{#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\setboxmoveright}
+% \begin{macrocode}
+\newcommand*{\setboxmoveright}[2]{%
+ \settobox@horiz{}{#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\setboxlower}
+% \begin{macrocode}
+\newcommand*{\setboxlower}[2]{%
+ \settobox@vert\lower{#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\setboxraise}
+% \begin{macrocode}
+\newcommand*{\setboxraise}[2]{%
+ \settobox@vert\raise{#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\settobox@length}
+% The work for the \cs{setbox...} commands is done by
+% \cs{settobox@length}. Inside the length expression
+% \cs{width}, \cs{height}, \cs{depth}, \cs{totalheight}
+% are set to the dimensions of the box.\\
+% \begin{tabular}{@{}ll@{}}
+% |#1|:& the property of the box that is to be changed
+% (\cs{wd}, \cs{ht}, \cs{dp})\\
+% |#2|:& the box\\
+% |#3|:& length expression
+% \end{tabular}
+% \begin{macrocode}
+\def\settobox@length#1#2#3{%
+ \settobox@calc{#2}{#3}{#1#2=##1sp\relax}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\settobox@horiz}
+% \begin{macrocode}
+\def\settobox@horiz#1#2#3{%
+ \settobox@calc{#2}{#3}{\setbox#2=\hbox{\kern#1##1sp\copy#2}}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\settobox@vert}
+% \begin{macrocode}
+\def\settobox@vert#1#2#3{%
+ \settobox@calc{#2}{#3}{\setbox#2=\hbox{#1##1sp\copy#2}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\settobox@calc}
+% \begin{macrocode}
+\def\settobox@calc#1#2#3{%
+ \begingroup
+ \def\width{\wd#1}%
+ \def\height{\ht#1}%
+ \def\depth{\dp#1}%
+ \dimen@\ht#1\relax
+ \advance\dimen@\dp#1\relax
+ \def\totalheight{\dimen@}%
+ \setlength{\dimen@}{#2}%
+ \count@\dimen@
+ \def\x##1{\endgroup
+ #3%
+ }%
+ \expandafter\x\expandafter{\the\count@}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/settobox.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/settobox.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex settobox.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% settobox.sty & tex/latex/oberdiek/settobox.sty\\
+% settobox.pdf & doc/latex/oberdiek/settobox.pdf\\
+% settobox-example.tex & doc/latex/oberdiek/settobox-example.tex\\
+% settobox.dtx & source/latex/oberdiek/settobox.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk settobox.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{settobox.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex settobox.dtx
+%makeindex -s gind.ist settobox.idx
+%pdflatex settobox.dtx
+%makeindex -s gind.ist settobox.idx
+%pdflatex settobox.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2000/02/11 v1.0}
+% \item
+% First public release, written as answer in the
+% newsgroup \xnewsgroup{de.comp.text.tex} in the thread
+% \textit{Die Hoehe von Minipages und Bild}, date: 2000/02/11.
+% \end{Version}
+% \begin{Version}{2000/09/07 v1.1}
+% \item
+% Documentation added.
+% \item
+% CTAN release.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.2}
+% \item
+% \cs{setboxwidth}, \cs{setboxheight}, \cs{setboxdepth} added.
+% \item
+% Box move commands added.
+% \item
+% DTX framework.
+% \item
+% LPPL 1.3
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/tabularht.dtx b/Master/texmf-dist/source/latex/oberdiek/tabularht.dtx
new file mode 100644
index 00000000000..cc355fe8e90
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/tabularht.dtx
@@ -0,0 +1,1083 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file tabularht.dtx
+% and the derived files
+% tabularht.sty, tabularht.pdf, tabularht.ins, tabularht.drv,
+% tabularht-example1.tex, tabularht-example2.tex.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/tabularht.dtx
+% CTAN:macros/latex/contrib/oberdiek/tabularht.pdf
+%
+% Unpacking:
+% (a) If tabularht.ins is present:
+% tex tabularht.ins
+% (b) Without tabularht.ins:
+% tex tabularht.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{tabularht.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If tabularht.drv is present:
+% latex tabularht.drv
+% (b) Without tabularht.drv:
+% latex tabularht.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex tabularht.dtx
+% makeindex -s gind.ist tabularht.idx
+% pdflatex tabularht.dtx
+% makeindex -s gind.ist tabularht.idx
+% pdflatex tabularht.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/tabularht.sty
+% TDS:doc/latex/oberdiek/tabularht.pdf
+% TDS:doc/latex/oberdiek/tabularht-example1.tex
+% TDS:doc/latex/oberdiek/tabularht-example2.tex
+% TDS:source/latex/oberdiek/tabularht.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: tabularht 2006/02/20 v2.2 Tabular with height specification (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file tabularht.dtx
+and the derived files
+ tabularht.sty, tabularht.pdf, tabularht.ins, tabularht.drv,
+ tabularht-example1.tex, tabularht-example2.tex.
+
+\endpreamble
+
+\generate{%
+ \file{tabularht.ins}{\from{tabularht.dtx}{install}}%
+ \file{tabularht.drv}{\from{tabularht.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{tabularht.sty}{\from{tabularht.dtx}{package}}%
+ \usedir{doc/latex/oberdiek}%
+ \file{tabularht-example1.tex}{\from{tabularht.dtx}{example1}}%
+ \file{tabularht-example2.tex}{\from{tabularht.dtx}{example2}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* tabularht.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `tabularht.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{tabularht.drv}%
+ [2006/02/20 v2.2 Tabular with height specification (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{tabularht.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{640}
+%
+% \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 \~}
+%
+% \GetFileInfo{tabularht.drv}
+%
+% \title{The \xpackage{tabularht} package}
+% \date{2006/02/20 v2.2}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package defines some environments that adds
+% a height specification to tabular and array.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Usage}
+%
+% \begin{quote}
+% |\usepackage{tabularht}|
+% \end{quote}
+% The package provides the following environments
+% that extend the tabular/array environment by
+% a height specification as first argument:
+% \begin{itemize}
+% \item |tabularht|, |tabularht*|
+% \item |arrayht|
+% \item |tabularxht|, |tabularxht*|
+% (if package \xpackage{tabularx} is loaded)
+% \end{itemize}
+% The height argument allows a length specification,
+% package \xpackage{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{quote}
+% \begin{tabular}{@{}l@{ $\rightarrow$ }l@{}}
+% |\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
+% \end{tabular}
+% \end{quote}
+%
+% Hint: See also package \xpackage{tabularkv}, it provides an interface,
+% where most parameters for the environments can be given
+% by key-value pairs.
+%
+% \begin{declcs}{interrowspace}\,|{|\dots|}|
+% \end{declcs}
+% Adds space between table rows. It is essentially
+% the same as |\noalign{\vspace{...}}|.
+% \begin{declcs}{interrowfill}
+% \end{declcs}
+% Short for |\interrowspace{\fill}|
+% \begin{declcs}{interrowstart}\,\dots\,\cs{interrowstop}
+% \end{declcs}
+% Marker commands, useful for option \xoption{vlines}.
+%
+% \subsection{Option \xoption{vlines}}
+%
+% Warning: This stuff is experimental.
+%
+% \vspace{2ex}
+% \noindent
+% Vertical lines are interrupted, if space is inserted
+% in \cs{noalign}, \cs{interrowspace}, \cs{addlinespace}
+% (\xpackage{booktabs}),
+% between double \cs{hline}s. This option tries to detect
+% and add the vertical lines. The lines in a tabular
+% with \xpackage{tabularht} support (environments of this package)
+% are numbered from left to right. The gap that is
+% controlled by \cs{interrowspace} or inbetween \cs{interrowstart}
+% and \cs{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{quote}
+%\begin{verbatim}
+%\begin{tabularht}{50mm}{|l|l|}
+% Hello & World\\
+% \interrowfill[1,3]
+% Foo & Bar
+%\end{tabularht}
+%\end{verbatim}
+% \end{quote}
+% 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:
+% \begin{quote}
+% |\interrowspace[0]{10mm}|
+% \end{quote}
+% The syntax of the commands with the optional argument
+% with the line number list \meta{list}. \meta{list} is a comma
+% separated list of numbers, \meta{height} means the
+% height specification described above with the optional
+% prefixes |to=| or |spread=|.
+% \begin{quote}
+% \cs{interrowspace}\,|[|\meta{list}|]|\,|{|\meta{height}|}|\\
+% \cs{interrowfill}\,|[|\meta{list}|]|\\
+% \cs{interrowstart}\,|[|\meta{list}|]|\,\dots\,\cs{interrowstop}
+% \end{quote}
+%
+% Option \xoption{vlines} is driver dependent and uses \eTeX\ features.
+% \begin{description}
+% \item[\xoption{pdftex}:] \pdfTeX\ in PDF mode.
+% Here the positions of the lines are written with the
+% help of the \cs{pdfsavepos} feature into the \xfile{.aux} file(s).
+% Therefore you need two LaTeX runs to get the lines.
+% \item[\xoption{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.
+% \item[Other drivers:]\mbox{}
+% \begin{description}
+% \item[PostScript drivers:] probably possible, an end of page
+% hook would be nice.
+% \item[\VTeX:] with GeX (PostScript interpreter) probably possible.
+% \item[dvipdfm:] no idea. The big problem is, how to get the
+% current position?
+% \end{description}
+% \end{description}
+%
+% \subsection{Limitations}
+%
+% \begin{itemize}
+% \item
+% Vertical lines are interrupted by |\noalign{\vfill}|.
+% \end{itemize}
+%
+% \subsection{Compatibility}
+%
+% \begin{itemize}
+% \item
+% \xpackage{array}, \xpackage{delarray}, \xpackage{tabularx}
+% are supported.
+% \item There can be problems with packages that
+% redefine \cs{@array} (or \cs{@@array}, \cs{@tabarray}) and
+% \cs{@arrayrule} (for option \xoption{vlines}).
+% \item \xpackage{colortbl}: it should at least work, but there isn't
+% support for filling the gaps with color, neither
+% the rules nor the backgrounds.
+% \end{itemize}
+%
+% \subsection{Examples}
+%
+% \subsubsection{Example 1}
+%
+% \begin{macrocode}
+%<*example1>
+\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}
+%</example1>
+% \end{macrocode}
+%
+% \subsubsection{Example 2}
+%
+% \begin{macrocode}
+%<*example2>
+\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}
+%</example2>
+% \end{macrocode}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tabularht}%
+ [2006/02/20 v2.2 Tabular with height specification (HO)]
+% \end{macrocode}
+%
+% \subsection{Environments}
+%
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+% First argument is the height of the table,
+% then the orignal arguments for tabular follow.
+% \begin{macrocode}
+\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}%
+}
+% \end{macrocode}
+%
+% \subsection{Options}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsection{Option vlines, driver independent stuff}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsection{Driver pdftex}
+%
+% \begin{macrocode}
+\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
+% \end{macrocode}
+%
+% \subsection{DVI drivers}
+%
+% \begin{macrocode}
+\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%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/tabularht.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/tabularht.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex tabularht.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% tabularht.sty & tex/latex/oberdiek/tabularht.sty\\
+% tabularht.pdf & doc/latex/oberdiek/tabularht.pdf\\
+% tabularht-example1.tex & doc/latex/oberdiek/tabularht-example1.tex\\
+% tabularht-example2.tex & doc/latex/oberdiek/tabularht-example2.tex\\
+% tabularht.dtx & source/latex/oberdiek/tabularht.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk tabularht.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{tabularht.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex tabularht.dtx
+%makeindex -s gind.ist tabularht.idx
+%pdflatex tabularht.dtx
+%makeindex -s gind.ist tabularht.idx
+%pdflatex tabularht.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2005/09/22 v1.0}
+% \item
+% First public version.
+% \end{Version}
+% \begin{Version}{2005/10/16 v2.0}
+% \item
+% Height specification allows
+% |to=...| or |spread=...|, default is |to=|.
+% \item
+% Option \xoption{vlines} added,
+% drivers \xoption{pdftex} and \xoption{dvips}.
+% \item
+% \cs{interrowspace}, \cs{interrowfil}, and
+% \cs{interrowstart}\dots\cs{interrowstop} added.
+% \end{Version}
+% \begin{Version}{2005/10/18 v2.1}
+% \item
+% Fix for package \xpackage{colortbl}, but the colors
+% of \xpackage{colortbl} remain unsupported.
+% \end{Version}
+% \begin{Version}{2006/02/20 v2.2}
+% \item
+% Code is not changed.
+% \item
+% DTX framework.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/tabularkv.dtx b/Master/texmf-dist/source/latex/oberdiek/tabularkv.dtx
new file mode 100644
index 00000000000..dfc2fc56269
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/tabularkv.dtx
@@ -0,0 +1,389 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file tabularkv.dtx
+% and the derived files
+% tabularkv.sty, tabularkv.pdf, tabularkv.ins, tabularkv.drv,
+% tabularkv-example.tex.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/tabularkv.dtx
+% CTAN:macros/latex/contrib/oberdiek/tabularkv.pdf
+%
+% Unpacking:
+% (a) If tabularkv.ins is present:
+% tex tabularkv.ins
+% (b) Without tabularkv.ins:
+% tex tabularkv.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{tabularkv.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If tabularkv.drv is present:
+% latex tabularkv.drv
+% (b) Without tabularkv.drv:
+% latex tabularkv.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex tabularkv.dtx
+% makeindex -s gind.ist tabularkv.idx
+% pdflatex tabularkv.dtx
+% makeindex -s gind.ist tabularkv.idx
+% pdflatex tabularkv.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/tabularkv.sty
+% TDS:doc/latex/oberdiek/tabularkv.pdf
+% TDS:doc/latex/oberdiek/tabularkv-example.tex
+% TDS:source/latex/oberdiek/tabularkv.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: tabularkv 2006/02/20 v1.1 Key value interface for tabular parameters (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file tabularkv.dtx
+and the derived files
+ tabularkv.sty, tabularkv.pdf, tabularkv.ins, tabularkv.drv,
+ tabularkv-example.tex.
+
+\endpreamble
+
+\generate{%
+ \file{tabularkv.ins}{\from{tabularkv.dtx}{install}}%
+ \file{tabularkv.drv}{\from{tabularkv.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{tabularkv.sty}{\from{tabularkv.dtx}{package}}%
+ \usedir{doc/latex/oberdiek}%
+ \file{tabularkv-example.tex}{\from{tabularkv.dtx}{example}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* tabularkv.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `tabularkv.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{tabularkv.drv}%
+ [2006/02/20 v1.1 Key value interface for tabular parameters (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{tabularkv.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{47}
+%
+% \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 \~}
+%
+% \GetFileInfo{tabularkv.drv}
+%
+% \title{The \xpackage{tabularkv} package}
+% \date{2006/02/20 v1.1}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This package adds a key value interface for tabular
+% by the new environment \texttt{tabularkv}. Thus the
+% \TeX\ source code looks better by named parameters,
+% especially if package \xpackage{tabularht} is used.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Usage}
+% \begin{quote}
+% |\usepackage{tabularkv}|
+% \end{quote}
+% The package provides the environment |tabularkv|
+% that takes an optional argument with tabular
+% parameters:
+% \begin{description}
+% \item[\texttt{width}:] width specification, "tabular*" is used.
+% \item[\texttt{x}:]
+% width specification, |tabularx| is used,
+% package \xpackage{tabularx} must be loaded.
+% \item[\texttt{height}:]
+% height specification, see package \xpackage{tabularht}.
+% \item[\texttt{valign}:] vertical positioning, this option is optional;\\
+% values: top, bottom, center.
+% \end{description}
+% Parameter \xoption{valign} optional, the following are
+% equivalent:
+% \begin{quote}
+% |\begin{tabularkv}[|\dots|, valign=top]{l}|\dots|\end{tabularkv}|\\
+% |\begin{tabularkv}[|\dots|][t]{l}|\dots|\end{tabularkv}|
+% \end{quote}
+%
+% \subsection{Example}
+%
+% \begin{macrocode}
+%<*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}
+%</example>
+% \end{macrocode}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% Package identification.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tabularkv}%
+ [2006/02/20 v1.1 Key value interface for tabular parameters (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\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]}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+\newenvironment{tabularkv}[1][]{%
+ \setkeys{tabKV}{#1}%
+ \@nameuse{%
+ tabular\tabKV@star@x\expandafter\expandafter\expandafter
+ }%
+ \expandafter\tabKV@width\tabKV@valign
+}{%
+ \@nameuse{endtabular\tabKV@star@x}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/tabularkv.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/tabularkv.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex tabularkv.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% tabularkv.sty & tex/latex/oberdiek/tabularkv.sty\\
+% tabularkv.pdf & doc/latex/oberdiek/tabularkv.pdf\\
+% tabularkv-example.tex & doc/latex/oberdiek/tabularkv-example.tex\\
+% tabularkv.dtx & source/latex/oberdiek/tabularkv.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk tabularkv.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{tabularkv.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex tabularkv.dtx
+%makeindex -s gind.ist tabularkv.idx
+%pdflatex tabularkv.dtx
+%makeindex -s gind.ist tabularkv.idx
+%pdflatex tabularkv.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{2005/09/22 v1.0}
+% \item
+% First public version.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.1}
+% \item
+% DTX framework.
+% \item
+% Code is not changed.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/telprint.dtx b/Master/texmf-dist/source/latex/oberdiek/telprint.dtx
new file mode 100644
index 00000000000..44e15983d84
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/telprint.dtx
@@ -0,0 +1,651 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 1996, 1997, 2004, 2005, 2006 by
+% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file telprint.dtx
+% and the derived files
+% telprint.sty, telprint.pdf, telprint.ins, telprint.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/telprint.dtx
+% CTAN:macros/latex/contrib/oberdiek/telprint.pdf
+%
+% Unpacking:
+% (a) If telprint.ins is present:
+% tex telprint.ins
+% (b) Without telprint.ins:
+% tex telprint.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{telprint.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If telprint.drv is present:
+% latex telprint.drv
+% (b) Without telprint.drv:
+% latex telprint.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex telprint.dtx
+% makeindex -s gind.ist telprint.idx
+% pdflatex telprint.dtx
+% makeindex -s gind.ist telprint.idx
+% pdflatex telprint.dtx
+%
+% Installation:
+% TDS:tex/generic/oberdiek/telprint.sty
+% TDS:doc/generic/oberdiek/telprint.pdf
+% TDS:source/generic/oberdiek/telprint.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: telprint 2006/08/16 v1.7 Formatting of German phone numbers (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 1996, 1997, 2004, 2005, 2006 by
+ Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file telprint.dtx
+and the derived files
+ telprint.sty, telprint.pdf, telprint.ins, telprint.drv.
+
+\endpreamble
+
+\generate{%
+ \file{telprint.ins}{\from{telprint.dtx}{install}}%
+ \file{telprint.drv}{\from{telprint.dtx}{driver}}%
+ \usedir{tex/generic/oberdiek}%
+ \file{telprint.sty}{\from{telprint.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* telprint.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `telprint.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{telprint.drv}%
+ [2006/08/16 v1.7 Formatting of German phone numbers (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\usepackage[ngerman,english]{babel}
+\begin{document}
+ \DocInput{telprint.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{315}
+%
+% \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 \~}
+%
+% \GetFileInfo{telprint.drv}
+%
+% \title{The \xpackage{telprint} package}
+% \date{2006/08/16 v1.7}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{telprint} provides \cs{telprint} for formatting
+% German phone numbers.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Documentation}
+%
+% \subsection{Introduction}
+%
+% This is a very old package that I have written
+% to format phone numbers. It follows German
+% conventions and the documentation is mainly in German.
+%
+% \subsection{Short overview in English}
+%
+% \LaTeX:
+% \begin{quote}
+% |\usepackage{telprint}|\\
+% |\telprint{123/456-789}|\\
+% \end{quote}
+% \plainTeX:
+% \begin{quote}
+% |\input telprint.sty|\\
+% |\telprint{123/456-789}|
+% \end{quote}
+%
+% \DescribeMacro\telprint
+% |\telprint{...}| formats the explicitly given number.
+% Digits, spaces and some special characters
+% ('+', '/', '-', '(', ')', '\textasciitilde', ' ') are supported.
+% Numbers are divided into groups of two digits from the right.
+% Examples:
+% \begin{quote}
+% |\telprint{0761/12345} ==> 07\,61/1\,23\,45|\\
+% |\telprint{01234/567-89} ==> 0\,12\,34/5\,67\leavevmode\hbox{-}89|\\
+% |\telprint{+49 (6221) 297} ==> +49~(62\,21)~2\,97|
+% \end{quote}
+%
+% \subsubsection{Configuration}
+%
+% The output of the symbols can be configured by
+% \cs{telhyphen}, \cs{telslash}, \cs{telleftparen}, \cs{telrightparen},
+% \cs{telplus}, \cs{teltilde}.
+% Example:
+% \begin{quote}
+% |\telslash{\,/\,}\\|
+% |\telprint{12/34} ==> 12\,/\,34|
+% \end{quote}
+%
+% \DescribeMacro\telspace
+% \cs{telspace} configures the space between digit groups.
+%
+% \DescribeMacro\telnumber
+% \cs{telnumber} only formats a number in digit groups; special
+% characters are not recognized.
+%
+% \subsection{Documentation in German}
+%
+% \begin{otherlanguage*}{ngerman}
+% \begin{itemize}
+% \item \DescribeMacro\telprint |telprint#1|\\
+% Der eigentliche Anwenderbefehl zur formatierten Ausgabe von
+% Telefonnummern. Diese d\"urfen dabei nur als Zahlen angegeben
+% werden(, da sie tokenweise analysiert werden).
+% Als Trenn- oder Sonderzeichen werden unterst\"utzt:
+% '+', '/', '-', '(', ')', '\textasciitilde', ' '
+% Einfache Leerzeichen werden erkannt und durch Tilden ersetzt, um
+% Trennungen in der Telefonnummer zu verhindern. (Man beachte aus
+% gleichem Grunde die \cs{hbox} bei '-'.)
+% Beispiele:
+% \begin{quote}
+% |\telprint{0761/12345} ==> 07\,61/1\,23\,45|\\
+% |\telprint{01234/567-89} ==> 0\,12\,34/5\,67\leavevmode\hbox{-}89|\\
+% |\telprint{+49 (6221) 297} ==> +49~(62\,21)~2\,97|
+% \end{quote}
+% \end{itemize}
+% Der Rest enth\"alt eher Technisches:
+% \begin{itemize}
+% \item \DescribeMacro\telspace |\telspace#1|\\
+% Mit diesem Befehl wird der Abstand zwischen den Zifferngruppen
+% angegeben (Default: |\,|).
+% (Durch |\telspace{}| kann dieser zusaetzliche Abstand abgestellt
+% werden.)
+% \item \DescribeMacro\telhyphen |\telhyphen#1|\\
+% Dieser Befehl gibt die Art des Bindestriches, wie er ausgegeben
+% werden soll. In der Eingabe darf jedoch nur der einfache
+% Bindestrich stehen:
+% |\telprint{123-45}|, jedoch NIE |\telprint{123--45}|!
+% Kopka-Bindestrich-Fans geben an:
+% |\telhyphen{\leavevmode\hbox{--}}|
+% \item
+% \DescribeMacro{\telslash}
+% \DescribeMacro{\telleftparen}
+% \DescribeMacro{\telrightparen}
+% \DescribeMacro{\telplus}
+% \DescribeMacro{\teltilde}
+% |\telslash#1|, |\telleftparen#1|, |\telrightparen#1|, |\telplus#1|,
+% |\teltilde|\\
+% Diese Befehle konfigurieren die Zeichen '/', '(', ')', '+'
+% und '\textasciitilde'. Sie funktionieren analog zu \cs{telhyphen}.
+% \item \DescribeMacro\telnumber |\telnumber#1|\\
+% Richtung interner Befehl: Er dient dazu, eine Zifferngruppe
+% in Zweiergruppen auszugeben.
+% Die einzelnen Zahlen werden im Tokenregister \cs{TELtoks}
+% gespeichert. Abwechselnd werden dabei zwischen zwei Token
+% (Zahlen) \cs{TELx} bzw. \cs{TELy} eingefuegt, abh\"angig von dem
+% wechselnden Wert von \cs{TELswitch}. Zum Schluss kann dann einfach
+% festgestellt werden ob die Nummer nun eine geradzahlige oder
+% ungeradzahlige Zahl von Ziffern aufwies. Dem entsprechend wird
+% \cs{TELx} mit dem Zusatzabstand belegt und \cs{TELy} leer definiert
+% oder umgekehrt. )
+% \item |\TEL...| interne Befehle, Technisches:\\
+% \cs{TELsplit} dient zur Aufteilung einer zusammengesetzten
+% Telefonnummer (Vorwahl, Hauptnummer, Nebenstelle). In dieser
+% Implementation werden als Trennzeichen nur '/' und '-' erkannt.
+% Die einzelnen Bestandteile wie Vorwahl werden dann dem Befehl
+% \cs{telnumber} zur Formatierung uebergeben.
+% \item Die Erkennung von einfachen Leerzeichen ist um einiges
+% schwieriger: Die Tokentrennung ueber Parameter |#1#2| funktioniert
+% nicht f\"ur einfache Leerzeichen, da TeX sie \emph{niemals} als
+% eigenst\"andige Argumente behandelt! (The TeXbook, Chapter 20,
+% p. 201)
+%
+% (Anmerkung am Rande: Deshalb funktionieren die entsprechenden
+% Tokenmakros auf S. 149 des Buches "`Einf\"uhrung in TeX"' von
+% N. Schwarz (3. Aufl.) nicht, wenn im Tokenregister als erstes
+% ein einfaches Leerzeichen steht!)
+% \end{itemize}
+% \end{otherlanguage*}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \subsection{Reload check and package identification}
+% Reload check, especially if the package is not used with \LaTeX.
+% \begin{macrocode}
+\begingroup
+ \expandafter\let\expandafter\x\csname ver@telprint.sty\endcsname
+ \ifcase 0%
+ \ifx\x\relax % plain
+ \else
+ \ifx\x\empty % LaTeX
+ \else
+ 1%
+ \fi
+ \fi
+ \else
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
+ \fi
+ \x{telprint}{The package is already loaded}%
+ \endgroup
+ \expandafter\endinput
+ \fi
+\endgroup
+% \end{macrocode}
+% Package identification:
+% \begin{macrocode}
+\begingroup
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@telprint.sty\endcsname
+\ProvidesPackage{telprint}%
+ [2006/08/16 v1.7 Formatting of German phone numbers (HO)]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifx\telprint\UnDeFiNeD
+% \fi in derselben Zeile wie \endinput oder \expandafter verwenden!
+\else\endinput\fi
+% \end{macrocode}
+% \begin{macrocode}
+\ifx\DeclareRobustCommand\UnDeFiNeD
+ \def\DeclareRobustCommand*#1[1]{\def#1##1}
+ \def\TELreset{\let\DeclareRobustCommand=\UnDeFiNeD}
+ \immediate\write-1{Package `telprint' warning: %
+ Macros are not robust!}
+\else
+ \let\TELreset=\relax
+\fi
+% \end{macrocode}
+% \begin{macro}{\telspace}
+% \begin{macrocode}
+\DeclareRobustCommand*{\telspace}[1]{\def\TELspace{#1}}
+\telspace{{}$\,${}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\telhyphen}
+% \begin{macrocode}
+\DeclareRobustCommand*{\telhyphen}[1]{\def\TELhyphen{#1}}
+\telhyphen{\leavevmode\hbox{-}}% \hbox zur Verhinderung der Trennung
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\telslash}
+% \begin{macrocode}
+\DeclareRobustCommand*{\telslash}[1]{\def\TELslash{#1}}
+\telslash{/}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\telleftparen}
+% \begin{macrocode}
+\DeclareRobustCommand*{\telleftparen}[1]{\def\TELleftparen{#1}}
+\telleftparen{(}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\telrightparen}
+% \begin{macrocode}
+\DeclareRobustCommand*{\telrightparen}[1]{\def\TELrightparen{#1}}
+\telrightparen{)}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\telplus}
+% \begin{macrocode}
+\DeclareRobustCommand*{\telplus}[1]{\def\TELplus{#1}}
+\telplus{+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\teltilde}
+% \begin{macrocode}
+\DeclareRobustCommand*{\teltilde}[1]{\def\TELtilde{#1}}
+\teltilde{~}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\TELtoks}
+% \begin{macrocode}
+\newtoks\TELtoks
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\TELnumber}
+% \begin{macrocode}
+\def\TELnumber#1#2\TELnumberEND{%
+ \begingroup
+ \def\0{#2}%
+ \expandafter\endgroup
+ \ifx\0\empty
+ \TELtoks=\expandafter{\the\TELtoks#1}%
+ \ifnum\TELswitch=0
+ \def\TELx{\TELspace}\def\TELy{}%
+ \else
+ \def\TELx{}\def\TELy{\TELspace}%
+ \fi
+ \the\TELtoks
+ \else
+ \ifnum\TELswitch=0
+ \TELtoks=\expandafter{\the\TELtoks#1\TELx}%
+ \def\TELswitch{1}%
+ \else
+ \TELtoks=\expandafter{\the\TELtoks#1\TELy}%
+ \def\TELswitch{0}%
+ \fi
+ \TELnumber#2\TELnumberEND
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\telnumber}
+% \begin{macrocode}
+\DeclareRobustCommand*{\telnumber}[1]{%
+ \TELtoks={}%
+ \def\TELswitch{0}%
+ \TELnumber#1{}\TELnumberEND
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\TELsplit}
+% \begin{macrocode}
+\def\TELsplit{\futurelet\TELfuture\TELdosplit}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\TELdosplit}
+% \begin{macrocode}
+\def\TELdosplit#1#2\TELsplitEND
+{%
+ \def\TELsp{ }%
+ \expandafter\ifx\TELsp\TELfuture
+ \let\TELfuture=\relax
+ \expandafter\telnumber\expandafter{\the\TELtoks}~%
+ \telprint{#1#2}% Das Leerzeichen kann nicht #1 sein!
+ \else
+ \def\TELfirst{#1}%
+ \ifx\TELfirst\empty
+ \expandafter\telnumber\expandafter{\the\TELtoks}%
+ \TELtoks={}%
+ \else\if-\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELhyphen
+ \telprint{#2}%
+ \else\if/\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELslash
+ \telprint{#2}%
+ \else\if(\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELleftparen
+ \telprint{#2}%
+ \else\if)\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELrightparen
+ \telprint{#2}%
+ \else\if+\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELplus
+ \telprint{#2}%
+ \else\def\TELtemp{~}\ifx\TELtemp\TELfirst
+ \expandafter\telnumber\expandafter{\the\TELtoks}\TELtilde
+ \telprint{#2}%
+ \else
+ \TELtoks=\expandafter{\the\TELtoks#1}%
+ \TELsplit#2{}\TELsplitEND
+ \fi\fi\fi\fi\fi\fi\fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\telprint}
+% \begin{macrocode}
+\DeclareRobustCommand*{\telprint}[1]{%
+ \TELtoks={}%
+ \TELsplit#1{}\TELsplitEND
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\TELreset\let\TELreset=\UnDeFiNeD
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/telprint.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/telprint.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex telprint.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% telprint.sty & tex/generic/oberdiek/telprint.sty\\
+% telprint.pdf & doc/generic/oberdiek/telprint.pdf\\
+% telprint.dtx & source/generic/oberdiek/telprint.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk telprint.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{telprint.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex telprint.dtx
+%makeindex -s gind.ist telprint.idx
+%pdflatex telprint.dtx
+%makeindex -s gind.ist telprint.idx
+%pdflatex telprint.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{1996/11/28 v1.0}
+% \item
+% Erste lauff\"ahige Version.
+% \item
+% Nur '-' und '/' als zul\"assige Sonderzeichen.
+% \end{Version}
+% \begin{Version}{1997/09/16 v1.1}
+% \item
+% Dokumentation und Kommentare (Posting in de.comp.text.tex).
+% \item
+% Erweiterung um Sonderzeichen '(', ')', '+', '\textasciitilde' und ' '.
+% \item
+% Trennungsverhinderung am 'hyphen'.
+% \end{Version}
+% \begin{Version}{1997/10/16 v1.2}
+% \item
+% Schutz vor wiederholtem Einlesen.
+% \item
+% Unter \LaTeXe\ Nutzung des \cs{DeclareRobustCommand}-Features.
+% \end{Version}
+% \begin{Version}{1997/12/09 v1.3}
+% \item
+% Tempor\"are Variable eingespart.
+% \end{Version}
+% \begin{Version}{2004/11/02 v1.4}
+% \item
+% Fehler in der Dokumentation korrigiert.
+% \end{Version}
+% \begin{Version}{2005/09/30 v1.5}
+% \item
+% Konfigurierbare Symbole: '/', '(', ')', '+' und '\textasciitilde'.
+% \end{Version}
+% \begin{Version}{2006/02/12 v1.6}
+% \item
+% LPPL 1.3.
+% \item
+% Kurze \"Ubersicht in Englisch.
+% \item
+% CTAN.
+% \end{Version}
+% \begin{Version}{2006/08/26 v1.7}
+% \item
+% New DTX framework.
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/twoopt.dtx b/Master/texmf-dist/source/latex/oberdiek/twoopt.dtx
index 8e139668c6a..955019a1298 100644
--- a/Master/texmf-dist/source/latex/oberdiek/twoopt.dtx
+++ b/Master/texmf-dist/source/latex/oberdiek/twoopt.dtx
@@ -1,82 +1,180 @@
% \iffalse meta-comment
%
-% twoopt.dtx
-%
-% 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>.
-%
-%<*dtx>
- \ProvidesFile{twoopt.dtx}
-%</dtx>
-%<package>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-%<package>\ProvidesPackage{twoopt}
-%<driver>\ProvidesFile{twoopt.drv}
-% \fi
-% \ProvidesFile{twoopt.dtx}
- [1999/04/12 v1.3 Definitions with two optional arguments (HO)]
-%
-% \GetFileInfo{twoopt.dtx}
-%
-% \CheckSum{103}
-%
-%% \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 \~}
-%%
-% \iffalse
+% Copyright (C) 1999, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file twoopt.dtx
+% and the derived files
+% twoopt.sty, twoopt.pdf, twoopt.ins, twoopt.drv.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/twoopt.dtx
+% CTAN:macros/latex/contrib/oberdiek/twoopt.pdf
+%
+% Unpacking:
+% (a) If twoopt.ins is present:
+% tex twoopt.ins
+% (b) Without twoopt.ins:
+% tex twoopt.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{twoopt.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If twoopt.drv is present:
+% latex twoopt.drv
+% (b) Without twoopt.drv:
+% latex twoopt.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex twoopt.dtx
+% makeindex -s gind.ist twoopt.idx
+% pdflatex twoopt.dtx
+% makeindex -s gind.ist twoopt.idx
+% pdflatex twoopt.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/twoopt.sty
+% TDS:doc/latex/oberdiek/twoopt.pdf
+% TDS:source/latex/oberdiek/twoopt.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: twoopt 2006/02/20 v1.4 Definitions with two optional arguments (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 1999, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file twoopt.dtx
+and the derived files
+ twoopt.sty, twoopt.pdf, twoopt.ins, twoopt.drv.
+
+\endpreamble
+
+\generate{%
+ \file{twoopt.ins}{\from{twoopt.dtx}{install}}%
+ \file{twoopt.drv}{\from{twoopt.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{twoopt.sty}{\from{twoopt.dtx}{package}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* twoopt.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `twoopt.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{twoopt.drv}%
+ [2006/02/20 v1.4 Definitions with two optional arguments (HO)]
\documentclass{ltxdoc}
\usepackage{holtxdoc}
\begin{document}
- \DocInput{twoopt.dtx}
+ \DocInput{twoopt.dtx}
\end{document}
%</driver>
% \fi
%
-% \DoNotIndex{\csname,\endcsname,\expandafter,\noexpand,\string}
-% \DoNotIndex{\begingroup,\endgroup,\def,\xdef,\long,\let}
+% \CheckSum{105}
+%
+% \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 \~}
+%
+% \GetFileInfo{twoopt.drv}
+%
+% \title{The \xpackage{twoopt} package}
+% \date{2006/02/20 v1.4}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
%
-% \newenvironment{param}{^^A
-% \newcommand{\entry}[1]{\meta{\###1}:&}^^A
-% \begin{tabular}[t]{@{}l@{ }l@{}}^^A
-% }{^^A
-% \end{tabular}^^A
-% }
-%
-% \SetupTitle{definitions,optional,argument,LaTeX}
% \maketitle
%
% \begin{abstract}
-% This package provides commands to define macros with two
-% optional arguments.
+% This package provides commands to define macros with two
+% optional arguments.
% \end{abstract}
%
% \tableofcontents
%
+% \newenvironment{param}{^^A
+% \newcommand{\entry}[1]{\meta{\###1}:&}^^A
+% \begin{tabular}[t]{@{}l@{ }l@{}}^^A
+% }{^^A
+% \end{tabular}^^A
+% }
+%
% \section{Usage}
% \DescribeMacro{\newcommandtwoopt}
% \DescribeMacro{\renewcommandtwoopt}
@@ -115,13 +213,15 @@
% \end{tabular}
% \end{quote}
%
-% \Installation
-%
-% \StopEventually{}
+% \StopEventually{
+% }
%
% \section{Implementation}
% \begin{macrocode}
%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{twoopt}
+ [2006/02/20 v1.4 Definitions with two optional arguments (HO)]
% \end{macrocode}
% \begin{macro}{\newcommandtwoopt}
% \begin{macrocode}
@@ -257,38 +357,139 @@
% \begin{macrocode}
%</package>
% \end{macrocode}
-%
-% \StartHistory
-% \HistVersion{1998/10/30 v1.0}
-% \begin{itemize}
-% \item The first version was built as a response to a question
-% of \Email[Rebecca and Rowland]{rebecca@astrid.u-net.com},
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/twoopt.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/twoopt.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex twoopt.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% twoopt.sty & tex/latex/oberdiek/twoopt.sty\\
+% twoopt.pdf & doc/latex/oberdiek/twoopt.pdf\\
+% twoopt.dtx & source/latex/oberdiek/twoopt.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk twoopt.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{twoopt.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex twoopt.dtx
+%makeindex -s gind.ist twoopt.idx
+%pdflatex twoopt.dtx
+%makeindex -s gind.ist twoopt.idx
+%pdflatex twoopt.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \begin{History}
+% \begin{Version}{1998/10/30 v1.0}
+% \item
+% The first version was built as a response to a question
+% of \NameEmail{Rebecca and Rowland}{rebecca@astrid.u-net.com},
% published in the newsgroup
% \href{news:comp.text.tex}{comp.text.tex}:\\
% \URL{``Re: [Q] LaTeX command with two optional arguments?''}^^A
% {http://www.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=406573518}
-% \end{itemize}
-% \HistVersion{1998/10/30 v1.1}
-% \begin{itemize}
-% \item Improvements added in response to
-% \Email[Stefan Ulrich]{ulrich@cis.uni-muenchen.de}
+% \end{Version}
+% \begin{Version}{1998/10/30 v1.1}
+% \item
+% Improvements added in response to
+% \NameEmail{Stefan Ulrich}{ulrich@cis.uni-muenchen.de}
% in the same thread:\\
% \URL{``Re: [Q] LaTeX command with two optional arguments?''}^^A
% {http://www.dejanews.com/[ST_rn=ps]/getdoc.xp?AN=406703373}
-% \end{itemize}
-% \HistVersion{1998/11/04 v1.2}
-% \begin{itemize}
-% \item Fixes for LaTeX bugs 2896, 2901, 2902 added.
-% \end{itemize}
-% \HistVersion{1999/04/12 v1.3}
-% \begin{itemize}
-% \item Fixes removed because of LaTeX [1998/12/01].
-% \item Documentation in dtx format.
-% \item Copyright: LPPL (\CTAN{macros/latex/base/lppl.txt})
-% \item First CTAN release.
-% \end{itemize}
-%
-% \hfuzz10pt
+% \end{Version}
+% \begin{Version}{1998/11/04 v1.2}
+% \item
+% Fixes for LaTeX bugs 2896, 2901, 2902 added.
+% \end{Version}
+% \begin{Version}{1999/04/12 v1.3}
+% \item
+% Fixes removed because of LaTeX [1998/12/01].
+% \item
+% Documentation in dtx format.
+% \item
+% Copyright: LPPL (\CTAN{macros/latex/base/lppl.txt})
+% \item
+% First CTAN release.
+% \end{Version}
+% \begin{Version}{2006/02/20 v1.4}
+% \item
+% Code is not changed.
+% \item
+% New DTX framework.
+% \item
+% LPPL 1.3
+% \end{Version}
+% \end{History}
+%
% \PrintIndex
%
% \Finale
diff --git a/Master/texmf-dist/source/latex/oberdiek/twoopt.ins b/Master/texmf-dist/source/latex/oberdiek/twoopt.ins
deleted file mode 100644
index 5fa883f6d02..00000000000
--- a/Master/texmf-dist/source/latex/oberdiek/twoopt.ins
+++ /dev/null
@@ -1,72 +0,0 @@
-% twoopt.ins
-%
-% 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>.
-%
-
-\def\batchfile{twoopt.ins}
-\input docstrip.tex
-{\ifx\generate\undefined
-\Msg{**********************************************}
-\Msg{*}
-\Msg{* This installation requires docstrip}
-\Msg{* version 2.3c or later.}
-\Msg{*}
-\Msg{* An older version of docstrip has been input}
-\Msg{*}
-\Msg{**********************************************}
-\errhelp{Move or rename old `docstrip.tex'.}
-\errmessage{Old docstrip in input path}
-\batchmode
-\csname @@end\endcsname
-\fi}
-
-\keepsilent
-
-\preamble
-
-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>.
-
-\endpreamble
-
-\generateFile{twoopt.sty}{f}{\from{twoopt.dtx}{package}}
-%\generateFile{twoopt.drv}{f}{\from{twoopt.dtx}{driver}}
-
-\Msg{***********************************************************}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space twoopt.sty}
-\Msg{*}
-\Msg{* To produce the documentation run the file `twoopt.dtx'}
-\Msg{* through LaTeX.}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-
-\endinput
diff --git a/Master/texmf-dist/source/latex/oberdiek/zref.dtx b/Master/texmf-dist/source/latex/oberdiek/zref.dtx
new file mode 100644
index 00000000000..999d3372bfd
--- /dev/null
+++ b/Master/texmf-dist/source/latex/oberdiek/zref.dtx
@@ -0,0 +1,3261 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any later
+% version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% This work consists of the main source file zref.dtx
+% and the derived files
+% zref.sty, zref.pdf, zref.ins, zref.drv,
+% zref-base.sty, zref-abspage.sty, zref-counter.sty,
+% zref-dotfill.sty, zref-hyperref.sty, zref-lastpage.sty,
+% zref-perpage.sty, zref-savepos.sty, zref-titleref.sty,
+% zref-totpages.sty, zref-user.sty, zref-xr.sty,
+% zref-example.tex.
+%
+% Distribution:
+% CTAN:macros/latex/contrib/oberdiek/zref.dtx
+% CTAN:macros/latex/contrib/oberdiek/zref.pdf
+%
+% Unpacking:
+% (a) If zref.ins is present:
+% tex zref.ins
+% (b) Without zref.ins:
+% tex zref.dtx
+% (c) If you insist on using LaTeX
+% latex \let\install=y\input{zref.dtx}
+% (quote the arguments according to the demands of your shell)
+%
+% Documentation:
+% (a) If zref.drv is present:
+% latex zref.drv
+% (b) Without zref.drv:
+% latex zref.dtx; ...
+% The class ltxdoc loads the configuration file ltxdoc.cfg
+% if available. Here you can specify further options, e.g.
+% use A4 as paper format:
+% \PassOptionsToClass{a4paper}{article}
+%
+% Programm calls to get the documentation (example):
+% pdflatex zref.dtx
+% makeindex -s gind.ist zref.idx
+% pdflatex zref.dtx
+% makeindex -s gind.ist zref.idx
+% pdflatex zref.dtx
+%
+% Installation:
+% TDS:tex/latex/oberdiek/zref.sty
+% TDS:tex/latex/oberdiek/zref-base.sty
+% TDS:tex/latex/oberdiek/zref-abspage.sty
+% TDS:tex/latex/oberdiek/zref-counter.sty
+% TDS:tex/latex/oberdiek/zref-dotfill.sty
+% TDS:tex/latex/oberdiek/zref-hyperref.sty
+% TDS:tex/latex/oberdiek/zref-lastpage.sty
+% TDS:tex/latex/oberdiek/zref-perpage.sty
+% TDS:tex/latex/oberdiek/zref-savepos.sty
+% TDS:tex/latex/oberdiek/zref-titleref.sty
+% TDS:tex/latex/oberdiek/zref-totpages.sty
+% TDS:tex/latex/oberdiek/zref-user.sty
+% TDS:tex/latex/oberdiek/zref-xr.sty
+% TDS:doc/latex/oberdiek/zref.pdf
+% TDS:doc/latex/oberdiek/zref-example.tex
+% TDS:source/latex/oberdiek/zref.dtx
+%
+%<*ignore>
+\begingroup
+ \def\x{LaTeX2e}
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: zref 2006/05/25 v1.2 New reference scheme for LaTeX2e (HO)}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3 of this license or (at your option) any later
+version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Heiko Oberdiek.
+
+This work consists of the main source file zref.dtx
+and the derived files
+ zref.sty, zref.pdf, zref.ins, zref.drv,
+ zref-base.sty, zref-abspage.sty, zref-counter.sty,
+ zref-dotfill.sty, zref-hyperref.sty, zref-lastpage.sty,
+ zref-perpage.sty, zref-savepos.sty, zref-titleref.sty,
+ zref-totpages.sty, zref-user.sty, zref-xr.sty,
+ zref-example.tex.
+
+\endpreamble
+
+\generate{%
+ \file{zref.ins}{\from{zref.dtx}{install}}%
+ \file{zref.drv}{\from{zref.dtx}{driver}}%
+ \usedir{tex/latex/oberdiek}%
+ \file{zref.sty}{\from{zref.dtx}{package}}%
+ \file{zref-base.sty}{\from{zref.dtx}{base}}%
+ \file{zref-abspage.sty}{\from{zref.dtx}{abspage}}%
+ \file{zref-counter.sty}{\from{zref.dtx}{counter}}%
+ \file{zref-dotfill.sty}{\from{zref.dtx}{dotfill}}%
+ \file{zref-hyperref.sty}{\from{zref.dtx}{hyperref}}%
+ \file{zref-lastpage.sty}{\from{zref.dtx}{lastpage}}%
+ \file{zref-perpage.sty}{\from{zref.dtx}{perpage}}%
+ \file{zref-savepos.sty}{\from{zref.dtx}{savepos}}%
+ \file{zref-titleref.sty}{\from{zref.dtx}{titleref}}%
+ \file{zref-totpages.sty}{\from{zref.dtx}{totpages}}%
+ \file{zref-user.sty}{\from{zref.dtx}{user}}%
+ \file{zref-xr.sty}{\from{zref.dtx}{xr}}%
+ \usedir{doc/latex/oberdiek}%
+ \file{zref-example.tex}{\from{zref.dtx}{example}}%
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* zref.sty, zref-base.sty, zref-abspage.sty, zref-counter.sty,}
+\Msg{* zref-dotfill.sty, zref-hyperref.sty, zref-lastpage.sty,}
+\Msg{* zref-perpage.sty, zref-savepos.sty, zref-titleref.sty,}
+\Msg{* zref-totpages.sty, zref-user.sty, zref-xr.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `zref.drv'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{zref.drv}%
+ [2006/05/25 v1.2 New reference scheme for LaTeX2e (HO)]
+\documentclass{ltxdoc}
+\usepackage{holtxdoc}
+\begin{document}
+ \DocInput{zref.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{1452}
+%
+% \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 \~}
+%
+% \GetFileInfo{zref.drv}
+%
+% \title{The \xpackage{zref} package}
+% \date{2006/05/25 v1.2}
+% \author{Heiko Oberdiek\\\xemail{oberdiek@uni-freiburg.de}}
+%
+% \maketitle
+%
+% \begin{abstract}
+% Package \xpackage{zref} tries to get rid of the restriction
+% in \LaTeX's reference system that only two properties are
+% supported. The package implements an extensible referencing
+% system, where properties are handled in a more flexible way.
+% It offers an interface for macro programmers for the access
+% to the system and some applications that uses the new
+% reference scheme.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \newcommand*{\metacs}[1]{\texttt{\itshape #1}}
+%
+% \newcommand{\markexp}{^^A
+% \textsuperscript{exp}^^A
+% \space
+% }
+% \newcommand{\markrobust}{^^A
+% \textsuperscript{robust}^^A
+% \space
+% }
+% \newcommand{\marknowarn}{^^A
+% \textsuperscript{nowarn}^^A
+% \space
+% }
+% \newcommand{\markbabel}{^^A
+% \textsuperscript{babel}^^A
+% \space
+% }
+%
+% \section{Introduction}
+%
+% Standard \LaTeX's reference system with \cs{label}, \cs{ref},
+% and \cs{pageref} supports two properties, the apperance of
+% the counter that is last incremented by \cs{refstepcounter} and
+% the page with the \cs{label} command.
+%
+% Unhappily \LaTeX\ does not provide an interface for adding
+% another properties. Packages such as \xpackage{hyperref},
+% \xpackage{nameref}, or \xpackage{titleref} are forced to
+% use ugly hacks to extend the reference system.
+% These ugly hacks are one of the causes for \xpackage{hyperref}'s
+% difficulty regarding compatibility with other packages.
+%
+% \subsection{Standard \LaTeX\ behaviour}
+%
+% References are created by the \cs{label} command:
+% \begin{quote}
+% |\chapter{Second chapter}|\\
+% |\section{First section on page 7} % section 2.1|\\
+% |\label{myref}|
+% \end{quote}
+% Now \LaTeX\ records the section number |2.1| and the page |7|
+% in the reference. Internally the reference is a list with
+% two entries:
+% \begin{quote}
+% |\r@myref| $\rightarrow$ |{2.1}{7}|
+% \end{quote}
+% The length of the list if fixed in the \LaTeX\ kernel,
+% An interface for adding new properties is missing.
+%
+% There are several tries to add new properties:
+% \begin{description}
+% \item[\xpackage{hyperref}] uses a list of five
+% properties instead of the standard list with two entries.
+% This causes many compatibility problems with \LaTeX\ and
+% other packages.
+% \item[\xpackage{titleref}] stores its title data into the
+% first entry in the list. \LaTeX\ is happy because it
+% does only see its list with two entries. The situation
+% becomes more difficult, if more properties are added
+% this way. Then the macros form a nested structure
+% inside the first reference argument for the label.
+% Expandable extractions will then become painful.
+% \end{description}
+%
+% \subsection{Basic idea}
+%
+% Some time ago Morten H\o gholm sent me an experimental
+% cross referencing mechanism as ``expl3'' code. His
+% idea is:
+% \begin{quote}
+% |\g_xref_mylabel_plist| $\rightarrow$\\
+% \mbox{}\qquad|\xref_dance_key{salsa}\xref_name_key{Morten}|\dots
+% \end{quote}
+% The entries have the following format:
+% \begin{quote}
+% |\xref_|\meta{your key}|_key{|\meta{some text}|}|
+% \end{quote}
+% This approach is much more flexible:
+% \begin{itemize}
+% \item New properties can easily be added, just use a new key.
+% \item The length of the list is not fixed. A reference
+% can use a subset of the keys.
+% \item The order of the entries does not matter.
+% \end{itemize}
+% Unhappily I am not familiar with the experimental code
+% for \LaTeX3 that will need some time before its first release.
+% Thus I have implemented it as \LaTeXe\ package without disturbing
+% the existing \LaTeX\ reference system.
+%
+% \subsection{Interfaces}
+%
+% The package provides a generic \emph{interface for programmers}.
+% Commands of this interface are prefixed by \cs{zref@}.
+%
+% Option \xoption{user} enabels the \emph{user interface}.
+% Here the commands are prefixed by \cs{z} to avoid name
+% clashes with existing macros.
+%
+% Then the packages provides some \emph{modules}. They
+% are applications for the reference system and can also be
+% considered as examples how to use the reference system.
+%
+% The modules can be loaded as packages. The package
+% name is prefixed with |zref-|, for example:
+%\begin{quote}
+%\begin{verbatim}
+%\RequirePackage{zref-abspage}
+%\end{verbatim}
+%\end{quote}
+% This is the preferred way if the package is loaded from
+% within other packages to avoid option clashes.
+%
+% As alternative package |zref| can be used and the modules
+% are given as options:
+%\begin{quote}
+%\begin{verbatim}
+%\usepackage[perpage,user]{zref}
+%\end{verbatim}
+%\end{quote}
+%
+% \section{Interface for programmers}
+%
+% The user interface is described in the next section \ref{sec:user}.
+%
+% \subsection{Entities}
+%
+% \paragraph{Reference.}
+% Internally a reference is a list of key value pairs:
+% \begin{quote}
+% |\Z@R@myref| $\rightarrow$
+% |\default{2.1}\page{7}|
+% \end{quote}
+% The generic format of a entry is:
+% \begin{quote}
+% |\Z@R@|\meta{refname} $\rightarrow$
+% |\|\meta{propname}|{|\meta{value}|}|
+% \end{quote}
+% \meta{refname} is the name that denoted references
+% (the name used in \cs{label} and \cs{ref}). \meta{propname}
+% is the name of the property or key. The property key macro
+% is never executed, it is used in parameter text matching only.
+%
+% \paragraph{Property.}
+% Because the name of a property is used in a macro name
+% that must survive the \xfile{.aux} file, the name is
+% restricted to letters and `@'.
+%
+% \paragraph{Property list.}
+% Often references are used for special purposes. Thus it
+% saves memory if just the properties are used in this
+% reference that are necessary for its purpose.
+%
+% Therefore this package uses the concept of \emph{property lists}.
+% A property list is a set of properties. The set of properties
+% that is used by the default \cs{label} command is the
+% \emph{main property list}.
+%
+% \subsection{Property list}
+%
+% \markexp means that the implementation of the
+% marked macro is expandable.
+%
+% \begin{declcs}{zref@newlist}
+% \M{listname}
+% \end{declcs}
+% Declares a new empty property list.
+%
+% \begin{declcs}{zref@addprop}
+% \M{listname} \M{propname}
+% \end{declcs}
+% Adds the property \meta{propname} to the property list \meta{listname}.
+% The property and list must exist.
+%
+% \begin{declcs}{zref@listexists}
+% \M{listname} \M{then}
+% \end{declcs}
+% Executes \meta{then} if the property list \meta{listname} exists
+% or raise an error otherwise.
+%
+% \begin{declcs}{zref@iflistundefined}\markexp \M{listname}
+% \M{then} \M{else}
+% \end{declcs}
+% Executes \meta{then} if the list exists or \meta{else}
+% otherwise.
+%
+% \begin{declcs}{zref@iflistcontainsprop}
+% \M{listname} \M{propname} \M{then} \M{else}
+% \end{declcs}
+% Executes \meta{then} if the property \meta{propname} is part
+% of property list \meta{listname} or otherwise it
+% runs the \meta{else} part.
+%
+% \subsection{Property}
+%
+% \begin{declcs}{zref@newprop}
+% \* \M{propname} |[|\meta{default}|]| \M{value}
+% \end{declcs}
+% This command declares and configures a new property with
+% name \meta{propname}.
+%
+% In case of unknown references
+% or the property does not exist in the reference, the
+% \meta{default} is used as value. If it is not specified
+% here, a global default is used, see \cs{zref@setdefault}.
+%
+% The correct values of some properties are not known
+% immediately but at page shipout time. Prominent example
+% is the page number. These properties are declared with
+% the star form of the command.
+%
+% \begin{declcs}{zref@setcurrent}
+% \M{propname} \M{value}
+% \end{declcs}
+% This sets the current value of the property \meta{propname}.
+% It is a generalization of setting \LaTeX's \cs{currentlabel}.
+%
+% \begin{declcs}{zref@propexists}
+% \M{propname} \M{then}
+% \end{declcs}
+% Calls \meta{then} if the property \meta{propname} is available
+% or generates an error message otherwise.
+%
+% \begin{declcs}{zref@ifpropundefined}\markexp
+% \M{propname} \M{then} \M{else}
+% \end{declcs}
+% Calls \meta{then} or \meta{else} depending on the existence
+% of property \meta{propname}.
+%
+% \subsection{Reference generation}
+%
+% \begin{declcs}{zref@label}
+% \M{refname}
+% \end{declcs}
+% This works similar to \cs{label}. The reference \meta{refname} is
+% created and put into the \xfile{.aux} file with the
+% properties of the main property list.
+%
+% \begin{declcs}{zref@labelbylist}
+% \M{refname} \M{listname}
+% \end{declcs}
+% Same as \cs{zref@label} except that the properties are
+% taken from the specified property list \meta{listname}.
+%
+% \begin{declcs}{zref@labelbyprops}
+% \M{refname} |{|\meta{propnameA}|,|\meta{propnameB}|,|\dots|}|
+% \end{declcs}
+% Same as \cs{zref@label} except that these properties
+% are used that are given as comma separated list in the
+% second argument.
+%
+% \begin{declcs}{zref@newlabel}
+% \M{refname} |{|\dots|}|
+% \end{declcs}
+% This is the macro that is used in the \xfile{.aux} file.
+% It is basically the same as \cs{newlabel} apart from
+% the format of the data in the second argument.
+%
+% \subsection{Data extraction}
+%
+% \begin{declcs}{zref@extractdefault}\markexp
+% \M{refname} \M{propname} \M{default}
+% \end{declcs}
+% This is the basic command that refernces the value of a
+% property \meta{propname} for the reference \meta{refname}.
+% In case of errors such as undefined reference the \meta{default}
+% is used instead.
+%
+% \begin{declcs}{zref@extract}\markexp
+% \M{refname} \M{propname}
+% \end{declcs}
+% The command is an abbreviation for \cs{zref@extractdefault}.
+% As default the default of the property is taken, otherwise
+% the global default.
+%
+% Example for page references:
+% \begin{quote}
+% \begin{tabular}{@{}ll}
+% \LaTeX:& |\pageref{foobar}|\\
+% \xpackage{zref}:& |\zref@extract{foobar}{page}|
+% \end{tabular}
+% \end{quote}
+% Both \cs{zref@extract} and \cs{zref@extractdefault} are
+% expandable. That means, these macros can directly
+% be used in expandable calculations, see the example file.
+% On the other side, babel's shorthands are not supported,
+% there are no warnings in case of undefined references.
+%
+% If an user interface doesn't need expandable macros
+% then it can use \cs{zref@used} and \cs{zref@wrapper@babel}
+% for its user macros.
+%
+% \begin{declcs}{zref@used}
+% \M{refname}
+% \end{declcs}
+% This command is not expandable. It causes the warnings if
+% the reference \meta{refname} is not defined. Use the
+% \cs{zref@extract} commands inside expandable contexts and
+% mark their use outside by \cs{zref@used}, see the example
+% file.
+%
+% \begin{declcs}{zref@ifrefundefined}\markexp
+% \M{refname} \M{then} \M{else}
+% \end{declcs}
+% A possibility to check whether a reference exists.
+%
+% \begin{declcs}{zref@ifrefcontainsprop}\markexp
+% \M{refname} \M{propname} \M{then} \M{else}
+% \end{declcs}
+% Test whether a reference provides a property.
+%
+% \subsection{Setup}
+%
+% \begin{declcs}{zref@default}
+% \end{declcs}
+% Holds the global default for unknown values.
+%
+% \begin{declcs}{zref@setdefault}
+% |{|\meta{value}|}|
+% \end{declcs}
+% Sets the global default for unknown values.
+% The global default is used, if a property does not specify
+% an own default and the value for a property
+% cannot be extracted. This can happen if the reference is
+% unknown or the reference does not have the property.
+%
+% \begin{declcs}{zref@setmainlist}
+% |{|\meta{value}|}|
+% \end{declcs}
+% Sets the name of the main property list. The package
+% sets and uses |main|.
+%
+% \subsection{Declared properties}
+%
+% \begin{quote}
+% \renewcommand*{\arraystretch}{1.05}
+% \setlength{\tabcolsep}{2\tabcolsep}
+% \def\VV{\vphantom{\large \"Ag}}
+% \def\EMPTY{{\itshape\textless empty\textgreater}}
+% \begin{tabular}{@{}>{\sffamily}l|>{\ttfamily}l|>{\ttfamily}l|>{\ttfamily}l@{}}
+% \rmfamily Modul&
+% \rmfamily Property&
+% \rmfamily Property list&
+% \rmfamily Default\\
+% \hline
+% & default & main & \EMPTY\\
+% & page & main & \EMPTY\\
+% \hline
+% abspage\textrm{, }totpages & abspage & main & 0\\
+% \hline
+% perpage & pagevalue & perpage & 0\\
+% & page & perpage & \EMPTY\\
+% & abspage & perpage & 0\\
+% \hline
+% counter & counter & main & \EMPTY\\
+% \hline
+% titleref & title & main & \EMPTY\\
+% \hline
+% savepos & posx & savepos & 0\\
+% & posy & savepos & 0\\
+% \hline
+% hyperref & anchor & main & \EMPTY\\
+% & url & & \EMPTY\\
+% \hline
+% xr & url & & \EMPTY\\
+% \end{tabular}
+% \end{quote}
+%
+% \subsection{Wrapper for advanced situations}
+%
+% \begin{declcs}{zref@wrapper@babel}
+% |{|\dots|}| \M{name}
+% \end{declcs}
+% This macro helps to add shorthand support. The second
+% argument is protected, then the code of the first argument
+% is called with the protected name appended. Examples
+% are in the sources.
+%
+% \begin{declcs}{zref@wrapper@immediate}
+% |{|\dots|}|
+% \end{declcs}
+% There are situations where a label must be written instantly
+% to the \xfile{.aux} file, for example after the last page.
+% If the \cs{label} command is put inside this wrapper,
+% immediate writing is enabled. See the implementation for
+% option \xoption{lastpage}.
+%
+% \begin{declcs}{zref@wrapper@unexpanded}
+% |{|\dots|}|
+% \end{declcs}
+% Assuming someone wants to extract a value for property |bar|
+% and store the result in a macro |\foo| without traces of
+% the expanding macros and without expanding the value.
+% This (theoretical?) problem can be solved by this wrapper:
+% \begin{quote}
+%\begin{verbatim}
+%\edef\foo{%
+% \zref@wrapper@unexpanded{%
+% \zref@extract{someref}{bar}%
+% }%
+%}
+%\end{verbatim}
+% \end{quote}
+% The \cs{edef} forces the expansion of \cs{zref@extract},
+% but the extraction of the value is prevented by
+% the wrapper that uses \eTeX'\ \cs{unexpanded} for this
+% purpose.
+%
+% \subsection{Counter for unique names}
+%
+% Some modules (\xoption{titleref} and \xoption{dotfillmin})
+% need unique names for automatically generated label names.
+%
+% \begin{declcs}{zref@require@unique}
+% \end{declcs}
+% This command creates the unique counter |zref@unique| if the
+% counter does not already exist.
+%
+% \begin{declcs}{thezref@unique}
+% \end{declcs}
+% This command is used to generate unique label names.
+%
+% \section{User interface}\label{sec:user}
+%
+% \subsection{Module \xoption{user}}
+%
+% The user interface for this package and its modules
+% is enabled by \xpackage{zref}'s package option \xoption{user}
+% or package \xpackage{zref-user}.
+% The names of user commands are prefixed by |z| in order
+% to avoid name clashes with existing macros of the same
+% functionality. Thus the package does not disturb the
+% traditional reference scheme, both can be used together.
+%
+% The syntax descriptions contain the following markers
+% that are intended as hints for programmers:
+% \begin{quote}
+% \begin{tabular}{@{}ll@{}}
+% \markbabel\unskip & Babel shorthands are allowed.\\
+% \markrobust\unskip & Robust macro.\\
+% \markexp\unskip & Expandable version:\\
+% & \textbullet\ robust,
+% unless the extracted values are fragile,\\
+% & \textbullet\ no babel shorthand suport.
+% \end{tabular}
+% \end{quote}
+%
+% The basic user interface of the package without modules
+% are commands that mimic the standard \LaTeX\ behaviour
+% of \cs{label}, \cs{ref}, and \cs{pageref}:
+%
+% \begin{declcs}{zlabel}
+% \M{refname}\markbabel
+% \end{declcs}
+% Similar to \cs{label}. It generates a label with name
+% \meta{refname} in the new reference scheme.
+%
+% \begin{declcs}{zref}
+% |[|\meta{propname}|]| \M{refname}\markbabel
+% \end{declcs}
+% Without optional argument similar to \cs{ref}, it returns
+% the default reference property. This property is named
+% |default|:
+% \[
+% |\zref{|x|}| \equiv |\zref[default]{|x|}|
+% \]
+%
+% \begin{declcs}{zpageref}
+% \M{refname}\markbabel
+% \end{declcs}
+% Convenience macro, similar to \cs{pageref}.
+% \[
+% |\zpageref{|x|}| \equiv |\zref[page]{|x|}|
+% \]
+%
+% \begin{declcs}{zrefused}
+% \M{refname}\markbabel
+% \end{declcs}
+% Some of the user commands in the modules are expandable.
+% The use of such commands do not cause any undefined
+% reference warnings, because inside of expandable
+% contexts this is not possible. However, if there is
+% a place outside of expandable contexts, \cs{refused}
+% is strongly recommended. The reference \meta{refname}
+% is marked as used, undefined ones will generate
+% warnings.
+%
+% \subsection{Module \xoption{abspage}}
+%
+% With the help of package \xpackage{everyshi} (\cite{everyshi})
+% a new counter |abspage| with absolute page numbers is provided.
+% Also a new property |abspage| is defined and added to the
+% main property list. Thus you can reference the absolute
+% page number:
+% \begin{quote}
+% |Section \zref{foo} is on page \zpageref{foo}.|\\
+% |This is page \zref[abspage]{foo} of \zref[abspage]{LastPage}.|
+% \end{quote}
+% The example also makes use of option \xoption{lastpage}.
+%
+% \subsection{Module \xoption{lastpage}}
+%
+% Provides the functionality of package \xpackage{lastpage}
+% (\cite{lastpage}) in the new reference scheme.
+% The label |LastPage| is put at the end of the document.
+% You can refer the last page number with:
+% \begin{quote}
+% |\zpageref{LastPage}|
+% \end{quote}
+%
+% \subsection{Module \xoption{totpages}}
+%
+% For the total number of pages of a document you need to
+% know the absolute page number of the last page.
+% Both options \xoption{abspage} and \xoption{lastpage}
+% are necessary and automatically enabled.
+%
+% \begin{declcs}{ztotpages}\markexp
+% \end{declcs}
+% Prints the total number of pages or |0| if this
+% number is not yet known. This command can also used
+% in calculations or counter assignments.
+%
+% \subsection{Module \xoption{perpage}}
+%
+% With \cs{@addtoreset} or \cs{numberwithin} a counter can be
+% reset if another counter is incremented. This do not work
+% well if the other counter is the page counter. The page counter is
+% incremented in the output routine that is often called asynchronous
+% somewhere on the next page. A reference mechanism costs at least
+% two \LaTeX\ runs, but ensures correct page counter values.
+%
+% \begin{declcs}{zmakeperpage}
+% |[|\meta{reset}|]| \M{counter}
+% \end{declcs}
+% At the of a new page counter \meta{counter} starts
+% counting with value \meta{reset} (default is \texttt{1}).
+% The macro has the same
+% syntax and semantics as \cs{MakePerPage} of package
+% \xpackage{perpage} (\cite{perpage}).
+% Also \xoption{perpage} of package \xpackage{footmisc} (\cite{footmisc})
+% can easily be simulated by
+% \begin{quote}
+% |\zmakeperpage{footnote}| \itshape |% \usepackage[perpage]{footmisc}|
+%\end{quote}
+% If footnote symbols are used, some people dislike the
+% first symbol \ensuremath{\dagger}. It can easily be skipped:
+% \begin{quote}
+% |\zmakeperpage[2]{footnote}|
+% \end{quote}
+%
+% \begin{declcs}{thezpage}\\
+% counter |zpage|
+% \end{declcs}
+% If the formatted counter value of the counter that is reset at
+% a new page contains the page value, then you can use \cs{thezpage},
+% the page number of the current page. Or counter |zpage| can be
+% used, if the page number should be formatted differently from
+% the current page number. Example:
+%\begin{quote}
+%\begin{verbatim}
+%\newcounter{foobar}
+%\zmakeperpage{foobar}
+%\renewcommand*{\thefoobar}{\thezpage-\arabic{foobar}}
+% % or
+%\renewcommand*{\thefoobar}{\roman{zpage}-\arabic{foobar}}
+%\end{verbatim}
+%\end{quote}
+%
+% \begin{declcs}{zunmakeperpage}
+% \M{counter}
+% \end{declcs}
+% The reset mechanism for this counter is deactivated.
+%
+%
+% \subsection{Module \xoption{counter}}
+%
+% This option just add the property |counter| to the main
+% property list. The property stores the counter name,
+% that was responsible for the reference. This is the
+% property \xpackage{hyperref}'s \cs{autoref} feature
+% uses. Thus this property |counter| may be useful
+% for a reimplementation of the autoref feature,
+% see the section \ref{sec:todo} with the todo list.
+%
+% \subsection{Module \xoption{titleref}}
+%
+% This option makes section and caption titles available
+% to the reference system similar to packages \xpackage{titleref}
+% or \xpackage{nameref}.
+%
+% \begin{declcs}{ztitleref}
+% \M{refname}\markbabel
+% \end{declcs}
+% Print the section or caption title of reference \meta{refname},
+% similar to \cs{nameref} or \cs{titleref}.
+%
+% \begin{declcs}{ztitlerefsetup}
+% |{|\textit{key$_1$=value$_1$, key$_2$=value$_2$, \dots}|}|
+% \end{declcs}
+% This command allows to configure the behaviour of modul
+% \xoption{titleref}. The following keys are available:
+% \begin{description}
+% \let\bfseries\relax
+% \item[\texttt{title=}\meta{value}]\mbox{}\\*
+% Sets the current title.
+% \item[\texttt{stripperiod=true\string|false}]\mbox{}\\*
+% Follow package \xpackage{nameref} that
+% removes a last period. Default: |true|.
+% \item[\texttt{expand=true\string|false}]\mbox{}\\*
+% Package \cs{titleref} expands the title first. This way
+% garbage and dangerous commands can be removed, e.g.
+% \cs{label}, \cs{index}\dots. See implementation section
+% for more details. Default is |false|.
+% \item[\texttt{cleanup=\{}\textrm{\dots}\texttt{\}}]\mbox{}\\*
+% Hook to add own cleanup code, if method |expand| is used.
+% See implementation section for more details.
+% \end{description}
+%
+% \subsection{Module \xoption{savepos}}
+%
+% This option supports a feature that \pdfTeX\ provides.
+% \pdfTeX\ is able to tell the current position on the
+% page. The page position is not instantly known. First the
+% page must be constructed by \TeX's asynchronous output
+% routine. Thus the time where the position is known is
+% the page shipout time. Thus a reference system where the
+% information is recorded in the first run and made available
+% for use in the second run comes in handy.
+%
+% \begin{declcs}{zsavepos}
+% \M{refname}
+% \end{declcs}
+% It generates a reference with name \meta{refname} to
+% the location where the command is executed.
+%
+% \begin{declcs}{zposx}\markexp
+% \M{refname}\\
+% \SpecialUsageIndex{\zposy}\cs{zposy}\markexp \M{refname}
+% \end{declcs}
+% Get the position as number. Unit is sp. Horizontal
+% positions by \cs{zposx} increase from left to right.
+% Vertical positions by \cs{zposy} from bottom to top.
+%
+% Do not rely on absolute page numbers. Because of problems
+% with the origin the numbers may differ in DVI or PDF mode
+% of \pdfTeX. Therefore work with relative values by comparisons.
+%
+% Both \cs{zposx} and \cs{zposy} are expandable and can be
+% used inside calculations (\cs{setcounter}, \cs{addtocounter},
+% package \xpackage{calc}, \cs{numexpr}). However this property
+% prevents from notifying \LaTeX\ that the reference is actually
+% used (the notifying is not expandable). Therefore you should
+% mark the reference as used by \cs{zrefused}.
+%
+% This module uses \pdfTeX's \cs{pdfsavepos}, \cs{pdflastxpos},
+% and \cs{pdflastypos}. They are available in PDF mode and
+% since version 1.40.0 also in DVI mode.
+%
+% \subsection{Module \xoption{dotfill}}
+%
+% \begin{declcs}{zdotfill}
+% \end{declcs}
+% This package provides the command \cs{zdotfill} that works
+% similar to \cs{dotfill}, but can be configured. Especially
+% it suppresses the dots if a minimum number of dots cannot be set.
+%
+% \begin{declcs}{zdotfillsetup}
+% |{|\textit{key$_1$=value$_1$, key$_2$=value$_2$, \dots}|}|
+% \end{declcs}
+% This command allows to configure the behaviour of \cs{zdotfill}.
+% The following keys are available:
+% \begin{description}
+% \let\bfseries\relax
+% \item[\texttt{min=}\meta{count value}]\mbox{}\\*
+% If the actual number of dots are smaller than \meta{count value},
+% then the dots are suppressed. Default: |2|.
+% \item[\texttt{unit=}\meta{dimen value}]\mbox{}\\*
+% The width of a dot unit is given by \meta{dimen value}.
+% Default: |0.44em| (same as the unit in \cs{dotfill}).
+% \item[\texttt{dot=}\meta{value}]\mbox{}\\*
+% The dot itself is given by \meta{value}. Default: |.| (dot, same as
+% the dot in \cs{dotfill}).
+% \end{description}
+%
+% \subsection{Module \xoption{xr}}
+%
+% This package provides the functionality of package \xpackage{xr},
+% see \cite{xr}. It also supports the syntax of \xpackage{xr-hyper}.
+%
+% \begin{declcs}{zexternaldocument}
+% \* |[|\meta{prefix}|]|\markbabel \M{external document}
+% |[|\meta{url}|]|
+% \end{declcs}
+% See \cs{externaldocument} for a description of this option.
+% The standard reference scheme and the scheme of this
+% package use different name spaces for reference names.
+% If the external document uses both systems. Then one
+% import statement would put the names in one namespace
+% and probably causing problems with multiple references
+% of the same name. Thus the star form only looks for
+% \cs{newlabel} in the \xfile{.aux} files, whereas without
+% star only \cs{zref@newlabel}s are used.
+%
+% In the star form it tries to detect labels from
+% \xpackage{hyperref}, \xpackage{titleref}, and \xpackage{ntheorem}.
+% If such an extended property from the packages before cannot
+% be found or are empty, they are not included in the
+% imported reference.
+%
+% Warnings are given if a reference name is already in use
+% and the item is ignored. Unknown properties will automatically
+% be declared.
+%
+% If the external references contain |anchor| properties,
+% then we need also a url to be able to address the external
+% file. As default the filename is taken with a default
+% extension.
+%
+% \begin{declcs}{zxrsetup}
+% |{|\textit{key$_1$=value$_1$, key$_2$=value$_2$, \dots}|}|
+% \end{declcs}
+% Currently the key |ext| is defined, this sets the
+% url default extension.
+%
+% \begin{declcs}{zref@xr@ext}
+% \end{declcs}
+% If the \meta{url} is not specified in \cs{zref@externaldocument},
+% then the url will be constructed with the file name and
+% this macro as extension. \cs{XR@ext} is used if
+% \xpackage{hyperref} is loaded, otherwise |pdf|.
+%
+%
+% \section{ToDo}\label{sec:todo}
+%
+% Among other things the following issues are left for future work:
+% \begin{itemize}
+% \item
+% The user land macros are not checked for robustness yet.
+% They can be fragile. If this happens, use \cs{protect}
+% until a later version of this package. The \cs{protect}
+% will not disturb, if the protected macro become robust
+% in the future.
+% \item Other applications: autoref, hyperref, \dots
+% \end{itemize}
+%
+% \section{Example}
+%
+% \begin{macrocode}
+%<*example>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\documentclass{book}
+
+\usepackage[ngerman]{babel}%
+
+\usepackage[savepos,totpages,titleref,dotfill,counter,user]{zref}
+
+% \end{macrocode}
+%
+% Chapters are wrapped inside \cs{ChapterStart} and
+% \cs{ChapterStop}. The first argument \verb|#1| of \cs{ChapterStart}
+% is used to form a label id \verb|chap:#1|. At the end of
+% the chapter another label is set by \cs{zref@wrapper@immediate}, because
+% otherwise at the end of document a deferred write would not
+% be written, because there is no page for shipout.
+%
+% Also this example shows how chapter titles can be recorded.
+% A new property \verb|chaptitle| is declared and added to the
+% main property list. In \cs{ChapterStart} the current value
+% of the property is updated.
+% \begin{macrocode}
+\makeatletter
+\zref@newprop{chaptitle}{}
+\zref@addprop{main}{chaptitle}
+
+\newcommand*{\ChapterStart}[2]{%
+ \cleardoublepage
+ \def\current@chapid{#1}%
+ \zref@setcurrent{chaptitle}{#2}%
+ \chapter{#2}%
+ \zlabel{chap:#1}%
+}
+\newcommand*{\ChapterStop}{%
+ \cleardoublepage
+ \zref@wrapper@immediate{%
+ \zref@labelbyprops{chapend:\current@chapid}{abspage}%
+ }%
+}
+% \end{macrocode}
+% \cs{ChapterPages} calculates and returns the number of pages of the
+% referenced chapter.
+% \begin{macrocode}
+\newcommand*{\ChapterPages}[1]{%
+ \zrefused{chap:#1}%
+ \zrefused{chapend:#1}%
+ \number\numexpr
+ \zref@extract{chapend:#1}{abspage}%
+ -\zref@extract{chap:#1}{abspage}%
+ +1\relax
+}
+\makeatother
+% \end{macrocode}
+% \begin{macrocode}
+\begin{document}
+% \end{macrocode}
+% As exception we use \cs{makeatletter} here, because
+% this is just an example file that also should show some of
+% programmer's interface.
+% \begin{macrocode}
+\makeatletter
+
+\frontmatter
+\zlabel{documentstart}
+
+\begin{itemize}
+\item
+ The frontmatter part has
+ \number\numexpr\zref@extract{chap:first}{abspage}-1\relax~pages.
+\item
+ Chapter \zref{chap:first} has \ChapterPages{first} page(s).
+\item
+ Section \zref{hello} is on the
+ \ifcase\numexpr
+ \zref@extractdefault{hello}{page}{0}%
+ -\zref@extractdefault{chap:first}{page}{0}%
+ +1\relax
+ ??\or first\or second\or third\or forth\fi
+ ~page inside its chapter.
+\item
+ The document has
+ \zref[abspage]{LastPage} pages.
+ This number is \ifodd\ztotpages odd\else even\fi.
+\item
+ The last page is labeled with \zpageref{LastPage}.
+\item
+ The title of chapter \zref{chap:next} is ``\zref[chaptitle]{chap:next}''.
+\end{itemize}
+
+\tableofcontents
+
+\mainmatter
+\ChapterStart{first}{First chapter}
+
+% \end{macrocode}
+% The user level commands should protect babel shorthands
+% where possible. On the other side, expandable extracting
+% macros are useful in calculations, see above the
+% examples with \cs{numexpr}.
+% \begin{macrocode}
+\section{Test}
+\zlabel{a"o}
+Section \zref{a"o} on page
+\zref@wrapper@babel\zref@extract{a"o}{page}.
+
+Text.
+\newpage
+
+\section{Hello World}
+\zlabel{hello}
+
+\ChapterStop
+
+\ChapterStart{next}{Next chapter with \emph{umlauts}: "a"o"u"s}
+
+% \end{macrocode}
+%
+% Here an example follows that makes use of \pdfTeX's ``savepos''
+% feature. The position on the page is not known before the
+% page is constructed and shipped out. Therefore the position
+% ist stored in references and are available for calculations
+% in the next \LaTeX\ compile run.
+% \begin{macrocode}
+The width of the first column is
+ \the\dimexpr \zposx{secondcol}sp - \zposx{firstcol}sp\relax,\\
+the height difference of the two baselines is
+ \the\dimexpr \zposy{firstcol}sp - \zposy{secondline}sp\relax:\\
+\begin{tabular}{ll}
+\zsavepos{firstcol}Hello&\zsavepos{secondcol}World\\
+\zsavepos{secondline}Second line&foobar\\
+\end{tabular}
+
+% \end{macrocode}
+% With \cs{zrefused} \LaTeX\ is notified, if the references
+% are not yet available and \LaTeX\ can generate the rerun
+% hint.
+% \begin{macrocode}
+\zrefused{firstcol}
+\zrefused{secondcol}
+\zrefused{secondline}
+
+\ChapterStop
+% \end{macrocode}
+% Test for module \cs{dotfill}.
+% \begin{macrocode}
+\ChapterStart{dotfill}{Test for dotfill feature}
+\newcommand*{\dftest}[1]{%
+ #1&
+ [\makebox[#1]{\dotfill}]&
+ [\makebox[#1]{\zdotfill}]\\
+}
+\begin{tabular}{rll}
+& [\verb|\dotfill|] & [\verb|\zdotfill|]\\
+\dftest{0.43em}
+\dftest{0.44em}
+\dftest{0.45em}
+\dftest{0.87em}
+\dftest{0.88em}
+\dftest{0.89em}
+\dftest{1.31em}
+\dftest{1.32em}
+\dftest{1.33em}
+\end{tabular}
+\ChapterStop
+\end{document}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</example>
+% \end{macrocode}
+%
+% \StopEventually{
+% }
+%
+% \section{Implementation}
+%
+% \subsection{Package \xpackage{zref}}
+%
+% \subsubsection{Identification}
+%
+% \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref}
+ [2006/05/25 v1.2 New reference scheme for LaTeX2e (HO)]
+% \end{macrocode}
+%
+% \subsubsection{Load basic module}
+%
+% \begin{macrocode}
+\RequirePackage{zref-base}[2006/05/25]
+% \end{macrocode}
+% Abort package loading if \xpackage{zref-base} could not be
+% loaded successfully.
+% \begin{macrocode}
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% \subsubsection{Process options}
+%
+% Known modules are loaded and the release date is checked.
+% \begin{macrocode}
+\def\ZREF@temp#1{%
+ \DeclareOption{#1}{%
+ \AtEndOfPackage{%
+ \RequirePackage{zref-#1}[2006/05/25]%
+ }%
+ }%
+}
+\ZREF@temp{abspage}
+\ZREF@temp{counter}
+\ZREF@temp{dotfill}
+\ZREF@temp{hyperref}
+\ZREF@temp{lastpage}
+\ZREF@temp{perpage}
+\ZREF@temp{savepos}
+\ZREF@temp{titleref}
+\ZREF@temp{totpages}
+\ZREF@temp{user}
+\ZREF@temp{xr}
+% \end{macrocode}
+% \begin{macrocode}
+\ProcessOptions\relax
+%</package>
+% \end{macrocode}
+%
+%
+% \subsection{Module base}
+%
+% \subsubsection{Prefixes}
+%
+% This package uses the following prefixes for macro names:
+% \begin{description}
+% \item[\cs{zref@}:] Macros of the programmer's interface.
+% \item[\cs{ZREF@}:] Internal macros.
+% \item[\cs{Z@L@}\metacs{listname}:]
+% The properties of the list \meta{listname}.
+% \item[\cs{Z@D@}\metacs{propname}:]
+% The default value for property \meta{propname}.
+% \item[\cs{Z@E@}\metacs{propname}:]
+% Extract function for property \meta{propname}.
+% \item[\cs{Z@X@}\metacs{propname}:]
+% Information whether a property value for property
+% \meta{propname} is expanded
+% immediately or at shipout time.
+% \item[\cs{Z@C@}\metacs{propname}:]
+% Current value of the property \meta{propname}.
+% \item[\cs{Z@R@}\metacs{labelname}:]
+% Data for reference \meta{labelname}.
+% \item[\cs{ZREF@org@}:] Original versions of patched commands.
+% \item[\cs{z}:] For macros in user land, defined if
+% option \xoption{user} is set.
+% \end{description}
+% The following family names are used for keys defined
+% according to the \xpackage{keyval} package:
+% \begin{description}
+% \item[\texttt{ZREF@TR}:] Setup for \xoption{titleref}.
+% \end{description}
+%
+% \subsubsection{Identification}
+%
+% \begin{macrocode}
+%<*base>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-base}%
+ [2006/05/25 Module base for zref (HO)]
+% \end{macrocode}
+%
+% \subsubsection{Utilities}
+%
+% \begin{macro}{\ZREF@name}
+% Several times the package name is used, thus we store it
+% in \cmd{\ZREF@name}.
+% \begin{macrocode}
+\def\ZREF@name{zref}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@ErrorNoLine}
+% An error message for this package without line information is
+% generated by \cs{ZREF@ErrorNoLine}
+% \begin{macrocode}
+\def\ZREF@ErrorNoLine#1#2{%
+ \begingroup
+ \let\on@line\@empty
+ \PackageError\ZREF@name{#1}{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@UpdatePdfTeX}
+% \cs{ZREF@UpdatePdfTeX} is used as help message text in
+% error messages.
+% \begin{macrocode}
+\def\ZREF@UpdatePdfTeX{Update pdfTeX.}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifZREF@found}
+% The following switch is usded in list processing.
+% \begin{macrocode}
+\newif\ifZREF@found
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@patch}
+% Macro \cs{ZREF@patch} first checks the existence of
+% the command and safes it.
+% \begin{macrocode}
+\def\ZREF@patch#1{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname #1\endcsname\relax
+ \expandafter\@gobble
+ \else
+ \expandafter\let\csname ZREF@org@#1\expandafter\endcsname
+ \csname #1\endcsname
+ \expandafter\@firstofone
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Check for \eTeX}
+%
+% The use of \eTeX\ should be standard nowadays for \LaTeX.
+% We test for \eTeX\ in order to use its features later.
+% \begin{macrocode}
+\begingroup
+ \@ifundefined{eTeXversion}{%
+ \ZREF@ErrorNoLine{%
+ Missing support for eTeX; package is abandoned%
+ }{%
+ Use a TeX compiler that support eTeX and enable eTeX %
+ in the format.%
+ }%
+ \endgroup
+ \endinput
+ }{}
+\endgroup
+% \end{macrocode}
+%
+% \subsubsection{Auxiliary file stuff}
+%
+% We are using some commands in the \xfile{.aux} files.
+% However sometimes these auxiliary files are interpreted
+% by \LaTeX\ processes that haven't loaded this package
+% (e.g. package \xpackage{xr}).
+% Therefore we provide dummy definitions.
+% \begin{macrocode}
+\RequirePackage{auxhook}
+\AddLineBeginAux{%
+ \string\providecommand\string\zref@newlabel[2]{}%
+}
+% \end{macrocode}
+% \begin{macro}{\zref@newlabel}
+% For the implementation of \cs{zref@newlabel} we call
+% the same internal macro \cs{@newl@bel} that is used
+% in \cs{newlabel}. Thus we have for free:
+% \begin{itemize}
+% \item \cs{Z@R@}\metacs{labelname} is defined.
+% \item \LaTeX's check for multiple references.
+% \item \LaTeX's check for changed references.
+% \end{itemize}
+% \begin{macrocode}
+\def\zref@newlabel{%
+ \@newl@bel{Z@R}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Property lists}
+%
+% \begin{macro}{\zref@newlist}
+% Property lists are stored as list of property names
+% enclosed in curly braces. \cs{zref@newlist}
+% creates a new list as empty list. Assignments to
+% property lists are global.
+% \begin{macrocode}
+\def\zref@newlist#1{%
+ \zref@iflistundefined{#1}{%
+ \@ifdefinable{Z@L@#1}{%
+ \global\expandafter\let\csname Z@L@#1\endcsname\@empty
+ \PackageInfo{zref}{New property list: #1}%
+ }%
+ }{%
+ \PackageError\ZREF@name{%
+ Property list `#1' already exists%
+ }\@ehc
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@iflistundefined}
+% \cs{zref@iflistundefined} checks the existence of the
+% property list \verb|#1|. If the property list is present,
+% then \verb|#2| is executed and \verb|#3| otherwise.
+% \begin{macrocode}
+\def\zref@iflistundefined#1{%
+ \expandafter\ifx\csname Z@L@#1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zref@listexists}
+% \cs{zref@listexists} only executes \verb|#2| if the
+% property list \verb|#1| exists and raises an error
+% message otherwise.
+% \begin{macrocode}
+\def\zref@listexists#1{%
+ \zref@iflistundefined{#1}{%
+ \PackageError\ZREF@name{%
+ Property list `#1' does not exist%
+ }\@ehc
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@listcontainsprop}
+% \cs{zref@listcontainsprop} checks, whether a property \verb|#2| is
+% already present in a property list \verb|#1|.
+% \begin{macrocode}
+\def\zref@listcontainsprop#1{%
+ \expandafter\ZREF@listcontainsprop\csname Z@L@#1\endcsname
+}
+\def\ZREF@listcontainsprop#1#2{%
+ \begingroup
+ \ZREF@foundfalse
+ \edef\y{#2}%
+ \@tfor\x:=#1\do{%
+ \edef\x{\x}%
+ \ifx\x\y
+ \ZREF@foundtrue
+ \fi
+ }%
+ \expandafter\endgroup
+ \ifZREF@found
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@addprop}
+% \cs{zref@addprop} adds the property \verb|#2| to the property
+% list \verb|#1|, if the property is not already in the list.
+% Otherwise a warning is given.
+% \begin{macrocode}
+\def\zref@addprop#1#2{%
+ \zref@listexists{#1}{%
+ \zref@propexists{#2}{%
+ \zref@listcontainsprop{#1}{#2}{%
+ \PackageWarning\ZREF@name{%
+ Property `#2' is already in list `#1'%
+ }%
+ }{%
+ \expandafter\g@addto@macro\csname Z@L@#1\endcsname{{#2}}%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Properties}
+%
+% \begin{macro}{\zref@ifpropundefined}
+% \cs{zref@ifpropundefined} checks the existence of the
+% property \verb|#1|. If the property is present,
+% then \verb|#2| is executed and \verb|#3| otherwise.
+% \begin{macrocode}
+\def\zref@ifpropundefined#1{%
+ \expandafter\ifx\csname Z@E@#1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zref@propexists}
+% Some macros rely on the existence of a property.
+% \cs{zref@propexists} only executes \verb|#2| if the
+% property \verb|#1| exists and raises an error
+% message otherwise.
+% \begin{macrocode}
+\def\zref@propexists#1{%
+ \zref@ifpropundefined{#1}{%
+ \PackageError\ZREF@name{%
+ Property `#1' does not exist%
+ }\@ehc
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@newprop}
+% A new property is declared by \cs{zref@newprop}, the
+% property name \meta{propname} is given in \verb|#1|. The
+% property is created and configured. If the star form
+% is given, then the expansion of the property value
+% is delayed to page shipout time, when the reference
+% is written to the \xfile{.aux} file.
+% \begin{description}
+% \item[\cs{Z@D@}\metacs{propname}:]
+% Stores the default value for this property.
+% \item[\cs{Z@E@}\metacs{propname}:]
+% Extract function.
+% \item[\cs{Z@X@}\metacs{propname}:]
+% Information whether the expansion of the property value
+% is delayed to shipout time.
+% \item[\cs{Z@C@}\metacs{propname}:]
+% Current value of the property.
+% \end{description}
+% \begin{macrocode}
+\def\zref@newprop{%
+ \@ifstar{%
+ \let\ZREF@X\noexpand
+ \ZREF@newprop
+ }{%
+ \let\ZREF@X\@empty
+ \ZREF@newprop
+ }%
+}
+\def\ZREF@newprop#1{%
+ \PackageInfo{zref}{New property: #1}%
+ \def\ZREF@P{#1}%
+ \@ifnextchar[\ZREF@@newprop{\ZREF@@newprop[\zref@default]}%
+}
+\def\ZREF@@newprop[#1]{%
+ \global\@namedef{Z@D@\ZREF@P}{#1}%
+ \global\expandafter\let\csname Z@X@\ZREF@P\endcsname\ZREF@X
+ \expandafter\ZREF@@@newprop\csname\ZREF@P\endcsname
+ \zref@setcurrent\ZREF@P
+}
+\def\ZREF@@@newprop#1{%
+ \expandafter\gdef\csname Z@E@\ZREF@P\endcsname##1#1##2##3\ZREF@nil{##2}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@setcurrent}
+% \cs{zref@setcurrent} sets the current value for a property.
+% \begin{macrocode}
+\def\zref@setcurrent#1{%
+ \expandafter\def\csname Z@C@#1\endcsname
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Reference generation}
+%
+% \begin{macro}{\zref@label}
+% Label macro that uses the main property list.
+% \begin{macrocode}
+\def\zref@label#1{%
+ \zref@labelbylist{#1}\ZREF@mainlist
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zref@labelbylist}
+% Label macro that stores the properties, specified in the
+% property list \verb|#2|.
+% \begin{macrocode}
+\def\zref@labelbylist#1#2{%
+ \@bsphack
+ \zref@listexists{#2}{%
+ \expandafter\expandafter\expandafter\ZREF@label
+ \expandafter\expandafter\expandafter{%
+ \csname Z@L@#2\endcsname
+ }{#1}%
+ }%
+ \@esphack
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zref@labelbyprops}
+% The properties are directly specified in a comma separated list.
+% \begin{macrocode}
+\def\zref@labelbyprops#1#2{%
+ \@bsphack
+ \begingroup
+ \edef\l{#2}%
+ \toks@{}%
+ \@for\x:=#2\do{%
+ \zref@ifpropundefined{\x}{%
+ \PackageWarning\ZREF@name{%
+ Property `\x' is not known%
+ }%
+ }{%
+ \toks@\expandafter\expandafter\expandafter{%
+ \expandafter\the\expandafter\toks@\expandafter{\x}%
+ }%
+ }%
+ }%
+ \expandafter\endgroup
+ \expandafter\ZREF@label\expandafter{\the\toks@}{#1}%
+ \@esphack
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifZREF@immediate}
+% The switch \cs{ifZREF@immediate} tells us, whether the
+% label should be written immediately or at page shipout time.
+% \cs{ZREF@label} need to be notified about this, because
+% it must disable the deferred execution of property values,
+% if the label is written immediately.
+% \begin{macrocode}
+\newif\ifZREF@immediate
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zref@wrapper@immediate}
+% The argument of \cs{zref@wrapper@immediate} is executed inside
+% a group where \cs{write} is redefined by adding
+% \cs{immediate} before its execution. Also \cs{ZREF@label}
+% is notified via the switch \cs{ifZREF@immediate}.
+% \begin{macrocode}
+\long\def\zref@wrapper@immediate#1{%
+ \begingroup
+ \ZREF@immediatetrue
+ \let\ZREF@org@write\write
+ \def\write{\immediate\ZREF@org@write}%
+ #1%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@label}
+% \cs{ZREF@label} writes the data in the \xfile{.aux} file.
+% \verb|#1| contains the list of valid properties,
+% \verb|#2| the name of the reference. In case of immediate
+% writing, the deferred execution of property values is
+% disabled. Also \thepage is made expandable in this case.
+% \begin{macrocode}
+\def\ZREF@label#1#2{%
+ \if@filesw
+ \begingroup
+ \ifZREF@immediate
+ \let\ZREF@org@thepage\thepage
+ \fi
+ \protected@write\@auxout{%
+ \ifZREF@immediate
+ \let\thepage\ZREF@org@thepage
+ \fi
+ \let\ZREF@temp\@empty
+ \@tfor\ZREF@P:=#1\do{%
+ \expandafter\ifx
+ \csname\ifZREF@immediate relax\else Z@X@\ZREF@P\fi\endcsname
+ \noexpand
+ \expandafter\let\csname Z@C@\ZREF@P\endcsname\relax
+ \fi
+ \toks@\expandafter{\ZREF@temp}%
+ \edef\ZREF@temp{%
+ \the\toks@
+ \expandafter\string\csname\ZREF@P\endcsname{%
+ \expandafter\noexpand\csname Z@C@\ZREF@P\endcsname
+ }%
+ }%
+ }%
+ }{%
+ \string\zref@newlabel{#2}{\ZREF@temp}%
+ }%
+ \endgroup
+ \fi
+}
+\def\ZREF@addtoks#1{%
+ \toks@\expandafter\expandafter\expandafter{%
+ \expandafter\the\expandafter\toks@#1%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Reference querying and extracting}
+%
+% Design goal for the extracting macros is that the extraction
+% process is full expandable. Thus these macros can be used
+% in expandable contexts. But there are problems that cannot
+% be solved by full expandable macros:
+% \begin{itemize}
+% \item In standard \LaTeX\ undefined references sets a flag
+% and generate a warning. Both actions are not expandable.
+% \item Babel's support for its shorthand uses commands that
+% use non-expandable assignments. However currently there
+% is hope, that primitives are added to \pdfTeX\ that
+% allows the detection of contexts. Then the shorthand
+% can detect, if they are executed inside \cs{csname}
+% and protect themselves automatically.
+% \end{itemize}
+% \begin{macro}{\zref@ifrefundefined}
+% If a reference \verb|#1| is undefined, then macro
+% \cs{zref@ifrefundefined} calls \verb|#2| and \verb|#3| otherwise.
+% \begin{macrocode}
+\def\zref@ifrefundefined#1{%
+ \expandafter\ifx\csname Z@R@#1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@refused}
+% The problem with undefined references is addressed by
+% the macro \cs{zref@refused}. This can be used outside
+% the expandable context. In case of an undefined reference
+% the flag is set to notify \LaTeX\ and a warning is given.
+% \begin{macrocode}
+\def\zref@refused#1{%
+ \begingroup
+ \csname @safe@activestrue\endcsname
+ \zref@ifrefundefined{#1}{%
+ \protect\G@refundefinedtrue
+ \@latex@warning{%
+ Reference `#1' on page \thepage \space undefined%
+ }%
+ }{}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@extract}
+% \cs{zref@extract} is an abbreviation for the case
+% that the default of the property is used as default
+% value.
+% \begin{macrocode}
+\def\zref@extract#1#2{%
+ \expandafter\expandafter\expandafter\ZREF@extract
+ \expandafter\expandafter\expandafter{%
+ \csname Z@D@#2\endcsname
+ }{#1}{#2}%
+}
+\def\ZREF@extract#1#2#3{%
+ \zref@extractdefault{#2}{#3}{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@ifrefcontainsprop}
+% \cs{zref@ifrefcontainsprop} looks, if the reference \verb|#1|
+% has the property \verb|#2| and calls then \verb|#3| and
+% \verb|#4| otherwise.
+% \begin{macrocode}
+\def\zref@ifrefcontainsprop#1#2{%
+ \zref@ifrefundefined{#1}{%
+ \@secondoftwo
+ }{%
+ \expandafter\ZREF@ifrefcontainsprop
+ \csname Z@E@#2\expandafter\endcsname
+ \csname#2\expandafter\expandafter\expandafter\endcsname
+ \expandafter\expandafter\expandafter{%
+ \csname Z@R@#1\endcsname
+ }%
+ }%
+}
+\def\ZREF@ifrefcontainsprop#1#2#3{%
+ \expandafter\ifx\expandafter\ZREF@novalue
+ #1#3#2\ZREF@novalue\ZREF@nil\@empty
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
+\def\ZREF@novalue{\ZREF@NOVALUE}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@extractdefault}
+% The basic extracting macro is \cs{zref@extractdefault} with
+% the reference name in \verb|#1|, the property in \verb|#2| and
+% the default value in \verb|#3| in case for problems.
+% \begin{macrocode}
+\def\zref@extractdefault#1#2#3{%
+ \zref@ifrefundefined{#1}{%
+ \ZREF@unexpanded{#3}%
+ }{%
+ \expandafter\expandafter\expandafter\ZREF@unexpanded
+ \expandafter\expandafter\expandafter{%
+ \csname Z@E@#2\expandafter\expandafter\expandafter\endcsname
+ \csname Z@R@#1\expandafter\endcsname
+ \csname#2\endcsname{#3}\ZREF@nil
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@wrapper@unexpanded}
+% \begin{macrocode}
+\long\def\zref@wrapper@unexpanded#1{%
+ \let\ZREF@unexpanded\unexpanded
+ #1%
+ \let\ZREF@unexpanded\@firstofone
+}
+\let\ZREF@unexpanded\@firstofone
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Compatibility with \xpackage{babel}}
+%
+% \begin{macro}{\zref@wrapper@babel}
+% \begin{macrocode}
+\long\def\zref@wrapper@babel#1#2{%
+ \begingroup
+ \csname @safe@activestrue\endcsname
+ \edef\x{#2}%
+ \expandafter\endgroup
+ \expandafter\ZREF@wrapper@babel\expandafter{\x}{#1}%
+}
+\def\ZREF@wrapper@babel#1#2{%
+ #2{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Unique counter support}
+%
+% \begin{macro}{\zref@require@unique}
+% Generate the counter |zref@unique| if the counter does not
+% already exist.
+% \begin{macrocode}
+\def\zref@require@unique{%
+ \@ifundefined{c@zref@unique}{%
+ \newcounter{zref@unique}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\thezref@unique}
+% \cs{thezref@unique} is used for automatically generated unique
+% labelnames.
+% \begin{macrocode}
+ \renewcommand*{\thezref@unique}{%
+ zref@\number\c@zref@unique
+ }%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Setup}
+%
+% \begin{macro}{\zref@setdefault}
+% Standard \LaTeX\ prints ``??'' in bold face if a reference
+% is not known. \cs{zref@default} holds the text that is
+% printed in case of unknown references and is used, if
+% the default was not specified during the definition
+% of the new property by \cs{ref@newprop}.
+% The global default value can be set by \cs{zref@setdefault}.
+% \begin{macrocode}
+\def\zref@setdefault#1{%
+ \def\zref@default{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zref@default}
+% Now we initialize \cs{zref@default} with the same value
+% that \LaTeX\ uses for its undefined references.
+% \begin{macrocode}
+\zref@setdefault{%
+ \nfss@text{\reset@font\bfseries ??}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \paragraph{Main property list.}
+%
+% \begin{macro}{\zref@setmainlist}
+% The name of the default property list is stored in
+% \cs{ZREF@mainlist} and can be set by \cs{zref@setmainlist}.
+% \begin{macrocode}
+\def\zref@setmainlist#1{%
+ \def\ZREF@mainlist{#1}%
+}
+\zref@setmainlist{main}
+% \end{macrocode}
+% \end{macro}
+% Now we create the list.
+% \begin{macrocode}
+\zref@newlist\ZREF@mainlist
+% \end{macrocode}
+%
+% \paragraph{Main properties.}
+%
+% The two properties \texttt{default} and \texttt{page}
+% are created and added to the main property list.
+% They store the data that
+% standard \LaTeX\ uses in its references created by
+% \cs{label}.
+% \begin{description}
+% \item[\texttt{default}] the apperance of the latest
+% counter that is incremented by \cs{refstepcounter}
+% \item[\texttt{page}] the apperance of the page counter
+% \end{description}
+% \begin{macrocode}
+\zref@newprop{default}{\@currentlabel}
+\zref@newprop*{page}{\thepage}
+\zref@addprop\ZREF@mainlist{default}
+\zref@addprop\ZREF@mainlist{page}
+% \end{macrocode}
+%
+% \paragraph{Mark successful loading}
+%
+% \begin{macrocode}
+\let\ZREF@baseok\@empty
+%</base>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xoption{user}}
+%
+% \begin{macrocode}
+%<*user>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-user}%
+ [2006/05/25 v1.2 Module user for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% Option \xoption{zuser} enables a small user interface.
+% All macros are prefixed by \cs{z}.
+%
+% First we define the pendants to the standard \LaTeX\ referencing
+% commands \cs{label}, \cs{ref}, and \cs{pageref}.
+%
+% \begin{macro}{\zlabel}
+% Similar to \cs{label} the macro \cs{zlabel} writes a reference
+% entry in the \xfile{.aux} file. The main property list is used.
+% Also we add the babel patch. The \cs{label} command can also be
+% used inside section titles, but it must not go into the
+% table of contents. Therefore we have to check this situation.
+% \begin{macrocode}
+\newcommand*\zlabel{%
+ \ifx\label\@gobble
+ \expandafter\@gobble
+ \else
+ \expandafter\zref@wrapper@babel\expandafter\zref@label
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref}
+% Macro \cs{zref} is the corresponding macro for \cs{ref}.
+% Also it provides an optional argument in order to
+% select another property.
+% \begin{macrocode}
+\newcommand*{\zref}[2][default]{%
+ \zref@propexists{#1}{%
+ \zref@wrapper@babel\ZREF@zref{#2}{#1}%
+ }%
+}%
+\def\ZREF@zref#1{%
+ \zref@refused{#1}%
+ \zref@extract{#1}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zpageref}
+% For macro \cs{zpageref} we just call \cs{zref}
+% with property \verb|page|.
+% \begin{macrocode}
+\newcommand*\zpageref{%
+ \zref[page]%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zrefused}
+% For the following expandible user macros \cs{zrefused}
+% should be used to notify \LaTeX\ in case of undefined
+% references.
+% \begin{macrocode}
+\newcommand*{\zrefused}{\zref@refused}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</user>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xoption{abspage}}
+%
+% \begin{macrocode}
+%<*abspage>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-abspage}%
+ [2006/05/25 v1.2 Module abspage for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% Module \xoption{abspage} adds a new property \verb|abspage|
+% to the \verb|main| property list for absolute page numbers.
+% These are recorded by the help of package \xpackage{everyshi}.
+% \begin{macrocode}
+\RequirePackage{everyshi}%
+\newcounter{abspage}%
+\setcounter{abspage}{0}%
+\EveryShipout{%
+ \stepcounter{abspage}%
+}%
+\zref@newprop*{abspage}[0]{\the\c@abspage}%
+\zref@addprop\ZREF@mainlist{abspage}%
+% \end{macrocode}
+% Note that counter \verb|abspage| shows the
+% previous page during page processing. Before
+% shipout the counter is incremented.
+% Thus the property is correctly written with
+% deferred writing. If the counter is written
+% using \cs{zref@wrapper@immediate}, then the number
+% is too small by one.
+%
+% \begin{macrocode}
+%</abspage>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xoption{counter}}
+%
+% \begin{macrocode}
+%<*counter>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-counter}%
+ [2006/05/25 v1.2 Module counter for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% For features such as \xpackage{hyperref}'s \cs{autoref}
+% we need the name of the counter. The property
+% \verb|counter| is defined and added to the main property
+% list.
+% \begin{macrocode}
+\zref@newprop{counter}{}
+\zref@addprop\ZREF@mainlist{counter}
+% \end{macrocode}
+%
+% \cs{refstepcounter} is the central macro where we know
+% which counter is responsible for the reference.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ZREF@patch{refstepcounter}{%
+ \def\refstepcounter#1{%
+ \zref@setcurrent{counter}{#1}%
+ \ZREF@org@refstepcounter{#1}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \begin{macrocode}
+%</counter>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xoption{lastpage}}
+%
+% \begin{macrocode}
+%<*lastpage>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-lastpage}%
+ [2006/05/25 v1.2 Module lastpage for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% The Module \xoption{lastpage} implements the service
+% of package \xpackage{lastpage} by setting a reference
+% \verb|LastPage| at the end of the document.
+% If option \xoption{abspage} is given, also the absolute
+% page number is available, because the properties of
+% the main property list are used.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \AtEndDocument{%
+ \if@filesw
+ \clearpage
+ \begingroup
+ \advance\c@page\m@ne
+ \zref@wrapper@immediate{\zref@label{LastPage}}%
+ \endgroup
+ \fi
+ }%
+}
+% \end{macrocode}
+% \begin{macrocode}
+%</lastpage>
+% \end{macrocode}
+%
+% \subsection{Module \xoption{totpages}}
+%
+% \begin{macrocode}
+%<*totpages>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-totpages}%
+ [2006/05/25 v1.2 Module totpages for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% The absolute page number of the last page is the total
+% page number.
+% \begin{macrocode}
+\RequirePackage{zref-abspage}[2006/05/25]
+\RequirePackage{zref-lastpage}[2006/05/25]
+% \end{macrocode}
+%
+% \begin{macro}{\ztotpages}
+% Macro \cs{ztotpages} contains the number of pages. It can be
+% used inside expandable calculations. It expands to zero if
+% the reference is not yet available.
+% \begin{macrocode}
+\newcommand*{\ztotpages}{%
+ \zref@extractdefault{LastPage}{abspage}{0}%
+}
+% \end{macrocode}
+% \end{macro}
+% Also we mark the reference |LastPage| as used:
+% \begin{macrocode}
+\AtBeginDocument{%
+ \zref@refused{LastPage}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+%</totpages>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xoption{perpage}}
+%
+% \begin{macrocode}
+%<*perpage>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-perpage}%
+ [2006/05/25 v1.2 Module perpage for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% This module resets a counter at page boundaries.
+% Because of the asynchronous output routine
+% page counter properties cannot be asked directly,
+% references are necessary.
+%
+% For detecting changed pages module \xoption{abspage}
+% is loaded.
+% \begin{macrocode}
+\RequirePackage{zref-abspage}[2006/05/25]
+% \end{macrocode}
+%
+% We group the properties for the needed references
+% in the property list |perpage|. The property |pagevalue|
+% records the correct value of the page counter.
+% \begin{macrocode}
+\zref@newprop*{pagevalue}[0]{\number\c@page}
+\zref@newlist{perpage}
+\zref@addprop{perpage}{abspage}
+\zref@addprop{perpage}{page}
+\zref@addprop{perpage}{pagevalue}
+% \end{macrocode}
+% The page value, known by the reference mechanism, will be
+% stored in counter |zpage|.
+% \begin{macrocode}
+\newcounter{zpage}
+% \end{macrocode}
+% Counter |zref@unique| helps in generating unique reference
+% names.
+% \begin{macrocode}
+\zref@require@unique
+% \end{macrocode}
+% In order to be able to reset the counter, we hook here
+% into \cs{stepcounter}. In fact two nested hooks are used
+% to allow other packages to use the first hook at the beginning
+% of \cs{stepcounter}.
+% \begin{macrocode}
+\let\ZREF@org@stepcounter\stepcounter
+\def\stepcounter#1{%
+ \ifcsname @stepcounterhook@#1\endcsname
+ \csname @stepcounterhook@#1\endcsname
+ \fi
+ \ZREF@org@stepcounter{#1}%
+}
+% \end{macrocode}
+%
+% \begin{macro}{\zmakeperpage}
+% Makro \cs{zmakeperpage} resets a counter at each page
+% break. It uses the same syntax and semantics as
+% \cs{MakePerPage} from package \xpackage{perpage} (\cite{perpage}).
+% The initial start value can be given by the optional
+% argument. Default is one that means after the first
+% \cs{stepcounter} on a new page the counter starts with
+% one.
+% \begin{macrocode}
+\newcommand*{\zmakeperpage}{%
+ \@ifnextchar[\ZREF@makeperpage@opt{\ZREF@@makeperpage[\z@]}%
+}
+% \end{macrocode}
+% \end{macro}
+% We hook before the counter is incremented in \cs{stepcounter},
+% package \xpackage{perpage} afterwards. Thus a little
+% calculation is necessary.
+% \begin{macrocode}
+\def\ZREF@makeperpage@opt[#1]{%
+ \begingroup
+ \edef\x{\endgroup
+ \noexpand\ZREF@@makeperpage[\number\numexpr#1-1\relax]%
+ }%
+ \x
+}
+% \end{macrocode}
+% \begin{macrocode}
+\def\ZREF@@makeperpage[#1]#2{%
+ \@ifundefined{@stepcounterhook@#2}{%
+ \expandafter\gdef\csname @stepcounterhook@#2\endcsname{}%
+ }{}%
+ \expandafter\gdef\csname ZREF@perpage@#2\endcsname{%
+ \ZREF@@perpage@step{#2}{#1}%
+ }%
+ \expandafter\g@addto@macro\csname @stepcounterhook@#2\endcsname{%
+ \ifcsname ZREF@perpage@#2\endcsname
+ \csname ZREF@perpage@#2\endcsname
+ \fi
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\ZREF@@perpage@step}
+% The heart of this module follows.
+% \begin{macrocode}
+\def\ZREF@@perpage@step#1#2{%
+% \end{macrocode}
+% First the reference is generated.
+% \begin{macrocode}
+ \global\advance\c@zref@unique\@ne
+ \begingroup
+ \expandafter\zref@labelbylist\expandafter{\thezref@unique}{perpage}%
+% \end{macrocode}
+% The \cs{expandafter} commands are necessary, because \cs{ZREF@temp}
+% is also used inside of \cs{zref@labelbylist}.
+%
+% The evaluation of the reference follows. If the reference
+% is not yet kwown, we use the page counter as approximation.
+% \begin{macrocode}
+ \zref@ifrefundefined\thezref@unique{%
+ \global\c@zpage=\c@page
+ \global\let\thezpage\thepage
+ \expandafter\xdef\csname ZREF@abspage@#1\endcsname{\number\c@abspage}%
+ }{%
+% \end{macrocode}
+% The reference is used to set \cs{thezpage} and counter |zpage|.
+% \begin{macrocode}
+ \global\c@zpage=\zref@extract\thezref@unique{pagevalue}\relax
+ \xdef\thezpage{\noexpand\zref@extract{\thezref@unique}{page}}%
+ \expandafter\xdef\csname ZREF@abspage@#1\endcsname{%
+ \zref@extractdefault\thezref@unique{abspage}{\number\c@abspage}%
+ }%
+ }%
+% \end{macrocode}
+% Page changes are detected by a changed absolute page number.
+% \begin{macrocode}
+ \expandafter\ifx\csname ZREF@abspage@#1\expandafter\endcsname
+ \csname ZREF@currentabspage@#1\endcsname
+ \else
+ \global\csname c@#1\endcsname=#2\relax
+ \global\expandafter\let
+ \csname ZREF@currentabspage@#1\expandafter\endcsname
+ \csname ZREF@abspage@#1\endcsname
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zunmakeperpage}
+% Macro \cs{zunmakeperpage} cancels the effect of \cs{zmakeperpage}.
+% \begin{macrocode}
+\newcommand*{\zunmakeperpage}[1]{%
+ \global\expandafter\let\csname ZREF@perpage@#1\endcsname\@undefined
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</perpage>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xoption{titleref}}
+%
+% \begin{macrocode}
+%<*titleref>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-titleref}%
+ [2006/05/25 v1.2 Module titleref for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% \subsubsection{Implementation}
+% \begin{macrocode}
+\RequirePackage{keyval}
+% \end{macrocode}
+%
+% This module makes section and caption titles available
+% for the reference system. It uses some of the ideas
+% of package \xpackage{nameref} and \xpackage{titleref}.
+%
+% \begin{macro}{\zref@titleref@current}
+% Later we will redefine the section and caption macros
+% to catch the current title and remember the value in
+% \cs{zref@titleref@current}.
+% \begin{macrocode}
+\let\zref@titleref@current\@empty
+% \end{macrocode}
+% \end{macro}
+% Now we can add the property \verb|title| is added to
+% the main property list.
+% \begin{macrocode}
+\zref@newprop{title}{\zref@titleref@current}%
+\zref@addprop\ZREF@mainlist{title}%
+% \end{macrocode}
+%
+% The title strings go into the \xfile{.aux} file, thus
+% they need some kind of protection.
+% Package \xpackage{titleref} uses a protected expansion
+% method. The advantage is that this can be used to
+% cleanup the string and to remove \cs{label}, \cs{index}
+% and other macros unwanted for referencing.
+% But there is the risk that fragile stuff can break.
+%
+% Therefore package \xpackage{nameref} does not expand
+% the string. Thus the entries can safely be written to
+% the \xfile{.aux} file. But potentially dangerous
+% macros such as \cs{label} remain in the string and
+% can cause problems when using the string in references.
+%
+% \begin{macro}{\ifzref@titleref@expand}
+% The switch \cs{ifzref@titleref@expand} distinguishes
+% between the both methods. Package \xpackage{nameref}'s
+% behaviour is achieved by setting the switch to false,
+% otherwise \xpackage{titleref}'s expansion is used.
+% Default is false.
+% \begin{macrocode}
+\newif\ifzref@titleref@expand
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@titleref@hook}
+% The hook \cs{ZREF@titleref@hook} allows to extend
+% the cleanup for the expansion method. Thus
+% unnecessary macros can be removed or dangerous commands
+% removed. The hook is executed before the expansion of
+% \cs{zref@titleref@current}.
+% \begin{macrocode}
+\let\ZREF@titleref@hook\@empty
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zref@titleref@cleanup}
+% The hook should not be used directly, instead we provide the
+% macro \cs{zref@titleref@cleanup} to add stuff to the hook
+% and prevents that a previous non-empty content is not discarded
+% accidently.
+% \begin{macrocode}
+\def\zref@titleref@cleanup#1{%
+ \begingroup
+ \toks@\expandafter{%
+ \ZREF@titleref@hook
+ #1%
+ }%
+ \expandafter\endgroup
+ \expandafter\def\expandafter\ZREF@titleref@hook\expandafter{%
+ \the\toks@
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifzref@titleref@stripperiod}
+% Sometimes a title contains a period at the end.
+% Package \xpackage{nameref} removes this. This behaviour
+% is controlled by the switch \cs{ifzref@titleref@stripperiod}
+% and works regardless of the setting of option \xoption{expand}.
+% Period stripping is the default.
+% \begin{macrocode}
+\newif\ifzref@titleref@stripperiod
+\zref@titleref@stripperiodtrue
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zref@titleref@setcurrent}
+% Macro \cs{zref@titleref@setcurrent} sets a new current title
+% stored in \cs{zref@titleref@current}. Some cleanup and
+% expansion is performed that can be controlled by the
+% previous switches.
+% \begin{macrocode}
+\def\zref@titleref@setcurrent#1{%
+ \def\zref@titleref@current{#1}%
+ \ifzref@titleref@expand
+ \begingroup
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \let\markboth\@gobbletwo
+ \let\@mkboth\@gobbletwo
+ \let\markright\@gobble
+ \let\protect\@unexpandable@protect
+ \ZREF@titleref@hook
+ \edef\x{\endgroup
+ \noexpand\def\noexpand\zref@titleref@current{%
+ \zref@titleref@current
+ }%
+ }%
+ \x
+ \fi
+ \edef\zref@titleref@current{%
+ \detokenize\expandafter{\zref@titleref@current}%
+ }%
+ \ifzref@titleref@stripperiod
+ \edef\zref@titleref@current{%
+ \expandafter\ZREF@stripperiod\zref@titleref@current
+ \@empty.\@empty\@nil
+ }%
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@stripperiod}
+% If \cs{ZREF@stripperiod} is called, the argument consists of
+% space tokens and tokens with catcode 12 (other), because
+% of \eTeX's \cs{detokenize}.
+% \begin{macrocode}
+\def\ZREF@stripperiod#1.\@empty#2\@nil{#1}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{User interface}
+%
+% \begin{macro}{\ztitlerefsetup}
+% The behaviour of option \xoption{titleref} is controlled
+% by switches and a hook. They can be set by \cs{ztitlerefsetup}
+% with a key value interface, provided by package \xpackage{keyval}.
+% Also the current title can be given explicitly by the key
+% \verb|title|.
+% \begin{macrocode}
+\define@key{ZREF@TR}{expand}[true]{%
+ \csname zref@titleref@expand#1\endcsname
+}%
+\define@key{ZREF@TR}{stripperiod}[true]{%
+ \csname zref@titleref@stripperiod#1\endcsname
+}%
+\define@key{ZREF@TR}{cleanup}{%
+ \zref@titleref@cleanup{#1}%
+}%
+\define@key{ZREF@TR}{title}{%
+ \def\zref@titleref@current{#1}%
+}%
+\newcommand*{\ztitlerefsetup}{%
+ \setkeys{ZREF@TR}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ztitleref}
+% The user command \cs{ztitleref} references the title.
+% For safety \cs{label} is disabled to prevent multiply
+% defined references.
+% \begin{macrocode}
+\newcommand*{\ztitleref}{%
+ \zref@wrapper@babel\ZREF@titleref
+}%
+\def\ZREF@titleref#1{%
+ \begingroup
+ \zref@refused{#1}%
+ \let\label\@gobble
+ \zref@extract{#1}{title}%
+ \endgroup
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Patches for section and caption commands}
+%
+% The section and caption macros are patched to extract the
+% title data.
+%
+% Captions of figures and tables.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ZREF@patch{@caption}{%
+ \long\def\@caption#1[#2]{%
+ \zref@titleref@setcurrent{#2}%
+ \ZREF@org@@caption{#1}[{#2}]%
+ }%
+ }%
+% \end{macrocode}
+%
+% Section commands without star. The title version for the
+% table of contents is used because it is usually shorter and
+% more robust.
+% \begin{macrocode}
+ \ZREF@patch{@part}{%
+ \def\@part[#1]{%
+ \zref@titleref@setcurrent{#1}%
+ \ZREF@org@@part[{#1}]%
+ }%
+ }%
+ \ZREF@patch{@chapter}{%
+ \def\@chapter[#1]{%
+ \zref@titleref@setcurrent{#1}%
+ \ZREF@org@@chapter[{#1}]%
+ }%
+ }%
+ \ZREF@patch{@sect}{%
+ \def\@sect#1#2#3#4#5#6[#7]{%
+ \zref@titleref@setcurrent{#7}%
+ \ZREF@org@@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]%
+ }%
+ }%
+% \end{macrocode}
+% The star versions of the section commands.
+% \begin{macrocode}
+ \ZREF@patch{@spart}{%
+ \def\@spart#1{%
+ \zref@titleref@setcurrent{#1}%
+ \ZREF@org@@spart{#1}%
+ }%
+ }%
+ \ZREF@patch{@schapter}{%
+ \def\@schapter#1{%
+ \zref@titleref@setcurrent{#1}%
+ \ZREF@org@@schapter{#1}%
+ }%
+ }%
+ \ZREF@patch{@ssect}{%
+ \def\@ssect#1#2#3#4#5{%
+ \zref@titleref@setcurrent{#5}%
+ \ZREF@org@@ssect{#1}{#2}{#3}{#4}{#5}%
+ }%
+ }%
+% \end{macrocode}
+%
+% Package \xpackage{titlesec}.
+% \begin{macrocode}
+ \@ifpackageloaded{titlesec}{%
+ \ZREF@patch{ttl@sect@i}{%
+ \def\ttl@sect@i#1#2[#3]#4{%
+ \zref@titlesec@setcurrent{#4}%
+ \ZREF@org@ttl@sect@i{#1}{#2}[{#3}]{#4}%
+ }%
+ }%
+ }{}%
+}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</titleref>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xoption{xr}}
+%
+% \begin{macrocode}
+%<*xr>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-xr}%
+ [2006/05/25 v1.2 Module xr for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage{keyval}
+% \end{macrocode}
+%
+% We declare property |url|, because this is added,
+% if a reference is imported and has not already set this field.
+% Or if |hyperref| is used, then this property can be asked.
+% \begin{macrocode}
+\zref@newprop{url}{}%
+% \end{macrocode}
+%
+%
+% Most code, especially the handling of the \xfile{.aux}
+% files are taken from David Carlisle's \xpackage{xr} package.
+% Therefore I drop the documentation for these macros here.
+%
+% \begin{macro}{\zref@xr@ext}
+% If the URL is not specied, then assume
+% processed file with a guessed extension.
+% Use the setting of \xpackage{hyperref} if available.
+% \begin{macrocode}
+\providecommand*{\zref@xr@ext}{%
+ \@ifundefined{XR@ext}{pdf}{\XR@ext}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ifZREF@xr@zreflabel}
+% The use of the star form of \cs{zexternaldocument}
+% is remembered in the switch \cs{ifZREF@xr@zreflabel}.
+% \begin{macrocode}
+\newif\ifZREF@xr@zreflabel
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\zexternaldocument}
+% In its star form it looks for \cs{newlabel},
+% otherwise for \cs{zref@newlabel}.
+% Later we
+% will read \xfile{.aux} files that expects
+% |@| to have catcode 11 (letter).
+% \begin{macrocode}
+\newcommand*{\zexternaldocument}{%
+ \begingroup
+ \csname @safe@actives@true\endcsname
+ \makeatletter
+ \@ifstar{%
+ \ZREF@xr@zreflabelfalse
+ \@testopt\ZREF@xr@externaldocument{}%
+ }{%
+ \ZREF@xr@zreflabeltrue
+ \@testopt\ZREF@xr@externaldocument{}%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% If the \cs{include} featuer was used, there can be
+% several \xfile{.aux} files. These files are read
+% one after another, especially they are not recursively
+% read in order to save read registers. Thus it can
+% happen that the read order of the newlabel commands
+% differs from \LaTeX's order using \cs{input}.
+%
+% \begin{macro}{\ZREF@xr@externaldocument}
+% It reads the remaining arguments. \cs{newcommand}
+% comes in handy for the optional argument.
+% \begin{macrocode}
+\def\ZREF@xr@externaldocument[#1]#2{%
+ \def\ZREF@xr@prefix{#1}%
+ \let\ZREF@xr@filelist\@empty
+ \edef\ZREF@xr@file{#2.aux}%
+ \filename@parse{#2}%
+ \@testopt\ZREF@xr@graburl{#2.\zref@xr@ext}%
+}%
+\def\ZREF@xr@graburl[#1]{%
+ \edef\ZREF@xr@url{#1}%
+ \ZREF@xr@checkfile
+ \endgroup
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@xr@processfile}
+% We follow \xpackage{xr} here, \cs{IfFileExists} offers
+% a nicer test, but we have to open the file anyway.
+% \begin{macrocode}
+\def\ZREF@xr@checkfile{%
+ \openin\@inputcheck\ZREF@xr@file\relax
+ \ifeof\@inputcheck
+ \PackageWarning{zref/xr}{%
+ File `\ZREF@xr@file' not found or empty,\MessageBreak
+ labels not imported%
+ }%
+ \else
+ \PackageInfo{zref/xr}{%
+ Label \ifZREF@xr@zreflabel (zref) \fi import from `\ZREF@xr@file'%
+ }%
+ \def\ZREF@xr@found{0}%
+ \def\ZREF@xr@ignored{0}%
+ \ZREF@xr@processfile
+ \closein\@inputcheck
+ \begingroup
+ \let\on@line\@empty
+ \PackageInfo{zref/xr}{%
+ Statistics for `\ZREF@xr@file':
+ \ZREF@xr@found\space found, %
+ \ZREF@xr@ignored\space ignored%
+ }%
+ \endgroup
+ \fi
+ \ifx\ZREF@xr@filelist\@empty
+ \else
+ \edef\ZREF@xr@file{\expandafter\@car\ZREF@xr@filelist\@nil}%
+ \edef\ZREF@xr@filelist{\expandafter\@cdr\ZREF@xr@filelist\@nil}%
+ \expandafter\ZREF@xr@checkfile
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@xr@processfile}
+% \begin{macrocode}
+\def\ZREF@xr@processfile{%
+ \read\@inputcheck to\ZREF@xr@line
+ \expandafter\ZREF@xr@processline\ZREF@xr@line..\ZREF@nil
+ \ifeof\@inputcheck
+ \else
+ \expandafter\ZREF@xr@procesfile
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@xr@processline}
+% The most work must be done for analyzing the
+% arguments of \cs{newlabel}.
+% \begin{macrocode}
+\long\def\ZREF@xr@processline#1#2#3\ZREF@nil{%
+ \def\x{#1}%
+ \toks@{#2}%
+ \ifZREF@xr@zreflabel
+ \ifx\x\ZREF@xr@zref@newlabel
+ \expandafter\ZREF@xr@process@zreflabel\ZREF@xr@line...\ZREF@nil
+ \fi
+ \else
+ \ifx\x\ZREF@xr@newlabel
+ \expandafter\ZREF@xr@process@label\ZREF@xr@line...[]\ZREF@nil
+ \fi
+ \fi
+ \ifx\x\ZREF@xr@@input
+ \edef\ZREF@xr@filelist{%
+ \unexpanded\expandafter{\ZREF@xr@filelist}%
+ {\filename@area\the\toks@}%
+ }%
+ \fi
+ \ifeof\@inputcheck
+ \else
+ \expandafter\ZREF@xr@processfile
+ \fi
+}%
+\def\ZREF@xr@process@zreflabel\zref@newlabel#1#2#3\ZREF@nil{%
+ \def\ZREF@xr@refname{Z@R@\ZREF@xr@prefix#1}%
+ \edef\ZREF@xr@found{\the\numexpr\ZREF@xr@found+1\relax}%
+ \def\x{#2}%
+ \@ifundefined{\ZREF@xr@refname}{%
+ \let\ZREF@xr@list\x
+ \ifx\ZREF@xr@list\@empty
+ \PackageWarningNoLine{zref/xr}{%
+ Label `#1' without properties ignored\MessageBreak
+ in file `\ZREF@xr@file'%
+ }%
+ \edef\ZREF@xr@ignored{\the\numexpr\ZREF@xr@ignored+1\relax}%
+ \else
+ \expandafter\ZREF@xr@checklist\x\ZREF@nil
+ \expandafter\global\expandafter\let
+ \csname \ZREF@xr@refname\endcsname\x
+ \fi
+ \ZREF@xr@urlcheck{\ZREF@xr@prefix#1}%
+ }{%
+ \ZREF@xr@ignorewarning{\ZREF@xr@prefix#1}%
+ }%
+}%
+\def\ZREF@xr@process@label\newlabel#1#2#3[#4]#5\ZREF@nil{%
+ \def\ZREF@xr@refname{Z@R@\ZREF@xr@prefix#1}%
+ \edef\ZREF@xr@found{\the\numexpr\ZREF@xr@found+1\relax}%
+ \def\x{#2}%
+ \@ifundefined{\ZREF@xr@refname}{%
+ \expandafter\ZREF@xr@scanparams
+ \csname\ZREF@xr@refname\expandafter\endcsname
+ \x{}{}{}{}{}\ZREF@nil
+ \ifx\\#4\\%
+ \else
+ % ntheorem knows an optional argument at the end of \newlabel
+ \zref@ifpropundefined{theotype}{%
+ \zref@newprop{theotype}{}%
+ }{}%
+ \expandafter\g@addto@macro
+ \csname\ZREF@xr@refname\endcsname{\theotype{#4}}%
+ \fi
+ \ZREF@xr@urlcheck{\ZREF@xr@prefix#1}%
+ }{%
+ \ZREF@xr@ignorewarning{\ZREF@xr@prefix#1}%
+ }%
+}
+\def\ZREF@xr@zref@newlabel{\zref@newlabel}%
+\def\ZREF@xr@newlabel{\newlabel}%
+\def\ZREF@xr@@input{\@input}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@xr@ignorewarning}
+% \begin{macrocode}
+\def\ZREF@xr@ignorewarning#1{%
+ \PackageWarningNoLine{zref/xr}{%
+ Label `#1' is already in use\MessageBreak
+ in file `\ZREF@xr@file'%
+ }%
+ \edef\ZREF@xr@ignored{\the\numexpr\ZREF@xr@ignored+1\relax}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@xr@checklist}
+% \begin{macrocode}
+\def\ZREF@xr@checklist#1#2#3\ZREF@nil{%
+ \ifx\@undefined#1\relax
+ \expandafter\ZREF@xr@checkkey\string#1\@nil
+ \fi
+ \ifx\\#3\\%
+ \else
+ \@ReturnAfterFi{%
+ \ZREF@xr@checklist#3\ZREF@nil
+ }%
+ \fi
+}%
+\long\def\@ReturnAfterFi#1\fi{\fi#1}%
+\def\ZREF@xr@checkkey#1#2\@nil{%
+ \zref@ifpropundefined{#2}{%
+ \zref@newprop{#2}{}%
+ }{}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@xr@scanparams}
+% \begin{macrocode}
+\def\ZREF@xr@scanparams#1#2#3#4#5#6#7\ZREF@nil{%
+ \global\let#1\@empty
+ \ZREF@foundfalse
+ \ZREF@xr@scantitleref#1#2\TR@TitleReference{}{}\ZREF@nil
+ \ifZREF@found
+ \else
+ \g@addto@macro#1{\default{#2}}%
+ \fi
+ % page
+ \g@addto@macro#1{\page{#3}}%
+ % nameref title
+ \ifZREF@found
+ \else
+ \ifx\\#4\\%
+ \else
+ \zref@ifpropundefined{title}{%
+ \zref@newprop{title}{}%
+ }{}%
+ \g@addto@macro#1{\title{#4}}%
+ \fi
+ \fi
+ % anchor
+ \ifx\\#5\\%
+ \else
+ \zref@ifpropundefined{anchor}{%
+ \zref@newprop{anchor}{}%
+ }{}%
+ \g@addto@macro#1{\anchor{#5}}%
+ \fi
+ \ifx\\#6\\%
+ \else
+ \zref@ifpropundefined{url}{%
+ \zref@newprop{url}{}%
+ }{}%
+ \g@addto@macro#1{\url{#6}}%
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@xr@scantitleref}
+% \begin{macrocode}
+\def\ZREF@xr@scantitleref#1#2\TR@TitleReference#3#4#5\ZREF@nil{%
+ \ifx\\#5\\%
+ \else
+ \g@addto@macro#1{%
+ \default{#3}%
+ \title{#4}%
+ }%
+ \ZREF@foundtrue
+ \fi
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ZREF@xr@urlcheck}%
+% \begin{macrocode}
+\def\ZREF@xr@urlcheck#1{%
+ \zref@ifrefcontainsprop{#1}{anchor}{%
+ \zref@ifrefcontainsprop{#1}{url}{%
+ }{%
+ \expandafter\g@addto@macro\csname Z@R@#1\expandafter\endcsname
+ \expandafter{%
+ \expandafter\url\expandafter{\ZREF@xr@url}%
+ }%
+ }%
+ }{%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zxrsetup}
+% Just one key for setting the default extension is currently used.
+% \begin{macrocode}
+\define@key{ZREF@XR}{ext}{%
+ \def\zref@xr@ext{#1}%
+}%
+\newcommand*{\zxrsetup}{%
+ \setkeys{ZREF@XR}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</xr>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xoption{hyperref}}
+%
+% UNFINISHED :-(
+%
+% \begin{macrocode}
+%<*hyperref>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-hyperref}%
+ [2006/05/25 v1.2 Module hyperref for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\zref@newprop{anchor}[]{%
+ \@ifundefined{@currentHref}{}{\@currentHref}%
+}%
+\zref@addprop\ZREF@mainlist{anchor}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</hyperref>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xoption{savepos}}
+%
+% Option \xoption{savepos} provides an interface for
+% \pdfTeX's \cmd{\pdfsavepos}, see the manual for
+% \pdfTeX.
+%
+% \subsubsection{Identification}
+%
+% \begin{macrocode}
+%<*savepos>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-savepos}%
+ [2006/05/25 v1.2 Module savepos for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% \subsubsection{Availability}
+%
+% First we check, whether the feature is available.
+% \begin{macrocode}
+\begingroup
+ \@ifundefined{pdfsavepos}{%
+ \ZREF@ErrorNoLine{%
+ \string\pdfsavepos\space is not supported\MessageBreak
+ in this pdfTeX version%
+ }\ZREF@UpdatePdfTeX
+ \endgroup
+ \endinput
+ }{}%
+\endgroup
+% \end{macrocode}
+% In PDF mode we are done. However support for DVI mode
+% was added later in version 1.40.0. In earlier versions
+% \cs{pdfsavepos} is defined, but its execution raises
+% an error.
+% \begin{macrocode}
+\RequirePackage{ifpdf}
+\ifpdf
+\else
+ \ifnum\pdftexversion<140 %
+ \ZREF@ErrorNoLine{%
+ \string\pdfsavepos\space is not supported in DVI mode\MessageBreak
+ of this pdfTeX version%
+ }\ZREF@UpdatePdfTeX
+ \expandafter\expandafter\expandafter\endinput
+ \fi
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Setup}
+%
+% \begin{macrocode}
+\zref@newlist{savepos}
+\zref@newprop*{posx}[0]{\the\pdflastxpos}
+\zref@newprop*{posy}[0]{\the\pdflastypos}
+\zref@addprop{savepos}{posx}
+\zref@addprop{savepos}{posy}
+% \end{macrocode}
+%
+% \subsubsection{User macros}
+%
+% \begin{macro}{\zsavepos}
+% The current location is stored in a reference with the
+% given name.
+% \begin{macrocode}
+\def\zsavepos#1{%
+ \@bsphack
+ \if@filesw
+ \pdfsavepos
+ \zref@labelbylist{#1}{savepos}%
+ \fi
+ \@esphack
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zposx}
+% \begin{macro}{\zposy}
+% The horizontal and vertical position are available by
+% \cs{zposx} and \cs{zposy}. Do not rely on absolute
+% positions. They differ in DVI and PDF mode of \pdfTeX.
+% Use differences instead. The unit of the position numbers
+% is sp.
+% \begin{macrocode}
+\newcommand*{\zposx}[1]{%
+ \zref@extract{#1}{posx}%
+}%
+\newcommand*{\zposy}[1]{%
+ \zref@extract{#1}{posy}%
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Typically horizontal and vertical positions are used
+% inside calculations. Therefore the extracting macros
+% should be expandable and babel's patch is not applyable.
+%
+% Also it is in the responsibility of the user to marked
+% used positions by \cs{zrefused}
+% in order to notify \LaTeX\ about undefined references.
+%
+% \begin{macrocode}
+%</savepos>
+% \end{macrocode}
+%
+%
+% \subsection{Module \xoption{dotfill}}
+%
+% \begin{macrocode}
+%<*dotfill>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{zref-dotfill}%
+ [2006/05/25 v1.2 Module dotfill for zref (HO)]
+\RequirePackage{zref-base}[2006/05/25]
+\@ifundefined{ZREF@baseok}{\endinput}{}
+% \end{macrocode}
+%
+% For measuring the width of \cs{zdotfill} we use the features
+% provided by module \xoption{savepos}.
+% \begin{macrocode}
+\RequirePackage{zref-savepos}[2006/05/25]
+% \end{macrocode}
+% For automatically generated label names we use the unique
+% counter of module \xoption{base}.
+% \begin{macrocode}
+\zref@require@unique
+% \end{macrocode}
+% Configuration is done by the key value interface of package
+% \xpackage{keyval}.
+% \begin{macrocode}
+\RequirePackage{keyval}
+% \end{macrocode}
+% The definitions of the keys follow.
+% \begin{macrocode}
+\define@key{ZREF@DF}{unit}{%
+ \def\ZREF@df@unit{#1}%
+}
+\define@key{ZREF@DF}{min}{%
+ \def\ZREF@df@min{#1}%
+}
+\define@key{ZREF@DF}{dot}{%
+ \def\ZREF@df@dot{#1}%
+}
+% \end{macrocode}
+% Defaults are set, see user interface.
+% \begin{macrocode}
+\providecommand\ZREF@df@min{2}
+\providecommand\ZREF@df@unit{.44em}
+\providecommand\ZREF@df@dot{.}
+% \end{macrocode}
+% \begin{macro}{\zdotfillsetup}
+% Configuration of \cs{zdotfill} is done by \cs{zdotfillsetup}.
+% \begin{macrocode}
+\newcommand*{\zdotfillsetup}{\setkeys{ZREF@DF}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zdotfill}
+% \cs{zdotfill} sets labels at the left and the right to get
+% the horizontal position. \cs{zsavepos} is not used, because
+% we do not need the vertical position.
+% \begin{macrocode}
+\newcommand*{\zdotfill}{%
+ \leavevmode
+ \global\advance\c@zref@unique\@ne
+ \begingroup
+ \def\ZREF@temp{zref@\number\c@zref@unique}%
+ \pdfsavepos
+ \zref@labelbyprops{\thezref@unique L}{posx}%
+ \setlength{\dimen@}{\ZREF@df@unit}%
+ \zref@ifrefundefined{\thezref@unique R}{%
+ \ZREF@dotfill
+ }{%
+ \ifnum\numexpr\zposx{\thezref@unique R}-\zposx{\thezref@unique L}\relax
+ <\dimexpr\ZREF@df@min\dimen@\relax
+ \hfill
+ \else
+ \ZREF@dotfill
+ \fi
+ }%
+ \pdfsavepos
+ \zref@labelbyprops{\thezref@unique R}{posx}%
+ \endgroup
+ \kern\z@
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ZREF@dotfill}
+% Help macro that actually sets the dots.
+% \begin{macrocode}
+\def\ZREF@dotfill{%
+ \cleaders\hb@xt@\dimen@{\hss\ZREF@df@dot\hss}\hfill
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</dotfill>
+% \end{macrocode}
+% \section{Installation}
+%
+% \paragraph{CTAN.} This package is available on
+% CTAN\footnote{\url{ftp://ftp.ctan.org/tex-archive/}}:
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/oberdiek/zref.dtx}] The source file.
+% \item[\CTAN{macros/latex/contrib/oberdiek/zref.pdf}] Documentation.
+% \end{description}
+%
+% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
+% \docstrip\ archive. The files are extracted by running the
+% \xfile{.dtx} through \plainTeX:
+% \begin{quote}
+% \verb|tex zref.dtx|
+% \end{quote}
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \sbox0{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{$\quad\rightarrow\quad$}>{\ttfamily}l@{}}
+% zref.sty & tex/latex/oberdiek/zref.sty\\
+% zref-base.sty & tex/latex/oberdiek/zref-base.sty\\
+% zref-abspage.sty & tex/latex/oberdiek/zref-abspage.sty\\
+% zref-counter.sty & tex/latex/oberdiek/zref-counter.sty\\
+% zref-dotfill.sty & tex/latex/oberdiek/zref-dotfill.sty\\
+% zref-hyperref.sty & tex/latex/oberdiek/zref-hyperref.sty\\
+% zref-lastpage.sty & tex/latex/oberdiek/zref-lastpage.sty\\
+% zref-perpage.sty & tex/latex/oberdiek/zref-perpage.sty\\
+% zref-savepos.sty & tex/latex/oberdiek/zref-savepos.sty\\
+% zref-titleref.sty & tex/latex/oberdiek/zref-titleref.sty\\
+% zref-totpages.sty & tex/latex/oberdiek/zref-totpages.sty\\
+% zref-user.sty & tex/latex/oberdiek/zref-user.sty\\
+% zref-xr.sty & tex/latex/oberdiek/zref-xr.sty\\
+% zref.pdf & doc/latex/oberdiek/zref.pdf\\
+% zref-example.tex & doc/latex/oberdiek/zref-example.tex\\
+% zref.dtx & source/latex/oberdiek/zref.dtx\\
+% \end{tabular}^^A
+% }%
+% \ifdim\wd0>\linewidth
+% \mbox{}\nobreak\hskip0pt minus\leftmargin
+% \usebox0
+% \nobreak\hskip0pt minus\rightmargin
+% \else
+% \usebox0
+% \fi
+% \end{quote}
+% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
+% TDS installing feature, then some files can already be in the right
+% place, see the documentation of \docstrip.
+%
+% \paragraph{Refresh file databases.} If your \TeX~distribution
+% (\teTeX, \mikTeX, \dots) rely on file databases, you must refresh
+% these. For example, \teTeX\ users run \verb|texhash| or
+% \verb|mktexlsr|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Attached source.}
+%
+% The PDF documentation on CTAN also includes the
+% \xfile{.dtx} source file. It can be extracted by
+% AcrobatReader 6 or higher. Another option is \textsf{pdftk},
+% e.g. unpack the file into the current directory:
+% \begin{quote}
+% \verb|pdftk zref.pdf unpack_files output .|
+% \end{quote}
+%
+% \paragraph{Unpacking with \LaTeX.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip\ and extract the files.
+% \item[\LaTeX:] Generate the documentation.
+% \end{description}
+% If you insist on using \LaTeX\ for \docstrip\ (really,
+% \docstrip\ does not need \LaTeX), then inform the autodetect routine
+% about your intension:
+% \begin{quote}
+% \verb|latex \install=y\input{zref.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by the
+% configuration file \xfile{ltxdoc.cfg}. For instance, put this
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+% An example follows how to generate the
+% documentation with pdf\LaTeX:
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex zref.dtx
+%makeindex -s gind.ist zref.idx
+%pdflatex zref.dtx
+%makeindex -s gind.ist zref.idx
+%pdflatex zref.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \newcommand*{\bibpackage}[4]{^^A
+% \bibitem{#1}
+% Package \xpackage{#1}, #2, #3.^^A
+% \ifx\\#4\\\else#4\fi\par
+% }
+%
+% \begin{thebibliography}{99}
+% \bibpackage{everyshi}{Martin Schr\"oder}{2001/05/15 v3.00}
+% {\CTAN{macros/latex/contrib/ms/everyshi.dtx}}
+% \bibpackage{footmisc}{Robin Fairbairns}{2004/01/23 v5.3a}
+% {\CTAN{macros/latex/contrib/footmisc/footmisc.dtx}}
+% \bibpackage{hyperref}{Sebastian Rahtz, Heiko Oberdiek}{2006/08/16 v6.75c}
+% {\CTAN{macros/latex/contrib/hyperref/}}
+% \bibpackage{lastpage}{Jeff Goldberg}{1994/06/25 v0.1b}
+% {\CTAN{macros/latex/contrib/lastpage/}}
+% \bibpackage{nameref}{Sebastian Rahtz, Heiko Oberdiek}{2006/02/12 v2.24}
+% {\CTAN{macros/latex/contrib/hyperref/nameref.dtx}}
+% \bibpackage{perpage}{David Kastrup}{2002/12/20 v1.0}
+% {\CTAN{macros/latex/contrib/bigfoot/perpage.dtx}}
+% \bibpackage{titleref}{Donald Arsenau}{2001/04/05 v3.1}
+% {\CTAN{macros/latex/contrib/misc/titleref.sty}}
+% \bibpackage{totpages}{Wilhelm M\"uller}{1999/07/14 v1.00}
+% {\CTAN{macros/latex/contrib/totpages/}}
+% \bibpackage{xr}{David Carlisle}{1994/05/28 v5.02}
+% {\CTAN{macros/latex/required/tools/xr.pdf}}
+% \bibpackage{xr-hyper}{David Carlisle}{2000/03/22 v6.00beta4}
+% {\CTAN{macros/latex/contrib/hyperref/xr-hyper.sty}}
+% \end{thebibliography}
+%
+% \begin{History}
+% \begin{Version}{2006/02/20 v1.0}
+% \item
+% First version.
+% \end{Version}
+% \begin{Version}{2006/05/03 v1.1}
+% \item
+% Module perpage added.
+% \item
+% Module redesign as packages.
+% \end{Version}
+% \begin{Version}{2006/05/25 v1.2}
+% \item
+% Module dotfillmin added.
+% \item
+% Module base: macros \cs{zref@require@uniqe} and \cs{thezref@unique}
+% added (used by modules titleref and dotfillmin).
+% \end{Version}
+% \end{History}
+%
+% \PrintIndex
+%
+% \Finale
+\endinput