diff options
author | Norbert Preining <preining@logic.at> | 2011-11-02 16:06:03 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2011-11-02 16:06:03 +0000 |
commit | 011b6892921b618e194a29ad8dc53c61297e47cc (patch) | |
tree | f822dfa8d87de32bde95961dd0c617462d6eb947 /Master/texmf-dist/source/platex/japanese-otf/script/mkpkana.pl | |
parent | ec41057633db01dc025f2d76de377f51d9d3d6f8 (diff) |
Include the otf package named japanese-otf, from Saito Shuzaburo
prebuild vf/tfm/ofm by Norbert Preining
map files written by Hironori Kitagawa (with agreement of Shuzaburo-san)
git-svn-id: svn://tug.org/texlive/trunk@24462 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/platex/japanese-otf/script/mkpkana.pl')
-rwxr-xr-x | Master/texmf-dist/source/platex/japanese-otf/script/mkpkana.pl | 272 |
1 files changed, 272 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/platex/japanese-otf/script/mkpkana.pl b/Master/texmf-dist/source/platex/japanese-otf/script/mkpkana.pl new file mode 100755 index 00000000000..a0f188818e9 --- /dev/null +++ b/Master/texmf-dist/source/platex/japanese-otf/script/mkpkana.pl @@ -0,0 +1,272 @@ +@min_w3=(7.11, 7.68, 7.17, 7.79, 9.90, 8.21, 8.83, 8.56, 9.14, 7.30, 7.68, 7.97, 8.69, 8.59, 9.15, 9.53, 9.69, 8.34, 9.09, 6.76, 8.31, 9.07, 9.56, 8.05, 8.91, 8.26, 9.19, 8.07, 8.17, 9.16, 9.52, 9.52, 9.79, 8.59, 9.25, 8.94, 9.23, 8.50, 8.98, 8.81, 9.39, 9.65, 8.91, 9.30, 7.62, 8.45, 9.08, 8.94, 9.41, 9.51, 9.29, 9.13, 9.69, 9.58, 8.98, 9.27, 9.33, 9.19, 9.33, 9.36, 9.71, 9.54, 9.51, 9.14, 9.73, 9.77, 8.32, 9.07, 9.22, 9.03, 8.08, 8.68, 9.38, 8.74, 9.33, 7.64, 8.10, 8.14, 7.69, 8.20, 9.76, 8.38, 8.58, 9.24, 8.77, 9.14, 8.78, 9.13, 8.01, 8.69, 7.60, 8.20, 7.89, 8.40, 8.44, 9.23, 8.34, 8.94, 8.64, 9.39, 8.76, 9.05, 8.25, 9.06, 8.84, 9.28, 8.49, 9.10, 9.16, 9.46, 9.02, 8.99, 8.68, 9.24, 9.02, 9.44, 8.23, 9.13, 8.41, 9.32, 8.91, 9.36, 7.86, 8.44, 9.24, 8.85, 9.37, 7.25, 7.95, 8.84, 9.21, 8.11, 9.00, 7.81, 9.46, 9.58, 9.45, 8.14, 8.76, 8.66, 8.12, 9.05, 9.05, 9.68, 9.44, 9.42, 8.85, 9.14, 8.81, 8.86, 7.57, 8.56, 8.20, 9.09, 8.39, 8.95, 8.38, 9.18, 7.94, 8.37, 8.08, 7.60, 9.27, 8.46, 8.51, 7.77, 8.34, 9.19, 9.19, 8.01, 8.71, 9.06, 8.11, 8.18); +#change ゎ: 8.82-->8.83 ヮ: 8.08-->8.09 +@min_w6=(7.54, 7.95, 7.43, 7.97, 10.00, 8.44, 9.17, 8.72, 9.46, 7.65, 8.04, 8.20, 8.95, 8.90, 9.52, 9.81, 9.93, 8.64, 9.42, 7.04, 8.52, 9.35, 9.75, 8.30, 9.08, 8.61, 9.53, 8.51, 8.62, 9.44, 9.63, 9.76, 9.92, 8.93, 9.49, 9.25, 9.44, 8.77, 9.25, 8.97, 9.71, 9.80, 9.11, 9.50, 7.89, 8.72, 9.42, 9.18, 9.67, 9.73, 9.57, 9.45, 9.79, 9.77, 9.33, 9.49, 9.53, 9.44, 9.59, 9.59, 9.97, 9.84, 9.82, 9.49, 9.90, 9.92, 8.62, 9.38, 9.57, 9.36, 8.34, 8.93, 9.62, 8.95, 9.64, 7.85, 8.41, 8.39, 8.09, 8.55, 9.96, 8.63, 8.83, 9.58, 9.12, 9.32, 9.14, 9.39, 8.28, 9.01, 7.78, 8.43, 8.24, 8.67, 8.63, 9.50, 8.57, 9.26, 8.90, 9.53, 9.19, 9.40, 8.60, 9.37, 9.05, 9.42, 8.83, 9.30, 9.44, 9.68, 9.22, 9.22, 8.96, 9.48, 9.40, 9.71, 8.49, 9.30, 8.78, 9.56, 9.27, 9.64, 8.12, 8.73, 9.43, 9.20, 9.58, 7.60, 8.16, 9.22, 9.52, 8.42, 9.27, 8.17, 9.77, 9.76, 9.71, 8.42, 9.00, 8.90, 8.46, 9.30, 9.27, 9.95, 9.77, 9.77, 9.19, 9.39, 9.24, 9.17, 7.90, 8.87, 8.55, 9.41, 8.69, 9.24, 8.61, 9.57, 8.23, 8.74, 8.41, 7.91, 9.69, 8.80, 8.95, 8.09, 8.67, 9.50, 9.51, 8.39, 9.03, 9.34, 8.33, 8.39); +#@min_w6_orig=(7.54, 7.95, 7.43, 7.97, 10.00, 8.44, 9.17, 8.72, 9.46, 7.65, 8.04, 8.20, 8.95, 8.90, 9.52, 9.81, 9.93, 8.64, 9.42, 7.04, 8.52, 9.35, 9.75, 8.30, 9.08, 8.61, 9.53, 8.51, 8.62, 9.44, 9.63, 9.76, 9.92, 8.93, 9.49, 9.25, 9.44, 8.77, 9.25, 8.97, 9.71, 9.80, 9.11, 9.50, 7.89, 8.72, 9.42, 9.18, 9.67, 9.73, 9.57, 9.45, 9.79, 9.77, 9.33, 9.49, 9.53, 9.44, 9.59, 9.59, 9.97, 9.84, 9.82, 9.49, 9.90, 9.92, 8.62, 9.38, 9.57, 9.36, 8.34, 8.93, 9.62, 8.95, 9.64, 7.85, 8.41, 8.39, 8.09, 8.55, 9.96, 8.63, 8.82, 9.58, 9.12, 9.32, 9.14, 9.39, 8.28, 9.01, 7.78, 8.43, 8.24, 8.67, 8.63, 9.50, 8.57, 9.26, 8.90, 9.53, 9.19, 9.40, 8.60, 9.37, 9.05, 9.42, 8.83, 9.30, 9.44, 9.68, 9.22, 9.22, 8.96, 9.48, 9.40, 9.71, 8.49, 9.30, 8.78, 9.56, 9.27, 9.64, 8.12, 8.73, 9.43, 9.20, 9.58, 7.60, 8.16, 9.22, 9.52, 8.42, 9.27, 8.17, 9.77, 9.76, 9.71, 8.42, 9.00, 8.90, 8.46, 9.30, 9.27, 9.95, 9.77, 9.77, 9.19, 9.39, 9.24, 9.17, 7.90, 8.87, 8.55, 9.41, 8.69, 9.24, 8.61, 9.57, 8.23, 8.74, 8.41, 7.91, 9.69, 8.80, 8.95, 8.08, 8.67, 9.50, 9.51, 8.39, 9.03, 9.34, 8.33, 8.39); +@goth_w3=(7.19, 7.69, 7.23, 7.72, 10.00, 8.56, 9.18, 8.67, 9.30, 8.08, 8.51, 8.34, 9.14, 8.77, 9.37, 9.49, 9.68, 8.87, 9.49, 7.64, 8.34, 9.16, 9.66, 8.37, 8.90, 8.71, 8.97, 8.58, 8.65, 9.17, 9.53, 9.44, 9.73, 9.27, 9.40, 9.22, 9.28, 8.83, 8.92, 8.66, 9.26, 9.54, 8.93, 9.26, 8.30, 8.56, 9.45, 9.16, 9.51, 9.67, 9.35, 9.44, 9.73, 9.66, 9.26, 9.48, 9.39, 9.40, 9.61, 9.51, 9.69, 9.64, 9.50, 9.48, 9.79, 9.72, 8.98, 9.38, 9.33, 9.27, 8.82, 8.72, 9.25, 8.78, 9.41, 8.09, 8.63, 8.59, 8.33, 8.86, 9.62, 8.70, 8.82, 9.46, 9.02, 9.34, 9.05, 9.20, 8.37, 9.00, 8.26, 8.91, 8.40, 8.81, 8.63, 9.36, 8.66, 9.18, 9.04, 9.37, 9.27, 9.31, 8.68, 9.55, 9.28, 9.52, 8.88, 9.40, 9.26, 9.62, 8.94, 9.42, 9.06, 9.50, 9.17, 9.54, 8.47, 9.04, 8.75, 9.67, 9.25, 9.55, 8.15, 8.86, 9.41, 9.22, 9.64, 8.02, 8.26, 9.13, 9.23, 8.46, 9.23, 8.40, 9.45, 9.63, 9.53, 8.60, 9.23, 9.15, 8.57, 9.27, 9.11, 9.62, 9.56, 9.56, 9.46, 9.51, 9.50, 8.99, 8.39, 9.20, 8.64, 9.42, 8.49, 9.16, 8.43, 9.22, 8.44, 8.91, 8.71, 8.16, 9.46, 8.61, 9.26, 8.32, 8.71, 9.47, 9.32, 8.49, 8.85, 9.33, 8.51, 8.63); +@goth_w6=(7.49, 8.00, 7.53, 8.09, 10.00, 8.77, 9.41, 8.95, 9.52, 8.27, 8.74, 8.56, 9.33, 9.02, 9.62, 9.72, 9.82, 9.09, 9.49, 7.92, 8.50, 9.37, 9.82, 8.65, 9.00, 9.02, 9.30, 8.84, 8.94, 9.33, 9.66, 9.65, 9.86, 9.48, 9.64, 9.45, 9.51, 9.05, 9.16, 8.84, 9.41, 9.68, 9.12, 9.42, 8.62, 8.78, 9.66, 9.42, 9.72, 9.82, 9.69, 9.69, 9.85, 9.80, 9.52, 9.71, 9.63, 9.62, 9.78, 9.73, 9.76, 9.76, 9.73, 9.73, 9.88, 9.90, 9.24, 9.62, 9.52, 9.54, 9.10, 8.90, 9.49, 8.98, 9.63, 8.36, 8.95, 8.81, 8.59, 9.11, 9.82, 8.94, 9.07, 9.71, 9.29, 9.53, 9.33, 9.47, 8.61, 9.24, 8.44, 9.13, 8.61, 9.06, 8.83, 9.52, 8.88, 9.39, 9.33, 9.53, 9.45, 9.54, 8.96, 9.57, 9.43, 9.66, 9.15, 9.59, 9.42, 9.72, 9.22, 9.50, 9.32, 9.73, 9.36, 9.63, 8.76, 9.19, 9.00, 9.65, 9.48, 9.63, 8.40, 9.13, 9.53, 9.38, 9.67, 8.30, 8.48, 9.32, 9.42, 8.70, 9.46, 8.70, 9.66, 9.78, 9.75, 8.88, 9.41, 9.33, 8.81, 9.42, 9.31, 9.77, 9.73, 9.71, 9.67, 9.71, 9.72, 9.19, 8.64, 9.40, 8.92, 9.61, 8.73, 9.39, 8.65, 9.37, 8.72, 9.19, 8.97, 8.43, 9.64, 8.90, 9.51, 8.51, 8.97, 9.64, 9.52, 8.76, 9.12, 9.51, 8.80, 8.74); +@maru_w4=(7.45, 8.15, 7.63, 8.08, 10.00, 8.72, 9.32, 8.97, 9.58, 8.32, 8.78, 8.61, 9.36, 8.97, 9.54, 9.58, 9.79, 9.15, 9.66, 8.04, 8.72, 9.39, 9.78, 8.88, 9.27, 9.03, 9.34, 8.91, 9.00, 9.41, 9.72, 9.61, 9.87, 9.43, 9.69, 9.37, 9.57, 9.11, 9.28, 8.83, 9.44, 9.71, 9.25, 9.50, 8.66, 8.88, 9.55, 9.38, 9.62, 9.83, 9.58, 9.56, 9.80, 9.75, 9.52, 9.62, 9.63, 9.52, 9.74, 9.74, 9.73, 9.72, 9.69, 9.62, 9.93, 9.88, 9.28, 9.57, 9.48, 9.48, 9.15, 8.90, 9.46, 9.00, 9.62, 8.45, 9.04, 8.94, 8.71, 9.12, 9.81, 9.09, 9.02, 9.66, 9.35, 9.50, 9.45, 9.39, 8.50, 9.17, 8.33, 8.96, 8.72, 9.18, 8.73, 9.36, 8.69, 9.32, 9.23, 9.55, 9.34, 9.55, 8.90, 9.67, 9.41, 9.69, 9.16, 9.55, 9.46, 9.80, 9.32, 9.74, 9.25, 9.67, 9.33, 9.63, 8.80, 9.44, 8.95, 9.73, 9.36, 9.61, 8.48, 9.04, 9.57, 9.33, 9.74, 8.57, 8.70, 9.26, 9.22, 8.79, 9.40, 8.66, 9.41, 9.56, 9.55, 8.84, 9.46, 9.40, 8.91, 9.73, 9.73, 9.66, 9.62, 9.59, 9.52, 9.69, 9.71, 9.17, 8.87, 9.39, 8.81, 9.49, 8.73, 9.31, 8.61, 9.35, 8.74, 9.22, 8.95, 8.63, 9.49, 9.01, 9.54, 8.71, 9.02, 9.57, 9.35, 8.93, 9.04, 9.66, 8.74, 8.73); +@charwidth=([@min_w3], [@min_w6], [@goth_w3], [@goth_w6], [@maru_w4]); +@character=("ヽ", "ヾ", "ゝ", "ゞ", "ー", "ぁ", "あ", "ぃ", "い", "ぅ", "う", "ぇ", "え", "ぉ", "お", "か", "が", "き", "ぎ", "く", "ぐ", "け", "げ", "こ", "ご", "さ", "ざ", "し", "じ", "す", "ず", "せ", "ぜ", "そ", "ぞ", "た", "だ", "ち", "ぢ", "っ", "つ", "づ", "て", "で", "と", "ど", "な", "に", "ぬ", "ね", "の", "は", "ば", "ぱ", "ひ", "び", "ぴ", "ふ", "ぶ", "ぷ", "へ", "べ", "ぺ", "ほ", "ぼ", "ぽ", "ま", "み", "む", "め", "も", "ゃ", "や", "ゅ", "ゆ", "ょ", "よ", "ら", "り", "る", "れ", "ろ", "ゎ", "わ", "ゐ", "ゑ", "を", "ん", "ァ", "ア", "ィ", "イ", "ゥ", "ウ", "ェ", "エ", "ォ", "オ", "カ", "ガ", "キ", "ギ", "ク", "グ", "ケ", "ゲ", "コ", "ゴ", "サ", "ザ", "シ", "ジ", "ス", "ズ", "セ", "ゼ", "ソ", "ゾ", "タ", "ダ", "チ", "ヂ", "ッ", "ツ", "ヅ", "テ", "デ", "ト", "ド", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "バ", "パ", "ヒ", "ビ", "ピ", "フ", "ブ", "プ", "ヘ", "ベ", "ペ", "ホ", "ボ", "ポ", "マ", "ミ", "ム", "メ", "モ", "ャ", "ヤ", "ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ヮ", "ワ", "ヰ", "ヱ", "ヲ", "ン", "ヴ", "ヵ", "ヶ"); +@font_name=("phiraminw3-h", "phiraminw6-h", "phirakakuw3-h", "phirakakuw6-h", "phiramaruw4-h"); +@kanji_font_name=("hminr-h", "hminb-h", "hgothr-h", "hgothb-h", "hmgothr-h"); +@kana_font_name=("hiramin-w3-h", "hiramin-w6-h", "hirakaku-w3-h", "hirakaku-w6-h", "hiramaru-w4-h"); +$font_at=1.0; +$half_width= ($font_at / 2); +$quater_width= ($font_at / 4); +opendir(OVP, "ovp") || mkdir("ovp",0755) || die "cannot mkdir ovp"; +opendir(VF, "vf") || mkdir("vf",0755) || die "cannot mkdir vf"; +opendir(JPL, "pl") || mkdir("pl",0755) || die "cannot mkdir pl"; +opendir(JFM, "tfm") || mkdir("tfm",0755) || die "cannot mkdir tfm"; +closedir(OVP); +closedir(VF); +closedir(JPL); +closedir(JFM); + +#main +for ($i=0; $i<=4; $i++){ + open (JPL, ">pl/$font_name[$i].pl"); + &tfm_head_h; + &chars_in_type_jis; + &chars_in_type_prop; + &print_type_jis; + &print_type_prop; + &glue_kern; + close(JPL); +} +for ($i=0; $i<=4; $i++){ + @prop_odori_h=(0x3C59, 0x3C5A, 0x3C5B, 0x3C5C, 0x3C5F); + $hiracode=15517; + $katacode=15608; + $prop_char_num=0; + open (OVP, ">ovp/$font_name[$i].ovp"); + &fonthead; + &write_char; + close(OVP); +} +# +#sub rtn +# +sub tfm_head_h { + print JPL "(FAMILY PROP KANA)\n"; + print JPL "(FACE F MRR)\n"; + print JPL "(CODINGSCHEME TEX KANJI TEXT)\n"; + print JPL "(DESIGNSIZE R 10.0)\n"; + print JPL "(CHECKSUM O 0)\n"; + print JPL "(SEVENBITSAFEFLAG TRUE)\n"; + print JPL "(FONTDIMEN\n"; + print JPL " (SLANT R 0.0)\n"; + print JPL " (SPACE R 0.0)\n"; + printf JPL " (STRETCH R %f)\n", $font_at/10; + print JPL " (SHRINK R 0.0)\n"; + printf JPL " (XHEIGHT R %f)\n", $font_at; + printf JPL " (QUAD R %f)\n", $font_at; + printf JPL " (EXTRASPACE R %f)\n", $font_at/4; + printf JPL " (EXTRASTRETCH R %f)\n", $font_at/5; + printf JPL " (EXTRASHRINK R %f)\n", $font_at/8; + print JPL " )\n"; +} +sub char_foot_h { + printf JPL " (CHARHT R %f)\n", $font_at*0.88; + printf JPL " (CHARDP R %f)\n", $font_at*0.12; + print JPL " )\n"; +} +sub glue_kern{ + print JPL "(GLUEKERN\n"; + print JPL " (LABEL O 5)\n"; + print JPL " (KRN O 5 R 0.0)\n"; + print JPL " (LABEL O 0)\n"; + for ($char=0; $char<=$#uniq_char_width_array; $char++){ + printf JPL " (LABEL H %X)\n",($char+7); + } + printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width; + print JPL " (LABEL O 1)\n"; + printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width; + print JPL " (STOP)\n"; + print JPL " (LABEL O 2)\n"; + printf JPL " (GLUE O 5 R %f R 0.0 R %f)\n", $half_width, $half_width; + printf JPL " (GLUE O 6 R %f R 0.0 R %f)\n", $half_width, $half_width; + print JPL " (LABEL O 6)\n"; + printf JPL " (GLUE O 0 R %f R 0.0 R %f)\n", $half_width, $half_width; + printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $half_width, $half_width; + printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $quater_width, $quater_width; + for ($char=0; $char<=$#uniq_char_width_array; $char++){ + printf JPL " (GLUE H %X R %f R 0.0 R %f)\n",($char+7), $half_width, $half_width; + } + print JPL " (STOP)\n"; + print JPL " (LABEL O 4)\n"; + printf JPL " (GLUE O 0 R %f R 0.0 R 0.0)\n", $half_width; + printf JPL " (GLUE O 1 R %f R 0.0 R 0.0)\n", $half_width; + printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $half_width+$quater_width, $quater_width; + printf JPL " (GLUE O 5 R %f R 0.0 R 0.0)\n", $half_width; + printf JPL " (GLUE O 6 R %f R 0.0 R 0.0)\n", $half_width; + for ($char=0; $char<=$#uniq_char_width_array; $char++){ + printf JPL " (GLUE H %X R %f R 0.0 R 0.0)\n",($char+7), $half_width; + } + print JPL " (STOP)\n"; + print JPL " (LABEL O 3)\n"; + printf JPL " (GLUE O 0 R %f R 0.0 R %f)\n", $quater_width, $quater_width; + printf JPL " (GLUE O 1 R %f R 0.0 R %f)\n", $quater_width, $quater_width; + printf JPL " (GLUE O 2 R %f R 0.0 R %f)\n", $quater_width, $quater_width; + printf JPL " (GLUE O 3 R %f R 0.0 R %f)\n", $half_width, $quater_width; + printf JPL " (GLUE O 4 R %f R 0.0 R %f)\n", $quater_width, $quater_width; + printf JPL " (GLUE O 5 R %f R 0.0 R %f)\n", $quater_width, $quater_width; + printf JPL " (GLUE O 6 R %f R 0.0 R %f)\n", $quater_width, $quater_width; + for ($char=0; $char<=$#uniq_char_width_array; $char++){ + printf JPL " (GLUE H %X R %f R 0.0 R %f)\n",($char+7), $quater_width, $quater_width; + } + print JPL " (STOP)\n"; + print JPL " )\n"; +} +sub chars_in_type_jis{ +print JPL <<END_OF_DATA; +(CHARSINTYPE O 1 + ‘ “ ( 〔 [ { 〈 《 「 『 【 + ) +(CHARSINTYPE O 2 + 、 , ’ ” ) 〕 ] } 〉 》 」 』 】 + ) +(CHARSINTYPE O 3 + ・ : ; + ) +(CHARSINTYPE O 4 + 。 . + ) +(CHARSINTYPE O 5 + ― … ‥ + ) +(CHARSINTYPE O 6 + ? ! + ) +END_OF_DATA +} +sub print_type_jis{ + @type_width=($font_at, $half_width, $half_width, $half_width, $half_width, $font_at, $font_at); + for ($k=0; $k<=6; $k++){ + printf JPL "(TYPE H %x\n", $k; + printf JPL " (CHARWD R %f)\n", $type_width[$k]; + &char_foot_h; + } +} +sub fonthead { + print OVP "(VTITLE Prop Kana)\n"; + print OVP "(OFMLEVEL D 0)\n"; + print OVP "(DESIGNSIZE R 10.000000)\n"; + print OVP "(CHECKSUM O 0)\n"; + print OVP "(MAPFONT D 1\n"; + print OVP " (FONTNAME $kanji_font_name[$i])\n"; + print OVP " (FONTCHECKSUM O 0)\n"; + printf OVP " (FONTAT R %f)\n", $font_at; + print OVP " (FONTDSIZE R 10.000000)\n"; + print OVP " )\n"; + print OVP "(MAPFONT D 2\n"; + print OVP " (FONTNAME $kana_font_name[$i])\n"; + print OVP " (FONTCHECKSUM O 0)\n"; + printf OVP " (FONTAT R %f)\n", $font_at; + print OVP " (FONTDSIZE R 10.000000)\n"; + print OVP " )\n"; +} +sub write_char { + for ($ku=1; $ku<=94; $ku++){ + for ($ten=1; $ten<=94; $ten++){ + $jiscode=($ku+32)*256+($ten+32); + if ($ku==1){&print_kigo_char;}elsif($ku==4){&print_hira_char;} + elsif($ku==5){&print_kata_char;}else{&print_char;} + } + } +} +sub print_char{ + $jiscode=($ku+32)*256+($ten+32); + printf OVP "(CHARACTER H %X\n", $jiscode; + printf OVP " (CHARWD R %f)\n", $font_at; + print OVP " (MAP\n"; + printf OVP " (SETCHAR H %X)\n",$jiscode; + print OVP " )\n"; + print OVP " )\n"; +} +sub print_kigo_char{ + printf OVP "(CHARACTER H %X\n", $jiscode; + if ($jiscode>=0x2146 && $jiscode<=0x215B){#Kakko + $width=$half_width; + } elsif ($jiscode>=0x2122 && $jiscode<=0x2128){#Kutouten + $width=$half_width; + } elsif ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#odoriji + $width=($charwidth[$i][$prop_char_num]/10); + $prop_char_num++; + } else{ + $width=$font_at; + } + printf OVP " (CHARWD R %f)\n", $width; + print OVP " (MAP\n"; + if ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#Odoriji, Cho-on + print OVP " (SELECTFONT D 2)\n"; + } + if (0x2126 <= $jiscode && $jiscode <= 0x2128){#colon, semicolon, nakaten + printf OVP " (MOVERIGHT R -%f)\n",$quater_width;} + if (0x2146 <= $jiscode && $jiscode <= 0x215B && ($jiscode%2)==0){#Kakko + printf OVP " (MOVERIGHT R -%f)\n",$half_width; + } + if ((0x2133 <= $jiscode && $jiscode <= 0x2136) || $jiscode == 0x213c){#odoriji + $odorijicode= shift(@prop_odori_h); + printf OVP " (SETCHAR H %X)\n",$odorijicode; + } else { + printf OVP " (SETCHAR H %X)\n",$jiscode; + } + print OVP " )\n"; + print OVP " )\n"; +} +sub print_hira_char{ + $width=($charwidth[$i][$prop_char_num]/10); + printf OVP "(CHARACTER H %X\n", $jiscode; + printf OVP " (CHARWD R %f)\n", $width; + print OVP " (MAP\n"; + print OVP " (SELECTFONT D 2)\n"; + printf OVP " (SETCHAR H %X)\n",$hiracode; + print OVP " )\n"; + print OVP " )\n"; + $hiracode++; + if($ten<=83){$prop_char_num++;} +} +sub print_kata_char{ + $width=($charwidth[$i][$prop_char_num]/10); + printf OVP "(CHARACTER H %X\n", $jiscode; + printf OVP " (CHARWD R %f)\n", $width; + print OVP " (MAP\n"; + print OVP " (SELECTFONT D 2)\n"; + printf OVP " (SETCHAR H %X)\n",$katacode; + print OVP " )\n"; + print OVP " )\n"; + $katacode++; + $prop_char_num++; +} +sub chars_in_type_prop{ + %char_width_hash=(); + for ($j=0; $j<=$#min_w3; $j++){ + $char_width_hash{$character[$j]}=$charwidth[$i][$j]/10; + } + $x = '-'; + @uniq_char_width_array = grep( $_ ne $x && ($x = $_), sort values(%char_width_hash)); + for ($j=0; $j<=$#uniq_char_width_array; $j++){ + printf JPL "(CHARSINTYPE H %X\n",($j+7); + print JPL " "; + @char_in_this_type = (); + while (($name, $value) = each(%char_width_hash)) { + if ($value == $uniq_char_width_array[$j]){ + push(@char_in_this_type, $name); + } + } + @char_in_this_type = sort @char_in_this_type; + foreach $char_in_this(@char_in_this_type){ + print JPL "$char_in_this ";#character + } + print JPL "\n"; + print JPL " )\n"; + } +} +sub print_type_prop{ + for ($j=0; $j<=$#uniq_char_width_array; $j++){ + $char_width=$uniq_char_width_array[$j]; + printf JPL "(TYPE H %X\n", ($j+7); + printf JPL " (CHARWD R %f)\n", $char_width; + &char_foot_h; + } +}
\ No newline at end of file |