Ich weiß, man -t ls | open -f -a /Applications/Preview.app
dass eine PDF-Datei der Manpage des ls
Befehls erstellt wird.
Das erzeugte PDF ist jedoch im US-Letter-Format (21,59 cm x 27,94 cm).
Die Manpage von man
besagt, dass die -t
Option intern verwendet wird /usr/bin/groff -Tps -mandoc -c
.
Also, laut dem groff
Mann, habe ich das versucht, um das A4-Format (21 cm x 29,7 cm) im PDF zu erhalten (A4-Format ist in Europa weit verbreitet):
man -t ls | /usr/bin/groff -Tps -mandoc -c -P-pa4 | open -f -a /Applications/Preview.app
.
Ich erhalte wie gewünscht das A4-Format, aber die Formatierung ist unschön (kein Fett, Kursiv, Zeichen verdoppelt, Unterstrich)...
Wie bekommt man die gute Formatierung (wie im ersten Befehl) UND die richtige Größe (wie im späteren Befehl)?
Im Moment führen Sie groff zweimal aus, einmal als Teil von man -t
, einmal allein für die von generierte PostScript-Datei man
.
Versuchen
groff -Tps -mandoc -c -P-pa4 /usr/share/man/man1/ls.1 >out.ps
ps2pdf out.ps man-ls.pdf
open man-ls.pdf
oder direkt
groff -Tps -mandoc -c -P-pa4 /usr/share/man/man1/ls.1 |
open -f -a /Applications/Preview.app
Damit es für alle für Menschen zugänglichen Manpages funktioniert, hilft ein kleines Skript.
#!/bin/sh
page=$(man -W $1)
if [ -r "$page" ]; then
groff -Tps -mandoc -c -P-pa4 "$page" | open -f -a Preview.app
fi
Speichern Sie es als manA4
, führen Sie es chmod +x manA4
einmal aus und verwenden Sie es dann als manA4 ls
.
Falls Sie mit komprimierten Manpages arbeiten (die macOS standardmäßig nicht verwendet), müssen Sie diese spontan dekomprimieren.
#!/bin/bash
page=$(man -W $1)
if [ -r "$page" ]; then
if [[ "$page" =~ .*.gz$ ]]; then
gzcat "$page" | groff -Tps -mandoc -c -P-pa4 | open -f -a Preview.app
else
groff -Tps -mandoc -c -P-pa4 "$page" | open -f -a Preview.app
fi
fi
Bearbeiten Sie /private/etc/man.conf, indem Sie die Zeile auskommentieren
TROFF /usr/bin/groff -Tps -mandoc -c
fügen Sie dann diese Zeile hinzu
TROFF /usr/bin/groff -Tps -mandoc -c -P-pa4
Jetzt man -t
werden PS-Dateien in A4-Papiergröße geschrieben.
man -t ls | open .......
fd0
kein Hang
fd0
man.conf
ist/usr/local/share/man
abgebildet, was komprimierte Manpages haben kann.David Anderson
ps2pdf
ein Befehl? Ich mache einman ps2pdf
und gebe auchps2pdf
an einer Eingabeaufforderung ein und erhalte Fehlermeldungen.kein Hang