Установка шрифтов Groff / Хабр
Здравствуй, Хабр!
Русские шрифты в Groff, пошаговая инструкция по установке. Groff — небольшой и очень-очень винтажный программный пакет, система набора текста, в каком-то смысле прадедушка TeX, LaTeX. Но если TeX создан Дональдом Кнутом, то Брайан Керниган приложил немало усилий для развития концепций Troff. Итак, две легенды и две дороги.
Конечно, сегодня программы troff (GNU версия называется по традиции groff) применяют в основном для форматирования man-страниц, но возможности процессора намного шире.
…Осенью прошлого года мне пришлось форматировать текстовой файл. Правда, банальная задача? Но дьявол живет в деталях: у меня на руках было 60000 страниц текста из базы данных, где смешались русские, английские и немецкие слова, сцементированные и притертые, как камни пирамиды Хеопса. Мой «текстовой процессор» (OO) намертво завис. Я растерялся, расстроился, попытался найти простенькое решение для командной строки.
В самом деле, как работали во времена Ноя и мониторов EGA с текстом? Emacs, vim, jed? Это все насыщенные функциями, как мед сахаром, многорежимные редакторы. Но насущная задача казалась очевидной: создать текстовой файл со строкой в 70 знаков, с возможностью центрирования и необязательного переноса слов. Помнится, в «эпоху DOS» был популярный «процессор» Лексикон, да? Что-то такое я захотел установить на свой компьютер. Только чтобы буквы в utf-8 не резались на биты.
Впрочем, чудо случилось: во время поисков я нашел русскоязычную документацию программы nroff, написанную… как вы думаете, кто переводил мануалы? Ну да, производственно-внедренческий кооператив «ИНТЕРФЕЙС» озаботился русскоязычной справкой аж в конце 80 годов, еще во времена СССР.
Мои поиски закончились и я за несколько минут подготовил файл с форматированием.
Следующая команда прекрасно справилась с текстом utf-8, конечно, без переноса слов.
$ groff -Dutf8 -Tutf8 utf-8.txt > russian.
txt
Получилось очень красиво. Мне тут же захотелось продолжить знакомство с легендарной программой и я решил перевести на русский язык документацию Groff, чтобы поглубже изучить, понять всю прелесть старой программы. В процессе перевода у меня также возникло необъяснимое желание создать документ PostScript на русском языке со своими шрифтами. И вот здесь начались сложности: процесс установки «своих» шрифтов в Groff не такой уж простой.(Проблема в том, что некоторые программы не ставятся «по умолчанию» в дистрибутив Debian, которым я пользуюсь, поэтому их придется устанавливать самому.)
Ниже я попытаюсь максимально подробно описать компиляцию шрифтов ttf для работы с программой Groff.
Шрифты в Groff «настраиваются» несколько необычно, хотя существует небольшой и удобный скрипт 
Также я перевел сообщение Т. Курта Бонда, но применительно к русскому языку и с необходимыми правками. Ниже инструкция Бонда с моими замечаниями.
А в этом архиве лежат все необходимые утилиты, даже программа afmtodit, она написана на Perl. Исходный скрипт Питера лежит по адресу.
В настоящее время install-font.sh не входит в пакет groff, как пишет Бонд, поэтому могут быть небольшие трудности, если возникает необходимость установить шрифты в форматах OpenType или TrueType.
И для удобной работы потребуется программа Fontforge — бесплатный редактор шрифтов с открытым исходным кодом. Этот редактор может выполнять сценарии преобразований между форматами шрифтов в командной строке.
Примечание. Можно также создать шрифтовые метрики AFM, например, с помощью входящей в пакет ghostscript программы, или программы ttf2afm из пакета tetex.
Скрипт install-font.sh использует Fontforge для преобразований между шрифтами OpenType и TrueType в PostScript Type42 (.
t42) и Type1 (.pfa).
Затем с помощью утилиты afmtodit (по умолчанию не поставляется с пакетом Groff, но доступна в исходниках) создаются необходимые для Groff файлы.
Установите Fontforge.
$ sudo apt install fontforge
Скачайте afmtodit (или архив).
Создайте директорию, например,
Для автоматизации я написал небольшой скрипт, который в автоматическом режиме компилирует шрифты. Скрипт также доступен в архиве как auto-convert.sh
#!/bin/bash
EXT="ttf" # (расширение)
# EXT="TTF"
# В директории FONT должны размещаться файлы textmap и text.enc
mkdir ./install-font
# Необходимая для работы afmtodit директория
mkdir ./install-font/DESC
# Программа на Perl, можно отключить проверку DESC
mkdir ./site-font
DEST=`pwd`
cp tex* .
/install-font
# Начинаем цикл
for FILE in *.$EXT; do
# "Меняем" имя файла (расширение)
input=`echo $(basename "$FILE" .$EXT).afm`
output=`echo $(basename "$FILE" .$EXT)`
# Конвертируем
echo "conversion $FILE >> $input"
# Опция +R определяет шрифт Regular, см. ниже комментарий
sudo ./install-font.sh -n -d -P "$DEST" -F $output -f +R $FILE
# Смотрим файлы в директории, это всего лишь удобная фича
input=`ls $DEST/site-font/devps/$output*`
echo "$input"
done
exit 0
Как видите, ничего сложного — создается директория install-font с обязательной поддиректорией DESC и директория site-font. В последнем каталоге будут «появляться» шрифты, необходимые для работы с Groff. Обратите внимание! В директорию install-font следует положить два файла: textmap и text.enc (они есть в архиве). Эти файлы нужны для работы программы afmtodit и они входят в оригинальный пакет Groff.
Также скрипт install-font.sh потребует определенных прав для исполнения.
Наверное, от этого можно избавиться, отключив в скрипте две-три команды, но я не стал изменять скрипт.
После запуска скрипта auto-convert.sh в директории site-font появятся две субдиректории —
Groff называет директории шрифтов как «dev» (устройство) и «формат», поэтому все необходимые файлы перемещаются в site-font/devps, причем каталогу назначаются привилегии и права. Также из-за какой-то путаницы afmtodit в созданных «шрифтах» будет ошибка — неправильная строка «spacewidht 0», ее можно закоментировать «# spacewidht 0». Или опять-таки переписать старенькую программу afmtodit.
Например, вы собираетесь использовать шрифт Russian.ttf, программа Groff предполагает, что будут доступны варианты Regular, Italic, Bold и Bold Italic (R, I, B и BI, если говорить в терминологии Groff).
Значит, вам потребуются соответствующие шрифты: Russian-Regular.ttf, Russian-Italic.ttf, Russian-Bold.ttf и Russian-BoldItalic.ttf. Обычно на сайтах со шрифтами предлагаются подборки семейств, так что вы всегда сможете скачать необходимые шрифты.
Шрифты следует скопировать в каталог FONT (который мы создали ранее), разумеется, в этом же каталоге должны лежать все исполняемые файлы.
Скрипт auto-convert.sh запускает для каждого ttf шрифта следующую команду:
$ sudo install-font.sh -n -P " $DEST " -d -F Font -f +R Font-Regular.ttf
Параметр -f принимает аргумент, указывающий используемый стиль шрифта: +R, +I, +B или +BI.
В данном случае установлена опция +R, создается шрифт Regular.
Если вы хотите создать шрифты Italic, Bold и Bold Italic, опция приобретает иной вид: +I, +B и +BI соответственно.
Параметр -F принимает аргумент, указывающий используемое имя семейства шрифтов. Это имя для запроса .fam или -f groff, чтобы сообщить процессору, какое семейство шрифтов будет использоваться.
Для примера, такая команда создаст RussianI (курсив) шрифт
$ sudo install-font.sh -n -P " $DEST " -d -F Font -f +I Russian-Italic.ttf
Очевидно, можно «встроить» алгоритм, автоматически «называющий» шрифт так, как необходимо процессору Groff.
Если компиляция была успешной, в директории ./site-font/devps/ будут созданы шрифты, их следует скопировать в /usr/share/groff/site-font/devps/ (для дистрибутива Debian).
Теперь можно написать файл test.txt для тестирования нового шрифта.
.sp 2 .ps 16 .ft RussianR .ti +1 Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код .br настолько умно, насколько можете, то вы по определению недостаточно .br сообразительны, чтобы его отлаживать. .br Управление сложностью является сущностью компьютерного программирования. .sp 1 .ps 12 .ce .ft RussiandB Брайан Керниган, автор Troff
Затем создадим файл PostScript
$ groff -P-pa4 -P-l -Dutf8 -Tps test.
txt > text.ps
Вот и все, и надеюсь, несмотря на почтенный возраст программы Groff, она еще способна вызвать у любителей ручной верстки какие-то чувства =)
Россия Шрифты 2022 | 1149+ потрясающих русских шрифтов · Creative Fabrica
Исследуйте 1149 потрясающих русских шрифтов, чтобы загрузить их и найти идеальное сочетание, которое подойдет для вашего следующего веб-сайта. и полиграфические дизайн-проекты всех размеров. Вы ищете идеальные российские шрифты? Вы пришли к нужное место! Ознакомьтесь с нашей коллекцией, новые дизайны добавляются каждый день.
Сортировать по популярности Сортировать по последним
Показано 1–36 из 180 результатов
116
431
20
3
4
0
2
3
55
1
0
2
1
0
0
0
1
6
2
12
3
3
10
19
11
34
17
18
15
25
46
101
43
48
91
25
Показано 1–36 из 180 результатов
Архив России — Fontfabric™
50% СКИДКА 216 стилей шрифта от 40 долларов.
16 стилей шрифта от 39 долларов.
15 стилей шрифта от 27 долларов
21 стиль шрифта от 17 долларов
17 стилей шрифта от 25 долларов
18 стилей шрифта от 35 долларов
5 стилей шрифта
1 стиль шрифта
1 стиль шрифта
1 стиль шрифта
2 стиля шрифта
9 стилей шрифта
Получайте наши последние выпуски, лучшие предложения и важные советы прямо на вашу почту.

