[latex3-commits] [git/LaTeX3-latex3-pdfresources] renamedict77: start attachfile tests (7d668af)
Ulrike Fischer
fischer at troubleshooting-tex.de
Mon Apr 13 22:34:48 CEST 2020
Repository : https://github.com/latex3/pdfresources
On branch : renamedict77
Link : https://github.com/latex3/pdfresources/commit/7d668af8813c347993e1a01466b63722ed163f80
>---------------------------------------------------------------
commit 7d668af8813c347993e1a01466b63722ed163f80
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date: Mon Apr 13 22:34:48 2020 +0200
start attachfile tests
>---------------------------------------------------------------
7d668af8813c347993e1a01466b63722ed163f80
build.lua | 5 +-
newpackages/atfi-generic.def | 173 +++++++++
newpackages/new-attachfile.sty | 819 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 996 insertions(+), 1 deletion(-)
diff --git a/build.lua b/build.lua
index 9326312..c738bf8 100644
--- a/build.lua
+++ b/build.lua
@@ -12,7 +12,10 @@ sourcefiles = {"*.dtx","*.ins",
"tmpl3shipout.sty",
"newpackages/new-transparent.sty",
"newpackages/new-bookmark.sty",
- "newpackages/bkm-generic.def"}
+ "newpackages/bkm-generic.def",
+ "newpackages/new-attachfile.sty",
+ "newpackages/atfi-generic.def",
+ }
checkruns = 3
diff --git a/newpackages/atfi-generic.def b/newpackages/atfi-generic.def
new file mode 100644
index 0000000..b071189
--- /dev/null
+++ b/newpackages/atfi-generic.def
@@ -0,0 +1,173 @@
+%%
+%% This is file `atfi-pdftex.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% attachfile2.dtx (with options: `pdftex')
+%%
+%% This is a generated file.
+%%
+%% Project: attachfile2
+%% Version: 2019/11/26 v2.11
+%%
+%% Copyright (C)
+%% 2005-2010, 2012 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/attachfile2/issues
+%%
+%%
+%% This work consists of the main source file attachfile2.dtx
+%% and the derived files
+%% attachfile2.sty, attachfile2.pdf,
+%% atfi-dvips.def, atfi-pdftex.def, atfi-dvipdfmx.def, atfi-luatex.def
+%% pdfatfi.pl, pdfatfi.1.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{atfi-generic.def}%
+ [2020/04/13 v1.0 generic attachfile2 (UF)]%
+\ExplSyntaxOn
+\cs_set_eq:NN \atfi at literal \__draw_backend_literal:n
+\ExplSyntaxOff
+%\let\atfi at literal\pdfliteral %<---
+\def\atfi at GSAVE{q }
+\def\atfi at GRESTORE{Q }
+\def\atfi at SETLINEWIDTH{w }
+\def\atfi at LINETO{l }
+\def\atfi at MOVETO{m }
+\def\atfi at STROKE{S }
+\def\atfi at FILL{f }
+\def\atfi at FILLSTROKE#1#2{#1#2B }
+\def\atfi at SETRGBCOLORSTROKE{RG }
+\def\atfi at SETRGBCOLORFILL{rg }
+\def\atfi at SETGRAYSTROKE{G }
+\def\atfi at SETGRAYFILL{g }
+\def\atfi at SETCMYKCOLORSTROKE{K }
+\def\atfi at SETCMYKCOLORFILL{k }
+\def\atfi at RECTFILL{re f }
+\def\atfi at RECTSTROKEFILL#1#2#3{#1#2#3re B }
+\def\atfi at SETMITERLIMIT{M }
+\def\atfi at SETFLAT{i }
+\def\atfi at SETLINECAP{J }
+\def\atfi at CURVETO{c }
+\def\atfi at CURVETOV{v }
+\def\atfi at CURVETOY{y }
+\def\atfi at CLOSEPATH{h }
+\def\atfi at SETLINEJOIN{j }
+\define at key{AtFi at file}{Size}{%
+ \edef\atfi at params{\atfi at params/Size #1}%
+}
+\def\atfi at embedfile#1{%
+ \ltx at IfUndefined{atfi at fileobj@#1}{%
+ \begingroup
+ \let\atfi at params\ltx at empty
+ \expandafter\let\expandafter\atfi at temp
+ \csname atfi at file@#1\endcsname
+ \ifx\atfi at temp\ltx at empty
+ \let\atfi at temp\relax
+ \fi
+ \ifx\atfi at temp\relax
+ \atfi at pdftexdata{#1}%
+ \else
+ \edef\x{%
+ \noexpand\setkeys{AtFi at file}{\@nameuse{atfi at file@#1}}%
+ }%
+ \x
+ \fi
+ \ifx\atfi at params\ltx at empty
+ \else
+ \edef\atfi at params{/Params<<\atfi at params>>}%
+ \fi
+ \immediate\pdfobj stream attr {%
+ /Type/EmbeddedFile%
+ \atfi at mimetype
+ \atfi at params
+ } file {#1}%
+ \expandafter
+ \xdef\csname atfi at fileobj@#1\endcsname{\the\pdflastobj}%
+ \endgroup
+ }{%
+ % file already embedded
+ }%
+}
+\def\atfi at xform{%
+ \immediate\pdfxform\atfi at appearancebox
+ \edef\atfi at appearanceobj{\the\pdflastxform}%
+}
+\let\atfi at xform@icon\atfi at xform
+\def\atfi at refxform#1{%
+ \pdfrefxform#1\relax
+}
+\def\atfi at insert@file at annot#1{%
+ \rule{0pt}{0pt}%
+ \ifatfi at appearance
+ \def\atfi at appearance@dict{%
+ /AP<<%
+ /N \atfi at appearanceobj\space 0 R%
+ /R \atfi at appearanceobj\space 0 R%
+ /D \atfi at appearanceobj\space 0 R%
+ >>%
+ }%
+ \else
+ \let\atfi at appearance@dict\ltx at empty
+ \fi
+ \ltx at IfUndefined{atfi at fsobj@#1}{%
+ \begingroup
+ \hypersetup{unicode=false}%
+ \atfi at pdfstringdef\atfi at file{#1}%
+ \immediate\pdfobj{%
+ <<%
+ /Type/Filespec%
+ /F(\atfi at file)%
+ \ifx\atfi at ucfilespec\ltx at empty
+ \else
+ /UF(\atfi at ucfilespec)%
+ \fi
+ /EF<<%
+ /F \@nameuse{atfi at fileobj@#1} 0 R%
+ >>%
+ >>%
+ }%
+ \expandafter\xdef\csname atfi at fsobj@#1\endcsname{%
+ \the\pdflastobj
+ }%
+ \endgroup
+ }{%
+ }%
+ \pdfannot width \atfi at scale\atfi at appearancewidth
+ height \atfi at scale\atfi at appearanceheight
+ depth \atfi at scale\atfi at appearancedepth {%
+ /Subtype/FileAttachment%
+ \atfi at icon
+ \atfi at color@annot
+ \atfi at author
+ \atfi at date
+ \atfi at annotname
+ \atfi at description
+ \atfi at subject
+ \atfi at appearance@dict
+ /F \theatfi at flags
+ /FS \@nameuse{atfi at fsobj@#1} 0 R%
+ }%
+ \rule{0pt}{\atfi at appearanceheight}%
+ \rule[-\atfi at appearancedepth]{0pt}{\atfi at appearancedepth}%
+ \rule{\atfi at appearancewidth}{0pt}%
+}
+\endinput
+%%
+%% End of file `atfi-pdftex.def'.
diff --git a/newpackages/new-attachfile.sty b/newpackages/new-attachfile.sty
new file mode 100644
index 0000000..941798a
--- /dev/null
+++ b/newpackages/new-attachfile.sty
@@ -0,0 +1,819 @@
+%%
+%% This is file `attachfile2.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% attachfile2.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Project: attachfile2
+%% Version: 2019/11/26 v2.11
+%%
+%% Copyright (C)
+%% 2005-2010, 2012 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/attachfile2/issues
+%%
+%%
+%% This work consists of the main source file attachfile2.dtx
+%% and the derived files
+%% attachfile2.sty, attachfile2.pdf,
+%% atfi-dvips.def, atfi-pdftex.def, atfi-dvipdfmx.def, atfi-luatex.def
+%% pdfatfi.pl, pdfatfi.1.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{new-attachfile}%
+ [2020/04/13 v1.00 Attach files into PDF (HO/UF)]%
+\RequirePackage{iftex}[2019/11/07]
+\RequirePackage{keyval}
+\RequirePackage{color}
+\RequirePackage{infwarerr}[2010/04/08]
+\RequirePackage{ltxcmds}[2010/04/26]
+\RequirePackage{kvoptions}[2009/07/21]
+\RequirePackage{pdftexcmds}[2010/04/01]
+\RequirePackage{pdfescape}[2007/11/11]
+\RequirePackage{hyperref}
+\RequirePackage{hycolor}[2008/07/29]
+\ltx at IfUndefined{pdfmatch}{%
+ \def\atfi at Match#1#2#3#4#5{}%
+}{%
+ \def\atfi at Match#1#2#3{%
+ \begingroup
+ \edef\^{\ltx at backslashchar\string^}%
+ \edef\.{\ltx at backslashchar.}%
+ \let\#\ltx at hashchar
+ \edef\[{\ltx at backslashchar[}% ]]
+ \edef\${\ltx at backslashchar$}%
+ \let\%\ltx at percentchar
+ \edef\&{\string&}%
+ \edef\({\ltx at backslashchar(}%
+ \edef\){\ltx at backslashchar)}%
+ \edef\|{\ltx at backslashchar|}%
+ \edef\*{\ltx at backslashchar*}%
+ \edef\+{\ltx at backslashchar+}%
+ \edef\?{\ltx at backslashchar?}%
+ \edef\{{\ltx at backslashchar\ltx at leftbracechar}%
+ \edef\}{\ltx at rightbracechar}%
+ \edef\\{\ltx at backslashchar\ltx at backslashchar}%
+ \edef\~{\string~}%
+ \ifcase\pdfmatch#3{#2}{#1} %
+ \endgroup
+ \expandafter\ltx at secondoftwo
+ \or
+ \endgroup
+ \expandafter\ltx at firstoftwo
+ \else
+ \atfi at Warning{%
+ Internal error: Wrong pattern!\MessageBreak
+ --> #2 <--\MessageBreak
+ Pattern check ignored%
+ }%
+ \endgroup
+ \expandafter\ltx at firstoftwo
+ \fi
+ }%
+ \def\atfi at PatToken{%
+ [%
+ -% first character
+ !%
+ \#$\%\&'%
+ \*\+\.%
+ 0-9%
+ A-Z%
+ \^_`%
+ a-z%
+ \{\}\|\~%
+ ]+%
+ }%
+ \begingroup
+ \lccode64=13 % @
+ \lowercase{\endgroup
+ \def\atfi at CR{@}%
+ }%
+ \def\atfi at PatQuotedString{%
+ "%
+ ([^"\\\atfi at CR]|\\.)*%
+ "%
+ }%
+ \ltx at ifpackagelater{ltxcmds}{2010/09/11}{}{%
+ \begingroup
+ \lccode`0=`\{\relax
+ \lowercase{\endgroup
+ \def\ltx at leftbracechar{0}%
+ }%
+ \begingroup
+ \lccode`0=`\}\relax
+ \lowercase{\endgroup
+ \def\ltx at rightbracechar{0}%
+ }%
+ }%
+}
+\def\atfi at Warning{\PackageWarning{attachfile2}}
+\SetupKeyvalOptions{%
+ family=AtFi,%
+ prefix=atfi@%
+}
+\def\atfi at setup{\setkeys{AtFi}}
+\DeclareBoolOption{draft}
+\DeclareComplementaryOption{final}{draft}
+\def\atfi at mimetype{}
+\define at key{AtFi}{mimetype}{%
+ \edef\atfi at mimetype{#1}%
+ \ifx\atfi at mimetype\ltx at empty
+ \else
+ \atfi at Match\atfi at mimetype{%
+ ^(application|audio|image|model|text|video|x-\atfi at PatToken)%
+ /%
+ ([a-z\-\+_\.0-9]+)%
+ (; ?\atfi at PatToken=(\atfi at PatToken|\atfi at PatQuotedString))*$%
+ }{icase}{}{%
+ \atfi at Warning{%
+ Invalid value `\atfi at mimetype'\MessageBreak
+ of option `mimetype'.\MessageBreak
+ Value is discarded%
+ }%
+ \let\atfi at mimetype\ltx at empty
+ }%
+ \fi
+ \ifx\atfi at mimetype\ltx at empty
+ \else
+ \EdefEscapeName\atfi at mimetype{\atfi at mimetype}%
+ \edef\atfi at mimetype{/Subtype/\atfi at mimetype}%
+ \fi
+}
+\define at key{AtFi}{icon}{%
+ \def\atfi at icon{/Name/#1}%
+ \def\atfi at icon@icon{#1}%
+}
+\atfi at setup{icon=PushPin}
+\define at key{AtFi}{color}{%
+ \HyColor at AttachfileColor{#1}%
+ \atfi at color@tex\atfi at color@inline\atfi at color@annot
+ {attachfile2}{color}%
+}
+\atfi at setup{color=1 0.9255 0.7765}
+\def\atfi at pad@ii#1{%
+ \ifnum#1>9 %
+ \number#1%
+ \else
+ 0\number#1%
+ \fi%
+}
+\let\atfi at timezone\ltx at empty
+\define at key{AtFi}{timezone}{\def\atfi at timezone{#1}}
+\edef\atfi at time{\the\time}
+\def\atfi at hours{%
+ \numexpr\dimexpr0.01667\dimexpr\atfi at time sp\relax\relax\relax
+}
+\def\atfi at minutes{%
+ \numexpr\atfi at time-60*\atfi at hours\relax
+}
+\def\atfi at seconds{0}
+\def\atfi at date{%
+ /M(D:\the\year
+ \atfi at pad@ii\month
+ \atfi at pad@ii\day
+ \atfi at pad@ii\atfi at hours
+ \atfi at pad@ii\atfi at minutes
+ \atfi at pad@ii\atfi at seconds
+ \atfi at timezone)%
+}
+\define at key{AtFi}{date}{%
+ \EdefEscapeString\atfi at date{#1}%
+ \edef\atfi at date{/M(\atfi at date)}%
+}
+\DeclareRobustCommand{\atfi at pdfstringdef}[2]{%
+ \pdfstringdef\atfi at temp@string{#2}%
+ \edef#1{\atfi at temp@string}%
+}
+\def\atfi at NoValue{\NoValue}
+\def\atfi at DefNoValueName#1#2#3{%
+ \def#1{#3}%
+ \ifx#1\atfi at NoValue
+ \let#1\ltx at empty
+ \else
+ \atfi at pdfstringdef#1{#1}%
+ \edef#1{/#2(#1)}%
+ \fi
+}
+\let\atfi at annotname\ltx at empty
+\define at key{AtFi}{annotname}[\NoValue]{%
+ \atfi at DefNoValueName\atfi at annotname{NM}{#1}%
+}
+\def\atfi at author{}
+\define at key{AtFi}{author}[\NoValue]{%
+ \atfi at DefNoValueName\atfi at author{T}{#1}%
+}
+\def\atfi at description{}
+\define at key{AtFi}{description}[\NoValue]{%
+ \atfi at DefNoValueName\atfi at description{Contents}{#1}%
+}
+\def\atfi at subject{}
+\define at key{AtFi}{subject}[\NoValue]{%
+ \atfi at DefNoValueName\atfi at subject{Subj}{#1}%
+}
+\DeclareBoolOption[true]{print}
+\DeclareBoolOption[true]{zoom}
+\DeclareBoolOption[true]{appearance}
+\DeclareStringOption[1]{scale}
+\def\atfi at ucfilespec{}
+\define at key{AtFi}{ucfilespec}[1]{%
+ \def\atfi at ucfilespec{#1}%
+ \ifx\atfi at ucfilespec\ltx at empty
+ \else
+ \atfi at pdfstringdef\atfi at ucfilespec{#1}%
+ \fi
+}
+\DeclareBoolOption{nofiles}
+\let\atfi at driver\ltx at empty
+\def\atfi at driver@pdftex{pdftex}
+\def\atfi at driver@luatex{luatex}
+\def\atfi at driver@dvips{dvips}
+\def\atfi at driver@dvipdfmx{dvipdfmx}
+\DeclareVoidOption{pdftex}{%
+ \ifpdf
+ \let\atfi at driver\atfi at driver@pdftex
+ \else
+ \let\atfi at driver\ltx at empty
+ \PackageError{attachfile2}{%
+ Wrong driver option `pdftex',\MessageBreak
+ because pdfTeX in PDF mode is not detected%
+ }\@ehc
+ \fi
+}
+\DeclareVoidOption{luatex}{%
+ \let\atfi at driver\atfi at driver@luatex
+}
+\DeclareVoidOption{dvips}{%
+ \let\atfi at driver\atfi at driver@dvips
+}
+\DeclareVoidOption{dvipdfmx}{%
+ \let\atfi at driver\atfi at driver@dvipdfmx
+}
+\DeclareVoidOption{xetex}{%
+ \let\atfi at driver\atfi at driver@dvipdfmx
+}
+\DeclareStringOption{driverfallback}
+\DeclareRobustCommand{\attachfilesetup}[1]{\setkeys{AtFi}{#1}}
+\DeclareLocalOptions{%
+ annotname,%
+ appearance,%
+ author,%
+ color,%
+ date,%
+ description,%
+ icon,%
+ mimetype,%
+ nofiles,%
+ print,%
+ scale,%
+ subject,%
+ timezone,%
+ ucfilespec,%
+ zoom,%
+}
+\InputIfFileExists{attachfile.cfg}{}{}
+\ProcessKeyvalOptions*
+\def\atfi at DisableOption{%
+ \DisableKeyvalOption[action=error,package=attachfile2]{AtFi}%
+}
+\ifpdf
+ \ifluatex
+ \let\atfi at driver\atfi at driver@luatex
+ \else
+ \let\atfi at driver\atfi at driver@pdftex
+ \fi
+\else
+ \ifxetex
+ \let\atfi at driver\atfi at driver@dvipdfmx
+ \else
+ \ifx\atfi at driver\ltx at empty
+ \ifx\atfi at driverfallback\ltx at empty
+ \else
+ \expandafter\let\expandafter\atfi at driver
+ \csname atfi at driver@\atfi at driverfallback\endcsname
+ \ifx\atfi at driver\atfi at driver@dvips
+ \else
+ \ifx\atfi at driver\atfi at driver@dvipdfmx
+ \else
+ \let\atfi at driver\ltx at empty
+ \PackageWarningNoLine{attachfile2}{%
+ Option `driverfallback' with unsupported\MessageBreak
+ DVI driver (\atfi at driverfallback)%
+ }%
+ \fi
+ \fi
+ \fi
+ \ifx\atfi at driver\ltx at empty
+ \PackageWarningNoLine{attachfile2}{%
+ Driver is not specified,\MessageBreak
+ enforce draft settings%
+ }%
+ \atfi at drafttrue
+ \fi
+ \fi
+ \fi
+\fi
+\atfi at DisableOption{pdftex}
+\atfi at DisableOption{dvips}
+\atfi at DisableOption{dvipdfmx}
+\atfi at DisableOption{xetex}
+\atfi at DisableOption{driverfallback}
+\DeclareRobustCommand{\notextattachfile}[2][]{%
+ \begingroup
+ \atfi at setup{#1}%
+ \ifatfi at print
+ \leavevmode
+ \begingroup
+ \HyColor at UseColor\atfi at color@tex
+ #2\strut
+ \endgroup
+ \else
+ \sbox\ltx at zero{#2\strut}%
+ \makebox[\wd0]{}%
+ \fi
+ \endgroup
+}
+\atfi at DisableOption{draft}%
+\atfi at DisableOption{final}%
+\ifatfi at draft
+ \def\atfi at dummy@pushpin{%
+ \raisebox{-1.25bp}{\parbox[b][14bp]{24bp}{}}%
+ }%
+ \DeclareRobustCommand{\textattachfile}[3][]{%
+ \notextattachfile[{#1}]{#3}%
+ }%
+ \DeclareRobustCommand{\noattachfile}[1][]{%
+ \notextattachfile[{#1}]{\atfi at dummy@pushpin}%
+ }%
+ \DeclareRobustCommand{\attachfile}[2][]{%
+ \noattachfile[{#1}]%
+ }%
+ \expandafter\endinput
+\fi
+\input{atfi-\atfi at driver.def}
+\def\atfi at acroGraph@data{%
+ \atfi at GSAVE
+ 0.5 \atfi at SETGRAYFILL
+ 1.1133 0 20.7202 18.2754 \atfi at RECTFILL
+ 0 \atfi at SETFLAT
+ 0.5 \atfi at SETLINEWIDTH
+ 4 \atfi at SETMITERLIMIT
+ \atfi at RECTSTROKEFILL{%
+ 1 \atfi at SETGRAYFILL
+ }{%
+ 0 \atfi at SETGRAYSTROKE
+ }{%
+ 0.25 1.6453 20.145 17.7715 %
+ }%
+ 0 \atfi at SETGRAYFILL
+ 2.7319 4.1367 3.9571 13.8867 \atfi at RECTFILL
+ 8.7031 4.1367 3.9571 9.8867 \atfi at RECTFILL
+ 14.7471 4.1367 3.9571 11.8867 \atfi at RECTFILL
+ \atfi at color@inline{FILL}%
+ 1.689 3.0938 3.9571 13.8867 \atfi at RECTFILL
+ 7.6602 3.0938 3.9571 9.8867 \atfi at RECTFILL
+ 13.7041 3.0938 3.9571 11.8867 \atfi at RECTFILL
+ \atfi at GRESTORE
+}
+\def\atfi at acroGraph{%
+ \raisebox{-1.5bp}{\parbox[b][20bp]{22bp}{%
+ \rule{0pt}{0pt}\atfi at literal{\atfi at acroGraph@data}}%
+ }%
+}
+\newcommand{\atfi at acroPaperclip@data}{%
+ \atfi at GSAVE
+ 0.75 \atfi at SETGRAYSTROKE
+ 0 \atfi at SETFLAT
+ 2.5 \atfi at SETLINEWIDTH
+ 1 \atfi at SETLINECAP
+ 4 \atfi at SETMITERLIMIT
+ 1.9619 11.7559 \atfi at MOVETO
+ 1.9619 3.3037 1.9619 2.5059 \atfi at CURVETOV
+ 1.9619 1.707 4.0947 1.25 \atfi at CURVETOY
+ 7.4141 1.25 \atfi at LINETO
+ 9.4292 1.8223 9.4292 3.3066 \atfi at CURVETOV
+ 9.4292 4.79 9.4292 16.8945 \atfi at CURVETOY
+ 9.7852 18.1514 8.481 18.1514 \atfi at CURVETOV
+ 7.1768 18.1514 5.1616 18.1514 \atfi at CURVETOY
+ 3.8574 17.9209 3.8574 16.8945 \atfi at CURVETOV
+ 3.8574 15.8652 3.8574 6.6172 \atfi at CURVETOY
+ 4.3325 5.418 5.1025 5.418 \atfi at CURVETOV
+ 5.8726 5.418 6.5845 5.418 \atfi at CURVETOY
+ 7.6812 5.6455 7.6812 6.4736 \atfi at CURVETOV
+ 7.6812 7.3027 7.6812 11.5264 \atfi at CURVETOY
+ \atfi at STROKE
+ 0 \atfi at SETGRAYSTROKE
+ 1.2495 12.4404 \atfi at MOVETO
+ 1.2495 3.9883 1.2495 3.1895 \atfi at CURVETOV
+ 1.2495 2.3906 3.3833 1.9326 \atfi at CURVETOY
+ 6.7026 1.9326 \atfi at LINETO
+ 8.7178 2.5068 8.7178 3.9902 \atfi at CURVETOV
+ 8.7178 5.4736 8.7178 17.5781 \atfi at CURVETOY
+ 9.0732 18.834 7.769 18.834 \atfi at CURVETOV
+ 6.4653 18.834 4.4497 18.834 \atfi at CURVETOY
+ 3.146 18.6055 3.146 17.5781 \atfi at CURVETOV
+ 3.146 16.5498 3.146 7.3018 \atfi at CURVETOY
+ 3.6201 6.1016 4.3911 6.1016 \atfi at CURVETOV
+ 5.1611 6.1016 5.873 6.1016 \atfi at CURVETOY
+ 6.9692 6.3301 6.9692 7.1572 \atfi at CURVETOV
+ 6.9692 7.9863 6.9692 12.21 \atfi at CURVETOY
+ \atfi at STROKE
+ \atfi at color@inline{STROKE}%
+ 1 \atfi at SETLINEWIDTH
+ 1.2495 12.4404 \atfi at MOVETO
+ 1.2495 3.9883 1.2495 3.1895 \atfi at CURVETOV
+ 1.2495 2.3906 3.3833 1.9326 \atfi at CURVETOY
+ 6.7026 1.9326 \atfi at LINETO
+ 8.7178 2.5068 8.7178 3.9902 \atfi at CURVETOV
+ 8.7178 5.4736 8.7178 17.5781 \atfi at CURVETOY
+ 9.0732 18.834 7.769 18.834 \atfi at CURVETOV
+ 6.4653 18.834 4.4497 18.834 \atfi at CURVETOY
+ 3.146 18.6055 3.146 17.5781 \atfi at CURVETOV
+ 3.146 16.5498 3.146 7.3018 \atfi at CURVETOY
+ 3.6201 6.1016 4.3911 6.1016 \atfi at CURVETOV
+ 5.1611 6.1016 5.873 6.1016 \atfi at CURVETOY
+ 6.9692 6.3301 6.9692 7.1572 \atfi at CURVETOV
+ 6.9692 7.9863 6.9692 12.21 \atfi at CURVETOY
+ \atfi at STROKE
+ \atfi at GRESTORE
+}
+\def\atfi at acroPaperclip{%
+ \raisebox{-1.25bp}{\parbox[b][21bp]{12bp}{%
+ \rule{0pt}{0pt}\atfi at literal{\atfi at acroPaperclip@data}}%
+ }%
+}
+\def\atfi at acroPushPin@data{%
+ \atfi at GSAVE
+ 1 \atfi at SETLINEWIDTH
+ 1 6 \atfi at MOVETO
+ 11 6 \atfi at LINETO
+ 11 13 \atfi at LINETO
+ 12 13 \atfi at LINETO
+ 14 11 \atfi at LINETO
+ 21 11 \atfi at LINETO
+ 22 12 \atfi at LINETO
+ 23 12 \atfi at LINETO
+ 23 2 \atfi at LINETO
+ 22 2 \atfi at LINETO
+ 21 3 \atfi at LINETO
+ 14 3 \atfi at LINETO
+ 12 1 \atfi at LINETO
+ 11 1 \atfi at LINETO
+ 11 6 \atfi at LINETO
+ \atfi at FILLSTROKE{%
+ \atfi at color@inline{FILL}%
+ }{%
+ 0 \atfi at SETGRAYSTROKE
+ }%
+ 0.5 \atfi at SETGRAYSTROKE
+ 0 7 \atfi at MOVETO
+ 10 7 \atfi at LINETO
+ 10 8 \atfi at LINETO
+ 1 8 \atfi at LINETO
+ \atfi at STROKE
+ 1 \atfi at SETGRAYSTROKE
+ 12 12 \atfi at MOVETO
+ 14 10 \atfi at LINETO
+ 22 10 \atfi at LINETO
+ 22 11 \atfi at LINETO
+ \atfi at STROKE
+ \atfi at GRESTORE
+}
+\def\atfi at acroPushPin{%
+ \raisebox{-1.25bp}{\parbox[b][14bp]{24bp}{%
+ \rule{0pt}{0pt}\atfi at literal{\atfi at acroPushPin@data}}%
+ }%
+}
+\def\atfi at acroTag@data{%
+ \atfi at GSAVE
+ 0.5 \atfi at SETGRAYFILL
+ 10.0542 14.9873 \atfi at MOVETO
+ 24.27 14.9873 \atfi at LINETO
+ 25.252 14.0059 \atfi at LINETO
+ 25.252 1.1455 \atfi at LINETO
+ 24.1064 0 \atfi at LINETO
+ 9.9609 0 \atfi at LINETO
+ 6.0327 6.0088 \atfi at LINETO
+ 6.0327 9.002 \atfi at LINETO
+ 10.0542 14.9873 \atfi at LINETO
+ 9.3994 9.376 \atfi at MOVETO
+ 8.5215 9.376 7.8096 8.5596 7.8096 7.5527 \atfi at CURVETO
+ 7.8096 6.5449 8.5215 5.7285 9.3994 5.7285 \atfi at CURVETO
+ 10.2778 5.7285 10.9897 6.5449 10.9897 7.5527 \atfi at CURVETO
+ 10.9897 8.5596 10.2778 9.376 9.3994 9.376 \atfi at CURVETO
+ \atfi at CLOSEPATH
+ \atfi at FILL
+ 0 \atfi at SETFLAT
+ 0.5 \atfi at SETLINEWIDTH
+ 4 \atfi at SETMITERLIMIT
+ 1 \atfi at SETLINEJOIN
+ 8.5107 16.5313 \atfi at MOVETO
+ 22.7266 16.5313 \atfi at LINETO
+ 23.7085 15.5488 \atfi at LINETO
+ 23.7085 2.6895 \atfi at LINETO
+ 22.563 1.543 \atfi at LINETO
+ 8.4175 1.543 \atfi at LINETO
+ 4.4893 7.5527 \atfi at LINETO
+ 4.4893 10.5449 \atfi at LINETO
+ 8.5107 16.5313 \atfi at LINETO
+ 7.856 10.9199 \atfi at MOVETO
+ 6.978 10.9199 6.2661 10.1035 6.2661 9.0957 \atfi at CURVETO
+ 6.2661 8.0879 6.978 7.2715 7.856 7.2715 \atfi at CURVETO
+ 8.7344 7.2715 9.4463 8.0879 9.4463 9.0957 \atfi at CURVETO
+ 9.4463 10.1035 8.7344 10.9199 7.856 10.9199 \atfi at CURVETO
+ \atfi at CLOSEPATH
+ \atfi at FILLSTROKE{%
+ \atfi at color@inline{FILL}%
+ }{%
+ 0 \atfi at SETGRAYSTROKE
+ }%
+ 1 \atfi at SETLINEWIDTH
+ 12.3291 12.2656 \atfi at MOVETO
+ 21.1206 12.2656 \atfi at LINETO
+ \atfi at STROKE
+ 12.3291 9.1797 \atfi at MOVETO
+ 21.1206 9.1797 \atfi at LINETO
+ \atfi at STROKE
+ 12.3291 6.1875 \atfi at MOVETO
+ 21.1206 6.1875 \atfi at LINETO
+ \atfi at STROKE
+ % 0 \atfi at SETGRAYSTROKE % redundant?
+ 0.5 \atfi at SETLINEWIDTH
+ 0 9.0488 \atfi at MOVETO
+ 6.2661 9.0957 \atfi at LINETO
+ \atfi at STROKE
+ 1.4028 5.2148 \atfi at MOVETO
+ 1.4028 9.6094 \atfi at LINETO
+ 1.6831 10.6387 2.4316 10.6387 \atfi at CURVETOV
+ 3.6475 10.6387 3.5542 9.0488 \atfi at CURVETOY
+ \atfi at STROKE
+ \atfi at GRESTORE
+}
+\def\atfi at acroTag{%
+ \raisebox{-1.6bp}{\parbox[b][17bp]{25bp}{%
+ \rule{0pt}{0pt}\atfi at literal{\atfi at acroTag@data}}%
+ }%
+}
+\def\attachfile at timezone#1{%
+ \ifx\\#1\\%
+ % no timezone information given
+ \else
+ \def\atfi at timezone{#1}%
+ \fi
+}
+\newcommand*{\attachfile at file}[2][]{%
+ \EdefUnescapeHex\atfi at filename{#2}%
+ \ifx\atfi at filename\ltx at empty
+ \PackageError{attachfile2}{Empty file name}\@ehc
+ \else
+ \@namedef{atfi at file@\atfi at filename}{#1}%
+ \fi
+}
+\InputIfFileExists{\jobname.atfi}{}{}%
+\newif\ifatfi at checksum
+\define at key{AtFi at file}{CheckSum}{%
+ \atfi at checksumtrue
+ \edef\atfi at params{\atfi at params/CheckSum<#1>}%
+}
+\newif\ifatfi at creationdate
+\define at key{AtFi at file}{CreationDateTZ}{%
+ \ifatfi at creationdate
+ \else
+ \atfi at creationdatetrue
+ \edef\atfi at params{%
+ \atfi at params
+ /CreationDate(#1)%
+ }%
+ \fi
+}
+\define at key{AtFi at file}{CreationDate}{%
+ \ifatfi at creationdate
+ \else
+ \atfi at creationdatetrue
+ \edef\atfi at params{%
+ \atfi at params
+ /CreationDate(#1\atfi at timezone)%
+ }%
+ \fi
+}
+\newif\ifatfi at moddate
+\define at key{AtFi at file}{ModDateTZ}{%
+ \ifatfi at moddate
+ \else
+ \atfi at moddatetrue
+ \edef\atfi at params{%
+ \atfi at params
+ /ModDate(#1)%
+ }%
+ \fi
+}
+\define at key{AtFi at file}{ModDate}{%
+ \ifatfi at moddate
+ \else
+ \atfi at moddatetrue
+ \edef\atfi at params{%
+ \atfi at params
+ /ModDate(D:#1\atfi at timezone)%
+ }%
+ \fi
+}
+\let\atfi at temp\ltx at one
+\ltx at IfUndefined{pdf at filesize}{%
+ \let\atfi at temp\ltx at zero
+}{}
+\ltx at IfUndefined{pdf at filemoddate}{%
+ \let\atfi at temp\ltx at zero
+}{}
+\ltx at IfUndefined{pdf at filemdfivesum}{%
+ \let\atfi at temp\ltx at zero
+}{}
+\ifcase\atfi at temp
+ \let\atfi at pdftexdata\ltx at gobble
+\or
+ \def\atfi at pdftexdata#1{%
+ \edef\atfi at temp{\pdf at filesize{#1}}%
+ \ifx\atfi at temp\ltx at empty
+ \else
+ \setkeys{AtFi at file}{Size=\atfi at temp}%
+ \edef\atfi at temp{\pdf at filemoddate{#1}}%
+ \ifx\atfi at temp\ltx at empty
+ \else
+ \setkeys{AtFi at file}{ModDateTZ=\atfi at temp}%
+ \fi
+ \edef\atfi at temp{\pdf at filemdfivesum{#1}}%
+ \ifx\atfi at temp\ltx at empty
+ \else
+ \setkeys{AtFi at file}{CheckSum=\atfi at temp}%
+ \fi
+ \fi
+ }%
+\fi
+\if at filesw
+\else
+ \atfi at nofilestrue
+\fi
+\ifatfi at nofiles
+ \PackageInfo{attachfile2}{%
+ File `\jobname.atfi' will not be written because of\MessageBreak
+ \string\nofiles\space or option `nofiles'%
+ }%
+ \let\atfi at writefile\ltx at gobble
+\else
+ \newwrite\atfi at stream
+ \immediate\openout\atfi at stream=\jobname.atfi\relax
+ \immediate\write\atfi at stream{%
+ \string\attachfile at timezone{\atfi at timezone}%
+ }%
+ \def\atfi at writefile#1{%
+ \begingroup
+ \EdefEscapeHex\atfi at temp{#1}%
+ \immediate\write\atfi at stream{%
+ \string\attachfile at file[%
+ \ltx at ifundefined{atfi at file@#1}{}{\@nameuse{atfi at file@#1}}%
+ ]{\atfi at temp}%
+ }%
+ \endgroup
+ }%
+\fi
+\atfi at DisableOption{nofiles}
+\def\atfi at attachfile#1#2{%
+ \ltx at IfUndefined{atfi at fileobj@#2}{%
+ \atfi at writefile{#2}%
+ }{%
+ % don't need duplicates
+ }%
+ \atfi at setup{#1}%
+ \atfi at embedfile{#2}%
+ \atfi at set@appearance at icon
+ \atfi at flags@to at int
+ \atfi at insert@file at annot{#2}%
+ \endgroup
+}
+\newlength{\atfi at appearancewidth}
+\newlength{\atfi at appearanceheight}
+\newlength{\atfi at appearancedepth}
+\newsavebox{\atfi at appearancebox}
+\def\atfi at set@appearance at icon{%
+ \ltx at IfUndefined{atfi at appobj@\atfi at icon@icon}{%
+ \savebox{\atfi at appearancebox}{%
+ \@nameuse{atfi at acro\atfi at icon@icon}%
+ }%
+ \expandafter
+ \xdef\csname atfi at appwidth@\atfi at icon@icon\endcsname{%
+ \the\wd\atfi at appearancebox
+ }%
+ \expandafter
+ \xdef\csname atfi at appheight@\atfi at icon@icon\endcsname{%
+ \the\ht\atfi at appearancebox
+ }%
+ \expandafter
+ \xdef\csname atfi at appdepth@\atfi at icon@icon\endcsname{%
+ \the\dp\atfi at appearancebox
+ }%
+ \atfi at xform@icon
+ \global\expandafter\let
+ \csname atfi at appobj@\atfi at icon@icon\endcsname
+ \atfi at appearanceobj
+ }{%
+ }%
+ % optimization: \setlength dropped
+ \atfi at appearancewidth=%
+ \@nameuse{atfi at appwidth@\atfi at icon@icon}\relax
+ \atfi at appearanceheight=%
+ \@nameuse{atfi at appheight@\atfi at icon@icon}\relax
+ \atfi at appearancedepth=%
+ \@nameuse{atfi at appdepth@\atfi at icon@icon}\relax
+ \expandafter\let\expandafter\atfi at appearanceobj
+ \csname atfi at appobj@\atfi at icon@icon\endcsname
+}
+\def\atfi at set@appearance#1{%
+ \savebox{\atfi at appearancebox}{#1}%
+ \atfi at appearancewidth=\wd\atfi at appearancebox
+ \atfi at appearanceheight=\ht\atfi at appearancebox
+ \atfi at appearancedepth=\dp\atfi at appearancebox
+ \atfi at xform
+}
+\newcounter{atfi at flags}
+\DeclareRobustCommand{\atfi at flags@to at int}{%
+ \setcounter{atfi at flags}{0}%
+ \ifatfi at print
+ \addtocounter{atfi at flags}{4}%
+ \fi%
+ \ifatfi at zoom
+ \else
+ \addtocounter{atfi at flags}{8}%
+ \fi%
+}
+\def\atfi at textattachfile#1#2{%
+ \endgroup
+ \atfi at textattachfile@i{#1}{#2}%
+}
+\def\atfi at textattachfile@i#1#2#3{%
+ \ltx at IfUndefined{atfi at fileobj@#2}{%
+ \atfi at writefile{#2}%
+ }{%
+ % don't need duplicates
+ }%
+ \atfi at setup{#1}%
+ \atfi at embedfile{#2}%
+ \atfi at set@appearance{%
+ \leavevmode
+ \begingroup
+ \HyColor at UseColor\atfi at color@tex
+ #3\strut
+ \endgroup
+ }%
+ \atfi at flags@to at int
+ \atfi at insert@file at annot{#2}%
+ \endgroup
+}
+\DeclareRobustCommand{\attachfile}[1][]{%
+ \begingroup
+ \let\do\@makeother
+ \dospecials
+ \catcode`\{=1\relax
+ \catcode`\}=2\relax
+ \atfi at attachfile{#1}%
+}
+\DeclareRobustCommand{\textattachfile}[1][]{%
+ \begingroup
+ \begingroup
+ \let\do\@makeother
+ \dospecials
+ \catcode`\{=1\relax
+ \catcode`\}=2\relax
+ \atfi at textattachfile{#1}%
+}
+\DeclareRobustCommand{\noattachfile}[1][]{%
+ \begingroup
+ \atfi at setup{#1}%
+ \atfi at set@appearance at icon
+ \ifatfi at print
+ \expandafter
+ \atfi at refxform\csname atfi at appobj@\atfi at icon@icon\endcsname
+ \else
+ \makebox[\atfi at appearancewidth]{}%
+ \fi
+ \endgroup
+}
+\endinput
+%%
+%% End of file `attachfile2.sty'.
More information about the latex3-commits
mailing list.