%% %% This is file `pdftexcmds.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% pdftexcmds.dtx (with options: `package') %% %% This is a generated file. %% %% Project: pdftexcmds %% Version: 2020-06-27 v0.33 %% %% Copyright (C) %% 2007, 2009-2011 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/pdftexcmds/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 pdftexcmds.dtx %% and the derived files %% pdftexcmds.sty, pdftexcmds.pdf, pdftexcmds.ins, pdftexcmds.drv, %% pdftexcmds.lua. %% \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@pdftexcmds.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{pdftexcmds}{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@pdftexcmds.sty\endcsname \ProvidesPackage{pdftexcmds}% [2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO)]% \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ \def\x{\endgroup \expandafter\edef\csname pdftexcmds@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\pdftexcmds@AtEnd{% \pdftexcmds@AtEnd \catcode#1=\the\catcode#1\relax }% \catcode#1=#2\relax } \TMP@EnsureCode{0}{12}% \TMP@EnsureCode{1}{12}% \TMP@EnsureCode{2}{12}% \TMP@EnsureCode{10}{12}% ^^J \TMP@EnsureCode{33}{12}% ! \TMP@EnsureCode{34}{12}% " \TMP@EnsureCode{38}{4}% & \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{60}{12}% < \TMP@EnsureCode{62}{12}% > \TMP@EnsureCode{91}{12}% [ \TMP@EnsureCode{93}{12}% ] \TMP@EnsureCode{94}{7}% ^ (superscript) \TMP@EnsureCode{95}{12}% _ (other) \TMP@EnsureCode{96}{12}% ` \TMP@EnsureCode{126}{12}% ~ (other) \edef\pdftexcmds@AtEnd{% \pdftexcmds@AtEnd \escapechar=\number\escapechar\relax \noexpand\endinput } \escapechar=92 % \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \def\TMP@RequirePackage#1[#2]{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname ver@#1.sty\endcsname\relax \input #1.sty\relax \fi }% \TMP@RequirePackage{infwarerr}[2007/09/09]% \TMP@RequirePackage{iftex}[2019/11/07]%% \TMP@RequirePackage{ltxcmds}[2010/12/02]% \else \RequirePackage{infwarerr}[2007/09/09]% \RequirePackage{iftex}[2019/11/07]% \RequirePackage{ltxcmds}[2010/12/02]% \fi \ifluatex \ifcsname catcodetable@string\endcsname\else\input{ltluatex}\fi \else \def\pdftexcmds@nopdftex{% \let\pdftexcmds@nopdftex\relax }% \def\pdftexcmds@temp#1{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname \expandafter\ifx\csname pdf#1\endcsname\relax\else pdf\fi#1\endcsname\relax \pdftexcmds@nopdftex \else \expandafter\def\csname pdf@#1\expandafter\endcsname \expandafter{% \csname\expandafter\ifx\csname pdf#1\endcsname\relax\else pdf\fi#1\endcsname }% \fi }% \pdftexcmds@temp{strcmp}% \pdftexcmds@temp{escapehex}% \let\pdf@escapehexnative\pdf@escapehex \pdftexcmds@temp{unescapehex}% \let\pdf@unescapehexnative\pdf@unescapehex \pdftexcmds@temp{escapestring}% \pdftexcmds@temp{escapename}% \pdftexcmds@temp{filesize}% \pdftexcmds@temp{filemoddate}% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfshellescape\endcsname\relax \pdftexcmds@nopdftex \ltx@IfUndefined{pdftexversion}{% }{% \ifnum\pdftexversion>120 % 1.21a supports \ifeof18 \ifeof18 % \chardef\pdf@shellescape=0 % \else \chardef\pdf@shellescape=1 % \fi \fi }% \else \def\pdf@shellescape{% \pdfshellescape }% \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdffiledump\endcsname\relax \pdftexcmds@nopdftex \else \def\pdf@filedump#1#2#3{% \pdffiledump offset#1 length#2{#3}% }% \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfmdfivesum\endcsname\relax \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname mdfivesum\endcsname\relax \pdftexcmds@nopdftex \else \def\pdf@mdfivesum#{\mdfivesum}% \let\pdf@mdfivesumnative\pdf@mdfivesum \def\pdf@filemdfivesum#{\mdfivesum file}% \fi \else \def\pdf@mdfivesum#{\pdfmdfivesum}% \let\pdf@mdfivesumnative\pdf@mdfivesum \def\pdf@filemdfivesum#{\pdfmdfivesum file}% \fi \def\pdf@system#{% \immediate\write18% }% \def\pdftexcmds@temp#1{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname \expandafter\ifx\csname pdf#1\endcsname\relax\else pdf\fi#1\endcsname\relax \pdftexcmds@nopdftex \else \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\let\csname pdf@#1\expandafter\endcsname \csname\expandafter\ifx\csname pdf#1\endcsname\relax\else pdf\fi#1\endcsname \fi }% \pdftexcmds@temp{resettimer}% \pdftexcmds@temp{elapsedtime}% \fi \ifluatex \ifnum\luatexversion<36 % \def\pdftexcmds@directlua{\directlua0 }% \else \let\pdftexcmds@directlua\directlua \fi \begingroup \newlinechar=10 % \endlinechar=\newlinechar \pdftexcmds@directlua{% if tex.enableprimitives then tex.enableprimitives( 'pdf@', {'primitive', 'ifprimitive', 'pdfdraftmode','draftmode'} ) tex.enableprimitives('', {'luaescapestring'}) end }% \endgroup % \fi \def\pdftexcmds@strip@prefix#1>{} \def\pdftexcmds@temp#1#2#3{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdf@#1\endcsname\relax \begingroup \def\x{#3}% \edef\x{\expandafter\pdftexcmds@strip@prefix\meaning\x}% \escapechar=-1 % \edef\y{\expandafter\meaning\csname#2\endcsname}% \expandafter\endgroup \ifx\x\y \expandafter\let\csname pdf@#1\expandafter\endcsname \csname #2\endcsname \fi \fi } \pdftexcmds@temp{primitive}{pdfprimitive}{pdfprimitive}% pdfTeX, oldLuaTeX \pdftexcmds@temp{primitive}{primitive}{primitive}% XeTeX, luatex \pdftexcmds@temp{primitive}{luatexprimitive}{pdfprimitive}% oldLuaTeX \pdftexcmds@temp{primitive}{luatexpdfprimitive}{pdfprimitive}% oldLuaTeX \pdftexcmds@temp{ifprimitive}{ifpdfprimitive}{ifpdfprimitive}% pdfTeX, oldLuaTeX \pdftexcmds@temp{ifprimitive}{ifprimitive}{ifprimitive}% XeTeX, luatex \pdftexcmds@temp{ifprimitive}{luatexifprimitive}{ifpdfprimitive}% oldLuaTeX \pdftexcmds@temp{ifprimitive}{luatexifpdfprimitive}{ifpdfprimitive}% oldLuaTeX \ifluatex\else \begingroup \expandafter\ifx\csname pdf@primitive\endcsname\relax \else \expandafter\ifx\csname pdftexversion\endcsname\relax \else \ifnum\pdftexversion=140 % \expandafter\ifx\csname pdftexrevision\endcsname\relax \else \ifnum\pdftexrevision<4 % \endgroup \let\pdf@primitive\@undefined \@PackageInfoNoLine{pdftexcmds}{% \string\pdf@primitive\space disabled, % because\MessageBreak \string\pdfprimitive\space is broken until pdfTeX 1.40.4% }% \begingroup \fi \fi \fi \fi \fi \endgroup \fi \begingroup \@PackageInfoNoLine{pdftexcmds}{% \string\pdf@primitive\space is % \expandafter\ifx\csname pdf@primitive\endcsname\relax not \fi available% }% \@PackageInfoNoLine{pdftexcmds}{% \string\pdf@ifprimitive\space is % \expandafter\ifx\csname pdf@ifprimitive\endcsname\relax not \fi available% }% \endgroup \def\pdftexcmds@temp#1{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdf@#1\endcsname\relax \begingroup \escapechar=-1 % \edef\x{\expandafter\meaning\csname#1\endcsname}% \def\y{#1}% \def\z##1->{}% \edef\y{\expandafter\z\meaning\y}% \expandafter\endgroup \ifx\x\y \expandafter\def\csname pdf@#1\expandafter\endcsname \expandafter{% \csname#1\endcsname }% \fi \fi }% \pdftexcmds@temp{shellescape}% \pdftexcmds@temp{strcmp}% \def\pdf@isprimitive{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdf@strcmp\endcsname\relax \long\def\pdf@isprimitive##1{% \expandafter\pdftexcmds@isprimitive\expandafter{\meaning##1}% }% \long\def\pdftexcmds@isprimitive##1##2{% \expandafter\pdftexcmds@@isprimitive\expandafter{\string##2}{##1}% }% \def\pdftexcmds@@isprimitive##1##2{% \ifnum0\pdftexcmds@equal##1\delimiter##2\delimiter=1 % \expandafter\ltx@firstoftwo \else \expandafter\ltx@secondoftwo \fi }% \def\pdftexcmds@equal##1##2\delimiter##3##4\delimiter{% \ifx##1##3% \ifx\relax##2##4\relax 1% \else \ifx\relax##2\relax \else \ifx\relax##4\relax \else \pdftexcmds@equalcont{##2}{##4}% \fi \fi \fi \fi }% \def\pdftexcmds@equalcont##1{% \def\pdftexcmds@equalcont####1####2##1##1##1##1{% ##1##1##1##1% \pdftexcmds@equal####1\delimiter####2\delimiter }% }% \expandafter\pdftexcmds@equalcont\csname fi\endcsname \else \long\def\pdf@isprimitive##1##2{% \ifnum\pdf@strcmp{\meaning##1}{\string##2}=0 % \expandafter\ltx@firstoftwo \else \expandafter\ltx@secondoftwo \fi }% \fi } \ifluatex \ifx\pdfdraftmode\@undefined \let\pdfdraftmode\draftmode \fi \else \pdf@isprimitive \fi \let\pdftexcmds@temp\ltx@zero % \ltx@IfUndefined{pdfdraftmode}{% \@PackageInfoNoLine{pdftexcmds}{\ltx@backslashchar pdfdraftmode not found}% }{% \ifpdf \let\pdftexcmds@temp\ltx@one \@PackageInfoNoLine{pdftexcmds}{\ltx@backslashchar pdfdraftmode found}% \else \@PackageInfoNoLine{pdftexcmds}{% \ltx@backslashchar pdfdraftmode is ignored in DVI mode% }% \fi } \ifcase\pdftexcmds@temp \let\pdf@draftmode\ltx@zero \let\pdf@ifdraftmode\ltx@secondoftwo \def\pdftexcmds@setdraftmode#1{}% \else \let\pdftexcmds@draftmode\pdfdraftmode \def\pdf@ifdraftmode{% \ifnum\pdftexcmds@draftmode=\ltx@one \expandafter\ltx@firstoftwo \else \expandafter\ltx@secondoftwo \fi }% \def\pdf@draftmode{% \ifnum\pdftexcmds@draftmode=\ltx@one \expandafter\ltx@one \else \expandafter\ltx@zero \fi }% \def\pdftexcmds@setdraftmode#1{% \pdftexcmds@draftmode=#1\relax }% \fi \def\pdf@setdraftmode#1{% \begingroup \count\ltx@cclv=#1\relax \edef\x{\endgroup \noexpand\pdftexcmds@@setdraftmode{\the\count\ltx@cclv}% }% \x } \def\pdftexcmds@@setdraftmode#1{% \ifcase#1 % \pdftexcmds@setdraftmode{#1}% \or \pdftexcmds@setdraftmode{#1}% \else \@PackageWarning{pdftexcmds}{% \string\pdf@setdraftmode: Ignoring\MessageBreak invalid value `#1'% }% \fi } \ifluatex \else \expandafter\pdftexcmds@AtEnd \fi% \pdftexcmds@directlua{% require("pdftexcmds")% } \ifnum\luatexversion>37 % \ifnum0% \pdftexcmds@directlua{% if status.ini_version then % tex.write("1")% end% }>0 % \everyjob\expandafter{% \the\everyjob \pdftexcmds@directlua{% require("pdftexcmds")% }% }% \fi \fi \begingroup \def\x{2020-06-27 v0.33}% \ltx@onelevel@sanitize\x \edef\y{% \pdftexcmds@directlua{% if oberdiek.pdftexcmds.getversion then % oberdiek.pdftexcmds.getversion()% end% }% }% \ifx\x\y \else \@PackageError{pdftexcmds}{% Wrong version of lua module.\MessageBreak Package version: \x\MessageBreak Lua module: \y }\@ehc \fi \endgroup \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname newtoks\endcsname\relax \toksdef\pdftexcmds@toks=0 % \else \csname newtoks\endcsname\pdftexcmds@toks \fi \def\pdftexcmds@Patch{0} \ifnum\luatexversion>40 % \ifnum\luatexversion<66 % \def\pdftexcmds@Patch{1}% \fi \fi \ifcase\pdftexcmds@Patch \catcode`\&=14 % \else \catcode`\&=9 % \def\pdftexcmds@PatchDecode#1\@nil{% \pdftexcmds@DecodeA#1^^A^^A\@nil{}% }% \def\pdftexcmds@DecodeA#1^^A^^A#2\@nil#3{% \ifx\relax#2\relax \ltx@ReturnAfterElseFi{% \pdftexcmds@DecodeB#3#1^^A^^B\@nil{}% }% \else \ltx@ReturnAfterFi{% \pdftexcmds@DecodeA#2\@nil{#3#1^^@}% }% \fi }% \def\pdftexcmds@DecodeB#1^^A^^B#2\@nil#3{% \ifx\relax#2\relax% \ltx@ReturnAfterElseFi{% \ltx@zero #3#1% }% \else \ltx@ReturnAfterFi{% \pdftexcmds@DecodeB#2\@nil{#3#1^^A}% }% \fi }% \fi \ifnum\luatexversion<36 % \else \catcode`\0=9 % \fi \long\def\pdf@strcmp#1#2{% \directlua0{% oberdiek.pdftexcmds.strcmp("\luaescapestring{#1}",% "\luaescapestring{#2}")% }% }% \pdf@isprimitive \long\def\pdf@escapehex#1{% \directlua0{% oberdiek.pdftexcmds.escapehex("\luaescapestring{#1}", "byte")% }% }% \long\def\pdf@escapehexnative#1{% \directlua0{% oberdiek.pdftexcmds.escapehex("\luaescapestring{#1}")% }% }% \def\pdf@unescapehex#1{% & \romannumeral\expandafter\pdftexcmds@PatchDecode \the\expandafter\pdftexcmds@toks \directlua0{% oberdiek.pdftexcmds.toks="pdftexcmds@toks"% oberdiek.pdftexcmds.unescapehex("\luaescapestring{#1}", "byte", \pdftexcmds@Patch)% }% & \@nil }% \def\pdf@unescapehexnative#1{% & \romannumeral\expandafter\pdftexcmds@PatchDecode \the\expandafter\pdftexcmds@toks \directlua0{% oberdiek.pdftexcmds.toks="pdftexcmds@toks"% oberdiek.pdftexcmds.unescapehex("\luaescapestring{#1}", \pdftexcmds@Patch)% }% & \@nil }% \long\def\pdf@escapestring#1{% \directlua0{% oberdiek.pdftexcmds.escapestring("\luaescapestring{#1}")% }% } \long\def\pdf@escapename#1{% \directlua0{% oberdiek.pdftexcmds.escapename("\luaescapestring{#1}", "byte")% }% } \long\def\pdf@escapenamenative#1{% \directlua0{% oberdiek.pdftexcmds.escapename("\luaescapestring{#1}")% }% } \def\pdf@filesize#1{% \directlua0{% oberdiek.pdftexcmds.filesize("\luaescapestring{#1}")% }% } \def\pdf@filemoddate#1{% \directlua0{% oberdiek.pdftexcmds.filemoddate("\luaescapestring{#1}")% }% } \def\pdf@filedump#1#2#3{% \directlua0{% oberdiek.pdftexcmds.filedump("\luaescapestring{\number#1}",% "\luaescapestring{\number#2}",% "\luaescapestring{#3}")% }% }% \long\def\pdf@mdfivesum#1{% \directlua0{% oberdiek.pdftexcmds.mdfivesum("\luaescapestring{#1}", "byte")% }% }% \long\def\pdf@mdfivesumnative#1{% \directlua0{% oberdiek.pdftexcmds.mdfivesum("\luaescapestring{#1}")% }% }% \def\pdf@filemdfivesum#1{% \directlua0{% oberdiek.pdftexcmds.filemdfivesum("\luaescapestring{#1}")% }% }% \let\pdftexcmds@temp=Y% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname protected\endcsname\relax \pdftexcmds@directlua0{% if tex.enableprimitives then % tex.enableprimitives('', {'protected'})% end% }% \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname protected\endcsname\relax \let\pdftexcmds@temp=N% \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname numexpr\endcsname\relax \pdftexcmds@directlua0{% if tex.enableprimitives then % tex.enableprimitives('', {'numexpr'})% end% }% \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname numexpr\endcsname\relax \let\pdftexcmds@temp=N% \fi \ifx\pdftexcmds@temp N% \@PackageWarningNoLine{pdftexcmds}{% Definitions of \ltx@backslashchar pdf@resettimer and% \MessageBreak \ltx@backslashchar pdf@elapsedtime are skipped, because% \MessageBreak e-TeX's \ltx@backslashchar protected or % \ltx@backslashchar numexpr are missing% }% \else \protected\def\pdf@resettimer{% \pdftexcmds@directlua0{% oberdiek.pdftexcmds.resettimer()% }% }% \protected\def\pdf@elapsedtime{% \numexpr \pdftexcmds@directlua0{% oberdiek.pdftexcmds.elapsedtime()% }% \relax }% \fi \ifnum\luatexversion<68 % \else \protected\edef\pdf@shellescape{% \numexpr\directlua{tex.sprint(% \number\catcodetable@string,status.shell_escape)}\relax} \fi \def\pdf@system#1{% \directlua0{% oberdiek.pdftexcmds.system("\luaescapestring{#1}")% }% } \def\pdf@lastsystemstatus{% \directlua0{% oberdiek.pdftexcmds.lastsystemstatus()% }% } \def\pdf@lastsystemexit{% \directlua0{% oberdiek.pdftexcmds.lastsystemexit()% }% } \catcode`\0=12 % \ifnum0% \pdftexcmds@directlua{% if io.popen then % tex.write("1")% end% }% =1 % \def\pdf@pipe#1{% & \romannumeral\expandafter\pdftexcmds@PatchDecode \the\expandafter\pdftexcmds@toks \pdftexcmds@directlua{% oberdiek.pdftexcmds.toks="pdftexcmds@toks"% oberdiek.pdftexcmds.pipe("\luaescapestring{#1}", \pdftexcmds@Patch)% }% & \@nil }% \fi \pdftexcmds@AtEnd% \endinput %% %% End of file `pdftexcmds.sty'.