如何在 \xRightarrow 上建立否定箭頭?

如何在 \xRightarrow 上建立否定箭頭?

如同這個問題,但用\xRightarrow代替。我嘗試更改第三個版本,如下\Rightarrow所示:

\documentclass{standalone}

\usepackage{amsmath}
\usepackage{amssymb} % for \diagup
\usepackage{mathtools}
\usepackage{tikz} % for tikz solution

\makeatletter
\def\slashedarrowfill@#1#2#3#4#5{%
  $\m@th\thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip
   \relax#5#1\mkern-7mu%
   \cleaders\hbox{$#5\mkern-2mu#2\mkern-2mu$}\hfill
   \mathclap{#3}\mathclap{#2}%
   \cleaders\hbox{$#5\mkern-2mu#2\mkern-2mu$}\hfill
   \mkern-7mu#4$%
}

\def\rightslashedarrowfillc@{%
  \slashedarrowfill@\relbar\relbar{\raisebox{.12em}{\tiny/}}\Rightarrow}
\newcommand\xslashedrightarrowc[2][]{%
  \ext@arrow 0055{\rightslashedarrowfillc@}{#1}{#2}}
\makeatother

\begin{document}
    A \xslashedrightarrowc{abcdefg} C\\[12pt]
\end{document}

但我最終得到的是這個:

再次砍箭

我假設 def 有問題,\slashedarrowfill但我不知道如何修復它。有人可以指出我正確的方向嗎?

答案1

Heiko Oberdiek 的centernot軟體包對此很有用:

在此輸入影像描述

\documentclass{standalone}

\usepackage{centernot}
\usepackage{mathtools}

\begin{document}
$\centernot{\xRightarrow{sdfkjhsdf}}$
\end{document}

答案2

以下測試檔案新增了\x(n)(Left|Right|Leftright)arrow與 package 的定義類似的新巨集amsmath。否定箭頭使用幫助宏\narrowfill@,其符號\neq位於箭頭可拉伸區域的中間。

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand*{\xRightarrow}[2][]{%
  \ext@arrow 0359\Rightarrowfill@{#1}{#2}%
}
\newcommand*{\xLeftarrow}[2][]{%
  \ext@arrow 3095\Leftarrowfill@{#1}{#2}%
}
\newcommand*{\xLeftrightarrow}[2][]{%
  \ext@arrow 3399\Leftrightarrowfill@{#1}{#2}%
}

\newcommand*{\xnRightarrow}[2][]{%
  \ext@arrow 0359\nRightarrowfill@{#1}{#2}%
}
\newcommand*{\xnLeftarrow}[2][]{%
  \ext@arrow 3095\nLeftarrowfill@{#1}{#2}%
}
\newcommand*{\xnLeftrightarrow}[2][]{%
  \ext@arrow 3399\nLeftrightarrowfill@{#1}{#2}%
}

\newcommand*{\nRightarrowfill@}{%
  \narrowfill@\Relbar\Relbar\Rightarrow\neq
}
\newcommand*{\nLeftarrowfill@}{%
  \narrowfill@\Leftarrow\Relbar\Relbar\neq
}
\newcommand*{\nLeftrightarrowfill@}{%
  \narrowfill@\Leftarrow\Relbar\Rightarrow\neq
}

\newcommand*{\narrowfill@}[5]{%
  $\m@th\thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip
  \relax#5#1\mkern-7mu%
  \cleaders\hbox{$#5\mkern-2mu#2\mkern-2mu$}\hfill
  \mkern-5mu %
  #4%
  \mkern-5mu %
  \cleaders\hbox{$#5\mkern-2mu#2\mkern-2mu$}\hfill
  \mkern-7mu#3$%
}
\makeatother

\begin{document}
\begin{align*}
  A &\xRightarrow[below]{above} B      & C &\xRightarrow{} D \\
  A &\xnRightarrow[below]{above} B     & C &\xnRightarrow{} D \\
  A &\xLeftarrow[below]{above} B       & C &\xLeftarrow{} D \\
  A &\xnLeftarrow[below]{above} B      & C &\xnLeftarrow{} D \\
  A &\xLeftrightarrow[below]{above} B  & C &\xLeftrightarrow{} D \\
  A &\xnLeftrightarrow[below]{above} B & C &\xnLeftrightarrow{} D
\end{align*}
\end{document}

結果

評論:

  • \neq自動考慮 的高度和深度,並移動上標和下標以避免與斜線衝突。
  • 如果mathtools需要包,請稍後加載。它也定義了\xLeftarrow\xRightarrow\xLeftrightarrow,但恕我直言, 的版本間距mathtools太緊,註釋與箭頭可能會發生視覺衝突。

答案3

前一個解決方案有些問題,因為您必須手動設定\kern length.
我更願意定義一個簡單的宏,\NOT如下列程式碼所示:

\documentclass{standalone}
\usepackage{amsmath,amssymb}
\usepackage{mathtools}

\newlength{\NOTskip} 
\def\NOT#1{\settowidth{\NOTskip}{\ensuremath{#1}}%
            \hspace{0.5\NOTskip}\mathclap{\not}\hspace{-0.5\NOTskip}#1}

\begin{document}
\begin{equation*}
 A \NOT{\xRightarrow{bla}} C \NOT{\xleftarrow[\text{et caetera}]{}} Z
\end{equation*}
\end{document}

生產 在此輸入影像描述

答案4

編輯:我會嘗試這樣的事情:

\kern.8em\not\kern -.8em \xRightarrow[ablalba]{}

這裡有一個例子:

\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[ \kern.8em\not\kern -.8em \xRightarrow[Text goes here]{and here} \]
\end{document}

在此輸入影像描述

相關內容