弃用的 latex 宏 token_get_prefix_spec

弃用的 latex 宏 token_get_prefix_spec

我在 Debian(Windows Linux 子系统)上使用 Tex 和 Latex。我首先使用 apt-get 安装了 tex_base Debian 包和 latex_base 包。我认为 Debian 使用的是 Tex 2018。然后我使用 TLmgr(Tex 自己的包管理器)安装其他包。我不得不在 Tlmgr 中将年份更改为 2018。我这样做是为了最小化 Tex/Latex 安装,以免占用太多磁盘空间。到目前为止,每次我的文档要求更多包时,我都能从 ctan 安装新包。但是,现在我收到错误

!未定义的控制序列。\LaTeX3 错误:使用 \cs_prefix_spec:N 而不是 \token_get_prefix_spec:... l.9 \begin{document}?

有可能修复这个问题吗?我需要编辑哪个文件?有时 Tlmgr 找不到包。所以我在 ctan 或 tug 上手动找到它,然后手动将其复制到我的用户 latex 目录中。我认为其中一些独立包来自 2020 年或 2021 年。这可能是此错误的根源。也许它们不兼容?我读过这篇文章但没有找到我的解决方案。并且还有这个

答案1

您已升级 latex,但未升级软件包。软件包维护人员已删除已弃用的命令,但您没有跟上更新。您可以将 LaTeX 降级到旧版本,或升级包含有问题的命令的软件包。

今晚我也遇到了类似的问题,因为我siunitx在 2017 年从 CTAN 手动安装了该软件包,然后就忘记了。系统升级后,旧软件包不再起作用,所以我不得不删除它并安装适合我的操作系统的软件包(在 arch linux 上:)pacman -S texlive-science

正如你所看到的变更日志您在问题中链接了该命令,该\token_get_prefix_spec命令已于 2019 年 3 月弃用。我假设该错误发生在那时,因为两年是强制弃用的合理期限。

如果您不打算开始使用包管理器,您可以grep -r在 latex 源目录中查找有问题的命令,然后升级您找到的包。但这可能是一个繁琐的手动过程,因为升级可能会引入新的依赖项或破坏其他依赖项。

相关内容