Pango: Difference between revisions
m URL templates |
mNo edit summary |
||
Line 4: | Line 4: | ||
| developer = [[Behdad Esfahbod]] |
| developer = [[Behdad Esfahbod]] |
||
<!-- | logo = --> |
<!-- | logo = --> |
||
|screenshot = <span style="font-size:3em; line-height: 130%;"> |
|screenshot = <span style="font-size:3em; line-height: 130%;">Pan***</span> |
||
|caption = Pango name written as intended |
|caption = Pango name written as intended |
||
| latest_release_version = 1.29.5 |
| latest_release_version = 1.29.5 |
||
Line 14: | Line 14: | ||
}} |
}} |
||
'''Pango''' ( |
'''Pango''' (Pan***) is an [[LGPL]] licensed [[open source software|open source]] [[computing]] [[library (computing)|library]] used by software developers for laying out and rendering text in high quality, emphasising support for multilingual text.<ref>{{cite web |
||
|url = http://www.pango.org/ |
|url = http://www.pango.org/ |
||
|title = Pango website |
|title = Pango website |
||
|accessdate = 7 July 2011 |
|accessdate = 7 July 2011 |
||
}}</ref> Different font [[backend]]s can be used, allowing cross-platform support, so that Pango-rendered text will appear similar under different operating systems, such as [[Linux]], Apple's [[Mac OS]], and [[Microsoft Windows]]. |
}}</ref> Different font [[backend]]s can be used, allowing cross-platform support, so that Pango-rendered text will appear similar under different operating systems, such as [[GNU/Linux]], Apple's [[Mac OS]], and [[Microsoft Windows]]. |
||
== Utilization == |
== Utilization == |
||
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.{{clarify|post-text=(see [[Talk:Pango#Linux and Firefox integration|talk page]])|date=July 2011}} |
Pango has been integrated into most GNU/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.{{clarify|post-text=(see [[Talk:Pango#Linux and Firefox integration|talk page]])|date=July 2011}} |
||
== Name == |
== Name == |
||
The name pango comes from [[Greek language|Greek]] ''pan'' ( |
The name pango comes from [[Greek language|Greek]] ''pan'' (pan, "all") and [[Japanese language|Japanese]] ''go'' (***, "[[language]]").<ref>{{cite web |
||
|url = http://www.ibm.com/developerworks/library/l-u-pango1/ |
|url = http://www.ibm.com/developerworks/library/l-u-pango1/ |
||
|title = The Pango connection: Part 1 |
|title = The Pango connection: Part 1 |
||
Line 42: | Line 42: | ||
for lang in en ro; do pango-view \ |
for lang in en ro; do pango-view \ |
||
--font="Verdana 64" \ |
--font="Verdana 64" \ |
||
--text " |
--text "st vs. ** in $lang" \ |
||
--language=$lang; done |
--language=$lang; done |
||
</source> |
</source> |
||
Line 54: | Line 54: | ||
--font="Verdana 24" \ |
--font="Verdana 24" \ |
||
--markup \ |
--markup \ |
||
--text 'In the same text: <span lang="en"> |
--text 'In the same text: <span lang="en">st</span>(en) and <span lang="ro">st</span>(ro).' |
||
</source> |
</source> |
||
Line 63: | Line 63: | ||
== HarfBuzz == |
== HarfBuzz == |
||
'''HarfBuzz''' (in [[Persian language|Persian]]: {{lang|fa| |
'''HarfBuzz''' (in [[Persian language|Persian]]: {{lang|fa|hkr+f+*b+a+z+}}) is a layout/shaping engine for [[OpenType]] fonts.<ref>{{cite web |
||
|url = http://freedesktop.org/wiki/Software/HarfBuzz |
|url = http://freedesktop.org/wiki/Software/HarfBuzz |
||
|title = HarfBuzz Official website |
|title = HarfBuzz Official website |
||
Line 113: | Line 113: | ||
[[Category:GTK+]] |
[[Category:GTK+]] |
||
[[ar: |
[[ar:b+a+n+i+w+]] |
||
[[ca:Pango]] |
[[ca:Pango]] |
||
[[de:Pango]] |
[[de:Pango]] |
||
Line 124: | Line 124: | ||
[[pt:Pango]] |
[[pt:Pango]] |
||
[[ru:Pango]] |
[[ru:Pango]] |
||
[[si: |
[[si:******************]] |
||
[[zh:Pango]] |
[[zh:Pango]] |
Revision as of 14:10, 8 April 2012
Pan*** Pango name written as intended | |
Developer(s) | Behdad Esfahbod |
---|---|
Stable release | 1.29.5
/ 22 November 2011 |
Repository | |
Operating system | Unix-like, Microsoft Windows |
Type | Text rendering |
License | LGPL |
Website | www |
Pango (Pan***) is an LGPL licensed open source computing library used by software developers for laying out and rendering text in high quality, emphasising support for multilingual text.[1] Different font backends can be used, allowing cross-platform support, so that Pango-rendered text will appear similar under different operating systems, such as GNU/Linux, Apple's Mac OS, and Microsoft Windows.
Utilization
Pango has been integrated into most GNU/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.[clarification needed (see talk page)]
Name
The name pango comes from Greek pan (pan, "all") and Japanese go (***, "language").[2]
Support for OpenType features
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Pango_locl_demo.png/250px-Pango_locl_demo.png)
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 "st 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">st</span>(en) and <span lang="ro">st</span>(ro).'
The official showcase of Pango's script-aware features is here.
Text and graphics
Complete text handling and graphics rendering is provided when integrated with Cairo.
HarfBuzz
HarfBuzz (in Persian: hkr+f+*b+a+z+) is a layout/shaping engine for OpenType fonts.[3] Its purpose is to standardize text layout in FOSS; its code originally started as part of the FreeType project, was then developed separately in Qt and Pango, and finally merged back into a common repository. Both Qt and Pango currently use HarfBuzz; other standalone users include Firefox and Chromium, the open source project behind Google Chrome.[4]
See also
- 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 from SIL)
- Cairo a vector-based graphics library with multiple backends
- FreeType a software library that implements a font rasterization engine
- FontForge a typeface (font) editor program
Notes
- ^ "Pango website". Retrieved 7 July 2011.
- ^ "The Pango connection: Part 1". Archived from the original on 27 June 2009. Retrieved 7 July 2011.
{{cite web}}
: Unknown parameter|deadurl=
ignored (|url-status=
suggested) (help) - ^ "HarfBuzz Official website". Retrieved 7 July 2011.
- ^ Esfahbod, Behdad (18 January 2010). "State of Text Rendering". Retrieved 7 July 2011.
{{cite web}}
: Unknown parameter|deadurl=
ignored (|url-status=
suggested) (help)
References
- 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
- Harfbuzz API design discussion thread
- Pango Reference Manual