PROFILEは,かな漢字変換環境設定の情報が書かれたテキスト・ファイルです。 ユーザは,システムが提供するPROFILEまたはユーザ独自の PROFILEのどちらでも使用することができます。
FIPでのかな漢字変換の環境設定は,IMLIBの環境設定規約に従います。したがって IMLIBが規定している,PROFILEという環境設定用のテキスト・ファイルによって, かな漢字変換環境を定義します。このPROFILEを指定するために, 論理名IM$PROFILEを使用します。各ユーザの設定に関しては, 『ユーザ・キー定義 利用者の手引き』を参照してください。
FIPは,PROFILEの中のいくつかのキーワードを使用して, かな漢字変換の操作を行います。FIPのサポートするINDEXと値の一覧は, 付録 Aを参照してください。以下に, キーワードの設定方法を記述します。(括弧内は,PROFILE内の該当する INDEX名を表します。)
FIPは,かな漢字変換用のキーとしてIMLIBの提供するKEYBINDファイルを使用します。 したがって,IMLIBで規定されたキー定義ファイルの所在を, PROFILEの中に保持しておく必要があります(例 4-1参照)。
im$profile.dat +---------------------------------------------------------------+ | DEC-JAPANESE.KEY.keybind : IM$KEY_EVEJ_LEVEL2.IM$DAT | | DEC-JAPANESE.KEY.keybind_1 : IM$KEY_EVEJ.IM$DAT | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,KEYBINDファイルに,EVEJキー定義ファイル (IM$KEY_EVEJ_LEVEL2.IM$DAT)を指定しています。
INDEXの"DEC-JAPANESE.KEY.keybind"で指定したKEYBINDファイルが正しくなかった場合, この例では次の行のINDEX "DEC-JAPANESE.KEY.keybind_ 1"で指定した別の KEYBINDファイル(IM$KEY_EVEJ.IM$DAT)を用います。一般に KEYBINDファイルのロードに失敗した場合は,INDEXの"DEC- JAPANESE.KEY.keybind_1" のように,"_(アンダーバー)数字"の付いたINDEXを1から9まで順にさがします。
PROFILE内で指定した複数のKEYBINDファイルがいずれも正しくなかった場合は, FIPを正常に起動することはできません。KEYBINDファイルに関しては, 「ユーザ・キー定義 利用者の手引き」を参照してください。
また,この設定でSYS$LOGIN以外にあるKEYBINDファイルを指定する場合, ディレクトリ名にプロセス論理名,あるいはジョブ論理名を指定することはできません。 FIPでは,これらの論理名を解釈しません。
FIPは,通常の文字列の入力の流れを途中でとらえて,入力文字をかなや漢字に変換し, 元の入力の流れに戻す機能を提供するものですが,かなや漢字に変換するときに, 変換作業を画面上で行うための領域を必要とします。これをFIPでは,"前編集領域 ( pre-edit area )"と呼びPROFILEで指定する必要があります。 (例 4-2参照)。
通常は,端末画面のカラム位置,行位置を整数値でPROFILE内で指定しますが, 画面のステータス・ライン,すなわち25行目を前編集領域として設定したい場合, INDEXの"DEC-JAPANESE.DISP.preEditRow"に"status"を指定します。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.DISP.preEditRow : 24 | | DEC-JAPANESE.DISP.preEditColumn : 1 | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,前編集領域は24行1列目が開始点として設定されています。 ここで設定された行数や列数が,端末画面の上限値を越えている場合には, FIPは自動的に端末画面の最大値に設定し直します。さらに,特別な場合として "current"という文字列(小文字)が許されます。このキーワードの意味は, "現在カーソルの存在する位置を,前編集領域として使用してください"ということです。
- 注意
- あらかじめ決められた機能を表す文字列を,一般的にキーワードと呼んでいます。 PROFILEの中では,"DEC-JAPANESE.DISP.preEditRow"等もキーワードですが, IMLIBでは,それらを特別にINDEXと呼んでいます。
変換領域とは,"かな漢字変換の対象となる入力文字領域"のことです。一般的に, 入力文字列自体には何のマークもついていないために, どの文字列が現在の変換対象文字列であるかはわかりません。したがって, 変換入力ができる多くのアプリケーションにおいては, 変換対象文字列の表示ビデオ属性を,他の文字列と区別することによって, ユーザが変換対象文字列を認知できるようにしてあります。たとえば,
aiueo
だけでは,変換対象文字列がどれかはわかりませんが,
aiueo
とすれば,"ueo"が変換対象であることがわかります。FIPでは, この変換領域のビデオ属性をPROFILEによって指定する必要があります (例 4-3参照)。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.DISP.inputRendition : bold | | DEC-JAPANESE.DISP.currentClauseRendition : reverse | | DEC-JAPANESE.DISP.leadingClauseRendition : none | | DEC-JAPANESE.DISP.trailingClauseRendition : none | | DEC-JAPANESE.DISP.kanaRendition : bold | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,変換対象文字列を高輝度("bold"),現在の変換対象文節を反転 ("reverse"),変換対象文字列で, 現在の変換対象文節より前に存在する文字列を通常の表示("none"), 現在の変換対象文節より後ろに存在する文字列を,通常の表示("none"), によって表示することを指定します。特に,端末から入力された文字をひらがな, あるいはカタカナ変換した場合の変換領域のビデオ属性を"kanaRendition" で指定することができます。例 4-3ではひらがな, あるいはカタカナ変換した場合のビデオ属性を高輝度("bold")にしています。
通常の端末は,ASCII文字(アルファベット及び特殊記号)の入力に対して,半角の ASCII文字をエコー文字として端末に表示します。たとえば,キーボードの "k"というキーを押せば,端末の画面上に"k"という文字が表示されます。 一部のワードプロセッサ等では, このエコー文字を全角の漢字コードに変換してから表示するものがあります。 この機能を提供するためにIMLIBは,ASCII文字のエコー・モードを設定できるように, PROFILEのINDEXとして,asciiを用意しています。ここで指定できるキーワードは, hankaku(半角=通常のエコー文字)または,zenkaku(全角=全角の漢字コードに対応) のどちらかです(例 4-4参照)。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.ECHO.ascii : hankaku | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では「半角でASCII文字を表示する」ことを指定しています。
かなキーを用いて文字入力する場合,エコーバックされる文字の指定をします。 "hiragana"あるいは"katakana"を指定すると,それぞれひらがな, カタカナがエコーされます。また,半角カタカナをエコーバックさせる場合は, "jiskana"を指定します(例 4-5を参照)。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.ECHO.kana : hiragana | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,かなキーからひらがながエコーバックされます。
FIPは,文字入力時にローマ字からかな文字に自動的に変換し, そのかな文字を端末に表示する機能を持っています。たとえばユーザが,
aiueo
と5文字のキー入力を行った場合,そのローマ字に対応するかな文字が, 逐次的に端末に表示されます。この場合は,
あいうえお
端末に表示されることになります。この自動ローマ字かな変換を, PROFILEで指定する場合は,例 4-6のようになります。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.autoRomanKana : on | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,端末から入力されるローマ字を, ひらがなに自動変換することを指定しています。
文節の長さを変更する際,以下の場合における動作の指定をします。
値に"none"を指定した場合は何も実行しません。"rotate"が指定されると, 1の場合は文節の大きさが最大に,2の場合は文節の大きさが最小になります。 "done"のときは,現在の変換を終了して次の変換入力を待ちます (例 4-7参照)。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.OUTRANGE.clauseSize : none | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,1,2の場合に「何も実行しない」ことを指定しています。
変換対象となる文節を指定するとき,以下の場合における動作の指定をします。
値が"none"のときは,何も実行しません。"rotate"が指定されると,1の場合は, 現在の文節は最後の文節に,2の場合は,現在の文節は最初の文節に移動します。 "done"のときは,現在の変換を終了して次の変換入力を待ちます (例 4-8参照)。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.OUTRANGE.clauseNumber : rotate | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,1の場合は「現在の文節は最後の文節に移動」し,2の場合は 「現在の文節は最初の文節に移動」することを指定しています。
ここでは,以下の場合における動作の指定をします。
値に"none"が指定されると,何も実行しません。"done"のときは, 現在の変換を終了して次の変換入力を待ちます(例 4-9参照)。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.OUTRANGE.cursorPosition : done | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,1,2の場合に「現在の変換を終了して,次の変換入力を待つ」 ことを指定しています。
VAX
(DEC-JAPANESE.SERVER.name)
FIPは,かな漢字変換を行う実体として"変換情報サーバ(CIserver)" というネットワーク上のサービスを使用します。 このサーバを使用することによってネットワーク上のどのノードからアクセスしても, 同じ変換機能をサービスすることができるものですが, かな漢字変換を行うサーバとしてどのノード上のサーバを使用するかを, プロファイルで指定しなければなりません(例 4-10参照)。
サーバ名は"IM$CISERVER_JP"を指定します。したがって, 他のノード上の変換情報サーバあるいは個人辞書を使用する場合は,
DEC-JAPANESE.SERVER.name : node-name::IM$CISERVER_JP
と指定します。この場合は, DECnetを使用してかな漢字変換が実行されることになります。 また,ローカルのかな漢字変換サーバを用いる場合は,
DEC-JAPANESE.SERVER.name : 0:IM$CISERVER_JP
となります。
変換情報サーバを使用する場合は,CIserverプロキシーの設定が必要です。
$ run SYS$SYSTEM:IM$CONTROL.EXE IMCP> create/proxy IMCP> set proxy [remote-user] [local-user]
また,ローカルの変換情報サーバを使用する際も,ユーザの CIserverプロキシーの設定を行ってください。詳しくは 第10章 「IMCPの概要(VAXのみ)」 を参照してください。
もしサーバ名をPROFILEで指定しないと, かな漢字変換はネットワーク上のサービスを使用せず, ローカルの個人辞書を使用することになります。その場合は,個人の SYS$LOGINディレクトリの個人辞書( SYS$LOGIN:JSYKOJIN.JISHO ) があらかじめ準備されていなければなりません(例 4-10参照)。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.SERVER.name : VAXVAX::IM$CISERVER_JP | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では「"VAXVAX"と言う名のノード上にある,"IM$CISERVER_JP"というサーバから DECnet ("::")で変換サービスを利用する」ことを指定しています。
- 注意
- 日本語OpenVMS VAX V6.0システムのCIserverを使用する場合は, " IM$CISERVER_JP "の代りに" japanese_kk "を使用する必要があります。
PROFILE内で,警告ベル音のon/offを設定することができます。"on"を PROFILE内で指定すると警告ベル音を発し,"off" を指定するとベル音を止めることができます(例 4-11参照)。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.FIP.warningBell : on | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,警告ベル音を鳴らすことを指定しています。
通常,FIPを起動させると, 端末から入力される文字はすべて日本語変換の対象になりますが,PROFILE内で 「日本語変換スタート・キー」を指定することにより,そのキー入力後のみ, 日本語変換を行うように設定ができます。そして,一連の日本語変換が確定し, その行での入力が終了するとまた無変換状態に戻り,再び各ユーザが指定した 「日本語変換スタート・キー」が入力されるまでは, 日本語変換を実行できない状態にしておくことができます (例 4-12参照)。
日本語変換の前編集領域をDCLのコマンド・ライン上に指定している場合は ( DEC-JAPANESE.DISP.preEditRow : current ), 通常リターン・キーによってその行での入力が終了し, 変換スタート・キーが無効となって無変換状態に戻ります。
前編集領域をステータス・ライン上に指定している場合は ( DEC-JAPANESE.DISP.preEditRow : status ), 変換スタート・キーが入力されるまでは,DCLの現在のコマンド・ライン上で, 通常FIPを起動していない状態のキー入力ができますが, スタート・キーを入力した時点でステータス・ライン上にプロンプトが表示され, そのライン上で日本語変換が可能になります。 変換後ステータス・ライン上でリターン・キーを入力すると,確定文字列が DCLコマンド・ラインに返ります。この時点で, 変換スタート・キーが無効となって無変換状態に戻ります。 再びスタート・キーを入力するまでは,ステータス・ラインは用いられず, 入力はすべてのDCLのコマンド・ラインに表示されます。
このような変換スタート・キーを必要としない場合は,PROFILEから,このINDEX ( DEC-JAPANESE.FIP.conversionStartKey )を除いておきます。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.FIP.conversionStartKey : CTRL_E | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,日本語変換スタート・キーを,[Ctrl/E] で指定しています。すなわち, FIPを起動させた後でも,このスタート・キーを入力するまでは, 入力文字列を日本語変換させることはできません。ある時点で, スタート・キーを入力して初めて,日本語変換を実行することができます。 変換を確定し,その行での入力が終了すると,また日本語変換をしない状態に戻り, [Ctrl/E] を再び入力するまでは日本語変換できません。ユーザが DCL上でコマンド入力する際,部分的にのみ日本語を入力したい場合などに用いられます。 変換スタート・キーのキー名の指定方法については, 付録 Aを参照してください。
FIPを用いて日本語変換を行うとき, 端末のステータス・ラインを利用することができます。 その際にステータス・ライン上に表示されるプロンプトの文字列をユーザが指定できます (例 4-13参照)。 プロンプトの文字列をユーザが指定しないときは,"変換>" という文字列がプロンプトとして,ステータス・ライン上に現れます。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.FIP.statusLinePrompt : 日本語変換 > | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,プロンプト文字列として,"日本語変換>"を設定しています。
- 注意
- ステータス・ラインを使用するときは,前編集領域の指定で "DEC-JAPANESE.DISP.preEditRow"に"status"を指定します。
日本語変換を行うときに,JISのかなcode (半角かなコード) を使用するかどうかを指定します。JISかなcodeを使用する場合,C1制御文字コード (SS2)が送られますので,FIPを使用するアプリケーション側で, この制御コードを処理する必要があります (例 4-14参照)。[1]
ユーザがC1制御文字コード(SS2)を端末から入力する場合は,FIPを起動する前に, 端末属性の設定を行わなければなりません。端末属性の設定は, KANJIGENユーティリティを用います。
$ RUN JSY$SYSTEM : KANJIGEN KANJIGEN> SET/EDIT=ENABLE KANJIGEN> EXIT
これで,端末がmulti-byte editing状態となり,"SS2 + JISかな" が入力可能になります。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.CHAR.jisKana : off | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,日本語変換時にJISのかなcodeを使用しません。
[1] 通常のアプリケーションは,(SS2 + JISかな)を 1文字として取り扱っていません。したがって, アプリケーションが上記コードを明示的にサポートしている場合以外は, 'off 'で使用することをお勧めします。
FIPを用いて日本語変換を行うときに使用する文字のコードセットを指定します。 ただし,FIPは通常Super DEC漢字のコードセットを扱っていますので, Super DEC漢字のコードセットで特に問題ない場合は,ユーザがこのINDEXを PROFILEに追加する必要はありません(例 4-15を参照)。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.CHAR.codeSet : sdeckanji | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,文字コードセットとしてSuper DEC漢字を指定します。
FIPを用いてローマ字文字列をかな文字列に変換するときの"ローマ字−かな"の対応を, ユーザがカスタマイズする事ができます。
ユーザがカスタマイズしたい場合は, テンプレート・ファイルに記述されたテーブルの書式に合わせて変更してください。 カスタマイズしたファイルに対しては,ファイル名, ファイルタイプ名に特に制限はありません。
ローマ字かな変換のテンプレート・ファイルは, JSY$EXAMPLES:IM$ROMKANA_DB.TEMPLATEです (例 4-16を参照)。
im$profile.dat +---------------------------------------------------------------+ | ・ | | DEC-JAPANESE.ECHO.romkanaDB : USER$:[TMP]ROMKANA.DAT | | ・ | | ・ | | ・ | +---------------------------------------------------------------+
この例では,ローマ字かな変換テーブル・ファイルとして USER$:[TMP]ROMKANA.DATを指定します。
MYDIR:MY_PROFILE.DAT +---------------------------------------------------------------+ | DEC-JAPANESE.KEY.keybind : IM$KEY_JVMS_LEVEL2 | | DEC-JAPANESE.KEY.keybind_1 : IM$KEY_JVMS | | DEC-JAPANESE.DISP.preEditRow : current | | DEC-JAPANESE.DISP.preEditColumn : current | | DEC-JAPANESE.DISP.inputRendition : bold | | DEC-JAPANESE.DISP.kanaRendition : bold | | DEC-JAPANESE.DISP.currentClauseRendition : reverse | | DEC-JAPANESE.DISP.leadingClauseRendition : none | | DEC-JAPANESE.DISP.trailingClauseRendition : none | | DEC-JAPANESE.CHAR.jisKana : off | | DEC-JAPANESE.ECHO.kana : hiragana | | DEC-JAPANESE.ECHO.ascii : hankaku | | DEC-JAPANESE.ECHO.autoRomanKana : off | | DEC-JAPANESE.OUTRANGE.clauseSize : none | | DEC-JAPANESE.OUTRANGE.clauseNumber : rotate | | DEC-JAPANESE.OUTRANGE.cursorPosition : done | +---------------------------------------------------------------+
PROFILEを特に変更しない場合は,例 4-17の PROFILEのINDEX情報が,FIPを起動するときに参照されます。 このPROFILEの初期設定では, 変換サーバや変換スタート・キーなどは含まれていないことになります。また, このPROFILEに含まれているINDEXを省略しても, 例 4-17に示された値が標準値として設定されます。