shithub: freetype+ttf2subf

Download patch

ref: 15d3dcd90019556c13deb405d7e3b0f491ae3054
parent: 6f36900589509f324260c359d0ffac1349a8c90d
author: Werner Lemberg <[email protected]>
date: Fri Nov 10 12:10:14 EST 2000

Revised.

git/fs: mount .git/fs: mount/attach disallowed
--- a/docs/glyphs/glyphs-6.html
+++ b/docs/glyphs/glyphs-6.html
@@ -199,12 +199,15 @@
         b. Outline descriptor
       </h4>
 
-      <p>A FreeType outline is described through a simple structure, called
-      <tt>FT_Outline</tt>, which fields are:</p>
+      <p>A FreeType outline is described through a simple structure:</p>
 
       <center>
       <table cellspacing=3
              cellpadding=3>
+      <caption>
+        <b><tt>FT_Outline</tt></b>
+      </caption>
+
       <tr>
         <td>
           <tt>n_points</tt>
@@ -267,7 +270,7 @@
 
 
     <a name="section-2">
-    <hr3>
+    <h3>
       2. Bounding and control box computations
     </h3>
 
--- a/docs/glyphs/glyphs-7.html
+++ b/docs/glyphs/glyphs-7.html
@@ -1,12 +1,13 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en"
+          "http://www.w3.org/TR/REC-html40/loose.dtd">
 <html>
 <head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="blob">
-   <meta name="GENERATOR" content="Mozilla/4.5 [fr] (Win98; I) [Netscape]">
-   <title>FreeType Glyph Conventions</title>
+  <meta http-equiv="Content-Type"
+        content="text/html; charset=iso-8859-1">
+  <meta name="Author"
+        content="David Turner">
+  <title>FreeType Glyph Conventions</title>
 </head>
-<body>
 
 <body text="#000000"
       bgcolor="#FFFFFF"
@@ -14,278 +15,342 @@
       vlink="#51188E"
       alink="#FF0000">
 
-<center>
-<h1>
-FreeType Glyph Conventions</h1></center>
+<h1 align=center>
+  FreeType Glyph Conventions
+</h1>
 
-<center>
-<h2>
-version 2.1</h2></center>
+<h2 align=center>
+  Version&nbsp;2.1
+</h2>
 
-<center>
-<h3>
-Copyright 1998-2000 David Turner (<a href="mailto:[email protected]">[email protected]</a>)<br>
-Copyright 2000 The FreeType Development Team (<a href="[email protected]">[email protected]</a>)</h3></center>
+<h3 align=center>
+  Copyright&nbsp;1998-2000 David Turner (<a
+  href="mailto:[email protected]">[email protected]</a>)<br>
+  Copyright&nbsp;2000 The FreeType Development Team (<a
+  href="mailto:[email protected]">[email protected]</a>)
+</h3>
 
-<center><table width=650><tr><td>
-
-<center><table width="100%" border=0 cellpadding=5><tr bgcolor="#CCFFCC" valign=center>
-<td align=center width="30%">
-<a href="glyphs-6.html">Previous</a>
-</td>
-<td align=center width="30%">
-<a href="index.html">Contents</a>
-</td>
-<td align=center width="30%">
-&nbsp;
-</td>
-</tr></table></center>
-
-
-<table width="100%"><tr valign=center bgcolor="#CCCCFF"><td><h2>
-VII. FreeType Bitmaps
-</h2></td></tr></table>
+<center>
+<table width="65%">
+<tr><td>
 
+  <center>
+  <table width="100%"
+         border=0
+         cellpadding=5>
+  <tr bgcolor="#CCFFCC"
+      valign=center>
+    <td align=center
+        width="30%">
+      <a href="glyphs-6.html">Previous</a>
+    </td>
+    <td align=center
+        width="30%">
+      <a href="index.html">Contents</a>
+    </td>
+    <td align=center
+        width="30%">
+      &nbsp;
+    </td>
+  </tr>
+  </table>
+  </center>
 
-<p>The purpose of this section is to present the way FreeType
-manages bitmaps and pixmaps, and how they relate to the concepts previously
-defined. The relationships between vectorial and pixel coordinates is
-explained.
-</p>
+  <p><hr></p>
 
