我知道这etoolbox
提供了一个robustify
命令,而且我一直\robustify\(
在我的标题中执行它。但是,像这个还建议加载修复fixltx2e
以使其变得健壮。
然而,CTAN 现在说该软件包除了产生警告之外什么都不做,当我查看描述对 latex 的更改的日志时,2019-10-01 的条目说许多以前脆弱的命令已经变得健壮,但没有明确\(
提及\)
。
\(
那么\)
现在被定义为强大的吗?
答案1
使用最新的 LaTeX\show\(
产品
> \(=macro:
->\x@protect \(\protect \( .
l.10 \show\(
看起来非常坚固。
确实,source2e
,§E.1.2,第 494 页,2020-10-01PL4 版本表明自从2015/01/01
我们有了
\DeclareRobustCommand\({%
\relax\ifmmode\@badmath\else$\fi}%
\DeclareRobustCommand\){%
\relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi}%
在ltnews
从 2015 年 1 月的 22 版开始,我们发现fixltx2e
现在在 LaTeX 内核中默认启用了来自 的所有修复,因此内核现在将\(
和定义\)
为强大的命令。从 2017 年 1 月的 26 版开始,ltnews
我们发现fixltx2e
在 LaTeX 版本中添加到内核的所有来自 的更改2015-01-01
都受到 的保护\IncludeInRelease{2015/01/01}
,因此可以使用 进行回滚latexrelease
。
因此,如果你想用旧的脆弱行为进行测试,你可以将 LaTeX 版本回滚到latexrelease
之前的日期2015/01/01
,例如
\RequirePackage[2014/01/01]{latexrelease}
\documentclass{article}
\begin{document}
\tableofcontents
\section{\(x\)}
\end{document}