tree 00e97ddd130632e1fcd53dfa4d48e64e261f2ab5
parent a926747b7ae5d6140314089e84ed73d87551b03a
author Karl Schaefer <karlgschaefer@gmail.com> 1475259807 -0400
committer Karl Schaefer <karlgschaefer@gmail.com> 1475259807 -0400

Add \overleftrightarrow command.

This is simply another Style command with custom CSS to make a line with an
arrowhead at each end.

There were a couple of small issues here:
1. :after is used to fill empty blocks, but I need :after for the right
   arrowhead.

   This was resolved by using min-width and min-height.  Both are extremely
   common CSS at this point.

2. The original \overleftarrow and \overrightarrow work upon which this is
   based do not scale well.

   I made no effort to fix the scaling issue.  The current arrows misalign with
   the line if the font-size changes even slightly.  Using \overleftarrow in
   the visual test page, where the base font is .8em causes issues.

   Without using JavaScript to alter inline styles, I think that end users will
   have to write custom styles if they are using non-standard font sizes.  This
   is no worse than the original implementation, so I feel confident that the
   \overleftrightarrow is as good as what currently exists for the other arrow
   types.

3. The collapsed arrowheads for \overleftrightarrow collapse on top of one
   another when the block is empty.  It looks like an asterisk.

   The min-width could be made larger.  This is part of a set of geometric
   markers that need at least two identifiers underneath.  No line segment,
   ray, or line can be defined without at least two points.

   Given that the current \over* markers do not have enough space when empty
   for two characters, I concluded that two space was not necessary here
   either.  The difference, however, is that the single-arrowhead lines do not
   present a visual miscue when collapsed to a single character width.

   This would be an easy change.  Given the variable width nature of Symbola, I
   recommend that the min-width be set to 1.5em if this change is desired.
   Our custom CSS that we apply on top of MathQuill's base CSS for our product
   does use the 1.5em min-width.
