Implication symbol

Looking at the "Comprehensive LaTeX Symbols List" (texdoc symbols will give it to you, or go to google), I see at least two possibilities: the stmaryrd package provides \shortarrow, and the MnSymbol package redefines \rightarrow to be shorter. The second one, in particular, provides a ton of new math symbols, no doubt overwriting everything already in existence, so you may want to be wary.


I think what you are looking for is \implies. This is longer than the width of the standard to, but you can use \scalebox from the graphicx package to re-size this to be the same width:

enter image description here

Alternatively, you can also scale the \to to be the width of the \land:

enter image description here

Note:

  • To make the \ScaledImplies have the same size and spacing as the \to, I scaled \Longrightarrow (which is what the \implies symbol from the amsmath package is based on with some additional spacing).

Further Enhancements:

  • I used the pgf package for the math calculations. There is most likely a way to do the same computation without this package so this code could be optimized to not require the pgf package.

Code:

\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{pgf}

\makeatletter
\newdimen\@widthOfTo%
\newdimen\@widthOfLand%
\newdimen\@widthOfImplies%
\settowidth{\@widthOfTo}{$\to$}%
\settowidth{\@widthOfLand}{$\land$}%
\settowidth{\@widthOfImplies}{$\Longrightarrow$}%
\pgfmathsetmacro{\@scaleFactorImplies}{\@widthOfTo/\@widthOfImplies}%
\pgfmathsetmacro{\@scaleFactorTo}{\@widthOfLand/\@widthOfTo}%
\newcommand*{\ScaledImplies}{\mathrel{\raisebox{0.3ex}{\scalebox{\@scaleFactorImplies}{\ensuremath{\Longrightarrow}}}}}%
\newcommand*{\ScaledTo}{\mathbin{\raisebox{0.3ex}{\scalebox{\@scaleFactorTo}{\ensuremath{\to}}}}}%
\makeatother

\begin{document}
  $a \to b$\par
  $a \ScaledImplies b$\par
  $a \implies b$\par

  \bigskip
  $a \land b$\par
  $a \ScaledTo b$\par
  $a \to b$\par
\end{document}

there is a "short" double up-arrow in the cm extension font that can be rotated for this purpose:

\documentclass{article}
\usepackage{graphicx}
\newcommand{\implyarrow}{%
  \mathrel{\raisebox{1.3ex}{\rotatebox[origin=c]{90}{\mathhexbox37F}}}}
\begin{document}
$a \implyarrow b \Rightarrow c$\\
$a \land b$
\end{document}

yielding

example of short up-arrow rotated to point to the right