我正在定义一个新的数学运算符,我发现我可以使用 4 个不同的命令来定义它:
\DeclareMathOperator
(包裹amsmath
)\operatorname
(包裹amsmath
)\DeclareMathOperator*
(包裹amsmath
)\mathop
(TeX 命令)
它们之间的格式有什么区别?
答案1
通过下面的 MWE,我们看到主要区别如下:
- 操作员的字体发生变化:所有命令都写入直立运算符,但
\mathop
要写成倾斜的。 - 在显示模式
\DeclareMathOperator*
和将\mathop
下标和上标分别设置在运算符的正下方和正上方,而其他运算符则将它们向右移动。 - 操作员站在基线对于所有命令,但对于
\mathop
那里,它会沉入其下方(在内联和显示模式下)
参见下面的图片和代码:
\documentclass{article}
\usepackage{amsmath}
%All operators are declared as commands
\DeclareMathOperator{\Ti}{T}
\newcommand{\Tii}{\operatorname{T}}
\DeclareMathOperator*{\Tiii}{T}
\newcommand{\Tiv}{\mathop{T}}
\begin{document}
%DeclareMathOperator
\verb|\DeclareMathOperator|\\
Inline:
\(x \Ti^a_b y\)
\\
Display:
\[x \Ti^a_b y\]
%Operatorname
\verb|\operatorname|\\
Inline:
\(x \Tii^a_b y\)
\\
Display:
\[x \Tii^a_b y\]
%DeclareMathOperator*
\verb|\DeclareMathOperator*|\\
Inline:
\(x \Tiii^a_b y\)
\\
Display:
\[x \Tiii^a_b y\]
%Mathop
\verb|\mathop|\\
Inline:
\(x \Tiv^a_b y\)
\\
Display:
\[x \Tiv^a_b y\]
\end{document}