-<h3><a name="section-1">
-1. Vectorial versus pixel coordinates :
-</h3><blockquote>
+  <table width="100%">
+  <tr bgcolor="#CCCCFF"
+      valign=center><td>
+    <h2>
+      VII. FreeType bitmaps
+    </h2>
+  </td></tr>
+  </table>
 
-<p>This sub-section explains the differences between vectorial
-and pixel coordinates. To make things clear, brackets will be used to describe
-pixel coordinates, e.g. [3,5], while parentheses will be used for vectorial
-ones, e.g. (-2,3.5).
-<p>In the pixel case, as we use the <i>Y upwards</i> convention, the coordinate
-[0,0] always refers to the <i>lower left pixel</i> of a bitmap, while coordinate
-[width-1, rows-1] to its <i>upper right pixel</i>.
-<p>In the vectorial case, point coordinates are expressed in floating units,
-like (1.25, -2.3). Such a position doesn't refer to a given pixel, but
-simply to an immaterial point in the 2D plane
-<p>The pixels themselves are indeed <i>square boxes</i> of the 2D plane,
-which centers lie in half pixel coordinates. For example, the <i>lower
-left pixel</i> of a bitmap is delimited by the <i>square</i> (0,0)-(1,1),
-its center being at location (0.5,0.5).
-<p>This introduces some differences when computing distances. For example,
-the "<i>length</i>" in pixels of the line [0,0]-[10,0] is 11. However,
-the vectorial distance between (0,0)-(10,0) covers exactly 10 pixel centers,
-hence its length if 10.
-<center><img SRC="grid_1.png" height=390 width=402></center>
+    <p>The purpose of this section is to present the way FreeType manages
+    bitmaps and pixmaps, and how they relate to the concepts previously
+    defined.  The relationships between vectorial and pixel coordinates is
+    explained.</p>
 
 
-</blockquote><h3><a name="section-2">
-2. FreeType bitmap and pixmap descriptor :
-</h3><blockquote>
+    <a name="section-1">
+    <h3>
+      1. Vectorial versus pixel coordinates
+    </h3>
 
-<p>A bitmap or pixmap is described through a single structure,
-called <tt>FT_Bitmap</tt>, defined in the file
-<tt>&lt;freetype/ftimage.h&gt;</tt>. It is a simple descriptor whose fields are:</p>
+    <p>This sub-section explains the differences between vectorial and pixel
+    coordinates.  To make things clear, brackets will be used to describe
+    pixel coordinates, e.g. [3,5], while parentheses will be used for
+    vectorial ones, e.g. (-2,3.5).</p>
 
-<center><table CELLSPACING=3 CELLPADDING=5 BGCOLOR="#CCCCCC" width="80%" >
-<caption><tt>FT_Bitmap</tt></caption>
+    <p>In the pixel case, as we use the <em>Y&nbsp;upwards</em> convention;
+    the coordinate [0,0] always refers to the <em>lower left pixel</em> of a
+    bitmap, while coordinate [width-1, rows-1] to its <em>upper right
+    pixel</em>.</p>
 
-<tr>
-<td><b>rows</b></td>
+    <p>In the vectorial case, point coordinates are expressed in floating
+    units, like (1.25, -2.3). Such a position doesn't refer to a given
+    pixel, but simply to an immaterial point in the 2D plane.</p>
 
-<td>the number of rows, i.e. lines, in the bitmap</td>
-</tr>
+    <p>The pixels themselves are indeed <em>square boxes</em> of the 2D
+    plane, whose centers lie in half pixel coordinates.  For example, the
+    lower left pixel of a bitmap is delimited by the square (0,0)-(1,1), its
+    center being at location (0.5,0.5).</p>
 
-<tr>
-<td><b>width</b></td>
+    <p>This introduces some differences when computing distances.  For
+    example, the <em>length</em> in pixels of the line [0,0]-[10,0] is 11. 
+    However, the vectorial distance between (0,0)-(10,0) covers exactly
+    10&nbsp;pixel centers, hence its length is&nbsp;10.</p>
 
