=============================================== 1999.7.26 発行 =========
         極私的 Emacs カスタマイズ紹介マガヂン
            Emacs をわたし色に染めて♪
------------------------------------------------------------------------
     第 8 回 エイトック的たまご生活 (1) 外見とローマ字
------------------------------------------------------------------------
※あなたのカスタマイズをぜひ教えてください。一般的なものから、他の人は
 絶対にしないような「外道」なものまで、何でも結構です。

※解除の方法は、このメールの末尾をごらんください。
========================================================================

	こんにちは。でるもんた・いいじまです。

☆本日のお題☆

	今回からしばらく、かな漢字変換の話に入ります。

	私は Wnn 使いなので、Wnn(egg=たまご)の話ばっかりになってしまい
	ます。Canna の方には申し訳ないのですがご了承ください。

	また、私は十年来の ATOK ユーザーなので、カスタマイズの結果が
	ATOK 風になっています。この点についてはお好みに合わせて変更して
	ください。

	┌───────注意────────────────────────┐
	│以下には Wnn 関係の設定方法が書かれていますが、この方法は、そのま │
	│までは Emacs 20.x 以降や XEmacs では使えません。Emacs 20.x 以降や │
	│XEmacs をご利用の場合は、第24回・第25回をあわせてお読み下さい。   │
	└─────────────────────────────────┘

				☆

	今回はまづ、
		○ローマ字カスタマイズ
		○外見
	の話をします。

	次回以降、キーカスタマイズとカナ入力(ローマ字でなくカナ入力!)
	の話をしたいと思います。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
