<!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>