BabelStone Fonts


BabelStone Zanabazar

Description

BabelStone Zanabazar is a Unicode font for the Zanabazar Square script, which was encoded in Unicode version 10.0 (June 2017). The Zanabazar Square script, known in Mongolian as Хэвтээ Дөрвөлжин бичиг or Хэвтээ Дөрвөлжин Үсэг ("horizontal square script"), was devised by Zanabazar (1635–1723) for use in writing Mongolian, Tibetan and Sanskrit. It was rarely used outside of descriptions of the script and in calligraphy manuals.


Block print of Zanabazar's square script, from his collected works edited by the Khalkha Zaya Pandita Luvsanprinlei (1642–1715) (from L2/15-337 Fig. 1)



Rendering

The BabelStone Zanabazar font supports complex shaping behaviour using OpenType features, but whether these features are applied or not depends on the operating system and the text rendering engine. Windows 10 uses the Universal Shaping Engine, which does not currently support Zanabazar Square.

As of February 2018, Zanabazar Square text displayed with BabelStone Zanabazar font does not show any complex shaping behaviour in Microsoft applications (or other applications that rely on Microsoft rendering) under Windows 10. Zanabazar Square does not currently render correctly in the latest version of Mozilla Firefox. However, Zanabazar Square is supported by the latest version of HarfBuzz, which is used in the latest version of Google Chrome, although there are some rendering issues as reported here.

In order to test BabelStone Zanabazar under HarfBuzz on Windows, please follow these steps:

  1. Download and unzip harfbuzz-1.7.4-win32.zip (or latest version).
  2. Copy BabelStoneZanabazar.ttf and ZanabazarTest.txt (transcription of the five lines of Zanabazar Square text in L2/15-337 Fig. 2) to the directory containing the downloaded HarfBuzz files.
  3. Open a command prompt in the directory containing the downloaded HarBuzz files.
  4. Enter the following command: type ZanabazarTest.txt | hb-view.exe BabelStoneZanabazar.ttf --output-format=png --output-file=ZanabazarTest.png --font-size=36
  5. The file ZanabazarTest.png should be created in the directory, and should look like this.


Issues

A. Order of Vowel Signs

A single vowel cluster may take one or two vowel signs and a vowel length mark, but as Zanabazar Square vowel signs and the vowel length mark (U+11A0A) all have a Canonical Combining Class of zero, they do not reorder under normalization, and so there is no canonical order for vowel signs and vowel length. Moreover, the Unicode Standard does not clearly specify the correct ordering of vowel signs and the vowel length mark, so users may not know what the correct order is, and multiple different sequences may give the same visual result. Under HarfBuzz some sequences render correctly but other sequences of the same vowel signs and length mark may not render correctly (see HarfBuzz, although there are some rendering issues as reported HarfBuzz Issue 617 for details).

The order of the vowel length mark is particularly problematic from my perspective. Anshuman Pandey, author the Zanabazar Square encoding proposal suggests that the length mark should be placed after a vowel sign (if present) in most cases, but in some cases he suggests it should be placed between two vowel signs (see L2/15-337 p. 6). Firstly, as the length mark ligates with the preceding consonant, it is much easier from the font designer's point of view to deal with the ligature if the length mark directly follows the consonant it ligates with. It adds considerable time and effort to the font design to define OpenType substitutions that can deal with all potential orderings of the length mark with respect to vowel signs. Secondly, as the vowel length mark corresponds directly to the a-chung mark in the Tibetan script (U+0F71), which follows directly after the last consonant in the stack and before any vowel signs, it is natural for users familiar with the Tibetan script to enter the Zanabazar vowel length mark after the last consonant in the stack and before any vowel signs.

The following are some of the test cases for my BabelStone Zanabazar font that have sequences that are supported in my font but which do not render correctly with HarfBuzz (tested with version 1.7.4 using this batch file).


Test Case Description Test File Test Output
Test Case A Single vowel sign and length mark Zanabazar_Test_A.txt Zanabazar_Test_A.png
Test Case B Double vowel signs Zanabazar_Test_B.txt Zanabazar_Test_B.png
Test Case C Double vowel signs and length mark Zanabazar_Test_C.txt Zanabazar_Test_C.png
Test Case D Single subjoined consonant Zanabazar_Test_D.txt Zanabazar_Test_D.png
Test Case E Double subjoined consonants Zanabazar_Test_E.txt Zanabazar_Test_E.png

B. Head Letters La and Sa

