我已经导入了一些包并在我的 main.tex 文件中定义了一些 \newcommand。
我如何将所有包和 \newcommand 导入到另一个单独的文件中,从而生成不同的 pdf 文档(比如补充信息)?
谢谢你马可
答案1
解决方案 1:简单\input
将序言放入文件中,并在需要相同定义的地方mypreamble.tex
加载它。\input
% mypreamble.tex
\documentclass{article}
\usepackage{graphicx}
\newcommand\mypersonalcommand{...}
% main.tex
\input{mypreamble}
\begin{document}
...
\end{document}
% supplementary.tex
\input{mypreamble}
\begin{document}
...
\end{document}
解决方案 2:subfiles
封装\usepackage{subfiles}
在序言末尾添加该行main.tex
,并以 开始补充文件\documentclass[main]{subfiles}
。
% main.tex
\documentclass{article}
\usepackage{graphicx}
\newcommand\mypersonalcommand{...}
\usepackage{subfiles}
\begin{document}
...
\end{document}
% supplementary.tex
\documentclass[main]{subfiles} % main refers to main.tex
\begin{document}
...
\end{document}
解决方案 1 的优点是简单:不需要额外的包,只需要基本的 (La)TeX 功能。
解决方案 2 的优点是,即使supplementary.tex
位于另一个目录中(只需添加主路径,例如\documentclass[../main]{subfiles}
),它也能正常工作,并且前言也会加载文件。此外,您可以\subfile{supplementary}
在主文档中使用补充文件作为主文件的一部分进行排版,而无需删除标题。
一般来说,应该避免积累大量的前言文件以供所有文档使用,因为它将包含许多大多数文档不需要的包,但这些包可能会相互干扰或与文档类干扰。