Tategaki

GIMP2では縦書きできないので、縦書き画像を作成する方法の模索。

2008-07-15

配布停止。

2007-11-11

ver0.6.0

自動でフォントディレクトリを探すのをやめて、最初に登録しておくようにした。右端のFontDirというのがそれだ。ディレクトリを登録後、tategakiを再起動すると、そのディレクトリを探索してフォントを取得する。
それからLinuxでもmakeできるようにした。Ubuntuでは日本語のメッセージカタログをインストールするディレクトリの都合上

./configure --prefix=/usr

しとかないと正しくメッセージカタログが配置されないようだ?いいのか?

LinuxではGIMP2.2、WindowsではGIMP2.4で動作確認をした。

2007-11-05

縦書きの季節がやってきたので再開。gtkの使い方をさっぱり忘れていたのは内緒だ。

20071105.png

とりあえずlinuxでコンパイルが通るようにしたいと考え、ここまで漕ぎ付けた。mingw/msysのautomake/autoconfははまると抜け出せない。これだけで土日が潰れた。今日は眠いのでここまでだ。
異なるプラットフォーム上でのフォントディレクトリの取得がめんどくさそうだったので、今まではwindowsオンリーだったのだが、これからはそんなめんどくさい仕事はユーザーにやってもらいますという方針に転換して、最初にディレクトリを登録して、それに基づいてフォントリストを作るようにした。おかげでLinuxでもコードを共有できてとりあえずコンパイルが通るまでの環境はできた。ただ、これにも少し問題があって、それは今までプリセットとして登録していた設定を復元したときに、復元するフォントが既存のフォントリストに存在していない時にどうすればいいのか、という事で、ちょっと悩む。

2006-12-03

ver0.5

2006-12-01

20061201.jpg

漫画のルビが特殊なことに気がついてからというもの、注意して周囲の 漫画を調べていたが、だんだんルールのようなものが見えてきた。 ちょっと目を引いた例をいくつか上げる。

まずは、杉浦日向子『東のエデン』青林堂 平成元年 P71(図1)とP106(図2)。許婚(いい/なずけ)と許嫁(いいな/ずけ)。 三分ルビと二分ルビを使いわけて、親文字からはみ出ないようにしているが、使い分け方が異なる。 許嫁は当て字で一文字ごとの音というのは不定なので、 このようなルールの揺らぎのようなものが 生まれてしまったのだろうと勝手に推測。また二分ルビと三分ルビしか 使えない状況だったのかもしれないと推測。 今やるなら許嫁の親文字2文字に丁度おさまるように ルビの変形率を調整するのがいいように思える(図3)。

次の例は、立ち読みした今月のガンダムAの某漫画。 酒(ミノフスキー汁)と親文字一文字にルビが7文字もかかっていた(図4)。 これは最近しばらく頭を悩ませていた 「漫画のルビふりではルビ何文字まで親文字一文字に詰め込んで よいのか問題」に対する一つの回答になった。ここでは 「ミノフスキ」の5文字が親にかかり「ー汁」は次に続く仮名に はみ出していた。ここまで変形させると、縦に40%圧縮するので、 本当に読みにくいが、というか図の解像度では半分くらい判別不能だが、 ここまで極端な例は少ないのだろうから、5文字まで詰め込んでいいと いうルールでも、もういいようにも思えてきた(投げやり)。

次は親文字がでかくてルビを変形させなくてもいいのに変形させている例。 植芝理一「ディスコミュニケーション」『月刊アフタヌーン 11月号』講談社 2000 198P(図5、図7)、黒田硫黄『大日本天狗党絵詞 4』講談社 1997 P219(図6)。 親文字のサイズが十分大きく、ルビを変形させなくとも3文字入るのに ルビを変形させている。こうする必然性がわからない。仮に親文字が 1文字で、かつ、ルビが3文字以上の時は、ルビの正体2文字の 長さに詰め込む、というルールだとすると、図7が説明できない。 ひょっとすると図7は、図1、図2と同じく、二分ルビと三分ルビしか 使えない状況でしかたなく、三分ルビを使ってこの仮定のルールをやぶった 例なのかもしれない。よくわからん。

