日本語 groff-1.18.1 の修正点
					    03 版 平成21年(2009年)04月07日 (火)
						作成 小金丸信幸

1) 「、」や「。」の後の改行に続く英数字の前に空白を入れない
    現在の groff は、次のようなマニュアル (cp.1) で groff を実行すると、

    ---- ここから ----
    1 番目の書式の場合、
    .Nm
    は、
    .Ar source_file
    の内容を
    .Ar target_file
    にコピーします。
    ---- ここまで ----

    出力は、次のように、
    ---- ここから ----
    1 番目の書式の場合、 cp は、 source_file の内容を target_file にコピーし
    ---- ここまで ----

    「、」や「。」の後の改行に続く英数字の前に空白が入ってしまいます。
    これを入らないようにしました。次のようになります。

    ---- ここから ----
    1 番目の書式の場合、cp は、source_file の内容を target_file にコピーしま
    ---- ここまで ----

2) 「(」 と 「``」 等に対する行末禁則処理
    現在の groff は、日本語 (〔[{「『【 に対しての行末禁則処理は、行っ
    ていますが、ASCII 文字 ( や `` 等の行末禁則処理が未完成です。

    これを、可能としました。
    これらの行末禁則処理の対象となる文字は、euc-jp.tmac
    ファイルで指定できます。

3) 日本語イタリック体指定の前に空白を入れない
    現在の groff では、.I、.Em や .Ar のような英文では、イタリック体となる
    文字の所に日本語を入れると前の行が日本語の場合、必ず空白が入ってしまい
    ます。次は、cvs.1 のマニュアルの一部です。

    ---- ここから ----
    .TP
    .B \-Q
    は、コマンドを
    .I 真に
    寡黙にします。
    コマンドは深刻な問題についてのみ出力を行います。
    ---- ここまで ----

    次のようになります。

    ---- ここから ----
	   -Q     は、コマンドを 真に寡黙にします。コマンドは深刻な問題についての
		  み出力を行います。
    ---- ここまで ----

    これを、

    ---- ここから ----
	   -Q     は、コマンドを真に寡黙にします。コマンドは深刻な問題についてのみ
		  出力を行います。
    ---- ここまで ----

    にします。

4) 「、。」の後の英数字
    古い ja-groff からある問題ですが、日本語の「、。」の後に英数字が続くと
    「、。」の後で改行できません。もちろん「、。」 が行の末尾であれば、改行
    はできます。これを、末尾でなくても改行できるように修正しました。

    例えば、次のような、記述があった場合、
    ---- ここから ----
    ライブラリは、現在のユーザがスーパユーザ (root) である場合か、
    あるいはアプリケーションが setuid または setgid の許可を使用する場合に、
    次の変数を無視するために設定できます。
    $TERMINFO、$TERMINFO_DIRS、$TERMPATH、$HOME と同様に。
    ---- ここまで ----

   従来の ja-groff では次のようになります。
    ---- ここから ----
	   ライブラリは、現在のユーザがスーパユーザ (root) である場合か、あるいは
	   アプリケーションが setuid または setgid の許可を使用する場合に、次の変
	   数を無視するために設定できます。
	   $TERMINFO、$TERMINFO_DIRS、$TERMPATH、$HOME と同様に。
    ---- ここまで ----

   これは、「 $TERMINFO、$TERMINFO_DIRS、$TERMPATH、$HOME 」が区切ることが
   できない 1 つ単語となり、次の行に表示されたものです。
   修正後の ja-groff では、次のようになります。
    ---- ここから ----
	   ライブラリは、現在のユーザがスーパユーザ (root) である場合か、あるいは
	   アプリケーションが setuid または setgid の許可を使用する場合に、次の変
	   数を無視するために設定できます。$TERMINFO、$TERMINFO_DIRS、$TERMPATH、
	   $HOME と同様に。
    ---- ここまで ----

   もう一つの記述例は、
    ---- ここから ----
    .It Dv test
    ファイル中の値と比較される値。
    タイプが数値であるなら、この値は、C 形式で指定されます。
    それが文字列あるなら、通常許されるエスケープをつけて
    (例えば、改行の \en) C 文字列として指定されます。
    ---- ここまで ----

   従来の ja-groff では次のようになります。
    ---- ここから ----
	 test     ファイル中の値と比較される値。タイプが数値であるなら、この値
		  は、C 形式で指定されます。それが文字列あるなら、通常許されるエス
		  ケープをつけて (例えば、改行の \n) C 文字列として指定されます。
    ---- ここまで ----

   これは、「この値は、」と入れられる十分な余白があるにもかかわらず、
   「、」と "C" を区切ることができず、「、」の禁則処理のために前の文字の
   「は」も含めて次の行に置かれたものです。
   修正後の ja-groff では、次のようになります。
    ---- ここから ----
	 test     ファイル中の値と比較される値。タイプが数値であるなら、この値は、
		  C 形式で指定されます。それが文字列あるなら、通常許されるエスケー
		  プをつけて (例えば、改行の \n) C 文字列として指定されます。
    ---- ここまで ----

5) その他、LANG 環境変数
    LANG 環境変数が ja_JP.EUC でもコアダンプせずに実行できるようにしました。

6) 今後

    o 英語のイタリック体指定が tty の場合に下線を付けて表示されますが、
      (jless での表示で) 日本語でも下線を付けるようにする予定です。
    o 最新の groff は、groff-1.19.2 ですが、日本語化されていません。
      ソースファイルは、1.18.2 とほとんど同じで、日本語化の修正をしましたが、
      PostScript 出力の一部分が修正が困難となっています。
    o groff-1.19.2 の日本語化するには、マクロの部分も修正する必要があり、
      手間が掛かります。


6) 改版履歴
    01 版 平成20年(2008年)11月26日 (水)
    02 版 平成20年(2008年)12月31日 (水)
	ASCII の行末禁則処理の対象を euc-jp.tmac で指定できるように変更。
    03 版 平成21年(2009年)04月07日 (火)
	"「、。」の後の英数字を" 追加。
以上。