Pango

Library for text rendering
title: "Pango" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["1999-software", "c-(programming-language)-libraries", "free-computer-libraries", "free-software-programmed-in-c", "freedesktop.org-libraries", "gnome-libraries", "gtk", "software-that-uses-meson", "text-rendering-libraries"] description: "Library for text rendering" topic_path: "general/1999-software" source: "https://en.wikipedia.org/wiki/Pango" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::summary Library for text rendering ::
::data[format=table title="Infobox software"]
| Field | Value |
|---|---|
| name | Pango |
| logo | Pango-name.svg |
| logo size | 200px |
| logo caption | Pango name written as intended, Greek pan (παν, "all") and Japanese go (語, "language") |
| author | Owen Taylor |
| Raph Levien | |
| developer | Behdad Esfahbod |
| released | |
| latest release version | |
| latest release date | |
| programming language | C |
| operating system | Unix-like, Microsoft Windows, Other |
| genre | Software development library |
| license | LGPL |
| website | |
| :: |
| name = Pango | title = | logo = Pango-name.svg | logo size = 200px | logo caption = Pango name written as intended, Greek pan (παν, "all") and Japanese go (語, "language") | collapsible = | author = Owen Taylor Raph Levien | developer = Behdad Esfahbod | released = | latest release version = | latest release date = | programming language = C | operating system = Unix-like, Microsoft Windows, Other | platform = | size = | language = | language count = | language footnote = | genre = Software development library | license = LGPL | alexa = | website = | standard = | AsOf =
Pango (stylized as Παν語) is a text (i.e. glyph) layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text.
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. The Cairo documentation recommends Pango be used to "render" text rather than Cairo for all but the simplest text "rendering".
History and naming
The name pango comes from Greek pan (παν, ) and Japanese go (語, ).
In January 2000, the merger of the GScript and GnomeText projects was named Pango.
Pango version 1.0.0 was released 11 March 2002.
Support for OpenType features
::figure[src="https://upload.wikimedia.org/wikipedia/commons/f/f3/Pango_locl_demo.png" caption="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:
::code[lang=bash]
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.:
::code[lang=bash]
pango-view
--font="Verdana 24"
--markup
--text 'In the same text: şţ(en) and şţ(ro).'
::
Since 1.37.1, Pango added more attributes to provide complete support for processing OpenType feature.{{cite web | url = https://ftp.gnome.org/pub/GNOME/sources/pango/1.37/pango-1.37.1.news | title = Overview of changes between 1.37.0 and 1.37.1 | access-date = 18 August 2015}}{{cite web | url = https://bugzilla.gnome.org/show_bug.cgi?id=738505 | title = Bug 738505 - Add fontfeatures support in PangoAttributes and markup | publisher = GNOME Bugzilla | access-date = 18 August 2015}}{{cite web | url = http://tavmjong.free.fr/blog/?p=1442 | title = Font Features Land in Inkscape Trunk | publisher = Tavmjong Bah's Blog | date = 23 June 2015 | access-date = 18 August 2015}}
The official showcase of Pango's script-aware features is here.
Major users
::figure[src="https://upload.wikimedia.org/wikipedia/commons/a/ab/GTK+_software_architecture.svg" caption="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.
References
References
- [https://www.osnews.com/story/5453 Interview: Red Hat's Owen Taylor on GTK+], '' also known for his contributions on Pango.'', by Eugenia Loli, 19th Dec 2003
- [https://people.redhat.com/otaylor/pango-mirror/download.shtml Pango], Made version 0.2, Owen Taylor, redhat.com
- "Pango website".
- "Cairo: A Vector Graphics Library: text".
- "The Pango connection: Part 1".
- Owen Taylor. "Pango - Status - 2017-11-30". Redhat.
- Chuck Toporek. (21 March 2000). "GNOMEs in Paris: A Report from GUADEC". O'Reilly Media.
- Raph Levien. (28 July 1999). "Pango proposal, rev 0.1".
- "GScript - Unicode and Complex Text Processing".
- Raph Levien. (10 Jul 1999). "Gnome-Text API documentation".
- Abdin, Ali. (1999). "GNOME Developer's Interview Follow-up".
- "Pango 1.0.0 released".
- "GTK user interface libraries, version 2.0".
- "Download for GNU/Linux and Unix".
- "Thunderbird 52.1.0 System Requirements".
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::