Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

GNU Unifont - это бесплатный растровый шрифт Unicode, использующий промежуточный растровый формат шрифта, созданный Романом Чиборрой. Основной Unifont охватывает всю базовую многоязычную плоскость (BMP). «Верхний» компаньон охватывает значительную часть дополнительной многоязычной плоскости (SMP). Сопутствующий элемент «Unifont JP» содержит японские иероглифы, присутствующие в наборе символов JIS X 0213 .

Он присутствует в большинстве бесплатных операционных систем и оконных систем, таких как Linux , XFree86 или X.Org Server, а также в некоторых встроенных прошивках, таких как RockBox . Шрифт выпущен под лицензией GNU General Public License версии 2+ с исключением встраивания шрифта (встраивание шрифта в документ не требует, чтобы документ находился под той же лицензией).

Он стал пакетом GNU в октябре 2013 года. Текущий сопровождающий - Пол Харди.

Статус [ править ]

Unicode Basic Multilingual Plane охватывает 2 16 (65536) кодовых точек. Из этого числа 2048 зарезервированы для специального использования в качестве суррогатных пар UTF-16, а 6400 зарезервированы для частного использования . Это оставляет 57 088 кодовых точек, которым могут быть назначены глифы. Некоторые из этих кодовых точек являются специальными значениями, которым не назначен глиф, но большинству из них назначены глифы.

По состоянию на май 2019 года GNU Unifont полностью покрывает базовую многоязычную плоскость, как определено в Unicode 12.1.0. Его сопутствующие шрифты, Unifont Upper и Unifont CSUR, в значительной степени охватывают дополнительную многоязычную плоскость и реестр Unicode ConScript соответственно.

Для версии 12.1.02 был выпущен Unifont JP, который охватывает 10 000 японских иероглифов, присутствующих в наборе символов JIS X 0213 , некоторые из которых находятся в дополнительной идеографической плоскости . Он является производным от шрифта Jiskan16, являющегося общественным достоянием.

Сценарии, которые выполнены менее чем на 100%, могут быть дополнены любым участником.

Большой блок около 20000 CJK идеограммы был скопирован с WenQuanYi «s UniBIT шрифта с разрешением. [1] ( Вэнь Цюань И: Весна писем )

Однако, несмотря на охват, Unifont хранит только один глиф для каждой печатаемой кодовой точки Unicode. Из-за этого он не поддерживает OpenType.функции, необходимые для правильного рендеринга скриптов со сложными макетами и правильного размещения комбинированных диакритических знаков с базовыми буквами, если эти комбинации не закодированы в Unicode в их предварительно объединенной форме; также не обрабатываются контекстные формы (включая типы соединения и присоединенные кластеры). Это увеличивает количество глифов для включения в основной шрифт, и в настоящее время невозможно (из-за текущих ограничений OpenType) кодировать все необходимые глифы для представления всех требуемых комбинаций, которые могут существовать в одной плоскости Unicode (это также верно для Китайские шрифты, которые не могут полностью покрыть все идеограммы, в настоящее время закодированные в двух плоскостях, а также в третьей плоскости). В этом случае Unifont можно использовать только как шрифт по умолчанию «в крайнем случае», подходящий для простых алфавитных сценариев или для визуализации отдельных символов,но сделает тексты трудными, а иногда и невозможными для правильного чтения. Для правильного рендеринга индийских абугида (и семитских абджадов, если они написаны с их необязательными объединяющими диакритическими знаками), в таблицах стилей должны быть указаны другие шрифты перед этим, и потребуются дополнительные шрифты для покрытияИдеографы хань, закодированные в дополнительных плоскостях, или для рендеринга большинства исторических (или современных) скриптов, не закодированных в BMP .

Распространение [ править ]

Образец на японском и китайском языках

Unifont, начиная с версии 12.0.0, доступен в векторных форматах TTF , BDF и PCF для «стандартной сборки». Только сборка TrueType разделена на Unifont и два сопутствующих шрифта. [1]

