Asymptote:Shipout 到 SVG 在 MacOS 上无法工作

Asymptote:Shipout 到 SVG 在 MacOS 上无法工作

运行在 2023 M2 Pro Macbook pro 上,运行 MacOS Ventura 13.2.1

您好,我无法将任何渐近线图导出为 svg 文件,尽管我可以在旧的 Windows 机器上轻松完成此操作。此问题已在 3 台不同的 Mac 上重复出现,每次都出现相同的问题。以下日志说明了我在全新安装 MacOS Ventura 13.2.1 的全新机器上产生这些错误的过程:

  1. 从 tug.org/mactex/mactex-download.html 安装 MacTeX.pkg 并将其安装在我的计算机上。在安装选项中,我选择了自定义并选择了所有选项(ghostscript 10.00、ghostscript 动态库、GUI 应用程序、TEXLive 2023)。请注意,which asy返回/Library/TeX/texbin/tex

  2. 然后,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.asycd进入正确目录后)的输出为:

Processing of PostScript specials is disabled (Ghostscript not found)
WARNING: 1 PostScript special ignored. The resulting SVG might look wrong.

svg 文件已创建并且正确。然而,在以前重现此问题的尝试中,包含标签时 svg 输出确实存在问题(尤其是如果标签被旋转)。

  1. 现在,我将内容改为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 输出。

  1. 我再次运行了(包含 a、b、c、d)的第一个版本test.asy,现在它也有 XML 错误 + ghostscript 错误,并且没有创建任何输出。

  2. 现在,尝试修复 ghostscript 错误,我运行了dvisvgm -V1,注意到输出中没有 ghostscript 。which gs返回/usr/local/bin/gs,我决定 homebrew install ghostscript 。我运行了brew install gs,现在which gs返回/opt/homebrew/bin/gs

  3. 我运行了export LIBGS=/opt/homebrew/lib/libgs.dylib,现在运行dvisvgm -V1显示 ghostscript 10.1.2 另外,asy test.asy现在运行仍然有 XML 错误,但没有 ghostscript 错误。

  4. 尝试修复 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?我真的不确定,所以任何帮助都会很感激。谢谢!

相关内容