ドイツ語・フランス語・中国語の使用


(carbonの場合)

言語環境

特定言語に必要な文字コード設定は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を作り、各文字コード毎に 使用するフォントを指定しています。
これでもまだ特定の文字に豆腐が出る場合、その文字コードのための指定が 欠けているということですから、追加すれば表示されるようになります。


(Terminalの場合)

ターミナルの場合は、各言語別の.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上で 起動します。