From 8d36300154d8fd774abebf8348cfdd6af971c50d Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Fri, 3 Jun 2022 21:00:08 +0200 Subject: [PATCH] =?UTF-8?q?[doc]=20Talk=20less=20about=20=E2=80=9Ccomplex?= =?UTF-8?q?=E2=80=9D=20scripts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use more neutral terms and don’t make it like some scripts are outliers. --- docs/usermanual-clusters.xml | 2 +- docs/usermanual-getting-started.xml | 2 +- docs/usermanual-opentype-features.xml | 4 +-- docs/usermanual-shaping-concepts.xml | 45 +++++++++++---------------- 4 files changed, 23 insertions(+), 30 deletions(-) diff --git a/docs/usermanual-clusters.xml b/docs/usermanual-clusters.xml index 9147ff0a5..4f2825c0b 100644 --- a/docs/usermanual-clusters.xml +++ b/docs/usermanual-clusters.xml @@ -419,7 +419,7 @@
Reordering in levels 0 and 1 - Another common operation in the more complex shapers is glyph + Another common operation in some shapers is glyph reordering. In order to maintain a monotonic cluster sequence when glyph reordering takes place, HarfBuzz merges the clusters of everything in the reordering sequence. diff --git a/docs/usermanual-getting-started.xml b/docs/usermanual-getting-started.xml index e7241a694..eb8c1d728 100644 --- a/docs/usermanual-getting-started.xml +++ b/docs/usermanual-getting-started.xml @@ -117,7 +117,7 @@ implements separate shapers for Indic, Arabic, Thai and Lao, Khmer, Myanmar, Tibetan, Hangul, Hebrew, the Universal Shaping Engine (USE), and a default shaper for - non-complex scripts. + scripts with no script-specific shaping model. diff --git a/docs/usermanual-opentype-features.xml b/docs/usermanual-opentype-features.xml index e9ea14534..a3816fdf7 100644 --- a/docs/usermanual-opentype-features.xml +++ b/docs/usermanual-opentype-features.xml @@ -65,7 +65,7 @@ The algorithms - used for complex scripts can be quite involved; HarfBuzz tries + used for shaping can be quite involved; HarfBuzz tries to be compatible with the OpenType Layout specification and, wherever there is any ambiguity, HarfBuzz attempts to replicate the output of Microsoft's Uniscribe engine. See the Some OpenType features are defined for the purpose of supporting - complex-script shaping, and are automatically activated, but + script-specific shaping, and are automatically activated, but only when a buffer's script property is set to a script that the feature supports. diff --git a/docs/usermanual-shaping-concepts.xml b/docs/usermanual-shaping-concepts.xml index db4e30983..e1a2eceee 100644 --- a/docs/usermanual-shaping-concepts.xml +++ b/docs/usermanual-shaping-concepts.xml @@ -22,7 +22,7 @@ correct amount for each successive glyph. - But, for complex scripts, any combination of + But, for other scripts (often unceremoniously called complex scripts), any combination of several shaping operations may be required, and the rules for how and when they are applied vary from script to script. HarfBuzz and other shaping engines implement these rules. @@ -36,42 +36,35 @@
-
- Complex scripts +
+ Script-specific shaping - In text-shaping terminology, scripts are generally classified as - either complex or non-complex. - - - Complex scripts are those for which transforming the input - sequence into the final layout requires some combination of + In many scripts, transforming the input + sequence into the final layout often requires some combination of operations—such as context-dependent substitutions, context-dependent mark positioning, glyph-to-glyph joining, glyph reordering, or glyph stacking. - In some complex scripts, the shaping rules require that a text + In some scripts, the shaping rules require that a text run be divided into syllables before the operations can be - applied. Other complex scripts may apply shaping operations over + applied. Other scripts may apply shaping operations over entire words or over the entire text run, with no subdivision required. - Non-complex scripts, by definition, do not require these - operations. However, correctly shaping a text run in a - non-complex script may still involve Unicode normalization, + Other scripts, do not require these + operations. However, correctly shaping a text run in + any script may still involve Unicode normalization, ligature substitutions, mark positioning, kerning, and applying - other font features. The key difference is that a text run in a - non-complex script can be processed sequentially and in the same - order as the input sequence of Unicode codepoints, without - requiring an analysis stage. + other font features.
Shaping operations - Shaping a complex-script text run involves transforming the + Shaping a text run involves transforming the input sequence of Unicode codepoints with some combination of operations that is specified in the shaping model for the script. @@ -81,7 +74,7 @@ text run varies from script to script, as do the order that the operations are performed in and which codepoints are affected. However, the same general set of shaping operations is - common to all of the complex-script shaping models. + common to all of the script shaping models. @@ -92,7 +85,7 @@ some other ("visual") position. - The shaping model for a given complex script might involve + The shaping model for a given script might involve more than one reordering step. @@ -119,7 +112,7 @@ particular string pattern. - The shaping model for a given complex script might involve + The shaping model for a given script might involve multiple contextual-substitution operations, each applying to different target glyphs and patterns, and which are performed in separate steps. @@ -138,7 +131,7 @@ Many contextual positioning operations are used to place mark glyphs (such as diacritics, vowel signs, and tone markers) with respect to - base glyphs. However, some complex + base glyphs. However, some scripts may use contextual positioning operations to correctly place base glyphs as well, such as when the script uses stacking characters. @@ -194,7 +187,7 @@ multiple positions). - Some complex scripts require that the text run be split into + Some scripts require that the text run be split into syllables. What constitutes a valid syllable in these scripts is specified in regular expressions, formed from the Letter and Mark codepoints, that take the UISC and UIPC @@ -235,7 +228,7 @@ The default shaping model handles all - non-complex scripts, and may also be used as a fallback for + scripts with no script-specific shaping model, and may also be used as a fallback for handling unrecognized scripts. @@ -310,7 +303,7 @@ The Universal Shaping Engine (USE) - shaping model supports complex scripts not covered by one of + shaping model supports scripts not covered by one of the above, script-specific shaping models, including Javanese, Balinese, Buginese, Batak, Chakma, Lepcha, Modi, Phags-pa, Tagalog, Siddham, Sundanese, Tai Le, Tai Tham, Tai