我正在编译两个不同的文件完全相同的序言。重要的是,我正在一起使用scrbook
和classicthesis
(也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寻找更好的方法来修补命令。