我应该在哪里全局定义新命令?

我应该在哪里全局定义新命令?

我想\alert{}通过以下方式定义命令

\newcommand{\alert}[1]{\textcolor{red}{#1}}

这样我就可以在每个新文件上使用它。

我原本想在某个cls文件上定义它(amsart例如)。但如果我使用reportclass 创建新文件,则新命令将不起作用。

是否有一些内部文件,我可以在里面定义我的命令作为默认的 LaTeX 命令。例如,使用任何类我们都可以使用一些命令(\textrm{}例如)。所以我猜想有一些文件需要全局加载。

答案1

可以添加“全局”命令。但 TeX 系统的优势之一是可移植性:如果两台机器上有相同的 TeX 发行版,则相同的文件将在两台机器上编译,并产生相同的结果。

在你的情况下,在另一台机器上编译文档时会出现

! Undefined control sequence

错误。

最安全的方法是有一个文件,比如sigur.sty包含以下行

\ProvidesPackage{sigur}[2012/01/10 Local macros by Sigur]

\RequirePackage{color}
\newcommand{\alert}[1]{\textcolor{red}{#1}}

可能还有其他你认为有用的定义,并将其保存在“本地树”中,就像

/usr/local/texlive/texmf-local/tex/latex/sigur/sigur.sty

并做

sudo mktexlsr

在那次手术之后。

你的机器上的任何用户都可以说

\usepackage{sigur}

在他们的文档中。当您使用它分发文档时,不要忘记附上文件。

另外,不要忘记记录你的宏。

相关内容