なんでやねんDTP・新館

はてなダイアリーから移行しました…

筑紫明朝系で「あけおめ・ことよろ」を組んでみました…

あけましておめでとうございます。
今年もよろしくお願いします。

ということで、筆者自身がなかなか覚えられない筑紫明朝系の書体で試しに組んでみました。
※すべて「メトリクスカーニング」を適用し、中黒の前後アキ量は「ベタ=アキなし」としています。


ヴィンテージ明朝Q明朝アンティーク明朝「L」と「S」では大きさが異なりますが、仮名部分の字幅は同じになっていて、数字の字幅は変えてあるのがわかります(これらは漢字部分の大きさも異なります)。
また、B明朝アンティーク明朝と仮名のデザインそのものは似ていてますが、やや大きく墨だまりのようなポテッとした感じも弱くなっています。数字は筑紫明朝と同じです(漢字部分も筑紫明朝と同じ)。


オールド明朝は数字は共通のようですね(漢字部分も共通)。
見出ミンは、「A/B」の数字は共通ですが、「C」は別デザインになっており、ツメ加減も「A/B」に比して緩くなっているのがわかります(漢字部分は共通ですが、ツメ加減は異なります*1)。

※以下も参照ください。

*1:ツメ加減に関して藤田氏に直接お聞きする機会がありました。それによると、少し考え方を変更したということでした…“A/Bほどツメルのは使う方に任せた方がイイでしょう”というニュアンス…(ついでに)Cは仮名がA/Bに比してかなり大振りになっているのに最近気づきました…

フレームグリッドとのズレを解消するもひとつの方法

InDesignの「フレームグリッド」で作業していると、グリッドからテキストがズレて2行分になってしまって困ってしまうことが度々起こりますね(これが初心者さんがフレームグリッドを嫌うというか、避ける理由のひとつでもあると思っていたりもしますが…)。

その原因は主にグリッド設定より大きな文字が入る場合で、よく遭遇する例としては、フレームグリッドの1行目にグリッド設定より大きな文字が入るとズレて2行取りのようになりますし、フレームの最終行に入ると1行分のアキが発生し、さらに次のフレームの先頭が2行取りになってしまうというようなことがあります。

その回避方法として、手っ取り早いのは「1行取り」とする方法があります。まあ、これが一般的に行われていることでしょう。

でも、もひとつ方法がありますが、これが意外と知られていないようですし、案外簡単な方法ですので紹介しておこうと思います。

大きくしたい理由は様々でしょうが、よくあるのは「欧文フォント部分」を「正規表現スタイル」を利用して「フォントを変更してサイズを少し大きくする」というようなことですね。

で、そのもひとつの方法というのは…文字サイズの変更を文字サイズそのものではなくグリッド設定に対する%で指定し、「文字の比率を基準に行の高さを調整」のチェックを外すという方法。これを文字スタイルとして登録しておいて適用すればすんなりとズレは解消されます。*1

他には「テキストフレーム設定」の「ベースラインオプション/先頭ベースライン位置」を弄る方法もありますが、1行目の問題は回避できても、最終行に入る際の問題は、「グリッド揃え」や「文字揃え」との絡みで解決できない場合がありますので、却下ですね。

------------

●以下追記:20181227
記事を公開した当日、後になって「グリッド設定に対する%で指定」し、「文字の比率を基準に行の高さを調整」のチェックを外した場合の「文字揃え」に言及する必要があるのではないかと気付きました。
※その時は、当然のように「文字揃え」が効かないのではないかと思い込んでいました。

で、ちょっと追試をしてみたところ…予想に反して「文字揃え」もちゃんと効きますよ…という結果になったので追記しておきます。

手っ取り早く、フレームグリッドの途中での挙動を検証してみました。
20Q/行送り30Hのフレームグリッドを用意し、一部の文字を32Qとした例(左)と160%とした例(右)を作成し、文字揃え/グリッド揃え/行送りの基準位置をそれぞれ統一しました。

文字サイズそのものを変更した場合は予想通りグリッドとのズレが生じています*2し、比率で変更した場合はズレません*3。さらに「文字揃え」も指示通りとなっています*4

*1:「文字の比率を基準に行の高さを調整」のチェックは「フレームグリッド」ではデフォルトでONになっています

*2:これは行送り値=文字サイズの100%=32Hですので当然ですね

*3:「文字の比率を基準に行の高さを調整」のチェックONの場合は当然ズレます

*4:流石です…何も文句はございません

「文字組みアキ量設定」で区切り約物の後ろに全角分のアキを挿入

先日、知人のtwitter上でのある報告が気になって検証してみました。

それは、「文字組みアキ量設定」をカスタマイズして、区切り約物「!?‼⁉⁈⁇」と後続の両仮名や漢字の間に全角アキ挿入を実現したいのだけれど、「‼⁉⁈⁇」があるとその行全体の字間がツマリ気味になるという報告…

まずは、以下のようなテキストを用意しました。

(ちょっとミスして、上の作例は既に適用してありますが…)「文字組みアキ量設定」そのものは、前の文字クラス=「区切り約物」と後の文字クラス=「平仮名/カタカナ/上記以外の和字」間の「最適値」と「最小値」を「100%」とすれば済みそうですのでごく簡単ですね(作例はデフォルトで用意されている「行末受け約物全角/半角」を元にカスタマイズ)。

で、「‼⁉⁈⁇」の部分には正規表現スタイル」でOpenType機能の「任意の合字」を適用すると…

報告にあったように、画像の通り字間がツマってしまっています(きっとバグでしょうね)。

