Akihiro MOTOKI
motok****@da*****
2011年 10月 25日 (火) 17:06:16 JST
元木です。 立花さん、いろいろありがとうございます。 週末は時間がとれず作業できませんでした。 >>>>> Date: Tue, 25 Oct 2011 07:29:50 +0900 (JST) >>>>> From: "R4000 2.2" <tati****@kc5*****> >>>>> Subject: [JM:00471] Re:SIGNAL(7) の内容に関しまして > > こんにちは、立花@鎌ヶ谷市です。 > #うだうだと書いてますが、、、 > > | | | | が、、、 > | | | | groff.7 > | | | | roff.7 > | | | | groff_tmap.5 > | | | | はマニュアルページ中でマクロ定義しているようで、定義したマクロを > | | | | 使った部分がうまく HTML に変換できていませんでした。 > | | | | > | | | | やっかいですね。 > | | | > | | | 手元環境の man-1.5n同梱の man2html で groff.7 を変換させてみても、 > | | | 定義したマクロを使った部分はやはりうまく変換できていませんでした。 > > 私の環境より、元木さんの gcc の方がバージョンが新しくて、 > 上記ファイルのようにroffファイル内でマクロ定義しているものは > マクロ定義やマクロを使用している部分の解析が破綻して Segmentation Fault > してるのではないかと。 そうですね。 私の環境は Ubuntu 11.04 と 11.10 で、 gcc はそれぞれ 4.5.2 と 4.6.1 です。 gcc のバージョン依存性があるのかもしれませんね。 # 家の環境 (Ubuntu 11.10) では、理由は不明なのですが、gdb で起動すると # SegFault が発生せず、そのまま実行すると SegFault になります。 # さらに別の Ubuntu 11.10 だと正常に実行されてしまいます。 # このあたりの事情でデバッグが止まっています。 > ただ、Segmentation Fault しない man2html であっても独自にマクロ定義 > しているroffファイルはきちんとHTMLに変換できないと思うので、だったら > groff にやらせればと思いました。 > > ただ、groff に -Thtml で変換させると、 > ・htmlファイルの日本語が全部文字コードになって可読性に欠ける > ・イメージファイルが増えてしまう > ・少し試した限りでは、.TS のテーブルも正しくないことがある > のがいまいちだなぁ、と。 根本的な解決策ではないのですが、当面は、 roff の マクロ定義を使っているのは、groff だけなので、 groff の翻訳版の方を通常の roff コマンドに置き換えてしまった方が 早いかなと思い始めました。 これで、JM のサービスであるウェブ上の HTML ページはとりあえず正常に 変換できるようになるので、後は man2html を根本的においかけるのは どうかなと思っています。 > じゃあ groff なり man なりの表示を元に色づけ?して HTML にすれば > 良いのかな、と思いましたがうまい策が思いつきません。 色付け自体は、^B などを置き換えるだけなので、簡単です。 手元にある elisp のプログラムでも同様のことをしています。 > ふと、shellサーバにログインして groff のバージョンを確認してみると、 > > $ groff -v > GNU groff version 1.20.1 > > でした。 > -Tnippon の無いバージョンですね。 そうなんです。 groff 1.20 は一番使いにくいです。 1.21 になったとしても、英語日本語が混じった行で 1行の文字間隔が おかしくなってしまいます。 -- 元木 顕弘 (Akihiro MOTOKI) / システムプラットフォーム研究所 TELNET 8-22-71023, FAX 8-22-60409 〒22-A1231