-<td>the number of horizontal pixels in the bitmap</td>
-</tr>
+    <center>
+      <img src="grid_1.png"
+           height=390 width=402
+           alt="bitmap and vector grid">
+    </center>
 
-<tr>
-<td><b>pitch</b></td>
 
-<td>its absolute value is the number of bytes per bitmap line.
-it can be either positive or negative depending on the bitmap's
-vertical orientation</td>
-</tr>
+    <a name="section-2">
+    <h3>
+      2. FreeType bitmap and pixmap descriptor
+    </h3>
 
-<tr>
-<td><b>buffer</b></td>
+    <p>A bitmap or pixmap is described through a single structure, called
+    <tt>FT_Bitmap</tt>, defined in the file
+    <tt>&lt;freetype/ftimage.h&gt;</tt>.  It is a simple descriptor whose
+    fields are:</p>
 
-<td>a typeless pointer to the bitmap pixel bufer</td>
-</tr>
+    <center>
+    <table cellspacing=3
+           cellpadding=5
+           width="80%">
+    <caption>
+      <b><tt>FT_Bitmap</tt></b>
+    </caption>
 
-<tr>
-<td><b>pixel_mode</b></td>
+    <tr>
+      <td valign=top>
+        <tt>rows</tt>
+      </td>
+      <td valign=top>
+        the number of rows, i.e. lines, in the bitmap
+      </td>
+    </tr>
 
-<td>an enumeration used to describe the pixel format of the bitmap.
-Examples are: <tt>ft_pixel_mode_mono</tt> for 1-bit monochrome bitmaps
-and <tt>ft_pixel_mode_grays</tt> for 8-bit anti-aliased "gray" values
-</td>
+    <tr>
+      <td valign=top>
+        <tt>width</tt>
+      </td>
+      <td valign=top>
+        the number of horizontal pixels in the bitmap
+      </td>
+    </tr>
 
-<tr>
-<td><b>num_grays</b></td>
+    <tr>
+      <td valign=top>
+        <tt>pitch</tt>
+      </td>
+      <td valign=top>
+        its absolute value is the number of bytes per bitmap line; it can
+        be either positive or negative depending on the bitmap's vertical
+        orientation
+      </td>
+    </tr>
 
-<td>this is only used for "gray" pixel modes, it gives the
-number of gray levels used to describe the anti-aliased gray levels.
-256 by default with FreeType 2.
-</td>
-</tr>
+    <tr>
+      <td valign=top>
+        <tt>buffer</tt>
+      </td>
+      <td valign=top>
+        a typeless pointer to the bitmap pixel bufer
+      </td>
+    </tr>
 
-</table></center>
+    <tr>
+      <td valign=top>
+        <tt>pixel_mode</tt>
+      </td>
+      <td valign=top>
+        an enumeration used to describe the pixel format of the bitmap;
+        examples are <tt>ft_pixel_mode_mono</tt> for 1-bit monochrome
+        bitmaps and <tt>ft_pixel_mode_grays</tt> for 8-bit anti-aliased
+        "gray" values
+      </td>
+    </tr>
 
+    <tr>
+      <td valign=top>
+        <tt>num_grays</tt>
+      </td>
+      <td valign=top>
+        this is only used for "gray" pixel modes, it gives the number of
+        gray levels used to describe the anti-aliased gray levels --
+        256&nbsp;by default with FreeType&nbsp;2
+      </td>
+    </tr>
+    </table>
+    </center>
 
-<p>Note that the sign of the <b><tt>pitch</tt></b> fields determines wether
-the rows in the pixel buffer are stored in ascending or descending order.
-</p>
 
-<p>Remember that FreeType uses the <i>Y upwards</i> convention in the 2D
-plane. Which means that a coordinate of (0,0) always refer to the
-<i>lower-left corner</i> of a bitmap.
-</p>
+    <p>Note that the sign of the <tt>pitch</tt> fields determines whether
+    the rows in the pixel buffer are stored in ascending or descending
+    order.</p>
 
