2020年08月29日

Glyphsで作成した波線のバリアブルフォントを使う

DTP作業者にとっての難易度 ★☆☆☆☆(1)

※2020.8.29の12時頃/サンプルデータを更新しました(ルビなどで使用できるようcaltを使用しないグリフを追加)。

※2020.8.31の19時頃/サンプルデータを更新しました(パス形状修正)。

※2020.9.1の2時頃/サンプルデータを更新しました(グリフ追加)。


InDesignには「波状」という線種が用意されていますが使い勝手がよくありません。そこで今回は波線用のバリアブルフォントをGlyphsで作成してみました。バリアブルフォントに対応しているアプリケーション(InDesignはCC2020以降、IllustratorはCC2018以降)で使用することができます。
2020a_0828a.png

使い方は簡単です。「AAA...」または「aaa...」と入力して上でフォントを適用すると波線の形状になります。続いて文字パネルのバリアブルフォントボタンを押すと4つのパラメーター「Weight」「Height」「Width」「Distance」が表示されます。スライダか数値入力欄でそれぞれの値を変更することで波線の形状をコントロールできます。

※当方ではPDF書き出しまでしかテストしていません。バリアブルフォントは新しい技術なのでどこかに不具合が潜んでいる可能性もあります。お仕事などで使用される場合は十分に出力テストなどをおこなってください。


4つの軸について

いずれもユニット数そのものが数値になっています。

Weight(10〜160)

線幅(ユニット)です。あまり太くすると曲線内側が滑らかにつながらないケースが生じるため160ユニットを上限としました。

Height(100〜600)

波の高さです。線幅は含まれていません。

Width(500〜1500)

グリフ幅(波0.5個分の幅)です。

Distance(0〜1000)

二重波線の中心軸同士の距離です。0は2本がピッタリ重なった状態、1000だとふたつの中心軸がそれぞれ仮想ボディ上端と下端に揃った状態になります。

寸法について

正確な寸法は以下のように計算します(文字間0の場合)
線の長さ=文字数×(級数×0.25)×(Width値/1000)
線の太さ=(級数×0.25)×(Weight値/1000)
一重波線の線幅を含む高さ=(級数×0.25)×((Height値+Weight値)/1000)
二重波線の線幅を含む高さ=(級数×0.25)×((Height値+Weight値+Distance値)/1000)


※2020.8.29の12時頃サンプルデータを更新/ルビなどで使用できるようcaltを使用しないグリフを追加しました。大文字で「XYXYXY...」と入力すると一重波線、小文字で「xvxvxv...」と入力すると二重波線となります。なお、ルビ設定では「揃え」を「中付き」にする、「文字欠け処理」を「無制限」にする……などがポイントになると思います。

2020-0829a.png

※2020.8.31の19時頃/サンプルデータを更新/XYおよびxyが左右均等に10ユニットずつはみ出すようパス形状を修正しました。

※2020.9.1の2時頃サンプルデータを更新/「AAA...」に加えて「あああ...」でも同じ波線が生じるようグリフを追加しました(欧文だと全体が分割禁止となり1行に収まらない場合すべての文字が表示されなくなるため)。同様に「aaa...」は「アアア...」、「XYXY...」は「かきかき...」、「xyxy...」は「カキカキ...」でも同じ波線が生じます。

サンプルデータ(2020.9.1更新)はこちら《wave_variable_0901b.zip》です。
posted by 照山裕爾 at 02:37| Comment(0) | InDesign-書式・スタイル | このブログの読者になる | 更新情報をチェックする

2020年07月11日

段落スタイルを使用しない「ぶら下げ行」【InDesign】

DTP作業者にとっての難易度 ★☆☆☆☆(1)

※2020.7.17追記あり

先日、twitterに「縦組みで右ページ1行目のアキ行は自動的に削除(吸収)し、左ページ1行目(ノド直後)のアキ行は残す方法はないか」という書き込みがありました。当ブログの『アキ行をフレーム外にぶら下げる・突き出す【InDesign】』を用いると、左右どちらのアキ行も吸収してしまうため解決できません。
そこで別の方法を考えてみたのですが、簡単な方法でクリアできることが分かりました。

