Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • M MathJax
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 304
    • Issues 304
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MathJax
  • MathJax
  • Issues
  • #611
Closed
Open
Issue created Oct 17, 2013 by Davide P. Cervone@dpvcContributor

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.

Assignee
Assign to
Time tracking