Project: OpenType math font support

see Proposal: OpenType math font support

For students

  • C++ >= 90%
  • Scheme <= 10%

Project Info

  • Name: OpenType math font support
  • Mentor: @mgubi
  • Difficulty: Hard

Project Description

At the moment Mogan (and TeXmacs) is able to use only very few math fonts (like Stix, TeX Gyre) and this support is hardwired in the C++ files and does not take into account all the informations available in the font files.

These fonts file contain the position in the font of extensible brackets or extensible glyphs like arrows, square roots, etc…, and the metrics to correctly position index and subscripts.

Let’s improve the OpenType math font support!

Project Notes

An initial implementation of support for a wider selection of OpenType fonts has been attempted here:
https://github.com/mgubi/texmacs/tree/wip-unicode-math

The initial goal of the project is to make these modification work in Mogan. TeXmacs still depends very much on old font formats while there are now available many free fonts in OpenType format which make it easier to support professional math typesetting. In particular there are Latin Modern fonts which can replace our old TeX fonts, and possibly improve speed since there will be less font searching.

One side goal could be to get rid of all TeX fonts and distribute only the OpenType variants. This is for example what ConTeXt does.:

https://wiki.contextgarden.net/ConTeXt_distribution’s_Fonts

For a discussion see here: https://github.com/XmacsLabs/mogan/issues/523

Output Requirements

  • Add support for OpenType MATH table & related font features
  • A report on investigating the possibility to remove the old TeX fonts and only use modern OpenType font containers (at least for the default fonts).
  • Improve the supports of the following fonts (several of them)
    • Fira Math
    • STIX2
    • DejaVu
    • TeX Gyre DejaVu Math
    • Neo Euler
  • Unit tests in C++ or Scheme

Technical Requirements

  • Programming Languages
    • C++
    • Scheme
  • Understanding the OpenType font spec

Project Repository

Seems good to me. I would rephrase the content in a third person. Instead of “Some time ago I’ve started to …” it would be preferable to write impersonally “An initial implementation of support for a wider selection of OpenType fonts has been attempted here […] The initial goal of the project is to make these modification work in Mogan…”.