这attachfile
包允许将文件嵌入 pdfLaTeX 文档的输出 PDF 中,并且 attachmentfile2dvips
也扩展了此功能以供使用。
在一篇文章的作者dvipdfmx
给出了使用该驱动程序执行相同操作的方法:
\begin{filecontents*}{example.txt}
this is a text file to be embedded
\end{filecontents*}
\documentclass{article}
\begin{document}
test
\special{pdf:fstream @myfile (example.txt)}%
\special{pdf:ann bbox 0 0 10 10 <<
/Subtype /FileAttachment /FS <<
/Type /Filespec /F (example.txt)
/EF << /F @myfile >> >>
/Name /PushPin >>}
\end{document}
但是,当我使用latex
+编译它时dvipdfmx
,出现以下警告:
** 警告 ** 无法打开文件:example.txt ** 警告 ** 解释特殊命令 fstream (pdf:) 失败。 ** 警告 ** >> 位于页面“1”位置“(168.14, 707.125)”(PDF 格式) ** 警告 ** >> xxx "pdf:fstream @myfile (example.txt)" ] ** 警告 ** 对象 @myfile 已使用,但未定义。替换为 null。
有人知道我错在哪里吗?(TeX Live 2010,Mac OS X。)如果能够使用此方法嵌入文件就太好了,因为这将方便 XeTeX 与软件包一起使用attachfile
。
更新:在 TeX Live 2009 中一切似乎都运行良好。我认为这是 dvipdfmx 最新版本的一个错误。有没有人对此进行确认?
答案1
谢谢角斗明在 TeX Live 邮件列表中查找答案。出于安全原因,不再搜索当前目录,因此文件名中必须包含相对路径:
\special{pdf:fstream @myfile (./example.txt)}%
\special{pdf:ann bbox 0 0 10 10 <<
/Subtype /FileAttachment /FS <<
/Type /Filespec /F (./example.txt)
/EF << /F @myfile >> >>
/Name /PushPin >>}