Imported Upstream version 3.4.0
[platform/upstream/harfbuzz.git] / docs / html / harfbuzz-hb-ot-math.html
index b803cef..de3fabc 100644 (file)
@@ -5,23 +5,22 @@
 <title>hb-ot-math: 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="ch10.html" title="OpenType API">
+<link rel="up" href="opentype-api.html" title="OpenType API">
 <link rel="prev" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">
-<link rel="next" href="harfbuzz-hb-ot-name.html" title="hb-ot-name">
-<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
+<link rel="next" href="harfbuzz-hb-ot-meta.html" title="hb-ot-meta">
+<meta name="generator" content="GTK-Doc V1.32 (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">
 <a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-ot-math.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-ot-math.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+                  <a href="#harfbuzz-hb-ot-math.description" class="shortcut">Description</a></span>
 </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="ch10.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="u" href="opentype-api.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="harfbuzz-hb-ot-layout.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="harfbuzz-hb-ot-name.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="harfbuzz-hb-ot-meta.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="harfbuzz-hb-ot-math"></a><div class="titlepage"></div>
@@ -36,8 +35,8 @@
 <a name="harfbuzz-hb-ot-math.functions"></a><h2>Functions</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
-<col width="150px" class="functions_return">
-<col class="functions_name">
+<col width="150px" class="functions_proto_type">
+<col class="functions_proto_name">
 </colgroup>
 <tbody>
 <tr>
 </td>
 </tr>
 <tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-get-glyph-kernings" title="hb_ot_math_get_glyph_kernings ()">hb_ot_math_get_glyph_kernings</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
 <td class="function_type">
 <a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
 </td>
 </tbody>
 </table></div>
 </div>
-<a name="hb-ot-math-glyph-variant-t"></a><a name="hb-ot-math-glyph-part-t"></a><div class="refsect1">
+<div class="refsect1">
 <a name="harfbuzz-hb-ot-math.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
-<col width="150px" class="name">
-<col class="description">
+<col width="150px" class="other_proto_type">
+<col class="other_proto_name">
 </colgroup>
 <tbody>
 <tr>
 </tr>
 <tr>
 <td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#HB-OT-MATH-SCRIPT:CAPS" title="HB_OT_MATH_SCRIPT">HB_OT_MATH_SCRIPT</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#HB-OT-TAG-MATH-SCRIPT:CAPS" title="HB_OT_TAG_MATH_SCRIPT">HB_OT_TAG_MATH_SCRIPT</a></td>
 </tr>
 <tr>
 <td class="datatype_keyword">enum</td>
 </tr>
 <tr>
 <td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t-struct" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-entry-t" title="hb_ot_math_kern_entry_t">hb_ot_math_kern_entry_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" title="hb_ot_math_glyph_variant_t">hb_ot_math_glyph_variant_t</a></td>
 </tr>
 <tr>
 <td class="datatype_keyword">enum</td>
 </tr>
 <tr>
 <td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t-struct" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a></td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t">hb_ot_math_glyph_part_t</a></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="harfbuzz-hb-ot-math.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
-    <span class="lineart">├──</span> hb_ot_math_glyph_part_t
-    <span class="lineart">╰──</span> hb_ot_math_glyph_variant_t
-    <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
-    <span class="lineart">├──</span> hb_ot_math_constant_t
-    <span class="lineart">╰──</span> hb_ot_math_kern_t
-    <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
-    <span class="lineart">╰──</span> hb_ot_math_glyph_part_flags_t
-</pre>
-</div>
-<div class="refsect1">
 <a name="harfbuzz-hb-ot-math.includes"></a><h2>Includes</h2>
 <pre class="synopsis">#include &lt;hb-ot.h&gt;
 </pre>
 <div class="refsect1">
 <a name="harfbuzz-hb-ot-math.description"></a><h2>Description</h2>
 <p>Functions for fetching mathematics layout data from OpenType fonts.</p>
+<p>HarfBuzz itself does not implement a math layout solution. The
+functions and types provided can be used by client programs to access
+the font data necessary for typesetting OpenType Math layout.</p>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-ot-math.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="hb-ot-math-has-data"></a><h3>hb_ot_math_has_data ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_math_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
-<p>This function allows to verify the presence of an OpenType MATH table on the
-face.</p>
+hb_ot_math_has_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
+<p>Tests whether a face has a <code class="literal">MATH</code> table.</p>
 <div class="refsect3">
 <a name="hb-ot-math-has-data.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -191,14 +191,14 @@ face.</p>
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to test</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to test</p></td>
 <td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect3">
 <a name="hb-ot-math-has-data.returns"></a><h4>Returns</h4>
-<p> true if face has a MATH table, false otherwise</p>
+<p> <code class="literal">true</code> if the table is found, <code class="literal">false</code> otherwise</p>
 </div>
 <p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
