章节标题或小节标题中的 \bm{p} 会产生错误吗?

章节标题或小节标题中的 \bm{p} 会产生错误吗?

当我这样做时,它说(我的文件名为 Test.tex):

./Test.tex:397: TeX capacity exceeded, sorry [input stack size=5000].
<to be read again> 
                   \HyPsd@@LetCommand 
l.397 \subsection{Here the error occurs $\bm{p}$}

./Test.tex:397:  ==> Fatal error occurred, no output PDF file produced!
Transcript written on Test.log.

\mathbf{p}并且可以\vec{p}正常工作,并且在代替上述内容写入时不会产生错误\bm

一些小信息:我希望标题中的 p 为粗体,因为在我的例子中它代表一个向量.p 有一个下标,我不想将其加粗。

答案1

问题不在于移动论证中的脆弱命令,因为\bm是稳健的。这里的罪魁祸首是hyperref

您可以通过两种方式解决您的问题:

  1. 类型\section{A vector \texorpdfstring{$\bm{p}$}{p}}

  2. 添加\bm到创建书签时要取消的命令列表

第二种策略也许更好:

\documentclass{article}
\usepackage{bm}
\usepackage{hyperref,bookmark}

\DeclareRobustCommand{\vect}[1]{\bm{#1}}
\pdfstringdefDisableCommands{%
  \renewcommand{\vect}[1]{#1}%
}

\begin{document}
\section{A vector $\vect{p}$}

\end{document}

你必须接受这个警告

Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `math shift' on input line 12.

尽管。

定义\vect比直接使用更好\bm,因为它为命令添加了语义。

在此处输入图片描述

相关内容