| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>Terminology: HarfBuzz Manual</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> |
| <link rel="home" href="index.html" title="HarfBuzz Manual"> |
| <link rel="up" href="getting-started.html" title="Getting started with HarfBuzz"> |
| <link rel="prev" href="getting-started.html" title="Getting started with HarfBuzz"> |
| <link rel="next" href="ch03s03.html" title="A simple shaping example"> |
| <meta name="generator" content="GTK-Doc V1.25 (XML mode)"> |
| <link rel="stylesheet" href="style.css" type="text/css"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> |
| <td width="100%" align="left" class="shortcuts"></td> |
| <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
| <td><a accesskey="u" href="getting-started.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
| <td><a accesskey="p" href="getting-started.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> |
| <td><a accesskey="n" href="ch03s03.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> |
| </tr></table> |
| <div class="section"> |
| <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
| <a name="id-1.2.4.3"></a>Terminology</h2></div></div></div> |
| <p> |
| |
| </p> |
| <div class="variablelist"><table border="0" class="variablelist"> |
| <colgroup> |
| <col align="left" valign="top"> |
| <col> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td><p><span class="term">script</span></p></td> |
| <td> |
| <p> |
| In text shaping, a <span class="emphasis"><em>script</em></span> is a |
| writing system: a set of symbols, rules, and conventions |
| that is used to represent a language or multiple |
| languages. |
| </p> |
| <p> |
| In general computing lingo, the word "script" can also |
| be used to mean an executable program (usually one |
| written in a human-readable programming language). For |
| the sake of clarity, HarfBuzz documents will always use |
| more specific terminology when referring to this |
| meaning, such as "Python script" or "shell script." In |
| all other instances, "script" refers to a writing system. |
| </p> |
| <p> |
| For developers using HarfBuzz, it is important to note |
| the distinction between a script and a language. Most |
| scripts are used to write a variety of different |
| languages, and many languages may be written in more |
| than one script. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term">shaper</span></p></td> |
| <td><p> |
| In HarfBuzz, a <span class="emphasis"><em>shaper</em></span> is a |
| handler for a specific script-shaping model. HarfBuzz |
| 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. |
| </p></td> |
| </tr> |
| <tr> |
| <td><p><span class="term">cluster</span></p></td> |
| <td> |
| <p> |
| In text shaping, a <span class="emphasis"><em>cluster</em></span> is a |
| sequence of codepoints that must be treated as an |
| indivisible unit. Clusters can include code-point |
| sequences that form a ligature or base-and-mark |
| sequences. Tracking and preserving clusters is important |
| when shaping operations might separate or reorder |
| code points. |
| </p> |
| <p> |
| HarfBuzz provides three cluster |
| <span class="emphasis"><em>levels</em></span> that implement different |
| approaches to the problem of preserving clusters during |
| shaping operations. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term">grapheme</span></p></td> |
| <td> |
| <p> |
| In linguistics, a <span class="emphasis"><em>grapheme</em></span> is one |
| of the indivisible units that make up a writing system or |
| script. Often, graphemes are individual symbols (letters, |
| numbers, punctuation marks, logograms, etc.) but, |
| depending on the writing system, a particular grapheme |
| might correspond to a sequence of several Unicode code |
| points. |
| </p> |
| <p> |
| In practice, HarfBuzz and other text-shaping engines |
| are not generally concerned with graphemes. However, it |
| is important for developers using HarfBuzz to recognize |
| that there is a difference between graphemes and shaping |
| clusters (see above). The two concepts may overlap |
| frequently, but there is no guarantee that they will be |
| identical. |
| </p> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term">syllable</span></p></td> |
| <td> |
| <p> |
| In linguistics, a <span class="emphasis"><em>syllable</em></span> is an |
| a sequence of sounds that makes up a building block of a |
| particular language. Every language has its own set of |
| rules describing what constitutes a valid syllable. |
| </p> |
| <p> |
| For text-shaping purposes, the various definitions of |
| "syllable" are important because script-specific shaping |
| operations may be applied at the syllable level. For |
| example, a reordering rule might specify that a vowel |
| mark be reordered to the beginning of the syllable. |
| </p> |
| <p> |
| Syllables will consist of one or more Unicode code |
| points. The definition of a syllable for a particular |
| writing system might correspond to how HarfBuzz |
| identifies clusters (see above) for the same writing |
| system. However, it is important for developers using |
| HarfBuzz to recognize that there is a difference between |
| syllables and shaping clusters. The two concepts may |
| overlap frequently, but there is no guarantee that they |
| will be identical. |
| </p> |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="footer"> |
| <hr>Generated by GTK-Doc V1.25</div> |
| </body> |
| </html> |