✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/share/doc/freetype-devel/glyphs//glyphs-4.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">

<head>
  <meta http-equiv="Content-Type"
        content="text/html; charset=utf-8">
  <meta http-equiv="Content-Style-Type"
        content="text/css">
  <meta http-equiv="Content-Script-Type"
        content="text/javascript">
  <meta name="description"
        content="FreeType Documentation">
  <meta name="Author"
        content="David Turner">

  <link rel="icon"
        href="../image/favicon_-90.ico">
  <link rel="shortcut icon"
        href="../image/favicon_-90.ico">
  <link rel="stylesheet"
        type="text/css"
        href="../css/freetype2_-90.css">

  <script type="text/javascript"
          src="../../../js/jquery-1.11.0.min.js">
  </script>
  <script type="text/javascript"
          src="../../../js/jquery.ba-resize.min.js">
  </script>
  <script type="text/javascript"
          src="../../../js/freetype2.js">
  </script>

  <title>FreeType Glyph Conventions / IV</title>
</head>


<body>

<div id="top"
     class="bar">
  <h1><a href="http://freetype.org/index.html">FreeType</a> Glyph
    Conventions&nbsp;/&nbsp;IV</h1>
</div>


<div id="wrapper">

<div class="colmask leftmenu">
  <div class="colright">
    <div class="col1wrap">
      <div class="col1">


        <!-- ************************************************** -->

	<div id="kerning">
	  <h2>IV. Kerning</h2>

	  <p>The term <em>kerning</em> refers to specific information
	    used to adjust the relative positions of successive glyphs
	    in a string of text.  This section describes several types
	    of kerning information, as well as the way to process them
	    when performing text layout.</p>


	  <h3 id="section-1">1. Kerning pairs</h3>

	  <p>Kerning consists of modifying the spacing between two
	    successive glyphs according to their outlines.  For
	    example, a &lsquo;T&rsquo; and a &lsquo;y&rsquo; can be
	    easily moved closer, as the top of the &lsquo;y&rsquo;
	    fits nicely under the upper right bar of the
	    &lsquo;T&rsquo;.</p>

	  <p>When laying out text with only their standard widths,
	    some consecutive glyphs seem a bit too close or too
	    distant.  For example, the space between the
	    &lsquo;A&rsquo; and the &lsquo;V&rsquo; in the following
	    word seems a little wider than needed.</p>

	  <p align="center">
	    <img src="bravo_unkerned.png"
		 height="37"
		 width="116"
		 alt="the word 'bravo' unkerned">
	  </p>

	  <p>Compare this to the same word, where the distance between
	    these two letters has been slightly reduced:</p>

	  <p align="center">
	    <img src="bravo_kerned.png"
		 height="37"
		 width="107"
		 alt="the word 'bravo' with kerning">
	  </p>

	  <p>As you can see, this adjustment can make a great
	    difference.  Some font faces thus include a table
	    containing kerning distances for a set of given glyph
	    pairs for text layout.</p>

	  <ul>
	    <li>
              <p>The pairs are ordered, i.e., the space for pair
		&lsquo;(A,V)&rsquo; isn't necessarily the space for
		pair &lsquo;(V,A)&rsquo;.  They also use glyph
		indices, not character codes.</p>
	    </li>
	    <li>
              <p>Kerning distances can be expressed in horizontal or
		vertical directions, depending on the layout and/or
		the script.  For example, some horizontal layouts like
		Arabic can make use of vertical kerning adjustments
		between successive glyphs.  A vertical script can have
		vertical kerning distances.</p>
	    </li>
	    <li>
              <p>Kerning distances are expressed in grid units.  They
		are usually oriented in the <i>X</i>&nbsp;axis, which
		means that a negative value indicates that two glyphs
		must be set closer in a horizontal layout.</p>
	    </li>
	  </ul>

	  <p>Note that OpenType fonts (OTF) provide two distinct
	    mechanisms for kerning, using the &lsquo;kern&rsquo; and
	    &lsquo;GPOS&rsquo; tables, respectively, which are part of
	    the OTF files.  Older fonts only contain the former, while
	    recent fonts contain both tables or even
	    &lsquo;GPOS&rsquo; data only.  FreeType only supports
	    kerning via the (rather simple) &lsquo;kern&rsquo; table.
	    For the interpretation of kerning data in the (highly
	    sophisticated) &lsquo;GPOS&rsquo; table you need a
	    higher-level library
	    like <a href="http://icu-project.org/">ICU</a> or
	    <a href="http://harfbuzz.org">HarfBuzz</a> since it can be
	    context dependent (this is, the kerning may vary depending
	    on the position within a text string, for example).</p>


	  <h3 id="section-2">2. Applying kerning</h3>

	  <p>Applying kerning when rendering text is a rather easy
	    process.  It merely consists of adding the scaled kern
	    distance to the pen position before rendering the next
	    glyph.  However, the typographically correct renderer must
	    take a few more details in consideration.</p>

	  <p>The &lsquo;sliding dot&rsquo; problem is a good example:
	    Many font faces include a kerning distance between capital
	    letters like &lsquo;T&rsquo; or &lsquo;F&rsquo; and a
	    following dot (&lsquo;.&rsquo;), in order to slide the
	    latter glyph just right to their main leg.</p>

	  <p align="center">
	    <img src="twlewis1.png"
		 height="38"
		 width="314"
		 alt="example for sliding dots">
	  </p>

	  <p>This sometimes requires additional adjustments between
	    the dot and the letter following it, depending on the
	    shapes of the enclosing letters.  When applying
	    &lsquo;standard&rsquo; kerning adjustments, the previous
	    sentence would become</p>

	  <p align="center">
	    <img src="twlewis2.png"
		 height="36"
		 width="115"
		 alt="example for too much kerning">
	  </p>

	  <p>This is clearly too contracted.  The solution here, as
	    exhibited in the first example, is to only slide the dots
	    if the conditions fit.  Of course, this requires a certain
	    knowledge of the text's meaning, and this is exactly what
	    &lsquo;GPOS&rsquo; kerning is good for: Depending on the
	    context, different kerning values can be applied to get a
	    typographically correct result.</p>
        </div>

        <!-- ************************************************** -->

        <div class="updated">
          <p>Last update: 13-Feb-2018</p>
        </div>
      </div>
    </div>


    <!-- ************************************************** -->

    <div class="col2">
    </div>
  </div>
