简易环境能放入饲养箱吗?

简易环境能放入饲养箱吗?

我经常将图形放入 raisebox 中,例如:

\raisebox{1cm}{\includegraphics{myfigure}}

是否可以使用类似的东西来做到这一点

\begin{asy}
size(1cm);
draw((0,0)--(1,1)); 
\end{asy} 

环境代替 \includegraphics{myfigure}?如果直接替换,会出现错误,我认为这是因为您不能将 asy 环境作为 TeX 命令的参数。我不想使用 includegraphics,因为我想利用 asymptote 的 3D PRC 图形。

答案1

定义一个箱子:

\documentclass{article}
\usepackage{asymptote}

\newsavebox{\myasybox}

\begin{document}

Normal
\begin{asy}
size(1cm);
draw((0,0)--(1,1));
\end{asy}
Normal

Raised
\begin{lrbox}{\myasybox}
\begin{asy}
size(1cm);
draw((0,0)--(1,1));
\end{asy}
\end{lrbox}\raisebox{-.5\height}{\usebox{\myasybox}}
Raised

\end{document}

在此处输入图片描述

答案2

您说得对,您不能将asy环境作为 TeX 命令的参数。但还有其他几个选择:

  1. 通常,您可以在绘图中添加一条不可见的线或点,asy以便在底部获得额外的空白。不幸的是,这个概念并不适用于交互式prc图形,因为不可见的点/线会随着图形的其余部分旋转。
  2. 实际上,您可以将asy环境放在节点内部tikz。(TiZ“发挥了一些魔力”,使得\node命令的行为就像环境一样。)所以,像这样(未经测试):

    \begin{tikzpicture}
    \draw [white] (0,0) (0,1) node [above right] {%
    \begin{asy}
    size(1cm);
    draw((0,0)--(1,1)); 
    \end{asy}
    };
    \end{tikzpicture}
    

相关内容