The macros \mapright
and \mapleft
produce right and left
pointing arrows, respectively. Use superscript (^
) to place a
morphism above the arrow, e.g., `\mapright^\alpha'; use subscript
(_
) to place a morphism below the arrow, e.g.,
`\mapright_{\tilde l}'. Superscripts and subscripts may be used
simulataneously, e.g., `\mapright^\pi_{\rm epimor.}'.
Similarly, the macros \mapup
and \mapdown
produce up and
down pointing arrows, respectively. Use \rt
to place a morphism to the right of the arrow, e.g., `\mapup\rt{\rm
id}'; use \lft
to place a morphism to the left of the arrow, e.g., `\mapup\lft\omega'.
\lft
and \rt
may be used simultaneously, e.g.,
`\mapdown\lft\pi\rt{\rm monomor.}'.
Slanted arrows are produced by the macro \arrow
, which takes
a direction argument (e.g., `\arrow(3,-4)'). Use \rt
and
\lft
to place morphisms to the right and left, respectively, of
the arrow. A slanted line (no arrowhead) is produced with the macro
\sline
,
whose syntax is identical to that of \arrow
.
The length of these macros is predefined by the default TeX
dimensions \harrowlength
,
for horizontal arrows (or lines),
\varrowlength
,
for vertical arrows (or lines), and
\sarrowlength
,
for slanted arrows (or lines). To change any of these dimensions, say,
e.g., `\harrowlength=40pt'. As with all other TeX dimensions,
the change may be as global or as local as you like. Furthermore, the
placement of morphisms on the arrows is controlled by the dimensions
\hmorphposn
,
\vmorphposn
,
and \morphdist
.
The first two dimensions control the horizontal and vertical position of
the morphism from its default position; the latter dimension controls
the distance of the morphism from the arrow. If you have more than one
morphism per arrow (i.e., a ^
/_
or \lft
/\rt
construction), use the parameters
\hmorphposnup
,
\hmorphposndn
,
\vmorphposnup
,
\vmorphposndn
,
\hmorphposnrt
,
\hmorphposnlft
,
\vmorphposnrt
,
and \vmorphposnlft
.
The default values of all these dimensions are provided in the section
on parameters that follows below.
There is a family of macros to produce horizontal lines, arrows, and
adjoint arrows. The following macros produce horizontal maps and have
the same syntax as \mapright
:
\mapright
$X\mapright Y$
\mapleft
$X\mapleft Y$
\hline
$X\hline Y$
\bimapright
$X\bimapright Y$
\bimapleft
$X\bimapleft Y$
\adjmapright
$X\adjmapright Y$
\adjmapleft
$X\adjmapleft Y$
\bihline
$X\bihline Y$
There is also a family of macros to produce vertical lines, arrows, and
adjoint arrows. The following macros produce vertical maps and have
the same syntax as \mapdown
:
\mapdown
\mapup
\vline
\bimapdown
\bimapup
\adjmapdown
\adjmapup
\bivline
Finally, there is a family of macros to produce slanted lines, arrows,
and adjoint arrows. The following macros produce slanted maps and have
the same syntax as \arrow
:
\arrow
\sline
\biarrow
\adjarrow
\bisline
The width between double arrows is controlled by the parameter
\channelwidth
.
The parameters \hchannel
and \vchannel
, if nonzero,
override \channelwidth
by controlling the horizontal and vertical
shifting from the first arrow to the second.
There are no adornments on these arrows to distinguish inclusions from epimorphisms from monomorphisms. Many texts, such as Lang's book Algebra, use as a tasteful alternative the symbol `inc' (in roman) next to an arrow to denote inclusion.
Future enhancements will include a mechanism to draw curved arrows
found in, e.g., the Snake Lemma, by employing a version of the
\path
macros of Appendix D of The TeXbook.