Аналог шрифта arial в linux
В основе клиент-серверной модели X11 лежит так называемый X Window System core protocol, то есть Основной протокол X Window System. Именно им регулируется взаимодействие между различными компонентами системы. Основной протокол разрешает использование шрифтов на стороне X-сервера. X-сервер имеет либо непосредственный доступ к файлам шрифтов в файловой системе, либо через сеть, из программы, называемой сервером шрифтов. X-клиенты могут запрашивать у X-сервера список доступных шрифтов, какие-либо их атрибуты или размер, который займёт на экране строка текста, отрисованная определённым шрифтом.
X-сервер очень жёстко зависит от наличия некоторого набора базовых шрифтов, он просто не запустится, если в его распоряжении не будет достаточного набора шрифтов либо в виде файлов в файловой системе, либо в виде сервера шрифтов. Поэтому в любой операционной системе пакет с X-сервером он обязательно зависит от пакета с базовыми шрифтами.
Сервер шрифтов или X Font Server обеспечивает стандартный механизм доставки шрифтов X-серверу, чаще всего подключается к TCP-порту 7100. В настоящее время использовать сервер шрифтов не рекомендуется.
Конфигурация
Нас интересует директива FontPath, в которой указывается полный путь к каталогу, содержащему файлы шрифтов. Если этих директив нет или в них указаны неверные пути, или по указанным путям нет шрифтов, X-сервер не запустится. Внутри каталога шрифтов должны находиться непосредственно файлы шрифтов, а также несколько специальных служебных файлов: encodings.dir, fonts.alias, fonts.dir.
fonts.dir
список имён шрифтов в данном каталоге и файлов, в которых они содержатся. Из этого файла X-сервер берёт список шрифтов, которые будут использоваться;
fonts.alias
список псевдонимов для имён шрифтов, также читается X-сервером;
encodings.dir список известных кодировок шрифтов, читается X-сервером при открывании шрифта с неизвестной кодировкой.
Перечисленные выше служебные файлы создаются при помощи команд mkfontdir и mkfontscale . mkfontdir сканирует указанные каталоги, индексирует найденные там файлы растровых шрифтов и создаёт файлы fonts.dir и encodings.dir. Кроме того, mkfontdir добавляет в файл fonts.dir содержимое файла fonts.scale, если такой обнаружится. Файл fonts.scale в свою очередь создаётся командой mkfontscale , которая индексирует файлы векторных шрифтов.
В старых руководствах можно встретить рекомендацию использовать программу ttmkfdir для индексирования шрифтов формата TrueType, однако последние версии mkfontscale сами способны выполнить эту работу, так что никакой необходимости в ttmkfdir больше нет.
Итак, чтобы подготовить каталог, содержащий файлы шрифтов для использования в X-сервере, необходимо последовательно выполнить две команды: mkfontscale и mkfontdir , чаще всего этого бывает достаточно. Теперь этот каталог можно прописать в файле xorg.conf и X-сервер при следующем запуске «увидит» новые шрифты.
Однако, можно обойтись и без перезагрузки, для этого нужно выполнить команду xset +fp путь-к-каталогу-со-шрифтами . Если вы изменили что-то в уже добавленном каталоге, или же в системном, выполните команду xset fp rehash , чтобы X-сервер обновил список загруженных шрифтов. Обратите внимание, что упомянутые программы работают в контексте X-сервера, поэтому их нужно запускать в терминале изнутри X-сессии.
Этот способ можно использовать, например, для загрузки в X-сервер пользовательких шрифтов без редактирования системных конфигурационных файлов. Для этого нужно прописать соответствующие команды в файл, который запускается при старте вашей графической оболочки или X-сервера.
Использование
Для именования шрифтов в Core Protocol используется специальная нотация, называемая X Logical Font Description, сокращённо XLFD, на русский можно примерно перевести как Логическое Описание X-Шрифта. Главными целями и требованиями этой нотации являются:
- Обеспечить уникальные, описательные имена шрифтов, которые бы позволяли выполнять поиск по образцу.
- Поддержка множества производителей шрифтов, произвольных наборов символов и кодировок.
- Поддержка векторных шрифтов.
- Поддержка преобразований и выделений подмножества шрифта.
- Реализация, независимая от X-сервера, операционной и файловой системы.
- Поддержка произвольно сложного поиска и подмены шрифтов.
- Расширяемость.
XLFD-запись о шрифте представляет собой четырнадцать полей, разделённых симоволом «-». Каждое поле описывает какую-либо характеристику шрифта (название, начертание, кодировку и т.д.). Вот пример полностью определённой XLFD-записи о шрифте:
Запись может быть и не полностью определённой, в этом случае вместо конкретного значения какой-либо части стоит символ «*», например, так:
Каждая XLFD-запись соответствует некоторому набору из списка известных X-серверу шрифтов. Для полностью определённой записи такой набор может состоять из одного элемента максимум либо же вовсе быть пустым. Для неполностью определённой набор может состоять из нескольких записей. Когда выполняется некоторое приложение (то есть X-клиент), оно передаёт X-серверу XLFD-запись о желаемом шрифте. Чем менее определённой является эта запись (то есть чем больше символов «*» в ней встретится), тем больше вероятность, что подходящий под неё шрифт будет обнаружен и предоставлен. То есть XLFD играет роль маски при выборе шрифта.
Ключевой момент шрифтовой подсистемы X-сервера — отрисовкой шрифта занимается X-сервер, а запущенное приложение (то есть X-клиент) оперирует исключительно XLFD-записями и за растеризацию, масштабирование и прочие графические операции над шрифтом не отвечает. Преимуществом этого является меньший объём данных, который необходимо передать от X-клиента к X-серверу, по сути приложение передаёт только строку текста, которую уже затем отрисовывает X-сервер.
Сначала поэкспериментируем с именами шрифтов. В состав X-сервера входит утилита xfontsel , которая позволяет наглядно представить процесс выбора шрифта по заданным критериям. Просто запустите программу без параметров и попробуйте повыставлять различные значения компонентам XLFD. По мере выставления значений меняется количество шрифтов, под них подпадающих (в верхнем правом углу). Чтобы скопировать XLFD-запись в буфер, нажмите кнопку «select».
А теперь несколько примеров, чтобы проиллюстрировать сказанное. Попробуем запустить программу xterm и укажем ей использовать любой шрифт:
Мы используем полностью не определённую XLFD-запись, так что программа запустится с первым попавшим под маску именем шрифта. Теперь попробуем использовать заведомо несуществующее имя шрифта, например, зададим имя производителя FAKENAME.
Как мы видим, X-сервер не смог обнаружить такого шрифта и поэтому xterm использует некий «шрифт по умолчанию», в данном случае «fixed».
Теперь создадим XLFD-запись, выбирающую все шрифты наклонного начертания, имеющие кодировку «iso8859-1». Для этого запустим xfontsel и выставим значение XLFD-компонента slant в «i», rgstry в «iso8859», encdng в «1»; получим примерно такой результат:
И запустим xterm с только что выбранным шрифтом:
Помимо xfontsel существует несколько других полезных программ для работы со встроенной в X-сервер шрифтовой подсистемой:
xlsfonts
выдаёт список шрифтов, удовлетворяющих заданному образцу. Запуск без параметров выдаёт просто список всех шрифтов. * xfd
Позволяет просмотреть все глифы указанного шрифта на одном экране. Например, так:
Ограничения
Встроенная шрифтовая подсистема X-сервера очень старая и не позволяет использовать многие современные возможности отрисовки шрифтов, например, сглаживание; также она имеет очень серьёзные проблемы с юникодом и многобайтовыми кодировками, что ещё больше сужает возможность использования. Практически все современные программы не используют встроенный механизм отрисовки шрифтов на стороне X-сервера и предпочитают использовать более гибкие и богатые на возможности способы отрисовки на стороне X-клиента. Именно об этом я и буду говорить дальше, а на рассказе о встроенной в X-сервер шрифтовой подсистеме ставлю точку и больше не буду к этой теме возвращаться.
Чего не хватает обычному юзеру, который решил попробовать работать в Линукс? Такого привычного и даже на первый взгляд незаметного?
Это шрифты, да, самые обычные и привычные, такие как Ариал, Таймс Нью Роман, Колибри и тд.
А в системе какие то другие шрифты, не привычные, и документы в ворде этими же шрифтами.
Linux хранит шрифты в следующих местах: /usr/share/fonts это глобальные шрифты системы и /home/юзер/.fonts, которые доступны только этому пользователю.
Можете посмотреть что там у вас.
Так как же добавить шрифты Windows в Linux? В общем то так же примерно, как и в Виндовс, просто скопировать нужные шрифты в нужные папки.
Вот например у меня шрифты привычные виндусевые
А после добавления нужно обновить кеш командой fc-cache –f –v
Но, в этом есть неудобство, нужно искать шрифты, качать, особенно если на соседнем диске не живет виндоувс.
Если у вас виндоувс есть, то идем в его диск в папочку со шрифтами:
Находим нужный шрифт и кликаем по нему 2 раза, и нажимаем в окне установить.
С помощью менеджера пакетов
Способ удобен тем, что не надо обновлять кэш шрифтов, но сам шрифт надо искать да в консоле. Ну например:
sudo apt search название_шрифта
Если такой есть, то ставим:
sudo apt install название_шрифта
Ну, честно сказать, так себе метод.
TrueType
Еще в далеком 96 году майкорософт разрешила ставить эти шрифты всем желающим, ну точнее выложила пакет шрифтов в составе Andale Mono, Arial, Arial Black, Comic Sans MS, Courier New, Georgia, Impact, Times New Roman, Trebuchet, Verdana, и Webdings.
sudo apt install ttf-mscorefonts-installer
Принимаем лицензию, для этого кликаем по tab и потом курсором ok.
ClearType
Тут у нас следующие шрифты: Constantia, Corbel, Calibri, Cambria, Candara, Consolas.
Тут шрифты встанут не глобально, а только для конкретного пользователя, увы, но только так.
sudo apt install cabextract
/.fonts это если у вас нет такой директории
Это все справедливо для всех дистрибутивов на базе Ubuntu
Установка Windows шрифтов в Fedora и другие дистрибутивы на RPM
Ручное добавление шрифтов аналогично, тому что я писал выше.
Копируем под администратором сюда: /usr/share/fonts/ttf
Так как мы делали под root, меняем владельца и прописываем права:
chown root.root *.ttf
chmod 644 *.ttf
Теперь переходим в каталог /usr/share/fonts/ttf и запускаем там консоль, дабы создать индекс шрифтов.
Теперь находим файл /usr/share/fonts/truetype/fonts.cache-1 и редактируем его:
Да, способ так себе, скажу я вам. Но так как я давно не использую дистрибутивы на основе RPM, может там что то поменялось и для начала просто попробуйте скопировать шрифты в папку локального пользователя.
Интернет мне подсказывает, что есть пакетный способ установить, сам не проверял:
Times New Roman, Calibri и многие другие популярные шрифты созданы в Microsoft и поэтому не могут быть включены в Linux. Если вы откроете в LibreOffice документ Microsoft Office, для того, чтобы увидеть его таким, каким он был создан, необходимо, чтобы в вашей системе Linux были установлены шрифты Microsoft.
Также вы можете использовать шрифты от Microsoft при создании собственных документов, чтобы при сохранении их в формате DOCX или DOC для дальнейшей работы в Microsoft Office обеспечивалась бы максимальная совместимость.
Этот пакет шрифтов содержит Andale Mono, Arial, Arial Black, Comic Sans MS, Courier New, Georgia, Impact, Times New Roman, Trebuchet, Verdana и Webdings. В офисных документах шрифтом по умолчанию был Times New Roman, пока в Office 2007 не дебютировал Calibri.
Данные шрифты легко можно установить в Ubuntu. К сожалению в современных версиях Ubuntu вы не сможете установить их из Ubuntu Software Center, так как он при этом зависнет - необходимо использовать терминал, чтобы вы могли подтвердить свое согласие с условиями лицензии.
Когда вас запросят, введите свой пароль и снова нажмите Enter. Когда появится лицензионное соглашение, пролистайте его с помощью клавиш со стрелками и Page Down/Page Up. Нажмите Tab, чтобы выбрать кнопку OK, и нажмите Enter, чтобы согласиться с условиями лицензии. Инсталлятор скачает шрифты и настроит их так, что они сразу станут доступны в программах, например в LibreOffice.
Microsoft никогда не распространял эти шрифты, как это было с их предшественниками. Однако Microsoft сделал их доступными для скачивания как часть бесплатной программы PowerPoint Viewer 2007. Если у вас нет установленной Windows, вы можете использовать скрипт, который скачивает PowerPoint Viewer 2007 с сайта Microsoft, извлекает из него шесть шрифтов ClearType и устанавливает их в вашей системе Linux. Этот скрипт установит шрифты только для вашего пользовательского аккаунта.
Быстрее всего это можно сделать с помощью нескольких команд в терминале.
Если у вас еще не установлены шрифты TrueType, вам необходимо сначала установить утилиту cabextract:
Далее создайте директорию для шрифтов, которая нужна скрипту, с помощью команды:
В двух вышеописанных пакетах содержится практически все, что вам может понадобиться. У вас будут стандартные шрифты Microsoft Office плюс старые шрифты, такие как Times New Roman.
Однако некоторые шрифты не входят в эти пакеты. Tahoma не включен в пакет TrueType core fonts, а Segoe UI и некоторые другие новые шрифты Windows не включены в пакет ClearType Fonts.
Если у вас есть установленная Windows, эти шрифты установить очень просто. Например, допустим у вас система с двойной загрузкой Ubuntu Linux и Windows. Вы открываете раздел с Windows в файловом менеджере Ubuntu и переходите в директорию Windows\Fonts. В ней вы увидите все шрифты, установленные в Windows, включая те, которые нужны нам. Дважды кликните шрифт, и затем нажмите кнопку Install, чтобы установить шрифт для своего пользовательского аккаунта. Фактически, таким образом, вы можете установить себе любые шрифты, уже установленные в Windows.
Если Windows у вас на другом компьютере, скопируйте необходимые вам шрифты из директории C:\Windows\Fonts на флешку, и затем установите их в Linux.
Независимо от того, используется ли вашем дистрибутиве LibreOffice или OpenOffice, настроить их для использования выбранных вами шрифтов очень просто. Если вы устанавливали их, как описано выше, они уже доступны. Если офисный пакет был запущен во время установки шрифтов, необходимо перезапустить его. Если вы хотите изменить шрифты, используемые по умолчанию для новых документов, кликните ""Tools > Options" в LibreOffice Writer".
Специфической особенностью рунета является проблема с кодировками страниц и поддержкой кириллицы в шрифтах. Чтобы не возникало проблем с разнообразными кодировками символов, умные люди придумали Unicode, который позволяет сочетать в одном шрифте символы нескольких языков. Таким образом для русскоязычных страниц нужно использовать только Unicode шрифты поддерживающие кириллицу.
Ниже приведена таблица соответствий шрифтов.
Windows | Mac OS | Unix/Linux | Родовое семейство |
---|---|---|---|
Arial Black | Helvetica CY | Nimbus Sans L | Sans-serif |
Arial | Helvetica CY | Nimbus Sans L | Sans-serif |
Comic Sans MS | Monaco CY | * (см. ниже) | cursive |
Courier New | * (см. ниже) | Nimbus Mono L | Monospace |
Georgia | * (см. ниже) | Century Schoolbook L | Serif |
Impact | Charcoal CY | * (см. ниже) | Sans-serif |
Times New Roman | Times CY | Nimbus Roman No9 L | Serif |
Trebuchet MS | Helvetica CY | * (см. ниже) | Sans-serif |
Verdana | Geneva CY | DejaVu Sans | Sans-serif |
* в колонке напротив шрифта означает, что родных кириллических эквивалентов Windows шрифта у операционной системы не имеется. Но в то же время есть большая вероятность, что в операционной системе установлен непосредственно сам этот шрифт.
Например, если основным текстом макета является Arial, находим в табличке этот шрифт и в CSS пишем соответствующую ему строчку:
Эта запись означает, что если у пользователя есть шрифт Arial (а он есть у всех пользователей Windows и всех пользователи Mac OS X), то страница отобразися этим шрифтом. Если же у пользователя нет этого шрифта, то страничка русскоязычного пользователя Mac OS 9 точно отобразится стандартным системным шрифтом Helvetica CY, а у пользователя Unix/Linux отобразися шрифтом Nimbus Sans L который установлен у 90% пользователей Unix/Linux. Если же пользователь Unix/Linux принадлежит в тем 10%, у которых нет этого шрифта, то страница отобразится тем шрифтом с засечками, который установлен для просмотра Web-страниц по умолчанию.
Образцы подобных линеек можно увидеть, например, в Dreamweaver.
Образец линеек шрифтов в Dreamweaver
Начинающие верстальщики выбирают линейку по первому шрифту не задумываются, что же означает эта длинная строчка. Некоторые даже стирают все, кроме первого шрифта, лишая удовольствия увидеть замысел дизайнера всех пользователей, у которых по каким-то причинам не установлен этот шрифт.
Но мы то теперь знаем, что означает эта строка, не правда ли? И уже можем правильно ее использовать.
Но почему же строка построенная нами так сильно отличается от привычного по Dreamweaver:
Кроме того, что в таблице учитываются шрифты Unix/Linux, там еще после обычного Helvetica идет какой-то странный значок CY. Давайте разбираться, что же это такое!
До выхода Mac OS X эта линейка имела следующее значение: для пользователей Windows отображаем страницу Arial, для пользователей Mac OS 9 — стандартным шрифтом Helvetica, а остальные видят страницу с системным шрифтом без засечек, настроенным по умолчанию в браузере. Но опять же немаловажный нюанс! У стандартного Mac OS 9 шрифта Helvetica нет кириллицы! Для русскоязычной страницы это означало следующее: для пользователей Windows отображаем страницу Arial, для пользователей Mac OS 9 — стандартным шрифтом Helvetica, который выводит нечитаемую информацию, а остальные видят страницу с системным шрифтом без засечек, настроенным по умолчанию в браузере.
Для правильного отображения этого набора у пользователей Mac OS 9 вместо некириллизированной Helvetica, имеет смысл указывать такой же стандартный для Mac OS 9 шрифт Helvetica CY, содержащий кириллицу.
Прочтение линеек после выхода Mac OS X изменилось. Теперь для Windows/Mac OS X указывается один общий стандартный шрифт. А если мы хотим, чтобы замысел дизайнера смогли увидеть пользователи Mac OS 9, для них нужно в линейке шрифтов прописать шрифт содержащий кириллицу.
Таким образом хотя и не существует безопасных шрифтов, существуют безопасные линейки шрифтов. Их еще называют шрифтовыми CSS стеками. В эти линейки помимо стандартных шрифтов Windows/Mac OS X можно включать также эквивалентные шрифты из стандартного набора Mac OS 9 (которая не содержит по умолчанию «безопасных» шрифтов) и распространенных шрифтов Unix/Linux.
Любой верстальщик рано или поздно сталкивается с моментом, когда дизайнер использует в макете шрифт, не входящий в перечень «безопасных»;. Но это еще не повод бить тревогу! Например, дизайнеры очень часто используют на макетах шрифт Tahoma, который не входит в этот перечень. Правильно построенная линейка шрифтов открывает возможность использовать не только Tahoma, но и другие шрифты. Все большее количество дизайнеров пользуются этой возможностью и грамотный верстальщик должен об этом знать.
Ниже приведена дополнительная таблица шрифтов, которые не входят в перечень «безопасных», но могут использоваться на макетах.
Windows | Mac OS | Родовое семейство |
---|---|---|
Lucida Console | Monaco | Monospace |
Lucida Sans Unicode | Lucida Grande | Sans-serif |
Tahoma | Geneva CY | Sans-serif |
А если без кириллицы?
Для англоязычных текстов вышеприведенные таблицы имеют несколько другой вид.
Windows | Mac OS | Unix/Linux | Родовое семейство |
---|---|---|---|
Arial Black | Gadget | Nimbus Sans L | Sans-serif |
Arial | Helvetica | Nimbus Sans L | Sans-serif |
Comic Sans MS | Monaco | TSCu_Comic | cursive |
Courier New | Courier | Nimbus Mono L | Monospace |
Georgia | * (см. ниже) | Century Schoolbook L | Serif |
Impact | Charcoal | Rekha | Sans-serif |
Times New Roman | Times | Nimbus Roman No9 L | Serif |
Trebuchet MS | Helvetica | Garuda | Sans-serif |
Verdana | Geneva | DejaVu Sans | Sans-serif |
Для шрифтов Arial, Courier New и Times New Roman при составлении линеек лучше указывать сначала шрифт для Unix/Linux, а затем для Mac OS. Это связанно с некоторой кривостью набора Linux шрифтов X11 core fonts set.
Шрифты, которые не входят в перечень «безопасных», но могут использоваться на макетах, лучше определять шрифтовыми CSS стеками на основе этой таблицы.
Windows | Mac OS | Unix/Linux | Родовое семейство |
---|---|---|---|
Lucida Console | Monaco | — | Monospace |
Lucida Sans Unicode | Lucida Grande | Garuda | Sans-serif |
Palatino Linotype | Palatino | Garuda** | Sans-serif |
Tahoma | Geneva | Kalimati | Sans-serif |
Прочерк в графе Unix/Linux обозначает, что пользователи этих ОС скорее всего увидят на странице шрифт, установленный для отображения страниц по умолчанию.
** В данной линейке шрифт Garuda имеет смысл ставить перед Palatino (см. пояснение выше).
Читайте также: