![Asymptote 输出不会创建新的 pdf 文件](https://linux22.com/image/479988/Asymptote%20%E8%BE%93%E5%87%BA%E4%B8%8D%E4%BC%9A%E5%88%9B%E5%BB%BA%E6%96%B0%E7%9A%84%20pdf%20%E6%96%87%E4%BB%B6.png)
我已经设置好一切,以便可以在 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}
也有效。