2006-11-25

20061125.png

連数字の縦中横の拡張を書いた。本文組みでは連数字は 2桁までで、3桁以上になると一文字ずつ縦に並べていくのが 普通だが、見出しや漫画などスペースが限られているケースでは 3桁だろうが4桁だろうが縦中横にして押し込んでいる。この実装 では、仮想ボディサイズで計算して、emサイズに変形させているので、 等幅フォントでの半角グリフでは3桁から変形する。 この場合、桁数が多いと線が細くなるので、やりすぎると特に 半角「1」のようなものは薄くなり、太いフォントを使うと 他の文字とのバランスがくずれるので、実をいうとあまり好きではないが、 3桁くらいまでならば、なかなか便利だと思う。またプロポーショナル フォントを使うと等幅よりもきれいに収まる。特に「1」が。

新聞の見出しでは縦中横が行の幅をはみ出しているものもあるが、 今回の実装では複数行の中でそのような縦中横が横に突き出た 場合の行送り、ルビ処理のルールが明確にできなかったので、 行幅におさまるように変形させるのみにとどめた。 あと、嫌いな平体5のルビ実装に道がついた。やらないけど・・・。


関係ないけど(あるけど)GtkTreeView が手ごわい・・・。

2006-11-20

v0.4.1。

v0.4のダウンロードがリンク切れだったのに気がついた。

2006-11-17

20061117.png

圏点がフォントファイルのどこに定義されているのかわからなかった。 圏点(傍点)には色々種類があるが、ゴマ、黒丸はよく用いられるので なじみがある。ゴマはSESAME DOTと呼ばれ、読点に形状は似ているが、 ShiftJISでは区点コードがなく、UnicodeではU+FE45、UTF-8ではefb985らしい。 そして、このグリフを持つフォントが無い。あるのかもしれないが、 手持ちのフォントには無いし、よく知らない。そのまま馬鹿正直に このコードで出力してもほとんどのフォントでは何も出力できない。 InDesignでは専用の圏点フォントファイルを作成して使っているようだ。 結局こうするしかないのか。Tategakiではルビとして黒丸でもつければ それっぽくなる気がするが、黒丸じゃないんだよね、というこだわりには ちょっと対応できない。自分でフォントを作りルビ用フォントとして 混植するしかない。図は黒丸、中黒と、何か使えそうなものは無いかと 探してて見つけた名称不明の漢詩の平仄記号のようなもの。つうか、なんか この記号の位置が左に寄りすぎてる気がするが・・・。
あとルビと圏点が併用されてる例は記憶に無いが、存在しないとは言えない。 このようなニーズにも対応できない。ルビに圏点は無いだろうが、親文字に 圏点は子供向けの漫画やライトノベルを漁れば見つかるかもしれない。

などと更なる機能の広がりを考えた結果、 Tategakiの基本設計からやりなおすことにした。今は当初のグリフを縦に 並べるだけという単純な設計の上に新しくわかった事やアイデアを つぎはぎしながら拡張しているので、これ以上機能を追加するのが 厳しい。


2006-11-14

v0.4。

GIMP2.2.13とGTK2.8.18にアップデートした

2006-11-13

結局ルビ用のTcl風のタグを10種類作ってみた。だんだんインタプリタ言語っぽくなってきた。

ルビが親文字より長い場合に空白を取らない
rt肩ツキ
rc中ツキ
rb下ツキ
rja均等割付0:1:0
rjj均等割付1:2:1(JIS X 4051)
ルビが親文字より長い場合に空白を取る
rte肩ツキ
rce中ツキ
rbe下ツキ
rjae均等割付0:1:0
rjje均等割付1:2:1(JIS X 4051)

モノルビ、グループルビの区別は無く、モノルビにしたいときは親文字一文字づつにルビを振っていくことになる。

気合で入力。

[rjae 在原業平 ありはらのなりひら]の[rc 中將 ちうじやう]の[rc 女 おむな]、[rt 鬼 おに]に[rc 食 くら]われし[rce 語 ものがたり]

