KAKASI(1)

NAME
KAKASI - Kanji kana simple inverter (漢字かな読み上げ)

SYNOPSIS
kakasi [options] [jisyo1 [jisyo2 [jisyo1,,]]]

DESCRIPTION
KAKASI は漢字かな混じり文をかなだけの文やローマ字表記に変換することを 目的として作られました。 漢字の読めない端末を使った時や、 漢字に不慣れな外国人や子供に文章を紹介したい時などに使えるかもしれません。 標準入力から日本語の文章を入力すると、 指定された文字セットに変換されて出力されます。

例えば次の例では文中の漢字がひらがなに変換されます。

    kakasi -JH < document

バージョン 2.3.0 からは、分かち書き機能が追加されました。 例えば次の例では、日本語文が分かち書きされて出力されます。

    kakasi -w < document

バージョン 2.3.5 からは、学年別ひらがな変換機能が追加されました。 例えば次の例では、小学4年生までに習った漢字は漢字のまま表示し、 それ以外の難しい漢字はひらがなに開いて出力されます。

    kakasi -l4 < document

KAKASI は文字をローマ字に変換したり、 JIS x0201 のかたかな文字や、 JIS x0208 のひらがな、 かたかなの間で相互に変換できます。 KAKASI では文字セットとして次のものを理解します。 (カッコの中は KAKASI のオプションとして指定する文字を表します。)

ASCII (a)
    いわゆる ascii です。'〜', '＼' が含まれています。

JISROMAN (j)
    いわゆる jis roman です。'￣' , '￥' が含まれています。

GRAPHIC (g)
    これについては正しい名称を知りません。 DEC 社の端末で表示される罫線などがこの文字セットに含まれます。

かたかな (k)
    JIS x0201 で定義されている文字セットのうち GR の部分です。

    以下は JIS x0208 を便宜上分割したものです。規格上は全体で一つの文字セットです。

漢字 (J)
    16 区以降の `亜' に続く文字です。

ひらがな (H)
    4 区にあるひらがなです。

かたかな (K)
    5 区にあるかたかなです。 ひらがなと 1 区ずれただけでなく、独自の個性が発揮されているものです。

記号 (E)
    上記以外の文字です。

次の文字セット間の変換が指定できます。

ASCII
    -> JISROMAN, 記号

JISROMAN
    -> ASCII, 記号

GRAPHIC
    -> ASCII, JISROMAN, 記号

JISx0201のかたかな
    -> ASCII, JISROMAN, カナ, ひらがな

記号  -> ASCII, JISROMAN

かたかな
    -> ASCII, JISROMAN, JISx0201のかたかな, ひらがな

ひらがな
    -> ASCII, JISROMAN, JISx0201のかたかな, カナ

漢字  -> ASCII, JISROMAN, JISx0201のかたかな, カナ, ひらがな

漢字からの変換では読み上げによって変換します。 JISx0201かたかな、かたかな、ひらがな、漢字から ASCII と JISROMAN への 変換ではローマ字変換を行います。

文字セットの変換指定オプション

-a[jE]
    E が指定されると JISx0208 の記号への変換になります。 それ以外のコードが指定されるか, 引数がないと変換しません。

-j[aE]
    E が指定されると JISx0208 の記号への変換になります。

-g[ajE]
    ちょっと無理があります。

-k[ajKH]
    aj を指定するとローマ字に変換します。 KH では JISx0208 のかたかなやひらがなに変換します。

-E[aj]
    JISx0208 の記号を ASCII または JIS ROMAN にします。 現在のバージョンではそのほとんどが手抜き工事になっています。

-H[ajkK]
    aj を指定するとローマ字に変換します。 k ではJISx0201のかたかなに、 K ではかたかなに変換します。

-K[ajkH]
    aj を指定するとローマ字に変換します。 k ではJISx0201のかたかなに、 H ではひらがなに変換します。

-J[ajkHK]
    まず辞書を引いて読み上げ、 aj が指定されるとローマ字に変換します。 k ではJISx0201のかたかなに、 H ではひらがなに、 K ではかたかなに変換します。

Example:

    1. 漢字をひらがなに読み上げる

        kakasi -JH

    2. すべての JISx0208 で定義された文字をおきかえる。

        kakasi -Hk -Kk -Jk -Ea

    3. すべての文字を JISx0208 の文字におきかえる。

        kakasi -aE -jE -gE -kK

    4. ローマ字変換

        kakasi -Ha -Ka -Ja -Ea -ka

    5. かたかなとひらがなを交換

        kakasi -HK -KH

漢字コーディング

KAKASI では次の漢字コーディングシステムが使えます。

           JIS, OLDJIS, EUC, DEC, SJIS, UTF8

-i{jis, oldjis, euc, dec, sjis, utf8}
    入力側の漢字コードを指定します。 もしも指定されない場合には入力から判断しようとします。 KAKASI は入力をためこんで統計的に処理する方法がとれないので、 最初の漢字らしい文字をもって判断します。

    1. ESC-$-B
    JIS コーディングと解釈します。 またこれ以降は G0 に 新JIS が指示されたものとします。

    2. ESC-$-@
    旧JIS コーディングと解釈します。 またこれ以降は G0 に 旧JIS が指示されたものとします。

    3. 0x80 以上の値
    この時さらに 1 Byte を入力して、 この 2 Byte で シフトJIS の JISx0208 文字として解釈できる場合、 新JIS コーディングと解釈します。 またこれ以降は GR は使えず シフトJIS の文字として解釈されます。

    4. 0x80 で上記に該当しない
    以降は EUC コーディングを仮定します。
    なお、オプションで指定する以外に DEC コーディングが指定されることはありません。
    最初にJISx0201のかたかなを表現する 0xa0 以上のコードに遭遇した場合と、 EUC コードなのに SJIS としても解釈され得る文字に遭遇すると誤って解釈します。 つまり `燹' から `螢' までの 945 文字のいずれかが EUC で表現されていても SJIS に解釈されてしまいます。

