我需要指出排序运算符所指的关系\geq
,因为有几种关系R
,Q
等等。对于显示式数学,我使用\underset
宏将关系符号放在运算符下方。实际上,我定义了一个像这样的新宏
% Extended >= operator
\newcommand{\extgeq}[1]{\underset{#1}{\geq}}
% Some short-cuts for frequently used relations in my text
\newcommand{\Rgeq}{\extgeq{R}}
\newcommand{\Qgeq}{\extgeq{Q}}
\newcommand{\Sgeq}{\extgeq{S}}
我认为它的工作原理和使用方法已经很清楚了。
对于显示样式的数学,这种方法是可以的,但我还需要在简短的内联样式数学片段中使用它,例如Assume $a \Rgeq b$ holds and ...
。在这些情况下,行距被破坏,因为关系符号放在运算符下方。但是,我更喜欢在运算符右侧使用下标,并且具有与求和样式运算符相同的自动行为。此外,结果(运算符 > 加关系符号)仍应被视为二元运算符,而不是普通的数学名词,这样周围的间距才是正确的。
因此问题是:
- 如何改进定义,
\extgeq
以区分显示和内联数学模式 - 如何确保组合符号的内联版本仍然被视为二元运算符?(
\geq_{R}
似乎被视为名词。)
答案1
一个很好的例子\mathchoice
(见什么是 \mathchoice?)
\documentclass[twocolumn]{article} % twocolumn just to reduce size
\usepackage{amsmath}
\DeclareRobustCommand{\extgeq}[1]{%
\mathrel{\mathchoice
{\underset{#1}{\geq}}
{\geq^{}_{#1}}
{\geq^{}_{#1}}
{\geq^{}_{#1}}
}}
\newcommand{\Rgeq}{\extgeq{R}}
\newcommand{\Qgeq}{\extgeq{Q}}
\newcommand{\Sgeq}{\extgeq{S}}
\begin{document}
\[
a\Rgeq b
\]
$a\Rgeq b$
\end{document}