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