Отображение символов орбитальных узлов в макросах groff ms

Вопрос или проблема

Отображение символов орбитальных узлов в макросах groff ms

Я пытаюсь отобразить символы для восходящих и нисходящих орбитальных узлов (☊ и ☋) в groff, однако при экспорте документа в PostScript они просто не отображаются.

Чтобы добавить необычные символы в документ PostScript с помощью groff, нужно проделать довольно много работы. Сначала необходимо выбрать шрифт, который содержит данный символ. Использование Google для поиска названия и тега unicode может помочь найти, например, вот этот сайт, который сообщает, что, например, этот символ присутствует в шрифте DejaVuSans-Bold, который у меня есть на системе в формате ttf.

В наши дни, вероятно, вы сможете легче найти установленный шрифт, используя команду

fc-list :charset=260A

Вам нужно конвертировать ttf в формат, необходимый для groff. Я создал директорию /tmp/font/devps и в ней выполнил

ttf2pt1 -a -e /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf DejaVuSans-Bold

где ttf2pt1 came был из пакета с таким же названием на моей системе. Это создало файлы DejaVuSans-Bold.afm и DejaVuSans-Bold.pfa. Их нужно дополнительно конвертировать с помощью

afmtodit DejaVuSans-Bold.afm textmap DejaVuSans-Bold

где afmtodit поступил из пакета groff-perl. Это создало файл DejaVuSans-Bold, который теперь можно использовать в groff командой

.ft DejaVuSans-Bold

при условии, что вы сказали ему и gv, где его искать, выполнив

export GROFF_FONT_PATH=/tmp/font
export GS_FONTPATH=/tmp/font

перед запуском groff -Tps. Вам также нужно сослаться на символ по его юникодовому значению в исходном тексте, например:

здесь \[u260A] там

(Если ваш входной файл в utf-8, возможно, вы сможете выполнить это преобразование, добавив опцию groff -K utf-8, которую я не пробовал).
Вот набор команд, который сработал для меня (возможно, вам нужно будет изменить путь к файлу ttf):

mkdir -p /tmp/font/devps
cd /tmp/font/devps
ttf2pt1 -a -e /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf DejaVuSans-Bold
afmtodit DejaVuSans-Bold.afm textmap DejaVuSans-Bold
export GROFF_FONT_PATH=/tmp/font
groff -Tps >text.ps <<\!
.ps 20
.vs 24
.ft DejaVuSans-Bold
здесь \[u260A] там
!
export GS_FONTPATH=/tmp/font
gv text.ps

Есть продолжение этого ответа в другом посте с участием eqn.
скриншот вывода gv

Ответ или решение

Для отображения символов восходящих (☊) и нисходящих (☋) орбитальных узлов в groff с использованием макросов ms, необходимо выполнить несколько шагов, чтобы правильно настроить обработку этих символов и обеспечить их вывод в формате PostScript. Вот полное руководство по этому процессу:

Шаг 1: Выбор и установка шрифта

Для начала необходимо выбрать шрифт, который поддерживает нужные символы. Например, шрифт DejaVuSans-Bold содержит символы ☊ и ☋. Убедитесь, что вы установили необходимые пакеты, такие как ttf2pt1 и groff-perl, которые нам понадобятся.

Шаг 2: Конвертация шрифта

Создайте директорию для шрифтов, например, /tmp/font/devps, и перейдите в нее:

mkdir -p /tmp/font/devps
cd /tmp/font/devps

Затем выполните команду для конвертации .ttf файла в нужный формат:

ttf2pt1 -a -e /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf DejaVuSans-Bold

Это создаст два файла: DejaVuSans-Bold.afm и DejaVuSans-Bold.pfa.

Шаг 3: Подготовка к работе с groff

Теперь вам нужно конвертировать afm-файл в формат, который сможет распознать groff:

afmtodit DejaVuSans-Bold.afm textmap DejaVuSans-Bold

После выполнения этого шага у вас будет файл DejaVuSans-Bold, который можно использовать в groff.

Шаг 4: Настройка переменных окружения

Чтобы groff и Ghostscript могли найти ваш шрифт, установите соответствующие переменные окружения:

export GROFF_FONT_PATH=/tmp/font
export GS_FONTPATH=/tmp/font

Шаг 5: Подготовка документа groff

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

groff -Tps > text.ps <<\!
.ps 20
.vs 24
.ft DejaVuSans-Bold
здесь \[u260A] там
!

Дополнительные параметры

Если ваш входной файл сохраняется в UTF-8, вы можете попробовать использовать опцию -K utf-8 для groff:

groff -K utf-8 -Tps > text.ps <<\!
.ps 20
.vs 24
.ft DejaVuSans-Bold
здесь \[u260A] там
!

Шаг 6: Просмотр результата

После генерации файла text.ps, откройте его с помощью gv или другой программы для просмотра PostScript:

gv text.ps

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...