Pango name written as intended
|Original author(s)||Owen Taylor
|Initial release||11 July 1999|
|Stable release||1.36.8 (September 22, 2014[±])|
|Operating system||Unix-like, Microsoft Windows, Other|
|Type||Software development library|
Pango (Παν語) is a text layout engine library which works with HarfBuzz shaping engine for displaying multi-language text. Full-function rendering of text and cross-platform support is had when Pango is used with platform APIs or 3rd party libraries, such as Uniscribe and FreeType, as text rendering backends. Pango-processed text will appear similar under different operating systems.[clarification needed]
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".
Support for OpenType features
Pango 1.17 and newer support the locl script tag that allows alternate 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: <span lang="en">şţ</span>(en) and <span lang="ro">şţ</span>(ro).'
The official showcase of Pango's script-aware features is here.
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.
- HarfBuzz (Text layout and shaping library and engine)
- Uniscribe (Windows multilingual text rendering engine)
- WorldScript (Old Macintosh multilingual text rendering engine)
- Core Text (modern multilingual text rendering engine introduced in Mac OS X 10.5)
- Graphite (multiplatform open source smart-font renderer)
- FontForge a typeface (font) editor program
- Interview: Red Hat's Owen Taylor on GTK+, also known for his contributions on Pango., by Eugenia Loli, 19th Dec 2003
- Pango, Made version 0.2, Owen Taylor, redhat.com
- "Pango (Recent releases)". Retrieved 2014-03-18.
- "Pango website". Retrieved 7 July 2011.
- "The Pango connection: Part 1". Archived from the original on 27 June 2009. Retrieved 7 July 2011.
- Pango - Status - 14 January 2000, Owen Taylor, Redhat
- 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
- Pango proposal, rev 0.1, Raph Levien, 28 Jul 1999
- GScript - Unicode and Complex Text Processing, The GScript project has been merged with the GnomeText project. For information about the result, named Pango, see: http://www.pango.org If you have trouble accessing that site, there is a mirror here. By Owen Taylor
- 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 workingon unifying the two api's as much as possible.
- GNOME Developer's Interview Follow-up, by Ali Abdin, 27 December ????, 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.
- Archive copy at the Wayback Machine, Pango 1.0.0 released
- GTK+ user interface libraries, version 2.0
- Official website
- Pango, an open-source Unicode text layout engine. by Owen Taylor in Twenty fifth Internationalization and unicode conference, April 2004
- The Pango Connection : Part 1, Tony Graham, 2001
- The Pango Connection : Part 2, Tony Graham, 2001
- "Pango: internationalized text handling" Owen Taylor in Ottawa linux symposium 2001
- "Implementation of Reverse Chaining Mechanism in Pango for Rendering Nastaliq Script" Wali, A., Rehman, S., In the Proceedings of Second Workshop of Computational Approaches to Arabic Script-based Languages (CAASL-2), Stanford University, US, 2007
- "Enhancing Contextual Substitution Support in Pango Using Opentype", Wali, A. MS Thesis, National University of Computer and Emerging Sciences, Lahore, Pakistan, 2004
- Pango Reference Manual