DTPab

印刷やデザイン、アドビ製アプリやスクリプトなど、雑多な技術ブログ

InDesignの自動スタイルに関するTips

はじめに

12月に入って途端に冬らしくなってきましたね。クリスマス前の風物詩であるAdvent Calendarですが、今年はDTP Advent Calendar 2018なるものが登場し、思わず参加させてもらいました。そしてこの記事はDTP Advent Calendar 2018の9日目の記事です。
ここまででいろんなジャンルのいろんな話が集まっていて、読んでいてとても面白いです。他の方の記事もぜひぜひ。

さて、僕の記事はというと、そこはやっぱり愛してやまないInDesignにまつわるエトセトラです。今回は段落スタイルにある、自動で文字スタイルを適用してくれる以下の機能に関する小ネタ集です。

  • 正規表現スタイル
  • 先頭文字スタイル(+ドロップキャップ)
  • 先頭行スタイル

手間の都合で文字だけのものもありますが、小ネタとして楽しんでもらえれば。

重ねがけの優先度

どの機能も指定した条件にマッチした文字列に対して文字スタイルを自動で適用するわけですが、同じ文字列に同時に複数の文字スタイルが適用されるとどうなるでしょうか?

  • すべてが同時に適用される
  • 重複した要素があれば以下の順で上書きされる(上に設定されているものが優先)
    • 正規表現スタイル
    • 先頭文字スタイル*1
    • 先頭行スタイル

ということで、正規表現スタイルが最も優先して適用されます。また、正規表現スタイルの中では、下に表示されるもの(後から追加したもの)ほど優先です。

先頭文字スタイルのTips

テキスト変数への適用

テキスト変数の「ランニングヘッド・柱(文字スタイル)」を使う際に、正規表現スタイルで適用する文字スタイルではテキスト変数が文字列を拾ってくれません。しかし、先頭文字スタイルであればテキスト変数がしっかりと認識してくれます。
僕は普段は正規表現スタイルばかり使っていますが、テキスト変数に限っては先頭文字スタイル以外に自動で当てる方法がありませんので、そういう意味では正規表現スタイルより歴史の長い先頭文字スタイルの面目躍如といったところでしょうか。

正規表現スタイルのTips

先程列記したの機能の中で僕が最もよく使うのが正規表現スタイルです。以下はその正規表現スタイルに関するTipsです。

全角数字はコードポイントで

正規表現スタイルで全角数字のみをマッチさせたい時、[0-9]だとうまくいきません。かといって\dとするとすべての数字にマッチしてしまうので、コードポイントで文字クラス指定するといいです。
[\x{ff10}-\x{ff19}]とすればOKです。

見た目で違いがわからない文字

例えばU+2212とU+FF0D。見た目にはどちらもマイナス記号なのですが、前者はMacで、後者はWinで「マイナス」と変換して出てくる記号です。これが正規表現では厳密に区別されてしまいます。詳しくは以下の記事を参照。

uske-s.hatenablog.com

要するにこれもコードポイントで文字クラスとして指定したほうが無難です。

言語設定は正規表現スタイルを使うべし

たまに見かけるのですが、段落スタイルの言語設定に日本語以外を設定するのはあまりお勧めしません。というのも、InDesignはそこまでアホじゃないので、例えば段落スタイルの言語設定を「英語:米国」にしたとき、日本語の文字列には「日本語」をオーバーライドで当ててくれます。
とは言ってもオーバーライドで当ててくれるだけで、その後文字を欧文に打ち替えても「日本語」のまま言語設定はオーバーライドされているんですね。
ここに実は罠があって、このような言語設定が入り乱れた欧文の文字列に対して書式メニューの「大文字と小文字の変更」機能を使うと、言語設定の区切りが単語の先頭と勘違いされてしまい、タイトルケースとセンテンスケースで意図しない結果になるのです。 f:id:uske_S:20181209003054g:plain こうならないために、言語設定に日本語以外を当てたい場合は、正規表現スタイルで言語設定を変更する方法をお勧めします。
[\l\u]とすれば大文字でも小文字でもマッチします。あえて[a-zA-Z]としてもOKですが、この正規表現では単純なアルファベット以外の欧文(éやç、üなど)に対応できません。 f:id:uske_S:20181209003854g:plain 必要に応じて使い分けてください。

不定文字数でも後読みとして使える便利なメタ文字

肯定後読み((?<=))では、*+{1,3}といった文字数が特定できない正規表現を扱えません。そこで有用なのが\Kです。
下のGIFは、本文中に登場する「意地」という文字列のうち、先頭から2番めに登場するものだけに色を付けるという正規表現スタイルです。 f:id:uske_S:20181209005609g:plain 肯定後読みを使った場合はうまくいきませんが、\Kを使うと、前に何文字あってもその後の部分だけを指定することができます。ただし、この正規表現が使えるのはInDesign CS6以降です。そこだけご注意ください。

以上、DTP Advent Calendar 9日目、InDesignの自動スタイルに関するTipsでした!明日は茄子川さんの「チラシDTP系の作業向き『Illustratorむちゃワザ 〜早く帰りたいよー〜』」だそうです。お楽しみに!

*1:先頭文字スタイルはドロップキャップと併用できません。ドロップキャップは先頭から指定した文字数分適用され、そこから先頭文字スタイルが適用される仕様です。