-o{jis, oldjis, euc, dec, sjis, utf8}
    出力側の漢字コーディングを指定します。 もしも指定されない場合には入力と同じにします。

漢字のコーディングのモデルとしては、 以下のように文字セットの指示と呼出しがされているものとします。

JIS:

    GL -- G0 -- ASCII
    GR -- G1 -- JISx0201のかたかな
          G2 -- JISx0201のかたかな
          G3 -- JISx0201のかたかな

JISx0208 の文字は ESC-$-B を用いて G0 に指示をして出力します。

OLDJIS:

    GL -- G0 -- JISROMAN
    GR -- G1 -- JISx0201のかたかな
          G2 -- JISx0201のかたかな
          G3 -- JISx0201のかたかな

JISx0208 の文字は ESC-$-@ を用いて G0 に旧JISを指示をして出力します。

EUC:

    GL -- G0 -- ASCII
          G1 -- JISx0201のかたかな
          G2 -- JISx0201のかたかな
    GR -- G3 -- JISx0208 の文字

JISx0201のかたかなの表示には ESC-N (シングル シフト)を使って、 GR に G2 を呼出して出力します。

DEC:

    GL -- G0 -- ASCII
          G1 -- GRAPHIC
          G2 -- JISx0201のかたかな
    GR -- G3 -- JISx0208 の文字

JISx0201のかたかなの表示には ESC-} を使って GR に G2 を呼出して出力します。

SJIS:

    GL -- G0 -- ASCII
          G1 -- JISx0201のかたかな
          G2 -- JISx0201のかたかな
          G2 -- JISx0201のかたかな
    GR -- SHIFTJIS

JISx0201のかたかなとJISx0208 の文字の表示は GR で行います。

入力側では次のようにエスケープシークエンスを解釈します。

呼出し:
           G0 G1 G2 G3
GL: SI SO ESC-n ESC-o
GR: ESC-~ ESC-} ESC-|

シングルシフト:
           G0 G1 G2 G3
                        ESC-N ESC-O
                        (SS2) (SS3)

指示：
       ASCII JISROMAN GRAPHIC かたかな 旧JIS 新JIS
G0: ESC-(-B ESC-(-J ESC-(-0 ESC-(-I ESC-$-@ ESC-$-B
G1: ESC-)-B ESC-)-J ESC-)-0 ESC-)-I ESC-$-)-@ ESC-$-)-B
G2: ESC-*-B ESC-*-J ESC-*-0 ESC-*-I ESC-$-*-@ ESC-$-*-B
G3: ESC-+-B ESC-+-J ESC-+-0 ESC-+-I ESC-$-+-@ ESC-$-+-B

漢字かな変換オプション

-Jx あるいは -w を使って漢字からの変換にのみ適用されるオプションです。 他の変換には影響しません。

-p  辞書中で照合したものが複数ある時に、そのすべてを表示します。 多くの単語は複数の読みがあります。 その場合 {} でくくって表示します。

            素子 -> {もとこ|そし}

