Uim を使って日本語を入力
関連記事
このページでは uim を使った日本語入力の方法について説明しています。もしあなたが SCIM を使う場合は Smart Common Input Method platform を、IBus を使う場合は IBus を、Fcitx を使う場合は Fcitx を参照して下さい。
目次
インストール
日本語入力を行うためには、次のパッケージが必要です。
- 日本語フォント
- 日本語入力システム (かな漢字変換エンジン)
- 入力メソッドフレームワーク: uim
日本語フォント
フォントの設定やその他詳細についてはフォントおよびフォント設定を参照して下さい。
おすすめの日本語フォントは以下の通りです。
ゴシック体のみ
- Adobe が開発するオープンソース OTF フォント。
ゴシック体と明朝体
- IPA (情報処理推進機構) が提供するオープンソース OTF フォント。ゴシック体 (サンセリフ体) と明朝体 (セリフ体) グリフを含む。
2ちゃんねるの Shift JIS アートを適切に表示したい場合、次のいずれかのフォントを使うと良いでしょう:
- IPAモナーフォント (AUR: ttf-ipa-monaAUR)
- Monapo フォント (AUR: ttf-monapoAUR)
uim
pacman を使う
PKGBUILD を使ってソースから uim をコンパイル
例えば、自分でビルドオプションをカスタマイズしたい場合などは ABS を使うなどしてソースからコンパイルできます。
Arch 公式リポジトリでは、uim は以下のビルドオプションをつけてビルドされています (1.8.6 現在):
--with-anthy-utf8
: Anthy (UTF-8) のサポートを有効にする。--with-qt4-immodule
: Qt4 immodule をビルドする。--with-qt4
: Qt4 で動作する uim-tools をビルドする。
すべてのビルドオプションは公式wikiを参照してください。
KDE4 plasma ウィジェットを使用する場合、ビルドのために (makedepends として) automoc4AUR をインストールし、ビルドオプションに --enable-kde4-applet
を追加してください。
日本語入力システム
Anthy
Anthy はオープンソースの世界で最も知られているインプットメソッドの一つです。長い間メンテされていませんでしたが、2010年5月より Debian が引き継ぎました。
anthy は公式リポジトリからインストールできます。
cannadic改
オリジナル Anthy のデフォルト辞書には EUC-JP (JISX0208) で定義されていない文字 (例えば "①" や "♥" など) は含まれていません。alt-cannadic はそれら文字を含んだ辞書を提供しています。
これを使用するには、cannadic改辞書をダウンロードし、~/.anthy/imported_words_default.d
配下に置いてください。
$ tar jxvf alt-cannadic-091230.tar.bz2 $ mkdir ~/.anthy/imported_words_default.d (if not exist) $ cp alt-cannadic-091230/extra/*.t ~/.anthy/imported_words_default.d/
詳細は公式サイトのwikiで確認してください。
Modified Anthy (anthy-ut)
Modified Anthy はオリジナル Anthy のかな漢字変換の品質向上を狙ったパッチ及び辞書のセットです。
Modified Anthy は、以下の2つのアップストリームからなっています:
PKGBUILD を使って Modified Anthy をコンパイル
Modified Anthy は AUR に anthy-utAUR[リンク切れ: アーカイブ: aur-mirror] という名前で登録されています。
anthy-ut tarball を入手し、makepkg でビルド及びインストールします:
$ wget https://aur.archlinux.org/packages/anthy-ut/anthy-ut.tar.gz $ tar xvf anthy-ut.tar.gz $ cd anthy-ut $ makepkg -s -i
すでに Anthy を使用していた場合は、既存の学習データのフォーマットを変換しなければなりません。
$ rm ~/.anthy/last-record1_*.bin $ anthy-agent --update-base-record $ rm ~/.anthy/last-record1_*.bin $ anthy-agent --update-base-record
(同じ事を2回繰り返していますが、間違いではありません)
Mozc
Mozc を参照してください。
Mozc は Chromium OS、Windows、Mac、あるいは Linux など、マルチプラットフォームで動作するよう設計された日本語インプットメソッドエディタ (IME) であり、このオープンソースプロジェクトは Google 日本語入力 から派生したものです。
MozcAUR は公式には IBus にしか対応していませんが、macuim が uim-mozc プラグインを提供しています。
無印Mozc
uim-mozcAUR が利用できます。
他の Mozc パッケージと同様に pnsft-pur リポジトリからインストール可能です。 これを使用する場合は以下を /etc/pacman.conf に追加します:
[pnsft-pur] SigLevel = Optional TrustAll Server = https://osdn.net/projects/ponsfoot-aur/storage/pur/x86_64/
そしてパッケージデータベースを更新します:
# pacman -Syy
インストールするパッケージは以下のようにグループ指定で選択することができます:
# pacman -S mozc-im
または、例えば以下のように直接指定します:
# pacman -S uim-mozc
mozc-ut
mozc-ut2AUR も uim-mozc に対応しています。
uim-mozc をビルドするには、PKGBUILD を以下のように編集します (_uim-mozc=
の行をコメント解除):
## If you will not be using ibus, comment out below. _ibus_mozc="yes" ## If you will be using uim, uncomment below. _uim_mozc="yes" ## If applying patch for uim-mozc fails, try to uncomment below. #_kill_kill_line="yes" ## This will disable the 'kill-line' function of uim-mozc.
Mozc の登録
Google CGI API for Japanese Input
Google CGI API for Japanese Input (Google-CGIAPI-Jp) は、Google による、日本語変換をインターネット上で実現するための、CGI サービスです。これは専用のアプリケーションを必要とせず、ウェブブラウザから使用することができます。これは Google 日本語入力の CGI 版であるため、変換品質は Mozc より良いようです。
uim もこのサービスに対応しています。uim-im-switcher-gtk/gtk3/qt4 や uim-pref-gtk/gtk3/qt4 で "Google-CGIAPI-Jp" を選択してください。
設定
環境変数
以下を ~/.xprofile、~/.xinitrc、~/.xsession などに設定します:
export GTK_IM_MODULE='uim' export QT_IM_MODULE='uim' uim-xim & export XMODIFIERS='@im=uim'
ツールバーユーティリティ
UimToolbar を使用する場合は、以下のうちの一つを追加します。
uim-toolbar-gtk/qt
ウィンドウとして表示されるツールバーを使用する場合。
GTK+ 2 用:
uim-toolbar-gtk &
GTK+ 3 用:
uim-toolbar-gtk3 &
Qt4 用:
uim-toolbar-qt4 &
uim-toolbar-gtk-systray
システムトレイ (通知エリア) に表示されるツールバーを使用する場合。
GTK+ 2 用:
uim-toolbar-gtk-systray &
GTK+ 3 用:
uim-toolbar-gtk3-systray &
パネルアプレット
GNOME、Xfce、あるいは KDE を使用している場合、パネルアプレットのツールバーも使用できます。Xfce の場合には xfce4-xfapplet が必要です。
systemd を使用している場合
X セッションの管理に systemd を使用している場合、systemd セッション内で環境変数の設定が必要になります。
~/.config/systemd/user/uim-env.service
[Unit] Description=uim environment initialization Before=xorg.target [Service] Type=oneshot ExecStart=/usr/bin/systemctl --user set-environment XMODIFIERS=@im=uim ExecStart=/usr/bin/systemctl --user set-environment GTK_IM_MODULE=uim ExecStart=/usr/bin/systemctl --user set-environment QT_IM_MODULE=uim
~/.config/systemd/user/uim.service
[Unit] Description=uim daemon Wants=uim-env.service After=xorg.target [Service] ExecStart=/usr/bin/uim-xim Restart=on-abort [Install] WantedBy=xorg.target
~/.config/systemd/user/uim-toolbar.service
[Unit] Description=uim toolbar PartOf=uim.service [Service] ExecStart=/usr/bin/uim-toolbar-of-your-choice Restart=on-abort [Install] WantedBy=uim.service
以下のコマンドでサービスが有効になります:
$ systemctl --user enable uim.service uim-toolbar.service
uim の初期設定
以下のコマンドで uim の設定ウィンドウが表示されます :
$ uim-pref-gtk (または、uim-pref-gtk3/uim-pref-qt4)
「全体設定」の「標準の入力方式」で、お気に入りのインプットメソッドを選択します。
uim-xim
を起動するか、X の再起動で uim を使用して日本語が入力できるようになります。
Emacs で 日本語を入力する
uim は uim.el を提供しており、Emacs 上で uim を使用して日本語を入力できます。ここでは Emacs 上で uim を、文字エンコーディング UTF-8 で使用する設定を説明します。
詳細は 公式 wiki 参照してください。
LEIM かマイナーモードか
uim.el を使用する場合、直接マイナーモードで使用するか、LEIM (Library of Emacs Input Method) を使用するかを選択できます。uim.el とそれ以外の IM をよく切り替えて使う場合は LEIM フレームワークを使用してください。
マイナーモードで使うための設定
マイナーモードで使用する場合は、以下の設定を .emacs.d/init.el
あるいはその他の Emacs カスタム設定用ファイルに追加します。
;; read uim.el (require 'uim) ;; uncomment next and comment out previous to load uim.el on-demand ;; (autoload 'uim-mode "uim" nil t) ;; key-binding for activate uim (ex. C-\) (global-set-key "\C-\\" 'uim-mode)
LEIM で使うための設定
LEIM で使用する場合は、以下の設定を .emacs.d/init.el
あるいはその他の Emacs カスタム設定用ファイルに追加し、使用するかな漢字変換エンジンをデフォルトに指定します。
;; read uim.el with LEIM initializing (require 'uim-leim) ;; set default IM. Uncomment the one of the followings. ;(setq default-input-method "japanese-anthy-utf8-uim") ; Anthy (UTF-8) ;(setq default-input-method "japanese-google-cgiapi-jp-uim") ; Google-CGIAPI-Jp ;(setq default-input-method "japanese-mozc-uim") ; Mozc
既定の文字エンコーディングの指定
uim.el はデフォルトの文字エンコーディングを EUC-JP としていますが、UTF-8 を使用したい場合は以下の設定を追加します。
;; Set UTF-8 as preferred character encoding (default is euc-jp). (setq uim-lang-code-alist (cons '("Japanese" "Japanese" utf-8 "UTF-8") (delete (assoc "Japanese" uim-lang-code-alist) uim-lang-code-alist)))
インライン変換候補表示機能をデフォルトで有効にする
インライン変換候補表示機能とは、変換候補を入力中の文字列のすぐ下(もしくはすぐ上)に縦方向に並べて表示させる機能です。インライン変換候補表示機能をデフォルトで有効にする場合は以下の設定を追加します。
;; set inline candidates displaying mode as default (setq uim-candidate-display-inline t)
入力モードの初期値をひらがな入力にする
uim.el 起動時の入力モードをひらがな入力にする場合は、使用するインプットメソッドに合わせて以下のように編集します。
;; Set Hiragana input mode at activating uim. (setq uim-default-im-prop '("action_anthy_utf8_hiragana" "action_google-cgiapi-jp_hiragana" "action_mozc_hiragana"))
Emacs 上で C-SPC が IM の入力モードの切り替えに使われてしまうのを抑止する
デスクトップ環境上で IM のオン・オフのキー割り当てに C-SPC を設定していると、uim.el がアクティブになっている時 C-SPC は入力モードの切り替えに使用されます。これを抑止し、set-mark-command として使用するには、以下の設定を .emacs.d/init.el
あるいはその他の Emacs カスタム設定用ファイルに追加します。
(add-hook 'uim-load-hook '(lambda () (define-key uim-mode-map [67108896] nil) (define-key uim-mode-map [0] nil)))
Emacs 上で C-SPC が IM のオン・オフで使われてしまうのを抑止する
デスクトップ環境上で IM のオン・オフのキー割り当てに C-SPC を設定しており、Emacs 上でもそちらが優先されて C-SPC/C-@ で set-mark-command が使えなくて困る、という場合は、~/.Xresources
か ~/.Xdefaults
に以下を追加します。
Emacs*UseXIM: false
トラブルシューティング
Opera で日本語入力ができない
Opera で日本語が入力できない場合は、以下のように環境変数を変更してみてください:
export QT_IM_MODULE='xim'
uim-toolbar-gtk-systray: トレイアイコンがつぶれてます
DE、WM、あるいはパネルアプリケーションの中には、システムトレイ上に、アプリケーションあたり1個のアイコンスペースしか用意しないものがありますが、uim-toolbar-gtk-systray はそこにデフォルトのツールバーアイコン4,5個をまとめて表示しようとするために潰れてしまいます。ツールバーに表示するアイコンを1個だけにすることで解決します。以下は、入力モードアイコンのみを表示させる例です:
uim-pref-gtk
を起動する。- 「グループ」の中から「ツールバー」を選択する。
- 「入力方式切り替えメニュー」および「ボタン」ボックスの中のすべてのチェックボックスのマークを外す。
- 「グループ」の中から、使用する入力メソッド (Anthy、Anthy (UTF-8)、またはMozc)を選択する。
- 「ツールバー」ボックスの「有効にするボタン」の右端にある「編集」ボタンをクリックする。
- 「入力モード」のみ有効にする。
- 「OK」をクリックして設定ウィンドウを閉じる。
トレイアイコンは "あ" (ひらがな入力) または "ー" (直接入力) になっているはずです。
暗いテーマを使用しているので uim のモードアイコンが見えません
暗いテーマ用のアイコンを使用します (uim 1.6.0 以降)。
uim-pref-gtk
を起動する。- 「グループ」の中から「ツールバー」を選択する。
- 「アイコン」ボックスの「濃色背景向けアイコンを使用する」にチェックマークをつける。
- 「OK」をクリックして設定ウィンドウを閉じる。
GTK_IM_MODULE を設定したのに GTK+ 2 アプリケーションで uim が使用できません
環境変数 GTK_IM_MODULE を設定してあるのに GTK+ 2 アプリケーションで uim が使用できない場合、gtk-query-immodules-2.0
によって作成される gtk.immodules の指定が必要です。
GTK+ 2 用のデフォルトパスは /etc/gtk-2.0/gtk.immodules
です。
環境変数 GTK_IM_MODULE_FILE を設定するか (GTK+ 3 アプリケーションとの互換性はないので 非推奨)、im_module_file を設定します (推奨)。
以下を /etc/gtk-2.0/gtkrc
または ~/.gtkrc-2.0
に追加します:
im_module_file "/etc/gtk-2.0/gtk.immodules"
全角モードで子音を入力できません
全角モードで子音を入力したい場合、以下を設定ファイルに追加してください。
例: ~/.uim.d/customs/custom-google-cgiapi-jp.scm
(define ja-rk-rule-hoge (map (lambda (c) (list (cons (list c) ()) (list c c c))) '("b" "c" "d" "f" "g" "h" "j" "k" "l" "m" "p" "q" "r" "s" "t" "v" "w" "x" "y" "z" "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"))) (if (symbol-bound? 'ja-rk-rule-hoge) (set! ja-rk-rule (append ja-rk-rule-hoge ja-rk-rule)))