旧版 LaTeX 发行版是否阻止当前 TeX Live 2023 的使用?

旧版 LaTeX 发行版是否阻止当前 TeX Live 2023 的使用?

我在使用 Jupyter Notebook 或 将 *.tex 文件转换为 PDF 时遇到了一系列问题$ xelatex filename.tex。这些问题始终出现在 tcolorbox 软件包中,该软件包需要最新的 l3kernel(2024-01-22)和 LaTeX2e。您可以在以下位置找到以前的故障排除尝试GitHub 问题 #268StackExchange 查询

经过多次尝试修复该问题后,问题似乎在于 xelatex 使用较旧的 TeX 发行版来渲染 PDF,而不是新安装或更新的 TeX Live 2023。具体来说,tcolorbox 开发人员善意地指出,latex 错误文件列出了正在使用的 2023 l3kernel 和 2022 LaTeX2e:

This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2024.1.28)  29 JAN 2024 20:28
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**"Module 01/Enviroment Test/Jupiter Notebook Enviroment Test Document.tex"
(./Module 01/Enviroment Test/Jupiter Notebook Enviroment Test Document.tex
LaTeX2e <2022-11-01> patch level 1
L3 programming layer <2023-02-22>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls

到目前为止我已经:

  • 卸载了 TinyTex R 包,该包阻止了 TeX Live 2023 发行版的使用,并由于密钥过期而导致 tlmgr 包存储库验证被阻止(此问题现已解决)。
  • 检查 TeX Live Utility、/Library/ 和 /user/local/texlive 以确认 TeX Live 2023 已完全更新,甚至删除了旧的发行版。
  • 使用$ tlmgr update --self --all以及$ tlmgr update --self latex l3kernel l3backend重新安装MacTeX 2023以确保通过 xelatex 使用的所有内容都得到更新。

目前,我不知道 xelatex 从哪里提取这些旧发行版,甚至不知道为什么当我使用 tcolorbox 渲染最简单的 tex 文件时它会这样做。有没有办法强制彻底卸载 Mac 电脑上的所有 TeX 发行版?有没有办法设置 xelatex 的路径?您建议我尝试什么来解决这个问题?

非常感谢您对这个问题的任何指导,并提前感谢您的帮助。

答案1

感谢您的所有评论和尝试,帮助我找到任何可能阻止使用更新的 l3 编程层的阴影格式或冲突的 TeX 发行版。我刚刚找到了该问题的答案。首先,我探索了与文件相关的错误。expl3.sty具体来说,错误是

(/usr/local/texlive/2023/texmf-dist/tex/latex/l3kernel/expl3.sty
Package: expl3 2024-01-22 L3 programming layer (loader) 
! LaTeX Error: Mismatched LaTeX support files detected.
(LaTeX)        Loading 'expl3.sty' aborted!
(LaTeX)        
(LaTeX)        The L3 programming layer in the LaTeX format
(LaTeX)        is dated 2023-02-22, but in your TeX tree the files require
(LaTeX)        at least 2024-01-22.

这是错误前言

This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex 2024.1.28)  29 JAN 2024 21:32
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**"Module 01/Enviroment Test/tcolorbox Removed.tex"
(./Module 01/Enviroment Test/tcolorbox Removed.tex
LaTeX2e <2022-11-01> patch level 1
L3 programming layer <2023-02-22>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls

正如我上面描述的,通过 TeX Live Utility 更新 l3 层的标准方法tlmgr并不成功。然后我发现了这篇名为expl3.sty 的 L3 编程层已过时,我尝试过

tlmgr remove --force l3kernel
tlmgr install l3kernel

这对我来说也不起作用,! LaTeX Error: File 'expl3.sty' not found.如果我不重新安装,我也会得到同样的错误l3kernel。这也表明我的问题与包有关l3kernel。在 Keks Dose 对该帖子的评论之后,我找到了检测到不匹配的 LaTeX 支持文件

此时我尝试了这个fmtutil-user --all建议。拖船网fmtutil命令的页面显示它将“[重新]构建和管理 TeX fmts 和 Metafont 基础,这里统称为‘格式’”。运行几分钟后,我尝试使用渲染同一个文件xelatex filename.tex,它运行正常!尝试从 Jupyter 笔记本将同一个文件导出为 PDF 也成功了!

我不确定到底fmtutil-user --all发生了什么。我希望通过添加所有背景信息来找到解决方案,知识更渊博的人能够将其拼凑起来。再次感谢大家的帮助。

如果您尝试此操作但仍然遇到问题,请尝试开发人员 Yukai Chou 为文本文件提供的修改GitHub 问题 #267。如果您也尝试使用 Jupyter 笔记本,您可能会发现我与他的对话很有帮助。我基本上跳出了 #267 问题,并询问他还建议在哪里添加控制序列(GitHub 问题 #267)。

相关内容