%% %% 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. %% %% Project: pdfrender %% Version: 2023-12-07 v1.8 %% %% Copyright (C) %% 2010 Heiko Oberdiek %% 2016-2023 Oberdiek Package Support Group %% %% 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 %% https://www.latex-project.org/lppl/lppl-1-3c.txt %% and the latest version of this license is in %% https://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". %% %% The Current Maintainers of this work are %% Heiko Oberdiek and the Oberdiek Package Support Group %% https://github.com/ho-tex/pdfrender/issues %% %% 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\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode35=6 % # \catcode39=12 % ' \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 \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\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode35=6 % # \catcode39=12 % ' \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}% [2023-12-07 v1.8 Access to some PDF graphics parameters (HO)]% \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ \def\x{\endgroup \expandafter\edef\csname PdfRender@AtEnd\endcsname{% \endlinechar=\the\endlinechar\relax \catcode13=\the\catcode13\relax \catcode32=\the\catcode32\relax \catcode35=\the\catcode35\relax \catcode61=\the\catcode61\relax \catcode64=\the\catcode64\relax \catcode123=\the\catcode123\relax \catcode125=\the\catcode125\relax }% }% \x\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \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{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 \ifx\pdfextension\@undefined\else \def\pdfcolorstackinit {\pdffeedback colorstackinit} \protected\def\pdfcolorstack {\pdfextension colorstack} \protected\def\pdfliteral {\pdfextension literal} \fi \PdfRender@RequirePackage{iftex}[2019/11/07] \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@temp{LaTeX2e} \ifx\PdfRender@temp\fmtname \expandafter \ltx@firstoftwo \else \expandafter\ltx@secondoftwo \fi { \AddToHook{cmd/normalcolor/after}{\PdfRender@NormalColorHook} \AddToHook{cmd/color@setgroup/after}{\PdfRender@NormalColorHook} } { \ltx@ifundefined{normalcolor} {% \gdef\normalcolor{\PdfRender@NormalColorHook}% } {% \ltx@GlobalAppendToMacro\normalcolor{% \PdfRender@NormalColorHook}% }% \ltx@GlobalAppendToMacro\color@setgroup{% \PdfRender@ColorSetGroupHook }% } \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{% \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% %% \section{Installation} \endinput %% %% End of file `pdfrender.sty'.