Bagaimana cara menghasilkan pdf format A4 halaman manual?


6

Saya tahu bahwa man -t ls | open -f -a /Applications/Preview.appmenghasilkan pdf dari halaman manual dari lsperintah.

Tetapi pdf yang diproduksi adalah dalam ukuran US Letter (21,59 cm x 27,94 cm).

Halaman manual manmengatakan bahwa -topsi gunakan secara internal /usr/bin/groff -Tps -mandoc -c.

Jadi, menurut groffpria itu, saya mencoba ini untuk mendapatkan ukuran A4 (21 cm x 29,7 cm) di pdf (ukuran A4 banyak digunakan di Eropa):

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

Saya mendapatkan ukuran A4 seperti yang diinginkan, tetapi formatnya jelek (tidak ada huruf tebal, miring, karakter berlipat ganda, digarisbawahi) ...

Bagaimana cara memformat yang baik (seperti pada perintah pertama) DAN ukuran yang tepat (seperti pada perintah selanjutnya)?

Jawaban:


7

Saat ini Anda menjalankan groff dua kali, sekali sebagai bagian dari man -t, sekali itu sendiri pada file PostScript yang dihasilkan oleh man.

Mencoba

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

atau langsung

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

Untuk membuatnya berfungsi untuk semua halaman manual yang dapat diakses oleh pria, skrip kecil akan membantu.

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

Simpan sebagai manA4, jalankan chmod +x manA4sekali, lalu gunakan sebagai manA4 ls.


Jika Anda bekerja dengan halaman manual terkompresi (yang macOS tidak digunakan secara default), Anda perlu membuka kompresi mereka dengan cepat.

#!/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

Solusi ini tidak berfungsi dengan halaman manual terkompresi.
fd0

@ fd0 Saya merasa tergoda untuk meninggalkan ini sebagai latihan untuk pembaca (terutama karena macOS tidak bekerja dengan halaman manual terkompresi secara default) :-)
nohillside

Benar, tetapi dalam man.conf, /usr/local/share/mandipetakan yang mungkin memiliki halaman manual terkompresi.
fd0

Apakah ps2pdfperintah? Saya melakukan man ps2pdfdan juga memasukkan ps2pdfpada prompt dan mendapatkan pesan kesalahan.
David Anderson

@ Davidvidderson mungkin saya menginstalnya melalui Homebrew atau sebagai bagian dari TeX. Tapi itu tidak diperlukan, Preview dapat membaca dan merender file Postscript secara langsung.
nohillside

2

Sunting /private/etc/man.conf dengan berkomentar di luar baris

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

kemudian tambahkan baris ini

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

Sekarang man -takan menulis file ps dalam ukuran kertas A4.

man -t ls | open .......

Dan jangan lupa untuk mengulangi ini setelah setiap upgrade macOS ...
nohillside
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.