チェコ語を表示するための方法(Linux)
Linuxでチェコ語文字を表示・入力する方法について紹介します。
「表示するための」と謳いましたが、実際のところ、私が使用した
Debian GNU/Linux (3.0(woody), 3.1(sarge), 5.0(lenny)) では、特に表示させるために設定が必要となったということはありませんでした。つまり、何もしなくても、Mozillaでチェコ語が表示できていました。
そこで、ここでは専ら「書く」方について、述べます。
注:新規インストールしたDebian GNU/Linux 5.0 (lenny) 環境を元に記述しています。その他の環境とは異なる点があるかも知れません。
ここでは、Unicodeでの日本語・チェコ語混在テキストの編集について述べています。
Unicodeを扱えるUNIX系OS用のエディタは幾つかありますが、ここでは
XEmacs21を使用したやり方に触れます。
勿論
emacsでも構いません(笑)
必要なもの
- X-window が使える Linux環境
- XEmacs21
- チェコ語フォント
- mule-ucsパッケージ
サーバ用の構成で環境構築していない限り、xemacs-21 関連とmule-ucsパッケージ以外は大概インストールされているでしょう。XEmacsとは別に、emacsと言うのがありますが、どちらでも構いません。ただ、基本的にはX-Window上で使用しないと、フォントなどの関係で、表示に問題が出てしまいます。
XEmacs21 と mule-ucsをインストールする
・・・というわけで、まずはLinux に、XEmacs21と、emacs の多言語化用のパッケージ "mule-ucs" をインストールします。Debianなので、当然ながら纏めて、
# aptitude install xemacs21-mule-canna-wnn mule-ucs
でインストール完了です。
XEmacsを初めてインストールする場合、実際には aptitude により上記以外にも3つ4つリストアップされるパッケージがありますが、そのままインストールします。
「aptitude って何?」という人は、まずはこちらへ...
Unicodeを扱えるようにするためにもう一段階
XEmacsではなくemacsを使う場合は、この項を読む必要ありません。読み飛ばして下さい。
XEmacsでは、あるバージョン(21.5.6以降?)以降、mule-ucsをインストールしてもUnicodeが使えなくなっています。
これは、以下を ${HOME}/.xemacs/init.el に追記してやることで解決します。
(require 'un-define)
(unless (emacs-version>= 21 5 6)
(require 'mule-ucs-unicode "unicode"))
(set-coding-category-system 'utf-8 'utf-8)
(set-coding-priority-list '(utf-8))
フォントを追加
Debianでは、初期状態で既にチェコ語を表示できるフォントが入っていますが、指定したフォントサイズによっては、適当なものがなかったりで見難くなってしまうこともあります。
そういう場合には、iso8859-2(Latin 2 カテゴリ)のフォントの追加します。
ここでは、
# apt-cache search iso-8859-2 | grep font [RETURN]
でリストアップされる、以下のフォントのパッケージを追加します。
- ttf-bitstream-vera - The Bitstream Vera family of free TrueType fonts
- xfonts-biznet-100dpi - 100 dpi BIZNET ISO-8859-2 fonts for X servers
- xfonts-biznet-75dpi - 75 dpi BIZNET ISO-8859-2 fonts for X servers
- xfonts-biznet-base - Standard BIZNET ISO-8859-2 fonts for X servers
- xfonts-jmk - James M. Knoble's character-cell fonts for X
aptitude で上記のパッケージ名を列挙して実行すれば、インストールされます。
# aptitude install ttf-bitstream-vera xfonts-biznet-100dpi \
xfonts-biznet-75dpi xfonts-biznet-base xfonts-jmk [RETURN]
apt-line を設定していない場合は、
Debianのサイトから、キーワード "xfonts" で検索し、ローカルにDownLoadしてからdpkg でインストールしてもOKです。
これで、Xを再起動後、XEmacs21 を起動すると、ハーチェクが小さくて見難かったのが改善されます(環境によっては設定が必要になるかも知れません)。
XEmacsを使う
文字コードは基本的に固定されていますが、文字コードを指定してファイルを開くことができます。
ということで、まずは基本から。
ファイルを新規作成
まずは、新規にutf-8 のテキストファイルを作ってみます。
XEmacsを起動したら、まず最初に文字コードを指定します。
C-x [RETURN] f <文字コード>
と入力すると、文字コードを指定できます。Windowsのエディタでファイル保存をする場合、文字コードには、「BOMなしのUTF-8」を意味する"UTF-8
N"というのを指定しますが、XEmacsではBOMの指定の選択肢はありません。最初から「BOMなしのUTF-8」しかないようです。その代わりに"
utf-8-unix", "
utf-8-mac", "
utf-8-win"というのが選択肢に出てきます。多分これらの違いは、改行コードのことでしょう。作成するのがHTMLファイルで、公開するwebサーバがUNIX系OSならば、ここでは"
utf-8-unix" を指定するのが無難でしょう。
これで作成したUnicodeのHTMLは、Firefox, MSIE, Chrome など、一般的なwebブラウザで読み込んでも、正常に表示できます(OperaやSafariでも多分大丈夫)。
ファイルの保存
特別な保存の方法は必要ありません。普通に
C-x C-s
でOKです。
既存ファイルの編集
以前のバージョン(Debian 3.0に含まれていたXEmacs/emacs)では、既に存在するutf-8のファイルを、コードの自動判定させて開くにはちょっと工夫が必要になりましたが、現在のバージョン(Debian3.1/sarge)以降では、euc-jpやiso-2022-jpと同様、文字コードを意識することなく、普通の手順で開くことが出来ます。
XEmacs/emacsからファイルを開く場合は、
C-x C-f <ファイル名>
これでちゃんと文字コードを判別してファイルを開く筈ですが、どうしても失敗する場合には、
C-x [RETURN] c <文字コード>
C-x C-f <ファイル名>
で、文字コードを指定してファイルを開くことが出来ます。
チェコ語の入力
では、ここまできたら、今度は実際に、チェコ語固有文字の入力方法を見ていきましょう。
まず、チェコ語を入力出来るように、入力方式を切り替えねばなりません。これは、
C-x C-m C-\ <入力方式>
で、変更します。
チェコ語については、次の5つの入力方式(キー配列)が利用できます。
このうち、"prog" が付くモノは、プログラマ向けのキー配列と言われています。
各種チェコ語キー配列の概略
| キーマップ |
備考 |
| czech |
Linuxのチェコ語キーマップでは唯一、YとZが入れ替わっている(MacitoshやWindowsで一般的な中欧言語仕様キーボードに対応している)
|
| czech-prog-1 |
ě,Ě,ů,Ů の入力が若干面倒。 |
| czech-prog-2 |
ě,Ě,ů,Ů の入力が若干面倒。 |
| czech-prog-3 |
ů,Ů 以外はczech-qwerty に似ている |
| czech-qwerty |
YとZの入れ替えがない他は、czechと一緒。 |
ちなみに、Linuxで(BSDとか他のUNIX系OSでもそうかな?)中欧地域の言語仕様のキーボード配列への切り替えをする際、キーマップ名に "qwerty" "qwertz" などというのが出てくるのを目にすることがあると思います。これらは、キーボード上のアルファベットの一番上の行(数字の行の一つ手前の行)の左端からの並びを示していて、これにより"Y"と"Z"の入れ替えの有無を名前で区別できるようになっています。
中東の産油国の名前とは関係ありません(笑)。
各入力方式についての説明は、
C-h C-\
の後、調べたい入力方式の名前を入力します。チェコ語の場合、通常は"czech"を選択することになりますが、この場合は、
Input method: czech (`CZ' in mode line) for Czech
"Standard" Czech keyboard in the Windoze NT 105 keys version.
のような説明が出てきます。
が、実際にやってみると、様子は随分と違うようです。キーマップを変更して、実際どうやったら入力できるのかを調べた結果を、下表に纏めてみました。
日本語106キーボード上における、XEmacs上のチェコ語入力モードでの特殊文字のキー割り当て
| 特殊文字 |
キー割り当て |
czech (qwertz) |
czech-prog-1 (qwerty) |
czech-prog-2 (qwerty) |
czech-prog-3 (qwerty) |
czech-qwerty (qwerty) |
ハーチェク (小文字) |
ě |
2 (Shift + ";") + e |
2 (Shift + ";") + (Shift + ";") + e |
2 (Shift + ";") + (Shift + ";") + e |
2 (Shift + ";") + e |
2 (Shift + ";") + e |
š |
3 (Shift + ";") + s |
3 (Shift + ";") + s |
3 (Shift + ";") + s |
3 (Shift + ";") + s |
3 (Shift + ";") + s |
č |
4 (Shift + ";") + c |
4 (Shift + ";") + c |
4 (Shift + ";") + c |
4 (Shift + ";") + c |
4 (Shift + ";") + c |
ň |
(Shift + ";") + n |
(Shift + ";") + n |
(Shift + ";") + n |
(Shift + ";") + n |
(Shift + ";") + n |
ř |
5 (Shift + ";") + r |
5 (Shift + ";") + r |
5 (Shift + ";") + r |
5 (Shift + ";") + r |
5 (Shift + ";") + r |
ž |
6 (Shift + ";") + y |
6 (Shift + ";") + z |
6 (Shift + ";") + z |
6 (Shift + ";") + z |
6 (Shift + ";") + z |
チャールカ (小文字) |
ý |
7 (Shift + "-") + z |
7 (Shift + ";") + y |
7 (Shift + ";") + y |
7 (Shift + -) + y |
7 (Shift + -) + y |
á |
8 (Shift + "-") + a |
8 (Shift + ";") + a |
8 (Shift + ";") + a |
8 (Shift + -) + a |
8 (Shift + -) + a |
í |
9 (Shift + -) + i |
9 (Shift + ";") + i |
9 (Shift + ";") + i |
9 (Shift + -) + i |
9 (Shift + -) + i |
é |
0 (Shift + -) + e |
0 (Shift + ";") + e |
0 (Shift + ";") + e |
0 (Shift + -) + e |
0 (Shift + -) + e |
ú |
"[" (Shift + -) + u |
(Shift + ";") + u |
(Shift + ";") + u |
"[" (Shift + -) + u |
"[" (Shift + -) + u |
ハーチェク (大文字) |
Ě |
(Shift + ";") + (Shift + e) |
(Shift + ";") + (Shift + ";") + (Shift + e) |
(Shift + ";") + (Shift + ";") + (Shift + e) |
(Shift + ";") + (Shift + e) |
(Shift + ";") + (Shift + e) |
Š |
(Shift + ";") + (Shift + s) |
(Shift + ";") + (Shift + s) |
(Shift + ";") + (Shift + s) |
(Shift + ";") + (Shift + s) |
(Shift + ";") + (Shift + s) |
Č |
(Shift + ";") + (Shift + c) |
(Shift + ";") + (Shift + c) |
(Shift + ";") + (Shift + c) |
(Shift + ";") + (Shift + c) |
(Shift + ";") + (Shift + c) |
Ň |
(Shift + ";") + (Shift + n) |
(Shift + ";") + (Shift + n) |
(Shift + ";") + (Shift + n) |
(Shift + ";") + (Shift + n) |
(Shift + ";") + (Shift + n) |
Ř |
(Shift + ";") + (Shift + r) |
(Shift + ";") + (Shift + r) |
(Shift + ";") + (Shift + r) |
(Shift + ";") + (Shift + r) |
(Shift + ";") + (Shift + r) |
Ž |
(Shift + ";") + (Shift + y) |
(Shift + ";") + (Shift + z) |
(Shift + ";") + (Shift + z) |
(Shift + ";") + (Shift + z) |
(Shift + ";") + (Shift + z) |
Ď |
(Shift + ";") + (Shift + d) |
(Shift + ";") + (Shift + d) |
(Shift + ";") + (Shift + d) |
(Shift + ";") + (Shift + d) |
(Shift + ";") + (Shift + d) |
チャールカ (大文字) |
Ý |
(Shift + -) + (Shift + z) |
(Shift + ";") + (Shift + y) |
(Shift + ";") + (Shift + y) |
(Shift + -) + (Shift + y) |
(Shift + -) + (Shift + y) |
Á |
(Shift + -) + (Shift + a) |
(Shift + ";") + (Shift + a) |
(Shift + ";") + (Shift + a) |
(Shift + -) + (Shift + a) |
(Shift + -) + (Shift + a) |
Í |
(Shift + -) + (Shift + i) |
(Shift + ";") + (Shift + i) |
(Shift + ";") + (Shift + i) |
(Shift + -) + (Shift + i) |
(Shift + -) + (Shift + i) |
É |
(Shift + -) + (Shift + e) |
(Shift + ";") + (Shift + e) |
(Shift + ";") + (Shift + e) |
(Shift + -) + (Shift + e) |
(Shift + -) + (Shift + e) |
Ú |
(Shift + -) + (Shift + u) |
(Shift + ";") + (Shift + u) |
(Shift + ";") + (Shift + u) |
(Shift + -) + (Shift + u) |
(Shift + -) + (Shift + u) |
| 軟記号 |
ť |
(Shift + ";") + t |
(Shift + ";") + t |
(Shift + ";") + t |
(Shift + ";") + t |
(Shift + ";") + t |
ď |
(Shift + ";") + d |
(Shift + ";") + d |
(Shift + ";") + d |
(Shift + ";") + d |
(Shift + ";") + d |
| クロウジェク |
ů |
";" (Shift + ^) + u |
";" (Shift + ";") + (Shift + ";") + u |
1 (Shift + ";") + (Shift + ";") + u |
"]" (Shift + ";") + u |
";" (Shift + ^) + u |
Ů |
(Shift + ^) + (Shift + u) |
(Shift + ";") + (Shift + ";") + (Shift + u) |
(Shift + ";") + (Shift + ";") + (Shift + u) |
(Shift + ";") + (Shift + u) |
(Shift + ^) + (Shift + u) |
X上の他のアプリケーションでもチェコ語文字の入力をする方法
ここまでは、XEmacs(emacs)の中だけで閉じた話でした。
これだけでは、Google等のネット上での検索には使えないし、OpenOffice.org など他のアプリケーションでの入力も出来ません。
それだけでもナンなので、ここから先は、XEmacs以外のアプリケーションでもチェコ語が入力できるようにする(=X全般でチェコ語文字を使用する)話になります。
X上でキーマップの切り替えを行う方法は幾つかありますが、ここでは以下のモノを取り上げてみます:
- setxkbmap コマンド
- xkbsel コマンド
以降の章で注意しなければならないことは、今まで述べてきたXEmac/emacs上での場合とキー割り当てが異なるものがある、ということです。この辺は追々説明を追加していきたいと思います。
setxkbmap を使うと、X上で直接チェコ語/日本語の入力切り替えが出来るようになる。
$ setxkbmap cz [RETURN] # → チェコ語キーマップへ切り替え
$ setxkbmap jp [RETURN] # → 日本語キーマップへ切り替え
こういうのを打つのは割と面倒なので、例えば ${HOME}/.bashrc に、
alias CZ='setxkbmap cz'
alias JP='setxkbmap jp'
と書いておく(当然ながら、端末毎に "source ~/.bashrc" と打つのを忘れずに...)。
チェコ語に切り替えたいときに、xtermなどの仮想端末の1つで
$ CZ [RETURN]
と打てば一発で切り替えられる(って、面倒臭いなぁ・・・苦笑)。
日本語に戻す場合は、同様に
$ JP [RETURN]
この場合の入力方法は、WindowsやMacと同じです。
...ということで、こんなことが出来ます。
setxkbmapの代わりに、xkbselというのも使えます
(私は環境をDebian5.0にしてからは使ってませんが)。
デフォルトではイントールされないようなので、使うのであれば、まずインストールする必要があります。
# aptitude install xkbsel [RETUEN]
xkbsel の場合は、/etc/xkbsel/xkbsel.conf または ~/.xkbsel/xkbsel.conf に候補が登録されていなければならないらしい。
$ xkbsel cs [RETURN] # → チェコ語キーマップへ切り替え
$ xkbsel jp [RETURN] # → 日本語キーマップへ切り替え
GNOMEでいろいろやってみる
キーボード表示器 2.22.3
キーボードのレイアウトを1クリックで切り替えるアプレットで、Debian 3.1 (sarge) の頃にもあったものですが、だいぶ賢くなっています。
デフォルトでは表示されていないので、手動で追加する必要があります。GNOMEパネルの開いたところでマウスを右クリックし、「パネルへ追加...(A)」を選択し、出てきたダイアログから「キーボード表示器」を選ぶと追加されます。
場所が気に入らなければ、マウスの中央ボタン(最近のマウスだとホイールをクリックで代用)を押しながらドラッグして移動出来ます。
設定
アプレット上で右クリックし、「キーボードの設定(P)」を選択します。すると「キーボードの設定」というダイアログが表示されます。
出てきたダイアログの「レイアウト」タブを開き、「追加(A)...」ボタンを押します。
「レイアウトの選択」と言うダイアログが出てきます。
チェコ語のキーボードレイアウトを使用するには、ここで「レイアウト」のプルダウンメニューから「czechia」を選び、「追加(A)」ボタンを押します。
「キーボードの設定」ダイアログに戻りますが、他に設定したい物がなければ、これもそのまま閉じます。
動作
アプレット上でマウスを左クリックすると、登録されているキーボードレイアウトが切り替わります。
setxkbmap コマンドを併用して打っても、矛盾なく連動します。もしかすると内部的には setxkbmap を呼んでいるのかもしれません。
sargeのときは色々不具合というか、例えば「日本語はひらがなしか入力出来なくなる」といった問題がありましたが、今度のバージョンではそういうこともありません。
入力
チェコ語のキーバインドですが、これはほぼ、WindowsやMacのチェコ語キーボードレイアウトと同じです。
つまり、emacsenで実現しているチェコ語キーボードレイアウトとはキーバインドが異なるわけですが、WindowsやMacである程度チェコ語の入力に慣れている場合は、こちらに方が新たに覚えることは少なく、楽でしょう。
ATOK X3 for Linux との共存
WindwosやMacintoshでよく使われている日本語IME "ATOK" シリーズのLinux版ですが、emacsenでチェコ語を使用する場合には少々問題というか、他とは違うやり方をする必要があります。
「キーボード表示器」で入力言語切り替えをしている場合、これを入れると emacsen でのチェコ語/日本語の入力が上手くいかなくなります。
firefox など他のXアプリケーションではそんなこともないので、emacsenの不具合かもしれません。
問題点:ハーチェクなどが入力出来ない
その他のXアプリケーションでは問題にならないのですが、emacenでは、ウインドウがアクティヴになっている状態で「キーボード表示器」などでXのキーボード切り替えを行うと、emacsen上で「Shift + ^」などを受け付けなくなる為、ハーチェク等が入力出来ません。
emacsen上では他に方法が見あたらないので、emacsenでのキーマップを "czech" 等に変更します。
問題点:日本語入力に戻りたいが、どうやって戻したらいい?
emacsenでのキーマップを一旦 "czech" にした後、日本語入力に戻そうとして "japanese" と打って補完を試みても、下図のように、ATOKらしきものは表示されません。
このとき、正常にATOKでの正常な入力環境に戻りたい場合は、
C-\
または
M-x: toggle-input-method
を呼びます(やっていることはどちらも同じです)。
これで再びATOKが使えるようになります。
以下は説明。
実は、
M-x: set-input-method
でセットする変数は
current-input-method
という変数に入っています。格納された値を調べるには、
M-x: describe-variable
を使うと分かるようになっています。
起動した直後の状態(=ATOKで日本語が入力出来る状態)で調べてみると、 "nil" という値。つまり、値が空(カラ)になっています。
toggle-input-method によって、 "nil" と "czech" の値が相互に切り替わるので、再び値を空("nil")にすることが出来、それによってATOK が正常に使用出来るというわけです。
戻る...
メッセージを送る...