
Я использовал 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
:-МК.