我有几个文件,最初打算将它们作为独立文档。但现在我希望将它们编译成一个文档。问题是每个文件都有自己特定的包、标题等,\include
对于这样的文档来说,方法并不那么简单。(我必须在主文件中包含相同的包列表,并在子文档中将它们全部注释掉,这是一个漫长的手动过程。)
除了外部合并 PDF 之外,将它们全部编译在一起的最佳方法是什么?
答案1
我一直将此{standalone}
包用于此目的。主要文件应使用:
\documentclass[preview=false]{standalone}
或者在前言的开头附近加载standalone
包。子文件所需的完整前言应由主文档加载。
在下面的示例中,我使用了filecontents
包只是为了能够将子文件包装成一个代码示例。因此,subfile.tex
这里的文件是一个子文件,在本例中它由一个图形组成tikz
。此文件可以单独编译。主文件正在加载:
\usepackage{standalone}
\usepackage{tikz}
然后只需用来\input{subfile}
导入子文件即可。
代码:
\documentclass{article}
\usepackage{standalone}
\usepackage{tikz}
\usepackage{filecontents}
\begin{filecontents}{subfile.tex}
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (EllipseOrigin) at (0,0);
\newcommand*{\XRadius}{4.0}
\newcommand*{\YRadius}{3.0}
\draw [blue, thin, ->] (-5,0) -- (5,0) node [right] {$x$};
\draw [blue, thin, ->] (0,-4) -- (0,4) node [above] {$y$};
\draw [red, ultra thick]% Graph Ellipse
(EllipseOrigin) ellipse [x radius=\XRadius,y radius=\YRadius];
\end{tikzpicture}
\end{document}
\end{filecontents}
\begin{document}
\input{subfile}
\end{document}
独立类还有subpreambles
包选项,允许您使用子文件的前言。因此,如果您无法在主文件中为所有子文件设置一个前言,那么这可能是一个有用的选项。
还有包裹combine
,它还允许您将多个单独的文档合并为一个文档。
答案2
除了相关问题之外,subfiles
包裹提供了类似的功能。从软件包 README 中:
使用
subfiles
用户可以更舒适地处理多文件项目,从而既可以单独处理附属文件,也可以处理包含它们的主文件,而无需对任何一个进行任何更改。