如何堆叠 \Rightarrow 和 \nLeftarrow?

如何堆叠 \Rightarrow 和 \nLeftarrow?

我想指定一个结合“暗示”和“不暗示”的运算符。我脑海中浮现的是类似于 $\Rightarrow$ 堆叠在 $\nLeftarrow$ 上的东西。我尝试了以下所有方法,但生成的排版表达式看起来都是错误的:

P \overset{\Rightarrow}{\nLeftarrow} Q              % \Rightarrow is too high
P \underset{\nLeftarrow}{\Rightarrow} Q             % \nLeftarrow is too low
P \overset{\Rightarrow}{\underset{\nLeftarrow}{}} Q % \Rightarrow is too high and \nLeftarrow is too low

基本上,在上述每一个中,一个或两个箭头操作符的垂直定位都是关闭的,如评论中更具体地描述的那样。

我想要的是两个箭头的堆叠,其中顶部的箭头轻微地中线上方和下方是轻微地低于中线。

答案1

获得两支相互叠合的箭头的相当通用的方法。

\documentclass{article}
\usepackage{amsmath,amssymb}

\makeatletter
\newcommand{\twoarrows}[3][0.2ex]{%
  % #1 = optional space correction, #2 = above, #3 = below
  \mathrel{\mathpalette\twoarrows@{{#1}{#2}{#3}}}%
}
\newcommand{\twoarrows@}[2]{\twoarrows@@#1#2}
\newcommand{\twoarrows@@}[4]{%
  % #1 = style, #2 = optional space correction, #3 = above, #4 = below
  \vcenter{\offinterlineskip\m@th
    \ialign{\hfil##\hfil\cr
      $#1#3$\cr
      \noalign{\vskip#2}
      $#1#4$\cr
    }%
  }%
}
\makeatother

\begin{document}

\[
P \twoarrows[0.4ex]{\Rightarrow}{\nLeftarrow} Q
\]

\[
P \twoarrows[0.5ex]{\,\Rightarrow}{\nLeftarrow\,} Q
\]

\[
P \twoarrows{\rightarrow}{\nleftarrow} Q
\]

\end{document}

我提供了“垂直校正”,因为两个箭头的边界框可能会妨碍视线。在中间的显示屏上,我展示了对顶部光学效果的可能校正。

在此处输入图片描述

你能在 MathJax 中实现这一点吗?我对此表示怀疑。

对于最后一个,最好使用old-arrows以下方式加载:

\usepackage[old]{old-arrows}

如果你输入最后一个显示为

P \twoarrows{\rightarrow}{\nleftarrow} Q

你得到

在此处输入图片描述

相关内容