额外的},或者忘记了$。... \z@ $\relax $ seqstrict}}{39}{figure.4.7} 等等

额外的},或者忘记了$。... \z@ $\relax $ seqstrict}}{39}{figure.4.7} 等等

这次我遇到了一个奇怪的问题。以下代码来自*.lof文件:

\babel@toc {german}{}
\addvspace {10\p@ }
\contentsline {figure}{\numberline {1.1}{\ignorespaces Architektur des $\mathbb {K}$-Frameworks}}{3}{figure.1.1}
\addvspace {10\p@ }
\addvspace {10\p@ }
\contentsline {figure}{\numberline {3.1}{\ignorespaces IMP-Modul}}{26}{figure.3.1}
\contentsline {figure}{\numberline {3.2}{\ignorespaces Syntaxdefinitionen}}{26}{figure.3.2}
\contentsline {figure}{\numberline {3.3}{\ignorespaces Endmodul}}{26}{figure.3.3}
\addvspace {10\p@ }
\contentsline {figure}{\numberline {4.1}{\ignorespaces IMP-Konfiguration}}{31}{figure.4.1}
\contentsline {figure}{\numberline {4.2}{\ignorespaces K-Regeln}}{33}{figure.4.2}
\contentsline {figure}{\numberline {4.3}{\ignorespaces Beispielhafte Betrachtung eines Terms}}{34}{figure.4.3}
\contentsline {figure}{\numberline {4.4}{\ignorespaces K-Konfigurationen in Backus-Naur-Form}}{35}{figure.4.4}
\contentsline {figure}{\numberline {4.5}{\ignorespaces Regeln f\"ur $\relax $\@@underline {\hbox {\tmspace +\thinmuskip {.1667em}\tmspace +\thinmuskip {.1667em}\tmspace +\thinmuskip {.1667em}}}\mathsurround \z@ $\relax +\relax $\@@underline {\hbox {\tmspace +\thinmuskip {.1667em}\tmspace +\thinmuskip {.1667em}\tmspace +\thinmuskip {.1667em}}}\mathsurround \z@ $\relax $ strict}}{37}{figure.4.5}
\contentsline {figure}{\numberline {4.6}{\ignorespaces Rechenklasse f\"ur en Ausdruck $x\tmspace +\thinmuskip {.1667em}*\tmspace +\thinmuskip {.1667em}(y\tmspace +\thinmuskip {.1667em}+\tmspace +\thinmuskip {.1667em}2)$}}{38}{figure.4.6}
\contentsline {figure}{\numberline {4.7}{\ignorespaces Regeln f\"ur $\relax $\@@underline {\hbox {\tmspace +\thinmuskip {.1667em}\tmspace +\thinmuskip {.1667em}\tmspace +\thinmuskip {.1667em}}}\mathsurround \z@ $\relax <=\relax $\@@underline {\hbox {\tmspace +\thinmuskip {.1667em}\tmspace +\thinmuskip {.1667em}\tmspace +\thinmuskip {.1667em}}}\mathsurround \z@ $\relax $ seqstrict}}{39}{figure.4.7}
\contentsline {figure}{\numberline {4.8}{\ignorespaces KResult und KResultLabel}}{39}{figure.4.8}
\addvspace {10\p@ }
\addvspace {10\p@ }

图 4.5 和 4.7 中的行导致了错误:

Extra }, or forgotten $. ... \z@ $\relax $ seqstrict}}{39}{figure.4.7}
Extra }, or forgotten $. ...und \z@ $\relax $ strict}}{37}{figure.4.5}

我给你我原始 tex 文件中有问题的部分:

\begin{align}
&a_{1}<=a_{2}\rightleftharpoons a_{1}\curvearrowright \Box<=a_{2}\\
&r_{1}<=a_{2}\rightleftharpoons a_{2}\curvearrowright r_{1}<=\Box
\end{align}
\begingroup\vspace*{-\baselineskip}
\captionof{figure}{Regeln für $\underline{\,\,\,}<=\underline{\,\,\,}$ seqstrict}
\vspace*{\baselineskip}\endgroup

\begin{align}
a_{1}\,+\,a_{2}\,\rightleftharpoons\,a_{1}\,\curvearrowright\,\Box\,+\,a_{2}\\
a_{1}\,+\,a_{2}\,\rightleftharpoons\,a_{2}\,\curvearrowright\,a_{1}\,+\,\Box
\end{align}
\begingroup\vspace*{-\baselineskip}
\captionof{figure}{Regeln für $\underline{\,\,\,}+\underline{\,\,\,}$ strict}
\vspace*{\baselineskip}\endgroup

我没有看到任何错误。编译工作正常,即生成 PDF 文件,一切似乎都很好。但这些错误让我很困扰。我不知道我做错了什么。也许 align 环境与 capt-of 包不兼容,这可能会导致问题。但其他部分工作正常。除 4.5 和 4.7 之外的所有其他图都具有相同的结构,但没有错误。

大家帮帮我吧!

谢谢

答案1

该代码在最新的 LaTeX 内核(2019 年 5 月之后)上运行没有问题,因为几个命令已经变得更加强大。

我建议定义\blank代表\underline{\,\,\,}并使用适当的figure环境。

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{amsmath,amssymb}

\newcommand{\blank}{\underline{\mspace{9mu}}}

\begin{document}

\frontmatter

\listoffigures

\mainmatter

\begin{figure}[htp]
\setlength{\abovecaptionskip}{0pt}

\begin{align}
&a_{1}<=a_{2}\rightleftharpoons a_{1}\curvearrowright \Box<=a_{2}\\
&r_{1}<=a_{2}\rightleftharpoons a_{2}\curvearrowright r_{1}<=\Box
\end{align}
\caption{Regeln für $\blank <= \blank$ seqstrict}

\begin{align}
a_{1}\,+\,a_{2}\,\rightleftharpoons\,a_{1}\,\curvearrowright\,\Box\,+\,a_{2}\\
a_{1}\,+\,a_{2}\,\rightleftharpoons\,a_{2}\,\curvearrowright\,a_{1}\,+\,\Box
\end{align}
\caption{Regeln für $\blank + \blank$ strict}
\end{figure}

\end{document}

在此处输入图片描述

在此处输入图片描述

对于较旧的 LaTeX 内核,可以这样做

\newcommand{\blank}{\protect\underline{\mspace{9mu}}}

答案2

谢谢,解决方案很好用。在使用该\protect命令之前,我必须$从命令中删除 's \underline,然后仅将运算符(+<=)放入数学模式。

相关内容