作者: davi
日時: 2009/2/27(19:24)
みずはのぶおさん みなさん <  こん??は でび です

On Tue, 24 Feb 2009 16:00:03 +0900 (JST)
laoshu_1960@... (みずはのぶお) wrote:

>  1)発端は常用漢字を正字体に変換する必要が出てきた

私は門外なので、いまだに信じられませんが、日中学会の
論文誌では引用文以外の所も全部いわゆる正字体で統一
して印刷するらしいですね。

「え!? 論文著者の地の文も、繁体字の引用文も、簡体字の
引用文も全部ですか?」

って聞いたら、

「そうだよ。活字の混植をすると、校正とかで大騒ぎになるから。」

と聞いて、なるほどと納得した次第。

でもでも、引用した典拠の年号はどうするんでしょうね?

西暦で統一するのが楽そうですけど。
国内は、明治・大正・昭和で、中国は清の年号で、途中から
大陸についても民国暦で、蒋介石が台湾に移ってからは大陸の
刊行物は西暦とし、台湾の刊行物は民国暦なんですか?

今の大陸中国は、憲法の中で、西暦で統一することを明記して
いますけど、清代の回回(イスラム教徒)の研究している人は
それでい〜のか?とか気になります。
(最近、清代の回回で水浴び好きの変人のコトが書かれている
本を読みました。書名は失念。)

日本が太陽暦で中国が太陰暦である状態がしばらく続き
ましたが、その場合、日付はどう書くべきなんだろうか?

ユリウス通日で書けば絶対正確な表記になるはずだけど、
それじゃほとんどの研究者には意味すら通じないだろうし…

とか、色々と気になって仕方ないです。

> 以前、木村さんが紹介してくださったxyzzyを使っています。

「やるきのない…」のエディタですか。
キー操作には、すぐに慣れましたか?

> 感謝しています。ただでびさんは、常用されている漢字に異体
> 字があれば、機械的にそれに変更されており、

JISの第1/第2水準時代につくったやつでしたっけ?

あれ、当初は単語毎の校正をしようとは思ったのですが、
この単語の場合はこっちの旧字がフツーでしょ、ってのに
各人で揺れが出てしまうのと、「同音による書き換えの漢字」
の存在を気にしだしたら、単語レベルではもうダメだ、と
断念して、複数種出るから、その中からお好みでどうぞ、
という風に割り切ったのでした。すみません。

>  2)この過程でutf8ファイルのデータをフィールドソートで
> きる益山健さんのsortlとRubyを使った方法を知りました。
>  
>  http://www.massangeana.com/mas/archive/archive.htm
>  http://www003.upp.so-net.ne.jp/NAMBOKU/ruby/ruby0242.html

sortlは便利なんですけど、基本、文字コード順なんですよ。
仮名については、電話帳順も実装していますけど、Unicodeの場合、

基本ラテン文字
ラテン1補助
ラテン文字拡張A
ラテン文字拡張B
IPA拡張

とあって、途中を大幅に中略しますけど、漢字は

2E80〜 CJKの部首補助
2F00〜 康熙部首
2FF0〜 漢字構成記述文字,IDC
(中略)
3190〜 漢文用記号(その他のCJK文字)
31C0〜 CJK Strokes
(中略)
3200〜 囲みCJK文字・月
3300〜 CJK互換用文字
3400〜 CJK統合漢字拡張A
(中略)
4E00〜 CJK統合漢字
(中略)
F900〜 CJK互換漢字
(中略)
20000〜 CJK Unified Ideographs Extension B
2F800〜 CJK Compatibility Ideographs Supplement

と、分散しています。

更に、その間に仮名文字などが入っています。

最低限、

2F00〜 康熙部首
2E80〜 CJKの部首補助
4E00〜 CJK統合漢字
F900〜 CJK互換漢字
3400〜 CJK統合漢字拡張A
20000〜 CJK Unified Ideographs Extension B
2F800〜 CJK Compatibility Ideographs Supplement

をいったん全部、部首画数順に並べ直しして、更に、
最低限、JIS X 0123搭載分のアルファベットと記号類
も網羅しているテーブルを作らないと、ちゃんとした
部首画数順のSORTはできないことになります。

要するに、Massangeanaさんが大昔に公開なさっていた
XKDIC.EXEのUnicodeサロゲート対応版がほしい、って
ことなんですけど、テーブル作るだけでも大変だなぁ…と。

--------------------------------

> ご存じのように「芸」をどんなときでも「藝」に変換できるわ
> けではありませんので)。

そうそう。そういうのが多くて面倒なんですよね。

せっかくですから、少しここから話題を広げます。

例えば「芸」の場合は「芸亭(うんてい)」とか「芸艸」「芸草」
のような植物を示す場合以外は、だいたいは「藝」で良いはず
ですよね。

すると、sedだと、(順番を気にしながら)

s/芸/藝/g
s/藝亭/芸亭/g

と、チャンと置換すれば、物足りることになります。

しかし、いくら「順番を気に」していても、思わぬところで
二重置換されてしまったりして、意図通りの結果が出ない
場合があります。

例えば、簡体字だと「穀」は全部「谷」に統一してしまい
ますね。すると、それを繁体字に戻そうとして

s/谷/穀/g

とだけしてしまうと、「硅谷」のような「谷間」の
字義についてまで、「硅穀」と置換されてしまって
困ります。

穀物の意味であり、なおかつ「谷」になってしまって
いる単語を列挙した辞書を作って、

s/谷([倉物類])/穀$1/g

みたいにしないとダメですね。
しかし、[倉物類]の部分の「倉」が、それ以前の置換定義で
既に例えば「藏」などの字に置換されていた場合は、

s/谷([倉物類])/穀$1/g

の定義は無意味になります。

すると、バッドノウハウで

s/倉/藏/g
(例えば100行分の定義を中略)
s/谷([藏物類])/穀$1/g

みたいにしないとダメ。

こういうの、一時的にフックして置いて、置換させないという
ような方法は何か無いのかなぁ…と、もう何年も探しています。

そこで思い出すのがsedの

y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/

なんていう便利な命令です。

こういうのは、中身的にはどんな風になっているんでしょうね?

例えばawkでこれをやろうとすると、gsubをウンザリするほど列挙
することになるわけですけど、結局、sedもエレガントに見える
書き方をしているだけで、中身ではホールドスペースを使って
複雑なことをやっているんでしょうか?

おしえて、えらい人。

でび  http://davi.txt-nifty.com/1984/