2009年12月26日

[vine-users:079888] Re: [ -](ハイフン)について

長南です。

もうわたし以外、この問題に興味を持っている方はいないようですが、
もう一度だけ続けます。

UTF 環境の man ページでマイナス/ハイフンの表示がおかしくなるのは、
有名な問題だったんですね。「groff man hyphen」を Google で調べたら、
いっぱい出てきました。


わたし流に乱暴にまとめてしまうと、こういうことのようです。

・ '-' 文字は ascii では 0x2d である。これは、マイナスにも
ハイフンにもダッシュにも使われて、非常に曖昧である。

・ ユニコードでは、マイナス、ハイフン、ダッシュに相当すする文字が
いくつもある。

・ そのため、UTF 環境で man のソースを groff (nroff) で整形するとき、
マイナス/ハイフン/ダッシュの処理は頭の痛い問題になっている。

Vine 5.0 では、UTF 環境で英語の man ページを整形するとき、
groff (nroff) はデフォルトでは、'-' (つまり、裸の - ) を
ハイフン (UTF-16: 0x2010、UTF-8: 0xE2 0x80 0x90) に変換し
(ソースに裸の - を書くのは、お行儀が悪いらしいのですが)、
'\-' (バックスラッシュでエスケープされた - ) をマイナス
(UTF-16: 0x2212、UTF-8: 0xE2 0x88 0x92) に変換している。

・ その結果、ターミナル・エミュレータによっては、マイナス/ハイフン
の表示がおかしいことになる。

・ 見かけがおかしいという以上に問題なのは、「-a」といったマイナスの
入った文字列で man ページの検索ができないことである。キーボード
から打ち込むマイナスは 0x2d なので。

・ man ページでマイナス入りの文字列を検索できるようにするため、
たとえば debian では、man ページのソースに出てくる裸の - や、
エスケープされた \- を UTF 環境でも ASCII-compatible HYPHEN-MINUS
(UTF-8: 0x2D) にしている。

Vine 5.0 でも、日本語 man ページについてはそうなっているようです。

対処法としては、わたしが前のメールに書いた方法でも、一応用が足りると
思います。Google で調べたところでは、次のようなやり方もあるそうです。
/usr/share/groff/1.18.1/tmac/troffrc に以下を追加します。

.if '\*[.T]'utf8' \{\
. char - \N'45'
. char \- \N'45'
. char ' \N'39'
.\}

わたしとしては、「. char \' \N'39'」もカッコの中に入れておいた方が
よいのではないかと思います。なお、上の指定は /usr/share/groff/
site-tmac の man.local と mdoc.local に記述してもよさそうです。
完璧な解決法ではないらしいですけれど。

--
長南洋一


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




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