如何在章节名称中放置 \varinjlim?

如何在章节名称中放置 \varinjlim?

这是该文件的(几乎)最小示例,它给出了错误。

\documentclass{article}
\usepackage{amsmath}
\usepackage[english]{babel}
\begin{document}
\section{Section name with varinjlim: $\varinjlim$}
\end{document}

运行 pdflatex 会出现 4 个相同的错误,形式如下

minimal.tex:5: Illegal parameter number in definition of \reserved@a. [...{Section name with varinjlim: $\varinjlim$}]

添加\tableofcontents会产生 12 个额外的错误,形式为

\minimal.toc:2: Only one # is allowed per tab. [...m \p@ \kern -\ex@ }\cr }}}}\nmlimits@ $}{1}]

有没有办法避免这些问题,并且仍然输入\varinjlim部分名称?

答案1

有必要使用\protect或来增强该命令。

hyperref但是,如果使用,则可能会出现其他问题,因为pdftex书签中将出现无效字符串。在这种情况下,请使用\texorpdfstring第二个版本中所示的方法。

\documentclass{article}
\usepackage{amsmath}
\usepackage[english]{babel}
\usepackage{hyperref} % Not needed
\begin{document}
\section{Section name with varinjlim: $\protect\varinjlim$}
\section{Section name with varinjlim: \texorpdfstring{$\protect\varinjlm$}{limits}}
\end{document}

另一种方法是在序言中使用以下代码:

\usepackage{etoolbox}

\robustify\varinjlim%

这样就\protect不需要了,但是,它并不妨碍所需的\texorpdfstring

相关内容