运行最新的 TeXLive tlmgr 更新后出现错误 - 缺少插入的 \endcsname

运行最新的 TeXLive tlmgr 更新后出现错误 - 缺少插入的 \endcsname

运行 tlmgr update --all 后(我有一段时间没有运行它了)此代码(来自 dtx 文件所有版本的 REVTeX 4(版本 4.2 即将推出!)):

\expandafter\ifx\csname package@font\endcsname\@undefined\else
\expandafter\RequirePackage\expandafter{\csname package@font\endcsname}%
\fi

给出

This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) (preloaded   format=latex 2017.12.21)  22 DEC 2017 16:56
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**foo.tex
(./foo.tex
LaTeX2e <2017-04-15>
Babel <3.15> and hyphenation patterns for 84 language(s) loaded.
! Missing \endcsname inserted.
<to be read again> 
                   \package@font 
l.3 \fi

?

如果我在旧版 TeXLive 安装下运行,则不会发生此错误,直到运行更新后才遇到此错误。我如何找出问题所在?

谢谢,马克

答案1

这次测试

\expandafter\ifx\csname package@font\endcsname\@undefined

永远不会测试为真,因为\csname ljhgjghlj\encdname返回 csname \let,所以\relax你总是这样做

\RequirePackage\expandafter{\csname package@font\endcsname}%

即使它没有被定义,在这种情况下你就会遇到错误。

相关内容