Issues with Asana font
I have gone through the Asana font and identified the following issues:
A number of characters should be stretchy that aren't. For example, the characters used for \overline
, \underline
, \widetilde
, and \widehat
, are not stretchy, but need to be in order for these TeX macros to work. Similarly, there are a number of delimiters that are used with \left
and \right
that need to be stretchy. Many can be handled simply be adding aliases in the DELIMITERS
array to appropriate characters that already stretch. For example, U+007E (tilde) could be aliased to U+0303 (COMBINING TILDE). Others will need to have their data added by hand.
The list of delimiters needed by MathJax includes the following:
- U+0028
- U+0029
- U+002D
- U+002F
- U+003D
- U+005B
- U+005C
- U+005D
- U+005E
- U+005F
- U+007B
- U+007C
- U+007D
- U+007E
- U+00AF
- U+02C6
- U+02C9
- U+02DC
- U+0302
- U+0303
- U+030C
- U+0332
- U+2015
- U+2016
- U+2017
- U+203E
- U+2190
- U+2191
- U+2192
- U+2193
- U+2194
- U+2195
- U+21D0
- U+21D1
- U+21D2
- U+21D3
- U+21D4
- U+21D5
- U+2212
- U+2215
- U+221A
- U+2223
- U+2225
- U+2308
- U+2309
- U+230A
- U+230B
- U+2329
- U+232A
- U+23AA
- U+23AF
- U+23B0
- U+23B1
- U+23D0
- U+23DE
- U+23DF
- U+2500
- U+2758
- U+27E8
- U+27E9
- U+27EE
- U+27EF
- U+27F5
- U+27F6
- U+27F7
- U+27F8
- U+27F9
- U+27FA
- U+27FB
- U+27FC
- U+27FD
- U+27FE
- U+3008
- U+3009
- U+FE37
- U+FE38
Many of these can be aliases, but all of them should be available. See the TeX/fontdata.js
file for the mappings used there, but note that the aliases my have to be different, depending on what is available in the DELIMITERS
array already.
Any stretchy character not on this list should go into the fontdata-extra.js
file.
The REMAPACCENT
array should include the following:
- "\u2192": "\u20D7", // vector arrow
- "\u2032": "\u0300", // grave accent
- "\u2035": "\u0301", // acute accent
- "\u005E": "\u0302", // hat
- "\u007E": "\u0303" // tilde
The \bar
macro uses U+00AF (MACRON), but Asana doesn't include this character, so it will need to be remapped to one of the other overline characters, such as U+0304 (COMBINING MACRON), using the REMAP
array. There are a number of other characters that should be remapped as well:
- 02B9 to 2032 prime
- 03D2 to 03A5 Upsilon with hook
- 20F0 to 002A (combining star above)
- 25AA to 25A0 blacksquare
- 25B4 to 25B2 blacktriangle
- 25B5 to 25B3 blacktriangledown
- 25B8 to 25B6 blacktriangleright
- 25BE to 25BC blacktriangledown
- 25BF to 25BD triangledown
- 25C2 to 25C0 blactriangleleft
- 25C3 to 25C1 triangleleft
- 2758 to 2223 light vertical bar
- 3008 to 27E8 langle
- 3009 to 27E9 rangle
- FE37 to 23DE and FE38 to 23DF over and under braces
(See the REMAP
array in TeX/fontdata.js
for the list of characters remapped there. In general, if these characters aren't in the font, a suitable remapping should be used.)
The sans-serif variant has its Greek block point to non-existent characters in the PUA. The sans-serif-italic variant has its numeric and Greek blocks point to PUA characters. The sans-serif-bold-italic variant has its numbers point to non-existent PUA characters. (I assume these came from the STIX fonts, which has PUA characters for these, but Asana doesn't.) Those offset pointers should be removed.
The font includes characters appropriate for the calligraphic font in the PUA, so the -tex-calligraphic
variant should include offsetA: 0xE0FB, noLowerCase: 1,
in order to access these characters. Alternatively, they could be moved to the standard ASCII positions in a separate Calligraphic font.
The adjustment for the brace extender should be 100 rather than 200.
The PUA includes several copies of the italic and normal alphabets, and I'm not sure why they are there. (I understand that the original font includes them, but I don't see a reason for them.) They just make the font larger and are never going to be used, so it seems we should be able to drop them. I would hate to see them all have to be loaded whenever \mathcal
is used.
There is something funny going on with the clipping of the underbrace. It seems to fall outside its clipping region, so I'm wondering if there is something wrong about the bounding box data for the characters used there.
The other fonts will have similar issues to these. In particular, it will be important to go through the DELIMITERS
and REMAP
arrays to make sure that the fonts have proper coverage. If not, some of the standard TeX macros will not work, as well as any MathML that uses those characters.