-s  漢字からの変換で変換ごとに空白等の区切を入れるようにします。 前にすでに改行、空白、TAB が入っていればなにもしませんが、 なければ空白文字を入れます。 また後ろにも空白を入れます。 漢字かな混じり文をローマ字に変換する場合には不可欠ですね。

        "漢字かな混じり文をローマ字に変換"
        " kan'zi kana ma ziri bun' woro-ma zi ni hen'kan' "

-S  -s オプションあるいは -w オプション指定時に出力される区切り文字は デフォルトでは空白文字 ' ' ですが、 -S オプションで任意の ASCII 文字列を指定することができます。 たとえば -s -S__ のようにオプションを与えると、

        "漢字かな混じり文を"

    が、

        "漢字__かな__混__じり__文__を"

    となります。あるいは、-s -S"<sep>" とすれば、

        "漢字<sep>かな<sep>混<sep>じり<sep>文<sep>を"

    となります。

-f  ふりがなモード。 つまり変換前の漢字の脇にその読みを差し込みます。

      "変換前の漢字の脇に"

      "変換前[へんかんまえ]の漢字[かんじ]の脇[わき]に"

-F  ふりがなモード時の括弧として任意の ASCII 文字列を指定します。 左右の括弧に対応して -Fl と -Fr というサフィックスがつきます。 たとえば、左側に左丸括弧を指定するには -Fl"(" と、 右側に右丸括弧を指定するには -Fr")" と指定します。

      "変換前(へんかんまえ)の漢字(かんじ)の脇(わき)に"

    あるいは、-JF -f -Fl"<ruby>" -Fr"</ruby>" のように指定すると、 以下のようにできます。

      "変換前<ruby>へんかんまえ</ruby>の漢字<ruby>かんじ</ruby>の脇<ruby>わき</ruby>に"

-c  漢字熟語中に含まれる、空白や改行を除いて読むようにします。 複数の行に改行で分割されたり、行の先頭にタブや引用符がある時 でもよみがなの解釈が行えるようにします。 読みとばす文字の default は{改行 タブ 空白}ですが、 任意の ascii 文字が追加できます。 JUNET のニュースならば、引用を示す -c'>' とするといいでしょう。 以下の例では -c">_" としたものです。

        >> このバグについてはこれから検
        >> 討してみます。 谷_山__浩_子

        >> このバグについてはこれからけんとう
        >> してみます。 たにやま___ひろこ_

-C  漢字をローマ字に変換する場合に、 先頭のアルファベットを大文字にします。 -Ja -Jj と共に使った場合のみ有効です。

-U  漢字をローマ字に変換する場合に、 アルファベットをすべて大文字にします。 -Ja -Jj と共に使った場合のみ有効です。

その他のオプション

-rk ローマ字への変換様式をヘボン式から訓令式に変更します。 例えば、'し' は標準では 'shi' ですが、 'si' になります。 -r のみもしくは、 -rh などの指定では Hepburn (ヘボン) 式になります。

-t  ローマ字への変換で従来のヘボン式を利用します。

-u  文字の出力ごとに fflush() を呼びます。 system V などで端末出力をすぐ見たい時に必要になるかもしれません。

-w  分かち書きをします。詳しくは、README.wakati をご覧下さい。

-l[123456jn]
    学年別ひらがな変換機能(仮名表記モード)を指定します。 詳しくは、README.level をご覧下さい。

-L[123456jn]
    学年別ひらがな変換機能(振り仮名モード)を指定します。 詳しくは、README.level をご覧下さい。

辞書
KAKASI ではユーザの辞書を任意に追加することができます。使用できる辞書は SKK の辞書に準じたフォーマットか Wnn の ASCII 形式などのように、 1 行に読みと熟語の順に並んでいて、 空白、タブ、カンマ等で区切られているものが使えます。 辞書の漢字コーディングは JIS または EUC に限ります。 詳細については JISYO というファイルを参照してください。

環境変数

KANWADICTPATH
    kanwadict の場所 (ファイル名を含むフルパス) を指定することができます。 省略時は $prefix/share/kakasi/kanwadict を設定したのと同じことになります。

ITAIJIDICTPATH
    itaijidict の場所 (ファイル名を含むフルパス) を指定することができます。 省略時は $prefix/share/kakasi/itaijidict を設定したのと同じことになります。

AUTHOR
高橋 裕信 <takahasi@tiny.or.jp>

FILES

$prefix/share/kakasi/kanwadict
    KAKASI の基本辞書です。 インストール時に mkkanwa によって作成されます。

SEE ALSO
mkkanwa(1)

DIAGNOSTICS
辞書にトラブルがあれば 0 以外の値を返します。

BUGS
何かありましたら、高橋さんにではなく、KAKASI プロジェクト <kakasi-dev@namazu.org> までお知らせ下さい。