从 asy 输入文件中调用 pdfcrop 时出错

从 asy 输入文件中调用 pdfcrop 时出错

这个问题是裁剪所有使用 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在创建输出文件后执行该命令?

相关内容