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.eucJP
や LANG=ja_JP.sjis
な人はそろそろ UTF-8 にしてもいいと思いますよ.
解決に至った流れ
どこかで groff-1.20 には日本語対応 patch がないっていうのを見かけました.
man groff
してみると -T
には nippon
はありません.
なので,これが日本語対応 patch の賜物なのだなぁとわかります.
じゃあ utf-8 には対応しているのかと思って man をもうちょっと眺めてみると,ちゃんとあるじゃないですか.
ってことで -Tutf8
でいいじゃんってことになります.
ちなみに -T
は出力のエンコーディングとか形式を指定するオプションです.
出力は OK になったので,次は入力です.
groff-1.19 のときに JNROFF
に LANG=eucJP
を指定しているのに対応する部分ですね.
日本語 man のファイルは eucJP でエンコードされているので,何かしらの方法で eucJP であることを指定する必要があります.
man を眺めてみると -D
で入力エンコーディングが指定できるっぽい.
じゃあ -DeucJP
だ.
とまぁ,こんな感じで
JNROFF /usr/bin/groff -DeucJP -Tutf8 -mandocj
になりました.
今度はワイドグリフが含まれててもきれいに表示する方法が知りたいですね!