Asymptote 在 Sharelatex 上工作,但在我本地的 pdflatex 上却不行

Asymptote 在 Sharelatex 上工作,但在我本地的 pdflatex 上却不行

我有一个 document.tex 文件:

\documentclass{article}
\usepackage{asymptote}

\begin{document}

\begin{figure}
  \centering
  \asyinclude{test.asy}
  \caption{A test with \textsf{asymptote}}
\end{figure}

\end{document}

还有一个 test.asy 文件:

unitsize(1cm);
draw((0,0)--(5,5));

这是通过 Sharelatex 编译时的输出:

使用 sharelatex 编译

这是通过本地 pdflatex 编译时的输出:

使用 pdflatex 编译

(第二张截图的标题位于屏幕的正中央)

为什么它在本地不起作用?

答案1

感谢用户 OG,我找到了如何使其工作的方法。

latexmkrc只要在 document.tex 文件所在的文件夹中创建一个名为以下内​​容的文件即可:

sub compile_asy { return system("asy \"$_[0]\""); }
add_cus_dep("asy", "eps", 0, "compile_asy");
add_cus_dep("asy", "pdf", 0, "compile_asy");
add_cus_dep("asy", "tex", 0, "compile_asy");

一旦完成,只需发出:

$ latexmk -pdf document.tex

注意:如果您没有 latexmk,请安装它。如果您无法安装它,您将必须发出 3 个命令而不是 1 个:

$ pdflatex document.tex
$ asy *.asy
$ pdflatex document.tex

答案2

默认情况下,asymptote 生成 PostScript 输出。您必须通过设置一些变量来配置 pdflatex 包(摘自 asymptote 手册第 162 页)

outformat="pdf";

有关将其放置在何处的详细信息,请参阅 asymptote 文档(在 Linux 下,它将是文件 ~/.asy/config.asy )

相关内容