[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/