@@ -206,13 +206,14 @@ face.</p>
 <div class="refsect2">
 <a name="hb-ot-math-get-constant"></a><h3>hb_ot_math_get_constant ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_ot_math_get_constant (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_constant (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
                          <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-constant-t" title="enum hb_ot_math_constant_t"><span class="type">hb_ot_math_constant_t</span></a> constant</code></em>);</pre>
-<p>This function returns the requested math constants as a <a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a>.
-If the request constant is HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN,
-HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN or
-HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN then the return value is
-actually an integer between 0 and 100 representing that percentage.</p>
+<p>Fetches the specified math constant. For most constants, the value returned
+is an <a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a>.</p>
+<p>However, if the requested constant is <a class="link" href="harfbuzz-hb-ot-math.html#HB-OT-MATH-CONSTANT-SCRIPT-PERCENT-SCALE-DOWN:CAPS"><span class="type">HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN</span></a>,
+<a class="link" href="harfbuzz-hb-ot-math.html#HB-OT-MATH-CONSTANT-SCRIPT-SCRIPT-PERCENT-SCALE-DOWN:CAPS"><span class="type">HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN</span></a> or
+<a class="link" href="harfbuzz-hb-ot-math.html#HB-OT-MATH-CONSTANT-SCRIPT-PERCENT-SCALE-DOWN:CAPS"><span class="type">HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN</span></a>, then the return value is
+an integer between 0 and 100 representing that percentage.</p>
 <div class="refsect3">
 <a name="hb-ot-math-get-constant.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -224,7 +225,7 @@ actually an integer between 0 and 100 representing that percentage.</p>
 <tbody>
 <tr>
 <td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to work upon</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -237,7 +238,7 @@ actually an integer between 0 and 100 representing that percentage.</p>
 </div>
 <div class="refsect3">
 <a name="hb-ot-math-get-constant.returns"></a><h4>Returns</h4>
-<p> the requested constant or 0</p>
+<p> the requested constant or zero</p>
 </div>
 <p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
@@ -246,8 +247,10 @@ actually an integer between 0 and 100 representing that percentage.</p>
 <a name="hb-ot-math-get-glyph-italics-correction"></a><h3>hb_ot_math_get_glyph_italics_correction ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
 hb_ot_math_get_glyph_italics_correction
-                               (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+                               (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
+<p>Fetches an italics-correction value (if one exists) for the specified
+glyph index.</p>
 <div class="refsect3">
 <a name="hb-ot-math-get-glyph-italics-correction.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -259,12 +262,12 @@ hb_ot_math_get_glyph_italics_correction
 <tbody>
 <tr>
 <td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to work upon</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>glyph index from which to retrieve the value</p></td>
+<td class="parameter_description"><p>The glyph index from which to retrieve the value</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -272,7 +275,7 @@ hb_ot_math_get_glyph_italics_correction
 </div>
 <div class="refsect3">
 <a name="hb-ot-math-get-glyph-italics-correction.returns"></a><h4>Returns</h4>
-<p> the italics correction of the glyph or 0</p>
+<p> the italics correction of the glyph or zero</p>
 </div>
 <p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
@@ -281,8 +284,16 @@ hb_ot_math_get_glyph_italics_correction
 <a name="hb-ot-math-get-glyph-top-accent-attachment"></a><h3>hb_ot_math_get_glyph_top_accent_attachment ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
 hb_ot_math_get_glyph_top_accent_attachment
-                               (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+                               (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
+<p>Fetches a top-accent-attachment value (if one exists) for the specified
+glyph index.</p>
+<p>For any glyph that does not have a top-accent-attachment value - that is,
+a glyph not covered by the <code class="literal">MathTopAccentAttachment</code> table (or, when
+<em class="parameter"><code>font</code></em>
+ has no <code class="literal">MathTopAccentAttachment</code> table or no <code class="literal">MATH</code> table, any
+glyph) - the function synthesizes a value, returning the position at
+one-half the glyph's advance width.</p>
 <div class="refsect3">
 <a name="hb-ot-math-get-glyph-top-accent-attachment.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -294,12 +305,12 @@ hb_ot_math_get_glyph_top_accent_attachment
 <tbody>
 <tr>
 <td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to work upon</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>glyph index from which to retrieve the value</p></td>
+<td class="parameter_description"><p>The glyph index from which to retrieve the value</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -307,7 +318,9 @@ hb_ot_math_get_glyph_top_accent_attachment
 </div>
 <div class="refsect3">
 <a name="hb-ot-math-get-glyph-top-accent-attachment.returns"></a><h4>Returns</h4>
-<p> the top accent attachment of the glyph or 0</p>
+<p> the top accent attachment of the glyph or 0.5 * the advance
+width of <em class="parameter"><code>glyph</code></em>
+</p>
 </div>
 <p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
@@ -315,15 +328,18 @@ hb_ot_math_get_glyph_top_accent_attachment
 <div class="refsect2">
 <a name="hb-ot-math-get-glyph-kerning"></a><h3>hb_ot_math_get_glyph_kerning ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_ot_math_get_glyph_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_glyph_kerning (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a> kern</code></em>,
                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> correction_height</code></em>);</pre>
-<p>This function tries to retrieve the MathKern table for the specified font,
-glyph and <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a>. Then it browses the list of heights from the
-MathKern table to find one value that is greater or equal to specified
-correction_height. If one is found the corresponding value from the list of
-kerns is returned and otherwise the last kern value is returned.</p>
+<p>Fetches the math kerning (cut-ins) value for the specified font, glyph index, and
+<em class="parameter"><code>kern</code></em>
+. </p>
+<p>If the MathKern table is found, the function examines it to find a height
+value that is greater or equal to <em class="parameter"><code>correction_height</code></em>
+. If such a height
+value is found, corresponding kerning value from the table is returned. If
+no such height value is found, the last kerning value is returned.</p>
 <div class="refsect3">
 <a name="hb-ot-math-get-glyph-kerning.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -335,17 +351,17 @@ kerns is returned and otherwise the last kern value is returned.</p>
 <tbody>
 <tr>
 <td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to work upon</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>glyph index from which to retrieve the value</p></td>
+<td class="parameter_description"><p>The glyph index from which to retrieve the value</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>kern</p></td>
-<td class="parameter_description"><p>the <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a> from which to retrieve the value</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -358,16 +374,89 @@ kerns is returned and otherwise the last kern value is returned.</p>
 </div>
 <div class="refsect3">
 <a name="hb-ot-math-get-glyph-kerning.returns"></a><h4>Returns</h4>
-<p> requested kerning or 0</p>
+<p> requested kerning value or zero</p>
 </div>
 <p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
 <hr>
 <div class="refsect2">
+<a name="hb-ot-math-get-glyph-kernings"></a><h3>hb_ot_math_get_glyph_kernings ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+hb_ot_math_get_glyph_kernings (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
+                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
+                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a> kern</code></em>,
+                               <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
+                               <em class="parameter"><code>unsigned <span class="type">int</span> *entries_count</code></em>,
+                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-entry-t" title="hb_ot_math_kern_entry_t"><span class="type">hb_ot_math_kern_entry_t</span></a> *kern_entries</code></em>);</pre>
+<p>Fetches the raw MathKern (cut-in) data for the specified font, glyph index,
+and <em class="parameter"><code>kern</code></em>
+. The corresponding list of kern values and correction heights is
+returned as a list of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-entry-t" title="hb_ot_math_kern_entry_t"><span class="type">hb_ot_math_kern_entry_t</span></a> structs.</p>
+<p>See also <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-get-glyph-kerning" title="hb_ot_math_get_glyph_kerning ()"><span class="type">hb_ot_math_get_glyph_kerning</span></a>, which handles selecting the
+appropriate kern value for a given correction height.</p>
+<div class="note">For a glyph with <em class="parameter"><code>n</code></em> defined kern values (where <em class="parameter"><code>n</code></em> &gt; 0), there are only
+<em class="parameter"><code>n</code></em>−1 defined correction heights, as each correction height defines a boundary
+past which the next kern value should be selected. Therefore, only the
+<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-entry-t.kern-value"><span class="type">hb_ot_math_kern_entry_t.kern_value</span></a> of the uppermost <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-entry-t" title="hb_ot_math_kern_entry_t"><span class="type">hb_ot_math_kern_entry_t</span></a>
+actually comes from the font; its corresponding
+<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-entry-t.max-correction-height"><span class="type">hb_ot_math_kern_entry_t.max_correction_height</span></a> is always set to
+<code class="code">INT32_MAX</code>.</div>
+<div class="refsect3">
+<a name="hb-ot-math-get-glyph-kernings.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to work upon</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyph</p></td>
+<td class="parameter_description"><p>The glyph index from which to retrieve the kernings</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>kern</p></td>
+<td class="parameter_description"><p>The <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-kern-t" title="enum hb_ot_math_kern_t"><span class="type">hb_ot_math_kern_t</span></a> from which to retrieve the kernings</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>start_offset</p></td>
+<td class="parameter_description"><p>offset of the first kern entry to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>entries_count</p></td>
+<td class="parameter_description"><p>Input = the maximum number of kern entries to return;
+Output = the actual number of kern entries returned. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>kern_entries</p></td>
+<td class="parameter_description"><p>array of kern entries returned. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=entries_count]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="hb-ot-math-get-glyph-kernings.returns"></a><h4>Returns</h4>
+<p> the total number of kern values available or zero</p>
+</div>
+<p class="since">Since: <a class="link" href="api-index-3-4-0.html#api-index-3.4.0">3.4.0</a></p>
+</div>
+<hr>
+<div class="refsect2">
 <a name="hb-ot-math-is-glyph-extended-shape"></a><h3>hb_ot_math_is_glyph_extended_shape ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
-hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
+hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> *face</code></em>,
                                     <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
+<p>Tests whether the given glyph index is an extended shape in the face.</p>
 <div class="refsect3">
 <a name="hb-ot-math-is-glyph-extended-shape.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -379,12 +468,12 @@ hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link"
 <tbody>
 <tr>
 <td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a <a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> to test</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-face.html#hb-face-t" title="hb_face_t"><span class="type">hb_face_t</span></a> to work upon</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>a glyph index to test</p></td>
+<td class="parameter_description"><p>The glyph index to test</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -392,7 +481,7 @@ hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link"
 </div>
 <div class="refsect3">
 <a name="hb-ot-math-is-glyph-extended-shape.returns"></a><h4>Returns</h4>
-<p> true if the glyph is an extended shape, false otherwise</p>
+<p> <code class="literal">true</code> if the glyph is an extended shape, <code class="literal">false</code> otherwise</p>
 </div>
 <p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
@@ -400,16 +489,19 @@ hb_ot_math_is_glyph_extended_shape (<em class="parameter"><code><a class="link"
 <div class="refsect2">
 <a name="hb-ot-math-get-glyph-variants"></a><h3>hb_ot_math_get_glyph_variants ()</h3>
 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_math_get_glyph_variants (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_glyph_variants (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
                                <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
                                <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
                                <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
                                <em class="parameter"><code>unsigned <span class="type">int</span> *variants_count</code></em>,
-                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t"><span class="type">hb_ot_math_glyph_variant_t</span></a> *variants</code></em>);</pre>
-<p>This function tries to retrieve the MathGlyphConstruction for the specified
-font, glyph and direction. Note that only the value of
-<a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is considered. It provides the corresponding list
-of size variants as an array of hb_ot_math_glyph_variant_t structs.</p>
+                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" title="hb_ot_math_glyph_variant_t"><span class="type">hb_ot_math_glyph_variant_t</span></a> *variants</code></em>);</pre>
+<p>Fetches the MathGlyphConstruction for the specified font, glyph index, and
+direction. The corresponding list of size variants is returned as a list of
+<a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-variant-t" title="hb_ot_math_glyph_variant_t"><span class="type">hb_ot_math_glyph_variant_t</span></a> structs.</p>
+<div class="note">The <em class="parameter"><code>direction</code></em> parameter is only used to select between horizontal
+or vertical directions for the construction. Even though all <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a>
+values are accepted, only the result of <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is
+considered.</div>
 <div class="refsect3">
 <a name="hb-ot-math-get-glyph-variants.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -421,17 +513,17 @@ of size variants as an array of hb_ot_math_glyph_variant_t structs.</p>
 <tbody>
 <tr>
 <td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the values</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to work upon</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>index of the glyph to stretch</p></td>
+<td class="parameter_description"><p>The index of the glyph to stretch</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>direction</p></td>
-<td class="parameter_description"><p>direction of the stretching</p></td>
+<td class="parameter_description"><p>The direction of the stretching (horizontal or vertical)</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -441,22 +533,21 @@ of size variants as an array of hb_ot_math_glyph_variant_t structs.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>variants_count</p></td>
-<td class="parameter_description"><p>maximum number of variants to retrieve after start_offset
-(IN) and actual number of variants retrieved (OUT)</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>Input = the maximum number of variants to return;
+Output = the actual number of variants returned. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>variants</p></td>
-<td class="parameter_description"><p>array of size at least <em class="parameter"><code>variants_count</code></em>
-to store the result</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>array of variants returned. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=variants_count]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
 <a name="hb-ot-math-get-glyph-variants.returns"></a><h4>Returns</h4>
-<p> the total number of size variants available or 0</p>
+<p> the total number of size variants available or zero</p>
 </div>
 <p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
@@ -464,12 +555,15 @@ to store the result</p></td>
 <div class="refsect2">
 <a name="hb-ot-math-get-min-connector-overlap"></a><h3>hb_ot_math_get_min_connector_overlap ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="returnvalue">hb_position_t</span></a>
-hb_ot_math_get_min_connector_overlap (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_min_connector_overlap (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
                                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>);</pre>
-<p>This function tries to retrieve the MathVariants table for the specified
-font and returns the minimum overlap of connecting glyphs to draw a glyph
-assembly in the specified direction. Note that only the value of
-<a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is considered.</p>
+<p>Fetches the MathVariants table for the specified font and returns the
+minimum overlap of connecting glyphs that are required to draw a glyph
+assembly in the specified direction.</p>
+<div class="note">The <em class="parameter"><code>direction</code></em> parameter is only used to select between horizontal
+or vertical directions for the construction. Even though all <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a>
+values are accepted, only the result of <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is
+considered.</div>
 <div class="refsect3">
 <a name="hb-ot-math-get-min-connector-overlap.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -481,12 +575,12 @@ assembly in the specified direction. Note that only the value of
 <tbody>
 <tr>
 <td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the value</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to work upon</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>direction</p></td>
-<td class="parameter_description"><p>direction of the stretching</p></td>
+<td class="parameter_description"><p>direction of the stretching (horizontal or vertical)</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
@@ -494,7 +588,7 @@ assembly in the specified direction. Note that only the value of
 </div>
 <div class="refsect3">
 <a name="hb-ot-math-get-min-connector-overlap.returns"></a><h4>Returns</h4>
-<p> requested min connector overlap or 0</p>
+<p> requested minimum connector overlap or zero</p>
 </div>
 <p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
@@ -502,17 +596,21 @@ assembly in the specified direction. Note that only the value of
 <div class="refsect2">
 <a name="hb-ot-math-get-glyph-assembly"></a><h3>hb_ot_math_get_glyph_assembly ()</h3>
 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
-hb_ot_math_get_glyph_assembly (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
+hb_ot_math_get_glyph_assembly (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> *font</code></em>,
                                <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
                                <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
                                <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
                                <em class="parameter"><code>unsigned <span class="type">int</span> *parts_count</code></em>,
-                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t"><span class="type">hb_ot_math_glyph_part_t</span></a> *parts</code></em>,
+                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t"><span class="type">hb_ot_math_glyph_part_t</span></a> *parts</code></em>,
                                <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *italics_correction</code></em>);</pre>
-<p>This function tries to retrieve the GlyphAssembly for the specified font,
-glyph and direction. Note that only the value of <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a>
-is considered. It provides the information necessary to draw the glyph
-assembly as an array of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t"><span class="type">hb_ot_math_glyph_part_t</span></a>.</p>
+<p>Fetches the GlyphAssembly for the specified font, glyph index, and direction.
+Returned are a list of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-t" title="hb_ot_math_glyph_part_t"><span class="type">hb_ot_math_glyph_part_t</span></a> glyph parts that can be
+used to draw the glyph and an italics-correction value (if one is defined
+in the font).</p>
+<div class="note">The <em class="parameter"><code>direction</code></em> parameter is only used to select between horizontal
+or vertical directions for the construction. Even though all <a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a>
+values are accepted, only the result of <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS" title="HB_DIRECTION_IS_HORIZONTAL()"><span class="type">HB_DIRECTION_IS_HORIZONTAL</span></a> is
+considered.</div>
 <div class="refsect3">
 <a name="hb-ot-math-get-glyph-assembly.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -524,17 +622,17 @@ assembly as an array of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-mat
 <tbody>
 <tr>
 <td class="parameter_name"><p>font</p></td>
-<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> from which to retrieve the values</p></td>
+<td class="parameter_description"><p><a class="link" href="harfbuzz-hb-font.html#hb-font-t" title="hb_font_t"><span class="type">hb_font_t</span></a> to work upon</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>glyph</p></td>
-<td class="parameter_description"><p>index of the glyph to stretch</p></td>
+<td class="parameter_description"><p>The index of the glyph to stretch</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
 <td class="parameter_name"><p>direction</p></td>
-<td class="parameter_description"><p>direction of the stretching</p></td>
+<td class="parameter_description"><p>direction of the stretching (horizontal or vertical)</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -544,20 +642,19 @@ assembly as an array of <a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-mat
 </tr>
 <tr>
 <td class="parameter_name"><p>parts_count</p></td>
-<td class="parameter_description"><p>maximum number of glyph parts to retrieve after start_offset
-(IN) and actual number of parts retrieved (OUT)</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>Input = maximum number of glyph parts to return;
+Output = actual number of parts returned. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>parts</p></td>
-<td class="parameter_description"><p>array of size at least <em class="parameter"><code>parts_count</code></em>
-to store the result</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>the glyph parts returned. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=parts_count]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>italics_correction</p></td>
-<td class="parameter_description"><p>italic correction of the glyph assembly</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>italics correction of the glyph assembly. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -575,16 +672,28 @@ to store the result</p></td>
 <a name="HB-OT-TAG-MATH:CAPS"></a><h3>HB_OT_TAG_MATH</h3>
 <pre class="programlisting">#define HB_OT_TAG_MATH HB_TAG('M','A','T','H')
 </pre>
+<p>OpenType <a class="ulink" href="https://docs.microsoft.com/en-us/typography/opentype/spec/math" target="_top">Mathematical Typesetting Table</a>.</p>
+<p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HB-OT-MATH-SCRIPT:CAPS"></a><h3>HB_OT_MATH_SCRIPT</h3>
-<pre class="programlisting">#define HB_OT_MATH_SCRIPT HB_TAG('m','a','t','h')
+<a name="HB-OT-TAG-MATH-SCRIPT:CAPS"></a><h3>HB_OT_TAG_MATH_SCRIPT</h3>
+<pre class="programlisting">#define HB_OT_TAG_MATH_SCRIPT HB_TAG('m','a','t','h')
 </pre>
+<p>OpenType script tag, <code class="literal">math</code>, for features specific to math shaping.</p>
+<div class="note">
+<a class="link" href="harfbuzz-hb-ot-math.html#HB-OT-TAG-MATH-SCRIPT:CAPS" title="HB_OT_TAG_MATH_SCRIPT"><span class="type">HB_OT_TAG_MATH_SCRIPT</span></a> is not a valid <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> and should only be
+used with functions that accept raw OpenType script tags, such as
+<a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-collect-features" title="hb_ot_layout_collect_features ()"><span class="type">hb_ot_layout_collect_features</span></a>. In other cases, <a class="link" href="harfbuzz-hb-common.html#HB-SCRIPT-MATH:CAPS"><span class="type">HB_SCRIPT_MATH</span></a> should be
+used instead.</div>
+<p class="since">Since: <a class="link" href="api-index-3-4-0.html#api-index-3.4.0">3.4.0</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-ot-math-constant-t"></a><h3>enum hb_ot_math_constant_t</h3>
+<p>The 'MATH' table constants, refer to
+<a class="ulink" href="https://docs.microsoft.com/en-us/typography/opentype/spec/math#mathconstants-table" target="_top">OpenType documentation</a>
+For more explanations.</p>
 <div class="refsect3">
 <a name="hb-ot-math-constant-t.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -596,283 +705,395 @@ to store the result</p></td>
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SCRIPT-PERCENT-SCALE-DOWN:CAPS"></a>HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>scriptPercentScaleDown</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SCRIPT-SCRIPT-PERCENT-SCALE-DOWN:CAPS"></a>HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>scriptScriptPercentScaleDown</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-DELIMITED-SUB-FORMULA-MIN-HEIGHT:CAPS"></a>HB_OT_MATH_CONSTANT_DELIMITED_SUB_FORMULA_MIN_HEIGHT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>delimitedSubFormulaMinHeight</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-DISPLAY-OPERATOR-MIN-HEIGHT:CAPS"></a>HB_OT_MATH_CONSTANT_DISPLAY_OPERATOR_MIN_HEIGHT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>displayOperatorMinHeight</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-MATH-LEADING:CAPS"></a>HB_OT_MATH_CONSTANT_MATH_LEADING</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>mathLeading</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-AXIS-HEIGHT:CAPS"></a>HB_OT_MATH_CONSTANT_AXIS_HEIGHT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>axisHeight</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-ACCENT-BASE-HEIGHT:CAPS"></a>HB_OT_MATH_CONSTANT_ACCENT_BASE_HEIGHT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>accentBaseHeight</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-FLATTENED-ACCENT-BASE-HEIGHT:CAPS"></a>HB_OT_MATH_CONSTANT_FLATTENED_ACCENT_BASE_HEIGHT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>flattenedAccentBaseHeight</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SUBSCRIPT-SHIFT-DOWN:CAPS"></a>HB_OT_MATH_CONSTANT_SUBSCRIPT_SHIFT_DOWN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>subscriptShiftDown</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SUBSCRIPT-TOP-MAX:CAPS"></a>HB_OT_MATH_CONSTANT_SUBSCRIPT_TOP_MAX</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>subscriptTopMax</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SUBSCRIPT-BASELINE-DROP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_SUBSCRIPT_BASELINE_DROP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>subscriptBaselineDropMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SUPERSCRIPT-SHIFT-UP:CAPS"></a>HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>superscriptShiftUp</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SUPERSCRIPT-SHIFT-UP-CRAMPED:CAPS"></a>HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP_CRAMPED</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>superscriptShiftUpCramped</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SUPERSCRIPT-BOTTOM-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>superscriptBottomMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SUPERSCRIPT-BASELINE-DROP-MAX:CAPS"></a>HB_OT_MATH_CONSTANT_SUPERSCRIPT_BASELINE_DROP_MAX</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>superscriptBaselineDropMax</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SUB-SUPERSCRIPT-GAP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_SUB_SUPERSCRIPT_GAP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>subSuperscriptGapMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SUPERSCRIPT-BOTTOM-MAX-WITH-SUBSCRIPT:CAPS"></a>HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>superscriptBottomMaxWithSubscript</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SPACE-AFTER-SCRIPT:CAPS"></a>HB_OT_MATH_CONSTANT_SPACE_AFTER_SCRIPT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>spaceAfterScript</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-UPPER-LIMIT-GAP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_UPPER_LIMIT_GAP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>upperLimitGapMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-UPPER-LIMIT-BASELINE-RISE-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_UPPER_LIMIT_BASELINE_RISE_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>upperLimitBaselineRiseMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-LOWER-LIMIT-GAP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_LOWER_LIMIT_GAP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>lowerLimitGapMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-LOWER-LIMIT-BASELINE-DROP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_LOWER_LIMIT_BASELINE_DROP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>lowerLimitBaselineDropMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-STACK-TOP-SHIFT-UP:CAPS"></a>HB_OT_MATH_CONSTANT_STACK_TOP_SHIFT_UP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>stackTopShiftUp</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-STACK-TOP-DISPLAY-STYLE-SHIFT-UP:CAPS"></a>HB_OT_MATH_CONSTANT_STACK_TOP_DISPLAY_STYLE_SHIFT_UP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>stackTopDisplayStyleShiftUp</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-STACK-BOTTOM-SHIFT-DOWN:CAPS"></a>HB_OT_MATH_CONSTANT_STACK_BOTTOM_SHIFT_DOWN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>stackBottomShiftDown</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-STACK-BOTTOM-DISPLAY-STYLE-SHIFT-DOWN:CAPS"></a>HB_OT_MATH_CONSTANT_STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>stackBottomDisplayStyleShiftDown</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-STACK-GAP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_STACK_GAP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>stackGapMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-STACK-DISPLAY-STYLE-GAP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_STACK_DISPLAY_STYLE_GAP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>stackDisplayStyleGapMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-STRETCH-STACK-TOP-SHIFT-UP:CAPS"></a>HB_OT_MATH_CONSTANT_STRETCH_STACK_TOP_SHIFT_UP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>stretchStackTopShiftUp</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-STRETCH-STACK-BOTTOM-SHIFT-DOWN:CAPS"></a>HB_OT_MATH_CONSTANT_STRETCH_STACK_BOTTOM_SHIFT_DOWN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>stretchStackBottomShiftDown</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-STRETCH-STACK-GAP-ABOVE-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_ABOVE_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>stretchStackGapAboveMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-STRETCH-STACK-GAP-BELOW-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_BELOW_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>stretchStackGapBelowMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-FRACTION-NUMERATOR-SHIFT-UP:CAPS"></a>HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_SHIFT_UP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>fractionNumeratorShiftUp</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-FRACTION-NUMERATOR-DISPLAY-STYLE-SHIFT-UP:CAPS"></a>HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>fractionNumeratorDisplayStyleShiftUp</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-FRACTION-DENOMINATOR-SHIFT-DOWN:CAPS"></a>HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_SHIFT_DOWN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>fractionDenominatorShiftDown</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-FRACTION-DENOMINATOR-DISPLAY-STYLE-SHIFT-DOWN:CAPS"></a>HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>fractionDenominatorDisplayStyleShiftDown</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-FRACTION-NUMERATOR-GAP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_GAP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>fractionNumeratorGapMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-FRACTION-NUM-DISPLAY-STYLE-GAP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_FRACTION_NUM_DISPLAY_STYLE_GAP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>fractionNumDisplayStyleGapMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-FRACTION-RULE-THICKNESS:CAPS"></a>HB_OT_MATH_CONSTANT_FRACTION_RULE_THICKNESS</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>fractionRuleThickness</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-FRACTION-DENOMINATOR-GAP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_GAP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>fractionDenominatorGapMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-FRACTION-DENOM-DISPLAY-STYLE-GAP-MIN:CAPS"></a>HB_OT_MATH_CONSTANT_FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>fractionDenomDisplayStyleGapMin</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SKEWED-FRACTION-HORIZONTAL-GAP:CAPS"></a>HB_OT_MATH_CONSTANT_SKEWED_FRACTION_HORIZONTAL_GAP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>skewedFractionHorizontalGap</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-SKEWED-FRACTION-VERTICAL-GAP:CAPS"></a>HB_OT_MATH_CONSTANT_SKEWED_FRACTION_VERTICAL_GAP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>skewedFractionVerticalGap</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-OVERBAR-VERTICAL-GAP:CAPS"></a>HB_OT_MATH_CONSTANT_OVERBAR_VERTICAL_GAP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>overbarVerticalGap</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-OVERBAR-RULE-THICKNESS:CAPS"></a>HB_OT_MATH_CONSTANT_OVERBAR_RULE_THICKNESS</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>overbarRuleThickness</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-OVERBAR-EXTRA-ASCENDER:CAPS"></a>HB_OT_MATH_CONSTANT_OVERBAR_EXTRA_ASCENDER</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>overbarExtraAscender</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-UNDERBAR-VERTICAL-GAP:CAPS"></a>HB_OT_MATH_CONSTANT_UNDERBAR_VERTICAL_GAP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>underbarVerticalGap</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-UNDERBAR-RULE-THICKNESS:CAPS"></a>HB_OT_MATH_CONSTANT_UNDERBAR_RULE_THICKNESS</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>underbarRuleThickness</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-UNDERBAR-EXTRA-DESCENDER:CAPS"></a>HB_OT_MATH_CONSTANT_UNDERBAR_EXTRA_DESCENDER</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>underbarExtraDescender</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-RADICAL-VERTICAL-GAP:CAPS"></a>HB_OT_MATH_CONSTANT_RADICAL_VERTICAL_GAP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>radicalVerticalGap</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-RADICAL-DISPLAY-STYLE-VERTICAL-GAP:CAPS"></a>HB_OT_MATH_CONSTANT_RADICAL_DISPLAY_STYLE_VERTICAL_GAP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>radicalDisplayStyleVerticalGap</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-RADICAL-RULE-THICKNESS:CAPS"></a>HB_OT_MATH_CONSTANT_RADICAL_RULE_THICKNESS</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>radicalRuleThickness</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-RADICAL-EXTRA-ASCENDER:CAPS"></a>HB_OT_MATH_CONSTANT_RADICAL_EXTRA_ASCENDER</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>radicalExtraAscender</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-RADICAL-KERN-BEFORE-DEGREE:CAPS"></a>HB_OT_MATH_CONSTANT_RADICAL_KERN_BEFORE_DEGREE</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>radicalKernBeforeDegree</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-RADICAL-KERN-AFTER-DEGREE:CAPS"></a>HB_OT_MATH_CONSTANT_RADICAL_KERN_AFTER_DEGREE</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>radicalKernAfterDegree</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-CONSTANT-RADICAL-DEGREE-BOTTOM-RAISE-PERCENT:CAPS"></a>HB_OT_MATH_CONSTANT_RADICAL_DEGREE_BOTTOM_RAISE_PERCENT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>radicalDegreeBottomRaisePercent</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -882,6 +1103,8 @@ to store the result</p></td>
 <hr>
 <div class="refsect2">
 <a name="hb-ot-math-kern-t"></a><h3>enum hb_ot_math_kern_t</h3>
+<p>The math kerning-table types defined for the four corners
+of a glyph.</p>
 <div class="refsect3">
 <a name="hb-ot-math-kern-t.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -893,23 +1116,31 @@ to store the result</p></td>
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-KERN-TOP-RIGHT:CAPS"></a>HB_OT_MATH_KERN_TOP_RIGHT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>The top right corner of the glyph.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-KERN-TOP-LEFT:CAPS"></a>HB_OT_MATH_KERN_TOP_LEFT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>The top left corner of the glyph.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-KERN-BOTTOM-RIGHT:CAPS"></a>HB_OT_MATH_KERN_BOTTOM_RIGHT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>The bottom right corner of the glyph.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="HB-OT-MATH-KERN-BOTTOM-LEFT:CAPS"></a>HB_OT_MATH_KERN_BOTTOM_LEFT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>The bottom left corner of the glyph.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -918,17 +1149,74 @@ to store the result</p></td>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hb-ot-math-glyph-variant-t-struct"></a><h3>hb_ot_math_glyph_variant_t</h3>
+<a name="hb-ot-math-kern-entry-t"></a><h3>hb_ot_math_kern_entry_t</h3>
+<pre class="programlisting">typedef struct {
+  hb_position_t max_correction_height;
+  hb_position_t kern_value;
+} hb_ot_math_kern_entry_t;
+</pre>
+<p>Data type to hold math kerning (cut-in) information for a glyph.</p>
+<div class="refsect3">
+<a name="hb-ot-math-kern-entry-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-ot-math-kern-entry-t.max-correction-height"></a>max_correction_height</code></em>;</p></td>
+<td class="struct_member_description"><p>The maximum height at which this entry should be used</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-ot-math-kern-entry-t.kern-value"></a>kern_value</code></em>;</p></td>
+<td class="struct_member_description"><p>The kern value of the entry</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="api-index-3-4-0.html#api-index-3.4.0">3.4.0</a></p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-ot-math-glyph-variant-t"></a><h3>hb_ot_math_glyph_variant_t</h3>
 <pre class="programlisting">typedef struct {
   hb_codepoint_t glyph;
   hb_position_t advance;
 } hb_ot_math_glyph_variant_t;
 </pre>
+<p>Data type to hold math-variant information for a glyph.</p>
+<div class="refsect3">
+<a name="hb-ot-math-glyph-variant-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-variant-t.glyph"></a>glyph</code></em>;</p></td>
+<td class="struct_member_description"><p>The glyph index of the variant</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-variant-t.advance"></a>advance</code></em>;</p></td>
+<td class="struct_member_description"><p>The advance width of the variant</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 <p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-ot-math-glyph-part-flags-t"></a><h3>enum hb_ot_math_glyph_part_flags_t</h3>
+<p>Flags for math glyph parts.</p>
 <div class="refsect3">
 <a name="hb-ot-math-glyph-part-flags-t.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -938,9 +1226,12 @@ to store the result</p></td>
 <col width="200px" class="enum_members_annotations">
 </colgroup>
 <tbody><tr>
-<td class="enum_member_name"><p><a name="HB-MATH-GLYPH-PART-FLAG-EXTENDER:CAPS"></a>HB_MATH_GLYPH_PART_FLAG_EXTENDER</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_name"><p><a name="HB-OT-MATH-GLYPH-PART-FLAG-EXTENDER:CAPS"></a>HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER</p></td>
+<td class="enum_member_description">
+<p>This is an extender glyph part that
+can be repeated to reach the desired length.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
@@ -948,7 +1239,7 @@ to store the result</p></td>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hb-ot-math-glyph-part-t-struct"></a><h3>hb_ot_math_glyph_part_t</h3>
+<a name="hb-ot-math-glyph-part-t"></a><h3>hb_ot_math_glyph_part_t</h3>
 <pre class="programlisting">typedef struct {
   hb_codepoint_t glyph;
   hb_position_t start_connector_length;
@@ -957,11 +1248,51 @@ to store the result</p></td>
   hb_ot_math_glyph_part_flags_t flags;
 } hb_ot_math_glyph_part_t;
 </pre>
+<p>Data type to hold information for a "part" component of a math-variant glyph.
+Large variants for stretchable math glyphs (such as parentheses) can be constructed
+on the fly from parts.</p>
+<div class="refsect3">
+<a name="hb-ot-math-glyph-part-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-part-t.glyph"></a>glyph</code></em>;</p></td>
+<td class="struct_member_description"><p>The glyph index of the variant part</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-part-t.start-connector-length"></a>start_connector_length</code></em>;</p></td>
+<td class="struct_member_description"><p>The length of the connector on the starting side of the variant part</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-part-t.end-connector-length"></a>end_connector_length</code></em>;</p></td>
+<td class="struct_member_description"><p>The length of the connector on the ending side of the variant part</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-part-t.full-advance"></a>full_advance</code></em>;</p></td>
+<td class="struct_member_description"><p>The total advance of the part</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-flags-t" title="enum hb_ot_math_glyph_part_flags_t"><span class="type">hb_ot_math_glyph_part_flags_t</span></a> <em class="structfield"><code><a name="hb-ot-math-glyph-part-t.flags"></a>flags</code></em>;</p></td>
+<td class="struct_member_description"><p><a class="link" href="harfbuzz-hb-ot-math.html#hb-ot-math-glyph-part-flags-t" title="enum hb_ot_math_glyph_part_flags_t"><span class="type">hb_ot_math_glyph_part_flags_t</span></a> flags for the part</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 <p class="since">Since: <a class="link" href="api-index-1-3-3.html#api-index-1.3.3">1.3.3</a></p>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
+<hr>Generated by GTK-Doc V1.32</div>
 </body>
 </html>
\ No newline at end of file