-<p>When the pitch is positive, the rows are stored in decreasing vertical
-position, which means that the first bytes of the pixel buffer are part
-of the <i>upper</i> bitmap row.
-</p>
+    <p>Remember that FreeType uses the <em>Y&nbsp;upwards</em> convention in
+    the 2D plane, which means that a coordinate of (0,0) always refer to the
+    <em>lower-left corner</em> of a bitmap.</p>
 
-<p>On the opposite, when the pitch is negative, the first bytes of the
-pixel buffer are part of the <i>lower</i> bitmap row.</p>
+    <p>If the pitch is positive, the rows are stored in decreasing vertical
+    position; the first bytes of the pixel buffer are part of the
+    <em>upper</em> bitmap row.</p>
 
-<p>In all cases, one can see the pitch as the byte increment needed
-to skip to the <em>next lower scanline</em> in a given bitmap buffer.</p>
+    <p>On the opposite, if the pitch is negative, the first bytes of the
+    pixel buffer are part of the <em>lower</em> bitmap row.</p>
 
-<p>The two conventions are detailed by this graphics:</p>
+    <p>In all cases, one can see the pitch as the byte increment needed to
+    skip to the <em>next lower scanline</em> in a given bitmap buffer.</p>
 
-<center><table>
-<tr>
-<td><img SRC="up_flow.png" height=261 width=275></td>
+    <center>
+    <table>
+    <tr>
+      <td>
+        <img src="up_flow.png"
+             height=261 width=275
+             alt="negative 'pitch'">
+      </td>
+      <td>
+        <img src="down_flow.png"
+             height=263 width=273
+             alt="positive 'pitch'">
+      </td>
+    </tr>
+    </table>
+    </center>
 
-<td><img SRC="down_flow.png" height=263 width=273></td>
-</tr>
-</table></center>
+    <p>The "positive pitch" convention is very often used, though
+    some systems might need the other.</p>
 
-<p>The <em>positive pitch</em> convention is very often used, though
-some systems might need otherwise.</p>
 
+    <a name="section-3">
+    <h3>
+      3. Converting outlines into bitmaps and pixmaps
+    </h3>
 
-</blockquote><h3><a name="section-3">
-3. Converting outlines into bitmaps and pixmaps :
-</h3><blockquote>
+    <p>Generating a bitmap or pixmap image from a vectorial image is easy
+    with FreeType.  However, one must understand a few points regarding the
+    positioning of the outline in the 2D plane before converting it to a
+    bitmap:</p>
 
-<p>Generating a bitmap or pixmap image from a vectorial image
-is easy with FreeType. However, one must understand a few points regarding
-the positioning of the outline in the 2D plane before converting it to
-a bitmap. These are :</p>
+    <ul>
+      <li>
+        <p>The glyph loader and hinter always places the outline in the 2D
+        plane so that (0,0) matches its character origin.  This means that
+        the glyph's outline, and corresponding bounding box, can be placed
+        anywhere in the 2D plane (see the graphics in section&nbsp;III).</p>
+      </li>
+      <li>
+        <p>The target bitmap's area is mapped to the 2D plane, with its
+        lower left corner at (0,0).  This means that a bitmap or pixmap of
+        dimensions [<tt>w,h</tt>] will be mapped to a 2D rectangle window
+        delimited by (0,0)-(<tt>w,h</tt>).</p>
+      </li>
+      <li>
+        <p>When scan-converting the outline, everything that falls within
+        the bitmap window is rendered, the rest is ignored.</p>
+      </li>
 
-<ul>
+      <p>A common mistake made by many developers when they begin using
+      FreeType is believing that a loaded outline can be directly rendered
+      in a bitmap of adequate dimensions.  The following images illustrate
+      why this is a problem.</p>
 
-<li><p>
-The glyph loader and hinter always places the outline in the 2D plane so
-that (0,0) matches its character origin. This means that the glyph�s outline,
-and corresponding bounding box, can be placed anywhere in the 2D plane
-(see the graphics in section III).
-</p></li>
+      <ul>
+        <li>
+          The first image shows a loaded outline in the 2D plane.
+        </li>
+        <li>
+          The second one shows the target window for a bitmap of arbitrary
+          dimensions [w,h].
+        </li>
+        <li>
+          The third one shows the juxtaposition of the outline and window in
+          the 2D plane.
+        </li>
+        <li>
+          The last image shows what will really be rendered in the bitmap.
+        </li>
+      </ul>
 
