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.
746 lines
20 KiB
746 lines
20 KiB
%%
|
|
%% 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'.
|
|
|