[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[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

-- 
長南洋一