我习惯于定义一些复杂且常用的数学表达式,以便于在论文中轻松使用它们。例如,我定义了
\def\c{{\mathbb{C}}}
($\mathbb{C}$
复数域)。
然而,有时公式和数学表达式会更复杂,涉及一个、两个或更多变量(或参数)。例如,考虑$Hom_{\mathbb{Z}} (M,N)$
涉及两个变量$M$
和的$N$
。
我的问题是“我如何定义这样的表达式,使其能够改变其中的变量。
答案1
这些不是“排版意义上的变量”。可以定义
\newcommand{\Hom}[3]{\operatorname{Hom}_{#1}(#2,#3)}
然后使用
\Hom{Z}{M}{N}
为了得到
坎是(米,否)
但这并没有比
\Hom_{Z}(M,N)
定义之后
\DeclareMathOperator{\Hom}{Hom}
实际上,我认为后一种形式是很多比第一个更具可读性。
注意。说话时要小心
\def\c{\mathbb{C}}
因为\c
是 LaTeX 中的“重音命令”(\c{c}
用于法语、阿尔巴尼亚语、土耳其语、葡萄牙语、加泰罗尼亚语和其他语言)。\newcommand
如果您真的知道自己在做什么,请始终使用 或\renewcommand
;但不要重新定义通用命令:如果您的参考书目项目之一包含“ç”,您会后悔重新定义\c
。
答案2
在序言中,使用
\DeclareMathOperator{command}{text}
定义数学运算符。例如,您可以使用
\DeclareMathOperator{\Hom}{Hom}
定义命令\Hom
,并将其用作$\Hom_Z(M,N)$
。与 进行比较$Hom_Z(M,N)$
。
现在,如果您想将模块作为变量插入,您可以定义一个新命令并像传递它们一样\frac{}{}
。
\newcommand{\myhom}[2]{\Hom_Z(#1,#2)}
因此,您可以全局格式化任何变量#1
,例如,只需格式化即可。