</div>


<!-- ************************************************** -->

<div id="TOC">
  <ul>
    <li class="funding">
      <form action="https://www.paypal.com/cgi-bin/webscr"
            method="post"
            target="_top">
        <input type="hidden"
               name="cmd"
               value="_s-xclick">
        <input type="hidden"
               name="hosted_button_id"
               value="SK827YKEALMT4">
        <input type="image"
               src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif"
               name="submit"
               alt="PayPal - The safer, easier way to pay online!">
        <img alt=""
             border="0"
             src="https://www.paypalobjects.com/de_DE/i/scr/pixel.gif"
             width="1"
             height="1">
      </form>
    </li>
    <li class="primary">
      <a href="http://freetype.org/index.html">Home</a>
    </li>
    <li class="primary">
      <a href="http://freetype.org/index.html#news">News</a>
    </li>
    <li class="primary">
      <a href="../index.html">Overview</a>
    </li>
    <li class="primary">
      <a href="../documentation.html">Documentation</a>
    </li>
    <li class="primary">
      <a href="http://freetype.org/developer.html">Development</a>
    </li>
    <li class="primary">
      <a href="http://freetype.org/contact.html"
         class="emphasis">Contact</a>
    </li>

    <li>
      &nbsp; <!-- separate primary from secondary entries -->
    </li>

    <li class="secondary">
      <a href="index.html">FreeType Glyph Conventions</a>
    </li>
    <li class="tertiary">
      <a href="glyphs-1.html">Basic Typographic Concepts</a>
    </li>
    <li class="tertiary">
      <a href="glyphs-2.html">Glyph Outlines</a>
    </li>
    <li class="tertiary">
      <a href="glyphs-3.html">Glyph Metrics</a>
    </li>
    <li class="tertiary">
      <a href="glyphs-4.html" class="current">Kerning</a>
    </li>
    <li class="tertiary">
      <a href="glyphs-5.html">Text Processing</a>
    </li>
    <li class="tertiary">
      <a href="glyphs-6.html">FreeType Outlines</a>
    </li>
    <li class="tertiary">
      <a href="glyphs-7.html">FreeType Bitmaps</a>
    </li>
  </ul>
</div>

</div> <!-- id="wrapper" -->

<div id="TOC-bottom">
</div>

</body>
</html>

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
17 Jan 2026 3.22 PM
root / root
0755
bbox1.png
1.429 KB
20 Oct 2020 5.20 AM
root / root
0644
bbox2.png
1.221 KB
20 Oct 2020 5.20 AM
root / root
0644
body_comparison.png
1.24 KB
20 Oct 2020 5.20 AM
root / root
0644
bravo_kerned.png
0.459 KB
20 Oct 2020 5.20 AM
root / root
0644
bravo_unkerned.png
0.468 KB
20 Oct 2020 5.20 AM
root / root
0644
clipping.png
1.45 KB
20 Oct 2020 5.20 AM
root / root
0644
down_flow.png
0.826 KB
20 Oct 2020 5.20 AM
root / root
0644
glyphs-1.html
9.754 KB
20 Oct 2020 5.20 AM
root / root
0644
glyphs-2.html
18.199 KB
20 Oct 2020 5.20 AM
root / root
0644
glyphs-3.html
15.898 KB
20 Oct 2020 5.20 AM
root / root
0644
glyphs-4.html
8.575 KB
20 Oct 2020 5.20 AM
root / root
0644
glyphs-5.html
13.518 KB
20 Oct 2020 5.20 AM
root / root
0644
glyphs-6.html
19.131 KB
20 Oct 2020 5.20 AM
root / root
0644
glyphs-7.html
12.826 KB
20 Oct 2020 5.20 AM
root / root
0644
grid_1.png
1.613 KB
20 Oct 2020 5.20 AM
root / root
0644
index.html
8.177 KB
20 Oct 2020 5.20 AM
root / root
0644
layout.png
2.16 KB
20 Oct 2020 5.20 AM
root / root
0644
layout2.png
0.656 KB
20 Oct 2020 5.20 AM
root / root
0644
metrics.png
2.164 KB
20 Oct 2020 5.20 AM
root / root
0644
metrics2.png
1.81 KB
20 Oct 2020 5.20 AM
root / root
0644
points_conic.png
0.688 KB
20 Oct 2020 5.20 AM
root / root
0644
points_conic2.png
1.007 KB
20 Oct 2020 5.20 AM
root / root
0644
points_cubic.png
0.771 KB
20 Oct 2020 5.20 AM
root / root
0644
points_segment.png
0.508 KB
20 Oct 2020 5.20 AM
root / root
0644
twlewis1.png
0.652 KB
20 Oct 2020 5.20 AM
root / root
0644
twlewis2.png
0.442 KB
20 Oct 2020 5.20 AM
root / root
0644
up_flow.png
0.777 KB
20 Oct 2020 5.20 AM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF