Skip to content

Missing glyphs U+01CF–U+01DC (ǐ ǒ ǔ ǖ ǘ ǚ ǜ): pinyin third-tone i/o/u and all ü tones fall back to another font #829

Description

Version: 2407.024 (v2407.24, the current release)
Variant: Cascadia Code
Format: .ttf (variable)
Platform: macOS 26.6.2 (25G83)
Other software: Apple Terminal (Monokai profile, CaskaydiaCove NF ExtraLight 22 pt, Nerd Fonts 3.4.0). Also reproduces with the unpatched CascadiaCode.ttf.

What happened

Cascadia Code covers U+01CD/U+01CE (Ǎ ǎ) and then stops: U+01CF through U+01DC are absent from the font entirely — no cmap entry and no glyph. That range is Ǐ ǐ Ǒ ǒ Ǔ ǔ Ǖ ǖ Ǘ ǘ Ǚ ǚ Ǜ ǜ. (U+1E3F ḿ is also absent.)

Because the codepoints are missing, the terminal substitutes another font for those characters. On macOS 26.6.2 the substitution resolves to Helvetica — a proportional face — so the character renders in a different typeface at a non-matching advance width, breaking the monospace grid. Beside its neighbours it does not read as an "i with a caron" at all: different skeleton, different stroke weight, and a square diaeresis where Cascadia's is round.

The reported symptom is therefore "this glyph is drawn wrong", but the cause is that it is not in the font.

Why this range matters: it is pinyin

Of the 24 tone-marked vowels in Hanyu Pinyin, seven fall in this gap — the third tone of i, o and u, plus all four tones of ü. First, second and fourth tones render correctly, because they live in Latin-1 and Latin Extended-A.

So nǐ hǎo, qǐng, xiǎo, lǚxíng come out with most syllables right and only the third-tone ones visibly wrong, which is a confusing failure mode — it looks like a design inconsistency rather than missing coverage. ǐ in particular is unavoidable for anyone reading Chinese: 你 nǐ, 起 qǐ.

What should render

The same precomposed letters the font already builds for the rest of the caron set, on the standard monospace advance.

Notes toward a fix

The components are already present:

  • dotlessi (U+0131) exists, at the standard 1200/2048 advance
  • uni030C (combining caron) exists, at 0 advance
  • the font already builds uni01F0 (ǰ) as uni0237 + uni030C — exactly the construction icaron needs, with a dotless base
  • uni01CE (ǎ) is built as a + uni030C

These look like composite-glyph additions following an established pattern rather than new drawing work.

Relationship to #707

This appears to be the remainder of #707, closed as completed in March 2024. The affected codepoints are still absent both in the current release and in sources/CascadiaCode-Regular.ufo/glyphs/ on main, which contains acaron, ecaron, jcaron and ncaron but no icaron, ocaron, ucaron or ü-caron glyphs.

I will attach a rendering of the fallback in a follow-up comment.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions