神和電子

Affinity3でグリッドシステムを使う

作成日:

概要

最近、坂本伸二『デザイン入門教室[特別講義] 増補改訂版』(SBクリエイティブ)を読んでいます。また、半年くらい前にヨゼフ・ミューラー゠ブロックマン『グリッドシステム グラフィックデザインのために』(ボーンデジタル)も読みました。

これらの本曰くグリッドシステムを使うといい感じになるらしいので、やってみます。使うソフトウェアは、バージョン3で無料になった Affinity 3 です。

寸法の計算

まず、グリッドを設定するためには版面の寸法(余白の大きさとグリッドの大きさ)を決める必要があります。写真だけを並べるようなレイアウトであれば好きに数値を決めればいいのですが、文字がメインの媒体の場合は文字サイズと行間とうまく合うように寸法を決める必要があります(『デザイン入門教室[特別講義] 増補改訂版』の28ページの「本文の文字サイズを基準としたグリッド設定」)。

しかし、この決定を行うための寸法計算はなかなか大変です。例えば、A4縦の紙を縦4つ、横2つの8個のグリッドに分割したいとします。としましょう。このとき、文字がうまく揃うようなグリッドにするには、まず、

  • 行数は4で割って3余る行数にする

という制約が出てきます。グリッドの間ごとに1行ずつ入ってほしいからです。その上で、版面の高さは

  • 版面の高さ = 文字サイズ * 行数 + 行間 * (行数 - 1)

となります。これを踏まえた上でA4縦の高さ 297 mm を埋めていったときにほどよい余白が残るように文字サイズと行間を決めるのは、なかなか大変です(特に文字サイズの単位として級数ではなくポイントを使う場合)。

というわけで、用紙サイズと文字サイズと余白目安を与えたときにちょうどいい行数を提案するプログラムを書いてみました。TypeScript(処理系はDeno)で書いたので、

deno init hanzura-calc
cd hanzura-calc
vim main.ts # 以下の内容で置き換える
deno run dev

で動くはずです。

使う際には、末尾の if (import.meta.main) の中にある config 変数を置き換えて使います。例えば、

if (import.meta.main) {
  // 設定値
  const config: Config = {
    // 用紙種別
    paperType: 'A4',
    // 文字サイズ
    charSize: 9 * globalConst.point,
    // 行間(文字サイズに対する割合)
    lineSpacing: 0.7,
    // 上下それぞれの余白(mm)の目標値
    targetMarginVertical: 15.0,
    // 左右それぞれの余白(mm)の目標値
    targetMarginHorizontal: 20.0,
    // 縦のグリッド数(段数)
    gridNumRows: 4,
    // 横のグリッド数(列数)
    gridNumCols: 3,
    // フォントのグリフ高さのうちベースラインより上の割合
    // (フォントによって異なるが、一般的には0.8~0.9程度)
    fontAscentRatio: 0.8,
  };

  suggestPageLayout(config);
}

と変更した上で実行すると、

--- 前提 ---
用紙種別: A4
用紙高さ: 297 mm
用紙幅: 210 mm
文字サイズ: 3.17 mm / 12.70 Q / 9.00 pt
行間: 70.00 %
縦のグリッド数: 4 段
横のグリッド数: 3 列
上下それぞれの余白目標値: 15.00 mm
左右それぞれの余白目標値: 20.00 mm

--- レイアウト案1 ---
1グリッドあたりの行数: 11 行
1ページあたりの行数: 47 行
1グリッド内の行あたりの字数: 16 字
1ページあたりの総字数: 2256 字

上下それぞれの余白: 22.77 mm
左右それぞれの余白: 21.18 mm
版面比率(縦): 84.67 %
版面比率(横): 79.83 %

グリッドの間隔: 7.62 mm / 30.48 H / 21.60 pt
1グリッドの高さ: 57.15 mm
1グリッドの幅: 50.80 mm

ベースライングリッドの開始位置: 25.31 mm / 101.24 H / 71.74 pt
ベースライングリッドの間隔(高さ): 5.40 mm / 21.59 H / 15.30 pt

