1. Asymptote 的 PDF 输出
考虑我的文件label3zoom.tex
:
\documentclass{article}
\usepackage[inline]{asymptote}
% \DeclareFontFamily{U}{cry}{\hyphenchar\font=-1}
% \DeclareFontShape{U}{cry}{m}{n}{ <-> cryst}{}
% \newcommand{\cry}[1]{{\usefont{U}{cry}{m}{n} \symbol{#1}}}
\begin{document}
% Hello cryst ``\cry{41}'' % works
\begin{asydef}
import three;
texpreamble("\DeclareFontFamily{U}{cry}{\hyphenchar\font=-1}");
texpreamble("\DeclareFontShape{U}{cry}{m}{n}{ <-> cryst}{}");
texpreamble("\newcommand{\cry}[1]{{\usefont{U}{cry}{m}{n} \symbol{#1}}}");
\end{asydef}
\begin{center}
\begin{asy}
currentlight=Headlamp;
size(400pt,400pt);
currentprojection=oblique;
draw(scale3(4)*extrude("Hello cryst ``\cry{41}''",2Z), material(blue));
\end{asy}
\end{center}
\end{document}
序列
$ pdflatex label3zoom.tex
$ asy label3zoom-*.asy
$ pdflatex label3zoom.tex
给出以下输出:
如您所见,该\cry{41}
命令不会产生任何输出。在 pdflatex 中\cry{41}
打印出一个角落有尖刺的小方块
为什么 Asymptote 的输出中只有空格?我该如何解决这个问题?
2. Asymptote 的 WebGL 输出
可以生成
$ asy --version
Asymptote version 2.70 [(C) 2004 Andy Hammerlindl, John C. Bowman, Tom Prince]
ENABLED OPTIONS:
WebGL 3D HTML rendering
...
和国旗-f html
$ asy -f html label3zoom.asy
使用 WebGL 渲染的 HTML 页面。这适用于官方示例label3zoom.asy。
我估计当 pdf 输出的问题解决后,webgl 输出可能也能正常工作。不过我会拭目以待。
我在 macOS 10.15.7 上使用基于当前 TeXLive 2021 的 MacTeX-2021。
答案1
确保软件包中的 Type-1(基于矢量)字体水晶用来
为了检查当前使用了哪种字体,请使用不带 asymptote 的 crystal 字体编译一个 pdf 文档,例如:
\documentclass{article}
\DeclareFontFamily{U}{cry}{\hyphenchar\font=-1}
\DeclareFontShape{U}{cry}{m}{n}{ <-> cryst}{}
\newcommand{\cry}[1]{{\usefont{U}{cry}{m}{n} \symbol{#1}}}
\begin{document}
Hello cryst ``\cry{41}''.
\end{document}
然后检查日志文件中的字体条目。如果使用基于像素的字体,则可以找到以下类型的条目(搜索模式cryst.[0-9]*pk
)
/Users/hotschke/Library/texlive/2018/texmf-var/fonts/pk
/ljfour/public/cryst/cryst.600pk
此外,使用 PDF 查看器通过更大的缩放级别进行目视检查还可以发现所使用的字体是基于矢量的还是基于像素的。
在我关注接受的答案一个老问题
在 macOS 10.14 上为 pdflatex 和 lualatex 安装 crystal 字体,
日志条目将指向该文件cryst.pfb
。
现在,当我运行问题中给出的示例时,我得到了