在文档正文中使用 \newcommand 可以吗?

在文档正文中使用 \newcommand 可以吗?

该文档编译良好。

\documentclass{article}
\begin{document}

\newcommand{\foo}{bar}
\foo

\end{document}

但是,这感觉不对或不道德。有什么具体原因导致\newcommand在文档主体内定义宏是一种不好的做法吗?

答案1

是的,没问题。我这样做了,而且很有效。

在我的用例中,我从生成的较小样本中创建了一个大型文档(一篇博士论文)。然后,我为每个样本定义某些参数(为了灵活性和统一性)。我将所有这些括在括号中,如上所述,这样这些命令在所需范围之外是不可见的。

{
\section{Li and He}
\newcommand{\tables}{accuracy/Li}  % path to tables
\newcommand{\ET}{Li}  % event_type shortcut
\input{accuracy/Li_section.tex}

\section{Accidentals}
\renewcommand{\tables}{accuracy/acc}
\renewcommand{\ET}{acc}
\input{accuracy/acc_section.tex}

% add other sections and commands if needed

% new commands are invisible outside of this scope
}

但是,正如评论中所建议的,如果您希望某些命令在整个文档中可见,则应将它们放入序言中。

相关内容