-<li><p>
-The target bitmap�s area is mapped to the 2D plane, with its lower left
-corner at (0,0). This means that a bitmap or pixmap of dimensions
-[<tt>w,h</tt>] will be mapped to a 2D rectangle window delimited by
-(0,0)-(<tt>w,h</tt>).
-</p></li>
+      <center>
+        <img src="clipping.png"
+             height=151 width=539
+             alt="clipping algorithm">
+      </center>
+    </ul>
 
-<li><p>
-When scan-converting the outline, everything that falls
-within the bitmap window is rendered, the rest is ignored.
-</p></li>
+    <p>Indeed, in nearly all cases, the loaded or transformed outline must
+    be translated before it is rendered into a target bitmap, in order to
+    adjust its position relative to the target window.</p>
 
-<p>A common mistake made by many developers when they begin using FreeType
-is believing that a loaded outline can be directly rendered in a bitmap
-of adequate dimensions. The following images illustrate why this is a problem:
-</p>
+    <p>For example, the correct way of creating a <em>standalone</em> glyph
+    bitmap is as follows</p>
 
-<p>
-<ul>
+    <ul>
+      <li>
+        <p>Compute the size of the glyph bitmap.  It can be computed
+        directly from the glyph metrics, or by computing its bounding box
+        (this is useful when a transformation has been applied to the
+        outline after the load, as the glyph metrics are not valid
+        anymore).</p>
+      </li>
+      <li>
+        <p>Create the bitmap with the computed dimensions.  Don't forget to
+        fill the pixel buffer with the background color.</p>
+      </li>
+      <li>
+        <p>Translate the outline so that its lower left corner matches
+        (0,0).  Don't forget that in order to preserve hinting, one should
+        use integer, i.e. rounded distances (of course, this isn't required
+        if preserving hinting information doesn't matter, like with rotated
+        text).  Usually, this means translating with a vector
+        <tt>(-ROUND(xMin), -ROUND(yMin))</tt>.</p>
+      </li>
+      <li>
+        <p>Call the rendering function (it can be
+        <tt>FT_Outline_Render()</tt> for example).</p>
+      </li>
+    </ul>
 
-<li>
-the first image shows a loaded outline in the 2D plane.
-</li>
+    <p>In the case where one wants to write glyph images directly into a
+    large bitmap, the outlines must be translated so that their vectorial
+    position correspond to the current text cursor/character origin.</p>
 
-<li>
-the second one shows the target window for a bitmap of arbitrary dimensions
-[w,h]
-</li>
+  <p><hr></p>
 
-<li>
-the third one shows the juxtaposition of the outline and window in the
-2D plane
-</li>
+  <center>
+  <table width="100%"
+         border=0
+         cellpadding=5>
+  <tr bgcolor="#CCFFCC"
+      valign=center>
+    <td align=center
+        width="30%">
+      <a href="glyphs-6.html">Previous</a>
+    </td>
+    <td align=center
+        width="30%">
+      <a href="index.html">Contents</a>
+    </td>
+    <td align=center
+        width="30%">
+      &nbsp;
+    </td>
+  </tr>
+  </table>
+  </center>
 
