You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
802 lines
22 KiB
802 lines
22 KiB
%%
|
|
%% 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: 2019/12/29 v1.6
|
|
%%
|
|
%% Copyright (C)
|
|
%% 2010 Heiko Oberdiek
|
|
%% 2016-2019 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/oberdiek/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}%
|
|
[2019/12/29 v1.6 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@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%
|
|
%% \section{Installation}
|
|
\endinput
|
|
%%
|
|
%% End of file `pdfrender.sty'.
|
|
|