この原因が「‼⁉⁈⁇」に適用した「任意の合字」にありそうなことは容易に推測できますね。
それではと、「任意の合字」を解除して既存の合字として用意されている U+203C, 2047, 2048, 2049 などを直接打ち込むと…

うーん、ヨコに寝てしまいますね…

なので「縦中横」を適用してみると…

うーーんん、正立しましたが今度は「アキ」がなくなってしまいました…

が、しかーし、「縦中横」ではなく「文字回転=90°」を適用すると…

ということで、なんとか解決しました。

ただし、「!?」は「行頭禁則文字」に登録されていますが、「‼⁉⁈⁇」は登録されていないので、これらを追加登録することも忘れてはなりません。

※区切り約物「!?‼⁉⁈⁇」は(StdやProなどの)文字セットによっては範囲外となっているモノがありますのでご注意ください。

合成フォントに躓きました…

この記事は、DTP Advent Calendar 2018の12日目の記事です(最後に残った1枠でございました…)。

いま現在進行中の案件でタテ組みの「合成フォント」を組んだ際にちょっと躓いたので、経緯を纏めておきます(アプリケーションはInDesign CS6です)。

デザイナーさんからのフォーマットは「合成フォント」と書いてはあるものの、「正規表現スタイル」で指定してありました。
段落スタイルの内容は【[\d\l\u\l\ \”\@]+?】に文字サイズを110%拡大した欧文フォントを充てるというモノで、文字揃えは(タテ組みですから)「仮想ボディの中央」で、「1行取り」とされていました。
「1行取り」とする理由は、欧文部分を「110%」にしてありますから、グリッドに収まらずに2行取りとかになってしまうからですね。
※これは(110%とする)文字スタイルの「文字の比率を基準に行の高さを調整」のチェックを外せば特に問題ないでしょう(合成フォントではこの問題は起きないのはご存じの通り)。

この正規表現スタイルを利用して合成フォント風の表現を実現する方法は知ってはいるのですが、ベースラインを弄る場合には文字サイズ毎に文字スタイルを作成する必要があるため私は使うことに二の足を踏んでいました。

また、この支給された正規表現スタイルではピリオドやコンマあるいは一重引用符や閉じ側の二重引用符やダーシ類に欧文書体は適用されませんね。

なので、とりあえず合成フォントを組むことにしました(あらかじめ仮名書体を使うことや、U+02D9を使って文字を作る必要があるということが判っていたこともありますが…)。

  • 2種の引用符とU+2014は「特例文字」で設定しました
  • 「¨」U+00A8は合成フォントの分類では全角記号となっています。

まず第一の躓きは、合成フォントを作成する際にベースラインを弄らなかったこと。
合成フォントで適用できる範囲外のラテン1補助やラテン文字の拡張AおよびBなどの(一部の)文字が出現すると「文字スタイルを適用」…としたのですが、当然ベースラインが微妙に異なりますね(これは判っていたことなのですが…)。


合成フォントは欧文ベースライン揃えの状態から文字サイズを110%としているのに対し、正規表現スタイルで適用した場合は「文字揃え=仮想ボディの中央」の設定に応じて文字の位置が決まります。なので当然の結果ですね。

  • 下はすべて合成フォント
  • 「¨」U+00A8の左右のアキが異なることにも注目してくださいね(上が正常)

まあ、文字スタイルでベースラインを弄ってもいいのですが、それでは本末転倒ですし、括弧内の文字サイズは小さくしたり、後注部分などを含め数種類の文字サイズが出現するため文字スタイルがそれだけ必要になります(ただし、今回の場合はベースラインを弄る必要はなかったのですが…)。
なので、これを解消するために合成フォントの「特例文字」で
ラテン1補助の一部やラテン文字拡張A [\x{0100}-\x{017F}]、ラテン文字拡張B [\x{0180}-\x{024F}]、ギリシャ文字 [\x{03840370}-\x{03FF}]*1などなどを追加し(合成フォントの半角欧文との重複は特に問題なしと理解)、ついでにベースラインを、(「文字揃え=仮想ボディの中央」で110%拡大した場合の位置に揃うように)1.8%上へ移動しました。

これで大丈夫と思いましたが、さらに落とし穴がありました。
画像をご覧いただくと、引用符にはアキ量設定の半角アキが適用されているようなのが判りますね(ギリシャ文字の一部などにも不自然なアキが発生しています)。引用符として使う場合は欧文スペースとセットで使うことが多いでしょうから気づかないのですが、アポストロフィとして使う場合にはアキを削除する必要が出てきますね。
さらに、合成フォントを組んでもギリシャ文字部分はタテ組みでは正立してしまう文字種が多いようです。

結局、合成フォントを組む場合は、少なくとも「引用符」と「ギリシャ文字」は正規表現スタイルで欧文フォントを適用する方がいいということになりました。

結論としては、ベースラインを特に弄る必要がない、あるいは(ベースラインを弄るとしても)使用する文字サイズのバリエーションが少ないのであれば、正規表現スタイルで合成フォント風の表現を実現するのが一番ラクだろうということに……。

ということで…「今更なにを」的なことになってしまいました。

但し、そのように正規表現スタイルで文字サイズを大きくした欧文は、正立させるとその文字サイズの字送り量になってしまいますので、正立させる部分があるなら「合成フォント」を組む方がラクですね。(この部分、20190820追記)

※合成フォントとギリシャ文字の件については、中嶋かをりさんが先日言及されていましたね。→「InDesign上でのギリシャ文字のおかしなふるまい

 

*1:ギリシャ文字拡張 [\x{1F00}-\x{1FFF}]