The Tibetan script has three head letters that can be superfixed to a consonant (Ra, La and Sa), of which the Ra head takes an abbreviated form in native Tibetan words. The Unicode implementation of the Zanabazar Square script defines a special ligated half-height "Cluster-Initial Letter Ra" (U+11A3A) that corresponds to Tibetan Ra head and which is used in Tibetan stacks, in contrast to the ordinary consonant Ra which is used at the top of Sanskrit stacks. In Tibetan the La and Sa head letters have the same form as La and Sa at the top of Sanskrit stacks, but examples of Zanabazar Square script included in L2/15-337 show that La and Sa at the top of Tibetan stacks are normally written with ligated half-height forms rather than as the unligated full-height forms that would be expected in Sanskrit stacks.

Tibetan rka, rsa and rla in Zanabazar Square script

There is currently no way to distinguish the ligated half-height forms and the unligated full-height forms of La and Sa, and so the font designer has to make a decision at to which forms to use. BabelStone Zanabazar uses the ligated half-height forms in all cases as Tibetan use of these head letters is much more common than Sanskrit use in complex stacks. I plan to make a proposal to encode Cluster-Initial Letter La and Cluster-Initial Letter Sa to solve this problem.



Samples

BabelStone Zanabazar (36 points)

Transcription of the five lines of Zanabazar Square text in L2/15-337 Fig. 2

As an HTML page



Character Repertoire

The tables below render each character in the BabelStone Zanabazar font (excluding Basic Latin characters), either using the font installed on your local machine or using a WOFF font if the font is not installed on your local machine.


Zanabazar Square [11A00..11A4F]

Code Point Character Name Glyph
U+11A00 ZANABAZAR SQUARE LETTER A

𑨀

U+11A01 ZANABAZAR SQUARE VOWEL SIGN I

𑨁

U+11A02 ZANABAZAR SQUARE VOWEL SIGN UE

𑨂

U+11A03 ZANABAZAR SQUARE VOWEL SIGN U

𑨃

U+11A04 ZANABAZAR SQUARE VOWEL SIGN E

𑨄

U+11A05 ZANABAZAR SQUARE VOWEL SIGN OE

𑨅

U+11A06 ZANABAZAR SQUARE VOWEL SIGN O

𑨆

U+11A07 ZANABAZAR SQUARE VOWEL SIGN AI

𑨇

U+11A08 ZANABAZAR SQUARE VOWEL SIGN AU

𑨈

U+11A09 ZANABAZAR SQUARE VOWEL SIGN REVERSED I

𑨉

U+11A0A ZANABAZAR SQUARE VOWEL LENGTH MARK

𑨊

U+11A0B ZANABAZAR SQUARE LETTER KA

𑨋

U+11A0C ZANABAZAR SQUARE LETTER KHA

𑨌

U+11A0D ZANABAZAR SQUARE LETTER GA

𑨍

U+11A0E ZANABAZAR SQUARE LETTER GHA

𑨎

U+11A0F ZANABAZAR SQUARE LETTER NGA

𑨏

U+11A10 ZANABAZAR SQUARE LETTER CA

𑨐

U+11A11 ZANABAZAR SQUARE LETTER CHA

𑨑

U+11A12 ZANABAZAR SQUARE LETTER JA

𑨒

U+11A13 ZANABAZAR SQUARE LETTER NYA

𑨓

U+11A14 ZANABAZAR SQUARE LETTER TTA

𑨔

U+11A15 ZANABAZAR SQUARE LETTER TTHA

𑨕

U+11A16 ZANABAZAR SQUARE LETTER DDA

𑨖

U+11A17 ZANABAZAR SQUARE LETTER DDHA

𑨗

U+11A18 ZANABAZAR SQUARE LETTER NNA

𑨘

U+11A19 ZANABAZAR SQUARE LETTER TA

𑨙

U+11A1A ZANABAZAR SQUARE LETTER THA

𑨚

U+11A1B ZANABAZAR SQUARE LETTER DA

𑨛

U+11A1C ZANABAZAR SQUARE LETTER DHA

𑨜

U+11A1D ZANABAZAR SQUARE LETTER NA

𑨝

U+11A1E ZANABAZAR SQUARE LETTER PA

𑨞

U+11A1F ZANABAZAR SQUARE LETTER PHA

𑨟

U+11A20 ZANABAZAR SQUARE LETTER BA

𑨠

U+11A21 ZANABAZAR SQUARE LETTER BHA

𑨡

U+11A22 ZANABAZAR SQUARE LETTER MA

𑨢

U+11A23 ZANABAZAR SQUARE LETTER TSA

