Font HOWTO

Я собирался написать очень краткий обзор (-; Моей целью при создании этого документа было заполнение зияющего пробела в документации о шрифтах. Хотя и существует несколько документов об использовании шрифтов в Linux, я считаю, что ни один из них не является исчерпывающим, все они посвящены частным вопросам. Поэтому цель настоящего документа не в том, чтобы совершить какой-то прорыв в вопросе об использовании шрифтов (хотя я и включил сюда материал, ранее не публиковавшийся), а в том, чтобы дать достаточно полный обзор, который мог бы служить отправной точкой для решения всех вопросов, касающихся использования шрифтов под Linux.

[Donovan Rebbechi, перевод: В.А.Костромин]

1. Введение

1.1 Местонахождение этого документа

Исходный текст этого документа можно найти на web-странице автора http://pegasus.rutgers.edu/~elflord/font_howto.

Русский перевод находится на сайте переводчика http://linux-ve.chat.ru/kos/font_HOWTO_ru/Font-HOWTO.html.

1.2 Назначение этого HOWTO

Я собирался написать очень краткий обзор (-; Моей целью при создании этого документа было заполнение зияющего пробела в документации о шрифтах. Хотя и существует несколько документов об использовании шрифтов в Linux, я считаю, что ни один из них не является исчерпывающим, все они посвящены частным вопросам. Поэтому цель настоящего документа не в том, чтобы совершить какой-то прорыв в вопросе об использовании шрифтов (хотя я и включил сюда материал, ранее не публиковавшийся), а в том, чтобы дать достаточно полный обзор, который мог бы служить отправной точкой для решения всех вопросов, касающихся использования шрифтов под Linux.

1.3 Благодарности

Особая благодарность Роду Смиту (Rod Smith), который дал несколько очень полезных подсказок и устранил ошибки в pfm2afm. Спасибо также Дугу Холланду (Doug Holland), чей "Font Deuglification HOWTO" послужил хорошим справочником, Джону Мак-Лафлину (John McLaughlin), автору документа, который помог мне разобраться с пакетом Star Office, а также другим пользователям Linux, которые помогли мне своими предложениями и конструктивными замечаниями.

1.4 Примечание переводчика

Для начала надо сказать пару слов об использовании терминов "шрифт" и "фонт". Собственно шрифт - это только совокупность изображений некоторого набора символов (обычно символов алфавита плюс некоторых дополнительных знаков). Когда шрифты стали использоваться в различных программах для вывода текстов на монитор в графических режимах и для вывода текста на принтер, в русском языке появился новый термин - фонт. Таким образом, можно сказать, что шрифт - понятие типографское, а фонт - компьютерное. Понятие "фонт" шире понятия "шрифт", поскольку подразумевает не только собственно шрифт, как набор изображений символов, но и способ формирования этих изображений на экране и/или бумаге, и способ сохранения этих изображений в файле. Кроме того, часто словом "фонт" называют просто файл с изображениями символов шрифта. Я буду в последнем случае употреблять термин "файл фонта", а термин "фонт" будет употребляться во втором смысле: как совокупность типографского шрифта, способа вывода изображений символов на печать и/или экран, а также способа сохранения информации о шрифте в файле.

2. Краткое введение в фонты

2.1 Типы фонтов

Матричные фонты (Bitmap Fonts)

Слово "bitmap" означает матрицу точек. Матричные фонты (так мы будем переводить английский термин "bitmap font") задаются именно таким образом - матрицами точек. В силу этого они являются аппаратно-зависимыми -- они предназначены для получения только определенных разрешений. Матричный фонт с разрешением 75 точек на дюйм (75 DPI) даст только 75 точек на дюйм даже на принтере, обеспечивающем разрешение 1200 DPI.

Существует два типа матричных фонтов -- принтерные матричные фонты (bitmap printer fonts), такие как фонты pk, генерируемые программой dvips, и матричные экранные фонты, используемые в системе X Window и в консольном режиме. Файлы матричных фонтов обычно имеют расширения bdf или pcf. Матричные экранные фонты обычно используются в терминальных окнах, в консоли и в простых текстовых редакторах, где отсутствие масштабируемости и тот факт, что они не могут использоваться для печати, не так существенны.

Фонты Type1

Стандарт Type1 для фонтов введен фирмой Adobe, и поддерживается в стандарте postscript этой фирмы. В силу этого фонты Type1 широко используются в Linux. Они поддерживаются в X Window и ghostscript. Шрифты Postscript традиционно используются для печати в UNIX.

Обычно фонт Type1 для UNIX задается двумя файлами: файлом метрики afm (adobe font metric), и файлом контура (an outline file), который обычно имеет расширение pfb (printer font binary) или pfa (printer font ascii). Файл контура содержит все глифы (the glyphs), а файл метрик содержит все метрики.

Фонты Type 1 для других платформ могут поставляться в других форматах. Например, фонты postscript для Windows часто используют формат pfm для файла метрик.

Фонты Type3

Эти фонты распространяются примерно таким же образом, как фонты Type1, -- в виде пары afm-файла метрик и pfa-файла. Хотя они поддерживаются стандартом postscript, но не поддерживаются в X, поэтому они имеют ограниченное применение.

Фонты TrueType

Фонты True Type созданы фирмой Apple. Apple передала этот формат фирме Microsoft, тем самым бросив вызов господству Adobe на рынке фонтов. Фонты True Type хранят метрики и информацию о начертаниях символов в одном файле (обычно с расширением ttf). Недавно были разработаны фонт-серверы, которые сделали фонты TrueType доступными для X. С некоторых пор стандарты postscript и ghostscript тоже поддерживают TrueType фонты. В силу этого фонты TrueType становятся более популярными в Linux.

Фонты Type42

Фонты Type42 в действительности являются просто фонтами TrueType с дополнительным заголовком, что делает возможным обработку их интерпретатором postscript. Большинство приложений, таких как ghostscript и SAMBA могут работать с этими фонтами. Однако, если Вы используете postscript-принтер, может оказаться необходимым явным образом создавать файлы фонтов типа Type42.

Сравнение форматов Type1 и TrueType

Несмотря на длительную вражду между сторонниками фонтов Type1 и True Type, эти форматы имеют много общего. Оба они представляют масштабируемые контурные фонты. Разница в том, что фонты Type1 используют для построения глифов кривые Безье третьей степени в отличие от квадратичных кривых, на которых строятся фонты True Type. Теоретически это является преимуществом, поскольку тем самым Type1 включает все кривые, которые можно построить с помощью TrueType. На практике, однако, разница очень незначительна.

Фонты TrueType имеют преимущество, заключающееся в том, что обеспечивают лучшую поддержку хинтинга (фонты Type1 тоже поддерживают хинтинг, но не так эффективно). Это существенно только для устройств с низким разрешением, таких как экраны (улучшение хинтинга не дает заметной разницы на принтерах с разрешением 600dpi, даже при малых размерах точки.) Еще одной причиной того, что улучшенный хинтинг не имеет большого практического значения, является то, что TrueType фонты с хорошим хинтингом встречаются достаточно редко. Причиной этого является то, что пакеты ПО для создания фонтов, которые поддерживают хинтинг, слишком дороги для большинства дизайнеров фонтов. Только крупные фирмы, такие как Monotype, создают фонты с полноценной поддержкой хинтинга.

В заключение надо сказать, что основная разница между фонтами TrueType и Type1 состоит в доступности и поддержке приложениями. Широкое распространение фонтов TrueType для Windows привело к тому, что многие страницы на сайтах Интернет создаются в предположении, что определенные фонты TrueType установлены на компьютере пользователя. Многие пользователи имеют на своих компьютерах большое число фонтов TrueType, поставляемых с приложениями Windows. Однако, под Linux большинство приложений поддерживают фонты Type1, но не поддерживают на том же уровне фонты TrueType. Более того, многие из основных производителей фонтов поставляют свои фонты в формате Type1. Например, фирма Adobe выпускает очень мало фонтов TrueType. Учитывая, что преобразование из одного формата в другой не может быть проведено без определенных потерь качества, надо стараться использовать в каждом приложении те фонты, на использование которых это приложение рассчитано.

Метафонт

Метафонт был разработан Дональдом Кнутом (Donald E Knuth) как часть его типографской системы TeX. Метафонт - это язык программирования графики (a graphics programming language), подобный postscript. Сфера применения этого языка шире, чем просто вывод изображений символов. У метафонта имеется ряд очень привлекательных качеств. Одна из очень важных особенностей, - то, что масштабирование выполняется очень изящно. Символы метафонта Computer Modern имеют различный вид при размере 20 точек и 10 точек. Изображения символов изменяются при изменении размера, потому что для малых размеров желательно увеличить ширину несколько больше, чем высоту (это делает символы больших размеров более элегантными, а символы маленьких размеров более читабельными).

Файлы метафонтов обычно имеют расширение mf. При выводе на печать или экран они преобразуются в матричные фонты, причем определяемые устройством вывода. Это преобразование, хотя и дает высокое качество, осуществляется медленно, так что эти фонты не очень удобны для WYSIWYG-приложений.

2.2 Семейства шрифтов

Каждый шрифт обычно содержит несколько вариантов изображений каждого символа. Большинство шрифтов содержат такие варианты как жирный (bold), курсив (italic) и жирный курсив (bold-italic). Некоторые шрифты имеют дополнительные варианты, например, полужирный (demibold), уменьшенные заглавные буквы (small caps). Группа шрифтов, состоящая из основного шрифта и его вариантов, называется семейством шрифтов (family of typefaces ). Например, семейство Garamond состоит из Garamond, Garamond-italic, Garamond-bold, Garamond bold-italic, Garamond demi-bold и Garamond demi-bold-italic. Семейство Adobe expert Garamond кроме того включает Garamond small caps (уменьшенные заглавные) и Garamond titling capitals (заглавные для заголовков).

3. Фонты 102 -- Краткое введение в шрифты (некоторые типографские понятия)

В этом разделе мы кратко обсудим некоторые основные типографские понятия. Хотя эта информация не очень существенна, но многие любители шрифтов найдут ее интересной.

3.1 Классификация шрифтов

Шрифты фиксированной и переменной ширины

Существует несколько классификаций шрифтов. Во-первых, различают шрифты фиксированной ширины (fixed width fonts), и шрифты переменной ширины (variable width fonts). Шрифт фиксированной ширины выглядит как текст, напечатанный на пишущей машинке, поскольку все буквы имеют одну и ту же ширину. Это качество желательно для таких применений, как компьютерная консоль или текстовый редактор, но нежелательно для больших печатных документов. Другой класс составляют шрифты переменной ширины. Большинство шрифтов, которые Вы будете использовать, относятся к первому классу (с переменной шириной), хотя шрифты с фиксированной шириной тоже необходимы (например, все примеры команд оболочки в настоящем HOWTO даются шрифтом фиксированной ширины). Самым известным примером шрифта с фиксированной шириной является courier.

С серифами или без серифов ?

Серифы - это небольшие выступы у оснований символов и в верхней части изображений символов. Например,буква "i" в таких шрифтах как Times Roman имеет серифы у основания и в верхней части вертикальной черты. Шрифты, в которых используются серифы, считаются более читабельными, чем шрифты без серифов. Существует много различных типов шрифтов с серифами.

Шрифты Sans serif не имеют серифов, так что они имеют более сильный внешний вид. Для печати основного текста больших книг такие шрифты обычно не используются. Существуют шрифты sans serif, которые достаточно читабельны для использования в документах, которые должны бегло просматриваться (web-страницы, каталоги, рекламные брошюры). Другая сфера применения шрифтов sans serif - для отображения текста на компьютерных экранах, особенно при малых размерах. Отсутствие деталей в данном случае делает шрифт более четким. Например, фирма Microsoft усиленно рекламирует шрифт Verdana как наиболее подходящий для очень малых размеров символов при выводе на экран.

К типу sans serif относятся шрифты Lucida sans, MS Comic Sans, Verdana, Myriad, Avant Garde, Arial, Century Gothic и Helvetica. Кстати, издатели считают, что шрифт Helvetica используется черезчур часто, и во многих книгах призывают не использовать его более.

Старый и новый стиль -- различные типы шрифтов Serif

Старый стиль

Шрифты старого стиля основаны на очень традиционных стилях, ведущих свое происхождение с конца 15-го века. Эти шрифты очень традиционны и легко читаются. Они хорошо подходят для создания длинных документов. Слова "старый стиль" характеризуют только стиль изображения символов, и вовсе не говорят о времени создания шрифта. Существуют классические шрифты старого стиля, созданные в 20-ом столетии. Шрифты старого стиля обладают следующими особенностями, отличающими их от других шрифтов:

  • Хорошо различимые, четкие серифы.
  • Диагональное выделение (Diagonal emphasis). Представьте, что символ рисуется перьевой ручкой, причем линии, отклоняющиеся от вертикали против часовой стрелки (до 45 градусов) - толще, а линии, отклоняющиеся от вертикали по часовой стрелке - тонкие. Шрифты старого стиля часто имеют именно такой вид.
  • Читаемость. Фонты старого стиля почти всегда очень легко читаются.
  • Утонченность и отсутствие контраста. Фонты старого стиля строятся из толстых и тонких линий, но разница в толщине невелика, почти неуловима.
Класс шрифтов старого стиля включает Garamond, Goudy Old Style, Jenson, и Caslon (последнее спорно -- некоторые относят его к переходным).

Современные (или didone)

Современные шрифты в некотором смысле противоположны шрифтам старого стиля. Эти шрифты обычно более выразительны, чем их аналоги старого стиля, и могут использоваться скорее для того, чтобы придать документу особый "характер", чем для печати длинных текстов. Однако, ничего не бывает абсолютно белым или черным, и есть несколько современных шрифтов, таких как Computer modern, Monotype modern и New Century Schoolbook, которые очень легко читаются (контраст между толстыми и тонкими смягчен, чтобы улучшить читаемость). Современные шрифты основаны на разработках, популярных в 19-ом веке и позже. Их отличительные особенности включают:

  • Легкие серифы, часто просто в виде тонких горизонтальных линий.
  • Вертикальное выделение. Вертикальные линии толстые, горизонтальные линии тонкие.
  • Многие современные шрифты имеют большую разницу между толстыми и тонкими штрихами.
  • Современные шрифты с большим контрастом между тонкими и толстыми линиями не так легко читаются, как шрифты старого стиля.
Самый примечательный из современных шрифтов - Bodoni. Другие представители класса современных шрифтов (или класса modern) - Computer modern и Monotype modern (на котором основан Computer modern).

Переходные

Переходные шрифты находятся где-то между шрифтами старого стиля и современными шрифтами. Многие переходные шрифты имеют ту же самую читабельность, что и шрифты старого стиля. Однако их дизайн создавался немного позже. Хотя движение в направлении современных шрифтов уже заметно в этих шрифтах, они все еще гораздо утончённее современных фонтов. Примерами переходных шрифтов являются Times Roman, Utopia, Bulmer и Baskerville. При этом Times тяготеет к шрифтам старого стиля, а Bulmer выглядит очень современно.

Slab Serifs

Шрифты slab serif называются так потому, что они имеют толстые серифы, похожие на прямоугольники ("slab" - плита, пластина), в отличие от изящных серифов в шрифтах старого стиля или серифов в виде тонких линий у некоторых из современных шрифтов. Шрифты slab serif выглядят твердо и в общем случае хорошо читаются. Многие из шрифтов slab serif имеют египетские названия, такие как Nile или Egyptienne (хотя они ни в каком смысле не являются египетскими). Эти шрифты великолепно подходят для создания текстов, которые должны сохранять читаемость при снижении качества печати (например, при фотокопировании или печати на газетной бумаге). Самые характерные шрифты slab serif - это Clarendon, Memphis и Egyptienne, а также некоторые шрифты пишущих машинок. Многие из шрифтов slab serif имеют фиксированную ширину. И наоборот, большинство (почти все) шрифты фиксированной ширины относятся к типу slab serif.

Шрифты Sans Serif

Поразительно, но взлет шрифтов sans serif является относительно недавним феноменом. Первые широко известные шрифты sans serif были Futura, Grotesque и Gill Sans. Эти шрифты представляют, соответственно, классы шрифтов "геометрический", "гротеск" и "гуманист (humanist)".

Гротеск (Grotesque)

Гротескные шрифты получили такое название потому, что публика была вначале шокирована их относительно сильным обликом. Эти шрифты имеют очень простой ("бедный") вид в силу отсутствия серифов и упрощенного, четкого дизайна. Из-за того, что они "бросаются в глаза", они хорошо подходят для заголовков. Более читаемые варианты вполне годятся для книжек комиксов и рекламных брошюр, где основной текст дается только малыми дозами. Гротескные шрифты не претендуют на художественность, как геометрические шрифты. В сравнении с геометрическими они имеют большую изменчивость в толщине линий, больше черточек, они квадратнее (потому что не используют круговых дуг). Заглавная "G" и строчная "a" в них не такие, как в геометрических шрифтах. Хотя эти шрифты в некотором смысле минималистические, однако они не достигают такой степени экстремизма, как самые авангардные из геометрических.

Типичными примерами гротескных шрифтов являются слишком часто используемая Helvetica, Grotesque, Arial, Franklin Gothic и Univers.

Геометрические

Шрифт Futura появился с лозунгом : форма следует за функцией (form follows function). Класс геометрических шрифтов имеет усиленно минималистский внешний вид. Отличительной особенностью является постоянная толщина линий. Это особенно заметно, когда речь идет о варианте шрифта bold. В вариантах bold шрифтов "гротеск" и "гуманист" часто встречаются заметные различия в толщине линий, но это редко случается с геометрическими шрифтами. Другая характерная особенность - явный минимализм в их дизайне. Символы почти всегда составляются из строго горизонтальных и строго вертикальных линий, а закругления - из круговых дуг. В символах используется минимальное число штрихов. Эти шрифты как бы выражают минималистскую философию, которая позже как шторм обрушилась на мир современного искусства. Самым характерным признаком того, что шрифт относится к классу геометрических, является вид заглавной буквы "G", которая строится из минимального набора штрихов - одной длинной круговой дуги и горизонтального отрезка. Вторая характерная особенность - вид строчной буквы "a", которая тоже состоит всего из двух элементов - прямой вертикальной линии и круга. Представителями геометрических шрифтов являются Avant Garde, Futura и Century Gothic.

Humanist

Как можно предположить из названия, шрифты "гуманист" (humanist) создавались с той целью, чтобы они выглядели менее механистическими. Во многих смыслах они больше похожи на шрифты serif, чем на геометрические или гротескные. Можно сказать, что они выглядят как "написанные ручкой". Они допускают слабые изменения в толщине линий, особенно в варианте bold. Очертания кривых менее "застывшие", чем в геометрических шрифтах. Многие из них имеют ту отличительную особенность, что строчная буква "g" имеет "двухэтажный" хвостик, такой же, как у "g" в шрифтах старого стиля с серифами. Гуманистические шрифты обычно не создают уродливого впечатления от документа, потому что они относительно совместимы со шрифтами старого стиля.

Совместимые шрифты

Одновременное использование разных шрифтов очень не просто, так что стоит избегать использования слишком большого количества шрифтов на одной и той же странице. Если есть необходимость использовать два разных шрифта, то логичным выбором будет serif и sans serif. На странице Monotype's Typography 101 page приведена сводка совместимости. Там сделан вывод о том, что хорошие пары образуют современный и геометрический шрифты, а так же шрифты старого стиля и гуманистические. Переходные тоже составляют неплохую пару с гуманистическими. Шрифты slab serif совместимы с гротескными, а некоторые варианты шрифтов slab serif совместимы также с геометрическими или гуманистскими.

Короче, складывается впечатление, что консервативные шрифты с серифами хорошо сочетаются с более сдержанными шрифтами типа sans serifs, а современные шрифты сериф - с авангардистскими геометрическими.

3.2 Лигатуры, уменьшенные заглавные и фонты expert

Лигатуры

Задать оптимальным образом расстояния между символами в шрифте очень непросто. Например, оптимальное расположение пары символов "fi" требует, чтобы i стояла очень близко к f. Но при этом возникает проблема, состоящая в том, что точка в букве i сливается f, и сериф в верхней части i сливается с горизонтальным штрихом в f. Чтобы справиться с этой проблемой, набор изображений, входящих в состав фонта, включает лигатуры. Например, лигатура "fi" - это отдельный символ, который используется вместо двух-символьной строки "fi". Большинство фонтов содержат лигатуры fi и fl. Фонты expert, описываемые ниже, часто включают дополнительные лигатуры, такие как ffl, ffi, и символ i без точки.

Шрифты из уменьшенных заглавных (Small caps fonts)

Small caps fonts - это шрифты, в которых вместо сточных букв используются заглавные буквы уменьшенного размера. Они полезны для создания заголовков, требующих особой выразительности (и они часто используются в LaTeX). Обычно, когда для заголовков используют шрифт small caps, ставят большие заглавные буквы в начале каждого слова и используют маленькие заглавные (то есть собственно small caps) - для остальных символов слова. Преимущество такого написания заголовков перед использованием всех заглавных состоит в том, что получается более читаемый текст (использование всех заглавных - это большой типографский грех).

Фонты Expert

Фонты Expert состоят из наборов дополнительных символов, созданных для того, чтобы дополнять другие шрифты. Эти дополнительные символы включают лигатуры, орнаменты (much like a mini-dingbats collection designed to go with the typeface), фонты из уменьшенных заглавных (small caps fonts) и swash capitals (вычурные, каллиграфические буквы).

3.3 Метрики фонта и контуры символов

Метрики фонта определяют интервалы между символами в шрифтах переменной ширины. Метрики включают также информацию о размере шрифта и информацию о кернинге, которая задает пары кернинга - пары символов, интервалы между которыми задаются особым образом. Например, буквы ``To'' обычно составляют пару кернинга, потому что для того, чтобы корректно их расположить, надо "о" разместить частично под "Т". Типографские программы, такие как LaTeX , должны иметь информацию кернинга для того, чтобы правильно определять конец строки и страницы. То же самое относится к WYSIWYG-приложениям.

Кроме метрик, фонт, естественно, должен содержать информацию о контурах или очертаниях символов. Компоненты образа символа (штрихи, ударения и т.п.) называются глифами ("glyphs").

4. Как сделать фонты доступными для X-сервера

Имеется несколько способов добавить фонты в X. Во-первых, XFree86 имеет font path, который есть просто список нескольких каталогов или фонт-серверов, в которых осуществляется поиск фонтов. Фонт-сервер - это просто фоновый процесс, который делает фонты доступными для XFree86. Преимущество фонт-сервера в том, что он может посылать шрифты на удаленный дисплей.

Недавно фонт-сервер xfs (the ``X font server'') был доработан с целью обеспечения поддержки шрифтов TrueType и обеспечения возможности запуска его как отдельной программы. Доработанные версии поставляются с дистрибутивами, основанными на Red Hat, и включены в XFree86 3.9.17 (новейшая версия на момент написания настоящего документа; программа будет включена и в состав XFree86 4.0). xfs есть в действительности отдельный фонт-сервер, который входит в состав XFree86. Его исходный код является частью дерева исходников XFree86. Однако с недавних пор в дистрибутивы включается версия программы, которая может работать в режиме отдельно запускаемой программы. Отдельный фонт-сервер для X с поддержкой шрифтов TrueType (поддержка TrueType осуществляется отдельным фонт-сервером, который называется xfsft) - это, вероятно, самое удачное из доступных на сегодняшний день решений по управлению фонтами. Оно имеет следующие преимущества:

  • Обеспечивается поддержка различных типов фонтов, включая Type1, TrueType и растровые шрифты.
  • Обеспечивается доступ к шрифтам с удаленных дисплеев.
  • Существенно упрощается редактирование пути к шрифтам - Вы можете теперь делать это из командной строки с помощью утилиты chkfontpath, в то время как раньше надо было редактировать конфигурационные файлы. Это не только облегчает жизнь пользователей, но и упрощает создание пакетов ПО, а также их установку.

Разные дистрибутивы имеют, естественно, разные конфигурации. Можно выделить три группы:

  • Дистрибутивы с отдельно поставляемым сервером xfs, доработанным с целью поддержки фонтов формата TrueType. Эта группа включает Red Hat и такие основанные на RedHat дистрибутивы, как Mandrake, TurboLinux и Independence. Для этой группы самая разумная стратегия состоит в установке как фонтов TrueType, так и фонтов Type1, используя xfs
  • Дистрибутивы, с отдельно поставляемым пакетом xfs, но без поддержки TrueType (напомню, что XFree86 поддерживает фонты TrueType начиная с версии 3.9.17 ). К этой группе относится Debian. В таком случае рекомендуется использовать xfs для установки фонтов Type1, а фонты TrueType устанавливать через xfstt. Пользователи Debian могут просмотреть TrueType Fonts in Debian mini-HOWTO для получения информации об установке фонтов TrueType в Debian.
  • Если у Вас нет пакета xfs, то Вам необходимо установить фонты Type1 путем добавления путей к ним в перечень путей к фонтам в XFree86 и использования xset. Для установки фонтов TrueType используйте xfstt.

4.1 Перечень каталогов фонтов (The font path)

XFree86 ищет файлы фонтов, просматривая каталоги, включенные в Перечень каталогов фонтов (font path) - список директорий (или серверов, но об этом мы поговорим чуть позже), содержащих файлы фонтов. Когда приложение запрашивает фонт, соответствующий файл ищется в этих каталогах, в указанной последовательности, пока нужный фонт не будет найден. Чтобы сделать фонты доступными, необходимо задать этот перечень (font path). Вы можете добавить каталог в font path с помощью команды

        xset fp+ directory
После того, как Вы это сделали, необходимо заставить X-сервер перечитать перечень каталогов с фонтами командой
        xset fp rehash
Чтобы эти команды выполнялись автоматически, поместите их в Ваш файл .xinitrc (или в .Xclients или в .xsession -- это зависит от того, как Вы запускаете X-ы. Можно сделать два из этих файлов ссылками на третий, чтобы избежать путаницы). Другой способ подключения каталога к перечню каталогов фонтов состоит в редактировании файла XF86Config. Например, чтобы добавить каталог /usr/share/fonts/myfonts к перечню, добавьте в XF86Config такую строку:
                ...
                Section "Files"
                ...
                
                FontPath /usr/share/fonts/myfonts
                ...
                EndSection
                ...
Преимущество второго способа (редактирования XF86Config) состоит в том, что в результате изменения будут действовать во всей системе, т.е. фонты станут доступны всем пользователям.

4.2 Установка фонтов Type1

Команда Type1inst

Простейший способ сделать фонты Type1 доступными для X - это воспользоваться утилитой Type1inst. Это скрипт на языке perl, который автоматически создает файлы fonts.dir и fonts.scale, которые необходимы для того, чтобы X-ы могли использовать фонты. Просто перейдите в каталог с фонтами и запустите type1inst.

        cd directory
        type1inst

Если у Вас имеется пакет xfs

Тогда Вам остается только добавить имя каталога с фонтами к fontpath. Если пакет xfs у Вас уже запущен, Вы можете сделать это путем редактирования конфигурационного файла xfs. Пользователи Redhat могут использовать команду chkfontpath, следующим образом chkfontpath --add directory .

Теперь Ваши фонты должны быть доступны для X. Только запустите команду

        xset fp rehash
и X-сервер сможет найти новые фонты.

Если у Вас нет пакета xfs

В этом случае Вам необходимо добавить имя каталога, содержащего файлы Ваших новых фонтов, к перечню каталогов фонтов (font path) одним из способов, описанных выше.

4.3 Фонты True Type

Добавление фонтов TrueType немного сложнее, потому что Вы должны иметь фонт-сервер, который может обслуживать фонты TrueType. Существуют два фонт-сервера, способные делать это - xfstt и xfs.

xfstt - это фонт-сервер для фонтов TrueType. Хотя он легко конфигурируется и вполне работоспособен, однако кажется, что xfs становится более популярным. Главное преимущество xfs по сравнению с xfstt состоит в том, что он поддерживает как фонты Type1, так и фонты TrueType.

xfstt

Чтобы запустить xfstt, надо скачать его и установить. Если Ваш дистрибутив основан на rpm, то соответствующий rpm-пакет с xfstt можно найти на http://independence.seul.org/. После установки нужно сделать следующее:

  1. установить фонты в соответствующий каталог (прочитайте документацию, которая поставляется с пакетом).
  2. cd в этот каталог и запустить xfstt --sync. По этой команде сервер просмотрит каталог и создаст файл fonts.dir.
  3. Теперь добавьте строку unix/:7100 к Вашему перечню каталогов фонтов (font path).
Фонты TrueType должны теперь отображаться и быть доступными для приложений типа GIMP и Netscape. Вполне вероятно, что Вы захотите, чтобы фонты TrueType становились доступны каждый раз, когда Вы запускаете систему. Проверьте сначала, включены ли в пакет инициализационные файлы (если Вы используете RPM, Вы можете воспользоваться командой rpm -ql xfstt |grep init и поискать в выводе команды файлы, которые имеют примерно такие имена: /etc/rc.d/init.d/xfstt ). Если инициализационных скриптов нет, просто допишите в /etc/rc.local две строки следующего вида:
        /usr/X11R6/bin/xfstt --sync
        /usr/X11R6/bin/xfstt &

4.4 Сервер фонтов xfs

Некоторые из новейших дистрибутивов Линукса поставляются с сервером фонтов xfs, сконфигурированным как отдельно запускаемая программа. В частности, Redhat и все основанные на redhat дистрибутивы используют такую версию xfs со встроенной поддержкой фонтов TrueType. Debian тоже поставляет xfs, но их версия не имеет встроенной поддержки true type.

Запуск xfs как отдельной программы имеет несколько преимуществ, особенно если имеется встроенная поддержка фонтов TrueType. Главное преимущество состоит в том, что поскольку фонт-сервер не является более частью X-сервера, появляется возможность предоставлять шрифты удаленным дисплеям. Кроме того, сильно упрощается модификация перечня каталогов фонтов (font path).

Перечень каталогов фонтов xfs

Как фонт-сервер, xfs имеет свой собственный перечень каталогов с фонтами (font path). Может возникнуть вопрос: а зачем он нужен и где его место в общей картине. Он работает следующим образом: Вы включаете ссылку на фонт-сервер xfs в перечень каталогов фонтов XFree86, добавляя в него следующую строку: unix/:port. После этого любой фонт, находящийся в одном из каталогов, включенных в перечень каталогов фонтов xfs, становится доступным для XFree86.

Сам перечень каталогов фонтов xfs определяется в конфигурационном файле xfs. В Redhat это /etc/X11/fs/config, в Debian - /etc/X11/xfs/config. Пользователи Redhat не обязаны редактировать этот файл вручную, они могут воспользоваться утилитой chkfontpath. Ее синтаксис очень прост:

        chkfontpath --add directory
Пользователи других дистрибутивов должны отредактировать этот файл примерно следующим образом:
        catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
        ...
        /usr/share/fonts/my_new_fonts/,
        ...
        /usr/share/fonts/some_other_directory
        # in 12 points, decipoints
        default-point-size = 120
        ...
В приведенном примере к перечню каталогов фонтов xfs добавлен каталог /usr/share/fonts/my_new_fonts/. Обратите внимание на то, что последняя строка в списке каталогов не содержит запятой в конце. Для того, чтобы сделанные изменения вступили в силу, нужно перезапустить сервер xfs. Неплохо вообще перезапустить сессию X после перезапуска xfs.

Установка фонтов для xfs

Для того, чтобы подготовить использование фонта через фонт-сервер xfs, Вы должны выполнить следующие шаги:

  • Если xfs у Вас не установлен, установите его.
  • Поместите новые шрифты в каталог.
  • Если Вы устанавливаете фонты Type1, подготовьте этот каталог для сервера, для чего запустите в этом каталоге скрипт type1inst.
  • Если Вы устанавливаете фонты TrueType, ( помните, что не все дистрибутивы могут использовать фонты TrueType через xfs!), подготовьте новый каталог для сервера, для чего запустите команды:
            ttmkfdir -o fonts.scale
            mkfontdir
    
    в каталоге, содержащем Ваши новые фонты. ttmkfdir входит в состав пакета freetype.
  • Теперь Вы можете добавить новый каталог к перечню каталогов фонтов xfs. Пользователи дистрибутивов, основанных на Redhat, могут сделать это с помощью утилиты chkfontpath. В противном случае это можно сделать редактированием конфигурационного файла xfs.
  • Если xfs уже установлен в Вашей системе, Вы должны определить, какой порт использует эта программа. Это можно сделать следующим образом:
            ps ax | grep xfs
    
  • Затем проверьте перечень каталогов фонтов XFree86:
                    xset -q
    
  • Если перечень каталогов фонтов XFree86 содержит строку типа unix:/port_number, где port_number совпадает с номером порта, используемым программой xfs, то сервер xfs у Вас установлен корректно. В противном случае, Вы должны добавить ссылку на него в перечень каталогов фонтов XFree86:
                    xset fp+ unix/:port_number
                    xset fp rehash
    
    Чтобы это подключение выполнялось автоматически, отредактируйте Ваш файл .xinitrc так, как это было объяснено выше. Чтобы изменения действовали во всей системе, отредактируйте файл конфигурационный файл XF86Config (это либо /etc/X11/XF86Config, либо /etc/XF86Config, либо /usr/X11R6/lib/X11/XF86Config), добавив в него строку FontPath "unix:/port_number" в секцию "Files". Вот пример:
                    ...
                    Section "Files"
                    ...
                    
                    FontPath "unix/:-1" 
                    ...
                    EndSection
                    ...
    
  • Если xfs установлен корректно, Вы можете перестартовать его так:
                    /etc/rc.d/init.d/xfs restart
    
  • После того, как Вы перезапустили xfs, перезапустите также X-сессию.

5. Обеспечение доступа к фонтам для Ghostscript

Чтобы сделать фонт доступным для ghostscript, достаточно сообщить ghostscript, где расположен файл(ы) соответствующего фонта. Для этого необходимо подредактировать файл /usr/share/ghostscript/version/Fontmap. Этот файл имеет очень простой формат, почти очевидный, если его внимательно просмотреть.

5.1 Type1

Добавление фонтов Type1 осуществляется очень просто. Запустите type1inst в каталоге, содержащем файл фонта. type1inst создаст файл с именем Fontmap. Присоедините этот файл к ghostscript-овскому файлу Fontmap.

5.2 True Type

Добавление фонтов truetype немного сложнее, потому что мы должны получить имя фонта. Первый способ сделать это (увы, грубой силой) состоит в использовании конвертера TrueType фонтов в Type1 ttf2pt1 и последующем извлечении имени фонта из файла afm (вероятно должен существовать и более эффективный путь! но этот способ работает, как бы уродлив он не был). Вы можете сделать это примерно так:

                ttf2pt1 -A fontname - 2 > /dev/null | grep FontName
Затем Вы добавляете в ghostscript-овский файл Fontmap строку правильного формата, примерно так:
        some-font       (/usr/share/fonts/subdirectory/somefont.pbf);
Этот способ, конечно, работает, но попробуйте сделать это для 500 фонтов! Такого рода вещи просто требуют создания короткого скрипта на Perl:
#!/usr/bin/perl
# ttfontmap -- generate fontmap file for TrueType fonts
my $directory=shift || print STDERR "Usage: ttfontmap {directory}\n";

$directory=~s/\/$//;

for my $fontname ( glob ( "$directory/*.ttf" ) )
{
    open ( R, "sh -c \"ttf2pt1 -A $fontname - 2>/dev/null\" |" );
    while ( <R> )
    {
        if ( $_ =~ /^FontName/ )
        {
            s/^FontName\s*//;
            chomp;
            print "/" .  $_ . "    ($fontname);\n" ;
        }
    }
    close R;
}           
Вы можете скачать этот скрипт.

Чтобы установить этот скрипт, скопируйте его в файл с именем ttfontmap и поместите в один из каталогов, указанных в переменной PATH (например, в /usr/bin). После этого Вы можете запускать его следующим образом:

        ttfontmap directory > output_file
где directory - это каталог, содержащий файлы фонтов. Вы получите output_file, который сможете присоединить к перечню фонтов ghostscript. Примечание: кто-то может заметить, что можно просто запустить команду
        ttfontmap directory >> /usr/share/ghostscript/version/Fontmap
но я не рекомендую этого делать (что будет, если Вы введете ``>'' вместо ``>>''?).

5.3 Использование Ghostscript для предварительного просмотра фонтов

Как только Вы сделали фонты доступными для ghostscript, Вы можете их просмотреть. Это делается путем запуска интерпретатора языка ghostscript на файле prfont.ps из Вашей инсталляции ghostscript. После его запуска напечатайте (введите)

        /Fontname DoFont
где FontName - это имя в ghostscript фонта, который Вы хотите увидеть. Существует несколько разных способов вызвать gs. Например, если Вы хотите создать postscript-файл, который Вы хотите просматривать в одной из более удобных программ, к примеру gv, Вы можете использовать команду
        gs -sDEVICE=pswrite -sOutputFile=somefile.ps  prfont.ps
Воспользовавшись этим способом, Вы сможете также распечатать выходной файл.

6. Преобразование фонтов True Type в Type1

6.1 Зачем ?

Хотя, возможно, правильнее было бы спросить ``а почему нет ?'' Типичный пользователь Linux является мигрантом с Windows, и, скорее всего, имеет огромную коллекцию фонтов TrueType. Многие из них (например, те, которые поставляются с MS Word и продуктами Corel) имеют очень неплохое качество. Однако некоторые из приложений для Linux, такие как Star Office и LaTeX, не поддерживают фонтов TrueType, но поддерживают фонты Type1. Дополнение: кажется Star Office может работать с фонтами TrueType, но я еще не разобрался с деталями. В лучшем случае для этого требуется изучить тонкости работы программы. Надо выразить большое сожаление по этому поводу, поскольку Линукс, с его поддержкой TrueType в ghostscript и наличием фонт-сервера для TrueType, имеет всю необходимую инфраструктуру для обеспечения возможности работы с TrueType - фонтами.

6.2 Как ?

Для того, чтобы иметь возможность конвертировать свои фонты TrueType в фонты Type1, загляните на http://quadrant.netspace.net.au/ttf2pt1/ и скачайте ttf2pt1.

Для того, чтобы преобразовать фонт TrueType в фонт Type1, воспользуйтесь командой следующего вида:

        ttf2pt1 -b file.ttf name
        
где name - это имя файла нового фонта Type1 (то есть произвольное имя; хотя неплохо будет, если Вы используете то же самое имя, какое имел ttf-файл. Например:
ttf2pt1 -b foo.ttf foo.

Ладно, это прекрасно работает для одного фонта. Если же требуется преобразовать множество фонтов, нужен более удобный способ. Можно просто организовать цикл:

        for X in *.ttf; do ttf2pt1 -b $X ${X%%.ttf}; done
        
В качестве альтернативы можете скачать пакет ttfutils и использовать для преобразования ttf2type1:
        ttf2type1 *.ttf
        

7. WYSIWYG-приложения и фонты

7.1 Введение и обзор

Установка фонтов для WYSIWYG-приложений в Linux представляет собой относительно сложную задачу. Она обычно решается в три этапа:

  • Сделать фонты доступными для X-сервера
  • Сделать фонты доступными для ghostscript
  • Сделать фонты доступными для приложения
Основная причина сложности в том, что система вывода фонта на принтер (ghostscript) никак не связана (is unrelated) с системой вывода фонта на экран. Можно сказать, что левая рука Линукса не знает, что делает правая. Решение этой проблемы нетривиально, поскольку может оказаться, что принтерные фонты и экранные фонты находятся на разных компьютерах, так что нет гарантии что все используемые X-клиентом фонты доступны для подсистемы печати.

Однако решение этой проблемы для большинства WYSIWYG-приложений существует. Оно заключается в том, что создается некоторый механизм для преобразования экранных фонтов в принтерные фонты (это основная идея; кроме того, используется группировка фонтов в семейства, включающие варианты bold, italic и roman). К сожалению, не существует стандартного способа сделать это преобразование. Представляется, что стандарты управления фонтами, которые определяли бы и механизм для преобразования экранных фонтов в принтерные фонты, существенно упростили бы установку фонтов для WYSIWYG-приложений , потому что все приложения могли бы использовать единую системную конфигурацию, а не специфичную для каждого отдельного приложения.

7.2 Applixware

Существует два пути установки фонтов для Applixware. Первый метод заключается в использовании FontTastic, "частного" сервера фонтов Applixware. Второй метод предполагает редактирование собственного перечня каталогов фонтов Applixware, чтобы подключить фонты, уже установленные в системе. Установка через фонт-сервер более удобна, но установленные таким образом фонты могут использоваться принтером только при разрешении 300 dpi.

FontTastic

FontTastic предоставляет легкий способ осуществить установку фонтов. Для того, чтобы установить новые шрифты, просто сделайте следующее:

  1. Запустите Applixware как root
  2. Вызовите меню tools.
  3. Выберите "Font Installer"
  4. Отметьте "OK" в появившемся диалоговом окне
  5. Вызовите меню "Catalogs" и выберите пункт "create"
  6. Введите имя каталога. Не важно, что Вы здесь введете. Для примера мы будем предполагать, что подключаются фонты из каталога "foobar".
  7. Выберите каталог foobar из списка каталогов.
  8. В меню "Services" выберите "install fonts into -> FontTastic font server"
  9. Убедитесь, что каталог foobar выбран в списке каталогов, после чего нажмите кнопку "select files".
  10. Используйте каталог выбора файлов для выбора тех фонтов, которые Вы хотите установить. Когда закончите выбор, нажмите "OK". Например, если Вы хотите выбрать arial.ttf в каталоге /usr/share/fonts/ttfonts/, Вы должны ввести /usr/share/fonts/ttfonts в диалоговом окне "Current Directory", затем выбрать arial.ttf в окне выбора файлов, после чего щелкнуть по клавише "OK". Заметьте, что Вы можете выбрать несколько файлов, но только из одной и той же директории.
  11. Вы можете отредактировать полученный список путем добавления других фонтов, удаления некоторых или переименования их.
  12. Когда Вы закончите, щелкните по кнопке "install fonts", а потом по "OK".
  13. Перейдите в меню "services" и выберите "update". Выберите "OK" в навязчиво появляющемся окне предупреждений, затем выберите exit в меню services. Выйдите из Applixware.
  14. Поздравляю, Вы все сделали ! Новые фонты будут доступны, когда Вы снова запустите Applixware.

Использование в Applixware системных фонтов

Этот метод посложнее, но дает лучший результат. Я рекомендую использовать этот метод для тех фонтов, которые по-настоящему важны, и для тех, которые Вы часто используете. Снова надо пройти несколько шагов:

Делаем фонты доступными для X

Как это сделать, было объяснено в предыдущей секции

Делаем фонты доступными для ghostscript

Это тоже объяснено в предыдущей секции

Редактируем fontmap.dir

Это последний шаг в обеспечении доступа к фонтам из Applix и требующий больше всего времени. Файл fontmap.dir находится в подкаталоге axdata/fontmetrics структуры каталогов applix. Основная цель данного шага - сказать applix, какой экранный фонт идет с каким контурным фонтом. В общем случае это очень нетривиальная проблема, потому что экранные фонты не всегда расположены на том же компьютере, на котором установлено приложение.

Мы опишем как добавить фонты к fontmap.dir. В приводимом ниже примере мы добавляем фонт Baskerville Italic.

  1. Во-первых, добавим строку
    FontRecord = Baskerville-Normal-Italic
    Фактически, имя, которое используется в FontRecord, полностью произвольно. Однако, font record должно быть уникальным для каждого фонта. Поэтому будет правильно, если Вы используете то же имя, которое используется для этого фонта в ghostscript.
  2. Далее добавляем строку
    Family = Baskerville
    Имя семейства (The family name) для фонта - это имя, которое будет появляться в меню выбора шрифта в Applix. Обычно, оно не уникально, потому что варианты bold, italic, roman и bold-italic фонта имеют то же самое имя семейства.
  3. Если фонт является вариантом italic, мы должны добавить следующую строку:
            Slant = 1 
    
    а если вариантом bold, то строку
            Weight = 1 
    
    Если это вариант одновременно bold И italic, мы добавляем обе строки. В нашем примере мы должны добавить только строку
            Slant = 1 
    
  4. Далее мы добавляем строку вида:
            ScreenName = "-paradise-baskerville-medium-i-normal--0-0-0-0-p-0-iso8859-1"
    
    Screen name - это имя, которое X-сервер использует для фонта. Можно получить список имен фонтов, содержащих подстроку ``bask'', по команде
            xlsfonts|grep -i bask
    
  5. Теперь мы добавляем строку, которая задает имя принтерного фонта:
    PostScriptPrinterName = Baskerville-Normal-Italic
  6. Далее необходимо указать местоположение файла метрик фонта и файла контуров (the outline file)
            MetricsFile = /usr/share/fonts/misc/baskvli.afm
            Type1FontFileName = /usr/share/fonts/misc/baskvli.pfb
    
    Если Вы добавляете фонт TrueType, Вы можете использовать ttf2pt1 для того, чтобы сгенерировать afm-файл :
                    ttf2pt1 -A foo.ttf - > foo.afm
                    
    
    (или установить пакет ttfutils и использовать ttf2afm). Затем Вы используете что-то вроде:
            MetricsFile = /usr/share/fonts/misc/foo.afm
    
    НЕ включайте директиву Type1FontFileName -- пусть ghostscript позаботится об этом.

Все ! В результате после добавления целого семейства фонтов Вы должны получить что-то такое:

        FontRecord = Baskerville-Normal
        Family = Baskerville
        ScreenName = "-paradise-baskerville-medium-r-normal--0-0-0-0-p-0-iso8859-1"
        PostScriptPrintName = Baskerville-Normal
        MetricsFile = /usr/share/fonts/misc/baskvl.afm
        Type1FontFileName = /usr/share/fonts/misc/baskvl.pfb

        FontRecord = Baskerville-Normal-Italic
        Family = Baskerville
        Slant = 1
        ScreenName = "-paradise-baskerville-medium-i-normal--0-0-0-0-p-0-iso8859-1"
        PostScriptPrintName = Baskerville-Normal-Italic
        MetricsFile = /usr/share/fonts/misc/baskvli.afm
        Type1FontFileName = /usr/share/fonts/misc/baskvli.pfb

        FontRecord = Baskerville-Bold
        Family = Baskerville
        Weight = 1
        ScreenName = "-paradise-baskerville-bold-r-normal--0-0-0-0-p-0-iso8859-1"
        PostScriptPrintName = Baskerville-Bold
        MetricsFile = /usr/share/fonts/misc/baskvlb.afm
        Type1FontFileName = /usr/share/fonts/misc/baskvlb.pfb     

        FontRecord = Baskerville-Bold-Italic
        Family = Baskerville
        Weight = 1
        Slant = 1
        ScreenName = "-paradise-baskerville-bold-i-normal--0-0-0-0-p-0-iso8859-1"
        PostScriptPrintName = Baskerville-Bold-Italic
        MetricsFile = /usr/share/fonts/misc/baskvlbi.afm
        Type1FontFileName = /usr/share/fonts/misc/baskvlbi.pfb     

С помощью конфигурационного файла можно сделать большее. В самом конфигурационном файле содержится глоссарий, в котором объясняется формат этого файла.

7.3 Star Office

Мы здесь рассматриваем только Star Office 5.0. Процедура для Star Office 5.1 аналогична, но утилита называется spadmin, а не psetup. Стоит упомянуть, что страница Джона Мак-Лафлина (John McLaughlin) является великолепным источником информации по этому вопросу и что написанное ниже во многом основано на его материалах.

Поработав как со Star Office 5.0, так и с 5.1, я обнаружил, что в Star Office 5.1 легче добавить новые фонты. Мне не удалось добавить true type фонты в Star Office 5.0, в Star Office 5.1 это оказалось немного проще.

Сделайте сначала резервную копию Вашей конфигурации !

Неплохо до начала редактирования сделать резервную копию Вашей конфигурации, чтобы ненароком не испортить ее окончательно. Модификация фонтов окажет влияние на несколько файлов в xp3. Вы обязательно должны сделать резервную копию файла xp3/psstd.fonts. Я рекомендую пойти дальше и сделать резервную копию всего каталога xp3. Вы можете для этого перейти в каталог Star Office и выполнить команду

        tar cvzf xp3.tgz xp3
        
Для того, чтобы впоследствии восстановить файлы из резервной копии, удалите каталог xp3 и распакуйте архив:
        rm -rf xp3
        tar xvzf xp3.tgz
        

Добавление фонтов Type1 к Star Office

Добавление фонтов Type1 к Star Office осуществляется относительно просто. Если Вы хотите использовать в Star Office 5.0 имеющиеся фонты TrueType, лучше всего конвертировать их в формат Type1, а затем воспользоваться изложенной здесь процедурой. Если Вы используете Star Office 5.1, Вы можете воспользоваться процедурой инсталляции фонтов TrueType (хотя это немного сложнее). Во-первых, как и всегда, надо сделать фонты доступными для X и ghostscript. После того, как это сделано, фонт должен быть установлен в Star Office, для чего используется утилита psetup. Процедура следующая:

  1. Как root запустите psetup (или spadmin, если у Вас Star Office 5.1)
  2. Нажмите кнопку ``add fonts''.
  3. После этого нажмите кнопку "initialize font paths". При этом список всех фонтов, имеющихся в каталогах из перечня каталогов фонтов X Window, выводится в отдельном окне.
  4. Выберите каталог, содержащий фонт, который Вы хотите установить (он должен быть в выведенном списке), и нажмите "OK".
  5. Щелкните по кнопке "convert all font metrics".
Это все! Вы можете выйти из программы. Когда Вы перезапустите Star Office, Вы будете иметь возможность использовать новые фонты.

Добавление TrueType фонтов к Star Office

Добавление к Star Office фонтов TrueType не так тривиально, но возможно. После долгой работы и многих часов разглядывания страницы Джона Мак-Лафлина (John McLaughlin) я, наконец, добился того, что они заработали в Star Office 5.1. Замечу, что они все же не работают с версией 5.0. Следующие рекомендации применимы, если Вы печатаете через ghostscript:

  • Сделайте фонты доступными для X.
  • Сделайте фонты доступными для ghostscript.
  • Вы должны иметь afm-файлы для фонтов, которые Вы хотите добавить. Используйте
            ttf2pt1 -A foo.ttf - > foo.afm
    
    чтобы создать afm-файлы.
  • Другой способ состоит в том, чтобы скачать пакет ttfutils и использовать утилиту ttf2afm. Преимущество этого способа в том, что Вы сможете конвертировать за один раз несколько файлов, например
            ttf2afm *.ttf
            
    
  • Star Office требуются файлы pfb, соответствующие каждому ttf-файлу. Вы можете их создать с помощью команды
            touch foo.pfb
    
    Star Office использует эти файлы только для печати. И, включив фонт в файл PPD, Вы обманываете Star Office, заставляя его считать, что фонты имеются в Вашем принтере (хотя в действительности они в подсистеме вывода изображений ghostscript - ghostscript's rendering system). Тем самым Вы обходите необходимость использовать эти файлы. Кажется для Star Office требуется, чтобы существовали только файлы pfb, чтобы установить фонт.
  • Теперь Вы можете запустить spadmin и установить фонт(ы).
  • Теперь добавьте фонты к файлу PPD, соответствующему конфигурации Вашего принтера. Имя, которое Вы используете для фонта, должно совпадать с именем, используемым для него Star Office, а НЕ именем фонта в ghostscript. Например, если фонт называется foobar.ttf, а соответствующий afm-файл имеет имя foobar.afm, Вы должны использовать имя "foobar" для фонта в PPD-файле. Запись должна выглядеть примерно так:
    *Font cloistrk: Standard "(001.002)" Standard ROM
                    
    

С другой стороны, если Вы не используете при печати ghostscript, Вы должны действовать другим образом. В этом случае, не надо пытаться заставить Star Office думать, что Ваш принтер имеет фонты, ибо фактически в ROM принтера фонтов НЕТ, так что хотя gv будет корректно отображать postscript -файлы, Ваш принтер не способен будет распечатать их. Если у Вас postscript-принтер, главные различия в следующем:

  • Не редактируйте PPD-файл.
  • Вместо того, чтобы с помощью touch foo.pfb создать пустые pfb-файлы. Вы должны иметь pfb-файлы postscript-фонта типа Type42. Фонт Type42 - это в действительности "TrueType фонт для принтера". Вы не замечаете фонтов Type42, даже если используете их, потому что большинство приложений используют их прозрачно. Для создания файлов фонтов Type42 используйте утилиту ttfps.
            ttfps foo.ttf foo.pfb
    

Существует несколько подводных камней. Иногда Star Office может не выбрать экранный фонт, который Вы хотите. Поэтому стоит проверить xp3/psstd.fonts и, возможно, отредактировать его, чтобы убедиться, что Star Office действительно использует экранный фонт, который Вы имели в виду. Кроме того, Star Office не может корректно обрабатывать проблемы с конфигурацией. Если с конфигурацией что-то не в порядке, то вполне возможно, что текстовый процессор даже не запустится. Именно поэтому мы рекомендовали Вам сделать резервную копию каталога xp3.

То, что скрыто от глаз

Если Вы хотите установить в Star Office фонты TrueType, Вам, возможно, необходимо узнать, как Star Office с ними работает. Когда Вы запускаете spadmin или psetup, происходит следующее:

  • Star Office создает символические ссылки на pfb-файлы контуров в Вашем каталоге xp3/pssoftfonts.
  • Файл afm копируется в каталог xp3/fontmetrics/afm/
  • В файл xp3/psstd.fonts добавляется одна запись. Этот файл хранит имена всех экранных фонтов, используемых Star Office (в частности, в нем задаются имена файлов контуров для экранных фонтов).

Вот почему нужно создать резервную копию всего каталога xp3 - только в этом случае можно будет легко вернуть Star Office к чистой конфигурации.

7.4 Word Perfect

По этому вопросу пока ничего нет. Web-страница Рода Смита (Rod Smith) представляет собой хороший источник информации по установке фонтов в Word Perfect.

8. Netscape

В том, что касается фонтов, самым печально известным приложением является, вероятно, страшилка-Netscape. Однако, существует достаточно простая процедура исправления этого дефекта Netscape. Основная проблема состоит в том, что Netscape хочет использовать фонты с разрешением 75dpi, которые обычно слишком малы. Вы можете исправить это, указав соответствующие ресурсы в своем файле .Xdefaults file:

        Netscape*documentFonts.sizeIncrement: 20
        Netscape*documentFonts.xResolution*iso-8859-1: 100
        Netscape*documentFonts.yResolution*iso-8859-1: 100
Число 100 здесь проставлено для примера. Например, если Вы предпочитаете, как и я, действительно большие шрифты, Вы можете подставить 150.

Еще одна существенная подсказка, касающаяся использования фонтов в Netscape - разыщите пакет фонтов от Microsoft. Эти фонты широко используются и получается очень большая разница в том случае, когда Вы их имеете (или не имеете).

9. TeX / LaTeX

9.1 Обзор файлов фонтов для LaTeX/TeX

Добавление фонтов к TeX и LaTeX является довольно сложной процедурой. Однако, как и во многих других вещах, все просто, если Вы знаете, как это сделать. Некоторые фонты распространяются в формате Метафонт, а некоторые - в формате Type1. Обычно, фонты формата Type1 более доступны. Однако фонты Метафонт имеют то очевидное преимущество, что они меняют форму изображения в соответствии с размером, в то время как фонты Type1 и TrueType при различных размерах просто увеличивают или уменьшают изображения символов, не изменяя формы. Главная причина того, что это качество желательно, состоит в том, что в идеале шрифт должен быть (относительно) узким при больших размерах и более широким при малых размерах.

В нижеследующем изложении мы сконцентрируем внимание на фонтах Type1, поскольку они более доступны и порождают больше проблем при инсталляции.

Вот небольшой обзор файлов фонтов в LaTeX. LaTeX использует следующие типы файлов при обработке фонтов Type1:

  • .pl -- список свойств (property list). Это версия файла метрик фонта для tex, приспособленная для чтения человеком.
  • .vpl -- виртуальный список свойств (virtual property list). Ориентированная на чтение человеком версия виртуального файла фонта.
  • .fd -- определение фонта (font definition). Используется для задания семейства фонтов.
  • .tfm -- метрика фонта tex (tex font metric). Это файл метрик, как это объясняется в глоссарии. Этот файл полностью аналогичен файлу .afm, используемому для фонтов типа Type1. TeX нуждается в файле метрик для того, чтобы правильно расположить текст на странице.
  • .vf -- виртуальный фонт (virtual font). Эти файлы содержат детали кодирования и действуют как интерпретаторы. TeX обращается с ними как с фонтами. Например, представьте, что существует некий фонт foobar-exp.pfb, который состоит из небольшого числа (скажем 20) альтернативных символов, и имеется виртуальный фонт, который использует некоторые из этих альтернативных символов (и использует остальные символы из фонта foobar.pfb). Dvips может сказать "Мне нужен символ 65 из виртуального фонта foo.vf". Dvips знает, что 65 всегда соответствует "a" в схеме TeX. Тогда виртуальный фонт переадресует запрос TeX'а в запрос символа 14 в фонте foobar.pfb типа Type1 (который может замещать "a" в Type1 фонте foobar.pfb). Механизм виртуальных фонтов очень гибок и позволяет конструировать фонт из нескольких различных файлов фонтов. Это очень полезно, когда используются такие фонты как фонты "expert" от Adobe.
  • .pk -- аппаратно-зависимый растровый (bitmap) фонт. Эти фонты обычно конструируются по мере необходимости (они содержат готовые изображения символов, создаваемые с помощью фонтов Type1 и метафонта). Они обычно имеют высокое разрешение (около 300-1200dpi) и предназначены для того, чтобы организовать вывод на принтер. Из-за высокого разрешения и того факта, что для вывода символов каждого размера требуется .pk-файл, они требуют очень много дискового пространства, поэтому обычно сохраняются в кэше, а не записываются на диск.
  • .mf -- файлы метафонтов (metafont files). Метафонт - это язык программирования графики (a graphics programming language), широко используемый для создания фонтов (хотя он может быть использован для любой графики). Он имеет много преимуществ по сравнению со схемами, использованными в TrueType и Type1. Его главной слабостью является то, что он не так вездесущ, как TrueType или Type1 (и он не очень хорош для WYSIWYG-приложений. Конечно, это главный недостаток, если Вы используете для печати TeX.)

Неплохо знать кое-что о структуре каталогов TeX. Основные каталоги, о которых Вы дожны знать, следующие:

  • $TEXMF/fonts -- главный каталог для фонтов
  • $TEXMF/fonts/type1 -- директория для фонтов type1
  • $TEXMF/fonts/type1/foundry -- каталог для файлов фонтов от конкретного производителя (foundry)
  • $TEXMF/fonts/type1/foundry/fontname -- содержит фонт с именем name. Это имя (name) обычно представляет собой произвольное английское название и не обязано следовать довольно загадочной схеме формирования имен фонтов, принятой в TeX.
  • $TEXMF/fonts/afm/foundry/fontname -- каталог, содержащий afm-файлы, соответствующие фонту name, принадлежащему производителю foundry.
  • $TEXMF/fonts/tfm/foundry/fontname -- аналогичный каталог, содержащий файлы tfm (вместо afm-файлов).
  • $TEXMF/fonts/vf/foundry/fontname -- аналогичный каталог для виртуальных фонтов.
  • $TEXMF/fonts/source/foundry/fontname -- аналогичный каталог, содержащий файлы метафонта.
  • $TEXMF/dvips/config/psfonts.map -- файл, определяющий соответствия между названиями фонтов и именами файлов, содержащими эти фонты, для dvips. Этот файл по своим функциям и структуре подобен файлу Fontmap из пакета ghostscript.
  • $TEXMF/tex/latex/psnfss -- здесь находятся все файлы определений фонтов (.fd).

9.2 Добавление фонтов Type1

Именование фонтов

Во-первых, Вы должны соответствующим образом назвать Ваши фонты. Инструкции о том, как именуются фонты, ищите в документации на fontinst в Вашей системе (она должна находиться в подкаталоге fontinst каталога, содержащего документацию по tetex). Очень кратко схема именования фонтов такова: FNW{V}E{N} где:

  • F - однобуквенное сокращение для производителя фонта (m = monotype, p = adobe, b = bitstream, f = free )
  • N - двух-буквенное сокращение от имени фонта (например, ag = "avant garde")
  • W - это толщина фонта (r = regular, b = bold, l = light d = demibold )
  • V - необязательные указание на вариант наклона (i = italic, o = oblique)
  • E - сокращение для кодирования (почти всегда 8a, что означает стандартную схему кодирования adobe).
  • N - необязательное указание на ширину символов (n = narrow)
Например, фонт Adobe Garamond demibold именуется как pgad8a.

Создание виртуальных фонтов и метрик фонта для tex

Теперь Вы можете запустить fontinst следующим образом:

        latex `kpsewhich fontinst.sty`
после чего ввести на запрос программы:
        \latinfamily{font_name}{}\bye
где font_name - это три первых буквы имени файла Вашего фонта (например, pad для adobe garamond). После этого fontinst создаст множество файлов -- файлы описания фонта, файлы списка свойств и файлы виртуальных списков свойств. Будет сгенерировано также множество .mtx-файлов. Они создаются программой fontinst, но Вам нет необходимости использовать их. Вам необходимо конвертировать списки свойств и виртуальные списки свойств в метрики и виртуальные фонты. Это делается с помощью утилит vptovf и pltotf.
        for X in *.pl; do pltotf $X; done
        for X in *.vpl; do vptovf $X; done
Затем удалите старые vpl, pl и mtx файлы.

Конфигурирование dvips

Вы должны отредактировать конфигурационный файл dvips, psfonts.map. Лучший способ объяснить формат файла - это привести пример.

     marr8r          ArialMT <8r.enc <farr8a.pfa
     marbi8r         Arial_BoldItalicMT <8r.enc <farbi8a.pfa
     marb8r          Arial_BoldMT <8r.enc <farb8a.pfa
     marri8r         Arial_ItalicMT <8r.enc <farri8a.pfa
     marr8rn         Arial_Narrow <8r.enc <farr8an.pfa
Здесь 8r.enc служит просто для информирования dvips об используемой схеме кодирования (во всех наших примерах это 8r, в силу способа, которым fontinst конструирует виртуальные фонты). Самый левый столбец - это имя фонта, который использует TeX. Второй столбец - это реальное имя фонта, которое содержащееся в файле фонта (это имя можно узнать, открыв afm-файл в текстовом редакторе и найдя директиву FontName). Последний столбец это имя файла контуров, соответствующего данному фонту. Указывать имя каталога нет необходимости -- tex знает, где искать.

Тестирование фонта

Попытайтесь запустить latex на документе следующим образом:

\documentclass{article}
\begin{document}
        \usefont{T1}{pga}{m}{n}\selectfont
        \huge
        Testing a new font \dots the quick red fox jumped over the lazy brown dogs
\end{document} 
где нужно заменить pga на указание на Ваш фонт. Если это работает, Вы почти у цели. Все, что Вам еще необходимо сделать - это разместить все файлы в соответствующих каталогах (как это объяснено выше), после чего запустить run
         texconfig rehash
с тем, чтобы tex мог обновить список каталогов.

Создание .sty-файла

Вы можете создать файл .sty для того, чтобы легче было использовать фонты. Используйте в качестве образцов (или шаблонов) файлы из $TEXMF/tex/latex/psnfss.

10. Где взять фонты для Linux

10.1 True Type

Коммерческие пакеты

Фонты True type очень легко найти и большое количество таких фонтов обычно включено в пакеты, подобные Microsoft Word и Word Perfect. Приобретение Word Perfect является самым простым способом получения огромного количества фонтов (Вы можете купить даже легальную версию Word Perfect для windows. Фонты на CD читаемы.)

Microsoft's Font Download

Фирма Microsoft тоже сделала общедоступными несколько фонтов TrueType. Вы можете получить их с сайта фирмы. Файл .exe является просто архивом, Вы можете развернуть его, используя unzip.

Сайт Лука Девроя (Luc's Webpage)

Сайт Лука Девроя (Luc Devroye) содержит ссылки на несколько других сайтов со свободно распространяемыми фонтами. Причем большинство из этих фонтов являются действительно свободными, а не "warez fonts".

Web-сайты с фонтами truetype

Существует несколько web-сайтов, предлагающих свободно распространяемые фонты для скачивания. Например, сайт the freeware connection содержит ссылки на множество таких архивов.

Производители

Несколько производителей фонтов продают фонты TrueType. Однако, большинство из них достаточно дороги, и за те же деньги Вам лучше купить фонты Type1. Я скажу об этом подробнее в разделе, посвященном фонтам Type1. Есть одно место, где продают фонты true type по низким ценам: buyfonts. Но, прежде чем покупать дешевые фонты, прочитайте, пожалуйста, раздел об этике в настоящем HowTo.

10.2 Фонты Type 1 и Метафонт

Форматы файлов фонтов для Mac и Windows

Многие производители фонтов разрабатывают их в расчете на пользователей Windows и Mac. Иногда это может вызвать проблемы. Обычно работать с "фонтами для Windows" достаточно просто, потому что они упакованы в zip-архив. Единственное, что нужно сделать, это преобразовать pfm-файл в afm-файл (используя pfm2afm).

С фонтами для Macintosh проблем больше, потому что обычно они поставляются в формате .sit.bin -- архивов, созданных с помощью архиватора stuffit. К сожалению, пока что не существует утилиты для Линукс, с помощью которой можно было бы распаковывать stuffit-архивы, созданные с помощью последних версий stuffit. Единственный способ сделать это состоит в запуске Executor-а (эмулятора Mac), или попытаться запустить stuffit в dosemu или Wine. После того, как файл sit.bin распакован, файлы для Macintosh могут быть конвертированы с помощью t1unmac, который входит в состав пакета t1utils.

К сожалению, некоторые производители поставляют фонты Type1 только формате для Macintosh (в виде stuffit-архивов). Однако, если верить эксперту по фонтам Luc Devroye, все главные производители фонтов Type1 поставляют их как для Mac, так и для Windows.

Источники бесплатных фонтов

На сайте ctan имеется много хороших фонтов, многие из которых бесплатны. Большинство из них в формате Metafont, хотя имеются и фонты Type1. Загляните также на Bluesky , где имеются Type1-версии фонтов computer modern . (Фонты computer modern имеют великолепное качество -- чтобы купить что-нибудь сравнимое по качеству и полноте требуется потратить примерно $500. Они сопоставимы с фонтами premium .)

Web-страница Luc Devroye содержит ссылки на несколько других сайтов со свободно распространяемыми фонтами. Причем большинство из этих фонтов являются действительно свободными, а не "warez fonts".

URW выпустила в общественное пользование стандартные фонты postscript, которые встраиваются в большинство принтеров. Эти фонты имеют весьма неплохое качество.

Архив фонтов на Walnut Creek содержит несколько бесплатных и условно-бесплатных фонтов. Некоторые из них очевидно "содранные" (и не очень качественные). Если фонт идет без лицензии, то велики шансы, что он "содран". На сайте Winsite тоже имеется несколько фонтов Type1 (в подсекции fonts/atm их программного обеспечения для windows 3.x). К сожалению, некоторые из них имеют afm-файлы, содержащие ошибки, и в них отсутствуют некоторые пары кернинга (Вы можете исправить afm-файлы путем редактирования секции "FontName" afm-файлов. Она должна соответствовать имени файла, заданному в файле контуров фонта. Естественно, добавление пар кернинга - это тема, выходящая за пределы настоящего документа.)

Web-страница Luc Devroye содержит несколько созданных им бесплатных фонтов, а также множество ссылок и захватывающее обсуждение темы типографики. Этот сайт НУЖНО посетить. Там же Вы найдете ссылки на сайты многих производителей фонтов.

Коммерческие фонты

Дорогие и не очень дорогие: почему стоит купить дорогой фонт?

Вы удивляетесь -- почему некоторые фонты относительно дешевы, а другие стоят кучу денег? Эти фонты являются "стандартными postscript-фонтами", вшитыми в большинство postscript-принтеров. И на знаменитый вопрос "Почему я должен покупать более дорогие вещи?" можно ответить, что для обычного пользователя относительно дешевые коммерческие фонты (такие как фонты с CD от Bitstream) вполне приемлемы. Однако, если фонты Вам нужны для "настоящей работы" или Вы просто до фанатизма любите отличные фонты, тогда, конечно, Вы должны приобрести набор высококачественных фонтов -- и, хотя некоторые из таких фонтов поставляются бесплатно (например, Computer Modern), но все же в этих случаях речь должна идти о коммерческих фонтах.

Преимущества более дешевых фонтов самоочевидны -- они дешевле. Хотя качественные фонты тоже имеют свои преимущества.

  • Этические соображения: Дешевые фонты почти всегда "содранные". Для создания фонта требуется много времени и опытный дизайнер. Фонты, которые продаются дешевле, чем по 1 доллару за фонт почти наверняка созданы не поставщиком таких фонтов. CD с немерянным количеством фонтов почти всегда являются собраниями ворованных продуктов (коллекции от основных производителей стоят сотни долларов). Обычно в дешевых коллекциях отсутствует то качество, которое присуще фонтам от уважаемых производителей.
  • Полнота: Фонты высокого качества (особенно от Adobe) поставляются в нескольких вариантах, с приятными и полезными дополнениями, в силу чего пользователь получает более полное семейство фонтов. Часто в этом семействе имеются такие варианты, как bold, italic, demibold, swash capitals, small caps, символы старого стиля (old style figures), а также дополнительные лигатуры. С недавних пор Adobe применяет технологию "multiple master", которая дает пользователю (почти) бесконечную изменчивость в рамках одного семейства фонтов.
  • Качество: Многие из свободно распространяемых или дешевых фонтов не имеют таких существенных с точки зрения качества свойств (или компонент) как пары кернинга и хорошие лигатуры. Эти фонты в основном дешевые копии. И, напротив, уважаемые дизайнеры затрачивают массу усилий на исследования и создают каждый фонт, используя все свои способности.
  • Достоверность: Человек, который создал фонт Adobe Garamond (Robert Slimbach), сделал это на основе изучения дизайна шрифта Claude Garamond. Фактически уважаемые дизайнеры всегда тщательно отслеживают истоки своих творений, а не просто "слизывают" что из сети, слегка модифицируя содранное с помощью Fontographer-а.

Относительно дешевые фонты

  • Великолепное место, где можно найти CD с пакетом нескольких фонтов Type1 приличного качества - это Bitstream. Самые примечательные продукты Bitstream включают их 250 font CD и 500 font CD (во время написания этого текста последний стоил $50). Это фонты достаточно высокого качества и достаточно хорошая отправная точка для случайного пользователя. Corel в свои продуктах (по большей части) использует фонты от bitstream.
  • Matchfonts предлагает фонты по более умеренным ценам - они поставляются в "пакетах" из 8 фонтов за 30 долларов. Такой пакет включает прекрасные каллиграфические фонты. Все фонты поставляются в удобном формате (фонты windows ATM представлены в виде .exe-файла. Однако не давайте одурачить себя одним только расширением имени файла - это всего-навсего zip-архив). Насколько я могу судить, эти фонты не являются подделками.
  • EFF продает TrueType фонты по $2 за штуку. У них имеется также "выбор для профессионалов" фонтов postscript и TrueType - по $16 за шрифт.

Дорогие фонты

  • Adobe предоставляет несколько высококачественных фонтов на Adobe's type website. Некоторые из них дорогие, но Вы можете выбрать наиболее подходящий для себя комплект -- смотрите Adobe Type Collections. Adobe имеет самые полные семейства фонтов из имеющихся на рынке, например, Garamond, Caslon, и их multiple masters (Myriad и Minion, используемые на их web-сайте, - одни из самых приятных из их multiple masters.)
  • Berthold Types Limited , один из основных производителей, предлагает несколько качественных фонтов. Некоторые из них перепродаются фирмой Adobe, но все напрямую доступны у Berthold. Цены такие же, как у Adobe.
  • ITC создала несколько качественных фонтов (http://www.itcfonts.com/ ), в том числе некоторые из тех, которые Corel поставляет в составе своих продуктов. Они поставляют пакеты с семейством фонтов примерно за $100-180 US. Имеются как фонты Type1, так и TrueType. Предпочтительнее выбрать пакет для Windows, потому что с форматами для Mac труднее работать в Linux.
  • Linotype - известный производитель фонтов, который предлагает фонты известных дизайнеров, включая Германа Запфа (Herman Zapf). (да, тот самый, чье имя входит в название ``Zapf Chancery''; он же создал Palatino.)
  • Monotype - создала большинство фонтов, поставляемых с продуктами от Microsoft. Один из старейших и наиболее уважаемых производителей фонтов.
  • Tiro Typeworks продает высоко-качественные, хотя и несколько дорогие фонты. Их шрифты очень полны, например, они включают полный набор лигатур и уменьшенных заглавных, символов для заголовков и т.д. Среди ОС, для которых предназначены фонты, указана UNIX, что является приятным сюрпризом после того, как многократно встречаешь только "Windows" или "Mac".

Другие ссылки

Если хотите найти ссылки на сайты других производителей, загляните на страницу Luc Devroye.

11. Полезное ПО управления фонтами для Linux

Существует несколько пакетов ПО для работы с фонтами в Linux. Многие из них очень полезны.

  • chkfontpath - это утилита для редактирования конфигурационного файла xfs.
  • DTM -- the Definitive Type Manager это полный набор инструментов для управления фонтами. Пока в стадии разработки.
  • fontinst - это пакет для LaTeX, созданный с целью упрощения установки фонтов Type1 в LaTeX.
  • Freetype - библиотека TrueType, которая поставляется большинством дистрибутивов Linux
  • Ghostscript - это программное обеспечение, используемое для организации печати в Linux. Версия ghostscript, которая поставляется с Linux - это GNU ghostscript. Она отстает на одну версию от самой последней версии Aladdin ghostscript (просто фирма выпускает свои старые версии под лицензией GPL).
  • pfm2afm - это утилита для преобразования pfm-файлов метрик фонтов Windows в afm-файлы метрик, которые могут использоваться в Linux. Она основана на оригинальной версии, доступной на CTAN, и включает модификации, сделанные Р.Смитом (Rod Smith) для того, чтобы можно было компилировать ее под Linux.
  • mminstance и t1utils - два пакета для работы с фонтами Type1. mminstance предназначена для работы с multiple master фонтами Type1 от Adobe. t1utils - это простая утилита для конвертирования разных типов фонтов формата Type1.
  • ttf2pt1 - это конвертер фонтов TrueType в Type1. Он полезен, если Вы используете приложения, требующие фонтов Type1.
  • ttfps - преобразует .ttf-файлы фонтов TrueType в файлы фонтов Type42.
  • ttfutils Пакет утилит для работы с фонтами TrueType. Этот пакет требует ttf2pt1. Очень полезен, если не сказать необходим.
  • type1inst - очень полезный пакет для установки фонтов Type1. Существенно упрощает инсталляцию.
  • xfstt - это фонт-сервер TrueType фонтов для Linux. Полезен, но xfs, пожалуй, лучше.
  • xfsft Фонт-сервер. Заметим, что он включен в xfs.
  • x-tt - фонт-сервер, который управляет японскими и корейскими фонтами.

12. Вопросы этики и лицензирования

Лицензирование фонтов - очень склочная тема. Правда, что существует огромное количество свободно распространяемых фонтов, но всегда есть шанс, что данный фонт в каком-то смысле ``содран'', если только к нему не приложена лицензия, утверждающая обратное. Вопрос еще более запутан там, где речь идет о законодательстве по защите интеллектуальной собственности в части собственно шрифта, то есть набора изображений символов. Если коротко, то в США файлы фонтов защищены авторским правом (are protected by copyright), а изображения символов шрифта (font renderings) - нет. Другими словами, распространять созданные другими файлы фонтов - незаконно, но можно, не вступая в противоречие с законом, распечатать шрифт на бумаге и создать кривые, которые будут выводить такие же изображения символов (метод "обратного инжиниринга"). Созданные этим методом фонты обычно дешевы и распространяются свободно, но имеют плохое качество. Такие фонты, а также пиратские копии фонтов часто распространяются на очень дешевых CD-дисках, содержащих огромное количество фонтов. При этом не всегда легко понять, был ли данный фонт создан методом "обратного инжиниринга" или попросту украден. Эта ситуация способна вызвать головную боль у каждого, кто собрался поставлять пакеты бесплатных фонтов для Linux.

Вероятно одна из самых отвратительных сторон пиратства в этой сфере заключается в том, что оно обесценивает работу, которую делают создатели шрифтов. Очевидно, что пиратские фонты содержатся в огромном количестве на миллионах выпущенных CD-дисков с фонтами, но при этом о создателях этих фонтов полностью забывают. И наоборот, несколько фирм, выпускающих лицензионные фонты, отдают должное их создателям, что заслуживает похвалы.

На эту тему имеется много различных мнений. Смотри сайт typeright, авторы которого выступают в защиту прав интеллектуальной собственности и поясняют свою позицию. На сайте Southern Software, Inc высказывается противоположное мнение -- но не покупайте ни одного из их фонтов! Их фонты Type1 (полученные из фонтов Adobe некачественным "обратным инжинирингом") не имеют AFM, и поэтому не пригодны для использования.

В "The comp.fonts FAQ" тоже обсуждаются вопросы фонтов и интеллектуальной собственности, как и на домашней страничке Люка Девроя (Luc Devroye). Но авторы этих сайтов занимают не такие крайние позиции, как авторы двух предыдущих.

13. Ссылки

13.1 Информация о фонтах

  • Rod Smith's homepage содержит массу информации об использовании фонтов и принтеров с Applixware и Word Perfect.
  • На John McLaughlin's page обсуждается установка фонтов для Star Office.
  • Jim Land's homepage содержит много ссылок на сайты, посвященные postscript и фонтам.
  • The comp.fonts FAQ - исчерпывающий FAQ по фонтам.
  • Luc Devroye's homepage Содержит достаточно информации о фонтах и других вещах, чтобы потопить корабль (на английском тут игра слов: enough information about fonts and other things to sink a ship). Этот парень создал несколько свободно распространяемых фонтов и его домашняя страничка содержит много интересных ссылок, информации и комментариев.
  • The Font Deuglification HOWTO обсуждает использование TrueType фонтов под Linux. Это лучший из ``TrueType'' HOWTO. Отличный источник информации.
  • TrueType Fonts in Debian mini-HOWTO обсуждает установку TrueType в Debian. Пользователи Debian должны это прочитать. Стоит также прочитать всем, кто пользуется дистрибутивом, в котором нет версии xfs с поддержкой TrueType.
  • The (preliminary) True Type HOWTO -- неполный HOWTO датированный июнем 1998. Включен в настоящий перечень для полноты.
  • TrueType for XFree86 Mini-HOWTO -- слегка устаревший HOWTO. Применим только к Redhat 5.x

13.2 Информация о Postscript и печати на принтере

  • Adobe's Postscript page сайт, на котором Вы найдете определение стандарта postscript.
  • Ghostscript's home page содержит массу информации и все новейшие драйверы для принтеров.
  • Jim Land's homepage содержит массу ссылок на сайты, посвященные postscript и фонтам.
  • Christopher Browne's Printing FAQ Страничка Кристофера Брауна о принтерах.

14. Глоссарий

  • afm означает Adobe Font Metric. Файлы с таким расширением хранят информацию о ширине символов и величине интервалов между символами для соответствующего шрифта, то есть метрики фонта, но не содержат информации, необходимой для вывода изображений символов.
  • anti-aliasing (также называется сглаживанием фонта - font smoothing) - это набор приемов, используемых для воспроизведения символов на устройствах с низким разрешением (таких как монитор). Проблема с выводом символов шрифта состоит в том, что символы состоят из контуров, а большинство устройств выводят их отдельными точками. Очевидный способ разрешения этого противоречия заключается в том, что все точки (пикселы) внутри контура раскрашиваются черным, а вне контура - остаются белыми (не окрашиваются). Но тут возникает новая проблема - с точками, расположенными на границе контура, которые нельзя однозначно отнести к черным или белым. Оптимальный алгоритм заключается в том, чтобы вывести эти точки серым цветом. Анти-элайзинг (anti-aliasing) и служит для решения этой задачи.
  • bdf-фонты - это разновидность растровых (матричных) фонтов, используемых в X.
  • bitmap fonts (растровые или матричные фонты). В этих фонтах каждый символ записан в виде матрицы из отдельных точек. В силу этого растровые фонты являются аппаратно-зависимыми, так что Вы не можете использовать один и тот же фонт для экрана и для принтера. Примерами экранных растровых фонтов являются фонты .pcf и .bdf, используемые в X. Примерами принтерных матричных фонтов являются PK-фонты в TeX.
  • didone смотри modern.
  • DPI Точек на дюйм (Dots Per Inch). Мониторы обычно имеют разрешение 75-100 DPI, в то время как современные принтеры обеспечивают разрешение от 300 до 1200 DPI.
  • expert fonts - коллекция дополнительных символов, которыми пополняется фонт. В число таких символов входят small caps, орнаменты, дополнительные лигатуры и цифры переменной ширины. Многие из фонтов фирмы Adobe включает такие дополнительные символы.
  • font server Фонт-сервер - это фоновая программа, которая обеспечивает доступ к фонтам для XFree86.
  • glyph Слово "глиф" ("glyph") обозначает в фонтостроении форму, фигуру, образ. Глифами называют отдельные компоненты или части изображения, используемые для формирования изображений символов в контурных фонтах. Например, точка в изображении символа "i" - это глиф, так же, как вертикальная черта и серифы. Глифы определяют вид символов в фонте, то есть собственно шрифт.
  • kerning В шрифтах переменной ширины интервалы между разными парами символов могут различаться. Файлы метрик фонта хранят информацию о величине интервалов между парами символов, которые называются парами кернинга.
  • ligature Лигатура - это специальный символ, который заменяет собой последовательность из двух или более обычных символов. Лучше всего это пояснить примером. Когда выводятся символы "fi", точка в букве "i" сливается с верхушкой "f", а сериф слева вверху буквы "i" сливается с горизонтальной чертой в "f". Лигатура "fi" - это отдельный символ, который заменяет пару символов "fi". В фонт могут включать также лигатуры для fl, ffi и ffl, однако большинство фонтов содержат лигатуры только для fi и fl. Другие лигатуры могут быть включены в expert font.
  • metafont Язык описания графических объектов (A graphics language), используемый для создания фонтов. Метафонт имеет массу полезных возможностей, главная из которых заключается в том, что способы масштабирования фонта не ограничиваются только линейными преобразованиями. Это значит, что символы из фонта computer modern размера 17 пикселов, сгенерированного с помощью Метафонта, не являются просто соответственно увеличенными символами фонта computer modern размером в 10 пикселей. До появления технологии multiple master фирмы Adobe Метафонт был уникальным явлением в смысле обеспечения такой возможности. Главным достоинством Метафонта является то, что он позволяет создавать шрифты высокого качества. Недостаток - в том, что преобразование контурного фонта в матричный осуществляется медленно, что ограничивает его применение в WYSIWYG-приложениях.
  • metric Метрика фонта - это информация о том, как много места занимает шрифт. Метрика фонта подобна коробке, в которую надо разместить шрифт. Метрика фонта необходима для расположения символов на странице, в противоположность собственно изображениям символов, которые с этой точки зрения несущественны. Таким образом, файлы контурных фонтов переменной ширины должны хранить информацию как о форме символов, так и информацию метрик. Метрики содержат также информацию о кернинге.
  • modern Современные (modern) шрифты - это шрифты, дизайн которых создан в 19-ом столетии или позже. Они выглядят солидно из-за того, что имеют вертикальный нажим. Зачастую они могут быть более выразительными, чем шрифты старого стиля или переходные, но они все еще содержат некоторую долю достоинства и формальности. Шрифты этого типа не подходят для длинных произведений, но они полезны для придания особого характера некоторым частям текста. Примером современного шрифта может служить шрифт Bodoni.
  • old style Шрифты старого стиля - это класс традиционных шрифтов. Они основаны на изображениях, которые были созданы давно, начиная с конца 15-го века. Шрифты старого стиля идеально подходят для создания длинных документов (например, книг). Хотя эти шрифты созданы в традициях старых дизайнеров, некоторые из них появились совсем недавно. Например, шрифт Goudy Old Style был создан Goudy в начале 20-го века. Примерами шрифтов старого стиля могут служить Goudy Old Style, Garamond и Caslon.
  • pcf-фонты - это растровые фонты, используемые в X.
  • postscript - язык программирования, созданный для описания страниц. Postscript был торговой маркой его создателя, фирмы Adobe. Однако он является также стандартом ISO. Для вывода символов в Postscript необходим интерпретатор этого языка. Этот интерпретатор может быть программой на компьютере, такой как ghostscript, или же в качестве интерпретатора может выступать принтер.
  • serif - шрифты с небольшими выступами (которые называются серифами) у концов символов. Серифы обычно делают шрифт более читаемым. Однако серифы трудно выводить на устройствах с низким разрешением, особенно что касается символов малого размера, так что оказывается, что для маленьких символов на устройствах с низким разрешением шрифты sans serif (такие как Microsoft-овский Verdana) оказываются более читабельными. Кроме того, некоторые из шрифтов sans serif (в основном современного стиля) не годятся для написания длинных документов.
  • sans serif - это шрифты (и, соответственно, фонты) без серифов (sans - это французское слово, означающее "без"). Эти шрифты имеют "сильный " вид и хорошо подходят для заголовков. Хотя типографские учебники утверждают, что эти шрифты предназначены только для заголовков, они вполне могут быть использованы и в других целях. Существуют шрифты sans serif, созданные с целью обеспечения читаемости, а не броскости. Эти шрифты могут использоваться для коротких рекламных документов (таких как каталоги и рекламные брошюры), а недавно Microsoft сделал доступным фонт Verdana, который создан для повышения читаемости символов малого размера на устройствах с низким разрешением. Широко известными шрифтами типа sans serif являются Lucida Sans, MS Comic Sans, Avant Garde, Arial, Verdana, Century Gothic.
  • slab serif Шрифты slab serif - это класс шрифтов, у которых серифы имеют форму пластин (то есть широких линий или прямоугольников). Шрифты slab serif часто, но не всегда, легко читаются. Поскольку серифы простые и строгие, они создают ощущение того, что символы "вбиты" в страницу. Широко известными примерами шрифтов slab serif являются Clarendon, New Century Schoolbook и Memphis.
  • transitional Переходные (transitional) шрифты - это шрифты, стиль которых разработан позже, чем у шрифтов старого стиля. Многие из переходных шрифтов имеют хорошую читаемость. К этому классу относят Baskerville и Times Roman.
  • Type1 - это тип фонтов, разработанный фирмой Adobe. Эти фонты поддерживаются почти всеми приложениями Linux, потому что они уже долгое время поддерживаются архитектурой X-сервера и стандартом postscript. Фонты стандарта postscript распространяются в виде файлов разных форматов. Обычно фонты UNIX postscript распространяются в виде файлов afm (adobe font metric), и файлов контуров, которые имеют расширение .pfb (printer font binary) или .pfa (printer font ascii). Файлы контуров содержат все глифы, а файлы метрик содержат метрики.
  • Type3 Фонты Type3 подобны фонтам Type1. Расширения файлов такие же, как у файлов фонтов Type1 (они распространяются как pfa- и afm-файлы), но они не поддерживаются в X, из-за чего их не поддерживают и некоторые приложения Linux .

[ опубликовано 09/02/2003 ]

Donovan Rebbechi, перевод: В.А.Костромин - Font HOWTO   Версия для печати