从另一个文件导入新命令

从另一个文件导入新命令

我已经导入了一些包并在我的 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}在主文档中使用补充文件作为主文件的一部分进行排版,而无需删除标题。

一般来说,应该避免积累大量的前言文件以供所有文档使用,因为它将包含许多大多数文档不需要的包,但这些包可能会相互干扰或与文档类干扰。

相关内容