--- レイアウト案2 ---
1グリッドあたりの行数: 12 行
1ページあたりの行数: 51 行
1グリッド内の行あたりの字数: 16 字
1ページあたりの総字数: 2448 字

上下それぞれの余白: 11.98 mm
左右それぞれの余白: 21.18 mm
版面比率(縦): 91.94 %
版面比率(横): 79.83 %

グリッドの間隔: 7.62 mm / 30.48 H / 21.60 pt
1グリッドの高さ: 62.55 mm
1グリッドの幅: 50.80 mm

ベースライングリッドの開始位置: 14.52 mm / 58.06 H / 41.14 pt
ベースライングリッドの間隔(高さ): 5.40 mm / 21.59 H / 15.30 pt

--- レイアウト案3 ---
1グリッドあたりの行数: 11 行
1ページあたりの行数: 47 行
1グリッド内の行あたりの字数: 17 字
1ページあたりの総字数: 2397 字

上下それぞれの余白: 22.77 mm
左右それぞれの余白: 16.42 mm
版面比率(縦): 84.67 %
版面比率(横): 84.36 %

グリッドの間隔: 7.62 mm / 30.48 H / 21.60 pt
1グリッドの高さ: 57.15 mm
1グリッドの幅: 53.97 mm

ベースライングリッドの開始位置: 25.31 mm / 101.24 H / 71.74 pt
ベースライングリッドの間隔(高さ): 5.40 mm / 21.59 H / 15.30 pt

--- レイアウト案4 ---
1グリッドあたりの行数: 12 行
1ページあたりの行数: 51 行
1グリッド内の行あたりの字数: 17 字
1ページあたりの総字数: 2601 字

上下それぞれの余白: 11.98 mm
左右それぞれの余白: 16.42 mm
版面比率(縦): 91.94 %
版面比率(横): 84.36 %

グリッドの間隔: 7.62 mm / 30.48 H / 21.60 pt
1グリッドの高さ: 62.55 mm
1グリッドの幅: 53.97 mm

ベースライングリッドの開始位置: 14.52 mm / 58.06 H / 41.14 pt
ベースライングリッドの間隔(高さ): 5.40 mm / 21.59 H / 15.30 pt

といった結果が出力されます。

レイアウト案1が、「余白が与えた目標値よりも大きくなるような最大の行数/文字数」の場合です。案2は案1より行数を1行増やしたもの、案3は案1よりグリッド1列あたりの1行の文字数を1文字増やしたもの、案4は行数を1行増やしたものです。出てくる案の余白の値を眺めつつ、余白目安や文字サイズを変えて何度か実行することでよさげなものを選ぶという使い方を想定しています。

なお、ここまで説明していませんでしたが、上記プログラムはグリッドの横方向の幅も文字サイズの倍数になるようなものを計算します。プロポーショナルなフォントで組むなど、文字サイズの倍数である必要がない場合は、横方向の余白の提案は単に無視すればよいです。

また、上記プログラムはグリッドを縦1行、横1列と指定することで、グリッドにしない場合の版面計算にも使えます。

実際にAffinityで作ってみる

以下では、

--- 前提 ---
用紙種別: A4
用紙高さ: 297 mm
用紙幅: 210 mm
文字サイズ: 3.17 mm / 12.70 Q / 9.00 pt
行間: 70.00 %
縦のグリッド数: 4 段
横のグリッド数: 3 列
上下それぞれの余白目標値: 15.00 mm
左右それぞれの余白目標値: 20.00 mm

--- レイアウト案1 ---
1グリッドあたりの行数: 11 行
1ページあたりの行数: 47 行
1グリッド内の行あたりの字数: 16 字
1ページあたりの総字数: 2256 字

上下それぞれの余白: 22.77 mm
左右それぞれの余白: 21.18 mm
版面比率(縦): 84.67 %
版面比率(横): 79.83 %

グリッドの間隔: 7.62 mm / 30.48 H / 21.60 pt
1グリッドの高さ: 57.15 mm
1グリッドの幅: 50.80 mm

