在 latex 中运行渐近线代码

在 latex 中运行渐近线代码

使用一些教程问题解决艺术论坛在 Asymptote 上,我能够将 Asymptote 代码与我的 Latex 一起使用,如下所示

\begin{figure}[h]
  \centering
\begin{asy}
    include graph;
    size(1inch);
    filldraw(circle((0,0),1),yellow,black);
    fill(circle((-.3,.4),.1),black);
    fill(circle((.3,.4),.1),black);
    draw(arc((0,0),.5,-140,-40));
\end{asy}
\end{figure}

但是,我的许多图表将比这复杂得多,这意味着渐近线将更长。有没有办法在 latex 代码中包含一个指向渐近线脚本的链接,以便 latex 系统自动将生成的图片插入那里。

即我想要类似的东西

  \begin{figure}[h]
      \centering
    \compile-code{smiley.asy}
  \end{figure}

因此使用渐近线的 latex 的通常编译过程

#!/bin/bash
xelatex -shell-escape synopses.tex
asy syn*.asy
xelatex -shell-escape synopses.tex

像以前一样工作。

注意:我知道一个很长的解决方法,就是单独生成图片,然后使用它们来包含它们includegraphics,但这种方法会更简洁。

答案1

当然。我更喜欢使用asypictureB包。一个非常简单的可能性是

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{myasy-1.tex}
\begin{asypicture}{}
    include graph;
    size(1inch);
    filldraw(circle((0,0),1),yellow,black);
    fill(circle((-.3,.4),.1),black);
    fill(circle((.3,.4),.1),black);
    draw(arc((0,0),.5,-140,-40));
\end{asypicture}
\end{filecontents*}
\usepackage{asypictureB}
\begin{document}
\begin{figure}[h]
  \centering
  \input{myasy-1.tex}
\end{figure}
\end{document}

如果你用pdflatex -shell-escape(比如说)运行这个,你会得到

在此处输入图片描述

只要你不改变文件myasy-1.tex,图片就不会被重新编译。

相关内容