Domanda:
Come produrre un pdf in formato A4 di una pagina man?
quark67
2017-10-28 03:08:52 UTC
view on stackexchange narkive permalink

So che man -t ls |open -f -a /Applications/Preview.app produce un pdf della pagina man del comando ls .

Ma il pdf prodotto è in formato US Letter (21,59 cm x 27,94 cm).

La pagina man di man dice che l'opzione -t usa internamente / usr / bin / groff -Tps -mandoc -c .

Quindi, secondo l'uomo groff , ho provato questo per ottenere il formato A4 (21 cm x 29,7 cm) nel pdf (il formato A4 è ampiamente utilizzato in Europa):

man -t ls |/ usr / bin / groff -Tps -mandoc -c -P-pa4 |open -f -a /Applications/Preview.app .

Ottengo il formato A4 come desiderato, ma la formattazione è brutta (niente grassetto, corsivo, caratteri raddoppiati, sottolineati) ...

Come avere una buona formattazione (come nel primo comando) E la giusta dimensione (come nel comando successivo)?

Due risposte:
nohillside
2017-10-28 03:49:37 UTC
view on stackexchange narkive permalink

In questo momento stai eseguendo groff due volte, una volta come parte di man -t , una volta nel file PostScript generato da man .

Prova

  groff -Tps -mandoc -c -P-pa4 /usr/share/man/man1/ls.1 >out.ps
ps2pdf out.ps man-ls.pdf
apri man-ls.pdf
 

o direttamente

  groff -Tps -mandoc -c -P-pa4 /usr/share/man/man1/ls.1 |
    open -f -a /Applications/Preview.app
 

Per farlo funzionare per tutte le pagine man accessibili all'uomo, un piccolo script aiuterà.

  #! / bin / sh
pagina = $ (man -W $ 1)
se [-r "$ pagina"]; poi
    groff -Tps -mandoc -c -P-pa4 "$ page" | open -f -a Preview.app
fi
 

Salvalo come manA4 , esegui chmod + x manA4 una volta, quindi usalo come manA4 ls .


Se stai lavorando con pagine man compresse (che macOS non usa di default) devi decomprimerle al volo.

  #! / bin / bash
pagina = $ (man -W $ 1)
se [-r "$ pagina"]; poi
    if [["$ page" = ~. *. gz $]]; poi
        gzcat "$ page" | groff -Tps -mandoc -c -P-pa4 | open -f -a Preview.app
    altro
        groff -Tps -mandoc -c -P-pa4 "$ page" | open -f -a Preview.app
    fi
fi
 
Questa soluzione non funziona con le pagine man compresse.
@fd0 Mi sono sentito tentato di lasciare questo come esercizio al lettore (soprattutto perché macOS non funziona con le pagine man compresse per impostazione predefinita) :-)
Vero, ma in `man.conf`, è mappato` / usr / local / share / man` che potrebbe avere pagine man compresse.
`Ps2pdf` è un comando?Faccio un `man ps2pdf` e digito anche` ps2pdf` al prompt e ricevo messaggi di errore.
@DavidAnderson forse l'ho installato tramite Homebrew o come parte di TeX.Ma non è comunque necessario, Preview può leggere e visualizzare direttamente i file Postscript.
fd0
2017-10-29 20:04:54 UTC
view on stackexchange narkive permalink

Modifica /private/etc/man.conf commentando la riga

  TROFF / usr / bin / groff -Tps -mandoc -c
 

quindi aggiungi questa riga

  TROFF / usr / bin / groff -Tps -mandoc -c -P-pa4
 

Ora man -t scriverà file ps in formato carta A4.

  man -t ls |Aperto .......
 
E non dimenticare di ripeterlo dopo ogni aggiornamento di macOS ...


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...