DTP作業者にとっての難易度 ★★★★★(5)
(2013.10.24追記)まずは下部コメント欄をお読みください。「痩」を例に取りあげたことも、Adobe Japan 1に準拠しているフォントならCIDコードは完璧に同一だと私が思い込んでいたことも適切ではありません。「字形タグで変換する」JavaScriptがあることも大石さんに教えていただきました。それでも今回のJavaScriptが使える場面があればお使いいただければと思い、はずかしながら記事自体は削除しないことにしました。コメントをいただいた大石さん、小池さん、松尾さん、ありがとうございました。
以前、知人に“InDesign上の漢字、たとえば「痩」などを効率良く印刷標準字体に置換したい”という相談を受けました。今回は、その時に試したことをご紹介します(おそらく次回も)。
「痩」という漢字には下図のように異体字が存在します(フォントが《A-OTF ゴシックMB101 Pro R》の場合)。
このうち印刷標準字体は縦棒が下まで突き抜けている[3]の文字なのだそうです(文化庁の字体表を参照ください)。(2013.10.24追記)下記コメント欄に、小池和夫様より《「痩」は常用漢字になりましたので、もはや3の印刷標準字体を使用することはないと存じます。》とコメントをいただきました。ありがとうござました。

「検索と置換」ダイアログの「字形」で置換する
「検索と置換」ダイアログの「テキスト」では[1]→[3]の置換が実行できません(フォントが《A-OTF ゴシックMB101 Pro R》の場合)。この原因は[2]と[3]のUnicode番号が同一(いずれも「7626」)だということにあります。
しかし「検索と置換」ダイアログの「字形」であればGID/CIDコードを設定することで[1]→[3]に置換できるのです。これが通常の置換方法です。
※GID/CIDについては「モリサワのサイト」を参照ください。
ただ、この方法は動画で説明したように手間がかかります。そこで試してみることにしたのがJavaScriptを使う方法です。
※Adobe-Japan1に準拠するCIDフォントとOpenTypeフォント間では、基本的にGID/CIDは統一されています。(前述の「モリサワのサイト」より)
※Adobe-Japan1に準拠していても《A-OTF A1明朝 Std Bold》のように[3]が含まれないフォントもあります。この場合[3]を使用したければ他フォントに変更するしかありません。
(2013.10.24追記)まだよく調べられていませんが、「Adobe Japan 1に準拠」といっても程度の差があるようです。たとえばイワタは「OpenType Pr6/Pr6N版 仕様詳細」の中で「なお、Proシリーズからのイワタフォントの仕様により、CIDレベルでのグリフ形状が一部小塚明朝等の実装とは反転している箇所がありますのでご注意ください。」などと書いています。
JavaScriptで作業の効率化を図る
(2013.10.24)大石さんより《三島梅花藻さんの「連続文字置換用スクリプト.jsx」》の存在をコメント欄で教えていただきました。ありがとうございました。今回の目的では、こちらをお使いになるほうが賢明だと思います。字体切り換え機能を使い、ルビの問題も生じないようです。
このJavaScriptは2つのファイルで構成されています(同じ階層に置く必要があります)。「jikei_chikan_xxxx.jsx」は本体ファイル、「list.jsx」は検索/置換したい文字のGID/CIDコードを書き込んだリストのファイルです。リストを編集したい場合はExcelファイルを書き換えて「list.jsx」に貼り付けてください。その後、JavaScript本体ファイルを実行するとドキュメント上の全フォントに対して順番に置換が実行されます。
※検索対象、置換対象となる文字が存在しない場合はテキストファイルに結果を記録します。テキストファイルはInDesignドキュメントと同階層に保存されます。
※InDesignドキュメントが一度も保存されていない状態でJavaScriptを実行することはできません。
※最前面ドキュメントのみが処理対象となります。
※InDesignではルビ付きの文字を置換するとルビ文字が表示されなくなる問題が存在します。この問題を回避する方法については次回ご紹介したいと思います(やや強引です)。
※Adobe-Japan1に準拠しないフォントでは意図しない置換が行われます。使用しないでください。
応用例/JIS2004字形←→JIS90字形の置換
Adobeの
「JIS2004とJIS90との文字の形の対照表」からリストを作成して実行してみました。
このJavaScriptファイルの完成度は、とても胸を張れるようなものではありません。何かお気づきになられたら改良案をご提案いただけると助かります。また、有用な使用場面や活用例がありましたら、ぜひお聞かせください。