\underset 的内联样式变体

\underset 的内联样式变体

我需要指出排序运算符所指的关系\geq,因为有几种关系RQ等等。对于显示式数学,我使用\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}

在此处输入图片描述

相关内容