【InDesign】カスタム線種と打ち消し線のみで文字に対して囲み罫を作る | Blue-Scre{7}n․net | よそいちのDTPメモ

トップページ » InDesign » 【InDesign】カスタム線種と打ち消し線のみで文字に対して囲み罫を作る

【InDesign】カスタム線種と打ち消し線のみで文字に対して囲み罫を作る

公開日:2021年4月25日 最終更新日:2021年4月28日

 文字に囲み罫を作りたい、というのはInDesignユーザー長年の課題です。それっぽいものを作る手段が自分の中で固まってきたのでまとめます。

 文字囲み機能は2021年4月現在でも実装されていないので、どうしても無理矢理感は出てきますが、多少なりとも役に立てばと思います。これより文字囲みが複雑な形状になる場合はアンカー付きオブジェクトでテキストフレームを挿入したほうが無難そうです。

メリット

デメリット

作るもの

12Q20H送りの本文に、線幅0.1mm、高さ4mmの囲み罫を作る

1.準備:カスタム線種を作る

 [線]パネルメニューの[線種…]を選択。つづいて[線種]ダイアログ→[新規…]を選択。

 [新規線種]ダイアログの[種類]に[ストライプ]を選択。数値は以下の順番で設定します。

  1. 上のストライプの[始点]に0、[幅]に2.5を入力
  2. 下のストライプの[幅]に2.5を入力
  3. 下のストライプの[始点]に97.5を入力(下のストライプ初期値は始点が75、幅が25なので、先に始点を97.5にすると合計が100を超えてしまいアラートが出る)
[幅]に入力する数値を求める計算式

囲みの線幅÷(囲みの高さ÷100)

作例の場合は、囲みの高さが4mmのとき囲みの線幅を0.1mmにしたいので、下記の数値で計算。結果の2.5が、[幅]に入れるべき値となります。

0.1÷(4÷100)=2.5

2.文字の設定〜文字スタイル登録

 囲みを入れたい単語を選択し[文字]パネルメニューから[打ち消し線設定…]をクリック。

 [打ち消し線設定]ダイアログで下記のように設定します。

設定後の文字列

 文字を選択した状態で、新規文字スタイルとして[文字スタイル]パネルに登録しておきます(作例ではspan{border-top,bottom})。

 続いて、囲みをつけたい単語の前後にcommand+shift+NでEnスペースを入れます。

Enスペースを選択し、打ち消し線を下記のように設定。

設定後のEnスペース

 Enスペースに対してのここまでの設定では、囲みを作るには線幅が太すぎるため、文字の水平比率を設定して幅を調整します。

Enスペースに設定する[文字の水平比率]を求める計算式

囲みの線幅÷(mm換算した文字サイズ÷100)×2

 作例のように文字サイズが12Qのとき囲みの線幅を0.1mmにしたい場合は、Enスペースは全角に対して二分幅なので計算式にあてはめて「6.7%」と設定します(EMスペースを使った場合は3.3%)。

0.1÷(12/4/100)*2=6.6666666…..

 こちらも文字を選択した状態で、新規文字スタイルとして[文字スタイル]パネルに登録(作例ではspan{border-left,right})。

 両サイドのEnスペースに文字スタイルspan{border-left,right}を設定。これで文字列に囲みをつけられるようになります。もう少しフレキシブルかつ省力化をしたい場合は後述する「内側マージンの操作や省力化」にて。

3.打ち消し線のオフセット値の基準位置

 「2.」の打ち消し線の設定では、オフセット値を「1.14mm」と設定しました。これは文字サイズが12Qのときに打ち消し線が天地センターとなる値です。

 InDesignの打ち消し線と下線は、オフセットを0にしたとき仮想ボディの下端ではなく欧文ベースラインに重なり、これは仮想ボディ下端から文字サイズ(mm)×0.12ぶん上にあります(1000を仮想ボディとして880と120、って図を見たことがありますが、どこでだったかな…たしかDTP WORLD付録のルールブックだった記憶)

