<page xmlns="http://projectmallard.org/1.0/"
      xmlns:its="http://www.w3.org/2005/11/its"
      type="topic"
      id="tech-pango">

  <info>
    <link type="guide" xref="tech" group="pango"/>
    <revision pkgversion="3.0" date="2011-04-05" status="candidate"/>

    <credit type="author copyright">
      <name>Shaun McCance</name>
      <email its:translate="no">shaunm@gnome.org</email>
      <years>2011–2012</years>
    </credit>

    <include href="cc-by-sa-3-0.xml" xmlns="http://www.w3.org/2001/XInclude"/>

    <desc>International text rendering with full Unicode support</desc>
  </info>

<title>Pango</title>

<p>Pango is the core text and font handling library in the GNOME
platform.  It is responsible for laying out and rendering text, and
is used throughout GTK.</p>

<note><p>The Pango layout engine can be used with different font
backends and drawing backends.  On most GNOME systems, Pango
will use FreeType, fontconfig, and Cairo to access fonts and
render text.  On other systems, Pango will use the native font
systems, such as Uniscribe on Microsoft Windows and ATSUI on
MacOS</p></note>

<p>Pango has extensive support for the various writing systems
used throughout the world.  Many of the writing systems used for
languages have complex rules for laying out glyphs and composing
characters.  With Pango, nearly all languages can be written and
displayed correctly, allowing users everywhere to view text in their
native languages.  Pango's support for multiple writing systems is
automatic; application developers do not have to write any special
code to support other languages.</p>

<p>Pango supports the kind of text styling used in typical documents
and interfaces, including italics, font weights, and underlines.
Pango uses a simple XML-like vocabulary called PangoMarkup which
enables you to set font size, color, styles, and other text
attributes.  Using PangoMarkup, you can specify inline styles
without manually iterating over text blocks.  PangoMarkup can
be used directly from GTK, enabling you to style text in your
graphical interfaces easily.</p>

<p>You should use Pango directly whenever you need to lay
text out on the screen or on a different medium.  Using Pango
will allow your text layout to work seamlessly with GTK and
the rest of the GNOME platform.  It will help you create
portable code, and most importantly, it will ensure that your
application can render text correctly in hundreds of different
languages.</p>

<list style="compact">
  <item><p><link href="https://developer.gnome.org/pango/stable/">Pango Reference Manual</link></p></item>
  <item><p><link href="http://www.pango.org">The Pango web site</link></p></item>
</list>
</page>