Несколько «специализированных версий» были созданы по запросу и предоставлены Полом Харди. К ним относятся растровое изображение TTF (SBIT) с пустыми глифами, заполненными значениями кодовой точки для чтения пользователями FontForge , растровое изображение PSF с глифами для программистов APL и однофайловые версии в римском формате .hex (см. Ниже). [1] Фактическая организация исходного кода состоит из файлов .hex меньшего размера, которые должны быть сшиты вместе и преобразованы в другие форматы в сборке. [2]

Векторизация [ править ]

Луис Алехандро Гонсалес Миранда написал сценарии для векторизации и преобразования шрифта BDF в формат TrueType с помощью FontForge . [3] Пол Харди скорректировал эти сценарии для обработки комбинирования символов (акцентов и т. Д.) Для последних версий TrueType. [1] ( Создание шрифтов TrueType )

Формат .hex [ править ]

Формат GNU Unifont .hex определяет свои глифы как 8 или 16 пикселей в ширину и 16 пикселей в высоту. Большинство глифов западного алфавита могут иметь ширину 8 пикселей, в то время как другие глифы (особенно китайско-японско-корейские или набор CJK) обычно имеют ширину 16 пикселей.

Файл unifont.hex содержит по одной строке для каждого глифа. Каждая строка состоит из четырехзначного шестнадцатеричного кода Unicode, двоеточия и строки точечного рисунка. Битовая строка состоит из 32 шестнадцатеричных цифр для глифа шириной 8 пикселей или 64 шестнадцатеричных цифр для глифа шириной 16 пикселей. Цель состоит в том, чтобы создать промежуточный формат, который упростил бы добавление новых глифов.

1Бит в битовой строке соответствует «на» пикселя. Биты пикселя хранятся сверху вниз, слева направо.

Пример [ править ]

Это пример шрифта, содержащего один глиф для заглавной буквы ASCII «A».

0041: 0000000018242442427E424242420000

Первое число - это шестнадцатеричный код Unicode в диапазоне от 0000 до FFFF. Шестнадцатеричный 0041 - это десятичное 65, кодовая точка для буквы «А». Двоеточие отделяет кодовую точку от растрового изображения. В этом примере ширина глифа составляет 8 пикселей, поэтому длина битовой строки составляет 32 шестнадцатеричных цифры.

Битовая строка начинается с 8 нулей, поэтому верхние 4 строки будут пустыми (2 шестнадцатеричных цифры на 8-битный байт, с 8 битами на строку для глифа шириной 8 пикселей). Битовая строка также заканчивается 4 нулями, поэтому нижние 2 строки будут пустыми. Из этого неявно подразумевается, что дескриптор шрифта по умолчанию находится на 2 строки ниже базовой линии, а высота заглавной буквы - на 10 строк выше базовой линии. Так обстоит дело в GNU Unifont с латинскими глифами.

Со временем было создано несколько способов обработки формата. Самый ранний способ - это hexdrawсценарий Perl, который преобразует строку в художественное представление ASCII для редактирования в текстовом редакторе. Другой метод включает создание сетки растровых изображений для всего диапазона кодовых точек и работу с редактором изображений. В любом случае отредактированные глифы позже преобразуются обратно в файлы .hex для хранения. [2]

История [ править ]

Роман Чиборра создал формат Unifont в 1998 году [4] после более ранних усилий, предпринятых в 1994 году.

В 2008 году Луис Алехандро Гонсалес Миранда написал программу для преобразования Unifont в шрифт TrueType. Позже Пол Харди модифицировал его для поддержки комбинирования символов в версии TrueType.

Позже Ричард Столмен опубликовал Unifont как пакет GNU в октябре 2013 года с Полом Харди в качестве сопровождающего.

Ссылки [ править ]

  1. ^ a b c d Глифы GNU Unifont
  2. ^ a b «Утилиты Unifoundry Unicode» . unifoundry.com . Проверено 16 апреля 2019 .
  3. ^ GNU Unifont в формате TrueType , заархивировано из оригинала 01.02.2016.
  4. ^ Страница Романа Чиборры GNU Unifont
  • Консорциум Unicode: стандарт Unicode 5.0 . 5-е, Эддисон Уэсли 2007; ISBN 0-321-48091-0 . 

Внешние ссылки [ править ]

  • Архивы проектов GNU
  • Unifoundry.com Страница GNU Unifont