Groff ignoriert Zeilenumbrüche in meiner Shell

867

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

Dies erzeugt eine Ausgabe, aber die Registerkarten sind durcheinander:

groff -mom hexd.c > out.ps 

Dies führt jedoch sowohl zu Tabulatoren als auch zu Zeilenumbrüchen:

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

Was ich wirklich gerne hätte, ist ungefähr so:

man -t gdb | open -f -a preview 

Dadurch wird eine perfekte Postskriptversion der Manpage in der Vorschau von max os geöffnet. BTW. man -tist äquivalent zu:

groff -Tps -mandoc -c 
1

1 Antwort auf die Frage

3
coneslayer

groffist eine Satzsprache und erwartet Eingaben in ihrer Sprache, nicht in einfachem Text. Möglicherweise suchen Sie nach etwas enscriptoder a2ps(Ascii-to-Postscript).

Es funktioniert für das Übertragen von Manpages, was auch einfach AFAIK ist, es kann neben ps auch HTML erzeugen. Wie auch immer, das führte dazu: "man -t gdb | open -f -a preview" Was die gdb-Manpage in der Vorschau auf Mac os x öffnet. vor 14 Jahren 0
Dies ist aus der groff-Manpage: "BESCHREIBUNG Dieses Dokument beschreibt das groff-Programm, das Haupt-Frontend für das groff-Dokumentformatierungssystem." vor 14 Jahren 0
Die "groff" -Quelle für Manpages ist kein "einfacher" Text. Es ist eine Auszeichnungssprache. Wenn Sie "groff" etwas zuführen, das nicht in der Markup-Sprache ist, wird es nicht richtig aussehen. Es unterscheidet sich konzeptionell nicht so sehr von HTML oder LaTeX, die auch Zeilenumbrüche in der Quelle ignorieren. Hier ist ein Beispiel für die Quelle "groff" für eine Manpage: http://www.freebsd.org/cgi/cvsweb.cgi/src/bin/ls/ls.1?rev=1.100.10.1;content-type=text % 2Flug Wenn Ihre Eingabe für `groff` nicht in etwa so aussieht, wird die Ausgabe wahrscheinlich nicht richtig aussehen. coneslayer vor 14 Jahren 3
Ja, aber auch für Klartext gibt es Zeilenumbrüche, dh \ n, und mit den unzähligen Optionen für Groff und Familie bin ich ziemlich sicher, dass dies möglich ist. Es gibt auch keinen Grund, dass die beiden ersten Beispiele in meinem ersten Beitrag unterschiedlich aussehen sollten. Es sollte keinen Unterschied in der Eingabe geben, die Groff empfängt. Ich habe gerade das zweite dort aufgestellt, um zu emulieren, was ich gerne machen möchte, nämlich Header-Dateien in einem anständigen Format auf meinem Drucker zu drucken. vor 14 Jahren 0
Oder Sie könnten Werkzeuge verwenden, die genau das tun, was Sie möchten, wie die von mir genannten. Was auch immer. coneslayer vor 14 Jahren 0
Richtig, aber es ist etwas befriedigender, etwas zu verwenden, das bereits installiert ist, und eher im Sinne einer Befehlszeile. vor 14 Jahren 0
Ich würde sagen, es ist mehr im Sinne der Kommandozeile, das richtige Werkzeug für den Job zu verwenden. http://developer.apple.com/Mac/library/documentation/Darwin/Reference/ManPages/man1/enscript.1.html coneslayer vor 14 Jahren 1
Nun, das ist ganz anderes Argument. Mein Punkt war die Beziehung zwischen dem Aufbau von etwas aus semantischen Teilen und dem Erhalten einer App für jedes Problem, das gelöst werden muss. Wie auch immer, das, was Sie dort erfunden haben, ist großartig! Danke, Mann. vor 14 Jahren 0