使用 \jobname 时,attachfile2 包不起作用

使用 \jobname 时,attachfile2 包不起作用

我在 Windows 7 Home Premium 64 位计算机上使用 MiKTeX 2.9。

我一直在尝试使用attachfile2创建指向嵌入式 LaTeX 文件的链接。当我编译以下名为 的文档时test.tex

\documentclass{article}
\usepackage{xcolor}
\definecolor{myred}{rgb}{0.9,0.2,0.2}
\usepackage{attachfile2}
\attachfilesetup{color = myred}
\begin{document}
\jobname.tex \textattachfile{test.tex}{view source code}
\end{document}

它按预期工作,生成文件的名称和链接:

在此处输入图片描述

但是当我在命令中test.tex替换时,出现以下错误(我使用的是 TeXstudio 2.6.2):\jobname.tex\textattachfile

在此处输入图片描述

即使将其放在\expandafter前面\textattachfile,据我所知应该可以确保\textattachfile永远不会看到命令\jobname,也无济于事。

这是怎么回事?


进一步观察(不确定是否相关):

  • 当我使用attachfile而不是 时attachfile2,它可以很好地与\jobname输入配合使用(当然,唯一的区别是我不能使用我的自定义颜色,这也是我attachfile2首先想要使用的原因)。

  • 正如我所提到的,我正在使用 TeXstudio。这个编辑器有一个方便的功能,它(至少尝试)检测任何包含的包所定义的命令,然后突出显示它无法识别的任何命令。当我使用该attachfile包时,命令\attachfilesetup\textattachfile会被识别;当我使用该attachfile2包时,它们不会被识别。也许我的attachfile2包副本不知何故坏了?MiKTeX 告诉我我已经oberdiek安装了包,显然它就在那里attachfile2

  • 我也尝试使用currfile提供宏的包。当我用\currfilename替换时,没有什么不同;在相同情况下,它可以工作,但不能工作。\jobname.tex\currfilename

答案1

在 2011/03/27 v1.5b 版本之前,软件包已使用逐字 catcodeattachfile读取了参数中的反斜杠。软件包是在那个时候编写的,并在此基础上进行了改进。\textattachfileattachfile2attachfile

现在(2011/03/27 v1.5b)包使用attachfile通常的 catcode 读取反斜杠来\textattachfile支持\jobname(和其他宏)。

我已attachfile2相应更新:2013/07/29 v2.10。该软件包可用这里直到我稍后(希望是今年)将更新的软件包发布到 CTAN。源文件attachfile2.dtx作为文件附件嵌入。attachfile2.sty通过在 上运行纯 TeX(或 iniTeX)可以解压包含驱动程序文件的软件包文件attachfile2.dtx

相关内容