编译问题

编译问题

如果这题外话请原谅,但我不知道该问哪里。我有一个大型报告类文档。它由多个章节组成,都在单独的文件中。一切都很顺利,编译没有问题(使用 WinEdt),直到我在第 6 章中添加了一个新子节。有了这个新子节,文档将无法编译,并显示以下错误消息。

! Undefined control sequence.
l.1 \chapter
            {Lower Bound} \label{ch:6-LowerBound}
? 
! Emergency stop.
l.1 \chapter
            {Lower Bound} \label{ch:6-LowerBound}
End of file on the terminal!

当我撤消更改(删除有问题的子节)时,文档仍然无法编译。而且,有点神秘的是,在尝试编译之后,标签列表仅包含第 6 章中的标签,而不包含其他章节中的标签。为了再次编译它,我必须删除编译尝试期间生成的所有非 TEX 文件并重新启动我的机器。

于是我尝试在 Texworks 中进行编译,文档编译成功(带有在 WinEdt 中导致问题的子部分)。然后我更改了子部分标题(添加 $\underline{z}$),文档再次无法编译,这次出现以下错误消息。

!Missing $ inserted
<inserted text>
$
l.34 …round \z@ $\relax $}{69}{subsection 6.3.1}
?

不幸的是,我无法提供 MWE,因为我无法以这种方式复制问题。显然我无法上传整个项目。这些错误消息是否提示了发生了什么?

答案1

您需要\underline以移动论点进行保护,例如以下章节标题:

\documentclass{report}
\begin{document}
\tableofcontents
\subsection{Step 1 --- finding $\protect\underline{z}$}
\end{document} 

答案2

\underline由于目录中使用和/或数学模式材料似乎存在冲突,您可以尝试

\subsection[Step 1 - finding \b{\textit{z}}]{Step 1 - finding $\underline{z}$}

如果您的文档确实需要目录。方括号中的材料(请注意,它不包含数学模式材料或说明)将用于目录,而花括号中的材料将显示在文档的主要部分中。和\underline产生的下划线的长度并不完全相同,但我相信没有读者会因为这种差异而感到困惑或误导。\b\underline

完整的 MWE (最小工作示例):

\documentclass{report}
\setcounter{chapter}{6} % just for this example
\setcounter{section}{3} % just for this example
\begin{document}
\tableofcontents

\subsection[Step 1 - finding \b{\textit{z}}]{Step 1 - finding $\underline{z}$}
\end{document} 

答案3

问题似乎出在目录上。删除该行

\tableofcontents

允许项目编译。因此,我猜您不能在节标题中的内联方程中使用带下划线的变量。

相关内容