两个文件中的相同序言导致 pdflatex 仅在一个文件中崩溃

两个文件中的相同序言导致 pdflatex 仅在一个文件中崩溃

我正在编译两个不同的文件完全相同的序言。重要的是,我正在一起使用scrbookclassicthesis(也classicthesis-preamble加载了)但是当我编译时发生了两件不同的事情。

小提示:我使用的是 Fedora 15 SO,原始 TeXLive 安装来自 tug.org。要进行编译,我使用“TeXWorks”或pdflatex终端命令。

File1 编译得很好,没有任何问题。

然而,file2 卡住了,输出如下内容:

Class scrbook Warning: \float@addtolists detected!
(scrbook)              You should use the features of package `tocbasic'
(scrbook)              instead of \float@addtolists.
(scrbook)              Support for \float@addtolists may be removed from
(scrbook)              `scrbook' soon .

file1 也抛出了相同的输出(我后来通过从终端编译意识到了这一点),但 file1 并没有停留在那里,而是继续生成 PDF。

两个文件中的序言都是由file0.tex我编写的以保持两个文件清洁的程序加载的,因此我确信序言是相同的。

我在网上找到了(感谢谷歌!)一个可以解决这个问题的包,但它似乎不起作用:它被称为scrhack

第一次编辑:我创建了另一个主文件,并只添加了我编写的自定义标题。一切正常,所以我的自定义标题不是问题。我添加了带有\chapter{Foo}和的随机文本\section{Bar}。仍然没有问题。

所以我添加了一个文件\input{file2.1}。这最初也添加到了 file2 中。此时,编译冻结,没有说明原因...

由于我无法理解这个错误,也无法在 file2.1 的源代码中找到错误,所以我做了一个粘贴箱让你明白。

第二次编辑:我缩小了问题的范围,但问题依然存在,因为我更新了\vec命令。这是一个 MWE,它使我的编译器冻结,没有给出任何反馈、回溯或错误消息。

\documentclass{scrbook}
\usepackage[italian]{babel}
\usepackage{classicthesis}
\usepackage{classicthesis-preamble}
\usepackage{amsmath}

\renewcommand{\vec}[1]{\vec{\textbf{#1}}} % vettori
\begin{document}
Let $\vec{F}$ be the force vector...
\end{document}

虽然我已经找到问题所在,但我不知道为什么会发生这种情况......

答案1

我真的希望有另一种方法来结束问题,而不是重复评论。毕竟我什么也没做,是原贴作者把问题归结为一个最小的例子。但情况是这样的:

好吧,你写了一个非常精致的递归定义,它让 tex 陷入无限循环,试图执行\vec。参见https://texfaq.org/FAQ-patch寻找更好的方法来修补命令。

相关内容