过去 4 个月我一直在处理一个无法解决的 Latex 错误。问题是,当我使用\include{filename}
主文件包含多个 .tex 文件并避免编写单个 .tex 文件时,许多交叉引用都显示为 ??。
我发现,我可以通过从通过 include{filename} 包含的(分支)文件中提取图形并将图形放入主 .tex 文件的主体中来解决这个问题。但是,这不是理想的解决方案!?? 通常出现在我的文档最后几个文件中的标签中。
我在下面附上了我的序言和文档的一般形式。我以为这是 revtex4.1 的问题,但当我切换到常规 latex 文档类时,它仍然存在。我在运行 Ubuntu 11.10 的 64 位机器上使用 kile 作为我的 TEX 编译器(是的,我很快会升级到 12.04)。我的 linux 内核是 3.0.0-32。
请帮忙!我很绝望
\usepackage{bm}
\usepackage{soul} % for highlighting
\usepackage{url}
\usepackage{varioref}
\usepackage{graphics}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{appendix}
\usepackage{color}
\usepackage{hyperref}
\usepackage{amssymb}
\usepackage{dcolumn}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\includeonly{file1,file2,...}
\begin{documnent}
\maketitle
\let\clearpage\relax
\include{file1}
\include{file2}
.
.
.
答案1
您所写的内容\let\clearpage\relax
让我怀疑您试图做的只是将源代码构建为几个分层文件,而不是使用“包含”机制。要做到这一点,只需使用\input
而不是\include
,您就应该没问题。该\input
命令甚至可以嵌套(\inlcude
不能),并将无条件加载您的文件。
像你所做的那样禁用\clearpage
不仅很危险(正如大卫礼貌地指出的那样),而且这是完全错误的,不仅会破坏“包含”机制,还会导致其他错误(具体取决于你的文档的内容)。
至于\inlcude
:它只能用于文档中开始和结束新页面的部分,例如整个章节,并且它只能在开发过程中有条件地处理文档的部分。您仍然需要偶尔运行整个文档以确保所有交叉引用都得到正确处理。但是如果您不想让\clearpage
“包含”机制发出错误,那么它绝对是错误的工具。