-<li>
-the last image shows what will really be rendered in the bitmap.
-</li>
-</ul>
-</p>
-
-</ul>
-<center><img SRC="clipping.png" height=151 width=539></center>
-
-<p><br>
-<br>
-<br>
-<p>Indeed, in nearly all cases, the loaded or transformed outline must
-be translated before it is rendered into a target bitmap, in order to adjust
-its position relative to the target window.
-</p>
-
-<p>For example, the correct way of creating a <i>standalone</i> glyph bitmap
-is thus to :
-</p>
-
-<ul>
-<li><p>
-Compute the size of the glyph bitmap. It can be computed directly from
-the glyph metrics, or by computing its bounding box (this is useful when
-a transform has been applied to the outline after the load, as the glyph
-metrics are not valid anymore).
-</p></li>
-
-<li><p>
-Create the bitmap with the computed dimensions. Don't forget to fill the
-pixel buffer with the background color.
-</p></li>
-
-<li><p>
-Translate the outline so that its lower left corner matches (0,0). Don�t
-forget that in order to preserve hinting, one should use integer, i.e.
-rounded distances (of course, this isn�t required if preserving hinting
-information doesn�t matter, like with rotated text). Usually, this means
-translating with a vector <tt>( -ROUND(xMin), -ROUND(yMin) )</tt>.
-</p></li>
-
-<li><p>
-Call the rendering function (it can be <tt>FT_Outline_Render</tt> for
-example).
-</p></li>
-
-<p><br>In the case where one wants to write glyph images directly into
-a large bitmap, the outlines must be translated so that their vectorial
-position correspond to the current text cursor/character origin.</blockquote>
-</blockquote>
-
-<center><table width="100%" border=0 cellpadding=5><tr bgcolor="#CCFFCC" valign=center>
-<td align=center width="30%">
-<a href="glyphs-6.html">Previous</a>
-</td>
-<td align=center width="30%">
-<a href="index.html">Contents</a>
-</td>
-<td align=center width="30%">
-&nbsp;
-</td>
-</tr></table></center>
-
-</td></tr></table></center>
+</td></tr>
+</table>
+</center>
 
 </body>
 </html>
--- a/docs/glyphs/index.html
+++ b/docs/glyphs/index.html
@@ -1,12 +1,13 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en"
+          "http://www.w3.org/TR/REC-html40/loose.dtd">
 <html>
 <head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Author" content="blob">
-   <meta name="GENERATOR" content="Mozilla/4.5 [fr] (Win98; I) [Netscape]">
-   <title>FreeType Glyph Conventions</title>
+  <meta http-equiv="Content-Type"
+        content="text/html; charset=iso-8859-1">
+  <meta name="Author"
+        content="David Turner">
+  <title>FreeType Glyph Conventions</title>
 </head>
-<body>
 
 <body text="#000000"
       bgcolor="#FFFFFF"
@@ -14,218 +15,186 @@
       vlink="#51188E"
       alink="#FF0000">
 
-<center>
-<h1>
-FreeType Glyph Conventions</h1></center>
+<h1 align=center>
+  FreeType Glyph Conventions
+</h1>
 
-<center>
-<h2>
-version 2.1</h2></center>
+<h2 align=center>
+  Version&nbsp;2.1
+</h2>
 
-<center>
-<h3>
-Copyright 1998-2000 David Turner (<a href="mailto:[email protected]">[email protected]</a>)<br>
-Copyright 2000 The FreeType Development Team (<a href="[email protected]">[email protected]</a>)</h3></center>
+<h3 align=center>
+  Copyright&nbsp;1998-2000 David Turner (<a
+  href="mailto:[email protected]">[email protected]</a>)<br>
+  Copyright&nbsp;2000 The FreeType Development Team (<a
+  href="mailto:[email protected]">[email protected]</a>)
+</h3>
 
-<center><table width=650><tr><td>
 
+<center>
+<table width="70%">
+<tr><td>
 
-<table width="100%"><tr valign=center bgcolor="#CCCCFF"><td align=center><h2>
-Introduction
-</h2></td></tr></table>
+  <p>This document presents the core conventions used within the FreeType
+  library to manage font and glyph data.  It is a <em>must-read</em> for all
+  developers who need to understand digital typography, especially if you
+  want to use the FreeType&nbsp;2 library in your projects.</p>
 
-<p>This document presents the core conventions used within the FreeType
-   library to manage font and glyph data. It is a <em>must-read</em> for
-   any people that needs to understand digital typography, especially
-   if you want to use the FreeType 2 library in your projects.</p>
+  <table width="100%">
+  <tr valign=center
+      bgcolor="#CCCCFF">
+    <td align=center>
+      <h2>
+        Table of Contents
+      </h2>
+    </td>
+  </tr>
+  </table>
 
-<table width="100%"><tr valign=center bgcolor="#CCCCFF"><td align=center><h2>
-Table of Contents
-</h2></td></tr></table>
+  <center>
+  <table width="80%">
+  <tr><td>
 
