是否可以编译 asymptote(.asy) 文件而不显示图形

是否可以编译 asymptote(.asy) 文件而不显示图形

今天我想画几个 3D 示意图,可以插入到我的 LaTeX 文件中。我选择 Asymptote 是因为它的 3D 渲染优势众所周知,优于其他工具。

我在自己喜欢的 Emacs 中配置了“asy-mode”来编写我的第一个脚本。但是,当我按 Cc Cc 进行编译时,编译过程将打开输出文件(.eps 或 .pdf),直到我关闭该文件。

每次都要关闭预览,真是麻烦。我编译tex文件的时候,编译器只会解析处理,不会打开dvi文件等我预览。而yap在编译完成后,可以检测到变化,自动重新加载。很多pdf阅读器也有自动重新加载的功能。当我用双屏电脑的时候,这个功能特别方便。

但现在每次“asy”都会打开预览文件,我必须关闭它才能继续。我注意到编译的命令是

asy -V -wait file.asy

我尝试了很多方法,但都无法阻止“asy”打开输出文件。我编辑了 asy-mode.el 以删除 -wait 参数;我在 Emacs 之外手动编译它,尝试了所有可能的参数,例如

asy -silent file.asy

命令执行成功后,窗口一直跳出。

这真是令人沮丧。你们有什么解决方案或解决方法吗?我在 Windows 7 上使用 Emacs 23.4,渐近线版本是 2.24。

提前致谢。

答案1

来自Asymptote 常见问题解答

问题 9.1. 如何在 asy 文件处理完成后禁用 PS 查看器的自动调用?

实际上,默认情况下它不是启用的,除非您恰好使用的是 Microsoft Windows(因为大多数 Microsoft Windows 用户都希望如此)。Microsoft Windows 用户可以使用命令行选项 -noV 或输入以下命令关闭此功能

import settings;
interactiveView=false;
batchView=false;

在其 config.asy 文件中。请参阅http://asymptote.sourceforge.net/doc/Options.html

其他可行的选择:

  • 除了使用config.asy文件之外,您还可以将以下行放入

    settings.interactiveView=false;
    settings.batchView=false;
    直接在您的.asy文件中(在开头)。我不知道这是否会在使用 emacs 后禁用预览。

  • 您可以将这一行放在文件
    shipout(view=false);
    末尾.asy,这样即使在 emacs 中运行时也可以禁用预览。该shipout()函数告诉 Asymptote 实际生成一个文件;它会在文件结束后自动调用如果您没有亲自调用它(您在这里调用了它)。该view选项似乎或多或少地按照您的想法执行;默认值是true,因此我不确定它与视图设置究竟如何交互。

相关内容