input/tex/extensions/extpfeil.rst
.. _tex-extpfeil:
######## extpfeil ########
The extpfeil extension adds macros for producing extensible
arrows, including \xtwoheadrightarrow, \xtwoheadleftarrow,
\xmapsto, \xlongequal, \xtofrom, and a non-standard
\Newextarrow for creating your own extensible arrows. The latter
has the form
.. describe:: \Newextarrow{\cs}{lspace,rspace}{unicode-char}
where ``\cs`` is the new control sequence name to be defined,
``lspace`` and ``rspace`` are integers representing the amount of
space (in suitably small units) to use at the left and right of
text that is placed above or below the arrow, and ``unicode-char``
is a number representing a unicode character position in either
decimal or hexadecimal notation.
For example
.. code-block:: latex
\Newextarrow{\xrightharpoonup}{5,10}{0x21C0}
defines an extensible right harpoon with barb up. Note that MathJax knows how to stretch only a limited number of characters, so you may not actually get a stretchy character this way. The characters that can be stretched may also depend on the font you have selected.
This extension is loaded automatically when the :ref:tex-autoload
extension is used. To load the extpfeil extension explicitly, add
'[tex]/extpfeil' to the :data:load array of the :data:loader
block of your MathJax configuration, and add 'extpfeil' to the
:data:packages array of the :data:tex block.
.. code-block:: javascript
window.MathJax = { loader: {load: ['[tex]/extpfeil']}, tex: {packages: {'[+]': ['extpfeil']}} };
Alternatively, use \require{extpfeil} in a TeX expression to load it
dynamically from within the math on the page, if the :ref:tex-require
extension is loaded.
.. _tex-extpfeil-commands:
The extpfeil extension implements the following macros:
\Newextarrow, \xlongequal, \xmapsto, \xtofrom, \xtwoheadleftarrow, \xtwoheadrightarrow
|-----|