For other uses, see Pango (disambiguation).

Pango name written as intended
Original author(s) Owen Taylor[1]
Raph Levien
Developer(s) Behdad Esfahbod
Initial release 11 July 1999 (1999-07-11)[2]
Stable release 1.40.3 (September 13, 2016 (2016-09-13)) [±][3]
Written in C
Operating system Unix-like, Microsoft Windows, Other
Type Software development library
License LGPL

Pango (stylized as Παν語) is a text layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text.[4] Full-function rendering of text and cross-platform support is achieved when Pango is used with platform APIs or third-party libraries, such as Uniscribe and FreeType, as text rendering backends. Pango-processed text will appear similar under different operating systems.

Pango is a special-purpose library for text and not a general-purpose graphics rendering library such as Cairo, with which Pango can be used. Indeed, the Cairo documentation recommends Pango be used to "render" text rather than Cairo for all but the simplest text "rendering".[5]

The name pango comes from Greek pan (παν, "all") and Japanese go (語, "language").[6]

Support for OpenType features

Default rendering above, localized Romanian rendering below.

Pango 1.17 and newer support the locl feature tag that allows localized glyphs to be used for the same Unicode code point. Assuming you have Verdana version 5.01 installed, which supports the locl feature for the latn/ROM (Romanian) script, a quick demonstration (on Linux) is:

for lang in en ro; do pango-view \
 --font="Verdana 64" \
 --text "şţ vs. șț in $lang" \
 --language=$lang; done

For an explanation of the substitutions rules for Romanian, see this discussion.

Setting the locale via the POSIX environment variable, e.g. LANG=ro_RO.UTF-8 will also cause Pango to use locl font feature. Finally, you can change the language on the fly in the same text using Pango markup, e.g.:

pango-view \
 --font="Verdana 24" \
 --markup \
 --text 'In the same text: şţ(en) and <span lang="ro">şţ(ro).'

Since 1.37.1, Pango added more attributes to provide completely support for processing OpenType feature.[7][8][9]

The official showcase of Pango's script-aware features is here.

Major users

Simplified software architecture of GTK+. Pango, GDK, ATK, GIO, Cairo and GLib.

Pango has been integrated into most Linux distributions. The GTK+ UI toolkit uses Pango for all of its text rendering. The Linux versions of the Mozilla Firefox web browser and Mozilla Thunderbird mail client use Pango for text rendering.


In January 2000 the merger of the GScript and GnomeText projects was named Pango.[10][11][12][13][14][15]

Pango version 1.0.0 was released 11 March 2002.[16][17]

See also


  1. Interview: Red Hat's Owen Taylor on GTK+, also known for his contributions on Pango., by Eugenia Loli, 19th Dec 2003
  2. Pango, Made version 0.2, Owen Taylor,
  3. "Pango (Recent releases)". Retrieved 2016-10-24.
  4. "Pango website". Retrieved 7 July 2011.
  5. "Cairo: A Vector Graphics Library: text". Retrieved 27 November 2015.
  6. "The Pango connection: Part 1". Archived from the original on 27 June 2009. Retrieved 7 July 2011.
  7. "Overview of changes between 1.37.0 and 1.37.1". Retrieved 18 August 2015.
  8. "Bug 738505 - Add fontfeatures support in PangoAttributes and markup". GNOME Bugzilla. Retrieved 18 August 2015.
  9. "Font Features Land in Inkscape Trunk". Tavmjong Bah's Blog. 23 June 2015. Retrieved 18 August 2015.
  10. Pango - Status - 14 January 2000, Owen Taylor, Redhat
  11. GNOMEs in Paris: A Report from GUADEC, The most impressive part of their presentation was the discussion on Pango (the result of the GScript and GnomeText merger), 2000/03/21, By Chuck Toporek - O'Reilly Media
  12. Pango proposal, rev 0.1, Raph Levien, 28 July 1999
  13. GScript - Unicode and Complex Text Processing, The GScript project has been merged with the GnomeText project. For information about the result, named Pango, see: If you have trouble accessing that site, there is a mirror here. By Owen Taylor
  14. Gnome-Text API documentation, Raph Levien, 10 Jul 1999, Owen Taylor is working on gscript, which has some overlap with the functions described in this interface. We're working on unifying the two api's as much as possible.
  15. Abdin, Ali (27 December ????). "GNOME Developer's Interview Follow-up". Check date values in: |date= (help) Pango (which is the code name for a merger of my Gscript project and Raph Levien's GnomeText project) is a modular set of libraries for doing layout and rendering of international text. It's a bit similar to Microsoft's Uniscript or Apple's ATSUI.
  16. Pango 1.0.0 released at the Wayback Machine (archived April 2, 2002)
  17. GTK+ user interface libraries, version 2.0
This article is issued from Wikipedia - version of the 12/2/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.