制作一系列子 TeX 文件并将它们作为“章节”包含在父文件中?

制作一系列子 TeX 文件并将它们作为“章节”包含在父文件中?

我想构建一个包含多个 TeX 文件的大型 PDF,这些文件都具有相同的序言。它们将具有\newcommand\renewcommand以及和\usepackage\documentclass因为每个文件都应该是独立的并编译为较小的 PDF。但是,我想把我们拥有的所有文件放在一个主文档中。我看过其他问题:

以及独立包。我不确定我是否能用它们做我想做的事情。

每个子文档都需要独立存在,有自己的序言、目录等。但它们应该包含在一个主文档中,主文档有一个忽略/复制所有序言的全局目录。


下面是其中一个子文件的示例代码。

\documentclass[11pt]{article}
\usepackage{amsmath, amsfonts,amssymb,latexsym, multirow}
\usepackage{fullpage, graphicx, subfig, float, hyperref, enumerate}
\usepackage[parfill]{parskip}
\usepackage{pdflscape}%for large figures
\usepackage{cancel}

\linespread{1.3}

\hypersetup{backref,  
    pdfpagemode=FullScreen,  
    colorlinks=true}

\renewcommand{\dag}{^\dagger}
\renewcommand{\d}{\text{d}}
\newcommand{\D}{\text{D}}
\newcommand{\bra}{\langle}
\newcommand{\ket}{\rangle}

\newcommand{\comment}[1]{}

\newcommand{\p}{\partial}
\newcommand{\eq}[1]{\begin{align*}#1\end{align*}}

\begin{document}

\noindent \fbox{
\begin{minipage}{6.4in}
  \medskip
  \textbf{Book} \hfill \textbf{Author}
  \begin{center}
    {\Large Chapter \#} \\[3mm]
  \end{center}
\today \hfill Subauthor
\medskip
\end{minipage}
}

\bigskip
\tableofcontents
\newpage
\section{}
\subsection{}
\end{document}

答案1

有一些软件包可以做这种组合,但如果你担心命令重新定义会产生未知的伪影,你可以简单地使用

\ifx\p\undefined
\documentclass[11pt]{article}

。 。 。

\fi
\begin{document}

然后,当单独处理该文档时,它将正常工作,但在已经加载了这些定义的较大文档中(特别是\p定义,您可以使用

{\def\document{}\def\enddocument{}\input{file-1}}

与包含问题无关,但框内标题比页面大:

Overfull \hbox (36.87251pt too wide) in paragraph at lines 29--40

答案2

子文件包正是您正在寻找的。有一个很棒的Overleaf 上的文档即使有实例。主文档包含以下子文件:

\documentclass{book}
\usepackage{subfiles}
% global preamble
\begin{document}
\subfile{childA}
\subfile{childB}
\subfile{childC}
\end{document}

子文件可以单独编译,甚至有自己的序言。

\documentclass[main.tex]{subfiles}
% individual preamble
\begin{document}
content
\end{document}

还支持文件之间的交叉引用。

相关内容