$ eix -I groff [I] sys-apps/groff Available versions: 1.20.1-r1 ~1.20.1-r2 ~1.20.1-r3 {X examples linguas_ja} Installed versions: 1.20.1-r1(23時28分43秒 2010年10月22日)(-X -examples -linguas_ja) Homepage: http://www.gnu.org/software/groff/groff.html Description: Text formatter used for man pages $ man groff 2>&1 | grep -nPi "utf8|\\-[TD]" 10: [ -Fdir ] [ -Idir ] [ -Tdev ] [ -ffam ] [ -Mdir ] [ -dcs ] 33: utf8 UTF-8 エンコーディングの Unicode (ISO 10646) 文字集合を利用する 59: -t tbl を使って前処理を行います。 93: -Tdev デバイス dev 用に出力します。デフォルトのデバイスは ps です。 97: Print アクションを実行させます。 -Tps 以外が指定されている場合は、よい結果が得られません。 115: -dcs 155: EBCDIC ホストにおいては、出力デバイス ascii, latin1, utf8 は使用不可です。 同様に、 cp1047 は ASCII 162: groff -mandoc -Tlatin1 foo.1 | less 166: groff -m mandoc -Tlatin1 foo.1 | less $ groff -h | grep -Pi "^\\-[DkT]|encoding" -k preprocess with preconv -t preprocess with tbl -Tdev use device dev -dcs define a string c as s -Karg use arg as input encoding. Implies -k -Darg use arg as default input encoding. Implies -k $ man preconv 2>&1 | grep -ni euc 108: big5, cp1047, euc-jp, euc-kr, gb2312, iso-8859-1, iso-8859-2, 115: ascii, chinese-big5, chinese-euc, chinese-iso-8bit, cn-big5, 117: cyrillic-iso-8bit, cyrillic-koi8, euc-china, euc-cn, euc-japan, 118: euc-japan-1990, euc-korea, greek-iso-8bit, iso-10646/utf8, 120: iso-latin-7, iso-latin-9, japanese-euc, japanese-iso-8bit, jis8, 121: koi8, korean-euc, korean-iso-8bit, latin-0, latin1, latin-1, $ grep ^JNROFF /etc/man.conf JNROFF /usr/bin/nkf -e | /usr/bin/groff -Deuc-jp -Tutf8 -mandoc $ man ls 2>&1 | nkf -g UTF-8 $ man useradd 2>&1 | nkf -g UTF-8
よく見ると横幅がオーバーしているのに、文字の間に隙間があります。
groff を新しくして groff-1.19 の設定にしたところ、動きました。
cjk => linguas_ja になっていて groff-1.20.1-r1 の時には設定をしても off でした。
$ sudo ACCEPT_KEYWORDS="~x86" emerge -av sys-apps/groff ... $ eix groff [D] sys-apps/groff Available versions: 1.20.1-r1 ~1.20.1-r2 ~1.20.1-r3 {X examples linguas_ja} Installed versions: 1.20.1-r3(15時18分07秒 2010年10月23日)(linguas_ja -X -examples) Homepage: http://www.gnu.org/software/groff/groff.html Description: Text formatter used for man pages $ grep ^JNROFF /etc/man.conf JNROFF /usr/bin/nkf -e | LANG=ja_JP.EUC-JP LC_ALL=ja_JP.EUC-JP /usr/bin/groff -Tnippon -mandocj | /usr/bin/nkf -w $ grep -i linguas /etc/make.conf LINGUAS="ja"
manコマンド自体の日本語がEUC-JPの場合の修正の例1。英語にする。
$ echo "sys-apps/man -nls" >> /etc/portage/package.use
manコマンド自体の日本語がEUC-JPの場合の修正の例2。エラー出力をutf8にする。
$ alias man='LANG=C LC_ALL=C /usr/bin/man' $ cat /usr/local/bin/jaman #!/bin/sh # http://www.netfort.gr.jp/~tomokuni/lms/shell/text/shell3.txt # 1.2 標準エラー出力のみをパイプ => (例 3) => を適用 BUF="`LANG=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8 /usr/bin/man $@ 3>&1 1>&2 2>&3 3>&-`" RET="$?" if [ -n "$BUF" ]; then echo "$BUF" | nkf -w 1>&2 if [ "$RET" -eq 0 ]; then echo fi fi exit "$RET" $ jaman どのマニュアルを表示しますか? $ jaman xxx xxx のマニュアルはありません。 $ jaman -h man, バージョン 1.6f ...