mathematic font augmentation
say you have an existing font.
for the font to be useful with mathematical notation, it must have:
- the opentype
MATHtable - glyphs, specifically in these blocks:
- greek and coptic
- mathematical alphanumeric symbols
- mathematical operators
- combining diacritical marks (and its amendments)
fortunately a lot of these can be synthesized. i am assuming you are using fontforge.
1. greek and coptic
most capital letters of greek can be copied from latin and cyrillic (and some others):
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ (actual greek)
ABГ EZH IK MN OПP TYФX (characters in windows-1251)
∆ Л* ∏ ∑ Ω (other goodies)
— — — (no good replacement as far as i know)
(*in balkan fonts the letter л is an angle)
some fonts may only include greek characters not shared with latin (andika, charis and doulos, all by the ꜱɪʟ do that, also TᴇX fonts in old encodings may do that)
lowercase is a bit trickier. the block for the ɪᴘᴀ will help a lot with these, though some you’ll have to draw yourself:
αβγδεζηθικλμνξοπρστυϕχψω ϵϑϰϖϱςφ
ɑ*ɣ ɛ ƞ*ɩĸµv oп тʋ * є ф
fortunately the ones with an * are commonly used in latin-script phonetic systems, so fonts for phonetic use will include them.
2. mathematical alphanumeric symbols
this block contains differently styled latin letters. if you are coming from a font family, you’re in luck. go grab those bolds and italics, it’s time for copy-and-pasting!
this block contains roman, bold, italic, bold-italic serif and sans-serif; roman typewriter, blackboard-bold; roman and bold fraktur and calligraphic letters (and sometimes digits).
for typewriter letters, i recommend courier prime or freemono. for the other unusual font faces, i recommend copying them from another math font (though check the license).
3. extensibles
a delimiter is a character that delimits expressions. in mathematics, those are usually different brackets ()[]{}⟨⟩ and vertical bars |.
extensibles is the name i give to characters which may change size in a mathematical formula. those include the aforementioned extensibles and some other things (sum, product, integral, other n-ary operators, arrows…). most of those are vertically extensible, though some (most of them are rotated versions of aforementioned) are extensible horizontally.
for extensible parentheses, brackets, braces and integrals, unicode contains some codepoints, which are components of a constructed glyph. those define their tops and bottoms, and the stretchable part. see unicode tech report 25 and fontforge’s documentation on how to build them. (the right parenthesis, however, misbehaves in fontforge, and breaks every time i save it in the MATH table’s vertical constructions.)
notice how in , and the parentheses change their height.
you may also define some pre-built bigger variants for extensibles. creating those is easy: you can use fontforge’s “change glyph” functionality. using them is preferred for shorter (in height) parenthesized forms (though it’s the math shaper’s job to put the right one). in the vertical (horizontal) variants subtable, create a row with the canonical codepoint and its variants in order of ascending height (length).
. mathematical operators
ᴛʙᴀ……