%% %% 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. %% %% Copyright (C) 2007, 2009, 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 pdftexcmds.dtx %% and the derived files %% pdftexcmds.sty, pdftexcmds.pdf, pdftexcmds.ins, pdftexcmds.drv, %% pdftexcmds-test1.tex, pdftexcmds-test2.tex, %% oberdiek.pdftexcmds.lua, pdftexcmds.lua. %% \begingroup \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 \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{pdftexcmds}{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@pdftexcmds.sty\endcsname \ProvidesPackage{pdftexcmds}% [2010/03/01 v0.8 Utility functions of pdfTeX for LuaTeX (HO)] \begingroup \catcode123 1 % { \catcode125 2 % } \def\x{\endgroup \expandafter\edef\csname pdftexcmds@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\pdftexcmds@AtEnd{% \pdftexcmds@AtEnd \catcode#1 \the\catcode#1\relax }% \catcode#1 #2\relax } \TMP@EnsureCode{10}{12}% ^^J \TMP@EnsureCode{33}{12}% ! \TMP@EnsureCode{34}{12}% " \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{61}{12}% = \TMP@EnsureCode{62}{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 } \escapechar=92 % \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input infwarerr.sty\relax \input ifluatex.sty\relax \input ltxcmds.sty\relax \else \RequirePackage{infwarerr}[2007/09/09]% \RequirePackage{ifluatex}[2010/03/01]% \RequirePackage{ltxcmds}% \fi \ifluatex \else \@PackageInfoNoLine{pdftexcmds}{LuaTeX not detected}% \def\pdftexcmds@nopdftex{% \@PackageInfoNoLine{pdftexcmds}{pdfTeX >= 1.30 not detected}% \let\pdftexcmds@nopdftex\relax }% \def\pdftexcmds@temp#1{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdf#1\endcsname\relax \pdftexcmds@nopdftex \else \expandafter\def\csname pdf@#1\expandafter\endcsname \expandafter##\expandafter{% \csname pdf#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 \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 \pdftexcmds@nopdftex \else \def\pdf@mdfivesum#{\pdfmdfivesum}% \let\pdf@mdfivesumnative\pdf@mdfivesum \def\pdf@filemdfivesum#{\pdfmdfivesum file}% \fi \def\pdf@system#{% \immediate\write18% }% \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'}) 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, LuaTeX \pdftexcmds@temp{primitive}{primitive}{primitive}% XeTeX \pdftexcmds@temp{primitive}{luatexprimitive}{pdfprimitive}% LuaTeX \pdftexcmds@temp{primitive}{luatexpdfprimitive}{pdfprimitive}% LuaTeX \pdftexcmds@temp{ifprimitive}{ifpdfprimitive}{ifpdfprimitive}% pdfTeX, LuaTeX \pdftexcmds@temp{ifprimitive}{ifprimitive}{ifprimitive}% XeTeX \pdftexcmds@temp{ifprimitive}{luatexifprimitive}{ifpdfprimitive}% LuaTeX \pdftexcmds@temp{ifprimitive}{luatexifpdfprimitive}{ifpdfprimitive}% LuaTeX \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 disabled, because\MessageBreak \string\pdfprimitive\space is broken until pdfTeX 1.40.4% }% \begingroup \fi \fi \fi \fi \fi \endgroup \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 \else \pdf@isprimitive \pdftexcmds@AtEnd \expandafter\endinput \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input luatex-loader.sty\relax \else \RequirePackage{luatex-loader}[2009/04/10]% \fi \pdftexcmds@directlua{% require("oberdiek.pdftexcmds")% } \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname newtoks\endcsname\relax \toksdef\pdftexcmds@toks=0 % \else \csname newtoks\endcsname\pdftexcmds@toks \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{% \the\expandafter\pdftexcmds@toks \directlua0{% oberdiek.pdftexcmds.toks="pdftexcmds@toks"% oberdiek.pdftexcmds.unescapehex("\luaescapestring{#1}", "byte")% }% }% \def\pdf@unescapehexnative#1{% \the\expandafter\pdftexcmds@toks \directlua0{% oberdiek.pdftexcmds.toks="pdftexcmds@toks"% oberdiek.pdftexcmds.unescapehex("\luaescapestring{#1}")% }% }% \long\def\pdf@escapestring#1{% \directlua0{% oberdiek.pdftexcmds.escapestring("\luaescapestring{#1}", "byte")% }% } \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}")% }% }% \def\pdf@shellescape{% \directlua0{% oberdiek.pdftexcmds.shellescape()% }% } \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{% \the\expandafter\pdftexcmds@toks \pdftexcmds@directlua{% oberdiek.pdftexcmds.toks="pdftexcmds@toks"% oberdiek.pdftexcmds.pipe("\luaescapestring{#1}")% }% }% \fi \pdftexcmds@AtEnd \endinput %% %% End of file `pdftexcmds.sty'.