I'm looking for a good implication symbol. I understood I was supposed to use \to, but it's longer than \land and \lor and it kinda bugs me. Is it possible to type an arrow of the exact same length?
- 93
3 Answers
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.
- 37,958
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
\ScaledImplieshave the same size and spacing as the\to, I scaled\Longrightarrow(which is what the\impliessymbol from theamsmathpackage is based on with some additional spacing).
Further Enhancements:
- I used the
pgfpackage 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 thepgfpackage.
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}
- 223,288
-
@Logician: Updated to provide a scaling of the
\toto be the same width as the\land. – Peter Grill Dec 25 '11 at 02:26
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

- 158,329
- 88,848
-
1It's possible for the symbol to have the correct size in scriptstyle and scriptscriptstyle by adding a
\textaround the boxes:\newcommand{\implyarrow}{\mathrel{\text{\raisebox{1.3ex}{\rotatebox[origin=c]{90}{\mathhexbox37F}}}}}– Philippe Goutet Jan 13 '12 at 22:10 -
@Philippe -- great observation. i thought that would probably be the case, but didn't have time to test it. – barbara beeton Jan 13 '12 at 22:22
MnSymbolanyway (I have to use a different symbol which the package provides), yet the arrow still isn't short enough... Bummer. Thanks for the help! – Logician Dec 25 '11 at 01:26mathabx. In this way, you can get\shortarrowwithout usingstmaryrdentirely. – Ryan Reich Dec 25 '11 at 01:39stmaryrdto figure out what particular character code the\shortarrowsymbol has in that font. – Ryan Reich Dec 25 '11 at 01:46