章节标题中的方程式

章节标题中的方程式

由于我无法理解的原因,以下 MWE

\documentclass{scrreprt}
\usepackage{classicthesis-ldpkg}
\usepackage{bm}
\usepackage{amsmath}

\begin{document}

\section{The values of $\beta$ for which $\omega_i \mid \bm{\omega}
\mid^{-\beta}$ is defined at the origin}

\end{document}

编译失败,出现以下错误:

! TeX capacity exceeded, sorry [input stack size=5000].
<to be read again>
                   \HyPsd@@LetCommand
l.9 ...a} \mid^{-\beta}$ is defined at the origin}

我尝试增加 pdfLatex 可用的内存量,但这并不能解决问题。我也在 Google 上搜索过,但无济于事。有没有办法解决这个问题?

答案1

看起来classicthesis-ldpkghas loadedhyperref正在尝试为您的章节标题添加书签,并且由于其中包含数学,因此会向您抛出(相当神秘的)错误。解决方案非常简单。\section按如下方式重写您的命令:

\section{The values of \texorpdfstring{$\beta$}{TEXT} %
     for which \texorpdfstring{$\omega_i \mid \bm{\omega}\mid^{-\beta}$}%
     {TEXT} is defined at the origin}

包括一些非数学在两个位置输入带有“TEXT”字样的文本。章节标题将包含您想要的数学排版,生成的 pdf 书签将包含您替换为 TEXT 的任何内容。

答案2

我建议通过以下方式为目录提供替代章节标题

\section[alternative title goes here]{The values of $\beta$ for which
        $\omega_i \mid \bm{\omega} \mid^{-\beta}$ is defined at the origin}

(正如已经解释过的,这个替代标题不能包含任何数学。)

答案3

欢迎!这可能不是你想要的答案,但我认为如果你可以避免在章节标题中使用数学表达式,你应该这样做。首先,移动参数,\section这使得\section所谓的脆弱的命令。此外,字体通常会在常规文本、节标题和目录文本之间变化,这可能会使选择正确的数学字体变得很麻烦。最后,如果您的符号是在上一节中定义的,那么扫描目录的人将不知道该节的内容。所以如果可以的话,我建议用英语写出来。“最好的符号就是没有符号,”Halmos 说。

答案4

刚刚发布了这个这里,作为变体@HendrikVogt的回答——在你的序言中也尝试这样做:

\let\oldsection\section
\def\tmpl{\oldsection[]}
\let\section\tmpl

干杯!


编辑:这里有一个稍微好一点的片段 - 带星号的部分应该可以正确显示(如果它没有数学的话);非星号版本将在目录索引中显示“TOC-ENTRY:x”(但其他部分将按照文档中的格式排版):

% http://www.tug.org/applications/hyperref/manual.html
% https://texfaq.org/FAQ-cmdstar
% http://wiki.contextgarden.net/Commands_with_optional_arguments
% TeX tricks - Listing macros - http://www.volkerschatz.com/tex/show.html
% http://zoonek.free.fr/LaTeX/LaTeX_samples_section/0.html
\makeatletter

\let\oldsection\section
\renewcommand{\section}{\@ifstar
                     \mysectionStar%
                     \mysectionNoStar%
}
\newcommand{\mysectionStar}[1]{  % no two arguments here?
\typeout{AAAA}% debug
\oldsection{#1} }
\newcommand{\mysectionNoStar}[1]{ %
\typeout{BBBB}% debug
\oldsection[TOC-ENTRY:\thesection]{#1} }

\makeatother

相关内容