There is a common operation in the sparse-direct literature (see pg. 7) called an "extend-add", and it is usually denoted with a particular symbol that looks like a large plus sign with arrowheads on each tip.
I falsely assumed that I could simply overlap $\updownarrow$
and $\leftrightarrow$
via the mathtools
package's \mathllap
and friends, but the results were far from pleasing (everything was too jumbled).
Is there a simpler way to generate such a symbol?
Best Answer
Simple overlapping
The overlapping of the symbols
\leftrightarrow
and\updownarrow
can be done with\ooalign
:Some additional work is needed:
\textstyle
.\mathsurround
is set, then the additional space would be added above to the left and right. This can be cured by\m@th
that sets\mathsurround
to zero.\mathbin
notifies TeX to put additinal space for binary operators.File:
Result for CM fonts:
Result for package
txfonts
:Result for package
mathabx
:Result for package
MnSymbol
:Observations:
\updownarrow
might have a smaller total height than the width of\leftrightarrow
.Overlapping with resizing
The idea is to resize
\longleftrightarrow
to the width of\leftrightarrow
to get smaller arrow heads. However, this will also make the lines thinner.The tricky part is that scaling also changes the vertical position of the symbol. Because of the arrows the height of the character bounding box
\leftrightarrow
is not too helpful. But we can assume the symbol is vertically centered respective to the mathematical axis. Therefore the code below puts\leftrightarrow
to the base line, resizes it and moves it back to the mathematical axis. to the mathematical axis.The vertical double arrow cannot generated the same way. First the symbol
\longupdownarrow
is missing. Also we have seen above, that the symbol might be too small in comparison with the\leftrightarrow
. Therefore the symbol is generated by rotating the horizontal double arrow.Result for CM fonts:
Result for package
txfonts
:Result for package
mathabx
:Result for package
MnSymbol
:It is also possible to have something in between, less scaling, by composing a smaller
\longleftrightarrow
from\leftarrow
and\rightarrow
as base for the resized double arrow.