𑨣

U+11A24 ZANABAZAR SQUARE LETTER TSHA

𑨤

U+11A25 ZANABAZAR SQUARE LETTER DZA

𑨥

U+11A26 ZANABAZAR SQUARE LETTER DZHA

𑨦

U+11A27 ZANABAZAR SQUARE LETTER ZHA

𑨧

U+11A28 ZANABAZAR SQUARE LETTER ZA

𑨨

U+11A29 ZANABAZAR SQUARE LETTER -A

𑨩

U+11A2A ZANABAZAR SQUARE LETTER YA

𑨪

U+11A2B ZANABAZAR SQUARE LETTER RA

𑨫

U+11A2C ZANABAZAR SQUARE LETTER LA

𑨬

U+11A2D ZANABAZAR SQUARE LETTER VA

𑨭

U+11A2E ZANABAZAR SQUARE LETTER SHA

𑨮

U+11A2F ZANABAZAR SQUARE LETTER SSA

𑨯

U+11A30 ZANABAZAR SQUARE LETTER SA

𑨰

U+11A31 ZANABAZAR SQUARE LETTER HA

𑨱

U+11A32 ZANABAZAR SQUARE LETTER KSSA

𑨲

U+11A33 ZANABAZAR SQUARE FINAL CONSONANT MARK

𑨳

U+11A34 ZANABAZAR SQUARE SIGN VIRAMA

𑨴

U+11A35 ZANABAZAR SQUARE SIGN CANDRABINDU

𑨵

U+11A36 ZANABAZAR SQUARE SIGN CANDRABINDU WITH ORNAMENT

𑨶

U+11A37 ZANABAZAR SQUARE SIGN CANDRA WITH ORNAMENT

𑨷

U+11A38 ZANABAZAR SQUARE SIGN ANUSVARA

𑨸

U+11A39 ZANABAZAR SQUARE SIGN VISARGA

𑨹

U+11A3A ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA

𑨺

U+11A3B ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA

𑨻

U+11A3C ZANABAZAR SQUARE CLUSTER-FINAL LETTER RA

𑨼

U+11A3D ZANABAZAR SQUARE CLUSTER-FINAL LETTER LA

𑨽

U+11A3E ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA

𑨾

U+11A3F ZANABAZAR SQUARE INITIAL HEAD MARK

𑨿

U+11A40 ZANABAZAR SQUARE CLOSING HEAD MARK

𑩀

U+11A41 ZANABAZAR SQUARE MARK TSHEG

𑩁

U+11A42 ZANABAZAR SQUARE MARK SHAD

𑩂

U+11A43 ZANABAZAR SQUARE MARK DOUBLE SHAD

𑩃

U+11A44 ZANABAZAR SQUARE MARK LONG TSHEG

𑩄

U+11A45 ZANABAZAR SQUARE INITIAL DOUBLE-LINED HEAD MARK

𑩅

U+11A46 ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK

𑩆

U+11A47 ZANABAZAR SQUARE SUBJOINER

𑩇


Tibetan [0F00..0FFF]

Code Point Character Name Glyph
U+0FD5 RIGHT-FACING SVASTI SIGN

U+0FD6 LEFT-FACING SVASTI SIGN

U+0FD7 RIGHT-FACING SVASTI SIGN WITH DOTS

U+0FD8 LEFT-FACING SVASTI SIGN WITH DOTS

U+0FD9 TIBETAN MARK LEADING MCHAN RTAGS

U+0FDA TIBETAN MARK TRAILING MCHAN RTAGS



OpenType Features

[VOLT project file]


Script Language Features Explanation
Zanabazar Square <zanb> Default <dflt> Glyph Composition / Decomposition <ccmp> For all shaping and glyph substitutions


Version History

Font Version Date Notes
BabelStone Zanabazar 10.000 2018-02-04 Initial release, supporting Unicode 10.0.
BabelStone Zanabazar 10.001 2018-02-07 Some glyph modifications.


Download

BabelStone Zanabazar is licensed under the SIL Open Font License 1.1, which means you are free to use it for personal or commercial purposes, and to redistribute it by itself or as part of a free or commercial software package, just as long as you do not sell the font on its own. The license also allows you to modify the font in any way you like, as long as the modified font does not use "BabelStone" in its name. Please read the license for details.

A WOFF format web font version of BabelStone Zanabazar is available here. You are free to download and host the web font on your own web site, but you may not dynamically use the woff font on www.babelstone.co.uk from your web site.



BabelStone Fonts