Pango (стилизованный под Παν語) — это библиотека механизма компоновки текста (т. е. глифов ) , которая работает с механизмом формирования HarfBuzz для отображения многоязычного текста. [4]
Полнофункциональная поддержка рендеринга текста и кроссплатформенность достигается, когда Pango используется с API-интерфейсами платформы или сторонними библиотеками, такими как Uniscribe и FreeType , в качестве бэкэндов рендеринга текста . Текст, обработанный Pango, будет выглядеть одинаково в разных операционных системах. [ нужны разъяснения ]
Pango — это библиотека специального назначения для текста, а не библиотека рендеринга графики общего назначения, такая как Cairo , с которой можно использовать Pango. Документация Cairo рекомендует использовать Pango для «рендеринга» текста, а не Cairo для всех случаев, кроме простейшего «рендеринга» текста. [5]
История и именование
Название «панго» происходит от греческого «пан» (παν, « все » ) и японского «го» (語, « язык » ). [6]
В январе 2000 года слияние проектов GScript и GnomeText получило название Pango. [7] [8] [9] [10] [11] [12]
Версия Pango 1.0.0 была выпущена 11 марта 2002 года. [13] [14]
Поддержка функций OpenType
Рендеринг по умолчанию выше, локализованный рендеринг на румынском языке ниже.
Pango 1.17 и новее поддерживают тег функции «locl», который позволяет использовать локализованные глифы для одной и той же кодовой точки Unicode. Предполагая, что у вас установлена версия Verdana 5.01, которая поддерживает функцию «locl» для сценария latn/ROM (румынский), быстрая демонстрация (в Linux):
для языка в en ro ; do pango-view \ --font = "Verdana 64" \ --text "şţ vs. şt in $lang " \ --language = $lang ; сделанный
Объяснение правил замен для румынского языка смотрите в этом обсуждении .
Установка локали через переменную среды POSIX, например LANG=ro_RO.UTF-8, также приведет к тому, что Pango будет использовать функцию шрифта «locl». Наконец, вы можете менять язык на лету в том же тексте, используя разметку Pango, например:
pango-view \ --font = "Verdana 24" \ --markup \ --text 'В том же тексте: şţ(en) и <span lang="ro">şţ(ro).</span>'
Начиная с версии 1.37.1, Pango добавила больше атрибутов, чтобы обеспечить полную поддержку обработки функций OpenType. [15] [16] [17]
Официальная демонстрация возможностей Pango, поддерживающих сценарии, находится здесь.
Pango интегрирован в большинство дистрибутивов Linux. Инструментарий GTK UI использует Pango для рендеринга всего текста. [18] Версии веб-браузера Mozilla Firefox и почтового клиента Mozilla Thunderbird для Linux используют Pango для рендеринга текста. [19]
↑ Интервью: Оуэн Тейлор из Red Hat о GTK+, также известный своим вкладом в Pango. , Евгения Лоли, 19 декабря 2003 г.
^ Pango, Сделано версия 0.2, Оуэн Тейлор, redhat.com
^ «Тег 1.51.2».
^ "Сайт Панго" . Проверено 7 июля 2011 г.
^ «Каир: Библиотека векторной графики: текст» . Проверено 27 ноября 2015 г.
^ «Связь с Панго: Часть 1». ИБМ . Архивировано из оригинала 27 июня 2009 года . Проверено 7 июля 2011 г.
^ Панго - Статус - 30 ноября 2017 г., Оуэн Тейлор, Redhat
^ GNOMEs в Париже: отчет GUADEC. Самой впечатляющей частью их презентации было обсуждение Pango (результат слияния GScript и GnomeText) , 21 марта 2000 г., Чак Топорек - O'Reilly Media
↑ Предложение Pango, версия 0.1, Раф Левиен, 28 июля 1999 г.
^ GScript — Юникод и сложная обработка текста. Проект GScript был объединен с проектом GnomeText. Информацию о результате под названием Pango см. по адресу: http://www.pango.org. Если у вас возникли проблемы с доступом к этому сайту, здесь есть зеркало. Оуэн Тейлор
^ Документация Gnome-Text API, Раф Левиен, 10 июля 1999 г., Оуэн Тейлор работает над gscript, который в некоторой степени пересекается с функциями, описанными в этом интерфейсе. Мы работаем над тем, чтобы максимально объединить два API.
^ Абдин, Али (1999). «Продолжение интервью с разработчиком GNOME». www.beast.testbit.eu . Архивировано из оригинала 2 июня 2013 г.Pango (кодовое название слияния моего проекта Gscript и проекта Рафа Левиена GnomeText) представляет собой модульный набор библиотек для макетирования и рендеринга международного текста. Это немного похоже на Uniscript от Microsoft или ATSUI от Apple.
^ «Выпущена Pango 1.0.0» . Архивировано из оригинала 2 апреля 2002 года . Проверено 20 февраля 2013 г.
^ Библиотеки пользовательского интерфейса GTK, версия 2.0.
^ «Обзор изменений между 1.37.0 и 1.37.1» . Проверено 18 августа 2015 г.
^ «Ошибка 738505 — Добавлена поддержка функций шрифтов в PangoAttributes и разметке» . ГНОМ Багзилла . Проверено 18 августа 2015 г.
^ «Особенности шрифтов попадают в багажник Inkscape» . Блог Тавмджонга Ба. 23 июня 2015 года . Проверено 18 августа 2015 г.
^ «Загрузка для GNU/Linux и Unix». gtk.org . Архивировано из оригинала 18 августа 2016 года . Проверено 30 ноября 2017 г.
^ «Системные требования Thunderbird 52.1.0» . сайт mozilla.org . Архивировано из оригинала 10 мая 2017 года . Проверено 31 июля 2017 г.
Внешние ссылки
Официальный веб-сайт
Pango — механизм компоновки текста Unicode с открытым исходным кодом. Оуэн Тейлор на Двадцать пятой конференции по интернационализации и Unicode, апрель 2004 г. Архивировано 6 июля 2020 г. на Wayback Machine.
«Pango: интернациональная обработка текста» Оуэн Тейлор на симпозиуме Linux в Оттаве, 2001 г.
Справочное руководство Pango
Путь слова: как текст попадает на страницу YouTube , на linux.conf.au 2017 Саймон Козенс объяснил рендеринг шрифтов