正規表現スタイルで同一文字に複数の文字スタイルを混在適用する

スタイル

InDesignの正規表現スタイルを使うと、段落スタイルを充てるだけで文字スタイルも同時に適用することができるので、とても便利です。

正規表現スタイルなら、わざわざ一つ一つ文字を選んで文字スタイルをあてなくてよいので、手間も省けるし、手作業による文字の選択違いや見逃しもなくなるので、この正規表現スタイルは是非とも使いたい機能です。

この正規表現スタイルでは、段落中の同一文字に複数の文字スタイルを重ねて適用することもできます。

単独に文字スタイルを適用する方法では、同一文字に対して、複数の文字スタイルを適用することはできません。後から適用した文字スタイルが有効になってしまいます。

ここでは、複数の文字スタイルを重ねて適用した事例を紹介します。

スポンサーリンク

ストーリーにある文字が表示されない!?その理由は正規表現スタイル

下のマゼンタの上付き文字を見てください。
親文字の肩に数字「1」を乗せていますが、実はこの「1」の前後にはHTML形式の上付きタグが入っています。

上付き文字「1」の前後には、実はHTML形式の上付きタグが入っているが見えていない

このドキュメントをストーリーエディタで表示したのが下の図です。
数字の「1」がHTML形式のタグで囲まれているのがわかります。

InDesignのストーリーエディタで文字表示すると、HTML形式のタグが入っているのが確認できる
テキストフレーム内の文字は、ストーリーエディタで見ることができる

実はこれ、2つの文字スタイルを組み込んだ正規表現スタイルで実現しています。

どうなっているのか、正規表現スタイルの作成手順を追いながら説明します。

スポンサーリンク

文字スタイルの作成

まずは、以下の設定でマゼンタの上付き文字の文字スタイルを作ります。

  • 位置:上付き文字
  • 文字カラー:M100
InDesign正規表現スタイル用に、文字スタイル「上付き」を作成している文字スタイルパネル

次にもうひとつ、HTMLコード用を作ります。

  • 文字サイズ:0.141Q(設定可能な最小サイズ)
  • 水平比率:1%(設定可能な最小値)
  • 文字カラー:紙色
InDesign正規表現スタイル用に、文字スタイル「HTMLコード」を作成している文字スタイルパネル

HTMLコードは、テキストフレーム内には表示されていないように見えて、実は、極小の紙色文字が存在しています。

正規表現スタイルの作成:文字スタイル「上付き」

文字スタイルが2つ作成できたので、これを段落スタイル内の項目「正規表現スタイル」に組み込みます。

「正規表現スタイル」というのは、「正規表現を使って、文字スタイルが自動で適用するように設定した『段落スタイル』」のことです。
なので、「文字スタイル」「段落スタイル」「オブジェクトスタイル」に並んで「正規表現スタイル」というスタイルの種類があるのではありません。

段落スタイルパネルで、スタイル「本文」を編集していきます。

左側の項目の中から正規表現スタイルを選び、「新規正規表現スタイル」のボタンをクリックします。

InDesign正規表現スタイルに文字スタイルを登録する、段落スタイルパネル
段落スタイルパネルの中で、正規表現スタイルを作成する

すると大きな枠内に、入力できるスペースが現れます。

「スタイルを適用:」で先に作っておいた「上付き」を選びます。
(ここで、「新規文字スタイル…」を選ぶと、文字スタイルパレットが表示されて、新規に文字スタイルを作ることもできます。)

InDesign正規表現スタイルに文字スタイル「上付き」を登録する
段落スタイルパネルから「新規文字スタイル…」で新規作成することもできる

すぐ下の「テキスト:」欄には、「<sup>.+</sup>」という正規表現を入力します。
これで、「<sup>と</sup>に囲まれた、1文字以上の文字列」に文字スタイル「上付き」を適用するという設定になります。

プレビューで見ると、「<sup>1</sup>」が上付きのM100になっているのがわかります。

InDesign正規表現スタイルに登録された文字スタイル「上付き」
プレビューで、正規表現スタイルが意図したように適用されているか確認できる

「テキスト:」の初期値は「\d+」になっています。この記号は「1つ以上の数字」に当てはまる(「数字」にマッチする)正規表現です。

正規表現スタイルの作成:文字スタイル「HTMLコード」

次に、「HTMLコード」という文字スタイルを追加します。