※太ミンや中ゴのように一般的な和文フォントは大体この位置。しかし、欧文フォントなどこの位置が基準でないフォントもかなり多い。そのためこの記事に記載している囲みを付ける方法は、和欧混植の文字列に囲みをつけようとすると途端に破綻(ラップ調で)する

 上記の情報をもとにすると、打ち消し線を文字の天地センターに引きたいときのオフセット値は「文字サイズの半分の値から、文字サイズ×0.12をマイナスする」ことで得られます。

打ち消し線オフセット値を天地センターにする式

mm換算した文字サイズ÷2−mm換算した文字サイズ*0.12

 作例の文字サイズは12Qなので、12Q*0.25mm=3mm。計算すると下記のように、[オフセット]に入れる値を求められます。

3÷2-3*0.12=1.14

式をカンタンに

 上記の式では、ダイアログに入力したときに一発で計算が完了しないので、入力欄にはよりカンタンな式(文字サイズ×0.38)を入れます。ものかのさんありがとうございます!

4.内側マージンの操作や省力化

内側マージンの操作

 囲み外側のマージンは文書構造上あまりやりたくはないけどもスペースを入力すればいい、囲みの高さは[打ち消し線]の[線幅]で設定すれば可能、としても問題は囲まれている単語と囲みとの間隔。「2.」で作成した文字スタイルをもとにしてアキを作っていきます。

囲み内最初の文字の前アキ、最後の文字の後ろアキ用のスタイル設定
  1. 前アキ用のスタイル名「span{border-top,bottom:first}」、後ろアキ用のスタイル名は「span{border-top,bottom:last}
  2. 工程「2.」で作成した文字スタイル「span{border-top,bottom}」を基準にする
  3. [詳細文字形式]→[文字前のアキ量][文字後のアキ量]を設定(作例では両方とも[四分])

 これらの文字スタイルを、囲み内最初の文字と最後の文字に適用すると下図のようになります。

先頭文字スタイルによる省力化

 文字列に囲みを付ける方法、そして内側のマージンを操作できました。しかしこれが複数箇所ある場合、何度も何度もやるのはなかなか面倒です。それを省力化するために、先頭文字スタイルを使います(とはいえこの方法はこの方法で繰り返し操作は発生してしまうのですが…)

下準備
先頭文字スタイルの設定

 下準備をした段落内にカーソルを立てた状態で[段落]パネルから[ドロップキャップと先頭文字スタイル…]を選択。

[ドロップキャップと先頭文字スタイル]ダイアログを開き、[先頭文字スタイル]の[新規スタイル]を7回クリックし、7つの先頭文字スタイルを設定します。ダイアログ内の表示は狭くて見づらいので、下表に記載のように設定。

スタイル切れ目から何個目か該当の文字区切るか含むか
なし1Enスペースで区切る
span{border-left,right}1文字を含む
span{border-top,bottom:first}1文字を含む
span{border-top,bottom}1先頭文字スタイルの終了文字を含む
span{border-top,bottom:last}1Enスペースで区切る
span{border-left,right}1文字を含む
[繰り返し]6スタイル末尾

  最後の[繰り返し]には[6]が設定されています。これは[繰り返し]の手前に設定された6つを繰り返して段落に適用する機能。

 「Enスペース-文字列-先頭文字スタイルの終了文字-文字列末尾-Enスペース」の順で並んでいる単語が出てくるごとに、この並びを崩さなければ囲みが繰り返し作られます。無意識に作業していると割と簡単に崩れてしまうので、「囲みを作りたい箇所以外にはEnスペースを使わない」など、取り扱いには注意が必要ですが…

 最後のこの段落を段落スタイルに登録して、ドキュメントの他部分でも使い回せるようにして完成(作例では[文字に囲み])。

参考

InDesignに、こんな機能あったらいいな 1(文字列の罫囲み) – DTP Transit


タグ: |  | 


広告