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

[cgreek-ja:01122] Re: search in cgreek21



矢吹 です.

高橋さん, 早速の回答ありがとうございます.

> それをやるくらいなら、フォント自体に手を入れ、iの両側にスペースを持た
> せるようにした方がずっと素直です。

なるほど, そういう手がありましたか.
私は, proportional font の場合, 時によっては, οι が α に見えたりします. 
いつか, 高橋さんの言われるようなフォントを作ってみたいと思います. 
今からどんどん, 極度の近視 + 老眼 + 乱視が進行するでしょうから.

> > 既知の問題とは知りませんでした. ギリシア文字の isearch が出来れば
> > かなり助かります (特に, 私の場合, 大きなファイル中で単語を参照することが
> > しばしばなので). 
> 
> わかりました。頑張ってみます。

はい. お願い致します.

さて次が, 私には難しい話で,...
> > それで, 私は一体何をしたか --- 私は, 単純に unicode の中には
> > 鋭アクセントのギリシャ母音が 2つ 定義されており, 
> 
> いえ、1つしか定義されていません。

今 fontforge で etl24-unicode.bdf を開いて眺めたところ,
文字の一覧表の始めの方に アクセント付きη があり, 文字情報として, 
942  (0x03ae) U+03AE GREEK GREEK SMALL LETTER ETA WITH TONOS
と示されます. 
それからずっと下の方に 鋭アクセント付きη があり, 文字情報として,
8053 (0x1f75) U+1f75 GREEK GREEK SMALL LETTER ETA WITH OXIA
と示されます.

あっ, そうですね. 
鋭アクセントη(古典) が 1つ, アクセントη(現代) が 1つ です. 
この理解で良いですか?
私は良く分かっていないせいで, 不正確な(いい加減な)言い方をしていました.

> > 片方を他方に置き換えたつもりでした.

というわけで
鋭アクセント付きη(古典)を アクセント付きη(現代)へ置換したのでした. 
これが 私のしたことです.
(私の意図通りの結果になっているかどうかは良く分かりません.
この上の文字情報と, C-u C-x = で得られた文字情報が
うまく噛み合わないです. 変ですね.) 

> えーと、まず「iso8859-7はUnicodeではない」という点はいいでしょうか?
> たしかにiso8859-7で表現できる文字はUnicodeでも表現できますが、それぞれ
> の文字コードは違っていますし、Emacsの内部では別の文字として管理されて
> います。

私は, iso8859-7 と Unicode は別の体系だとは理解していましたが, 
前者は後者の真部分集合で内部への忠実な埋め込み, と思っていました. 
そんな簡単なことではないのですね. 

> ただし(ここがややこしいのですが)、Mule-UCSはファイル入出力の際に、
> iso8859-7とUnicodeの間の自動変換を行うことができます。ですので、
> 
> ・ファイルの内ではギリシア文字もラテン文字も漢字も全部Unicodeで記録
> 
> ・ギリシア文字のiseachが可能になるよう、Emacsに読み込む際にギリシア文
> 字部分をiso8859-7に自動変換
> 
> とすることも可能だと思います。ただ私は普段Mule-UCSを使っていないので、
> 設定方法に関してはちょっとわかりません。調べればどうにかなるかもしれま
> せんが…。

ここのところは, かなり(と言うか, 全く)私には難しいです.

そこで, 次のような調査をしてみました.

私が実験した元のファイル を test-orig.txt とします.       
       日英希の混合テキストです.
       これは, Cgreek20 で作成した TeX ファイルを Cgreek21 で読み込んで 
       'Save unicode file' というメニューから出力したファイルです.
上に述べた置換後のファイルを test.txt とします.
       これは, test-orig.txt を emacs21 で C-x C-f として読み込んだ後に,
       emacs21 の 置換機能を使って 上記を置き換えをし,
       (ミニバッファ中で Query replace: の所へ マウスでテキスト中から
       コピーした鋭アクセント付きηをいれて, ENTER. 次に
       ...with: の所へは greek 入力環境でキーボードから h ; と順に
       入力. このようにして置換しました)
       その後, emacs21 で C-x C-s としてセーブしたものです.
       どのコード体系でセーブするかの問い合わせには utf-8 としたと
       思いますが, ここは記憶が確かではありません. あるいは, 問い合わせは
       無かったかもしれません. 
元の test-orig.txt から 一部分のみ 上記の置換を行い,
       鋭アクセント付きη と アクセント付きηを混在させたファイル を
       test-mix.txt とします.

上記いずれのファイルも emacs21 で C-x C-f として読み込むと,
全く同じ動作をするように見えます. 
まず, 直ちに 日英希 がきちんと表示されます.
鋭アクセント付きη と アクセント付きη が区別されて現れます.
前者はアクサンテギュ, 後者は短い縦棒 です.
検索は,
I-search[Ω]: のミニバッファー に キー入力で h ; とすると,
アクセント付きη(現代)が見付かります.
テキスト中の 鋭アクセント付きη(古典)をマウスでコピーしておいて,
I-search[Ω]: のミニバッファー に張り付けると, 目的のものが見付かります.
この emacs21 の検索は, 鋭アクセントつきη と アクセントつきη を区別します.

> ・ファイルの内ではギリシア文字もラテン文字も漢字も全部Unicodeで記録
とおっしゃるように, これらのファイルは 3 つとも全て unicode encoding の
ものだと思われます.
mlterm という terminal で, 例えば
$ lv -Au8 lex-mm-mix.txt
としてみると, きちんとテキストが通常の less の時のように表示されます.
また, mozilla でも表示できています.
いずれも, 鋭アクセントつきη と アクセントつきη は区別されて表示されます.

> ・ギリシア文字のiseachが可能になるよう、Emacsに読み込む際にギリシア文
> 字部分をiso8859-7に自動変換
> 
> とすることも可能だと思います。ただ私は普段Mule-UCSを使っていないので、
> 設定方法に関してはちょっとわかりません。調べればどうにかなるかもしれま
> せんが…。
設定に関して, 私は特別のことは何もしていません.
Vine がそういう設定になっているのかも知れません(?).
(version が Mule-UCS-0.84-0vl8 と表示されるので, 
Vine が何かしていることは確かですが. でも, 元々の Mule-UCS が
そうなっている可能性の方が高いと私には思えます.) 

いずれにしても, 私の実験結果から見ると, 私のマシンは 
正に, 高橋さんが言われる通りの動作をしているようです.

今回の実験で意外だったのは, 上で述べたように
鋭アクセント付きη(古典), 
053 (0x1f75) U+1f75 GREEK GREEK SMALL LETTER ETA WITH OXIA
も emacs21 で検索出来てしまうということです.
ただ, これは キー入力 出来ないので, 実用的ではないですね.

以上, 随分要領の悪い報告になってしまいました.
私にとっては, 検索が かなり大切な道具になりますので, 
cgreek21 で isearch が機能し始めるまで, 何とかしたいと思っています.

よろしくお願い致します.

--
矢吹治一