2011年12月 2日

[debian-users:55803] Re: [Q]日本語manページのレンダリングで困ってます...

長南です。

野島さんのメールより [debian-users:55797]
>
> [Q1] 添付のmanページの原稿をdebian sid付属のman (man-db 2.6.0.2-3)でレン
> ダリングしてみたのですが、どうやっても画面サイズにあわせて適切に改行され
> なくて困ってます。
>   やってみたコマンド: man ./dh.ja.1

>
> [Q2] man がダメならひょっとしてgroffでmandocかぁーっと思いたち、
>
> やってみたコマンド: groff -mandoc -Tutf8 ./dh.ja.1 | lv
>
> してみましたが、なぜか文字化け&やっぱり改行されないという事で困っ
> てます。
> (groff-base version 2.6.0.2-3)

鍋太郎さんもおっしゃっていますが、定位置にない日本語の man page に
対して、man ./hoge.1 や man -l hoge.1 をやったときと、定位置にある
日本語 man page を読むときでは、man コマンドの処理が微妙に違う
ようですね。

わたしは、squeeze に sid の groff (1.21-4) を入れて使っているので、
事情が違うかもしれませんが、定位置以外にある日本語の man page を
読むときは、以下のようなスクリプトを使っています。

$ cat myman
#/bin/sh

case "$1" in
-*) file=$2 ;;
*) file=$1
esac

case "$file" in
*.gz) cmd=zcat ;;
*) cmd=cat
esac

(echo .mso ja.tmac && $cmd $file) |/usr/bin/zsoelim |
/usr/lib/man-db/manconv -f UTF-8:EUC-JP -t UTF-8//IGNORE |
preconv -e UTF-8 | tbl | groff -mandoc -Tutf8 |lv -c

# 最後の三行は実際には一行に書いています。こんなふうな三行でも大丈夫だ
# と思いますが。

squeeze で man -d ls 2>&1 >/dev/null |less を実行して、出てきた情報から、
コマンドを取り出したものです。sid で同じことをやっても、使っている
コマンドの情報は表示されませんでした。

squeeze では「<standard input>:69: warning [p 1, 6.0i]: cannot adjust line」
といった warning が出るので、実際にはこんなふうに使っています。

$ myman hoge.ja.1 2>/dev/null

--
長南洋一


投稿者 xml-rpc : 2011年12月 2日 14:09
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/107693
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。