☆ローマ字カスタマイズ☆

	ローマ字の入力方式は、かな漢字変換プログラムによって微妙に違います。
	たとえば、「ぁ」を入力するのに xa とすべきか la とすべきか、
	ti は「ち」か「てぃ」か、wi は「うぃ」か「ゐ」か、などなど、
	人の好みが強くあらわれる部分でもあります。

	ところでこの点は、当然カスタマイズ可能になっています。
	Emacs の場合、たいていの機能はマクロで実現されているので、
	カスタマイズはできて当然なのです。

	さっそくいじってみましょう。~/.emacs に、たとえば次のように
	書いてください。

		(its-define-mode "roma-kana" "あ" nil)
		(its-defrule "la" "ぁ")
		(its-defrule "li" "ぃ")
		(its-defrule "lu" "ぅ")
		(its-defrule "le" "ぇ")
		(its-defrule "lo" "ぉ")

	これで、たとえば la が「ら」ではなく「ぁ」になります。

	また、そのまま入力できる記号類や、「z+子音」で入力できる特殊
	文字も、内部的にはローマ字カナ変換と同様のメカニズムで処理されて
	いますので、たとえば次のようにして変更することができます。

		(its-defrule "\\" "\")
		(its-defrule "z\\" "¥")

	【補足】(1) 最初の its-define-mode を忘れないようにしましょう。
		実は Wnn の入力モードには roma-kana 以外にもいくつか
		あり、どのモードでのキーカスタマイズなのかを明示する
		必要があるからです。

		たとえば、zenkaku-downcase モード(大文字の 'Q' を入力
		したときに <a> と出てきて、全角のアルファベットを入力
		できるモード)のキーをカスタマイズするには、次のように
		します。

			(its-define-mode "zenkaku-downcase" "a" nil)
			(its-defrule "\\" "\")

		(2) its-define-mode の 3 番目の引数 nil を t に変更する
		と、「このモードで今まで設定させているキー操作は破棄して、
		ゼロから再定義」という意味になります。

		(3) 半角の '\' は、"" の中では特別な意味を持ちます。
		(たとえば、\n=改行、\t=タブ など)そのため、「'\' と
		いう文字そのもの」を示すためにはふたつ重ねて \\ と書く
		必要があります。

		(4) 以上の記述では、何をどう変更したのか、いちいち画面に
		表示し、時間をおいてから次に進むので、ものすごく時間が
		かかります。そこで、its-defrule 文よりも前に、次のように
		書いておくとよいでしょう。

			(setq its:*defrule-verbose* nil)

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
☆外見の変更 (1)☆

	さて、上の its-defrule 文では、2 番目の引数に "あ" と書いてあり
	ます。これを変えたらいったいどうなるのでしょうか。

	ためしにやってみましょう。
	上の its-define-mode 文を、次のように変更します。

		(its-define-mode "roma-kana" "あ連R漢" nil)

	するとあら不思議、C-\ を押すと、今まで [あ] とでていた部分に、
	[あ連R漢] と出るようになりました。

	調子に乗って他も変えてしまいましょう。

		(its-define-mode "downcase" "A 固R漢" nil)
		(its-define-mode "zenkaku-downcase" "A固R漢" nil)

	ほかにも upcase と zenkaku-upcase があるのですが、これは使わない
	のでパスということにします。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
☆外見の変更 (2)☆

	外見については、もうひとつカスタマイズできる点があります。

	Wnn では、カナを入力した部分は |...| で囲まれます。これが、
	カナ入力状態が「フェンスモード」といわれるゆえんです。
	また、変換後も、文節ごとの区切りとしてスペースが使われます。

	コンソールからカナ入力する場合にはこれは仕方がないのですが、
	X の場合は文字に色をつけたり下線を引いたりということができるので、
	次のようにしてしまいましょう。

	(if (eq window-system 'x)
	(progn
		(set-egg-fence-mode-format "" "" 'underline)
		(set-egg-henkan-mode-format "" "" "" ""
				'underline nil 'secondary-selection)
	))

	set-egg-fence-mode-format は、文字入力中([あ] のように出ている
	状態)での書式を指定します。この第一・第二引数は、フェンスの
	両端を示すための文字列で、デフォルトでは両方とも "|" です。
	私の場合は「なし」にしましたが、たとえば "[" と "]" にしても
	いいでしょう。つぎの 'underline というのが、フェンス内の文字に
	対する文字修飾です。

	set-egg-henkan-mode-format は変換したあと(つまり、[漢] と出て
	いる状態)の書式です。引数がもっと増えています。

		○第一・第二…フェンスの両端を示す文字列
		○第三・第四…大文節・小文節の区切りを示す文字列
		       (デフォルトでは " " と "+")
		○第五…………フェンス全体に対する文字修飾
		○第六・第七…現在カーソルがある大文節・小文節に対する
		       文字修飾

	secondary-selection という文字修飾は、文字の色はそのままで、
	その背景を水色で表示します。

		【補足】文字修飾をしないときは、nil を指定します。

	ちなみに、文字の修飾(face)にはいろいろなものがありますので、
	M-x set-face-font などで探してみてください。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
☆おまけ - face について☆

	また、自分で新しい face をつくることもできます。
	たとえば、次のようにします。

		M-x make-face           RET newface RET
		M-x set-face-foreground RET newface RET white RET
		M-x set-face-background RET newface RET black RET
		M-x set-face-bold-p     RET newface RET t     RET
		M-x set-face-italic-p   RET newface RET nil   RET

	あるいは、~/.emacs につぎのように書きます。

		(make-face 'newface)
		(set-face-foreground 'newface "white")
		(set-face-background 'newface "black")
		(set-face-bold-p     'newface t)
		(set-face-italic-p   'newface nil)

	こうすると、newface という face は、

		「黒の背景に白抜きの文字、太字」

	という意味になります。これを set-egg-fence-mode-format などで
	指定すればいいわけです。

	あるいは、同じ要領で、既存の face のデザインを変更することが
	できます。たとえば、範囲指定した範囲の表示を Windows 98 風に
	するには、
		(set-face-foreground 'region "white")
		(set-face-background 'region "darkblue")
	とすればいいでしょうし、モードライン(下の反転表示行)の黒が
	うっとうしいと思えば、'modeline のデザインをかえることで対応
	できます。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

☆次回予告☆

	次回は、「第 9 回 漢は黙ってカナ入力」です。

	私は旧い人間なので、JIS キィボォドによるカナ入力を身につけて
	をります。といふわけで、カナ入力の方法です。
	時間があったら親指シフトの話もできるかもしれません。

	それでは、また来週♪

========================================================================
極私的 Emacs カスタマイズ紹介マガジン Emacs をわたし色に染めて♪

☆発行人☆

        でるもんた・いいじま <L94102@komaba.ecc.u-tokyo.ac.jp>
                        http://user.ecc.u-tokyo.ac.jp/~l94102/emacs/

                ※このメールマガジンで取り上げてほしいテーマ、ご意見など
                 ありましたら、上のメールアドレスまでお気軽にどうぞ。

☆配信☆
        このメールマガジンは、「インターネットの本屋さん・まぐまぐ」を
        利用して配信しています。
                http://www.mag2.com     (マガジン ID=0000013484)

☆バックナンバー・登録解除・メールアドレス変更は☆

        上記のホームページまでどうぞ。
        なお、手動での登録解除は行っておりませんのでご了承下さい。
=========================================================================

Copyright © IIJIMA Hiromitsu aka Delmonta, 2016/03/10 15:09 JST
これは「古文書」です。 古くなった情報も原則未修正で保存していますのでご注意ください。

古文書本館トップ | 電脳外道学会