基本上就是标题所说的。我觉得如果这是可能的,那么它可能已经众所周知了,但我没有通过搜索找到任何东西。我只想有一个可以存储所有新命令的地方,然后将单个文件加载到我制作的任何 TeX 文档中,这样我就不必不断地重新输入它们。这可能/容易做到吗?
答案1
例如,您可以创建一个文件mycommands.tex
。在那里,您可以像往常一样在 TeX/LaTeX 中编写自己的命令。
文件mycommands.tex
:
\newcommand ... % first own command
\newcommand ... % second own command
\endinput % to close this file
您可以\input{mycommands.tex}
在加载所有包后在序言中使用命令来包含您自己定义的命令。
你的main.tex
:
\documentclass{article}
\usepackage{hyperref}
\input{mycommands.tex}
\begin{document}
...
\end{document}
答案2
我在搜索时也没有找到这个确切问题的答案,所以我这样做了:我将所有命令放入一个名为的文件中preamble.tex
,该文件与主文件位于同一目录中。然后,我\input{preamble.tex}
从主文件调用。
例如,这里有一个preamble.tex
:
\newcommand{\eggs}{1}
\newcommand{\wine}{2}
\newcommand{\ziti}{3}
这是main.tex
在同一个目录中的:
\documentclass{article}
\input{preamble.tex}
\begin{document}
$\eggs + \wine = \ziti$.
\end{document}
如果你的序言变得足够长,你可以考虑把它变成一个包,这将在这个帖子。
答案3
我知道这听起来可能很奇怪,但在这种情况下,我建议保持简单并使用复制粘贴。您可以\input
创建一个文件或创建一个.sty
包,但这会产生额外的依赖关系,您必须保持同步并与文档一起分发。
无论您决定保留包含命令的文件的单个实例还是将其复制到多个目录中,在多个文档中跟踪它似乎都很复杂,而且我认为它与旧版本相比没有明显的好处ctrl-c,ctrl-v
(或者M-w,C-y
,如果 Emacs 是您的最爱)。例如,如果您对主命令列表进行了看似微不足道的更改,并且这破坏了旧文档,会发生什么?