扫描使用 \@new l@bel 时文件结束

扫描使用 \@new l@bel 时文件结束

我在使用 TeXShop 时遇到了这个奇怪的问题。每当我编译 LaTeX 并出现错误时,输出都会告诉我错误在哪里。所以我修复了它...并重新编译。但后来我得到了这个:

扫描使用 \@new l@bel 时文件结束

根据讨论这里,我可以通过删除辅助文件并重新编译来暂时解决这个问题。但这不是最佳情况,因为每次我犯了一个小错误,我都必须重新删除辅助文件,然后才能顺利进行编译。

通过移动我的\end{document}代码,我能够在我的文档中找到问题:

% [Other text up here...]
\vspace{10 pt}
\noindent \textbf{My Thoughts}: Well, that was interesting.

% This part is the problem!
\chapter{Multivariable Calculus}
\label{2chapter:2}

\textbf{General Idea}: This is the study of [...]
% [Other text down here...]

但我不知道为什么这个标签会给我带来问题。我\end{document}直接把它放在下面,试着犯一个随机错误(我把一个 $ 单独放了出来),然后删除它,结果标题中出现了错误。如果我把它放在\end{document}这个文本上面,重复把一个 $ 单独放的过程,我就可以删除它,并正常编译 LaTeX。

事实上,我也尝试过\end{document}在正常位置使用这个技巧。如果我将美元符号放在“多元微积分”行上方,它会按预期工作(即编译时出错,但在删除它后工作正常),但如果美元符号在该行下方,我会编译(出现错误),删除该符号后我会再次出现错误(文件在扫描时结束等)!

这是我看到此错误时创建的辅助文件的最后几行。我确信问题出在这里的标签上,或者出在分配给上一章(单变量微积分)的标签上。

\@writefile{toc}{\contentsline {chapter}{\numberline {12}Operating Systems}{29} {chapter.12}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{1chapter:12}{{12}{29}{Operating Systems\relax }{chapter.12}{}}
\@writefile{toc}{\contentsline {part}{II\hspace  {1em}Mathematics}{31}{part.2}}
\@writefile{toc}{\contentsline {chapter}{\numberline {13}Single Variable Calculus}{33}{chapter.13}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{2cha

但令人困惑的是,所有这些标签都非常相似。我正在写一本书,我已经将其格式化,因此会有很多章节,每个章节都会得到一个标签,其中标签名称是Xchapter:YX 表示“部分”编号(在本例中为 2,对应于“数学”),Y 表示该章节在该部分中的编号(此处 Y=2,因此多元微积分章节是其部分中的第二章)。我标记事物的方式有问题吗?

如果这有帮助,这里是序言的一部分(我的序言大约有 100 行长,但我注释掉了其中的大部分,而且似乎没有给我带来问题)。

\documentclass[10pt,notitlepage]{book}
\usepackage{amssymb,amsmath,graphicx,url,enumitem,tikz}
\usepackage{exercise}
\usepackage{hyperref} 
\usepackage{makeidx}
\usepackage[bottom]{footmisc}
\usetikzlibrary{arrows}
\usepackage[left=1in,top=1in,right=1in,bottom=1in]{geometry}

\makeindex

\makeatletter
\newcommand*{\toccontents}{\@starttoc{toc}}
\makeatother

如果您还需要了解其他内容,请告诉我。我是新来的,不确定多少信息才算太多,而且这篇文章已经够长了。

更新

好的,我已经设法大幅精简了文档。如果您复制并粘贴以下文本,并尝试在多元微积分文本之前和之后创建随机错误,您应该会看到一些“文件在扫描时结束...”

\documentclass[10pt,notitlepage]{book}
\usepackage{amssymb,amsmath,graphicx,url,enumitem,tikz}
\usepackage{exercise}
\usepackage{hyperref} 
\usepackage{makeidx}
\usepackage[bottom]{footmisc}
\usetikzlibrary{arrows}
\usepackage[left=1in,top=1in,right=1in,bottom=1in]{geometry}

\makeindex

\makeatletter
\newcommand*{\toccontents}{\@starttoc{toc}}
\makeatother

\title{Important Stuff}
\author{Your name here}

\begin{document}
\maketitle
\newpage
\vspace*{2 cm}
\textbf{\huge{Contents}}
\vspace{2 cm}
\toccontents

\newpage
\section{Introduction}

\part{Computer Science}
\label{part:1}

\chapter{Introduction to Computer Science}
\label{1chapter:1}

\chapter{Data Structures and Advanced Programming}
\label{1chapter:2}

\chapter{Computer Organization}
\label{1chapter:3}

\chapter{Algorithm Design and Analysis}
\label{1chapter:4}

\chapter{Principles of Programming Languages}
\label{1chapter:5}

\chapter{Computer Graphics}
\label{1chapter:6}

\chapter{Theory of Computation}
\label{1chapter:7}

\chapter{Machine Learning}
\label{1chapter:8}

\chapter{Artificial Intelligence}
\label{1chapter:9}

\chapter{Compiler Design}
\label{1chapter:10}

\chapter{Distributed Systems}
\label{1chapter:11}

\chapter{Operating Systems}
\label{1chapter:12}


\part{Mathematics}

\chapter{Single Variable Calculus}
\label{2chapter:1}

\chapter{Multivariable Calculus}
\label{2chapter:2}

\chapter{Linear Algebra}
\label{2chapter:3}

\clearpage
\addcontentsline{toc}{chapter}{Index}
\printindex

\end{document}

相关内容