groff-1.20 で日本語 man を表示する

groff-1.20 だと日本語 man が文字化けするらしい.

groff-1.19 だと日本語 man を読む方法があるので,/etc/portage/package.mask で

>sys-apps/groff-1.20

とかやってる人もみたい.


これじゃ将来的に困ると思うので,groff-1.20 で日本語 man を文字化けしない方法を探した.

方法

とりあえず結論から.

/etc/man.conf の JNROFF を以下のように変更します.

JNROFF          /usr/bin/groff -DeucJP -Tutf8 -mandocj

PAGER はお好きな方にしてあげてください.

PAGER="less -R"
PAGER="lv -c"

これ文字化けはなくなると思います.

レイアウトはちょっとかわいそうな感じですけどね ^^;

あと,たぶん LANG=ja_JP.utf8 な人じゃないとダメです.

LANG=ja_JP.eucJPLANG=ja_JP.sjis な人はそろそろ UTF-8 にしてもいいと思いますよ.

解決に至った流れ

どこかで groff-1.20 には日本語対応 patch がないっていうのを見かけました.

man groff してみると -T には nippon はありません.

なので,これが日本語対応 patch の賜物なのだなぁとわかります.

じゃあ utf-8 には対応しているのかと思って man をもうちょっと眺めてみると,ちゃんとあるじゃないですか.

ってことで -Tutf8 でいいじゃんってことになります.

ちなみに -T は出力のエンコーディングとか形式を指定するオプションです.


出力は OK になったので,次は入力です.

groff-1.19 のときに JNROFFLANG=eucJP を指定しているのに対応する部分ですね.

日本語 man のファイルは eucJP でエンコードされているので,何かしらの方法で eucJP であることを指定する必要があります.

man を眺めてみると -D で入力エンコーディングが指定できるっぽい.

じゃあ -DeucJP だ.


とまぁ,こんな感じで

JNROFF          /usr/bin/groff -DeucJP -Tutf8 -mandocj

になりました.


今度はワイドグリフが含まれててもきれいに表示する方法が知りたいですね!