ベースライングリッドの開始位置: 25.31 mm / 101.24 H / 71.74 pt
ベースライングリッドの間隔(高さ): 5.40 mm / 21.59 H / 15.30 pt

の文書を実際にAffinity3で作ってみます。つまり、用紙サイズはA4縦、文字サイズ9ポイント、行間70%、1ページあたり47行で縦4行横3列のグリッドです。

ドキュメント作成

まずは、新規ドキュメントを「ページサイズ(CMYK)」のA4テンプレートから作成します。マージン(余白)はあとで設定するので、とりあえず何も変更せずにそのまま作成します。

新規作成

図1

新規作成

グリッド作成

[表示]→[ガイド]でガイド設定画面を開きます。

ガイド設定画面

図2

ガイド設定画面

「カラムガイド」と「マージン」の数値に、先ほどの計算結果の値を指定します。数字を入力すると自動で反映されるので、[閉じる]で閉じます。

ガイド設定画面

図3

ガイド設定画面

これで、グリッドが設定できました。

グリッドが設定できた図

図4

グリッドが設定できた図

フレームテキストを追加

グリッドを作っただけでは実際に文字がちょうどよく収まるか分からないため、フレームテキストツールで実際に文字枠を作ってみます。

まず、[レイアウト]タブを選択します。その後、フレームテキストツールを選択し、グリッドに合うように枠を書きます。そして、フォントと文字サイズ、行間を上のバーで選択し、適当な文字列を流し込みます。

文字列を流し込んだ場合

図5

文字列を流し込んだ場合

ここで、拡大すると横幅がちょうど16文字になっていて、縦もグリッドの下端と上端がそれぞれ文字の下端と上端に揃っていることがわかります。つまり、ちゃんと計算結果があっていたことが分かります。

グリッドと文字の対応

図5a

グリッドと文字の対応

今回は横3列のグリッドなので、この枠をコピーして更に2つ作ります。一番左の枠から溢れるだけ文字を大量に入れると、赤い三角印が出るので、これをクリックしたあと次の枠(真ん中の枠)をクリックすると枠をつなぐことができます。こうやって3つ枠を繋ぐと、3段組みのレイアウトが作れます。

フレームテキストツールで3段組み

図6

フレームテキストツールで3段組み

ベースライングリッドを設定する

以上でAffinityの「ガイド」機能を利用したグリッドを作ることが出来たのですが、ここに更に「ベースライングリッド」を設定することができます。

ベースライングリッドを設定すると、文字のベースラインが強制的に等間隔の横線上に揃うようになります。いわゆる「行取り」の設定です。ベースライングリッド無効の場合、見出しなどで大きな文字を使ったときに行間の指定を注意深く行わないとそれ以降の行が他の列や他のページとずれてしまいます。ベースライングリッドを有効化すると、細かい計算をしなくても文字の場所が合うように行間を勝手に合わせてくれるようになります。特に両面印刷の書籍をつくるような場合に役に立つ設定です。

ベースライングリッドの設定は、[表示]→[ベースライングリッド]から行います。出てくるウインドウの「開始位置」と「グリッド間隔」に、先ほどのスクリプトの計算結果の値を入力します。

「ベースライングリッドを表示」にチェックを入れると、基準となる横線が実際に表示されます。ただ、画面がうるさくなるので、問題なさそうなことが確認できたらこのチェックは外しておいた方がいいと思います(「ベースライングリッドを使用」のほうのチェックが入っていれば、表示がなくてもベースラインを揃える機能は有効になります)。

ベースライングリッド

図7

ベースライングリッド

プレビューモード

ガイド(グリッド)やベースライングリッドは、レイアウト編集時には便利ですが、できあがり結果のイメージを見るには表示が邪魔です。

[表示]→[プレビューモード]のチェックを入れると、ガイドやベースライングリッドが見えなくなります。

プレビューモード

図8

プレビューモード

まとめ

以上のようにすることで、文字サイズにあったグリッドの寸法を計算し、Affinity3でグリッドシステムを使ったレイアウトができるような設定を行えました。

これを使っていろいろデザインを練習していきたいと思います。



© 神和電子 2017-2025