如何从旧版本的 TeXLive(2020)调用 Asymptote,而无需从另一个较新版本(2023)中获取文件?

如何从旧版本的 TeXLive(2020)调用 Asymptote,而无需从另一个较新版本(2023)中获取文件?

在我的一个文件中,我包含了asymptote制作交互式图表的软件包。我在我的电脑上安装了 TeXLive 2020 发行版,一切都运行良好。但是,我最近决定也安装 TeXLive 2023 版本,将其与之前的 TeXLive 2020 分开,这样我就可以随意选择使用哪一个(即在两个不同的路径中:C:\texlive\2020C:\texlive\2023在 Windows 上)。问题是,使用最新版本时,编译器崩溃,输出以下错误消息:freeglut (asy): Unable to create OpenGL 4.0 context。据我自己记录,这应该源于我的硬件不支持该版本的 OpenGL,我可以接受这一点,因为我的电脑很旧。关键是,如果我现在尝试使用 TeXLive 2020 版本重新编译它,它仍然会给我一个错误(这在故事开始时并没有发生)!但是,来自输出控制台的消息是不同的:

C:/texlive/2023/texmf-dist\asymptote/plain_pens.asy: 333.39: no matching variable 'byteinv'
C:/texlive/2023/texmf-dist\asymptote/plain.asy: 312.16: no matching variable '_schur'
C:/texlive/2023/texmf-dist\asymptote/plain.asy: 326.16: no matching variable '_schur'
C:\texlive\2020\bin\win32\runscript.tlu:915: command failed with exit code 1: asy main-*.asy

因此,似乎 asymptote 无论如何都在调用一些 2023 版本的文件。关于如何修复此问题的建议,保留 TeXLive 的两个版本?这是我的 MWE(称为main.tex),它从命令提示符运行,从其C:\texlive\2020\bin\win32\asy.exe main-*.asy目录中运行:

\documentclass[11pt]{standalone}
\usepackage{asymptote}

\begin{document}

\begin{asy}
    import three;
    surface cube = unitcube;
    draw(cube, grey);
\end{asy}

\end{document}

相关内容