JIS X 0213 Emacsキット、使い方メモ。 Emacs20上で、JIS X 0213を使うためのパッケージがこのディレクトリに 入っています。このパッケージは、基本的に川幡 太一氏によって作成され ました。 このマニュアルは、使用法と、このパッケージにおける基本的な 設計を簡便に記してあります。(一部、himiによって補足されています。) o... Install このdirectoryをcurrentにして、 emacs -batch -q --no-site-file -l x0213-comp.el もしくは、Meadowであれば、 MeadowNT(95).exe -batch -q --no-site-file -l x0213-comp.el で、byte compileできます。あとは、このdirectoryの 中のすべてのファイルをload-pathの通ったところに置いてください。 その際、Mule-UCSもきちんとインストールしておいてください。 o... 基本設定 .emacsに(若しくは、site-start.elなどの適切なstart up fileに) 以下の行を加えるだけで、通常は問題がないはずです。 --- (require 'jisx0213) --- 言語環境(language-environment)の設定を行いたい場合は、上記の設定の 後に(重要、もし、上記の設定の前に行った場合は、JIS X 0213 環境が 現在の言語環境に導入されません。)以下の設定を加えてください。 --- (set-language-environment "Japanese") --- o... Module 構成 jisx0213.el ... setup module 各moduleをrequireするだけです。 x0213-cdef.el ... charset definition define-charsetで、2つのcharsetを定義しています。 x0213-udef.el ... Mule-UCS definition Mule-UCSのパッケージ定義ファイルです。 un-define.elcに依存し、un-defineを読み込んだあと、JIS X 0213と Unicode間の変換規則をunicode-basic-translation-ruleに導入します。 x0213-csys.el ... coding system definition coding-systemとして、iso-2022-jp-3(-strict, -compatible)と、 euc-jisx0213, shift_jisx0213 を定義しています。euc-jisx0213、 shift_jisx0213については、JIS X 0213の規格書を参照してください。なお、 euc-jisx0213では、JIS X 0212文字もG3に対応しますので、euc-japanの上 位互換となっています。 iso-2022-jp-3(-strict, -compatible)のコーディング系の違いに付いて は、下の方を参照してください。 x0213-mime.el ... MIME encoding setup for APEL/FLIM/SEMI APEL, FLIM, SEMIのための設定ファイルです。 JIS X 0213文字を含む文書をISO-2022-JP-3としてMIME符号化する際、 変数 coding-system-for-mime-charset-iso-2022-jp-3 によって、 iso-2022-jp-3-compatible, iso-2022-jp-3-strict, iso-2022-jp-3のうち のどれを使用するかを選択することができます。 例えば、 --- (setq coding-system-for-mime-charset-iso-2022-jp-3 'iso-2022-jp-3) --- と、.emacsなどの設定ファイルに記述すると、`ISO-2022-JP-3' MIME charset を、符号化もしくは複合化するときに iso-2022-jp-3 coding systemを用います。 x0213-font.el ... font setup / its encoder definition. フォントの設定とフォント用のShift JISX0213 encoderを設定するモジュールです。 x0213-util.el ... other supplement JIS X 0213 utilities. JIS X 0213を扱う上で、有用な関数などの定義がなされているモジュールです。 x0213-sjis.el ... Shift-JIS encoder and decoder for JIS X 0213 This module is required only at byte-compile time. Shift JIS encoderおよびdecoderの設定を行うモジュールです。内部的に Mule-UCSによって利用され、x0213-csys.elによって必要な部分が用いられます。 なお、このモジュールはバイトコンパイル時にのみ要求され、実行時には 通常、必要とされません。 o... フォントの設定 (A) Shift-JIS フォントを使う。 charset-registryが、"-shiftjis-0"であるフォントを使用できます。 そのようなフォントの例としては、フリーウェアの"W1基本漢字フォン ト"があります。これはTrueType フォントですので、例えば以下のよう にBDFを作成してシステムに組み込みます。(ttf2bdfは FreeType(http://www.freetype.org)の標準添付ソフトです。) ttf2bdf -f waka -t w1 -eid 2 -r 72 -p 24 W1_01.TTF > w1-sjis-24.bdf なお、w1基本漢字フォントは、以下からダウンロード可能です。 http://www.vector.co.jp/soft/data/writing/se136466.html (B) JIS X 0213のBDFフォントを使う。 charset-registryが、"-jisx0213.2000-1"および"-jisx0213.2000-2"の フォントが使用できます。 今村さんが作られたフリーな16ドットのJIS X 0213 BDFフォントは、 http://www.mars.sphere.ne.jp/imamura/jisx0213.html ftp://ftp.m17n.org/pub/character/fonts から入手可能(になる予定)です。 どちらのフォントを使うかによって、set-fontset-fontで設定する値が変り ますので、x0213-font.elの先頭部分を参考に、各自、必要ならば.emacs.el で、set-fontset-fontを実行しなおして下さい。 o... Meadow上でのフォント設定について。 Meadowにおいても、もちろん、JIS X 0213 fontを用いることが出来ます。  (1) BDF font の設定 (a) ... すでに、BDF fontをMeadow上で利用しており、 bdffont.elなどのモジュールを使用している場合、 bdf-font-file-alistに (japanese-jisx0213-1 "" 0) (japanese-jisx0213-2 "" 0) の2つのエントリを新たに追加してください。 (b) ... 既存のfontsetに、新たにjapanese-jisx0213-1 および japanese-jisx0213-2のcharsetにBDF fontを設定する場合。 (w32-auto-regist-bdf-font "bdf-font-for-jiskan16-2000-1" "" 0) (w32-auto-regist-bdf-font "bdf-font-for-jiskan16-2000-2" "" 0) のようにして、まず、BDF fontを登録します。 そのあと、使用したいfontsetに対して、 (set-fontset-font "<登録したいFONTSETの名前>" 'japanese-jisx0213-1 "bdf-font-for-jiskan16-2000-1") (set-fontset-font "<登録したいFONTSETの名前>" 'japanese-jisx0213-2 "bdf-font-for-jiskan16-2000-2") のようにして、登録を行ってください。  (2) TrueType font の利用 残念ながら、現状のところ、Windows上で問題なく利用できるJIS X 0213文字集合を持つTrueType fontの存在は確認できておりません。前 述の"W1基本漢字フォント"が、現状で存在するおそらく唯一のJIS X 0213文字集合をもつTrueType fontですが、筆者によって確かめた限り では、Windows NT/2000上では、Shift_JISX0213 encodingのフォントを 扱うことが出来ない、言い換えると、JIS X 0213 repertorieを利用す ることができません。推測に過ぎませんが、おそらく、内部処理時に Unicodeに直すためだと思われます。このため、CP932で定められていな いcode rangeを持つ文字の表示が出来ないようです。Windows 95/98では、 利用できるようですが(GDIでの内部処理がそもそもCP932だからであろう。)、 将来的にはその限りではありません。 ("W1基本漢字フォント"が、Shift_JISX0213 encodingではなく、独自の encoding にしてあれば、Meadow側でどうにかなったのかもしれませんが。) そのような問題があっても、Shift_JISX0213 encodingのTrueTypeフォ ントを利用したいという方の為に、このセクションでは、簡単に設定を 紹介します。なお、既に述べたとおり、そのようなフォントには、現状 では、"W1基本漢字フォント" しか存在しないと思われますが、このフォ ントは、propotionalフォントであり、しかも、サイズを小さくした時 の品質が著しく劣るので、現状では、使用をお勧めしかねます。なお、 その他のTrueType fontでも、JIS X 0213 レパートリーを包含する場合 は、使用できるかもしませんが、このセクションでの内容は有効ではな い可能性があります。ご了承ください。現状では、propotional フォン トを無理にMeadowで使用したときには、問題が多いので、改善する可能 性はありますが、早期にEmacs 21 baseに移行する方が根本的な対処に なると思われます。(のでEmacs20 baseのMeadowでは対策は行わないか もしれません。) (a) ... 手動設定の例 low level font selection APIを用いて、手動設定をしてください。 その際、encoderに、shift-jisx0213-font-encoderを指定してください。 例: 注:(logfontや、の部分は、お好みの形に修正してください。) --- (let* ((fontsetname "") (fontname "W1-ShiftJISX0213-font") (logfont '(w32-logfont "W1-01xxxx" 8 16 400 0 nil nil nil 128 1 3 2)) (preference (append '((encoding-type . 4) (encoder . shift-jisx0213-font-encoder)) (w32-get-logfont-info logfont)))) (w32-add-font fontname preference) (w32-change-font-logfont fontname 0 logfont) (set-fontset-font fontsetname 'japanese-jisx0213-1 fontname) (set-fontset-font fontsetname 'japanese-jisx0213-2 fontname)) --- (b) ... その他 将来のMeadowでは、JIS X 0213 fontの自動設定機能を組み込む可能性が あります。もし、そのような自動設定機能が有効である場合には、上記の 設定はhigh-level font setlection APIで置き換えることができるように なるでしょう。 これらの仕様は将来予告なく変更されることがありますので、ご注意ください。 o... コード系、`iso-2022-jp-3-compatible'の注意事項と、 `iso-2022-jp-strict', `iso-2022-jp-3'との相違点 JIS X 0213:2000の附属書2「ISO-2022-JP-3符号化表現」の4.1 (e)では、 ISO-2022-JP-3の符号化に際し、1B 24 42の切り替え符号以降で使用しては いけないJIS X 0213-1文字集合を附属書2表1で定めています。 この表には、JIS X 0208で定義されていない文字はもちろんのこと、JIS X 0208とJIS X 0213の包摂基準が変更された漢字等も含まれています。例え ば、「噛」、「黄」、「鴎」など漢字は、ISO-2022-JP-3では 1B 24 42 呼 び出しでの使用が禁止されています。 しかしJIS X 0208漢字の中から、これら1B 24 42での使用禁止漢字をいち いち、1B 24 28 4Fに切り替え直してしまうと、ISO-2022-JPで保存されたファ イルの内容を読み込み、再び保存する際に内容が破壊される可能性がありま す。 これを防ぐため、コード系`iso-2022-jp-3-compatible'では、これら「禁 止漢字」も、1B 24 42で符号化します。そのため、 iso-2022-jp-3-compatibleは、iso-2022-jpの完全上位互換となります。 (JIS X 0208において未定義の文字が1B 24 42で呼ばれることはありませ ん。) 一方、iso-202-jp-3-strictは、あくまでISO-2022-JP-3に従いつつも、可 能な限りのJIS X 0208文字を、1B 24 42で符号化します。そのため、 iso-2022-jp-3-strictでで符号化した文書は、ISO-2022-JPにしか対応して いないエディタでも「ある程度は」読めるようになっています。 これらのコード系における、1B 24 42と、1B 24 28 4Fの混在が気になる 場合は、JIS X 0213 文書の保存を、コード系`iso-2022-jp-3' で行なって ください。このコード系では、全てのJIS X 0213-1の文字を1B 24 28 4Fで 呼び出します。ただし、このコード系で保存した文書が、JIS X 0213に未対 応なエディタ等で読める可能性は低くなります。 以下に、「森鴎外」を各コード系でエンコードした場合の出力例を示しま す。 iso-2022-jp-3-compatible: 1B 24 42 3F 39 32 2A 33 30 1B 28 42 ESC $ B ? 9 2 * 3 0 ESC ( B iso-2022-jp-3-strict: 1B 24 42 3F 39 1B 24 28 4F 32 2A 1B 24 42 33 30 1B 28 42 ESC $ B ? 9 ESC $ ( O 2 * ESC $ B 3 0 ESC ( B iso-2022-jp-3: 1B 24 28 4F 3F 39 32 2A 33 30 1B 28 42 ESC $ ( O ? 9 2 * 3 0 ESC ( B o ... JIS X 0213で利用できる辞書 http://members.xoom.com/golconda_99/jisx0213/に、現在フリーで出回っ ている辞書をJIS X 0213用に変換したものを用意したので、ご利用下さい。 o... 今後の予定 辞書の整備 入力ツールの整備 変換用データの整備