Groff игнорирует разрывы строк из моей оболочки

771

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

Который открывает идеальную пост-версию сценария man-страницы в превью на max os. КСТАТИ. man -tэквивалентно:

groff -Tps -mandoc -c 
1

1 ответ на вопрос

3
coneslayer

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

Он работает для переноса man-страниц, что также является простым AFAIK, он также может кроме ps также создавать html. В любом случае, это привело к следующему: «man -t gdb | open -f -a preview», которое открывает man-страницу gdb в режиме предварительного просмотра на Mac OS X. 14 лет назад 0
Это со страницы руководства groff: «ОПИСАНИЕ В этом документе описывается программа groff, основной интерфейс системы форматирования документов groff». 14 лет назад 0
Источник `groff` для manpages не является" простым "текстом. Это язык разметки. Если вы кормите `groff` чем-то, чего нет на языке разметки, это не будет выглядеть правильно. Концептуально это не сильно отличается от HTML или LaTeX, которые также игнорируют разрывы строк в источнике. Вот пример источника `groff` для man-страницы: http://www.freebsd.org/cgi/cvsweb.cgi/src/bin/ls/ls.1?rev=1.100.10.1;content-type=text % 2Fplain Если ваши входные данные для `groff` не выглядят примерно так, результат, вероятно, не будет выглядеть правильно. coneslayer 14 лет назад 3
Да, но даже в простом тексте есть разрывы строк, т.е. \ n, и с множеством опций для groff и family я уверен, что это возможно. Кроме того, нет никаких причин, по которым два первых примера в моем первом посте должны выглядеть по-разному. Не должно быть никакой разницы во входных данных, которые получает groff. Я просто установил второй там, чтобы подражать тому, что я хотел бы сделать, напечатать файлы заголовков на моем принтере в приличном формате. 14 лет назад 0
Или вы можете использовать инструменты, которые предназначены для того, чтобы делать то, что вы хотите, например, те, которые я упоминал. Без разницы. coneslayer 14 лет назад 0
Да, но более приятно использовать что-то, что уже установлено, а также больше в духе использования командной строки. 14 лет назад 0
Я бы сказал, что больше в духе командной строки использовать правильный инструмент для работы. http://developer.apple.com/Mac/library/documentation/Darwin/Reference/ManPages/man1/enscript.1.html coneslayer 14 лет назад 1
Ну, это совершенно другой аргумент. Моя точка зрения заключалась в связи между построением чего-либо из семантических частей и получением приложения для каждой проблемы, которую необходимо решить. Во всяком случае, то, что вы придумали там, прекрасно! Спасибо чувак. 14 лет назад 0

Похожие вопросы