我有这张图片,它包含在一个 html 页面中(见下文,您可以下载代码并在浏览器中打开图片)。据我所知,该图片是通过 html 文件内的 webgl 代码生成的(我对这一切知之甚少,即使我确实使用带有 html 输出选项的 asymptote 程序自己生成了图片)。
我想将其包含在要打印的 pdflatex 文档中。因此,我不需要在 latex 文档中提供指向 html 文件的链接,但我希望最终的 pdf 中已插入图片,并且图片清晰可见,就像任何其他 pdf 图片一样。
是否有可能做到这一点,也许使用 hyperref 包?
谢谢 Maurizio
答案1
你可以同时拥有点击即可打开的交互式 3D 内容和为不支持 PRC 的打印和 PDF 查看器提供精美渲染的矢量图像。为此,添加
import three;
settings.render = 0;
在代码顶部asy
。
example.tex
使用以下方式编译
pdflatex example
asy example-1.asy
pdflatex example
输入example.tex
:
\documentclass[varwidth,border=3pt]{standalone}
\usepackage{hyperref,calc}
\usepackage[inline]{asymptote}
\setlength{\textwidth}{\widthof{\begin{NoHyper}\url{https://asymptote.sourceforge.io/gallery/3Dwebgl}\end{NoHyper}}}
\begin{document}
Example \verb+cylinder.asy+, taken from\\
\url{https://asymptote.sourceforge.io/gallery/3Dwebgl}
\begin{center}
\begin{asy}
import three;
settings.render = 0;
size(0,100);
import solids;
currentlight=Viewport;
triple v=O;
real r=1;
real h=1.5;
triple axis=Y+Z;
// Optimized cylinder
surface cylinder=shift(v)*align(unit(axis))*scale(r,r,h)*unitcylinder;
draw(cylinder,green,render(merge=true));
// Skeleton
revolution r=cylinder(v,r,h,axis);
//draw(surface(r),green,render(merge=true));
draw(r,blue+0.15mm);
\end{asy}
\end{center}
\end{document}
如果您只想要用作非活动 3D 内容海报图像的矢量图像作为独立文件,请asy
使用选项-k
(保留文件)运行并查找example-1+0_0.pdf
。可以使用以下方式将此文件包含在其他文档中\includegraphics
:
asy -k example-1.asy