Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Pango
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Library for text rendering}} {{Other uses}} {{Infobox software | 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<ref>[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</ref><br />[[Raph Levien]] | developer = [[Behdad Esfahbod]] | released = {{Start date and age|1999|07|11|df=yes}}<ref>[https://people.redhat.com/otaylor/pango-mirror/download.shtml Pango], Made version 0.2, Owen Taylor, redhat.com</ref> | latest release version = {{wikidata|property|edit|reference|P348}} | latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}} | programming language = [[C (programming language)|C]] | operating system = [[Unix-like]], [[Microsoft Windows]], Other | platform = | size = | language = | language count = <!-- DO NOT include this parameter unless you know what it does --> | language footnote = | genre = [[Library (computing)|Software development library]] | license = [[LGPL]] | alexa = | website = {{URL|https://www.pango.org}} | standard = | AsOf = }} '''Pango''' (stylized as Παν語) is a text (i.e. [[glyph]]) layout engine [[library (computing)|library]] which works with the [[HarfBuzz]] shaping engine for displaying multi-language text.<ref>{{cite web | url = https://www.pango.org/ | title = Pango website | access-date = 7 July 2011}}</ref> 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 [[Front and back ends|backend]]s. Pango-processed text will appear similar under different operating systems.{{clarify|date=November 2012}} Pango is a special-purpose library for text and not a general-purpose graphics rendering library such as [[Cairo (graphics)|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".<ref>{{cite web|url=https://cairographics.org/manual/cairo-text.html|title=Cairo: A Vector Graphics Library: text|access-date=27 November 2015}}</ref> == History and naming == The name pango comes from Greek ''pan'' ([[wikt:παν|παν]], {{gloss|all}}) and Japanese ''go'' ([[wikt:語|語]], {{gloss|language}}).<ref>{{cite web | url = http://www.ibm.com/developerworks/library/l-u-pango1/ | title = The Pango connection: Part 1 | website = [[IBM]] | archive-url = https://web.archive.org/web/20090627223318/http://www.ibm.com/developerworks/library/l-u-pango1/ | archive-date = 27 June 2009 | access-date = 7 July 2011 | url-status = live}}</ref> In January 2000, the merger of the GScript and GnomeText projects was named Pango.<ref>[https://people.redhat.com/otaylor/pango-mirror/status-000114.shtml Pango - Status - 2017-11-30], Owen Taylor, Redhat</ref><ref>[http://linuxdevcenter.com/pub/a/linux/2000/03/21/guadec/guadec.html?page=2 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</ref><ref>[http://www.levien.com/gnome/pango-0.1.html Pango proposal, rev 0.1], Raph Levien, 28 July 1999</ref><ref>[https://web.archive.org/web/20000815092557/http://people.redhat.com/otaylor/gscript/ GScript - Unicode and Complex Text Processing], ''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</ref><ref>[http://www.levien.com/gnome/gnome-text.html 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.''</ref><ref>{{cite web|url=http://beast.testbit.eu/_mirror/gnome-news/946276088.html|title=GNOME Developer's Interview Follow-up|first=Ali|last=Abdin|date=1999|website=beast.testbit.eu|url-status=dead|archive-url=https://web.archive.org/web/20130602195924/http://beast.testbit.eu/_mirror/gnome-news/946276088.html|archive-date=2013-06-02}} ''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.''</ref> Pango version 1.0.0 was released 11 March 2002.<ref>{{cite web |url=http://gtk.org/pango-1.0.0-announce.html |title=Pango 1.0.0 released |access-date=2013-02-20 |url-status=dead |archive-url=https://web.archive.org/web/20020402201452/http://gtk.org/pango-1.0.0-announce.html |archive-date=April 2, 2002 }}</ref><ref>[https://mail.gnome.org/archives/gnome-announce-list/2002-March/msg00022.html GTK user interface libraries, version 2.0]</ref> ==Support for OpenType features== [[Image:Pango locl demo.png|thumb|250px|Default rendering above, localized Romanian rendering below.]] Pango 1.17 and newer support the '{{not a typo|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: <syntaxhighlight lang="bash"> for lang in en ro do pango-view \ --font="Verdana 64" \ --text "şţ vs. șț in $lang" \ --language=$lang done </syntaxhighlight> For an explanation of the substitutions rules for Romanian, see this [[Romanian alphabet#Comma-below .28.C8.99 and .C8.9B.29 versus cedilla .28.C5.9F and .C5.A3.29|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 [https://docs.gtk.org/Pango/pango_markup.html Pango markup], e.g.: <syntaxhighlight lang="bash"> pango-view \ --font="Verdana 24" \ --markup \ --text 'In the same text: şţ(en) and <span lang="ro">şţ(ro).</span>' </syntaxhighlight> Since 1.37.1, Pango added more attributes to provide complete support for processing OpenType feature.<ref>{{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}}</ref><ref>{{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}}</ref><ref>{{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}}</ref> The official showcase of Pango's script-aware features is [https://www.pango.org/ScriptGallery here]. ==Major users== [[File:GTK+ software architecture.svg|thumb|Simplified software architecture of [[GTK]]. Pango, [[GDK]], [[Accessibility Toolkit|ATK]], [[GIO (software)|GIO]], [[Cairo (graphics)|Cairo]] and [[GLib]].]] Pango has been integrated into most Linux distributions. The [[GTK]] UI toolkit uses Pango for all of its text rendering.<ref>{{cite web|title=Download for GNU/Linux and Unix|url=http://www.gtk.org/download/linux.php|website=gtk.org|access-date=2017-11-30|url-status=dead|archive-url=https://web.archive.org/web/20160818111012/http://www.gtk.org/download/linux.php|archive-date=18 August 2016}}</ref> The [[Linux]] versions of the [[Mozilla Firefox]] web browser and [[Mozilla Thunderbird]] mail client use Pango for text rendering.<ref>{{cite web|title=Thunderbird 52.1.0 System Requirements|url=https://www.mozilla.org/en-US/thunderbird/52.1.0/system-requirements/|website=mozilla.org|access-date=31 July 2017|url-status=live|archive-url=https://web.archive.org/web/20170510012333/https://www.mozilla.org/en-US/thunderbird/52.1.0/system-requirements/|archive-date=10 May 2017}}</ref> ==See also== {{Portal|Free and open-source software}} * [[HarfBuzz]] (text shaping engine which is incorporated into Pango itself but can be also used stand-alone) * [[Core Text]] (modern multilingual text rendering engine introduced in [[Mac OS X 10.5]]) * [[Graphite (smart font technology)|Graphite]] (multiplatform open source smart-font renderer) * [[WorldScript]] (Old Macintosh multilingual text rendering engine) * [[Typographic ligature]] * [[Computer font]] ==References== {{Reflist|30em}} ==External links== * {{Official website}} * [http://fishsoup.net/bib/PangoIuc25-paper.pdf Pango, an open-source Unicode text layout engine. by Owen Taylor in Twenty fifth Internationalization and unicode conference, April 2004] {{Webarchive|url=https://web.archive.org/web/20200706025551/http://fishsoup.net/bib/PangoIuc25-paper.pdf |date=2020-07-06 }} * [https://web.archive.org/web/20120227064838/http://ols.fedoraproject.org/OLS/Reprints-2001/taylor.pdf "Pango: internationalized text handling" Owen Taylor in Ottawa linux symposium 2001] * [https://developer.gnome.org/pango/stable/ Pango Reference Manual] * {{YouTube|Is4PW6f4Pk4|The journey of a word: how text ends up on a page}}, at [[linux.conf.au]] 2017 Simon Cozens explained the rendering of fonts {{Free and open-source typography}} {{Freedesktop.org}} [[Category:1999 software]] [[Category:C (programming language) libraries]] [[Category:Free computer libraries]] [[Category:Free software programmed in C]] [[Category:Freedesktop.org libraries]] [[Category:GNOME libraries]] [[Category:GTK]] [[Category:Software that uses Meson]] [[Category:Text rendering libraries]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Clarify
(
edit
)
Template:Free and open-source typography
(
edit
)
Template:Freedesktop.org
(
edit
)
Template:Gloss
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Not a typo
(
edit
)
Template:Official website
(
edit
)
Template:Other uses
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)
Template:Webarchive
(
edit
)
Template:YouTube
(
edit
)