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

[debian-devel:14372] Re: groff Japanese support breaks PS output for latin2



どうも。久保田です。

At Sun, 8 Jul 2001 21:14:15 +0900,
Taketoshi Sano <kgh12351@xxxxxxxxxxx> wrote:

>  groff@xxxxxxxx ML で拾った情報によると、
>  groff の Japanese support patch で euc-jp の範囲にある
> 文字が wchar として認識されてしまうために latin2 な文字を
> 含む文書を PS 出力すると文字化けしてしまうという問題が
> 生じているようです。
> 
>  Japanese support を on/off するための runtime switch が
> 必要ではないでしょうか。


ad-hoc なやっつけ仕事から将来を見越した改良まで、何段階かの方法が
考えられます。

まず、いちばん ad-hoc なのは、src/include/eucmac.h のなかに
2箇所ある、

  if ( device ) {
       if ((strncmp(device, "latin1", 6) == 0) ||
           (strncmp(device, "ascii8", 6) == 0)) {
               return(0);
       }
  }

を、

  if ( device ) {
       if (strncmp(device, "nippon", 6) != 0) {
               return(0);
       }
  }

と変えてしまうことです。これにより、日本語は -Tnippon デバイスで
しか使えないようになります。ただし、この方法は、PS や DVI などで
日本語が使えなくなってしまうという問題があります。


次は、2 バイト文字判別用のコマンドオプションの新設です。
上記 eucmac.h では、device の判別ではなく、そのオプションが
指定されたかどうかで判別するようにします。ただし、この方法は、
混乱している groff のオプション指定 (デバイスタイプと
エンコーディングの指定がごっちゃになっている) をますます混乱
させてしまう、という問題があります。


次は、現存する -Tascii, -Tascii8, -Tlatin1, -Tnippon, -Tutf8 を
すべて -Ttty に統一してしまい、エンコーディング用にもうひとつ
コマンドオプションを新設するというものです。このあたりから、
upstream の協力が必要になり (というか、たぶん upstream に
おんぶにだっこ)、長期的な展望が必要になります。


最終案は、ぜんぜん仕事が進んでいないですが、groff 内部コードの
Unicode 化です。これは、いつになるかわかりません。


いま考えているのは、いちばん ad-hoc な案です。とりあえず、「日本語
パッチのせいで使えなくなってしまったじゃないか」というふうなことになり、
ひいては日本語サポート/パッチ一般に対する敵視というか関わりたく
ないというふうな雰囲気が生まれたりしないかということが、心配なので。

ただし、PS、DVI、X75、X100、HTML などで日本語が使えなくなります。
これって、必要でしょうか?

---
久保田智広 Tomohiro KUBOTA <kubota@debian.org>
http://www.debian.or.jp/~kubota/
"Introduction to I18N"  http://www.debian.org/doc/manuals/intro-i18n/