运行在 2023 M2 Pro Macbook pro 上,运行 MacOS Ventura 13.2.1
您好,我无法将任何渐近线图导出为 svg 文件,尽管我可以在旧的 Windows 机器上轻松完成此操作。此问题已在 3 台不同的 Mac 上重复出现,每次都出现相同的问题。以下日志说明了我在全新安装 MacOS Ventura 13.2.1 的全新机器上产生这些错误的过程:
从 tug.org/mactex/mactex-download.html 安装 MacTeX.pkg 并将其安装在我的计算机上。在安装选项中,我选择了自定义并选择了所有选项(ghostscript 10.00、ghostscript 动态库、GUI 应用程序、TEXLive 2023)。请注意,
which asy
返回/Library/TeX/texbin/tex
然后,
Desktop/Asy-test/
我在 中创建了一个名为 的文件test.asy
,并在 VSCode 中打开它(还在 VSCode 上下载了 Asymptote 扩展)。 的初始内容test.asy
如下:
Settings.outformat = “svg”;
unitsize(fontsize());
Pair a = (0,0);
Pair b = (1,3);
Pair c = (2,4);
Pair d = (-1,1);
draw(a–b–c–d–cycle);
asy test.asy
(cd
进入正确目录后)的输出为:
Processing of PostScript specials is disabled (Ghostscript not found)
WARNING: 1 PostScript special ignored. The resulting SVG might look wrong.
svg 文件已创建并且正确。然而,在以前重现此问题的尝试中,包含标签时 svg 输出确实存在问题(尤其是如果标签被旋转)。
- 现在,我将内容改为
test.asy
:
settings.outformat = “svg”;
unitsize(fontsize());
draw(unitcircle());
输出为asy test.asy
:
Processing of PostScript specials is disabled (Ghostscript not found)
XML error: error in path data: number expected (premature end of data)
_shipout(prefix,f,currentpatterns,format,wait,view,t);
^
/usr/local/texlive/2023/texmf-dist/asymptote/plain_shipout.asy: 116.11: runtime:
Shipout failed
没有创建 svg 输出。
我再次运行了(包含 a、b、c、d)的第一个版本
test.asy
,现在它也有 XML 错误 + ghostscript 错误,并且没有创建任何输出。现在,尝试修复 ghostscript 错误,我运行了
dvisvgm -V1
,注意到输出中没有 ghostscript 。which gs
返回/usr/local/bin/gs
,我决定 homebrew install ghostscript 。我运行了brew install gs
,现在which gs
返回/opt/homebrew/bin/gs
。我运行了
export LIBGS=/opt/homebrew/lib/libgs.dylib
,现在运行dvisvgm -V1
显示 ghostscript 10.1.2 另外,asy test.asy
现在运行仍然有 XML 错误,但没有 ghostscript 错误。尝试修复 XML 错误,我
brew install asymptote
,现在which asy
返回/opt/homebrew/bin/asy
,并且运行/opt/homebrew/bin/asy test.asy
返回:
XML error: error in path data: number expected (premature end of data)
_shipout(prefix,f,currentpatterns,format,wait,view,t);
^
/opt/homebrew/Cellar/asymptote/2.86/share/asymptote/plain_shipout.asy: 116.11: runtime: shipout failed
总而言之,我不知道如何修复这个 XML 问题,以及为什么它只在第二次运行后才出现asy test.asy
。我很确定的内容test.asy
不是问题,但也许第一次运行后幕后发生了一些变化asy
?我真的不确定,所以任何帮助都会很感激。谢谢!