我想构建一个包含多个 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}
还支持文件之间的交叉引用。