[リストへもどる]
一括表示
タイトルfontdumpを使った外字作成について
記事No881
投稿日: 2016/07/13(Wed) 02:38:25
投稿者らうれん
こんばんは。何度かお世話になっております。

私は明治時代に出版された辞書(著作権は失効しています)を手入力しまして自作の辞書を作成しようと考えているものです。
内容上、外字の設定をしなければならないのですが、作業に詰まってしまいました。以下のとおり、経緯を説明いたしますので、どうしたら良いかアドバイスをいただけないでしょうか。

こちらの作業環境はWindows XPです。

(1) 「木に垂」という外字を作成しようと考えまして、Unicodeを調べたのち、商用・改変可のフリーのフォントからfontdumpwを使ってxmlヘッダを出力しました。結果は以下です。

<?xml version="1.0" encoding="Shift_JIS"?>
<gaijiData xml:space="preserve">
<fontSet size="32X30" start="A121">
<fontData ebcode="A121" unicode="68F0">




     ##               ###
     ##    ###############
     ##    ###############
     ##           ##
     ##           ##
     ##           ##
 ######### ################
 ######### ################
     ##      ##   ##  ##
     ##      ##   ##  ##
    ###      ##   ##  ##
    ####  ##################
    ##### ##################
   #######   ##   ##  ##
   #### #    ##   ##  ##
  ##### #    ##   ##  ##
 ### ##      ##   ##  ##
 ##  ##    ################
  #  ##    ################
     ##           ##
     ##           ##
     ##           ##
     ##           ##
     ##  ###################
     ##  ###################
     ##
</fontData>
</fontSet>
</gaijiData>

こちらは外字フォントファイルとしました。


(2) 外字置換定義ファイルとして、以下を作成しました。

<?xml version="1.0" encoding="Shift_JIS"?>
<gaijiSet>

<gaijiMap unicode="#x68F0" ebcode="A121"/>

</gaijiSet>


(3)辞書の本文の該当する部分には&#x68F0;としてあります。

(4)いずれもShift JISとしてあります。

このように一応、3つのファイルを揃え、Eb studioで変換させようとすると、「外字パターン異常(文字数が不一致):ebcode=A121」と表示され、変換ができません。外字ファイルを抜くと変換ができ、辞書として使えるのですが、外字が正常に表示されないという状況です。

以上となります。どのように対応すればよいでしょうか。
不明なところがございましたらおっしゃってください。

タイトルRe: fontdumpを使った外字作成について
記事No882
投稿日: 2016/07/13(Wed) 17:51:52
投稿者らうれん
連投、失礼いたします。
あれからfontdumpwの-mを使いまして、出てきたデータが

<gaijiMap unicode="#xE000" ebcode="A121"/>

でしたので、以下のとおりに修正しましたところ、無事Eb studioによるEPWINGの変換ができました。

<?xml version="1.0" encoding="Shift_JIS"?>
<gaijiSet>

<gaijiMap unicode="#x68F0" ebcode="A121"/>

</gaijiSet>

しかし、これをEbwinで見ようとすると、外字のところが空白になっていて表示されません。ビットマップを16x16にしてみましたが、同様でした。どこかの設定が間違っているのだと思うのですが、それがわからずにいます。ご繁忙のところ恐縮ですが、ご教示いただけないでしょうか。

よろしくお願いいたします。

タイトルRe: fontdumpを使った外字作成について
記事No884
投稿日: 2016/07/14(Thu) 06:02:30
投稿者an
>(文字数が不一致)

空白部分を、. (ドット)に置き換える事も出来る仕様ですので、
全ての範囲("32X30")(?)を、# と . で完全に埋めてやる必要が
有ります。多分、後続の空白部分を省略(無文字に)された為に
文字数が不足しているためと思われます。

また、
JIS X4081では、16X16、8X16、24X24、12X24、30X30、15X30、48X48、24X48の外字が定義できます。
となっているようですが。

(例)

<fontData>
..............................
.....##...............###.....
</fontData>

タイトルRe: fontdumpを使った外字作成について
記事No885
投稿日: 2016/07/14(Thu) 08:53:53
投稿者hishida
こんにちは。
an 様、ご回答ありがとうございます。

EPWINGの外字は16x16が必須です。32x30だけだとEBWinも含めて外字を表示できないと思います。
文字数が不一致というのは、32x30のドットの個数が一致していないか、
EBStudioで32x30を受け付けないかのどちらかですが、EBStudioを開発したのが10年以上前なので、テストしないとなんとも言えません。

