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.[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".
Pango version 1.0.0 was released 11 March 2002.
Support for OpenType features
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 \
--text " vs. in $lang"\
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.:
--text 'In the same text?(en) and <span class="notice ro">(ro).</span>'
Since 1.37.1, Pango added more attributes to provide complete support for processing OpenType feature.
The official showcase of Pango's script-aware features is here.
^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
^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.
^Abdin, Ali (1999). "GNOME Developer's Interview Follow-up". beast.testbit.eu. Archived from the original on 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.