-<center><table width="80%"><tr><td>
-
-
-  <a href="glyphs-1.html">
-  <h2>I. Basic Typographic Concepts:</h2>
-  </a>
-  <ul>
+  <h2>
+    <a href="glyphs-1.html">I. Basic Typographic Concepts</a>
+  </h2>
+    <blockquote>
     <h3>
-    <a href="glyphs-1.html#section-1">
-    1. Font files, format and information
-    </a>
-    <br>
+      <a href="glyphs-1.html#section-1">1. Font files, format and
+      information</a>
+      <br>
 
-    <a href="glyphs-1.html#section-2">
-    2. Character images and mappings
-    </a>
-    <br>
+      <a href="glyphs-1.html#section-2">2. Character images and mappings</a>
+      <br>
 
-    <a href="glyphs-1.html#section-3">
-    3. Character and font metrics
-    </a>
-    <br>
-  </ul>
+      <a href="glyphs-1.html#section-3">3. Character and font metrics</a>
+      <br>
+    </h3>
+    </blockquote>
 
-
-
-  <a href="glyphs-2.html">
-  <h2>II. Glyph Outlines:</h2>
-  </a>
-  <ul>
+  <h2>
+    <a href="glyphs-2.html">II. Glyph outlines</a>
+  </h2>
+    <blockquote>
     <h3>
-    <a href="glyphs-2.html#section-1">
-    1. Pixels, Points and Device Resolutions
-    </a>
-    <br>
+      <a href="glyphs-2.html#section-1">1. Pixels, points and device
+      resolutions</a>
+      <br>
 
-    <a href="glyphs-2.html#section-2">
-    2. Vectorial representation
-    </a>
-    <br>
+      <a href="glyphs-2.html#section-2">2. Vectorial representation</a>
+      <br>
 
-    <a href="glyphs-2.html#section-3">
-    3. Hinting and bitmap rendering
-    </a>
-    <br>
-  </ul>
+      <a href="glyphs-2.html#section-3">3. Hinting and bitmap rendering</a>
+      <br>
+    </h3>
+    </blockquote>
 
-
-
-  <a href="glyphs-3.html">
-  <h2>III. Glyph Metrics:</h2>
-  </a>
-  <ul>
+  <h2>
+    <a href="glyphs-3.html">III. Glyph metrics</a>
+  </h2>
+    <blockquote>
     <h3>
-    <a href="glyphs-3.html#section-1">
-    1. Baseline, Pens and Layouts
-    </a>
-    <br>
+      <a href="glyphs-3.html#section-1">1. Baseline, pens and layouts</a>
+      <br>
 
-    <a href="glyphs-3.html#section-2">
-    2. Typographic metrics
-    </a>
-    <br>
+      <a href="glyphs-3.html#section-2">2. Typographic metrics and
+      bounding boxes</a>
+      <br>
 
-    <a href="glyphs-3.html#section-3">
-    3. Bearings and Advances
-    </a>
-    <br>
+      <a href="glyphs-3.html#section-3">3. Bearings and advances</a>
+      <br>
 
-    <a href="glyphs-3.html#section-4">
-    4. The effects of grid-fitting
-    </a>
-    <br>
+      <a href="glyphs-3.html#section-4">4. The effects of grid-fitting</a>
+      <br>
 
-    <a href="glyphs-3.html#section-5">
-    5. Text widths and bounding box
-    </a>
-    <br>
-  </ul>
+      <a href="glyphs-3.html#section-5">5. Text widths and bounding box</a>
+      <br>
+    </h3>
+    </blockquote>
 
-
-  <a href="glyphs-4.html">
-  <h2>IV. Kerning:</h2>
-  </a>
-  <ul>
+  <h2>
+    <a href="glyphs-4.html">IV. Kerning</a>
+  </h2>
+    <blockquote>
     <h3>
-    <a href="glyphs-4.html#section-1">
-    1. Kerning pairs
-    </a>
-    <br>
+      <a href="glyphs-4.html#section-1">1. Kerning pairs</a>
+      <br>
 
-    <a href="glyphs-4.html#section-2">
-    2. Applying kerning
-    </a>
-    <br>
-  </ul>
+      <a href="glyphs-4.html#section-2">2. Applying kerning</a>
+      <br>
+    </h3>
+    </blockquote>
 
