# Input Japanese using uim (日本語)

このページでは uim を使った日本語入力の方法について説明しています。
もしあなたが SCIM を使う場合は Smart Common Input Method platform を、IBusを使う場合はIBus (日本語)を参照して下さい。

## インストール

日本語入力を行うためには、次のパッケージが必要です。

- 日本語フォント
- 日本語入力システム (かな漢字変換エンジン)
- 入力メソッドフレームワーク: uim

### 日本語フォント

フォントの設定やその他詳細については Fonts (日本語) および Font Configuration (日本語) を参照して下さい。

おすすめの日本語フォントは以下の通りです。

- IPA フォント (otf-ipafont)

  高品質かつ無償で利用できるアウトラインフォント。ゴシック体 (サンセリフ体) や明朝体 (セリフ体) グリフを含む。openSUSE の日本語ロケールの標準フォント。

- VL ゴシック (AUR: ttf-vlgothic)

  Debian や Fedora の日本語環境、Vine Linux などで採用されている標準フォント。

- UmePlus ゴシック (AUR: ttf-umeplus)

  Mandriva Linux 日本語環境の標準フォント。

2ちゃんねるの Shift JIS アート を適切に表示したい場合、次のいずれかのフォントを使うと良いでしょう:

- IPAモナーフォント (AUR: ttf-ipa-mona)
- Monapo フォント (AUR: ttf-monapo)

### uim

#### pacman を使う

uim は公式リポジトリからインストールできます。

#### 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 として) automoc4 をインストールし、ビルドオプションに `--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で確認してください。

Warning: この拡張辞書を使う場合は、使用するインプットメソッドは Anthy (UTF-8) でなければなりません。

#### Modified Anthy (anthy-ut)

Modified Anthy はオリジナル Anthy のかな漢字変換の品質向上を狙ったパッチ及び辞書のセットです。

Modified Anthy は、以下の2つのアップストリームからなっています:

- G-HAL氏によって作成されているパッチの当てられたAnthy
- UTSUMI氏によって作成されている巨大な辞書。

Warning: Modified Anthy は Anthy (UTF-8) にのみ対応しています。従って uim の設定で使用する (デフォルトの) インプットメソッドは Anthy (UTF-8) でなければなりません。
Warning: Modified Anthy はオリジナル Anthy に対し、辞書及び学習データの互換性がありません。

##### PKGBUILD を使って Modified Anthy をコンパイル

Modified Anthy は AUR に anthy-ut という名前で登録されています。

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 日本語入力 から派生したものです。

Mozc は公式には IBus にしか対応していませんが、macuim が uim-mozc プラグインを提供しています。

##### 無印Mozc

uim-mozc が利用できます。

Note: これは uim-mozc の kill_line 機能をサポートしていません。

他の Mozc パッケージと同様に Unofficail Repository からインストール可能です。 これを使用する場合は以下を /etc/pacman.conf に追加します:

    [pnsft-pur]
    SigLevel = Optional TrustAll
    Server = http://downloads.sourceforge.net/project/pnsft-aur/pur/$arch

Note: 用意されているのは現在 x86_64 用パッケージのみです。

そしてパッケージデータベースを更新します:

    # pacman -Syy

インストールするパッケージは以下のようにグループ指定で選択することができます:

    # pacman -S mozc-im

または、例えば以下のように直接指定します:

    # pacman -S uim-mozc

##### mozc-ut および mozc-svn

mozc-svn と mozc-ut も uim-mozc に対応しています。

Note: mozc-ut は 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.

Tip: ibus-mozc がいらない場合は `_ibus_mozc=` の行をコメントアウトします。

##### Mozc の登録

Warning: uim のアップグレードや (再) インストールのたびに以下のコマンドを実行して mozc を (再) 登録する必要があります。
# uim-module-manager --register mozc

#### Google CGI API for Japanese Input

Google CGI API for Japanese Input (Google-CGIAPI-Jp) は、Google による、日本語変換をインターネット上で実現するための、CGI サービスです。これは専用のアプリケーションを必要とせず、ウェブブラウザから使用することができます。これは Google 日本語入力の CGI 版であるため、変換品質は Mozc より良いようです。

Note: このサービスはサーバーとの入力文字列や変換候補のやりとりをプレーンテキストで行っています。(2012年09月現在)

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'

Note:

- これらの環境変数はデスクトップ環境やウィンドウマネージャーの起動前に export してください。
- X セッションの管理に systemd を使用している場合はsystemd を使用している場合を参照してください。

### ツールバーユーティリティ

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)

「全体設定」の「標準の入力方式」で、お気に入りのインプットメソッドを選択します。

Note: 初めて Mozc をインストールした直後は、Mozc は選択できません。これは Mozc が「使用可能にする入力方式」で有効になっていないためです。その右の「編集」ボタンをクリックして Mozc を有効にしてください。

`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個だけにすることで解決します。以下は、入力モードアイコンのみを表示させる例です:

1. `uim-pref-gtk` を起動する。
2. 「グループ」の中から「ツールバー」を選択する。
3. 「入力方式切り替えメニュー」および「ボタン」ボックスの中のすべてのチェックボックスのマークを外す。
4. 「グループ」の中から、使用する入力メソッド (Anthy、Anthy (UTF-8)、またはMozc)を選択する。
5. 「ツールバー」ボックスの「有効にするボタン」の右端にある「編集」ボタンをクリックする。
6. 「入力モード」のみ有効にする。
7. 「OK」をクリックして設定ウィンドウを閉じる。

トレイアイコンは "あ" (ひらがな入力) または "ー" (直接入力) になっているはずです。

### 暗いテーマを使用しているので uim のモードアイコンが見えません

暗いテーマ用のアイコンを使用します (uim 1.6.0 以降)。

1. `uim-pref-gtk` を起動する。
2. 「グループ」の中から「ツールバー」を選択する。
3. 「アイコン」ボックスの「濃色背景向けアイコンを使用する」にチェックマークをつける。
4. 「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)))

## 関連文献

uim
  uim official document
  uim on wikibooks

Fonts
  Japanese fonts showcase
  modified Japanese fonts

Categories:

- Internationalization (日本語)
- 日本語