Character Combinations Problematic in Some Fonts

Ancient Greek lexicons and other linguistically-focused works often need to mark vowel length in combination with other diacritics. Support for this in fonts is varied. Here I outline the cases in question to help both users and developers of fonts.

The things I personally have most need of are the three vowel + macron + acute combinations and the iota + macron + rough breathing + acute needed for ἵημι and the imperfect of ἵστημι.

Note that the precomposed column below is just what the NFC normalization gives.

vowel + macron + acute [IMPORTANT]

Quite common are combinations of macron with acute:

decomposed precomposed char description
U+03B1 U+0304 U+0301 U+1FB1 U+0301 ᾱ́ alpha + macron + acute
U+03B9 U+0304 U+0301 U+1FD1 U+0301 ῑ́ iota + macron + acute
U+03C5 U+0304 U+0301 U+1FE1 U+0301 ῡ́ upsilon + macron + acute

vowel + macron + grave

Far less common but still potentially useful in running texts are combinations of macron with grave:

decomposed precomposed char description
U+03B1 U+0304 U+0300 U+1FB1 U+0300 ᾱ̀ alpha + macron + grave
U+03B9 U+0304 U+0300 U+1FD1 U+0300 ῑ̀ iota + macron + grave
U+03C5 U+0304 U+0300 U+1FE1 U+0300 ῡ̀ upsilon + macron + grave

vowel + breve + acute/grave

Although a particular work will normally use one of macron or breve (and default to the other in the unmarked case) it might be useful for completeness to include the breve cases as well:

decomposed precomposed char description
U+03B1 U+0306 U+0301 U+1FB0 U+0301 ᾰ́ alpha + breve + acute
U+03B9 U+0306 U+0301 U+1FD0 U+0301 ῐ́ iota + breve + acute
U+03C5 U+0306 U+0301 U+1FE0 U+0301 ῠ́ upsilon + breve + acute
U+03B1 U+0306 U+0300 U+1FB0 U+0300 ᾰ̀ alpha + breve + grave
U+03B9 U+0306 U+0300 U+1FD0 U+0300 ῐ̀ iota + breve + grave
U+03C5 U+0306 U+0300 U+1FE0 U+0300 ῠ̀ upsilon + breve + grave

iota + macron + rough breathing + acute [IMPORTANT]

This is needed for ἵημι and the imperfect of ἵστημι.

decomposed precomposed char description
U+03B9 U+0304 U+0314 U+0301 U+1FD1 U+0314 U+0301 ῑ̔́ iota + macron + rough breathing + acute

Many fonts will stack the acute on top of the rough breathing when it really needs to be alongside it. Some (e.g. Skolar PE before they updated it at my request) will put the acute next to the rough breathing but after rather than on-top-of the macron.

It should look like ἵ but with a macron between the ι and ῞. In some fonts, ἵ̄ (U+1F35 U+0304) displays but both the character order and glyph cluster display are wrong so that combination of code points should not be used.

vowel + macron/breve + rough/smooth breathing + acute/grave

For completeness, all other combinations of macron/breve, rough/smooth, and acute/grave could be supported:

decomposed precomposed char description
U+03B1 U+0304 U+0314 U+0301 U+1FB1 U+0314 U+0301 ᾱ̔́ alpha + macron + rough breathing + acute
U+03B1 U+0304 U+0314 U+0300 U+1FB1 U+0314 U+0300 ᾱ̔̀ alpha + macron + rough breathing + grave
U+03B1 U+0304 U+0313 U+0301 U+1FB1 U+0313 U+0301 ᾱ̓́ alpha + macron + smooth + acute
U+03B1 U+0304 U+0313 U+0300 U+1FB1 U+0313 U+0300 ᾱ̓̀ alpha + macron + smooth + grave
U+03B1 U+0306 U+0314 U+0301 U+1FB0 U+0314 U+0301 ᾰ̔́ alpha + breve + rough breathing + acute
U+03B1 U+0306 U+0314 U+0300 U+1FB0 U+0314 U+0300 ᾰ̔̀ alpha + breve + rough breathing + grave
U+03B1 U+0306 U+0313 U+0301 U+1FB0 U+0313 U+0301 ᾰ̓́ alpha + breve + smooth + acute
U+03B1 U+0306 U+0313 U+0300 U+1FB0 U+0313 U+0300 ᾰ̓̀ alpha + breve + smooth + grave
U+03B9 U+0304 U+0314 U+0300 U+1FD1 U+0314 U+0300 ῑ̔̀ iota + macron + rough breathing + grave
U+03B9 U+0304 U+0313 U+0301 U+1FD1 U+0313 U+0301 ῑ̓́ iota + macron + smooth + acute
U+03B9 U+0304 U+0313 U+0300 U+1FD1 U+0313 U+0300 ῑ̓̀ iota + macron + smooth + grave
U+03B9 U+0306 U+0314 U+0301 U+1FD0 U+0314 U+0301 ῐ̔́ iota + breve + rough breathing + acute
U+03B9 U+0306 U+0314 U+0300 U+1FD0 U+0314 U+0300 ῐ̔̀ iota + breve + rough breathing + grave
U+03B9 U+0306 U+0313 U+0301 U+1FD0 U+0313 U+0301 ῐ̓́ iota + breve + smooth + acute
U+03B9 U+0306 U+0313 U+0300 U+1FD0 U+0313 U+0300 ῐ̓̀ iota + breve + smooth + grave
U+03C5 U+0304 U+0314 U+0301 U+1FE1 U+0314 U+0301 ῡ̔́ upsilon + macron + rough breathing + acute
U+03C5 U+0304 U+0314 U+0300 U+1FE1 U+0314 U+0300 ῡ̔̀ upsilon + macron + rough breathing + grave
U+03C5 U+0304 U+0313 U+0301 U+1FE1 U+0313 U+0301 ῡ̓́ upsilon + macron + smooth + acute
U+03C5 U+0304 U+0313 U+0300 U+1FE1 U+0313 U+0300 ῡ̓̀ upsilon + macron + smooth + grave
U+03C5 U+0306 U+0314 U+0301 U+1FE0 U+0314 U+0301 ῠ̔́ upsilon + breve + rough breathing + acute
U+03C5 U+0306 U+0314 U+0300 U+1FE0 U+0314 U+0300 ῠ̔̀ upsilon + breve + rough breathing + grave
U+03C5 U+0306 U+0313 U+0301 U+1FE0 U+0313 U+0301 ῠ̓́ upsilon + breve + smooth + acute
U+03C5 U+0306 U+0313 U+0300 U+1FE0 U+0313 U+0300 ῠ̓̀ upsilon + breve + smooth + grave

In all cases the accent should be to the right of the breathing with both of them over the length diacritic.