見出し画像

Indesignで化学式の数字を自動で下付きにする

Indesignで化学式の数字を自動で下付きにする

本とか作ってるときに、CO2などの化学式で下付きや、注釈の上付きとかって、流し込みしたあとにチマチマ直していくことってありますよね、
一つの種類しかなければ、検索置換で一発なんですけど、複数あるときとかってまぁ処理し忘れる忘れる。。。。
チェックをするけど、なにかしら見逃す見逃す。。。

で、毎回作ってると出てくる文字って、だいたい同じなんだなって気づいてくる。
どうせなら、流し込みをした時点で自動で変わってくれるとラクだと思い始めたので段落スタイルに組み込むことにしました。

まず、用意するのは下付き用の文字スタイル。
文字スタイルの作り方は面倒なので今回省きます。

下記の化学式がでた場合、自動で数字が下付きになるようにします。

入力した文字を自動で文字スタイルを当てるときは、正規表現スタイルを使います。
水素の場合の「H」の後ろの「2」を下付きにする場合の正規表現は下記になります。
(?<=H)2
これを酸素の場合は下記になります。
(?<=O)2
この設定だけで、二酸化炭素と硫酸の「2」の部分も一緒に下付きになります。

次にアンモニアは「H」の後ろが「3」になるので、記述は下記になります。
(?<=H)3
この書き方もシンプルでわかりやすいのですが、下記のようにするほうが良いです。
(?<=H)[0-9]
この「[0-9]」は、数字の0〜9の意味になるので、Hの後ろの数字は全部、下付きになります。
あと、硫酸の後ろの「O」の後ろの「4」も下付きになります。
また、酸素「O」の後ろの「2」も下付きなので、さっきした設定のように
(?<=O)[0-9]
をすると、Oの後ろの数字は全て下付きになります。
このほうが、設定が少なくていいですよね。

あと、窒素の「N」の後ろの数字と、塩化銅の「l」、水酸化カルシウムの「)」の後ろの数字も同じように設定すると下記のようになります。
(?<=N)[0-9]
(?<=l)[0-9]
(?<=))[0-9]

水酸化カルシウムの「)」の後ろだけ、下付きになりませんでした。
この文字については正規表現を使うときの計算式に使うようなものは文字として処理ができません。
このような場合は「\」を使ってエスケープ文字として処理します。
(エスケープ文字で検索すれば、いっぱいでます)

今回の正しい記述は「\」を追加して下記になります。
(?<=\))[0-9]

最後に同じ文字スタイルのものがいくつもある場合、「|」を間に挟むことで一つにまとめることができます。
(?<=H)[0-9]|(?<=O)[0-9]|(?<=N)[0-9]|(?<=l)[0-9]|(?<=\))[0-9]

本文の段落スタイルに化学式を自動で正規表現スタイルを設定することで、自動で下付きになるのでラクになりますが、下付きにしたくない場合もあります。そのときは、本文用の文字スタイルを用意しておいて、下付きになってほしくない文字に文字スタイルを反映するようにします。

この記事が気に入ったらサポートをしてみませんか?