使用 include t命令包含多个文件时出现交叉引用问题

使用 include t命令包含多个文件时出现交叉引用问题

过去 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“包含”机制发出错误,那么它绝对是错误的工具。

相关内容