在我的一个文件中,我包含了asymptote
制作交互式图表的软件包。我在我的电脑上安装了 TeXLive 2020 发行版,一切都运行良好。但是,我最近决定也安装 TeXLive 2023 版本,将其与之前的 TeXLive 2020 分开,这样我就可以随意选择使用哪一个(即在两个不同的路径中:C:\texlive\2020
和C:\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}