日本語 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日 (火) "「、。」の後の英数字を" 追加。 以上。