Asymptote 输出不会创建新的 pdf 文件

Asymptote 输出不会创建新的 pdf 文件

我已经设置好一切,以便可以在 LaTeX(特别是 pdfTeX)中使用 Asymptote,但由于某种原因,我的代码没有输出。

整个 LaTeX 文件会像往常一样创建一个 pdf,但是,Asymptote 应该为每个绘图输出一个 pdf,但却没有创建所需的 pdf。输出的 pdf 甚至不显示图片,它只是在 Asymptote 代码之后直接跳到 LaTeX。

我试图在 Asymptote 中绘制 8 幅图。前 2 幅和后 2 幅看起来不错,但其他 4 幅(file-3、-4、-5、-6)乱七八糟。以下是尝试解析代码时控制台显示的内容:

...(other stuff that I don't think is helpful)
Output written on "file.pdf".
SyncTeX written on "file.synctex.gz"
Transcript written on "file.log".
Processing file-1
file-3.asy: 17.10: no matching variable 'graph'
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019)
(preloaded format=pdflatex)
...(more stuff that I don't think is helpful)

我该如何修复这个问题?我知道我的代码运行正常,我在线试过了,看起来不错。

编辑:谢谢大家!我用薛定谔猫的解决方案解决了这个问题。

答案1

欢迎!错误消息(恕我直言)非常清楚:它无法识别graph。这是因为您忘记添加import graph;。接下来,我添加了一个完整的代码示例,以便其他人可以使用标志对其进行编译,但您可能只需要和-shell-escape之间的代码。我还添加了,请将其更改为您认为合适的任何内容。\begin{asypicture}{name=graph1}\end{asypicture}size(200,200);

\documentclass[border=3mm]{standalone}
\usepackage{asypictureB}
\begin{document}
\begin{asypicture}{name=graph1}
import graph;
size(200,200);
real xmin=-2,xmax=8;
real ymin=-2,ymax=10;

real f(real x) {return 2*((2*x)-1+(x^2)+(4/((x^2)+1)^2))/3;}
real g(real x) {return ((1/2*((x-1)^(2))) - (1/10*((x-2)^(3)))+1)/2;}

path Cf4=graph(f,xmin-3,-0.2376821809755,n=100);
path Cg4=graph(g,-0.2376821809755,xmax-3,n=100);
draw(Cf4,blue);
draw(Cg4,blue);

xlimits(xmin-3,xmax-3,Crop);
ylimits(ymin-4,ymax-4,Crop);

label("min($f\left(x\right)$, $g\left(x\right)$)",(-4.5,5),W,fontsize(12));

draw((5,0)--(-5,0));
\end{asypicture}
\end{document}

在此处输入图片描述

不用说

\documentclass[border=3mm]{standalone}
\usepackage{asymptote}
\begin{document}
\begin{asy}
import graph;
size(200,200);
real xmin=-2,xmax=8;
real ymin=-2,ymax=10;

real f(real x) {return 2*((2*x)-1+(x^2)+(4/((x^2)+1)^2))/3;}
real g(real x) {return ((1/2*((x-1)^(2))) - (1/10*((x-2)^(3)))+1)/2;}

path Cf4=graph(f,xmin-3,-0.2376821809755,n=100);
path Cg4=graph(g,-0.2376821809755,xmax-3,n=100);
draw(Cf4,blue);
draw(Cg4,blue);

xlimits(xmin-3,xmax-3,Crop);
ylimits(ymin-4,ymax-4,Crop);

label("min($f\left(x\right)$, $g\left(x\right)$)",(-4.5,5),W,fontsize(12));

draw((5,0)--(-5,0));
\end{asy}
\end{document}

也有效。

相关内容