[Tex/LaTex] The line produced by \not looks bad on wider symbols

math-modesymbols

When using \not together with wider symbols such as \Leftrightarrow the diagonal line produced by \not is placed too far to the left. How can the line be properly aligned?

For example the following code

\documentclass{article}

\begin{document}

\(\not\subset\)% Looks good

\(\not\approx\)% Looks good

\(\not\leftrightarrow\)% \not line is too far to the left

\(\not\Leftrightarrow\)% \not line is too far to the left

\end{document}

produces the following output where the last two symbols has got a misaligned diagonal line

Aligned and not aligned examples of \not

Also, maybe the lines may need other changes than alignment to look good.

Best Answer

The \not symbol typesets a zero width character which protrudes on the right and so it is apt to be superimposed only on certain characters having a suitable width (the equal sign, for example); since the two arrows are wider than the equal sign, the alignment is not optimal. A solution is to push the \not a bit on the right and backspacing for the same amount:

\newcommand\nleftrightarrow{
  \mathrel{\mkern2.1mu\not\mkern-2.1mu\leftrightarrow}}
\newcommand\nLeftrightarrow{
  \mathrel{\mkern2.1mu\not\mkern-2.1mu\Leftrightarrow}}

You might also consider the set of "negated arrows" provided by amssymb; the names are the same that I chose:

\usepackage{amssymb}

$X\nleftrightarrow Y$ and $X\nLeftrightarrow Y$

Try both and choose what suits your taste. If you already load amssymb use \renewcommand instead of \newcommand.

enter image description here

One can also define a \xnot command that gives to the symbol the width of the equal sign and use a standard method for superimposing symbols:

\newcommand\xnot{\mathpalette\xxnot}
\newcommand*\xxnot[2]{\mathrel{\ooalign{%
  \hfil$#1\not\mathrel{\hphantom=}$\hfil\cr\hfil$#1#2$\hfil\cr}}}

Now \xnot\leftrightarrow gives the same result as the "definition by hand" before. The strange \mathrel after \not has its explanation in the fact that TeX never adds space between two relation math atoms. Thanks to Martin for having suggested this method. The centernot package does something similar.