如何在包含在 LaTeX 之后没有分页符

我的 LaTeX 使我在每个分节后分页,因为我的分节是在单独的文件。我使用命令 \include{file},它在使用之后添加一个分页符。

我希望没有页面断裂造成的使用 \include{file}

使用 include命令后怎么可能没有分页符?

95965 次浏览

谢谢你,剑桥

使用 include 代替 input,并使用 include-only 命令选择要处理的部分

\include总是使用 \clearpage,这是一个不完全合理的默认值。它是为整个章节设计的,而不是为小节设计的(不管怎样,为什么要把小节放在单独的文件中呢?).

您可以通过使用 \input{filename}或加载 newclude包并编写 \include*{filename}来修复它。

你可以通过将 \let\clearpage\relax放在 \include之前来停止由 \include引起的分页,

\let\clearpage\relax
\include{file1}
\include{file2}
\include{file3}

将这三个文件(以及随后包含的任何文件)的内容放在一起,而不会在它们之间产生分页符。如果您想停止放松 \clearpage命令,那么将这些文件包装成不带分页符的包含在组中,如下所示:

\begingroup
\let\clearpage\relax
\include{file1}
\include{file2}
\endgroup
\include{file3}

这将停止 file1和 file2之间的分页符,但是在 file2之后插入正常的分页符。(注意: 我不知道这是否会影响引用和页码,不过我想应该没问题。)

Will Robertson 建议的 newude 包对于避免空白页非常有用。看起来,为了使 \includeonly工作,必须在 \documentclass{...}之后立即调用包。在我论文的复杂环境中,我也遇到了参考文献不完整的问题。

在最终版本不需要 include 的情况下,一个好的解决办法是只在草案中使用 include:

\newif\ifdraft\drafttrue

或者

\newif\ifdraft\draftfalse


\ifdraft
\include{...}
\fi


\ifdraft
\include{file}
\else
\input{file}
\fi

第一行可以通过 makefile 轻松地添加,以使草稿或生产版本生产成为目标。

\includeonly{file1,file2,...}允许指定用 \include{file1}调用的源文件列表(其中以 file1为例) ,该列表将显示在生成的文档中。其他的不会显示,但是当包含相应的 aux 文件时,会考虑计数器、标签和目录。

换句话说,通过使用 includeincludeonly,可以使草稿中的编译时间保持较短,同时具有正确的引用。 进一步阅读 维基百科

@ Will Robertson

\include非常有用,因为它允许通过 \includeonly{...}构建只需要的部分。当处理较长的文本时,只包含一个较长章节的一部分会在编译时间上产生很大的不同。这也是无价的有用的,因为一个人不必通过页面通过一个长的草稿,而工作在一个点。最后,更小的源代码文件在版本管理中更容易处理,例如 git。