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