[1]環境と使用法 (1)perl v5.8.0以上で使用して下さい。v5.8.0とv5.8.3で動作確認しました。 (2)WindowsXPでしか動作確認していません。 (3)Unicodeフォルダを作ってから(Windowsの場合)UnicodeIndex.plをダブルクリックすれば動作するはずです。 [2]ローカルでhtmlファイル群を作成します。 作成されるファイルのフォルダ構造は以下のとおりです。 UnicodeIndex.html Unicode(フォルダ):UnicodeIndex.htmlと同じフォルダの下です。 Ucode0000.html以下のファイル全てはUnicodeフォルダの下です。 サイトで公開する場合にもこの関係で配置して下さい。 [3]部分的に作り直す機能はありません。常に全ファイルを生成します。 ただし、Unicodeフォルダがない場合にはUnicodeIndex.htmlだけを作成することになります。 [4]スクリプトの構造 (1)ファイル構造 UnicodeIndex.pl:メイン CharTable2.pl:サブルーチンのファイル package名:CharTable2 サブルーチン:TwoBlocks,OneBlock (2)サブルーチンの役目と引数 TwoBlocks:インデックス・ページで左右に並ぶ2ブロックを処理します。 処理の内容はインデックス中の1行の出力とリンク先ファイル作成です。 引数はインデックス出力用ファイルハンドルとOneBlockに渡す引数2組です。 1組が4〜6変数ですがUnicodeIndexでは4または6変数で使っています。 OneBlock:TwoBlocksの下で1ブロックを処理します。 引数:(A)ブロックの名前:インデックス、HeadのTitle、ページのHeadderに使います。 (B)コード値の下限:ファイル名の一部にもなります。 (C)コード値の上限 (D)文字があるかどうかのフラグ:文字がアサインされてないブロックでは-1。 将来、UnicodeコンソーシアムのPDF版と同じ向きのチャートにするつもりで その場合の分割数をこの引数で渡し、 分割情報をUnicodeIndex.plのコメントに残していますが、 現在は上記フラグとしてしか使っていません。 (E)大きなブロックでのPDF版のサイズ(表示のための文字変数) (F)大きなブロックでのコード版のサイズ(表示のための文字変数) (大部分の)大きくないブロックを作成する場合には (E)(F)の両方を省略しています。 OneBlockの中では(E)だけを省略することも想定してコーディングし、 (F)だけを省略したい場合には""をセットすることを想定していますが、 いずれも動作確認していません。 (3)OneBlockの中のテーブルの構造 N.A.(文字アサインなし)のコードをハッシュの形で定義しています。 %NAnumber:キーは、コード値の下限です。値は、N.A.コードの配列です。 N.A.コードがあるのに未定義のブロックでは"NY"、 N.A.コードがないブロックでは"None"が値です。 文字が全くないブロックは引数で指示されるのでこのハッシュを参照しませんが、 一応"NoCh"の値を書いてあります。 (4)UnicodeコンソーシアムのPDF版に"Noncharacters"と表示されているコードがありますが、 数が少ないのでOneBlockのスクリプトの中で以下のように処理しています。 if(($RowTop == 0xfdd0) || ($RowTop == 0xfde0)){ print OUT '