公開日:2021年4月25日 最終更新日:2022年6月23日
文字に囲み罫を作りたい、というのはInDesignユーザー長年の課題です。それっぽいものを作る手段が自分の中で固まってきたのでまとめます。
文字囲み機能は2021年4月現在でも実装されていないので、どうしても無理矢理感は出てきますが、多少なりとも役に立てばと思います。これより文字囲みが複雑な形状になる場合はアンカー付きオブジェクトでテキストフレームを挿入したほうが無難そうです。
12Q20H送りの本文に、線幅0.1mm、高さ4mmの囲み罫を作る
[線]パネルメニューの[線種…]を選択。つづいて[線種]ダイアログ→[新規…]を選択。
[新規線種]ダイアログの[種類]に[ストライプ]を選択。数値は以下の順番で設定します。
囲みの線幅÷(囲みの高さ÷100)
作例の場合は、囲みの高さが4mmのとき囲みの線幅を0.1mmにしたいので、下記の数値で計算。結果の2.5が、[幅]に入れるべき値となります。
0.1÷(4÷100)=2.5
囲みを入れたい単語を選択し[文字]パネルメニューから[打ち消し線設定…]をクリック。
[打ち消し線設定]ダイアログで下記のように設定します。
文字を選択した状態で、新規文字スタイルとして[文字スタイル]パネルに登録しておきます(作例ではspan{border-top,bottom})。
続いて、囲みをつけたい単語の前後にcommand+shift+Nで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}を設定。これで文字列に囲みをつけられるようになります。もう少しフレキシブルかつ省力化をしたい場合は後述する「内側マージンの操作や省力化」にて。
「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)を入れます。ものかのさんありがとうございます!
囲み外側のマージンは文書構造上あまりやりたくはないけどもスペースを入力すればいい、囲みの高さは[打ち消し線]の[線幅]で設定すれば可能、としても問題は囲まれている単語と囲みとの間隔。「2.」で作成した文字スタイルをもとにしてアキを作っていきます。
これらの文字スタイルを、囲み内最初の文字と最後の文字に適用すると下図のようになります。
文字列に囲みを付ける方法、そして内側のマージンを操作できました。しかしこれが複数箇所ある場合、何度も何度もやるのはなかなか面倒です。それを省力化するために、先頭文字スタイルを使います(とはいえこの方法はこの方法で繰り返し操作は発生してしまうのですが…)。
下準備をした段落内にカーソルを立てた状態で[段落]パネルから[ドロップキャップと先頭文字スタイル…]を選択。
[ドロップキャップと先頭文字スタイル]ダイアログを開き、[先頭文字スタイル]の[新規スタイル]を7回クリックし、7つの先頭文字スタイルを設定します。ダイアログ内の表示は狭くて見づらいので、下表に記載のように設定。
スタイル | 切れ目から何個目か | 該当の文字 | 区切るか含むか |
---|---|---|---|
なし | 1 | Enスペース | で区切る |
span{border-left,right} | 1 | 文字 | を含む |
span{border-top,bottom:first} | 1 | 文字 | を含む |
span{border-top,bottom} | 1 | 先頭文字スタイルの終了文字 | を含む |
span{border-top,bottom:last} | 1 | Enスペース | で区切る |
span{border-left,right} | 1 | 文字 | を含む |
[繰り返し] | 6 | スタイル | 末尾 |
最後の[繰り返し]には[6]が設定されています。これは[繰り返し]の手前に設定された6つを繰り返して段落に適用する機能。
「Enスペース-文字列-先頭文字スタイルの終了文字-文字列末尾-Enスペース」の順で並んでいる単語が出てくるごとに、この並びを崩さなければ囲みが繰り返し作られます。無意識に作業していると割と簡単に崩れてしまうので、「囲みを作りたい箇所以外にはEnスペースを使わない」など、取り扱いには注意が必要ですが…
最後のこの段落を段落スタイルに登録して、ドキュメントの他部分でも使い回せるようにして完成(作例では[文字に囲み])。
InDesignに、こんな機能あったらいいな 1(文字列の罫囲み) – DTP Transit