[rt 今 いま]は[rc 昔 むかし]、[rc 右近 うこん]の[rte 中將 ちうじやう][rjae 在原業平 ありはらのなりひら]と[rc 云 い]う[rt 人 ひと][rc 有 あ]けり。
[rt 極 いみじ]き[rc 世 よ]の[rt 好色 こうじき]にて、[rc 世 よ]に[rc 有 あ]る[rc 女 おむな]の[rc 形 かた]ち[rce 美 うるはし]と[rc 聞 き]
くをば、[rc 宮仕人 みやづかへびと]をも[rt 人 ひと]の[rc 娘 むすめ]をも[rc 見 み][rt 殘 のこ]す[rc 无 な]く、[rt 員 かず]
を[rt 盡 つく]して[rc 見 み]むと[rt 思 おも]ひけるに、[rc 或 あ]る[rt 人 ひと]の[rc 娘 むすめ]の、[rb 形 かたち]、
[rt 有様 ありさま][rc 世 よ]に[rja 不知 しら]ず[rja 微妙 めでた]しと[rc 聞 き]けるを、[rc 心 こころ]を[rt 盡 つく]して
[rc 極 いみじ]く[rja 假借 けさふ]しけれども、「[rt 止事 やむごと][rc 无 な]からむ[rt 聟取 むことり]をせ
む。」と[rc 云 い]ひて、[rt 祖共 おやども]の[rja 微妙 いみじ]く[rce 傅 かしづき]ければ、[rt 業 なり]
[rt 平 ひら]の[rt 中將 ちうじやう]、[rc 力 ちから][rc 无 な]くして[rt 有 あり]ける[rt 程 ほど]に、[rt 何 いか]にしてか
[rt 構 かま]へけむ、[rc 彼 か]の[rc 女 おむな]を[rc 蜜 みそか]に[rt 盗 ぬす]み[rt 出 いだ]してけり。

その出力

20061113.png

これは句読点がぶら下がってきれいに改行しているが、一行づつ計算しながら きれいに見えるように手動で組みあげた。今のTategakiではユーザーが入力した 改行位置でしか改行できないのだが、将来的には高さをピクセルなり全角文字数で 指定して、 禁則処理をしながら自動で改行位置を発見できるようにするニーズが あるかもしれない。
しかし、自動で改行させるとなると、まだこれだけでは"熟語ルビ"(行中では グループルビのように振舞うが、親文字を切断して改行可能で、そうすると モノルビのように振舞うルビ by JISX4051)を表現することができないので、 内部実装も含めてタグの仕様を変更しなければならないかもしれない。

2006-11-11

20061111.png

ルビのつけ方が難しい。

JISX4051のルールで大体はカバーできるとは思うが、必ず破綻するケースが存在し、その場合のルールはまちまちだ。一番難しいのは、親文字長よりルビ長の方が長かった場合だ。平仮名には一文字だけかけてよいとか、ルビ二分だけだとか、全部かけるべきではないとか、熟語の場合はいいとか、コンピュータでレイアウトする時は、ジャスティファイをかけたときにどうするかとか、とにかく手元の書籍をいろいろと眺めてみれば見るほど迷いが生じてくる。
先日某漫画で「英ケンブリッジ大学」の「英」一文字(たぶん20級くらいの本文)に「イギリス」というルビを平体5で押し込んでいるのを見た。かすれてほとんど読めないが、親文字から絶対にはみ出させないという何がしかの信念を感じる。見出しならともかく、本文の一文字に四文字のルビを押し込むのは、既に破綻しているように思えるが、これをやった人にとってはまだOKだったのだろう。これがさらにルビ文字が多かったり、複雑な字形だったり、破綻した時の行動が気になる。

などと迷いながらも、いくつかのルールを切り捨てながら実装は進み、図のような(ブツ)が出せるようになった。だが、そもそもこれをユーザーからどう入力させるかも問題だ。ワープロソフトでは文字を選択し、ルビ用のダイアログを出して入力させるという手順のものが多いが、どうするか。TeXなどのようにタグで入力させるならそれもそれで文章の解析がめんどくさい。。。


2006-11-03