再度「新規正規表現スタイル」をポチって、適用する文字スタイルに「HTMLコード」を選びます。

「テキスト:」に入れる正規表現は、「</?sup>」です。
この正規表現の「?」は、「?」の直前の文字「/」が「0または1個あるとき」という意味です。

これで、HTMLの開始タグと閉じタグの両方(「/」がある場合と、「/」がない場合)にマッチするように設定できました。

InDesign正規表現スタイルに登録された文字スタイル「上付き」と「HTMLコード」
完成した正規表現スタイル
InDesign正規表現スタイルによって、マゼンタの1が表示され、不要なHTMLコードは見えなくなった
正規表現スタイルが適用されて「<sup>1</sup>」が意図通りに表示できました

文字スタイルの適用状況は文字スタイルパレットの下部で確認する

さて、ここで「1」の文字だけ選択した状態で、文字スタイルパレットを見てみます。

スタイルの一覧では「上付き」は選択されておらず、パレットの下部に「¶上付き」と表示されています。

InDesign正規表現スタイルで文字スタイルの適用状態を見る
文字スタイルパネルで、正規表現スタイルの適用状況を確認する

このように、文字パレットを見れば、以下のような文字スタイルの適用状態がわかります。

  • 文字にスタイルがあたっているのかどうか
  • それは直接適用した文字スタイルなのか
  • それは正規表現スタイルの設定なのか

では、<sup>と</?sup>の文字ではどうでしょうか。

この場合は「上付き」と「HTMLタグ」の両方が適用されているので、「¶(スタイル混在)」という表示になります。

InDesign正規表現スタイルで複数の文字スタイルが適用されていると「混在」と表示される
複数の正規表現スタイルが適用されている時は「混在」とだけ表示

正規表現スタイルで適用する文字スタイルの順番

正規表現スタイルに設定された文字スタイルは、段落スタイルパネルで登録された表示順通りに上から適用されていきます。

適用する順番は、文字スタイルを登録した後に変更することもできます。

その場合は、2つ以上設定した文字スタイルのうちどれかを選択すると、パレット内右側のちょっと下あたりにある三角マーク(▲ ▼)が有効になるので、これをクリックして文字スタイルの表示位置を移動させます。

実は、「上付き」「HTMLコード」の順に設定したのにはちゃんと理由があります。

試しに、この順番を入れ替えて「HTMLコード」「上付き」の順にしてみます。

InDesign正規表現スタイルで登録した文字スタイルの順番を入れ替えている段落スタイルパネル
正規表現スタイルの順番を変更するのは、三角マーク

<sup>と</sup>の文字カラーを見ると、マゼンタになっています。

InDesign正規表現スタイルで文字スタイルの順番を入れ替えたら、HTMLコードがマゼンタになった
正規表現スタイルの登録順によって、適用結果が異なることがある

ここで改めて、正規表現スタイルの文字スタイルの順番と、その内容を確認してみましょう。

  1. 「上付き」:「上付き文字」「文字カラーをM100」
  2. 「HTMLコード」:「サイズを最小」「水平比率を最小」「文字カラーを白」

最初に作った正規表現スタイルでは、まず「上付き」で全体をマゼンタの上付き文字にしてから、<sup>と</sup>のサイズ変更と文字カラー白を設定していました。

でもこの順番をひっくり返したら、「HTMLコード」で文字カラーを白にしたのが、「上付き」でマゼンタに上書きされた、と言うわけです。

というわけで、正規表現スタイルを考える際に、同一文字に文字スタイルが適用されるならば、その順番も考慮しなければいけません


このサンプルの文字は親文字16Qに対して、文字サイズ0.141Q・水平比率1%にしています。その上付き文字の文字色が実際の仕上がりに影響するのか、といえば、まぁ計算すれば影響ないんでしょうが、やっぱりマゼンタじゃ気持ち悪いので…

下の画像は、文字色の違う2つのドキュメントをPDF書き出しして、Acrobatで比較したものです。
「変更はありませんでした」とのことでした…。

InDesignで色の違う極小文字をPDFを書き出して比較した結果「変更なし」になった

「文字カラー白の極小サイズ」の文字をドキュメント上に置いておくのは、賛否両論あるところですが、「案件の事情に応じて」ということで、ここではその是非を問わないでくださいね。

コメント

タイトルとURLをコピーしました