拆分序言

拆分序言

处理大型文档时,尤其是处理许多列表、图形、数字和包含内容时,我经常会想出一个大致如下的结构。

\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}

这使您可以独立编译所有部分。

相关内容