该文档编译良好。
\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
}
但是,正如评论中所建议的,如果您希望某些命令在整个文档中可见,则应将它们放入序言中。