如何在数学模式下定义(用户定义的)函数?

如何在数学模式下定义(用户定义的)函数?

我习惯于定义一些复杂且常用的数学表达式,以便于在论文中轻松使用它们。例如,我定义了 \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,例如,只需格式化即可。

相关内容