\xRightarrow に否定矢印を作成するにはどうすればいいですか?

\xRightarrow に否定矢印を作成するにはどうすればいいですか?

に似ているこの質問、代わりに を\xRightarrow使用します。3 番目のバージョンを\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}

しかし、代わりに次のようになります:

再び矢を斬った

の定義に何か問題があると想定しています\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パッケージの定義に似た新しいマクロを追加します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\xLeftrightarrowmathtools

答え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}

ここに画像の説明を入力してください

関連情報