チェコ語を表示するための方法(Linux)

Linuxでチェコ語文字を表示・入力する方法について紹介します。


「表示するための」と謳いましたが、実際のところ、私が使用したDebian GNU/Linux 3.1 (sarge)では、特に表示させるために設定が必要となったということはありませんでした。つまり、何もしなくても、Mozillaでチェコ語が表示できていました。
そこで、ここでは専ら「書く」方について、述べます。


注:Debian GNU/Linux 3.0 (woody) から再インストールすることなくバージョンアップした 3.1 (sarge) 環境を元に記述しています。新規インストールの場合とは若干環境が異なるかも知れません。

ここでは、Unicodeでの日本語・チェコ語混在テキストの編集について述べています。
Unicodeを扱えるUNIX系OS用のエディタは幾つかありますが、ここではXEmacs21を使用したやり方に触れます。
勿論emacsでも構いません(笑)

必要なもの

  1. X-window が使える Linux環境
  2. XEmacs21
  3. チェコ語フォント
  4. 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 って何?」という人は、まずはこちらへ...

フォントを追加

Debianでは、初期状態で既にチェコ語を表示できるフォントが入っていますが、指定したフォントサイズによっては、適当なものがなかったりで見難くなってしまうこともあります。
そういう場合には、iso8859-2(Latin 2 カテゴリ)のフォントの追加します。
ここでは以下を追加します。
あまり関係ないかもですが、私はついでに下記のも入れてみました。 aptitude で上記のパッケージ名を列挙して実行すれば、インストールされます。
# aptitude install xfonts-biznet-iso-8859-2-100dpi \
xfonts-biznet-iso-8859-2-75dpi xfonts-biznet-iso-8859-2-base \
xfonts-bitmap-mule xfonts-biznet-base xfonts-biznet-100dpi
apt-line を設定していない場合は、Debianのサイトから、キーワード "xfonts" で検索し、ローカルにDownLoadしてからdpkg でインストールしてもOKです。

これで、Xを再起動後、XEmacs21 を起動すると、ハーチェクが小さくて見難かったのが改善されます(環境によっては設定が必要になるかも知れません)。

XEmacsを使う

文字コードは基本的に固定されていますが、文字コードを指定してファイルを開くことができます。
ということで、まずは基本から。

ファイルを新規作成

まずは、新規にutf-8 のテキストファイルを作ってみます。
XEmacsを起動したら、まず最初に文字コードを指定します。
C-x [RETURN] f <文字コード>
と入力すると、文字コードを指定できます。Windowsのエディタでファイル保存をする場合、文字コードには、「BOMなしのUTF-8」を意味する"UTF-8N"というのを指定しますが、XEmacsではBOMの指定の選択肢はありません。最初から「BOMなしのUTF-8」しかないようです。その代わりに"utf-8-unix", "utf-8-mac", "utf-8-win"というのが選択肢に出てきます。多分これらの違いは、改行コードのことでしょう。UNIX系OSなので、ここでは"utf-8-unix" を指定します。

XEmacs21で文字コード指定

これで作成したUnicodeのHTMLは、Netscape6.x~7.x 相当のMozilla(Mozilla 1.7.x)で読み込んでも、正常に表示できます。



ファイルの保存

特別な保存の方法は必要ありません。普通に
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-\ <入力方式>
で、変更します。
XEmacs21で入力方式変更する。

チェコ語については、次の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 + ^) + 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上でキーマップの切り替えを行う方法は幾つかありますが、ここでは以下のモノを取り上げてみます:
  1. setxkbmap コマンド
  2. xkbsel コマンド
以降の章で注意しなければならないことは、今まで述べてきたXEmac/emacs上での場合とキー割り当てが異なるものがある、ということです。この辺は追々説明を追加していきたいと思います。

setxkbmap コマンド

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]

...ということで、こんなことが出来ます。

X上で直接チェコ語文字(Zdeněk Fibich Bohuslav Martinů)を入力してみたところ。勿論Googleの検索文字入力にも使えます。

xkbsel コマンド

setxkbmapの代わりに、xkbselというのも使える。
xkbsel の場合は、/etc/xkbsel/xkbsel.conf または ~/.xkbsel/xkbsel.conf に候補が登録されていなければならないらしい。
$ xkbsel cs [RETURN] # → チェコ語キーマップへ切り替え
$ xkbsel jp [RETURN] # → 日本語キーマップへ切り替え


GNOMEでいろいろやってみる

アプレット 機能 備考
キャラクタ・パレット 2.8.2 特殊文字をパネル上に表示し、クリックするとその文字を挿入する・・・らしい。 少なくともsylpheed, XEmacs21 では無駄であった。
チェコ語のハーチェクがないので、このコーナーの主旨においては、あまり意味をなさない。
キーボード表示器 2.8.2 キーボードのレイアウトを1クリックで切り替える 使い勝手は良さそうだったが、日本語以外のレイアウトを追加すると、IMEを無視して日本語が直接入力しか出来なくなってしまう。
日本語をローマ字変換などで入力する習慣がある場合にも不便であるし、元々ASCII文字(アルファベットや数字などの半角文字)でコマンドを叩いて操作するUNIX系の環境ではなかなか使いこなすのは難しそうである。




戻る...
メッセージを送る...