オススメは、16x16を必ず作り、大きなサイズが必要なら24x24を追加することです。
32以上の外字は大抵のEPWINGビューアで表示できない可能性があります。

fontdumpwのパラメータは次のような感じでいけるはずです。

fontdumpw "MS 明朝" 68F0  -u=68F0 -h -0=. -m=GaijiMap.xml 

<?xml version="1.0" encoding="Shift_JIS"?>
<gaijiData xml:space="preserve">
<fontSet size="16X16" start="A121">
<fontData ebcode="A121" unicode="68F0">
................
...#........##..
...#..########..
...#......#.....
.##############.
...#...#..#.#...
...#...#..#.#...
..##...#..#.#...
..###.#########.
.#####.#..#.#...
.#.#...#..#.#...
##.#..#########.
...#......#.....
...#......#.....
...#.##########.
................
</fontData>
</fontSet>
</gaijiData>



GaijiMap.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<gaijiSet>
<gaijiMap unicode="#x68F0" ebcode="A121"/>
</gaijiSet>


本文中では、
&#x68F0;
で参照

タイトルRe^2: fontdumpを使った外字作成について
記事No886
投稿日: 2016/07/14(Thu) 12:05:54
投稿者らうれん
こんにちは。
an様、hishida様、お返信をありがとうございます。
アドバイスをいただき、変換することができました。

すみませんが、もう1つ質問があります。
この外字をunicodeできれいに表示させてみたく、EBwinの外字定義ファイルを作成したいと考えています。マニュアルとhishida様が公開されている
追加用の外字定義ファイル(http://ebstudio.info/home/EBPocket.html)の中身を見まして、試験的に「木+垂」を表示させようと試みました。

以下の様に書いたものをUTF-8、改行コードCR+LFとし、「書籍ディレクトリ名.map」として変換し、EBWin4 -> res -> GAIJIディレクトリに置いたのですが、うまく表示されません。

(案1)
#ebcode unicode ascii  # char comment
zA121 ux68F0  # 〔木に垂〕

(案2)
#ebcode unicode ascii  # char comment
zA121 u68F0  # 〔木に垂〕

(いずれも空白はTABで区切っています)

どこが間違っているのか、ご教示いただけないでしょうか。

ビューワによってファイルの形式や置く場所が違うようですけれども、まずはEBwinで試みて、EBmacで表示をさせてみたいと思っています(plist形式に変換すれば良いようなので)。

タイトルRe^3: fontdumpを使った外字作成について
記事No887
投稿日: 2016/07/14(Thu) 15:40:07
投稿者hishida
> 以下の様に書いたものをUTF-8、改行コードCR+LFとし、「書籍ディレクトリ名.map」として変換し、EBWin4 -> res -> GAIJIディレクトリに置いたのですが、うまく表示されません。
>
> (案1)
> #ebcode unicode ascii  # char comment
> zA121 ux68F0  # 〔木に垂〕
>
> (案2)
> #ebcode unicode ascii  # char comment
> zA121 u68F0  # 〔木に垂〕
>
> (いずれも空白はTABで区切っています)
>
> どこが間違っているのか、ご教示いただけないでしょうか。

正しい形式は案2のほうです。

設置場所は、
ユーザディレクトリに置く必要があるので、
EBWin4を起動して
ファイル->設定->一般->アプリケーションディレクトリ
を開き、
その中のGAIJI/ ディレクトリに保存してください。
その後EBWin4を終了後、起動、
(これで表示されない場合は再度終了、起動)
すると見えるはずです。

タイトルRe^4: fontdumpを使った外字作成について
記事No888
投稿日: 2016/07/15(Fri) 00:30:52
投稿者らうれん
hishida様、ご教示いただき、ありがとうございます。

無事、外字をunicodeで綺麗に表示することができました。公開されていますgaiji2plist.rbを使ってplistを作成、これをebmacのパッケージを開き、Contents/Resourcesに保存することでebmacでも同様のことができました。ありがとうございました。

今後は、辞書の内容に応じて外字をピックアップしてビットマップによるデータを作成、これをもとにEBDumpを使って外字定義ファイルを作成してみようと思います。
(外字定義ファイルの作成はこちらでお示しいただいている「外字定義ファイル自作のヒント」を参考にしようと考えています。http://ebstudio.info/manual/EBPocket/0_0_4_4.html

まずは、ビットマップをまとめてfontdumpで作成するための指示書の書き方をまず勉強しなければと思っていますが、その過程でお尋ねすることがありましたら、ご教示頂けますようお願いいたします。