由于我无法理解的原因,以下 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-ldpkg
has 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