From 35aaa338a3a95a725bc3961cc689b9262164c6a1 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 28 Jan 2010 23:02:21 +0000 Subject: oberdiek update (28jan10) git-svn-id: svn://tug.org/texlive/trunk@16857 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/generic/oberdiek/etexcmds.sty | 21 +- Master/texmf-dist/tex/generic/oberdiek/ifpdf.sty | 21 +- .../texmf-dist/tex/generic/oberdiek/kvsetkeys.sty | 9 +- Master/texmf-dist/tex/generic/oberdiek/ltxcmds.sty | 131 +++- .../texmf-dist/tex/generic/oberdiek/pdfrender.sty | 775 +++++++++++++++++++++ 5 files changed, 941 insertions(+), 16 deletions(-) create mode 100644 Master/texmf-dist/tex/generic/oberdiek/pdfrender.sty (limited to 'Master/texmf-dist/tex/generic/oberdiek') diff --git a/Master/texmf-dist/tex/generic/oberdiek/etexcmds.sty b/Master/texmf-dist/tex/generic/oberdiek/etexcmds.sty index e23877b0e42..65f5129285c 100644 --- a/Master/texmf-dist/tex/generic/oberdiek/etexcmds.sty +++ b/Master/texmf-dist/tex/generic/oberdiek/etexcmds.sty @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2007 by Heiko Oberdiek +%% Copyright (C) 2007, 2010 by Heiko Oberdiek %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -93,7 +93,7 @@ \fi \expandafter\x\csname ver@etexcmds.sty\endcsname \ProvidesPackage{etexcmds}% - [2007/12/12 v1.2 Prefix for e-TeX command names (HO)] + [2010/01/28 v1.3 Prefix for e-TeX command names (HO)] \begingroup \catcode123 1 % { \catcode125 2 % } @@ -127,13 +127,26 @@ \escapechar\the\escapechar\relax } \escapechar=92 % backslash +\def\etexcmds@newif#1{% + \expandafter\edef\csname etex@#1false\endcsname{% + \let + \expandafter\noexpand\csname ifetex@#1\endcsname + \noexpand\iffalse + }% + \expandafter\edef\csname etex@#1true\endcsname{% + \let + \expandafter\noexpand\csname ifetex@#1\endcsname + \noexpand\iftrue + }% + \csname etex@#1false\endcsname +} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input infwarerr.sty\relax \else \RequirePackage{infwarerr}[2007/09/09]% \fi -\newif\ifetex@unexpanded +\etexcmds@newif{unexpanded} \begingroup \edef\x{\string\unexpanded}% \edef\y{\meaning\unexpanded}% @@ -165,7 +178,7 @@ \fi \fi \fi -\newif\ifetex@expanded +\etexcmds@newif{expanded} \begingroup \edef\x{\string\expanded}% \edef\y{\meaning\expanded}% diff --git a/Master/texmf-dist/tex/generic/oberdiek/ifpdf.sty b/Master/texmf-dist/tex/generic/oberdiek/ifpdf.sty index cf59d050ae3..56fa0aa20e5 100644 --- a/Master/texmf-dist/tex/generic/oberdiek/ifpdf.sty +++ b/Master/texmf-dist/tex/generic/oberdiek/ifpdf.sty @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2001, 2005-2009 by +%% Copyright (C) 2001, 2005-2010 by %% Heiko Oberdiek %% %% This work may be distributed and/or modified under the @@ -92,7 +92,7 @@ \fi \expandafter\x\csname ver@ifpdf.sty\endcsname \ProvidesPackage{ifpdf}% - [2009/04/10 v2.0 Provides the ifpdf switch (HO)] + [2010/01/28 v2.1 Provides the ifpdf switch (HO)] \begingroup \catcode123 1 % { \catcode125 2 % } @@ -180,7 +180,22 @@ \fi \relax \endgroup -\newif\ifpdf +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname newif\endcsname\relax + \edef\pdffalse{% + \let + \expandafter\noexpand\csname ifpdf\endcsname + \expandafter\noexpand\csname iffalse\endcsname + }% + \edef\pdftrue{% + \let + \expandafter\noexpand\csname ifpdf\endcsname + \expandafter\noexpand\csname iftrue\endcsname + }% + \pdffalse +\else + \csname newif\expandafter\endcsname\csname ifpdf\endcsname +\fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfoutput\endcsname\relax \else diff --git a/Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty b/Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty index 0bad6780861..399bdaa29a4 100644 --- a/Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +++ b/Master/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2006, 2007, 2009 by +%% Copyright (C) 2006, 2007, 2009, 2010 by %% Heiko Oberdiek %% %% This work may be distributed and/or modified under the @@ -94,7 +94,7 @@ \fi \expandafter\x\csname ver@kvsetkeys.sty\endcsname \ProvidesPackage{kvsetkeys}% - [2009/12/22 v1.7 Key value parser (HO)] + [2010/01/28 v1.8 Key value parser (HO)] \begingroup \catcode123 1 % { \catcode125 2 % } @@ -134,7 +134,10 @@ \input etexcmds.sty\relax \else \RequirePackage{infwarerr}[2007/09/09]% - \RequirePackage{etexcmds}[2007/09/09]% + \RequirePackage{etexcmds}[2010/01/28]% +\fi +\expandafter\ifx\csname toks@\endcsname\relax + \toksdef\toks@=0 % \fi \begingroup\expandafter\endgroup \ifcase0\ifetex@unexpanded diff --git a/Master/texmf-dist/tex/generic/oberdiek/ltxcmds.sty b/Master/texmf-dist/tex/generic/oberdiek/ltxcmds.sty index a11f9ac8a3c..dd2f19bc4c7 100644 --- a/Master/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +++ b/Master/texmf-dist/tex/generic/oberdiek/ltxcmds.sty @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2009 by Heiko Oberdiek +%% Copyright (C) 2009, 2010 by Heiko Oberdiek %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -92,12 +92,12 @@ \fi \expandafter\x\csname ver@ltxcmds.sty\endcsname \ProvidesPackage{ltxcmds}% - [2009/12/12 v1.1 LaTeX kernel commands for general use (HO)] + [2010/01/28 v1.2 LaTeX kernel commands for general use (HO)] \begingroup \catcode123 1 % { \catcode125 2 % } \def\x{\endgroup - \expandafter\edef\csname ltx@AtEnd\endcsname{% + \expandafter\edef\csname LTXcmds@AtEnd\endcsname{% \catcode35 \the\catcode35\relax \catcode64 \the\catcode64\relax \catcode123 \the\catcode123\relax @@ -110,14 +110,25 @@ \catcode123 1 % { \catcode125 2 % } \def\TMP@EnsureCode#1#2{% - \edef\ltx@AtEnd{% - \ltx@AtEnd + \edef\LTXcmds@AtEnd{% + \LTXcmds@AtEnd \catcode#1 \the\catcode#1\relax }% \catcode#1 #2\relax } +\TMP@EnsureCode{40}{12}% ( +\TMP@EnsureCode{41}{12}% ) +\TMP@EnsureCode{45}{12}% - +\TMP@EnsureCode{46}{12}% . +\TMP@EnsureCode{47}{12}% / +\TMP@EnsureCode{60}{12}% < \TMP@EnsureCode{61}{12}% = +\TMP@EnsureCode{62}{12}% > +\TMP@EnsureCode{91}{12}% [ \TMP@EnsureCode{96}{12}% ` +\TMP@EnsureCode{93}{12}% ] +\TMP@EnsureCode{94}{12}% ^ (superscript) (!) +\TMP@EnsureCode{124}{12}% | \long\def\ltx@gobble#1{} \long\def\ltx@gobbletwo#1#2{} \long\def\ltx@gobblethree#1#2#3{} @@ -182,7 +193,115 @@ }% \let\ltx@IfUndefined\ltx@ifundefined } -\ltx@AtEnd +\def\ltx@RemovePrefix#1>{} +\def\ltx@StripPrefix{% + \expandafter\ltx@RemovePrefix +} +\def\ltx@clsextension{% + \ltx@ifundefined{@clsextension}{cls}\@clsextension +} +\def\ltx@pkgextension{% + \ltx@ifundefined{@pkgextension}{sty}\@pkgextension +} +\def\ltx@iffileloaded#1{% + \ltx@ifundefined{ver@#1}\ltx@secondoftwo\ltx@firstoftwo +} +\def\ltx@ifclassloaded#1{% + \ltx@iffileloaded{#1.\ltx@clsextension}% +} +\def\ltx@ifpackageloaded#1{% + \ltx@iffileloaded{#1.\ltx@pkgextension}% +} +\def\ltx@iffilelater#1#2{% + \ltx@iffileloaded{#1}{% + \expandafter\LTXcmds@IfLater\expandafter{% + \number + \expandafter\expandafter\expandafter\LTXcmds@ParseVersion + \expandafter\expandafter\expandafter{% + \csname ver@#1\endcsname + }% + \expandafter}\expandafter{% + \number + \expandafter\LTXcmds@ParseVersion\expandafter{#2}% + }% + }\ltx@secondoftwo +} +\def\LTXcmds@IfLater#1#2{% + \ifcase 0% + \ifnum#1<19940101 % + \else + \ifnum#2<19940101 % + \else + \ifnum#2>#1 % + \else + 1% + \fi + \fi + \fi + \ltx@space + \expandafter\ltx@secondoftwo + \else + \expandafter\ltx@firstoftwo + \fi +} +\def\ltx@ifclasslater#1{% + \ltx@ifclasslater{#1.\ltx@clsextension}% +} +\def\ltx@ifpackagelater#1{% + \ltx@iffilelater{#1.\ltx@pkgextension}% +} +\ltx@IfUndefined{pdfmatch}{% + \def\LTXcmds@ParseVersion#1{% + \LTXcmds@@ParseVersion#10000/00/00\@nil + }% + \def\LTXcmds@@ParseVersion#1#2#3#4/#5#6/#7#8#9\@nil{% + #1#2#3#4#5#6#7#8% + }% +}{% + \def\LTXcmds@ParseVersion#1{% + \ifnum\pdfmatch{% + ^% + (199[4-9]|[2-9][0-9][0-9][0-9])/% + (0[1-9]|1[0-2])/% + (0[1-9]|[1-2][0-9]|3[0-1])% + }{#1}=1 % + \ltx@StripPrefix\pdflastmatch1 % + \ltx@StripPrefix\pdflastmatch2 % + \ltx@StripPrefix\pdflastmatch3 % + \else + 0% + \fi + }% +} +\def\ltx@GlobalAppendToMacro#1#2{% + \ifx\ltx@undefined#1% + \let#1\ltx@empty + \else + \ifx\relax#1% + \let#1\ltx@empty + \fi + \fi + \begingroup + \toks0\expandafter{#1#2}% + \xdef#1{\the\toks0}% + \endgroup +} +\def\ltx@LocalAppendToMacro#1#2{% + \global\let\LTXcmds@gtemp#1% + \ifx\ltx@undefined\LTXcmds@gtemp + \global\let\LTXcmds@gtemp\ltx@empty + \else + \ifx\relax\LTXcmds@gtemp + \global\letLTXcmds@gtemp\ltx@empty + \fi + \fi + \begingroup + \toks0\expandafter{\LTXcmds@gtemp#2}% + \xdef\LTXcmds@gtemp{\the\toks0}% + \endgroup + \let#1\LTXcmds@gtemp +} +\LTXcmds@AtEnd \endinput %% %% End of file `ltxcmds.sty'. diff --git a/Master/texmf-dist/tex/generic/oberdiek/pdfrender.sty b/Master/texmf-dist/tex/generic/oberdiek/pdfrender.sty new file mode 100644 index 00000000000..5b6e07a2083 --- /dev/null +++ b/Master/texmf-dist/tex/generic/oberdiek/pdfrender.sty @@ -0,0 +1,775 @@ +%% +%% This is file `pdfrender.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pdfrender.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2010 by Heiko Oberdiek +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. This version of this license is in +%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% and 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. +%% +%% The Base Interpreter refers to any `TeX-Format', +%% because some files are installed in TDS:tex/generic//. +%% +%% This work consists of the main source file pdfrender.dtx +%% and the derived files +%% pdfrender.sty, pdfrender.pdf, pdfrender.ins, pdfrender.drv, +%% pdfrender-test1.tex, pdfrender-test2.tex, +%% pdfrender-test3.tex, pdfrender-test4.tex, +%% pdfrender-test5.tex. +%% +\begingroup + \catcode44 12 % , + \catcode45 12 % - + \catcode46 12 % . + \catcode58 12 % : + \catcode64 11 % @ + \catcode123 1 % { + \catcode125 2 % } + \expandafter\let\expandafter\x\csname ver@pdfrender.sty\endcsname + \ifx\x\relax % plain-TeX, first loading + \else + \def\empty{}% + \ifx\x\empty % LaTeX, first loading, + % variable is initialized, but \ProvidesPackage not yet seen + \else + \catcode35 6 % # + \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{pdfrender}{The package is already loaded}% + \aftergroup\endinput + \fi + \fi +\endgroup +\begingroup + \catcode35 6 % # + \catcode40 12 % ( + \catcode41 12 % ) + \catcode44 12 % , + \catcode45 12 % - + \catcode46 12 % . + \catcode47 12 % / + \catcode58 12 % : + \catcode64 11 % @ + \catcode91 12 % [ + \catcode93 12 % ] + \catcode123 1 % { + \catcode125 2 % } + \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\@undefined + \xdef#1{#3}% + \fi + \ifx#1\relax + \xdef#1{#3}% + \fi + }% + \fi +\expandafter\x\csname ver@pdfrender.sty\endcsname +\ProvidesPackage{pdfrender}% + [2010/01/28 v1.2 Access to some PDF graphics parameters (HO)] +\begingroup + \catcode123 1 % { + \catcode125 2 % } + \def\x{\endgroup + \expandafter\edef\csname PdfRender@AtEnd\endcsname{% + \catcode35 \the\catcode35\relax + \catcode64 \the\catcode64\relax + \catcode123 \the\catcode123\relax + \catcode125 \the\catcode125\relax + }% + }% +\x +\catcode35 6 % # +\catcode64 11 % @ +\catcode123 1 % { +\catcode125 2 % } +\def\TMP@EnsureCode#1#2{% + \edef\PdfRender@AtEnd{% + \PdfRender@AtEnd + \catcode#1 \the\catcode#1\relax + }% + \catcode#1 #2\relax +} +\TMP@EnsureCode{10}{12}% ^^J +\TMP@EnsureCode{36}{3}% $ +\TMP@EnsureCode{39}{12}% ' +\TMP@EnsureCode{40}{12}% ( +\TMP@EnsureCode{41}{12}% ) +\TMP@EnsureCode{42}{12}% * +\TMP@EnsureCode{43}{12}% + +\TMP@EnsureCode{44}{12}% , +\TMP@EnsureCode{45}{12}% - +\TMP@EnsureCode{46}{12}% . +\TMP@EnsureCode{47}{12}% / +\TMP@EnsureCode{58}{12}% : +\TMP@EnsureCode{59}{12}% ; +\TMP@EnsureCode{60}{12}% < +\TMP@EnsureCode{61}{12}% = +\TMP@EnsureCode{62}{12}% > +\TMP@EnsureCode{63}{12}% ? +\TMP@EnsureCode{91}{12}% [ +\TMP@EnsureCode{93}{12}% ] +\TMP@EnsureCode{94}{7}% ^ (superscript) +\TMP@EnsureCode{96}{12}% ` +\TMP@EnsureCode{124}{12}% | +\def\PdfRender@AtEndHook{} +\expandafter\def\expandafter\PdfRender@AtEnd\expandafter{% + \expandafter\PdfRender@AtEndHook + \PdfRender@AtEnd + \endinput +} +\def\PdfRender@newif#1{% + \expandafter\edef\csname PdfRender@#1true\endcsname{% + \let + \expandafter\noexpand\csname ifPdfRender@#1\endcsname + \noexpand\iftrue + }% + \expandafter\edef\csname PdfRender@#1false\endcsname{% + \let + \expandafter\noexpand\csname ifPdfRender@#1\endcsname + \noexpand\iffalse + }% + \csname PdfRender@#1false\endcsname +} +\PdfRender@newif{Stack} +\PdfRender@newif{Match} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname RequirePackage\endcsname\relax + \def\PdfRender@RequirePackage#1[#2]{% + \expandafter\def\expandafter\PdfRender@AtEndHook\expandafter{% + \PdfRender@AtEndHook + \ltx@ifpackagelater{#1}{#2}{}{% + \@PackageWarningNoLine{pdfrender}{% + You have requested version\MessageBreak + `#2' of package `#1',\MessageBreak + but only version\MessageBreak + `\csname ver@#1.\ltx@pkgextension\endcsname'\MessageBreak + is available% + }% + }% + }% + \input #1.sty\relax + }% +\else + \let\PdfRender@RequirePackage\RequirePackage +\fi +\PdfRender@RequirePackage{ifpdf}[2010/01/28] +\PdfRender@RequirePackage{infwarerr}[2007/09/09] +\PdfRender@RequirePackage{ltxcmds}[2010/01/28] +\ifpdf + \ltx@IfUndefined{pdfcolorstackinit}{% + \@PackageWarning{pdfrender}{% + Missing \string\pdfcolorstackinit + }% + }{% + \PdfRender@Stacktrue + }% + \ltx@IfUndefined{pdfmatch}{% + \@PackageInfoNoLine{pdfrender}{% + \string\pdfmatch\ltx@space not found. % + Therefore the values\MessageBreak + of some parameters are not validated% + }% + }{% + \PdfRender@Matchtrue + }% +\else + \@PackageWarning{pdfrender}{% + Missing pdfTeX in PDF mode% + }% + \ltx@IfUndefined{newcommand}{% + \def\pdfrender#1{}% + \long\def\textpdfrender#1#2{#2}% + }{% + \newcommand*{\pdfrender}[1]{}% + \newcommand{\textpdfrender}[2]{#2}% + }% + \expandafter\PdfRender@AtEnd +\fi +\ltx@ifpackageloaded{color}{}{% + \def\color@setgroup{\begingroup\set@color}% + \let\color@begingroup\begingroup + \def\color@endgroup{\endgraf\endgroup}% + \def\color@hbox{\hbox\bgroup\color@begingroup}% + \def\color@vbox{\vbox\bgroup\color@begingroup}% + \def\color@endbox{\color@endgroup\egroup}% + \ltx@ifundefined{bgroup}{% + \let\bgroup={\let\egroup=}% + }{}% + \ltx@ifundefined{endgraf}{% + \let\endgraf=\par + }{}% +} +\def\PdfRender@NormalColorHook{} +\def\PdfRender@ColorSetGroupHook{} +\def\PdfRender@TestBox#1{% + \setbox0=\color@hbox#1\color@endbox +} +\def\PdfRender@PatchNormalColor{% + \ltx@ifundefined{normalcolor}{% + \gdef\normalcolor{\PdfRender@NormalColorHook}% + }{% + \begingroup + \def\PdfRender@NormalColorHook{\let\PdfRender@temp=Y}% + \PdfRender@TestBox{% + \let\set@color\relax + \normalcolor + \ifx\PdfRender@temp Y% + \else + \ltx@GlobalAppendToMacro\normalcolor{% + \PdfRender@NormalColorHook + }% + \fi + }% + \endgroup + }% + \ifx\@nodocument\relax + \global\let\PdfRender@PatchNormalColor\relax + \fi +}% +\def\PdfRender@PatchColorSetGroup{% + \begingroup + \def\PdfRender@ColorSetGroupHook{\let\PdfRender@temp=Y}% + \PdfRender@TestBox{% + \let\set@color\relax + \color@setgroup\color@endgroup + \ifx\PdfRender@temp Y% + \else + \ltx@GlobalAppendToMacro\color@setgroup{% + \PdfRender@ColorSetGroupHook + }% + \fi + }% + \endgroup + \ifx\@nodocument\relax + \global\let\PdfRender@PatchColorSetGroup\relax + \fi +}% +\def\PdfRender@PatchColor{% + \PdfRender@PatchNormalColor + \PdfRender@PatchColorSetGroup +} +\PdfRender@PatchColor +\ltx@IfUndefined{AtBeginDocument}{}{% + \AtBeginDocument{\PdfRender@PatchColor}% +} +\ltx@IfUndefined{AfterPackage}{% +}{% + \AfterPackage{color}{\PdfRender@PatchColor}% + \AfterPackage{xcolor}{\PdfRender@PatchColor}% + \AfterPackage{etoolbox}{% + \AfterEndPreamble{\PdfRender@PatchColor}% + }% +}% +\ltx@IfUndefined{AfterEndPreamble}{% +}{% + \AfterEndPreamble{\PdfRender@PatchColor}% +}% + +\PdfRender@RequirePackage{kvsetkeys}[2010/01/28] +\def\PdfRender@texorpdfstring{% + \ltx@IfUndefined{texorpdfstring}\ltx@firstoftwo\texorpdfstring +} +\ltx@IfUndefined{DeclareRobustCommand}% +\ltx@firstoftwo\ltx@secondoftwo +{% + \def\pdfrender#1% +}{% + \newcommand{\pdfrender}{}% + \DeclareRobustCommand*{\pdfrender}[1]% +}% +{% + \PdfRender@texorpdfstring{% + \PdfRender@PatchNormalColor + \global\let\PdfRender@FillColor\ltx@empty + \global\let\PdfRender@StrokeColor\ltx@empty + \kvsetkeys{PDFRENDER}{#1}% + \PdfRender@SetColor + }{}% +} +\ltx@IfUndefined{DeclareRobustCommand}% +\ltx@firstoftwo\ltx@secondoftwo +{% + \long\def\textpdfrender#1#2% +}{% + \newcommand{\textpdfrender}{}% + \DeclareRobustCommand{\textpdfrender}[2]% +}% +{% + \PdfRender@texorpdfstring{% + \begingroup + \pdfrender{#1}% + #2% + \endgroup + }{#2}% +} +\PdfRender@newif{Values} +\def\PdfRender@NewClassValues#1#2#3#4{% + \PdfRender@Valuestrue + \PdfRender@NewClass{#1}{#2}{#3}{#4}{}% +} +\def\PdfRender@NewClass#1#2#3#4#5{% + \PdfRender@newif{Active#1}% + \expandafter\def\csname PdfRender@Default#1\endcsname{#2}% + \expandafter\let\csname PdfRender@Current#1\expandafter\endcsname + \csname PdfRender@Default#1\endcsname + \ifPdfRender@Stack + \expandafter\edef\csname PdfRender@Init#1\endcsname{% + \global\chardef + \expandafter\noexpand\csname PdfRender@Stack#1\endcsname=% + \noexpand\pdfcolorstackinit page direct{% + \noexpand#3% + \expandafter\noexpand\csname PdfRender@Default#1\endcsname + }\relax + \noexpand\@PackageInfo{pdfrender}{% + New color stack `#1' = \noexpand\number + \expandafter\noexpand\csname PdfRender@Stack#1\endcsname + }% + \gdef\expandafter\noexpand\csname PdfRender@Init#1\endcsname{}% + }% + \expandafter\edef\csname PdfRender@Set#1\endcsname{% + \expandafter\noexpand\csname PdfRender@Init#1\endcsname + \noexpand\pdfcolorstack + \expandafter\noexpand\csname PdfRender@Stack#1\endcsname + push{% + #3{\expandafter\noexpand\csname PdfRender@Current#1\endcsname}% + }% + \noexpand\aftergroup + \expandafter\noexpand\csname PdfRender@Reset#1\endcsname + }% + \expandafter\edef\csname PdfRender@Reset#1\endcsname{% + \expandafter\noexpand\csname PdfRender@Init#1\endcsname + \noexpand\pdfcolorstack + \expandafter\noexpand\csname PdfRender@Stack#1\endcsname + pop\relax + }% + \else + \expandafter\edef\csname PdfRender@Set#1\endcsname{% + \noexpand\pdfliteral direct{% + #3{\expandafter\noexpand\csname PdfRender@Current#1\endcsname}% + }% + \noexpand\aftergroup + \expandafter\noexpand\csname PdfRender@Reset#1\endcsname + }% + \expandafter\edef\csname PdfRender@Reset#1\endcsname{% + \noexpand\pdfliteral direct{% + #3{\expandafter\noexpand\csname PdfRender@Current#1\endcsname}% + }% + }% + \fi + \expandafter\edef\csname PdfRender@Normal#1\endcsname{% + \let + \expandafter\noexpand\csname PdfRender@Current#1\endcsname + \expandafter\noexpand\csname PdfRender@Default#1\endcsname + \noexpand\PdfRender@Set{#1}% + }% + \expandafter\ltx@GlobalAppendToMacro\expandafter\PdfRender@NormalColorHook + \expandafter{% + \csname PdfRender@Normal#1\endcsname + }% + \ltx@GlobalAppendToMacro\PdfRender@ColorSetGroupHook{% + \PdfRender@Set{#1}% + }% + \ifPdfRender@Values + \kv@parse@normalized{#4}{% + \expandafter\let\csname PdfRender@#1@\kv@key\endcsname\kv@key + \ifx\kv@value\relax + \else + \expandafter\let\csname PdfRender@#1@\kv@value\endcsname\kv@key + \fi + \ltx@gobbletwo + }% + \PdfRender@define@key{PDFRENDER}{#1}{% + \global\csname PdfRender@Active#1true\endcsname + \def\PdfRender@Current{##1}% + \PdfRender@SetValidateValues{#1}% + }% + \PdfRender@Valuesfalse + \else + \PdfRender@define@key{PDFRENDER}{#1}{% + \global\csname PdfRender@Active#1true\endcsname + \expandafter\def\csname PdfRender@Current#1\endcsname{##1}% + \ltx@IfUndefined{PdfRender@PostProcess#1}{% + }{% + \csname PdfRender@PostProcess#1\endcsname + }% + \PdfRender@SetValidate{#1}{#4}{#5}% + }% + \fi +}% +\ltx@IfUndefined{define@key}{% + \def\PdfRender@define@key#1#2{% + \expandafter\def\csname KV@#1@#2\endcsname##1% + }% +}{% + \let\PdfRender@define@key\define@key +} +\def\PdfRender@Set#1{% + \csname ifPdfRender@Active#1\endcsname + \csname PdfRender@Set#1\expandafter\endcsname + \fi +} +\def\PdfRender@Reset#1{% + \csname ifPdfRender@Active#1\endcsname + \csname PdfRender@Reset#1\expandafter\endcsname + \fi +} +\def\PdfRender@ErrorInvalidValue#1{% + \PackageError{pdfrender}{% + Ignoring parameter setting for `#1'\MessageBreak + because of invalid value % + `\csname PdfRender@Current#1\endcsname'% + }\@ehc + \expandafter\let\csname PdfRender@Current#1\endcsname\ltx@empty +}% +\ifPdfRender@Match + \def\PdfRender@SetValidate#1#2#3{% + \ifnum\pdfmatch{^(#2)$}{\csname PdfRender@Current#1\endcsname}=1 % + \csname PdfRender@Set#1\expandafter\endcsname + \else + \PdfRender@ErrorInvalidValue{#1}% + \fi + }% +\else + \def\PdfRender@SetValidate#1#2#3{% + \expandafter\let\expandafter\PdfRender@Current + \csname PdfRender@Current#1\endcsname + #3% + \ifx\PdfRender@Current\@empty + \PdfRender@ErrorInvalidValue{#1}% + \else + \csname PdfRender@Set#1\expandafter\endcsname + \fi + }% +\fi +\def\PdfRender@SetValidateValues#1{% + \ltx@IfUndefined{PdfRender@#1@\PdfRender@Current}{% + \expandafter\let\csname PdfRender@Current#1\endcsname + \PdfRender@Current + \PdfRender@ErrorInvalidValue{#1}% + }{% + \expandafter\edef\csname PdfRender@Current#1\endcsname{% + \csname PdfRender@#1@\PdfRender@Current\endcsname + }% + \csname PdfRender@Set#1\endcsname + }% +} +\def\PdfRender@OpValue#1#2{#2\ltx@space#1}% +\def\PdfRender@OpName#1#2{/#2\ltx@space#1}% +\PdfRender@NewClassValues{TextRenderingMode}% + {0}% + {\PdfRender@OpValue{Tr}}{% + 0=Fill,% + 1=Stroke,% + 2=FillStroke,% + 3=Invisible,% + 4=FillClip,% + 5=StrokeClip,% + 6=FillStrokeClip,% + 7=Clip,% +}% +\PdfRender@NewClass{LineWidth}{1}{\PdfRender@OpValue{w}}{% + [0-9]+\string\.?[0-9]*|\string\.[0-9]+% +}{}% +\ltx@IfUndefined{dimexpr}{% + \def\PdfRender@dimexpr{}% +}{% + \let\PdfRender@dimexpr\dimexpr +} +\def\PdfRender@PostProcessLineWidth{% + \begingroup + \afterassignment\PdfRender@@PostProcessLineWidth + \dimen0=\PdfRender@dimexpr\PdfRender@CurrentLineWidth bp % + \PdfRender@let\PdfRender@relax\PdfRender@relax +} +\let\PdfRender@let\let +\let\PdfRender@relax\relax +\def\PdfRender@@PostProcessLineWidth#1\PdfRender@let{% + \ifx\\#1\\% + \endgroup + \else + \dimen0=.996264\dimen0 % 72/72.27 + \edef\x{\endgroup + \def\noexpand\PdfRender@CurrentLineWidth{% + \strip@pt\dimen0% + }% + }% + \expandafter\x + \fi +} +\PdfRender@NewClassValues{LineCapStyle}{0}{\PdfRender@OpValue{J}}{% + 0=Butt,% + 1=Round,% + 2=ProjectingSquare,% +}% +\PdfRender@NewClassValues{LineJoinStyle}{0}{\PdfRender@OpValue{j}}{% + 0=Miter,% + 1=Round,% + 2=Bevel,% +}% +\PdfRender@NewClass{MiterLimit}{10}{\PdfRender@OpValue{M}}{% + [0-9]*[1-9][0-9]*\string\.?[0-9]*|% + [0-9]*\string\.?[0-9]*[1-9][0-9]*% +}{}% +\PdfRender@NewClass{Flatness}{0}{\PdfRender@OpValue{i}}{% + 100(\string\.0*)?|[0-9][0-9](\string\.[0-9]*)?|\string\.[0-9]+% +}{}% +\PdfRender@NewClass{LineDashPattern}{[]0}{\PdfRender@OpValue{d}}{% + \string\[% + ( ?([0-9]+\string\.?[0-9]*|\string\.[0-9]+) ?)*% + \string\] ?% + ([0-9]+\string\.?[0-9]*|\string\.[0-9]+)% +}{}% +\PdfRender@NewClassValues{RenderingIntent}% + {RelativeColorimetric}% + {\PdfRender@OpName{ri}}{% + AbsoluteColorimetric,% + RelativeColorimetric,% + Saturation,% + Perceptual,% +}% +\PdfRender@define@key{PDFRENDER}{FillColor}{% + \begingroup + \def\PdfRender@Color{#1}% + \ifx\PdfRender@Color\ltx@empty + \global\let\PdfRender@FillColor\ltx@empty + \else + \PdfRender@ColorAvailable{% + \PdfRender@TestBox{% + \expandafter\PdfRender@TryColor\PdfRender@Color\ltx@empty + \PdfRender@GetFillColor + \ifx\PdfRender@FillColor\ltx@empty + \@PackageWarning{pdfrender}{% + Cannot extract fill color\MessageBreak + from value `#1'% + }% + \fi + }% + }% + \fi + \endgroup +} +\PdfRender@define@key{PDFRENDER}{StrokeColor}{% + \begingroup + \def\PdfRender@Color{#1}% + \ifx\PdfRender@Color\ltx@empty + \global\let\PdfRender@StrokeColor\ltx@empty + \else + \PdfRender@ColorAvailable{% + \PdfRender@TestBox{% + \expandafter\PdfRender@TryColor\PdfRender@Color\ltx@empty + \PdfRender@GetStrokeColor + \ifx\PdfRender@StrokeColor\ltx@empty + \@PackageWarning{pdfrender}{% + Cannot extract stroke color\MessageBreak + from value `#1'% + }% + \fi + }% + }% + \fi + \endgroup +} +\def\PdfRender@ColorAvailable{% + \@ifundefined{set@color}{% + \@PackageError{pdfrender}{% + Ignoring color options, because neither\MessageBreak + package `color' nor package `xcolor' is loaded% + }\@ehc + \global\let\PdfRender@ColorAvailable\ltx@gobble + }{% + \global\let\PdfRender@ColorAvailable\ltx@firstofone + }% + \PdfRender@ColorAvailable +} +\def\PdfRender@TryColor{% + \@ifnextchar[\color\PdfRender@@TryColor +} +\def\PdfRender@@TryColor#1\ltx@empty{% + \expandafter\color\expandafter{\PdfRender@Color}% +} +\def\PdfRender@SetColor{% + \chardef\PdfRender@NeedsCurrentColor=0 % + \ifx\PdfRender@FillColor\ltx@empty + \ifx\PdfRender@StrokeColor\ltx@empty + \else + \edef\PdfRender@CurrentColor{% + \noexpand\PdfRender@FillColor\ltx@space\PdfRender@StrokeColor + }% + \chardef\PdfRender@NeedsCurrentColor=1 % + \fi + \else + \ifx\PdfRender@StrokeColor\ltx@empty + \edef\PdfRender@CurrentColor{% + \PdfRender@FillColor\ltx@space\noexpand\PdfRender@StrokeColor + }% + \chardef\PdfRender@NeedsCurrentColor=2 % + \else + \edef\current@color{% + \PdfRender@FillColor\ltx@space\PdfRender@StrokeColor + }% + \set@color + \fi + \fi + \ifnum\PdfRender@NeedsCurrentColor=1 % + \PdfRender@GetFillColor + \ifx\PdfRender@FillColor\ltx@empty + \@PackageWarning{pdfrender}{% + Cannot extract current fill color% + }% + \else + \edef\current@color{\PdfRender@CurrentColor}% + \set@color + \fi + \else + \ifnum\PdfRender@NeedsCurrentColor=2 % + \PdfRender@GetStrokeColor + \ifx\PdfRender@StrokeColor\ltx@empty + \@PackageWarning{pdfrender}{% + Cannot extract current stroke color% + }% + \else + \edef\current@color{\PdfRender@CurrentColor}% + \set@color + \fi + \fi + \fi +} +\edef\PdfRender@PatternFillColor{ % space + (% + [0-9\string\.]+ g|% + [0-9\string\.]+ [0-9\string\.]+ [0-9\string\.]+ rg|% + [0-9\string\.]+ [0-9\string\.]+ % + [0-9\string\.]+ [0-9\string\.]+ k% + ) % space + (.*)$% +} +\edef\PdfRender@PatternStrokeColor{ % space + (% + [0-9\string\.]+ G|% + [0-9\string\.]+ [0-9\string\.]+ [0-9\string\.]+ RG|% + [0-9\string\.]+ [0-9\string\.]+ % + [0-9\string\.]+ [0-9\string\.]+ K% + ) % space + (.*)$% +} +\def\PdfRender@MatchPattern#1{% + \ifnum\pdfmatch{\PdfRender@Pattern}{\PdfRender@String}=1 % + \xdef#1{% + \expandafter\strip@prefix\pdflastmatch 1% + }% + \edef\PdfRender@String{% + \expandafter\strip@prefix\pdflastmatch 2% + }% + \ifx\PdfRender@String\ltx@empty + \else + \expandafter\expandafter\expandafter\PdfRender@MatchPattern + \expandafter\expandafter\expandafter#1% + \fi + \fi +} +\def\PdfRender@GetFillColor{% + \global\let\PdfRender@FillColor\ltx@empty + \begingroup + \ifPdfRender@Match + \let\PdfRender@Pattern\PdfRender@PatternFillColor + \edef\PdfRender@String{\ltx@space\current@color\ltx@space}% + \PdfRender@MatchPattern\PdfRender@FillColor + \else + \edef\current@color{\current@color\ltx@space}% + \let\PdfRender@OP\relax + \PdfRender@FindOp{g}0% + \PdfRender@FindOp{G}1% + \PdfRender@FindOp{rg}0% + \PdfRender@FindOp{RG}1% + \PdfRender@FindOp{k}0% + \PdfRender@FindOp{K}1% + \PdfRender@FilterOp 0\PdfRender@FillColor + \fi + \endgroup +} +\def\PdfRender@GetStrokeColor{% + \global\let\PdfRender@StrokeColor\ltx@empty + \begingroup + \ifPdfRender@Match + \let\PdfRender@Pattern\PdfRender@PatternStrokeColor + \edef\PdfRender@String{\ltx@space\current@color\ltx@space}% + \PdfRender@MatchPattern\PdfRender@StrokeColor + \else + \edef\current@color{\current@color\ltx@space}% + \let\PdfRender@OP\relax + \PdfRender@FindOp{g}0% + \PdfRender@FindOp{G}1% + \PdfRender@FindOp{rg}0% + \PdfRender@FindOp{RG}1% + \PdfRender@FindOp{k}0% + \PdfRender@FindOp{K}1% + \PdfRender@FilterOp 1\PdfRender@StrokeColor + \fi + \endgroup +} +\ifPdfRender@Match + \expandafter\PdfRender@AtEnd +\fi +\def\PdfRender@FindOp#1#2{% + \def\PdfRender@temp##1 #1 ##2\@nil{% + ##1% + \ifx\\##2\\% + \expandafter\@gobble + \else + \PdfRender@OP{#1}#2% + \expandafter\@firstofone + \fi + {% + \PdfRender@temp##2\@nil + }% + }% + \edef\current@color{% + \@firstofone{\expandafter\PdfRender@temp\current@color} #1 \@nil + }% +} +\def\PdfRender@FilterOp#1#2{% + \expandafter\PdfRender@@FilterOp\expandafter#1\expandafter#2% + \current@color\PdfRender@OP{}{}% +} +\def\PdfRender@@FilterOp#1#2#3\PdfRender@OP#4#5{% + \ifx\\#4#5\\% + \else + \ifnum#1=#5 % + \xdef#2{#3 #4}% + \fi + \expandafter\PdfRender@@FilterOp\expandafter#1\expandafter#2% + \fi +} +\PdfRender@AtEnd +\endinput +%% +%% End of file `pdfrender.sty'. -- cgit v1.2.3