@左ページのみマスターページの行数を1行増やす(小口側)。
A前面にレイヤーを設け、@で増やした最終行の前面に回り込みオブジェクト(境界線ボックスで回り込む)を置く。オブジェクト上部はフレームグリッドに揃えず1mmだけアキを設ける。

※2020.7.17追記/回り込みのモードは「境界線ボックスで回り込む」ではなく「オブジェクトのシェイプで回り込む」にしたほうが安定するようです。サンプルデータも更新しました。


これだけです。

回り込みオブジェクトがある行に文字は入れませんが、改行コードだけであれば1mmの隙間に入ることができる……というわけです。

なお、前面レイヤーを非表示にしても回り込みは保たれますので不要なオブジェクトが出力されることは避けられます。

※デフォルトでは「レイヤーオプション」の「レイヤーの非表示でテキストの回り込みを無効にする」がオフになっているためです。これをオンにするとレイヤーを非表示にすることで回り込みが解除されてしまいますのでご注意ください。


この方法を右ページにも用いれば、ノド直後のアキ行も吸収することができます。もちろん、横組みでも同様の方法を用いることが可能です。

いくつか注意点があります。

まず、マスターを適用した直後は正しく処理されないようです。この場合、全ストーリーの再計算(Command + Option + /)を実行することで正しい状態になります。

改行コードの段落の行頭側にインデントを設定していると改行コードが隙間に入ることができません(アキ量設定による字下げは問題ありません)。

改行だけの行にオブジェクトをアンカーしていた場合、その行はアンカー付きオブジェクトごと隙間に入ってしまいます。これを避けるためには、アンカー付きオブジェクトの段落にはインデントを設定しておくといいでしょう。

改行だけの行に表組みを設けた場合、隙間に入ってしまうことがあります。ただ、表の設定で「表の前のアキ」を適切に(行間値と同じに)設定することで隙間に入ることを回避できるようです。

その他、隙間に何かが入り込んでしまう可能性がないかという点について確証はありません。お試しになるにあたっては十分にテストされるようお願いします。
2020.7.17のサンプルデータはこちら《minimum_2020_0717a.zip》です。
posted by 照山裕爾 at 03:51| Comment(0) | InDesign-書式・スタイル | このブログの読者になる | 更新情報をチェックする

2020年06月21日

InDesignドキュメントの各ページを個別ファイルにするスクリプト

DTP作業者にとっての難易度 ★☆☆☆☆(1)

先日、ブログをご覧になった方から「複数ページを1ページずつに分割するスクリプトをご存知ないですか」と問い合わせがあり、せっかくの機会なので書いてみました。その後、さらに少し改良したのが今回のスクリプトです。

※ストーリーがページを越えてつながっているケースは想定していません。各ページでレイアウトが完結していることが条件です。



使い方

ドキュメントを1つだけ表示した状態でスクリプトを実行し、ダイアログで以下を設定します。

0619a.png

@分割ファイルの名称
分割後のファイルには4桁の通し番号がつきます(例「ABCD_0001.indd」)。通し番号を除く部分を設定してください。デフォルトでは「元ドキュメントの名称_」となっていますので、そのままでも構いません。なお、空欄にした場合は自動的に「doc_」となります。

A分割後のページ番号
チェックしていない場合は元ドキュメントのページ番号が保たれます。チェックすると各ドキュメントのページ番号はいずれも「1」に統一されます。ページ番号のスタイルはドロップダウンリストから選択してください。

1ファイルずつ処理するため、ページ数が増えると処理には結構な時間がかかります。まずは少ないページでテストしてみてください。また、念のため必ずバックアップをとった上でお試しください。
サンプルデータはこちら《split_pages_ver3_0619d.zip》です。
posted by 照山裕爾 at 02:49| Comment(0) | InDesign-書式・スタイル | このブログの読者になる | 更新情報をチェックする