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:
Alternatively, you can also scale the \to
to be the width of the \land
:
Note:
- To make the
\ScaledImplies
have the same size and spacing as the\to
, I scaled\Longrightarrow
(which is what the\implies
symbol from theamsmath
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 thepgf
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