这个问题是裁剪所有使用 asymptote 创建的 pdf 文件图片(标题已被重新编辑)以及 AlexG 的建议使用pdfcrop
。
由于我的 asy 文件是用 emacs 编辑和编译的,为了避免在 emacs 和 shell 终端之间来回切换,我尝试pdfcrop
使用 asymptote 函数直接从 asy 输入文件中调用system("pdfcrop example.pdf example.pdf")
// asymptote file test.asy
unitsize(cm);
path p1=unitsquare;
path p2=circle((-5,0),1);
draw(scale(1,5)*p1);
newpage();
draw(p2);
shipout();
system("pdfcrop test.pdf test.pdf");
// end of test.asy
尽管输出文件位于编译结束时的目录中,但我收到错误:
PDFCROP 1.40, 2020/06/06 - Copyright (c) 2002-2020 by Heiko Oberdiek, Oberdiek Package Support Group.
!!! Error: Input file `test.pdf' not found!
是否只有在调用 asy 输入文件中的所有命令后才会创建输出文件“test.pdf”(尽管该shipout
命令位于该命令之前),所以在调用system
时尚未创建“test.pdf”文件?pdfcrop
我们怎样才能强制system
在创建输出文件后执行该命令?