防止 Asymptote Asy 因插入 Asy 环境而重新编译

防止 Asymptote Asy 因插入 Asy 环境而重新编译

这篇文章是万福玛利亚通过。我从 Asymptote 论坛收到的回复表明没有简单的答案。我想知道pdflatex/asymptote用户如何处理这个问题。

myfile.tex有 55 个内联asy环境。 pdflatex因此创建了

myfile-1.asy, ..., myfile-55.asy.

在我执行asy命令时,现在

myfile-1.pdf, ..., myfile-55.pdf.

问题是如果我现在在和asy之间插入一个新的内联环境,那么将为新插入的 asy 环境分配名称。myfile-42.asymyfile.43.asypdflatexmyfile-43.asy

pdflatex然后将为后面的 asy 环境分配名称

myfile-44.asy, ..., myfile-56.asy.

这意味着后面的 asy 环境将与现有的不同步

myfile-43.pdf, ..., myfile-55.pdf.

因此,asy必须对每个myfile-44.asymyfile-56.asy此外,每次在 中间插入新的 asy 环境时,都必须执行此操作myfile.tex

我想避免必须asy*.asy插入的asy

这篇文章的其余部分讨论了我对这一难题的研究/实验。


我拒绝了这种\asyinclude[<options>]{<filename.asy>}方法,因为我只想维护一个源文件。专门命名和维护每个*.asy文件实在是太麻烦了。


我的第一个想法是寻找一个渐近线基名配置变量,我可以myfile.tex通过在不同的地方进行修改renewcommand。我的想法是,pdflatex 会生成

newname-1.asy, ..., newname-13.asy

然后我可以申请asy 一度针对这些文件,创建

newname-1.pdf, ..., newname-13.pdf

显然,Asymptote 并没有提供基名配置变量。


myfile.tex,我已经序言 \renewcommand\asydir{asytmp}%,效果很好。一个想法是创建附加子目录asytmpX,并将其插入\renewcommand\asydir{asytmpX}%到 中的适当位置myfile.tex。经过试验,这种方法存在问题,因为在asytmpX子目录中,pdflatex然后创建

myfile-43.asy, myfile-44.asy, ..., myfile-55.asy,

代替

myfile-1.asy, myfile-2.asy, ..., myfile-13.asy.

显然,Asymptote 的内部asy环境计数器是tex 文件名特定, 而不是子目录特定。因此,这种方法要求(为了避免重复申请asy)我必须改名

myfile-43.pdf, ..., myfile-55.pdf

进入

myfile-44.pdf,..., myfile-56.pdf.

然后我谷歌了一下:“pdflatex 合并 tex 文件”。这个想法是为每个章节创建一个单独的 tex 文件(或者至少为我的附录创建一个单独的文件)myfile.tex),并将难度从渐近线挑战变成pdflatex 挑战

探索,我拒绝了pdfpages,因为我希望整体目录和页码能够无缝衔接。

我开始探索诸如docmute包装之类的想法,然后停了下来,因为我意识到我在黑暗中摸索。例如,使用docmute will 的使用显然涉及全球应用pdflatex 与合并的 tex 文件进行比较。

因此,我不明白这种方法如何能避免我的困难。

我不是第一个遇到这个问题的 pdflatex/Asymptote 用户。对我来说,尝试这样做可能不是一个好主意重新发明轮子。我想知道其他 pdflatex/Asymptote 用户如何处理这个问题。

或者,也许有深入的 pdflatex 知识的人可以在这里发表意见。

相关内容