
特定言語に必要な文字コード設定はM-x set-language-environmentで 言語環境を指定すれば、ほとんどが自動的に設定されます。たとえば、ここで Germanと指定すると、いろいろなプロセスの文字コードがLatin-1になります。 簡体字中国語はChinese-GBです。
下はドイツ語言語環境が指定された場合に、ドイツ語キーボード配列で 入力できるように指定しています。各言語あたり複数のinput methodが 用意されているので、そのひとつを指定します。日本語入力に入る場合と同じく、C-\で この入力モードに入れます。最後のkeyboard-layoutは実際に使っているキーボードの配列を 申告しています。
;; german input method (defun my-german-setup () "Set up my private German environment." (if (equal current-language-environment "German") (setq default-input-method "german"))) (add-hook 'set-language-environment-hook 'my-german-setup) (setq quail-keyboard-layout-type "jp106")中国語の場合
;; chinese input method (defun my-chinese-setup () "Set up my private Chinese-GB environment." (if (equal current-language-environment "Chinese-GB") (setq default-input-method "chinese-gb-egg-wnn-py"))) (add-hook 'set-language-environment-hook 'my-chinese-setup) ;; cwnn (setq wnn-cserver "localhost")
※ Emacs21*の場合、cwnnで中国語入力するにはegg4(tamago-4.0.6)に このパッチを 当てる必要があります。また、omeletはロードしないでください。
これを行なっていないと、特殊文字が豆腐「四角の空白」で表示されて しまうはずです。
;; Font for carbon (create-fontset-from-fontset-spec (concat "-*-fixed-medium-r-normal-*-14-*-*-*-*-*-fontset-monaco14," "japanese-jisx0208:-apple-osaka-medium-r-normal--14-140-*-m-140-jisx0208.1983-sjis," "ascii:-apple-monaco-medium-r-normal-*-14-*-*-*-*-*-mac-roman," "latin-iso8859-1:-apple-monaco-medium-r-normal-*-14-*-*-*-*-*-mac-roman," "chinese-gb2312:-apple-song-medium-r-normal-*-16-*-gb2312*-*," "chinese-cns11643-1:-*-medium-r-normal-*-16-*-cns11643*-1," "chinese-cns11643-2:-*-medium-r-normal-*-16-*-cns11643*-2," "chinese-cns11643-3:-*-medium-r-normal-*-16-*-cns11643*-3," "chinese-cns11643-4:-*-medium-r-normal-*-16-*-cns11643*-4," "chinese-cns11643-5:-*-medium-r-normal-*-16-*-cns11643*-5," "chinese-cns11643-6:-*-medium-r-normal-*-16-*-cns11643*-6," "chinese-cns11643-7:-*-medium-r-normal-*-16-*-cns11643*-7")) (set-default-font "fontset-monaco14") (setq default-frame-alist (append '((font . "fontset-monaco14"))))
上記ではまとめて、日本語、英語、ドイツ語・フランス語、中国語の指定をしています。
なにをやっているかというと、monaco14というfontsetを作り、各文字コード毎に
使用するフォントを指定しています。
これでもまだ特定の文字に豆腐が出る場合、その文字コードのための指定が
欠けているということですから、追加すれば表示されるようになります。
ターミナルの場合は、各言語別の.emacsを作り、上の言語環境や入力法の設定は 固定で書いた方がいいと思います。また、フォント指定は要りません。 代わりに、そのターミナルソフトの環境設定で文字コードとフォントを切り替える必要が あります。ドイツ語・フランス語は付属のTerminalで、中国語はJTerminalでサポート されているはずです。
;; ドイツ語言語環境 (set-language-environment "German") ;; 入力法 (setq default-input-method "german") (setq quail-keyboard-layout-type "jp106")
そして、文字コードをLatin-1にしたTerminal上でこのように起動します。
/usr/local/bin/emacs -nw -q -l ~/.emacs-germanターミナルモードで起動し、通常の.emacsは読み込まず、ドイツ語固定の.emacs-germanを読み込みます。
;; 中国語言語環境 (set-language-environment "Chinese-GB") ;; 入力法 (setq default-input-method "chinese-gb-egg-wnn-py") ;; cwnn (setq wnn-cserver "localhost")
中国語の場合は、文字コードを中国語EUCにし、フォントをsnogにしたJTerminal上で 起動します。