Грофф игнорирует переносы строк из моей оболочки

Грофф игнорирует переносы строк из моей оболочки

Я использовал groff для создания ps-файлов для печати с флагом -man. Если я хочу преобразовать что-то еще, например, файл заголовка или просто вывод ls -l или другой программы, переносы строк игнорируются, что приводит к беспорядку. Как мне заставить groff видеть и учитывать переносы строк, используемые в оболочке?

Это создает вывод, но вкладки перепутаны:

groff -mom hexd.c > out.ps

Но это портит и табуляции, и переносы строк:

cat hexd.c | groff -mom > out.ps

Мне бы очень хотелось чего-то вроде этого:

man -t gdb | open -f -a preview

Что открывает идеальную версию постскриптума страницы руководства в предварительном просмотре на max os. Кстати, man -tэквивалентно:

groff  -Tps  -mandoc -c

решение1

groffэто язык набора текста, и он ожидает ввода на своем языке, а не простого текста. Вы можете искать что-то вроде enscriptили a2ps(ascii-to-postscript).

решение2

.nfДля «отсутствия заполнения» можно использовать низкоуровневую команду troff.

Например

$ ls -l | sed '1i\
.nf\
.fam C' | groff > out.ps

Макропакеты также имеют свои собственные команды для листинга кода, например .l:-МК.

Связанный контент