Affinity Publisherで日本語処理(8)モノルビ(ルビ1・2文字)

2019年08月16日

最初に言っておきますが、結果的に中途半端な状態になって失敗してます。この辺はソフトウェアの対応を待つしかないかな。

例題はこんな状態のものです。青空文庫の表示に合わせてみました。

もうひとつ、html5のテキストも作ったんですが、あんまり意味なかったのでやってません。

<p>さて、タイトルにある<ruby>通<rt>とお</rt></ruby>Affinityソフトウェア(<ruby>主<rt>おも</rt></ruby>Publisher)

まあ、失敗は失敗として、こんな考え方でチャレンジしましたというのを残しておこうと思います。


まず、本文の基本設定ですが、段落スタイル「本文基本」で次のようにしています。

  • 小塚明Pro6N R
  • 文字サイ10pt
  • 行送16pt
  • 左揃え
  • 1行目インデン10pt

ここから、ルビにする文字の文字スタイル、ルビの親字の文字スタイルを作成していきます。

文字スタイル「rt1」

これはルビが1文字の場合のルビにする文字の設定です。こんな感じで大きさと位置を変更します。

  • 水平比50%
  • 垂直比50%
  • トラッキン500‰
  • ベースラインシフ9pt
  • 全ての代11

Affinity SuiteOpenType機能の東アジア言語には対応していないのですが、全ての代替(aalt)は用意されているので、そこからルビ字形にアクセスすることができます。小塚明朝、リュウミン、筑紫明朝のいずれも全ての代替(aalt)11がルビ用字形だったので、たぶん行けるだろうとそれを設定しておきました(後々これが悲劇になる)。

文字スタイル「rb1」

これはルビが1文字の場合の親文字の設定です。トラッキング-750‰しか設定してないです。

この状態で「《」の文字を削除すると、こんな具合にルビのように見えるという技です。

文字スタイル「rt2」

これはルビが2文字の場合のルビにする文字の設定です。「rt1」からトラッキングの変更を削除したもの。

文字スタイル「rb2」

これはルビが2文字の場合の親文字の設定です。トラッキング-1000‰しか設定してないです。

-1000‰ということは、次の文字を同じ位置にするということですね。

で、このトラッキングは-1000‰が最小値、つまり次の文字を自分より前に出すということができないので、これと同じ方法で3文字以上のルビを処理することができないことになります。なので何らかの発想の転換が必要になってきます。

この状態で先程と同様に「《」の文字を削除すると、こんな具合にルビのように見えるわけです。


まあ、ここまでは同じくルビ機能がなIllustratorでも同様です。だから特に目新しくはないんですが、Affinity Publisherのいいところはこれを「検索して置換」でまとめて実行できるということですね。

ただ、まとめてできるといっても、置換先の文字スタイルは4種類あるので、最低4回は置換しなければいけません。そして、置換の順番ですが、親文字から先にやった方が楽です。

置換①ルビ1文字の親

検索文字列

.(?=《.》)

置換文字列は空欄、置換フォーマットは文字スタイル「rb1」

置換②ルビ2文字の親

検索文字列

.(?=《..》)

置換文字列は空欄、置換フォーマットは文字スタイル「rb2」

置換③ルビ1文字

検索文字列

(.)》

置換文字列

\1

置換フォーマットは文字スタイル「rt1」

置換④ルビ2文字

検索文字列

(..)》

置換文字列

\1

置換フォーマットは文字スタイル「rt2」

 

以上、4回の置換の結果がこうです。

まあ、ぱっと見、それなりにできたかなと。でもよく見ると「つ」がおかしい。

あれ? ひょっとして。ということで「タイポグラフィ」を開いてみると

ありゃりゃ。「つ」は番号がずれてる。ということで、せっかくルビ字形が使えるならと思ってやったことが裏目に。やっぱSerifが対応するまで使えないねえ。