-
-  <a href="glyphs-5.html">
-  <h2>V. Text Processing:</h2>
-  </a>
-  <ul>
+  <h2>
+    <a href="glyphs-5.html">V. Text processing</a>
+  </h2>
+    <blockquote>
     <h3>
-    <a href="glyphs-5.html#section-1">
-    1. Writing simple text strings
-    </a>
-    <br>
+      <a href="glyphs-5.html#section-1">1. Writing simple text strings</a>
+      <br>
 
-    <a href="glyphs-5.html#section-2">
-    2. Sub-pixel positioning
-    </a>
-    <br>
+      <a href="glyphs-5.html#section-2">2. Sub-pixel positioning</a>
+      <br>
 
-    <a href="glyphs-5.html#section-3">
-    3. Simple kerning
-    </a>
-    <br>
+      <a href="glyphs-5.html#section-3">3. Simple kerning</a>
+      <br>
 
-    <a href="glyphs-5.html#section-4">
-    4. Right-to-left layouts
-    </a>
-    <br>
+      <a href="glyphs-5.html#section-4">4. Right-to-left layouts</a>
+      <br>
 
-    <a href="glyphs-5.html#section-5">
-    5. Vertical layouts
-    </a>
-    <br>
+      <a href="glyphs-5.html#section-5">5. Vertical layouts</a>
+      <br>
 
-    <a href="glyphs-5.html#section-6">
-    6. WYSIWYG text layouts
-    </a>
-    <br>
-  </ul>
+      <a href="glyphs-5.html#section-6">6. WYSIWYG text layouts</a>
+      <br>
+    </h3>
+    </blockquote>
 
-
-  <a href="glyphs-6.html">
-  <h2>VI. FreeType Outlins:</h2>
-  </a>
-  <ul>
+  <h2>
+    <a href="glyphs-6.html">VI. FreeType Outlines</a>
+  </h2>
+    <blockquote>
     <h3>
-    <a href="glyphs-6.html#section-1">
-    1. FreeType outline description and structure
-    </a>
-    <br>
+      <a href="glyphs-6.html#section-1">1. FreeType outline description
+      and structure</a>
+      <br>
 
-    <a href="glyphs-6.html#section-2">
-    2. Bounding and control box computations
-    </a>
-    <br>
+      <a href="glyphs-6.html#section-2">2. Bounding and control box
+      computations</a>
+      <br>
 
-    <a href="glyphs-6.html#section-3">
-    3. Coordinates, scaling and grid-fitting
-    </a>
-    <br>
-  </ul>
+      <a href="glyphs-6.html#section-3">3. Coordinates, scaling, and
+      grid-fitting</a>
+      <br>
+    </h3>
+    </blockquote>
 
-
-  <a href="glyphs-7.html">
-  <h2>VII. FreeType Bitmaps:</h2>
-  </a>
-  <ul>
+  <h2>
+    <a href="glyphs-7.html">VII. FreeType bitmaps</a>
+  </h2>
+    <blockquote>
     <h3>
-    <a href="glyphs-7.html#section-1">
-    1. Vectorial versus pixel coordinates
-    </a>
-    <br>
+      <a href="glyphs-7.html#section-1">1. Vectorial versus pixel
+      coordinates</a>
+      <br>
 
-    <a href="glyphs-7.html#section-2">
-    2. FreeType bitmap descriptor
-    </a>
-    <br>
+      <a href="glyphs-7.html#section-2">2. FreeType bitmap and pixmap
+      descriptor</a>
+      <br>
 
-    <a href="glyphs-7.html#section-3">
-    3. Converting outlines into bitmaps
-    </a>
-    <br>
-  </ul>
+      <a href="glyphs-7.html#section-3">3. Converting outlines into
+      bitmaps and pixmaps</a>
+      <br>
+    </h3>
+    </blockquote>
 
-</p>
+  </td></tr>
+  </table>
+  </center>
 
-</td></tr></table></center>
-
-</td></tr></table></center>
+</td></tr>
+</table>
+</center>
 
 </body>
 </html>