Pango

From Wikipedia, the free encyclopedia

Template:Short description Script error: No such module "other uses". Template:DMCA

Page Module:Infobox/styles.css has no content.

Pango
[[Programmer|Original authorTemplate:Pluralize from text]]Owen Taylor[1]
Raph Levien
[[Programmer|DeveloperTemplate:Pluralize from text]]Behdad Esfahbod
Initial release11 July 1999; 27 years ago (1999-07-11)[2]
Template:Infobox software/simple
Written inC
EnginePage Template:Plainlist/styles.css has no content.Template:EditAtWikidata
Operating systemUnix-like, Microsoft Windows, Other
TypeSoftware development library
LicenseLGPL
Websitewww.gtk.org/docs/architecture/pango
RepositoryPage Template:Plainlist/styles.css has no content.

Script error: No such module "Check for conflicting parameters".

Pango (stylized as Παν語) is a text (i.e. glyph) layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text.[3]

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.[<span title="Script error: No such module "decodeEncode".">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. The Cairo documentation recommends Pango be used to "render" text rather than Cairo for all but the simplest text "rendering".[4]

History and naming

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

In January 2000, the merger of the GScript and GnomeText projects was named Pango.[6][7][8][9][10][11]

Pango version 1.0.0 was released 11 March 2002.[12][13]

Support for OpenType features

File:Pango locl demo.png
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).</span>'

Since 1.37.1, Pango added more attributes to provide complete support for processing OpenType feature.[14][15][16]

Major users

File:GTK+ software architecture.svg
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.[17] The Linux versions of the Mozilla Firefox web browser and Mozilla Thunderbird mail client use Pango for text rendering.[18]

See also

Lua error in mw.title.lua at line 404: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

References

Page Template:Reflist/styles.css has no content.

  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, redhat.com
  3. ^ Page Module:Citation/CS1/styles.css has no content."Pango website". Retrieved 19 July 2025.
  4. ^ Page Module:Citation/CS1/styles.css has no content."Cairo: A Vector Graphics Library: text". Retrieved 27 November 2015.
  5. ^ Page Module:Citation/CS1/styles.css has no content."The Pango connection: Part 1". IBM. Archived from the original on 27 June 2009. Retrieved 19 July 2025.
  6. ^ Page Module:Citation/CS1/styles.css has no content.Owen Taylor. "Pango - Status - 2017-11-30". Redhat.
  7. ^ Page Module:Citation/CS1/styles.css has no content.Chuck Toporek (21 March 2000). "GNOMEs in Paris: A Report from GUADEC". O'Reilly Media. Archived from the original on 1 December 2017. Retrieved 19 July 2025. The most impressive part of their presentation was the discussion on Pango (the result of the GScript and GnomeText merger)
  8. ^ Page Module:Citation/CS1/styles.css has no content.Raph Levien (28 July 1999). "Pango proposal, rev 0.1". Retrieved 19 July 2025.
  9. ^ Page Module:Citation/CS1/styles.css has no content."GScript - Unicode and Complex Text Processing". Archived from the original on 15 August 2000. Retrieved 21 July 2025. The GScript project has been merged with the GnomeText project. For information about the result, named Pango, see:https://www.pango.org If you have trouble accessing that site, there is a mirror here. By Owen Taylor
  10. ^ Page Module:Citation/CS1/styles.css has no content.Raph Levien (10 July 1999). "Gnome-Text API documentation". 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.
  11. ^ Page Module:Citation/CS1/styles.css has no content.Abdin, Ali (1999). "GNOME Developer's Interview Follow-up". beast.testbit.eu. Archived from the original on 2 June 2013. 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.
  12. ^ Page Module:Citation/CS1/styles.css has no content."Pango 1.0.0 released". Archived from the original on 2 April 2002. Retrieved 20 February 2013.
  13. ^ Page Module:Citation/CS1/styles.css has no content."GTK user interface libraries, version 2.0". Retrieved 19 July 2025.
  14. ^ Page Module:Citation/CS1/styles.css has no content."Overview of changes between 1.37.0 and 1.37.1". Retrieved 18 August 2015.
  15. ^ Page Module:Citation/CS1/styles.css has no content."Bug 738505 - Add fontfeatures support in PangoAttributes and markup". GNOME Bugzilla. Retrieved 18 August 2015.
  16. ^ Page Module:Citation/CS1/styles.css has no content."Font Features Land in Inkscape Trunk". Tavmjong Bah's Blog. 23 June 2015. Retrieved 18 August 2015.
  17. ^ Page Module:Citation/CS1/styles.css has no content."Download for GNU/Linux and Unix". gtk.org. Archived from the original on 18 August 2016. Retrieved 30 November 2017.
  18. ^ Page Module:Citation/CS1/styles.css has no content."Thunderbird 52.1.0 System Requirements". mozilla.org. Archived from the original on 10 May 2017. Retrieved 31 July 2017.

Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found. Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.