处理大型文档时,尤其是处理许多列表、图形、数字和包含内容时,我经常会想出一个大致如下的结构。
\documentclass{beamer}
[preamble for part 1]
[preamble for part 2]
[preamble for part 3]
....
\begin{document}
[part 1 body]
[part 2 body]
[part 3 body]
...
\end{document}
通常的做法是将身体部位导出到单个文件,然后将\include
它们导出。
该subfiles
软件包提供了一种更舒适的方法,可以独立编译各部分,重用主文件的前言。但subfiles
会丢弃子文件的前言。为了能够模块化前言和正文,必须将每个正文部分导出到子文件,part1.tex
并将每个前言部分导出到相应的软件包。然后使用和part1.sty
将文档拼接在一起。\include
\usepackage
理想情况下,各部分的序言和正文应放在一起。编译单独的 PDF 然后进行连接\includepdf
有点接近于此,但很难使用,尤其是beamer
当整个文档应以讲义模式或带注释制作时。处理覆盖或提供正确的目录甚至更加麻烦。
我真正想要构建的文档是按照这样的思路。
%main.tex
\documentclass{beamer}
\include{part1}
\include{part2}
....
%part1.tex
\documentclass{beamer}
[part 1 preamble]
\begin{document}
[part 1 body]
\end{document}
%part2.tex
\documentclass{beamer}
[part 2 preamble]
\begin{document}
[part 2 body]
\end{document}
这个方案能实现吗?能不能实现,然后独立编译各个部分?
答案1
检查包裹docmute
。只要主文件的前导码包含所有其他前导码,它就接近你想要的了
main.tex
\documentclass{beamer}
\input{fullpreamble}
\usepackage{docmute}
\begin{document}
\input{doc1.tex}
\input{doc2.tex}
\end{document}
doc1.tex
\documentclass{beamer}
\input{fullpreamble}
\begin{document}
body1
\end{document}
doc2.tex
\documentclass{beamer}
\input{fullpreamble}
\begin{document}
body2
\end{document}
这使您可以独立编译所有部分。