Мы вышлем вам заархивированный файл с бесплатным шрифтом, лицензионным соглашением и инструкциями по установке.
Адрес электронной почты уже существует
К сожалению, произошла ошибка! Повторите попытку через несколько секунд
Поле не должно быть пустым
Неверный адрес электронной почты
Ваш адрес электронной почты *
Я хочу получать новости о новых выпусках, скидках только для подписчиков, персонализированных предложениях и ресурсах, позволяющих максимально эффективно использовать мои шрифты. Нажимая кнопку «Подписаться», вы соглашаетесь получать информацию о наших последних выпусках шрифтов, скидках и важных советах по максимально эффективному использованию типографики.
Никто не любит тесноту, поэтому мы делаем упор только на качественный контент. Вы можете отказаться в любое время, нажав на ссылку в нижнем колонтитуле наших электронных писем. Дополнительную информацию см. в нашем Уведомлении о конфиденциальности.
Спасибо, что выбрали бесплатные шрифты Fontfabric! Мы помогаем дизайнерам со всего мира масштабировать свои проекты и клиентов с помощью отличной типографики. Отказаться от рассылки можно в любое время, нажав на ссылку «Отписаться» в нижнем колонтитуле вашего электронного письма. Дополнительную информацию см. в нашем Уведомлении о конфиденциальности.
Ваш бесплатный шрифт будет доставлен с адреса [email protected]. Обязательно проверьте папки со спамом/промо и подумайте о том, чтобы добавить нас в белый список.
Подождите до 10 минут, пока сообщение придет.
Все еще не видите? Отправьте нам сообщение по адресу [email protected]
Настройки файлов cookie
Целевые файлы cookie
Эти файлы cookie могут быть установлены через наш сайт нашими рекламными партнерами.
Эти компании могут использовать их для создания профиля ваших интересов и показа вам соответствующей рекламы на других сайтах. Они не хранят личную информацию напрямую, а основаны на уникальной идентификации вашего браузера и интернет-устройства. Если вы не разрешите использование этих файлов cookie, вы будете получать менее целенаправленную рекламу.
Включено Неполноценный НеполноценныйКуки производительности
Эти файлы cookie позволяют нам подсчитывать посещения и источники трафика, чтобы мы могли измерять и улучшать производительность нашего сайта.
Они помогают нам узнать, какие страницы являются наиболее и наименее популярными, и увидеть, как посетители перемещаются по сайту.Вся информация, которую собирают эти файлы cookie, является агрегированной и, следовательно, анонимной. Если вы не разрешите использование этих файлов cookie, мы не будем знать, когда вы посещали наш сайт, и не сможем отслеживать его работу.
Включено Неполноценный НеполноценныйОбщие файлы cookie
Эти файлы cookie необходимы для работы веб-сайта и не могут быть отключены в наших системах. Обычно они устанавливаются только в ответ на ваши действия, которые представляют собой запрос на услуги, такие как установка параметров конфиденциальности, вход в систему или заполнение форм.
Вы можете настроить свой браузер так, чтобы он блокировал эти файлы cookie или уведомлял вас о них, но тогда некоторые части сайта не будут работать.


/install-font
# Начинаем цикл
for FILE in *.$EXT; do
# "Меняем" имя файла (расширение)
input=`echo $(basename "$FILE" .$EXT).afm`
output=`echo $(basename "$FILE" .$EXT)`
# Конвертируем
echo "conversion $FILE >> $input"
# Опция +R определяет шрифт Regular, см. ниже комментарий
sudo ./install-font.sh -n -d -P "$DEST" -F $output -f +R $FILE
# Смотрим файлы в директории, это всего лишь удобная фича
input=`ls $DEST/site-font/devps/$output*`
echo "$input"
done
exit 0
Они помогают нам узнать, какие страницы являются наиболее и наименее популярными, и увидеть, как посетители перемещаются по сайту.