从单独的文件创建复杂文档

从单独的文件创建复杂文档

我有多个文档(file1.texfile2.tex等)和一个主文件(我们称之为main.tex)。

我想建立一个包含所有file_i.tex文件的复杂文档。我尝试了这个(根据一些在线指南):

\documentstyle{report}
...
\begin{document}
\input{file1}
\input{file2}
...
\end{document}

我也尝试了 include 命令,但一直收到“LaTeX 错误:只能在序言中使用”。我做错了什么?

附加问题:我的所有文件中都有这样的标题结构:

文件1:

1. Heading1
 1.1. Subheading1
 1.2. Subheading2
etc

文件2:

1. Heading2
 1.1. Subheading1
 1.2. Subheading2
etc

当我按照如下所述构建文档时。我希望我的标题像这样更新:

1. Heading1
 1.1. Subheading1
 ...
2. Heading2
 2.1. Subheading2
 ...

然后生成索引。有没有简单的方法可以在 LaTeX 中做到这一点(我相信有,当它被设计成这样做的时候,但我似乎无法找出正确的命令/结构)。

答案1

如果你input有一个文件,那么另一个文件不能包含序言或其他页眉/页脚材料,因为它将被包含在内,逐字在...的点上\input

因此,您应该删除file_i文档的 TeX 页眉和页脚,只保留内容本身。

答案2

你实际上\input在完整的可编译 LaTeX 文件(带有前言)上使用,如果您使用包裹standalone在主文档中。本网站上有许多示例,但下面我使用了包裹filecontents制作一个独立的例子来展示如何使用它。

回答你的另一个问题,假设你指的是目录而不是索引,你可以通过\tableofcontents在主文档中包含来实现这一点。如果你还想在目录中包含超链接,你还需要包含包裹hyperref

下面的代码产生了带有可点击链接的所需结构:

在此处输入图片描述

笔记:

  • 这确实需要运行两次。第一次生成包含所需信息的文件\tableofcontents,第二次实际生成目录。

代码:

\documentclass{report}
\usepackage{standalone}
\usepackage{hyperref}

%\usepackage{filecontents}%
\begin{filecontents*}{file1.tex}
    \documentclass{report}
    \begin{document}
    \chapter{Heading1}
        \section{Subheading1}
        \section{Subheading2}
    \end{document}
\end{filecontents*}

\begin{filecontents*}{file2.tex}
    \documentclass{report}
    \begin{document}
    \chapter{Heading2}
        \section{Subheading1}
        \section{Subheading2}
    \end{document}
\end{filecontents*}


\begin{document}
    \tableofcontents
    \input{file1}
    \input{file2}
\end{document}

答案3

作为nneonneo前面已经说过,包含文件中不需要前言。如果您想在两个或更多级别上使用inputinclude命令来实现更复杂的文档结构,您还可以考虑使用import包(加拿大运输安全局)使用相对路径

  • \import{〈full_path〉}{〈file〉}
  • \subimport{〈path_extension〉}{〈file〉}
  • \includefrom{〈full_path〉}{〈file〉}
  • \subincludefrom{〈path_extension〉}{〈file〉}

相关内容