Skip to content

v0.22.0 — Gurmukhi (Punjabi) + Japanese & Korean scripts

Choose a tag to compare

@edadma edadma released this 25 Jul 00:44

A minor release adding two more of the world's most-read scripts: Gurmukhi (Punjabi) and the Japanese and Korean members of the CJK family.

New: Gurmukhi (Punjabi) syllable shaping

Gurmukhi joins Devanagari and Bengali on texish's Indic-shaping framework, set a syllable at a time from ordinary Unicode text:

  • Subjoined pairin forms — a virama-joined consonant hangs below the base (ਪ੍ਰੇਮ, ਸ੍ਰੀ). Unlike Devanagari and Bengali, Gurmukhi has no reph: a joined ra always subjoins, never rising as a mark.
  • Pre-base sihari reordering — the i-sign is typed after its consonant but drawn before it (ਦਿਨ, ਪਿਤਾ).
  • Addak, tippi and bindi placed as marks over the base by GPOS (ਇੱਕ, ਪੰਜਾਬ, ਸਿੰਘ).

Select the bundled Noto Serif Gurmukhi with \font gurmukhi (or \font punjabi), regular and bold.

New: Japanese and Korean

The three CJK scripts share the Han characters but draw them with region-specific forms, and Korean adds its own Hangul — so each region gets its own cut of Noto Serif CJK, in regular and bold.

  • Japanese\font japanese (alias \font cjkjp). Kanji set with their Japanese letterforms rather than the Chinese ones, plus hiragana and katakana. Sets like Chinese, with the same kinsoku inter-character breaking.
  • Korean\font korean (alias \font cjkkr). Renders the Hangul syllables the Chinese faces have no glyph for at all, plus Hanja.

Korean line breaking: Korean is written with spaces between words, so — unlike Chinese and Japanese — its lines break at those spaces the way Latin does, and a Korean word is never split across a line. Hangul is kept off the per-character break path (removed from CJK.isCJK).

{\font gurmukhi 14 regular ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ!}

{\font japanese 12 regular これは日本語の組版の例です。}

{\font korean 12 regular 이것은 한국어 조판의 예입니다.}

Engine

  • New Gurmukhi Indic front end (U+0A00–U+0A7F), registered alongside Devanagari and Bengali; startsWithReph overridden to false.
  • New bundled CJK faces \font cjkjp/japanese and \font cjkkr/korean (Noto Serif CJK JP/KR), each regular and bold.
  • CJK.isCJK no longer treats Hangul as break-anywhere, so spaced Korean breaks at its word spaces.

Tests

  • Gurmukhi: font-free cluster tests (GurmukhiTests) + font-level GSUB/GPOS tests (GsubGurmukhiFontTests) against the bundled face, confirmed with hb-shape --shaper=ot.
  • CJK: CJKFontCoverageTests (JP kanji+kana, KR Hangul+Hanja, and that the Chinese face has no Hangul) + CJKLineBreakTests (Hangul off the break path; Japanese still breaks per character).

Demos & docs

  • scripts/gurmukhi-demo.script and scripts/japanese-korean-demo.script.
  • New guide pages Gurmukhi (Punjabi) and Chinese, Japanese & Korean, plus reference updates.

Native CLI binaries for Linux (x86_64, arm64) and macOS (arm64) attach below; other platforms use the JVM build.