Groff ignoriert Zeilenumbrüche aus meiner Shell

Groff ignoriert Zeilenumbrüche aus meiner Shell

Ich habe groff verwendet, um PS-Dateien zum Drucken mit dem Flag -man zu erstellen. Wenn ich etwas anderes konvertieren möchte, beispielsweise eine Header-Datei oder nur die Ausgabe von ls -l oder einem anderen Programm, werden die Zeilenumbrüche ignoriert, was ein Durcheinander verursacht. Wie kann ich groff dazu bringen, die in der Shell verwendeten Zeilenumbrüche zu erkennen und zu respektieren?

Dies führt zu einer Ausgabe, aber die Registerkarten sind durcheinander:

groff -mom hexd.c > out.ps

Dies führt jedoch zu Problemen mit Tabulatoren und Zeilenumbrüchen:

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

Was mir wirklich gefällt, ist so etwas wie das hier:

man -t gdb | open -f -a preview

Dadurch wird eine perfekte Postscript-Version der Manpage in der Vorschau auf Max OS geöffnet. man -tIst übrigens gleichbedeutend mit:

groff  -Tps  -mandoc -c

Antwort1

groffist eine Satzsprache und erwartet Eingaben in ihrer Sprache, nicht in reinem Text. Möglicherweise suchen Sie nach etwas wie enscriptoder a2ps(ASCII-zu-Postscript).

Antwort2

.nfSie können den Low-Level -Befehl troff für „kein Füllen“ verwenden .

Z.B

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

Die Makropakete verfügen auch über eigene Befehle für Codeauflistungen, wie zum Beispiel .lin-mk.

verwandte Informationen