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

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



高橋です。

haruichi yabuki writes:

>> 1. Emacs20は等幅フォントしか使えませんが、Emacs21はプロポーショナルフォ
>>    ントも使えます。ですから等幅フォントにこだわる必要は特にないと思い
>>    ます。
> はい. そうなのですが ---習慣の問題でしょうが--- ワープロではなくエディター
> で proportional font というのが 私には違和感があって, 等幅が欲しかったのです.
> あるいは, proportional font でも等幅のように振る舞わせる設定方法が
> あるのでしょうか ? つまり, 行ごとに桁が揃うような表示が可能でしょうか ?

いや、それは無理だと思います。

> あるいは, 特に 文字iが両側の文字に挟まれて見にくくなるような状況を回避
> するために, 文字間隔を拡げるとかの設定変更が出来るでしょうか?

font-lockモードを使い、iが出てくるたびにそこだけ表示を細工するようにす
ればできないことはないかもしれませんが、かなり汚い方法ですし、何をやっ
ているかをしっかり把握していないと、後々混乱することになりかねません。

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

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

わかりました。頑張ってみます。
 
>> > 1. cgreek21 のファイルを utf-8 で保存する.
>> > 2. このファイルを C-x C-f で読み込んで, 言語環境を greek にする.
>> > 3. unicode-0100-24ff の範囲の 鋭アクセント付き母音 を
>> >    iso8859-7 の範囲の アクセント付き母音 に置換する.
>> > 4. C-\ で ギリシャ語入力に変えて, C-s で検索.
>> >    (Cgreek21 からの '親離れ' ということです)
>> 
>>    これは何をなさりたいのでしょうか。ギリシア文字だけiso8859-7にして、
>>    和文や欧文はUnicodeという環境ですか?  そんなことをしたら混乱するだ
>>    けだと思うのですが。

> テキスト中の 文字/単語 の検索がしたいのです.
> でも,じつは, 自分が何をしたのか良く分かっていません.
> こうすれば, 検索が出来たと言うことなのです.
> 今, 問題のテキストを調べてみました.
> 以下のような情報が C-u, C-x, = で得られました.

> 置換前のファイル中の鋭アクセント付きエータは:
> ------------------------------------------------------------------
>  character: .. (01234265, 342197, 0x538b5)
>     charset: mule-unicode-0100-24ff
> 	     (Unicode characters of the range U+0100..U+24FF.)
>  code point: 113 53
>      syntax: word
>    category: g:Greek   u:Mule unicode characters  
> buffer code: 0x9C 0xF4 0xF1 0xB5
>   file code: 0xE1 0xBD 0xB5 (encoded by coding system utf-8-unix)
>        font: -Etl-Fixed-Medium-R-Normal--24-240-72-72-C-120-ISO10646-1
> -----------------------------------------------------------------------

> これに対して,
> 置換後のファイル中のアクセント付きエータは:
> -----------------------------------------------------------------------
>  character: .. (05536, 2910, 0xb5e)
>     charset: greek-iso8859-7
> 	     (Right-Hand Part of Latin/Greek Alphabet (ISO/IEC 8859-7): ISO-IR-126)
>  code point: 94
>      syntax: word
>    category: g:Greek  
> buffer code: 0x86 0xDE
>   file code: 0xCE 0xAE (encoded by coding system utf-8-unix)
>        font: -ETL-Fixed-Medium-R-Normal--24-240-72-72-C-120-ISO8859-7
> --------------------------------------------------------------------------

> それで, 私は一体何をしたか --- 私は, 単純に unicode の中には
> 鋭アクセントのギリシャ母音が 2つ 定義されており, 

いえ、1つしか定義されていません。

> 片方を他方に置き換えたつもりでした.
> それで, この置換後もテキストは unicode で エンコーディング されているんだと
> 思っていました. 何か 変ですか ?  実際, 私には何処が変かも良く分かりません.

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

ただし(ここがややこしいのですが)、Mule-UCSはファイル入出力の際に、
iso8859-7とUnicodeの間の自動変換を行うことができます。ですので、

・ファイルの内ではギリシア文字もラテン文字も漢字も全部Unicodeで記録

・ギリシア文字のiseachが可能になるよう、Emacsに読み込む際にギリシア文
字部分をiso8859-7に自動変換

とすることも可能だと思います。ただ私は普段Mule-UCSを使っていないので、
設定方法に関してはちょっとわかりません。調べればどうにかなるかもしれま
せんが…。

-- 
TAKAHASHI Naoto
ntakahas@xxxxxxxx
http://www.m17n.org/ntakahas/