JIS X 4051による約物の基本的な用法で行頭に「。」がきたときとか、行末に「(」がきたりとか、そういう禁則処理無しの時のところが書いてない。

+----------+-----+-----+-----+-------+-------+-----+-----+
|          |行頭 |行末 |和文 |始括弧 |終括弧 |中点 |句点 |
+----------+-----+-----+-----+-------+-------+-----+-----+
|行頭      |-    |-    |0    |0      |?      |?    |0?   |
|行末      |-    |-    |-    |-      |-      |-    |-    |
|和文      |-    |0    |0    |2      |0      |4    |0    |
|始め括弧  |-    |0?   |0    |0      |0?     |?    |?    |
|終り括弧  |-    |0    |2    |2      |0      |4    |?    |
|中点      |-    |0?   |4    |4      |?      |?    |?    |
|句点      |-    |0?   |2    |2      |0      |?    |?    |
+----------+-----+-----+-----+-------+-------+-----+-----+

約物は全て半角、和文は全角として定義。数字は横がその後ろのアキ。 縦に見ると前のアキ。-は存在しない組み合わせで、?はおそらく 禁則処理でやらせない(つもり)などで定義されていないもの。
Tategakiは禁則処理はまだできないし、どうしたもんか。 あとプロポーショナルフォントの時はどうするか・・・。

Tategaki v0.3での約物連続処理は、等幅フォントでこのJISX4051の 約物の基本的な用法を実装してみたものだが、中点、句点が漢数字の 位取りであった場合、段落の冒頭の字下げ+始め括弧の場合、といった ところは実装できていない。それにこのオプションをJISX4051と 命名すると、禁則処理も実装できてるかのような誤解を生みそうで怖い・・・。

2006-10-28

半角数字が寝ている組み方は基本ではあるけど、いまいち使いにくい。↓

半角の数字と感嘆符を立てて、二桁の時は縦中横になるようにしてみた。↓

2006-10-26

Dynafontで半角の英数が全角の幅になってしまう問題について、カーニングの問題なのかまだ知らないテーブルの情報が欠けているのか、何なのかわからずしばらく悩んでいたが、 (このようになる↓)

フォント側のバグらしい。FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTHフラグを立てとけば よいらしい。

This flag exists for historical reasons (to support buggy CJK fonts).

こんなこと書いてあったし。これずばりDynafontのことじゃないの。これを立てとくとこうなる↓。

2006-10-21

GTKできれいなGUIを作るのは諦めた。GIMPのプラグインとして基本的な目鼻は付いた。まだ未実装なところや、ゴチャゴチャしたままのところがある。とりあえずのテストレンダリング。DynafontはGSUBで無くてmortのようだ。

2006-10-18

英数も回転して表示できるようになった。大体基本的なレンダリング機能は出来たので Freetype側はうっちゃっておいてGimpプラグイン側から掘り進めている。GTKが手ごわい。

#ref(): File not found: "20061018a.png" at page "GIMP2で縦書き"

2006-10-16

Freetype2を使って縦書きできる状態になった。横書きはできない。DynaFontが表示できない。~の縦書きが出ない。


バージョン履歴

  • 0.1 20006-10-21
    • リリース。
  • 0.2 2006-10-29
    • フォントサイズのポイント指定。
    • アンチエイリアスON/OFF。
    • 字送り(トラッキング)、行送り。
    • Dynafontのasciiのアキが半角になるようになった。
    • 数字の縦中横。
  • 0.3 2006-11-03
    • リファクタリングしてバグをけっこう潰した気がする。
    • グリフが存在しない時に豆腐を出すのをやめた。(何もレンダリングしない)。
    • 画面をきれいに整理した。
    • ダイアログを常に開いたままにすることにした。
    • ついでに常に前面にできるようにした。
    • 行揃えの適当な実装。
    • なんとなく約物処理の実装。
      等幅フォントの時は連続処理はJISX4051の用法。だが、プロポーショナルフォントの時はけっこう色々怪しい
  • 0.4 2006-11-14
    • フォントの混植。仮名、欧文、ルビで別のフォントを指定できるようにした。
    • ルビを実験的に実装してみた。ルビタグの仕様はこのページのどこかに書かれてるはず。
    • 選択範囲が存在していたら、その位置に作成したレイヤーを移動するようにした。
    • Windowsにおいてテキスト入力のフォントをMS Gothic 12ポイントにした。
      ちょっとでかめだけどデフォルトのままのプロポーショナルフォントよりかなり読みやすい。
  • 0.4.1 2006-11-20
    • バグフィックス色々。
    • 起動時にスプラッシュ画面を出すようにした。
    • .otf拡張子も読み込むようにした。
  • 0.5.0 2006-12-03
    • ルビが他の行に重ならないように、行間が足りない時は自動で調整するようにした。
    • 連数字を三桁以上縦中横にできるようにした。幅は全角幅固定で、はみ出る時は全角幅に変形。
    • プリセットでパラメータを保存しておけるようにした。ただし今後のバージョンアップ時の互換性は不明。
    • ルビコマンドで全角スペースを区切り文字として認めないようにした。
    • ルビ長が親文字長より長い場合、親文字長に合わせてルビを自動変形できるようにした。
    • ルビの最大の変形率を指定できるようにした。デフォルトのルビの大きさが親文字の半分の時、1.0(変形なし、親文字1文字にルビ2文字)、0.666(親文字1文字にルビ3文字)、0.5(親文字1文字にルビ4文字)、0.4(親文字1文字にルビ5文字)になる。
  • 0.6.0 2007-11-11
    • フォントディレクトリをユーザーが指定しなければならないように変更した。
    • Linuxでもコンパイルできるようにした。



参考リンク

コメントをどーぞ

  • ダウンロードしてプラグインフォルダにコピーしたけど、エラーが出て起動できません。詳細のやり方を教えて下さい。 -- ワタナベ? 2006-10-27 (金) 00:15:28
    • エラーの原因がわからないので環境を書いておきます。Windows2000SP4, GIMP2.2.10, GTK2.8.15, GLIB2.8.6。コンパイラとリンカはVC6でGIMP for Windowsの2.2.10のバイナリから直接インポートファイルを作成して必用なライブラリをリンクしています。フォントは%SystemRoot%/Fonts/に配置しています。 -- reddog? 2006-10-28 (土) 00:23:18
  • 2台のパソコンにそれぞれGIMPが入っており、縦書きが1台は起動でき、もう1台はエラーが出るという状態になってます。起動できるのはWin2000SP4、GIMP2.2.11。エラーが出るのはXPHomeSP2、GIMP2.2.13。OSの問題なのか?GIMPのバージョンの問題なのか?お助け願います。 -- ワタナベ? 2006-10-29 (日) 23:50:57
    • フォントの問題じゃないかなあ。(たぶん)。 -- reddog? 2006-10-31 (火) 00:15:47
  • ダウンロードリンク切れてます。 -- mot? 2006-12-17 (日) 17:09:05
    • 直しました。どうもです。 -- reddog? 2006-12-17 (日) 23:04:55
  • Windows98SE, GTK2.6.10, GIMP2.2.13で動作できました。 ただ、moファイルをロケールディレクトリにコピーしましたが日本語表示にならないようです。(FreeTypeも日本語表示でないから私の環境に原因があるのかもしれませんが・・・) -- トゥーディ? 2006-12-23 (土) 13:12:24
    • うーん何だろう。gettextの使い方間違えてるかも。あとで調べておきます。来年に持ち越しということで・・・ -- reddog? 2006-12-23 (土) 23:27:28
    • tategaki.exeをユーザーの設定ディレクトリ(例えばC:/Documents and Settings/myaccount/.gimp2.2/plug-ins/とかに入れた場合は、そこからディレクトリを作成してC:/Documents and Settings/myaccount/.gimp2.2/plug-ins/lib/locale/ja/LC_MESSAGESにgimp2.0-tategaki.moを配置する。tategaki.exeをC:/Program Files/GIMP-2.0/lib/gimp/2.0/plug-insに入れた場合は、gimp2.0-tategaki.moをC:/Program Files/GIMP-2.0/lib/locale/ja/LC_MESSAGESに配置する。というのを試してみてください。 -- reddog? 2006-12-28 (木) 10:06:33
  • 前述のトゥーディです。上記に示された方法のうち、tategaki.exeをユーザー設定ディレクトリに入れて、そこからディレクトリを作成・tategaki.moを配置する方法で日本語表示されました。ありがとうございました。 -- トゥーディ? 2007-01-03 (水) 22:32:36
  • フォントの件で報告です。自PCはWindows XP SP2ですが、C:\WINDOWS\Fontsに入っていた「江戸勘亭流」が起動できまない原因でした。 -- 601? 2007-09-17 (月) 16:36:07
    • バグ報告ありがとうございます。しかしそのフォントを持ってないので検証できません。すいません -- reddog? 2007-09-18 (火) 18:54:16
  • fontディレクトリを設定して再起動すると起動しなくなりましたが、上記を参考にしてms明朝のみにしてみると起動しました。どのFONTが悪いのかわからないので難儀。どうしよう -- cherry? 2008-02-17 (日) 22:07:27
    • 半分入れて見て、問題なければ残りの半分のさらに半分を入れるみたいにして調べてみたらどうでしょう。どのフォントが原因かわかったら教えてください。 -- reddog? 2008-02-17 (日) 23:20:15
  • GIMP 2.4.4では使えないのでしょうか? 「失敗」になってしまいます・・・ -- しん? 2008-04-07 (月) 18:11:50
    • 使えます。が、いくつか落ちるフォントがあるらしいので、怪しいフォントがあれば外してみてください。 -- reddog? 2008-04-07 (月) 22:03:07
  • ありがとうございます!なんとか使えるようになりました。 -- しん? 2008-04-07 (月) 23:07:23
  • でもLC_MESSAGESというのがどこにも無いんです。このバージョンでは別の名前なんでしょうか・・・?こんな質問で申し訳ないです。 -- しん? 2008-04-07 (月) 23:30:58
    • C:\Program Files\GIMP-2.0\share\locale\ja\LC_MESSAGESかも。 -- reddog? 2008-04-08 (火) 00:30:14
  • 何度もすいません。これを最後にしたいと思います。日本語にするファイルを開くアプリケーションソフトが、調べても全くわからないんです。 -- しん? 2008-04-08 (火) 15:53:39
    • gettext、libintlでぐぐってみるといいんではないでしょうか。 -- reddog? 2008-04-08 (火) 22:11:48
  • 報告までに>WinXPSP2 GIMP2.4.6でFontフォルダを設定した後tategakiがエラーで起動できませんでしたが、流麗行書体と流麗連書体の2つ削除したら起動しました。 -- ゆの? 2008-06-24 (火) 15:01:59
  • tategaki-0.6.0.zip 日本語ドキュメントの中身が空白で、ubuntuへのインストール方法が分かりません -- BYAP? 2008-07-05 (土) 13:06:47
    • ああ、docはずらずら日記みたいに書いてあることをまとめたマニュアルをあとで書こうと思って忘れてました。Ubuntuのインストール上の注意は2007-11-11に書いてありますがごらんになりましたか -- reddog? 2008-07-05 (土) 18:57:47
  • 有り難うございます。見落としてました。上記記述を管理者権限で実行しましたがPermission deniedでインストールできません。これは設定の問題でしょうか。 -- BYAP? 2008-07-05 (土) 20:34:54

CategorySoft CategoryGimp


添付ファイル: file20071105.png 14件 [詳細] file20061201.jpg 18件 [詳細] file20061125.png 18件 [詳細] file20061117.png 29件 [詳細] file20061113.png 21件 [詳細] file20061111.png 13件 [詳細] file20061029b.png 162件 [詳細] file20061029a.png 231件 [詳細] file20061026a.png 140件 [詳細] file20061026b.png 173件 [詳細] file20061021a.png 152件 [詳細]

|新規|編集|凍結|差分|バックアップ|添付|複製|名前変更|
Last-modified: 2008-07-05 (土) 20:34:58 (10d)
HTML convert time: 0.280 sec.