Skip to content

pkzr15/opentype-shaping-documents

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenType shaping documents

Sponsored by YesLogic

Thanks also to the developers of HarfBuzz and AllSorts, plus many other font engineers and text-encoding experts for their generosity of time and insightful contributions.

        🆆 🅰 🆁 🅽 🅸 🅽 🅶

This repository is an active WORK IN PROGRESS.

NONE of the documents you currently see here are complete nor are they suitable for reference. PLEASE do not use them as a guide or as a general information source.

As long as this warning text remains visible, the above holds true.

At present, we are seeking comments and bugfixes on the Indic-script, Arabic-like, Hangul, Hebrew, Thai/Lao, Tibetan, Khmer, Myanmar, default, and USE documents. Interested readers and contributors can begin at the

shaping documents and are encouraged to submit their feedback on the text or images of any of the linked scripts. The documents are organized by script; where there are multiple shaping models for a particular script (including deprecated models), the various models are all addressed in the same script-specific document.

The documents also include a description of normalization in the OpenType shaping context, which differs from Unicode normalization in several respects.

Various notes about the document set and the details of its scope, limitations, and quirks are also provided.

Some errata about the "upstream" specifications and reference documents are noted separately.

In its final form, this repository will hold documentation describing the shaping behavior used for layout of OpenType text. In particular, it will focus on complex scripts.

In addition to the primary, per-script documents, implementers and other interesteed readers are encouraged to check the character tables for correctness and to examine the image-generation logs to identify issues seen in the inline images.

Sources

These documents draw from the following existing resources:

  1. The Microsoft Script development specifications, which document the behaviors expected for OpenType Layout fonts and provide guidance & examples for type designers.
  2. Related portions of the OpenType specification, such as the OpenType Layout tag registry and OpenType Layout common table formats, which list and define feature tags, script & language tags, and other internals of compliant OpenType font binaries.
  3. The HarfBuzz project, which includes a free-software/open-source implementation of OpenType Layout shaping with full source code and documentation.
  4. The Allsorts project, which includes a free-software/open-source implementation of OpenType Layout shaping with full source code and documentation.
  5. The Unicode Standard and related Unicode Consortium projects such as the Unicode Character Database, which defines Unicode code points and formal character properties used in shaping.
  6. The YesLogic text corpus, which includes real-world text data for several Indic scripts, scraped from Wikipedia, Reddit, and multiple online news sources. This data is used to test shaping in Allsorts and Prince.
  7. Known but unofficial information about other shaping-engine projects. Primarily this includes tests and reproducible issues found via HarfBuzz, because HarfBuzz intentionally aims to produce results that will 100% match the output of Microsoft Uniscribe (not counting cases where Uniscribe's output is known to be incorrect, of course).

    Note: occasionally, tests or issues documenting the behavior of Apple CoreText are also included, but CoreText compatibility is not an explicit goal for HarfBuzz.

About

Documentation of OpenType shaping behavior

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published