我正在使用 TexStudio,并想使用 asymptote 插入 3D 交互式图像。我找到了一些关于如何使用独立模式生成 asymptote 3D 交互式图像的示例。现在,我想将它们插入到 latex 文档中。Asymptote 是使用 MikTex 控制台安装的。
我想知道,
- 如何将这些交互式 3D 文件包含到 latex pdf 文档中?
- 如果我必须在编译乳胶代码时动态生成图像,最好的方法是什么?
第一季度的信息:下面给出了使用 asymptote.exe 生成 3D 交互式 pdf 的代码。
import three;
currentprojection=perspective(300,-650,500);
currentlight.background=paleyellow;
surface carbon=scale3(1)*unitsphere; // 1 pm
surface hydrogen=scale3(1)*unitsphere; // 1 pm
triple px=(1,0,0);
triple py=(0,1,0);
triple pz=(0,0,1);
triple nx=(-1,0,0);
triple ny=(0,-1,0);
triple nz=(0,0,-1);
real d1=10;
triple p1=(0,0,0);
triple p2=p1+px*d1;
triple p3=p2+py*d1;
triple p4=p3+nx*d1;
triple p5=p1+pz*d1;
triple p6=p2+pz*d1;
triple p7=p3+pz*d1;
triple p8=p4+pz*d1;
triple p9=p1+px*d1*0.5+py*d1*0.5+pz*d1*0.5;
pen blue=rgb(0,0.01,0.99);
pen lime=rgb(0.5,0.5,0);
pen green=rgb(0,1,0);
defaultrender=render(compression=Zero,merge=true);
draw(shift(p1)*carbon,blue);
draw(shift(p2)*carbon,blue);
draw(shift(p3)*carbon,blue);
draw(shift(p4)*carbon,blue);
draw(shift(p5)*carbon,blue);
draw(shift(p6)*carbon,blue);
draw(shift(p7)*carbon,blue);
draw(shift(p8)*carbon,blue);
draw(shift(p9)*carbon,green);
pen thick=linewidth(0.3);
draw(p1--p2--p3--p4--cycle,thick);
draw(p5--p6--p7--p8--cycle,thick);
draw(p1--p5,thick);
draw(p2--p6,thick);
draw(p3--p7,thick);
draw(p4--p8,thick);
有没有一种方法可以将通过上述代码生成的pdf插入到Latex中的文章类文档中?
第二季度的信息:我正在尝试插入一个简单的 2D 图片。但是,生成的 pdf 不包含任何图形元素!我使用的代码如下所示。
\documentclass[a4paper]{article}
\usepackage{graphicx}
\usepackage{asymptote}
\begin{document}
This is my first experiment.
\begin{asy}
settings.outformat="pdf";
draw((-.1,0) -- (2,0));
draw((0,-.1) -- (0,2));
\end{asy}
\end{document}
我可以直接将 Q1 给出的代码用于 latex 文章类文档并生成直接输出吗?如果可以,上述程序应该如何更改?哪种方法最有效?
我已经在 Windows PC 上安装了 ghostscript。我正在使用 pdflatex 进行编译。
更新: 对于问题 1:我所说的“交互式”是指可以通过使用鼠标旋转来查看的 3D 图形。
对于问题 2:我测试了我的编译目录,发现在编译代码时会生成 filename-1.asy 文件。编译时,会生成以下消息:
return settings.outformat == "html" || settings.outformat=="v3d" || settings.v3d; ^ *\Programs\MiKTeX/asymptote/plain_shipout.asy: 36.79: no matching field of name 'v3d' in 'settings'
用于编译文件的命令是:pdflatex->asy-pdf-chain->pdflatex->compile->view。
更新-2: 我已经卸载了 MikTex、TexStudio,清理了所有文件夹并重新安装。现在,我没有收到之前提到的错误。
现在我的 Windows 操作系统包含 2 个 asymptote 设置。一个是通过 MikTex 控制台,另一个是直接安装的。编译 tex 文件时,ide 会生成 asy 文件,但无法编译它并生成相应的 pdf 文件以包含在最终文档中。当我手动双击 IDE 生成的 asymptote 文件时,pdf 文件可以生成并包含在文件文档中。因此,第二个问题得到部分解决。
按照相同的程序,Q1 中的代码保存在单独的 asy 文件中并执行。这导致生成所谓的 3d 交互式 pdf 文件。当将相同的代码编译为 tex 文件的一部分时,它只能生成 2D 图形。可能需要对代码进行哪些修改才能将其包含在 asy 代码中,以便在最终文档中显示交互式图形?