diff options
author | Karl Berry <karl@freefriends.org> | 2006-08-27 22:38:54 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-08-27 22:38:54 +0000 |
commit | 2607d53137ede06e9780342b225218743e100bb4 (patch) | |
tree | c6c88c805dd21a5bbb6ad6f26d3d53c517f4b866 /Master/texmf-dist/tex/latex/oberdiek/attachfile2.sty | |
parent | fb0d58de45c0fc32bab09a839c186de46f75628e (diff) |
oberdiek update from tds zip (28aug06)
git-svn-id: svn://tug.org/texlive/trunk@2054 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/oberdiek/attachfile2.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/oberdiek/attachfile2.sty | 738 |
1 files changed, 738 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/oberdiek/attachfile2.sty b/Master/texmf-dist/tex/latex/oberdiek/attachfile2.sty new file mode 100644 index 00000000000..b70634e2ab3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/oberdiek/attachfile2.sty @@ -0,0 +1,738 @@ +%% +%% 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. +%% +%% Copyright (C) 2005, 2006 by Heiko Oberdiek <oberdiek@uni-freiburg.de> +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. 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. +%% +%% This work consists of the main source file attachfile2.dtx +%% and the derived files +%% attachfile2.sty, attachfile2.pdf, attachfile2.ins, attachfile2.drv, +%% atfidvips.def, atfipdftex.def, pdfatfi.pl. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{attachfile2}% + [2006/08/16 v2.2 attach files into PDF (HO)] +\RequirePackage{ifpdf} +\RequirePackage{keyval} +\RequirePackage{color} +\RequirePackage{kvoptions}[2006/08/17] + + +\RequirePackage{hyperref} + +\def\atfi@pdfstringdef#1#2{% + \pdfstringdef\atfi@temp@string{#2}% + \edef#1{\atfi@temp@string}% +} + + +\def\atfi@hexdigit#1{% + \ifcase#1% + 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or 9\or + a\or b\or c\or d\or e\or f% + \fi +} +\def\atfi@hexchar#1{% + \atfi@hexdigit{\numexpr\dimexpr.0625\dimexpr`#1sp\relax\relax\relax}% + \atfi@hexdigit{% + \numexpr`#1-16*\dimexpr.0625\dimexpr`#1sp\relax\relax\relax + }% +} +\def\atfi@tohex#1{% + \ifx\relax#1% + \else + \atfi@hexchar{#1}% + \expandafter\atfi@tohex + \fi +} + + +\def\atfi@converttoname#1#2{% + \edef#1{#2}% + \@onelevel@sanitize#1% + \edef#1{\expandafter\atfi@spacetoother#1 \relax}% + \edef#1{\expandafter\atfi@converttokens#1\relax}% +} + +\edef\atfi@hash{\string#}% +\catcode`\ =12\relax% +\def\atfi@space{ }% +\catcode`\ =10\relax% + +\def\atfi@spacetoother#1 #2\relax{% + #1% + \ifx\\#2\\% + \else + \atfi@space + \@ReturnAfterFi{% + \atfi@spacetoother #2\relax + }% + \fi +} +\long\def\@ReturnAfterFi#1\fi{\fi#1} + +\def\atfi@converttokens#1{% + \ifx\relax#1% + \else + \ifnum`#1<33 % + \ifcase`#1% + % drop illegal zero + \else + \atfi@hash\atfi@hexchar#1% + \fi + \else + \ifnum`#1>126 % + \atfi@hash\atfi@hexchar#1% + \else + \ifnum`#1=40 % ( + \atfi@hash 28% + \else\ifnum`#1=41 % ) + \atfi@hash 29% + \else\ifnum`#1=60 % < + \atfi@hash 3c% + \else\ifnum`#1=62 % > + \atfi@hash 3e% + \else\ifnum`#1=91 % [ + \atfi@hash 5b% + \else\ifnum`#1=93 % ] + \atfi@hash 5d% + \else\ifnum`#1=123 % { + \atfi@hash 7b% + \else\ifnum`#1=125 % } + \atfi@hash 7d% + \else\ifnum`#1=47 % / + \atfi@hash 2f% + \else\ifnum`#1=37 % % + \atfi@hash 25% + \else + #1% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \fi + \fi + \expandafter\atfi@converttokens + \fi +} + + +\newif\ifatfi@draft +\let\atfi@finaltrue\atfi@draftfalse +\let\atfi@finalfalse\atfi@drafttrue +\define@key{AtFi}{final}[true]{% + \csname atfi@final#1\endcsname +} +\define@key{AtFi}{draft}[true]{% + \csname atfi@draft#1\endcsname +} + +\def\atfi@mimetype{} +\define@key{AtFi}{mimetype}{% + \atfi@converttoname\atfi@mimetype{#1}% + \edef\atfi@mimetype{/Subtype/\atfi@mimetype}% +} + +\define@key{AtFi}{icon}{% + \def\atfi@icon{/Name/#1}% + \def\atfi@icon@icon{#1}% +} +\setkeys{AtFi}{icon=PushPin} + +\define@key{AtFi}{color}{% + \def\atfi@color{/C[#1]}% + \def\atfi@color@rgb{#1}% +} +\setkeys{AtFi}{color=1 0.9255 0.7765} + +\def\atfi@pad@ii#1{% + \ifnum#1>9 + \number#1% + \else + 0\number#1% + \fi% +} +\let\atfi@timezone\@empty +\define@key{AtFi}{timezone}{\def\atfi@timezone{#1}} +\edef\atfi@time{\the\time} +\def\atfi@hours{% + \numexpr\dimexpr0.01667\dimexpr\atfi@time sp\relax\relax\relax +} +\def\atfi@minutes{% + \numexpr\atfi@time-60*\atfi@hours\relax +} +\def\atfi@seconds{0} +\def\atfi@date{% + /M(D:\the\year + \atfi@pad@ii\month + \atfi@pad@ii\day + \atfi@pad@ii\atfi@hours + \atfi@pad@ii\atfi@minutes + \atfi@pad@ii\atfi@seconds + \atfi@timezone)% +} +\define@key{AtFi}{date}{% + \atfi@pdfstringdef\atfi@date{#1}% + \edef\atfi@date{/M(\atfi@date)}% +} + +\let\atfi@annotname\@empty +\define@key{AtFi}{annotname}{% + \atfi@pdfstringdef\atfi@annotname{#1}% + \edef\atfi@annotname{/NM(\atfi@annotname)}% +} + +\DeclareRobustCommand{\atfi@pdfstringdef}[2]{% + \pdfstringdef\atfi@temp@string{#2}% + \edef#1{\atfi@temp@string}% +} + +\def\atfi@author{} +\define@key{AtFi}{author}{% + \atfi@pdfstringdef\atfi@author{#1}% + \edef\atfi@author{/T(\atfi@author)}% +} + +\def\atfi@description{} +\define@key{AtFi}{description}{% + \atfi@pdfstringdef\atfi@description{#1}% + \edef\atfi@description{/Contents(\atfi@description)}% +} + +\def\atfi@subject{} +\define@key{AtFi}{subject}{% + \atfi@pdfstringdef\atfi@subject{#1}% + \edef\atfi@subject{/Subj(\atfi@subject)}% +} + +\newif\ifatfi@print +\atfi@printtrue +\define@key{AtFi}{print}[true]{\csname atfi@print#1\endcsname} + +\newif\ifatfi@zoom +\atfi@zoomtrue +\define@key{AtFi}{zoom}[true]{\csname atfi@zoom#1\endcsname} + +\newif\ifatfi@appearance +\atfi@appearancetrue +\define@key{AtFi}{appearance}[true]{% + \csname atfi@appearance#1\endcsname +} + +\def\atfi@scale{1} +\define@key{AtFi}{scale}[1]{% + \def\atfi@scale{#1}% +} + +\newif\ifatfi@nofiles +\atfi@nofilesfalse +\define@key{AtFi}{nofiles}[true]{% + \csname atfi@nofiles#1\endcsname +} + +\let\atfi@driver\@empty +\def\atfi@driver@pdftex{pdftex} +\def\atfi@driver@dvips{dvips} + +\define@key{AtFi}{pdftex}[true]{% + \let\atfi@driver\atfi@driver@pdftex +} +\define@key{AtFi}{dvips}[true]{% + \let\atfi@driver\atfi@driver@dvips +} + +\DeclareRobustCommand{\attachfilesetup}[1]{\setkeys{AtFi}{#1}} + +\InputIfFileExists{attachfile.cfg}{}{} + +\ProcessKeyvalOptions{AtFi} + + +\ifpdf + % ignoring other driver options + \let\atfi@driver\atfi@driver@pdftex +\else + \ifx\atfi@driver\@empty + \PackageWarningNoLine{attachfile2}{% + Driver is not specified,\MessageBreak + enforce draft settings% + }% + \atfi@drafttrue + \fi +\fi + + +\DeclareRobustCommand{\notextattachfile}[2][]{% + \begingroup + \setkeys{AtFi}{#1}% + \ifatfi@print + \def\atfi@textcolor(##1 ##2 ##3)##4{% + \textcolor[rgb]{##1,##2,##3}{##4}}% + \expandafter\atfi@textcolor\expandafter + (\atfi@color@rgb){#2\strut}% + \else + \setbox0=\hbox{#2\strut}% + \makebox[\wd0]{}% + \fi + \endgroup +} + +\ifatfi@draft + \def\atfi@dummy@pushpin{% + \raisebox{-1.25bp}{\parbox[b][14bp]{24bp}{}}% + } + \DeclareRobustCommand{\textattachfile}[3][]{% + \notextattachfile[#1]{#3}% + } + \DeclareRobustCommand{\noattachfile}[1][]{% + \notextattachfile[#1]{\atfi@dummy@pushpin}% + } + \DeclareRobustCommand{\attachfile}[2][]{% + \noattachfile[#1]% + } + \expandafter\endinput +\fi + + +\input{atfi\atfi@driver.def} + + +\def\atfi@acroGraph@data{% + \atfi@GSAVE + 0.5 \atfi@SETGRAYFILL + 1.1133 0 20.7202 18.2754 \atfi@RECTFILL + 0 \atfi@SETFLAT + 0.5 \atfi@SETLINEWIDTH + 4 \atfi@SETMITERLIMIT + \atfi@RECTSTROKEFILL{% + 1 \atfi@SETGRAYFILL + }{% + 0 \atfi@SETGRAYSTROKE + }{% + 0.25 1.6453 20.145 17.7715 % + }% + 0 \atfi@SETGRAYFILL + 2.7319 4.1367 3.9571 13.8867 \atfi@RECTFILL + 8.7031 4.1367 3.9571 9.8867 \atfi@RECTFILL + 14.7471 4.1367 3.9571 11.8867 \atfi@RECTFILL + \atfi@color@rgb\space \atfi@SETRGBCOLORFILL + 1.689 3.0938 3.9571 13.8867 \atfi@RECTFILL + 7.6602 3.0938 3.9571 9.8867 \atfi@RECTFILL + 13.7041 3.0938 3.9571 11.8867 \atfi@RECTFILL + \atfi@GRESTORE +} +\def\atfi@acroGraph{% + \raisebox{-1.5bp}{\parbox[b][20bp]{22bp}{% + \rule{0pt}{0pt}\atfi@literal{\atfi@acroGraph@data}}% + }% +} +\newcommand{\atfi@acroPaperclip@data}{% + \atfi@GSAVE + 0.75 \atfi@SETGRAYSTROKE + 0 \atfi@SETFLAT + 2.5 \atfi@SETLINEWIDTH + 1 \atfi@SETLINECAP + 4 \atfi@SETMITERLIMIT + 1.9619 11.7559 \atfi@MOVETO + 1.9619 3.3037 1.9619 2.5059 \atfi@CURVETOV + 1.9619 1.707 4.0947 1.25 \atfi@CURVETOY + 7.4141 1.25 \atfi@LINETO + 9.4292 1.8223 9.4292 3.3066 \atfi@CURVETOV + 9.4292 4.79 9.4292 16.8945 \atfi@CURVETOY + 9.7852 18.1514 8.481 18.1514 \atfi@CURVETOV + 7.1768 18.1514 5.1616 18.1514 \atfi@CURVETOY + 3.8574 17.9209 3.8574 16.8945 \atfi@CURVETOV + 3.8574 15.8652 3.8574 6.6172 \atfi@CURVETOY + 4.3325 5.418 5.1025 5.418 \atfi@CURVETOV + 5.8726 5.418 6.5845 5.418 \atfi@CURVETOY + 7.6812 5.6455 7.6812 6.4736 \atfi@CURVETOV + 7.6812 7.3027 7.6812 11.5264 \atfi@CURVETOY + \atfi@STROKE + 0 \atfi@SETGRAYSTROKE + 1.2495 12.4404 \atfi@MOVETO + 1.2495 3.9883 1.2495 3.1895 \atfi@CURVETOV + 1.2495 2.3906 3.3833 1.9326 \atfi@CURVETOY + 6.7026 1.9326 \atfi@LINETO + 8.7178 2.5068 8.7178 3.9902 \atfi@CURVETOV + 8.7178 5.4736 8.7178 17.5781 \atfi@CURVETOY + 9.0732 18.834 7.769 18.834 \atfi@CURVETOV + 6.4653 18.834 4.4497 18.834 \atfi@CURVETOY + 3.146 18.6055 3.146 17.5781 \atfi@CURVETOV + 3.146 16.5498 3.146 7.3018 \atfi@CURVETOY + 3.6201 6.1016 4.3911 6.1016 \atfi@CURVETOV + 5.1611 6.1016 5.873 6.1016 \atfi@CURVETOY + 6.9692 6.3301 6.9692 7.1572 \atfi@CURVETOV + 6.9692 7.9863 6.9692 12.21 \atfi@CURVETOY + \atfi@STROKE + \atfi@color@rgb\space \atfi@SETRGBCOLORSTROKE + 1 \atfi@SETLINEWIDTH + 1.2495 12.4404 \atfi@MOVETO + 1.2495 3.9883 1.2495 3.1895 \atfi@CURVETOV + 1.2495 2.3906 3.3833 1.9326 \atfi@CURVETOY + 6.7026 1.9326 \atfi@LINETO + 8.7178 2.5068 8.7178 3.9902 \atfi@CURVETOV + 8.7178 5.4736 8.7178 17.5781 \atfi@CURVETOY + 9.0732 18.834 7.769 18.834 \atfi@CURVETOV + 6.4653 18.834 4.4497 18.834 \atfi@CURVETOY + 3.146 18.6055 3.146 17.5781 \atfi@CURVETOV + 3.146 16.5498 3.146 7.3018 \atfi@CURVETOY + 3.6201 6.1016 4.3911 6.1016 \atfi@CURVETOV + 5.1611 6.1016 5.873 6.1016 \atfi@CURVETOY + 6.9692 6.3301 6.9692 7.1572 \atfi@CURVETOV + 6.9692 7.9863 6.9692 12.21 \atfi@CURVETOY + \atfi@STROKE + \atfi@GRESTORE +} +\def\atfi@acroPaperclip{% + \raisebox{-1.25bp}{\parbox[b][21bp]{12bp}{% + \rule{0pt}{0pt}\atfi@literal{\atfi@acroPaperclip@data}}% + }% +} +\def\atfi@acroPushPin@data{% + \atfi@GSAVE + 1 \atfi@SETLINEWIDTH + 1 6 \atfi@MOVETO + 11 6 \atfi@LINETO + 11 13 \atfi@LINETO + 12 13 \atfi@LINETO + 14 11 \atfi@LINETO + 21 11 \atfi@LINETO + 22 12 \atfi@LINETO + 23 12 \atfi@LINETO + 23 2 \atfi@LINETO + 22 2 \atfi@LINETO + 21 3 \atfi@LINETO + 14 3 \atfi@LINETO + 12 1 \atfi@LINETO + 11 1 \atfi@LINETO + 11 6 \atfi@LINETO + \atfi@FILLSTROKE{% + \atfi@color@rgb\space\atfi@SETRGBCOLORFILL + }{% + 0 \atfi@SETGRAYSTROKE + }% + 0.5 \atfi@SETGRAYSTROKE + 0 7 \atfi@MOVETO + 10 7 \atfi@LINETO + 10 8 \atfi@LINETO + 1 8 \atfi@LINETO + \atfi@STROKE + 1 \atfi@SETGRAYSTROKE + 12 12 \atfi@MOVETO + 14 10 \atfi@LINETO + 22 10 \atfi@LINETO + 22 11 \atfi@LINETO + \atfi@STROKE + \atfi@GRESTORE +} +\def\atfi@acroPushPin{% + \raisebox{-1.25bp}{\parbox[b][14bp]{24bp}{% + \rule{0pt}{0pt}\atfi@literal{\atfi@acroPushPin@data}}% + }% +} +\def\atfi@acroTag@data{% + \atfi@GSAVE + 0.5 \atfi@SETGRAYFILL + 10.0542 14.9873 \atfi@MOVETO + 24.27 14.9873 \atfi@LINETO + 25.252 14.0059 \atfi@LINETO + 25.252 1.1455 \atfi@LINETO + 24.1064 0 \atfi@LINETO + 9.9609 0 \atfi@LINETO + 6.0327 6.0088 \atfi@LINETO + 6.0327 9.002 \atfi@LINETO + 10.0542 14.9873 \atfi@LINETO + 9.3994 9.376 \atfi@MOVETO + 8.5215 9.376 7.8096 8.5596 7.8096 7.5527 \atfi@CURVETO + 7.8096 6.5449 8.5215 5.7285 9.3994 5.7285 \atfi@CURVETO + 10.2778 5.7285 10.9897 6.5449 10.9897 7.5527 \atfi@CURVETO + 10.9897 8.5596 10.2778 9.376 9.3994 9.376 \atfi@CURVETO + \atfi@CLOSEPATH + \atfi@FILL + 0 \atfi@SETFLAT + 0.5 \atfi@SETLINEWIDTH + 4 \atfi@SETMITERLIMIT + 1 \atfi@SETLINEJOIN + 8.5107 16.5313 \atfi@MOVETO + 22.7266 16.5313 \atfi@LINETO + 23.7085 15.5488 \atfi@LINETO + 23.7085 2.6895 \atfi@LINETO + 22.563 1.543 \atfi@LINETO + 8.4175 1.543 \atfi@LINETO + 4.4893 7.5527 \atfi@LINETO + 4.4893 10.5449 \atfi@LINETO + 8.5107 16.5313 \atfi@LINETO + 7.856 10.9199 \atfi@MOVETO + 6.978 10.9199 6.2661 10.1035 6.2661 9.0957 \atfi@CURVETO + 6.2661 8.0879 6.978 7.2715 7.856 7.2715 \atfi@CURVETO + 8.7344 7.2715 9.4463 8.0879 9.4463 9.0957 \atfi@CURVETO + 9.4463 10.1035 8.7344 10.9199 7.856 10.9199 \atfi@CURVETO + \atfi@CLOSEPATH + \atfi@FILLSTROKE{% + \atfi@color@rgb\space\atfi@SETRGBCOLORFILL + }{% + 0 \atfi@SETGRAYSTROKE + }% + 1 \atfi@SETLINEWIDTH + 12.3291 12.2656 \atfi@MOVETO + 21.1206 12.2656 \atfi@LINETO + \atfi@STROKE + 12.3291 9.1797 \atfi@MOVETO + 21.1206 9.1797 \atfi@LINETO + \atfi@STROKE + 12.3291 6.1875 \atfi@MOVETO + 21.1206 6.1875 \atfi@LINETO + \atfi@STROKE + % 0 \atfi@SETGRAYSTROKE % redundant? + 0.5 \atfi@SETLINEWIDTH + 0 9.0488 \atfi@MOVETO + 6.2661 9.0957 \atfi@LINETO + \atfi@STROKE + 1.4028 5.2148 \atfi@MOVETO + 1.4028 9.6094 \atfi@LINETO + 1.6831 10.6387 2.4316 10.6387 \atfi@CURVETOV + 3.6475 10.6387 3.5542 9.0488 \atfi@CURVETOY + \atfi@STROKE + \atfi@GRESTORE +} +\DeclareRobustCommand{\atfi@acroTag}{% + \raisebox{-1.6bp}{\parbox[b][17bp]{25bp}{% + \rule{0pt}{0pt}\atfi@literal{\atfi@acroTag@data}}% + }% +} + + +\def\attachfile@timezone#1{% + \ifx\\#1\\% + % no timezone information given + \else + \def\atfi@timezone{#1}% + \fi +} +\newcommand*{\attachfile@file}[2][]{% + \ifx\\#2\\% + \PackageError{attachfile2}{Empty file name}\@ehc + \else + \edef\atfi@restore{\uccode0=\the\uccode0 \relax}% + \let\atfi@filename\@empty + \atfi@getfilename#2\relax\relax + \atfi@restore + \@namedef{atfi@file@\atfi@filename}{#1}% + \fi +} +\begingroup + \catcode0=12 % + \gdef\atfi@getfilename#1#2{% + \ifx\relax#1% + \else + \uccode0=\numexpr 16*\atfi@hexnum{#1} + \atfi@hexnum{#2}\relax + \uppercase{% + \edef\atfi@filename{% + \atfi@filename^^@% + }% + }% + \expandafter\atfi@getfilename + \fi + }% +\endgroup +\def\atfi@hexnum#1{% + \ifnum`#1<58 % + \numexpr `#1-48\relax + \else + \numexpr `#1-87\relax + \fi +} + +\InputIfFileExists{\jobname.atfi}{}{}% + +\newif\ifatfi@checksum +\define@key{AtFi@file}{CheckSum}{% + \atfi@checksumtrue + \edef\atfi@params{\atfi@params/CheckSum<#1>}% +} +\newif\ifatfi@creationdate +\define@key{AtFi@file}{CreationDate}{% + \atfi@creationdatetrue + \edef\atfi@params{\atfi@params/CreationDate(D:#1\atfi@timezone)}% +} +\newif\ifatfi@moddate +\define@key{AtFi@file}{ModDate}{% + \atfi@moddatetrue + \edef\atfi@params{\atfi@params/ModDate(D:#1\atfi@timezone)}% +} + + +\if@filesw +\else + \atfi@nofilestrue +\fi +\ifatfi@nofiles + \PackageInfo{attachfile2}{% + File `\jobname.atfi' will not be written because of\MessageBreak + \string\nofiles\space or option `nofiles'% + }% + \let\atfi@writefile\@gobble +\else + \newwrite\atfi@stream + \immediate\openout\atfi@stream=\jobname.atfi + \immediate\write\atfi@stream{% + \string\attachfile@timezone{\atfi@timezone}% + }% + \def\atfi@writefile#1{% + \begingroup + \def\file{#1}% + \@onelevel@sanitize\file + \edef\file{\@firstofone{\expandafter\atfi@replace\file} \@nil}% + \edef\file{\expandafter\atfi@tohex\file\relax}% + \immediate\write\atfi@stream{% + \string\attachfile@file[% + \@ifundefined{atfi@file@#1}{}{\@nameuse{atfi@file@#1}}% + ]{\file}% + }% + \endgroup + }% +\fi + +\def\atfi@attachfile#1#2{% + \@ifundefined{atfi@fileobj@#2}{% + \atfi@writefile{#2}% + }{% + % don't need duplicates + }% + \setkeys{AtFi}{#1}% + \atfi@embedfile{#2}% + \atfi@set@appearance@icon + \atfi@flags@to@int + \atfi@insert@file@annot{#2}% + \endgroup +} + + +\def\atfi@replace#1 #2\@nil{% + #1% + \ifx\\#2\\% + \else + \atfi@space + \@ReturnAfterFi{% + \atfi@replace#2\@nil + }% + \fi +}% + +\long\def\@ReturnAfterFi#1\fi{\fi#1} + + +\newlength{\atfi@appearancewidth} +\newlength{\atfi@appearanceheight} +\newlength{\atfi@appearancedepth} +\newsavebox{\atfi@appearancebox} + +\def\atfi@set@appearance@icon{% + \@ifundefined{atfi@appobj@\atfi@icon@icon}{% + \savebox{\atfi@appearancebox}{\@nameuse{atfi@acro\atfi@icon@icon}}% + \expandafter\xdef\csname atfi@appwidth@\atfi@icon@icon\endcsname{% + \the\wd\atfi@appearancebox + }% + \expandafter\xdef\csname atfi@appheight@\atfi@icon@icon\endcsname{% + \the\ht\atfi@appearancebox + }% + \expandafter\xdef\csname atfi@appdepth@\atfi@icon@icon\endcsname{% + \the\dp\atfi@appearancebox + }% + \atfi@xform@icon + \global\expandafter\let\csname atfi@appobj@\atfi@icon@icon\endcsname + \atfi@appearanceobj + }{% + }% + % optimization: \setlength dropped + \atfi@appearancewidth=\@nameuse{atfi@appwidth@\atfi@icon@icon}\relax + \atfi@appearanceheight=\@nameuse{atfi@appheight@\atfi@icon@icon}\relax + \atfi@appearancedepth=\@nameuse{atfi@appdepth@\atfi@icon@icon}\relax + \expandafter\let\expandafter\atfi@appearanceobj + \csname atfi@appobj@\atfi@icon@icon\endcsname +} + +\def\atfi@set@appearance#1{% + \savebox{\atfi@appearancebox}{#1}% + \atfi@appearancewidth=\wd\atfi@appearancebox + \atfi@appearanceheight=\ht\atfi@appearancebox + \atfi@appearancedepth=\dp\atfi@appearancebox + \atfi@xform +} + +\newcounter{atfi@flags} +\DeclareRobustCommand{\atfi@flags@to@int}{% + \setcounter{atfi@flags}{0}% + \ifatfi@print + \addtocounter{atfi@flags}{4}% + \fi% + \ifatfi@zoom + \else + \addtocounter{atfi@flags}{8}% + \fi% +} + +\def\atfi@textattachfile#1#2{% + \endgroup + \atfi@textattachfile@i{#1}{#2}% +} +\def\atfi@textattachfile@i#1#2#3{% + \setkeys{AtFi}{#1}% + \atfi@embedfile{#2}% + \def\atfi@textcolor(##1 ##2 ##3)##4{% + \textcolor[rgb]{##1,##2,##3}{##4}}% + \atfi@set@appearance{% + \expandafter\atfi@textcolor\expandafter + (\atfi@color@rgb){#3\strut}}% + \atfi@flags@to@int + \atfi@insert@file@annot{#2}% + \endgroup +} + +\DeclareRobustCommand{\attachfile}[1][]{% + \begingroup + \let\do\@makeother + \dospecials + \catcode`\{=1\relax + \catcode`\}=2\relax + \atfi@attachfile{#1}% +} +\DeclareRobustCommand{\textattachfile}[1][]{% + \begingroup + \begingroup + \let\do\@makeother + \dospecials + \catcode`\{=1\relax + \catcode`\}=2\relax + \atfi@textattachfile{#1}% +} +\DeclareRobustCommand{\noattachfile}[1][]{% + \begingroup + \setkeys{AtFi}{#1}% + \atfi@set@appearance@icon + \ifatfi@print + \expandafter\atfi@refxform\csname atfi@appobj@\atfi@icon@icon\endcsname + \else + \makebox[\atfi@appearancewidth]{}% + \fi + \endgroup +} + +\endinput +%% +%% End of file `attachfile2.sty'. |