如何将大小相同的符号叠放在一起?

如何将大小相同的符号叠放在一起?

我想将(任意)两个符号叠放在一起。\overset上面的符号较小。但是,我希望它们垂直居中且大小相同。该怎么做?显然,以下做法非常糟糕:

\documentclass{scrartcl}
\usepackage{amsmath}
\newcommand*{\ou}[2]{\overset{\text{\large ${#1}$}}{#2}}
\begin{document}
$a\ou{>}{<}0$ or $a\raisebox{-3pt}{\,$\ou{>}{<}$\,}0$ or $a\,{>\atop <}\,0$
\end{document}

\atop还不错,但是 a)我怎样才能使符号(垂直)彼此更接近,以及 b)如何将其定义为负责处理运算符周围间距的命令(\,)?

答案1

您要构建的符号已经可用,因此这只是对其他类似情况的提示。如果您想将符号彼此叠放在一起,而不是叠加符号相互重叠,要使用的工具是\ialign,但\ooalign不适用于后一种情况。

\documentclass{article}

\newcommand{\ou}{%
  \mathrel{%
    \vcenter{\offinterlineskip
      \ialign{##\cr$<$\cr\noalign{\kern-1.5pt}$>$\cr}%
    }%
  }%
}

\begin{document}
$a \ou b$
\end{document}

我用来\mathrel声明符号类型,\vcenter使整个构造相对于公式轴居中并且\ialign没有基线跳过,因此我可以使用来微调间距\noalign{\kern...}

可以进行改进\mathpalette,使符号适用于所有公式样式。

在此处输入图片描述

答案2

首先我要说的是,该amssymb软件包为您提供了您需要的符号\lessgtr(还有\grtless)。

<如果由于某种原因您需要通过堆叠和来构建符号,则>一种选择是使用\ooalign一些\raiseboxes;然后可以将整个构造作为参数传递以\mathrel获取与关系符号相关联的适当间距。

以下代码显示了您最初的尝试(第一行)、使用(第二行)和使用(第三行)\ooalign获得的符号之间的比较:\lessgtr

\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amssymb}

\newcommand*{\ou}[2]{\overset{\text{\large ${#1}$}}{#2}}

\newcommand\Ou{%
  \mathrel{{\ooalign{\hss\raisebox{-0.5ex}{$>$}\hss\cr\raisebox{0.5ex}{$<$}}}}
}

\begin{document}

$a\ou{>}{<}0$ or $a\raisebox{-3pt}{\,$\ou{>}{<}$\,}0$ or $a\,{>\atop <}\,0$

$a\Ou 0$

$a\lessgtr 0$

\end{document}

在此处输入图片描述

答案3

stackengine软件包为这些事物提供了现成的宏,提供了垂直放置和分离以及水平对齐的选项。

\documentclass{article}
\usepackage{stackengine}
\stackMath
\begin{document}
CENTERED STACK:

Specify gap:\def\stacktype{S} 
$x\mathbin{\stackanchor[0pt]{<}{>}}y\mathbin{\stackanchor[-1pt]{<}{>}}z$

Specify baselineskip:\def\stacktype{L} 
$x\mathbin{\stackanchor[6pt]{<}{>}}y\mathbin{\stackanchor[5pt]{<}{>}}z$\medskip

OVER STACK:

Specify gap:\def\stacktype{S} 
$x\mathbin{\stackon[0pt]{<}{>}}y\mathbin{\stackon[-1pt]{<}{>}}z$

Specify baselineskip:\def\stacktype{L} 
$x\mathbin{\stackon[6pt]{<}{>}}y\mathbin{\stackon[5pt]{<}{>}}z$\medskip

UNDER STACK:

Specify gap:\def\stacktype{S} 
$x\mathbin{\stackunder[0pt]{<}{>}}y\mathbin{\stackunder[-1pt]{<}{>}}z$

Specify baselineskip:\def\stacktype{L} 
$x\mathbin{\stackunder[6pt]{<}{>}}y\mathbin{\stackunder[5pt]{<}{>}}z$
\end{document}

在此处输入图片描述

相关内容