man を pdf にする

man 形式のドキュメントを pdf にして印刷したいときは、以下のコマンドで行う。ここでは、gconftool-2のman (/usr/share/man/man1/gconftool-2.1.bz2)を変換する。

$ bzip2 -dc /usr/share/man/man1/gconftool-2.1.bz2 | groff -man | ps2pdf - gconftool-2.pdf

まず最初に、bzip2コマンドで、.bz2形式に圧縮されたファイルを伸長し(-dオプション)をれを標準出力に書き出す。次に、groffコマンドでPostScriptファイルに変換する。groffは標準入力から読み込み、標準出力に出力するパイプ処理を行う。このときのオプション(-man)はmanファイルをPostScriptに変換するためのオプションだけど、実際は、troff の -m コマンドでgroffのマクロan.tmacを指定している。an.tmacは、/usr/share/groff/1.18.1.4/tmac/an.tmacにある。最後のps2pdfはPostScriptをPDFに変換するソフトで、標準入力(-)から読み込み指定されたファイル(gconftool-2.pdf)に書き出す。

他にもよい方法があるかもしれないけど、今のところはこれで十分。日本語ファイルの場合は、nkfを間に入れる必要があるかもしれないし、groffでandocjを指定する必要があるかもしれない。