# BabelStone

## Friday, 29 December 2006

### Phags-pa Fonts 3 : BabelStone Phags-pa Seal

The final Phags-pa font that I am releasing for the time being is BabelStone Phags-pa Seal, which is a "seal script" style font that can be downloaded from here. This has been a very difficult font to implement, and I am not terribly satisfied with the results, but rather than labouring on it any further I will release it now and maybe work some more on it at some future date.

As with other scripts of this period that were constructed for writing non-Chinese languages (e.g. Tangut and Khitan), Phags-pa has a special pseudo-archaic "seal script" style of lettering that imitates the often convoluted forms of Chinese characters that are used on Chinese seals. This form of Phags-pa lettering is almost exclusively restricted to use on seals (mostly official seals from the Yuan dynasty), although it is also used for the title (碑額) on some Yuan dynasty monumental inscriptions.

The biggest problem with trying to implement a seal script style of font (whether for Chinese, Tangut, Khitan or Phags-pa) is that there is a wide range of stylistic variation in glyph shapes for seal script characters as the exact shape or any particular character may depend upon the space available to it in the fixed area of the seal surface. To fill in space the seal engraver may add in extra folds to a character, or simplify the form of a character when there is less room available; in Phags-pa seals this is particularly evident in the letters for the vowels "i" and "u" which expand and contract in complexity according to the constraints of space.

Thus my Phags-pa seal script font has multiple variants of most characters, with some characters having up to twelve glyph variants. The variants selected for inclusion in the font are based on examples of Yuan dynasty seals (and seal impressions) that I have come across as well as the list of seal script forms of Phags-pa letters given in Menggu Ziyun 蒙古字韻 (which I will discuss further another day). It has been difficult to decide which glyph form to use as the basic glyph of each character in the CMAP, but in the end I decided to go for the more ornate glyph forms even when simpler glyphs may be more commonly encountered for a particular character.

The next question was how to make the alternate glyph forms of each character available to the user. I have tried to solve this in two ways. Firstly I have implemented the Stylistic Alternates <salt> feature in the OpenType tables, but as I don't know of any application that actually allows users to select glyph alternates by means of this feature I have double-mapped all the Phags-pa glyphs in the font to the PUA at U+F000 through U+F36F so that users can construct any sequence of glyph forms they like (with judicious use of the joiner characters at U+F360 through U+F36F). Any feedback from users on accessing the stylistic alternates feature would be most welcome (I'm far from certain that this is the correct OpenType feature to use or that I and/or VOLT have implemented it correctly).

The following is an example of a Yuan dynasty seal (沿海巡防千戶之印), and below it the corresponding text input as Phags-pa codepoints (using the default glyphs); and below that the same text input as PUA characters selecting the closest glyph form available in the font.
{"extraction_info": {"found_math": false, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0, "math_score": 0.8136882781982422, "perplexity": 2399.348810945117}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "plain"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "warc_path": "s3://commoncrawl/crawl-data/CC-MAIN-2014-41/segments/1410657134511.2/warc/CC-MAIN-20140914011214-00290-ip-10-234-18-248.ec2.internal.warc.gz"}