我有多个文档(file1.tex
,file2.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}