2013年11月08日

ルビのついた文字(親文字)を置換する

DTP作業者にとっての難易度 ★☆☆☆☆(1)

※2022.1.21/サンプルデータを更新しました(選択した箇所のみ処理するスクリプトを追加)。

※2022.2.20/サンプルデータを更新しました(「all_txt2ruby」アラートの文言を修正)。

※2023.8.4/サンプルデータを更新しました(半角スペース区切りのモノルビ処理を修正)。


「検索/置換」はInDesignの機能の中でも便利で、使用頻度の高いものです。しかしInDesignでは(なぜか)ルビのついた文字(親文字)を置換するとルビ文字が消えてしまいます(InDesign CCになっても変わりません)。作業上とても不便なので、これを回避するためのJavaScriptを作ってみました。
考え方はとてもシンプルです。下図・左のようなルビ付きの文字を右のように分解してから置換を実行、その後、あらためて左のような状態に組み立て直すというものです。
1109.jpg

※私にはゼロからJavaScriptを書くほどの知識はありませんので、多くの部分についてはWeb上で探したものを書き換えたり、合体したりしています。たとえばJavaScriptを分解する過程は「DOT」さんの「★ルビをすべて解除する」をベースにしました。他にも「市川せうぞー」さんの「簡単な検索置換(検索オプション)- 名もないテクノ手」をはじめ、いろいろなサイトを参照しています。



※脚注オプションや後注オプションの「位置」設定が「ルビを適用」となっている場合、脚注番号や後注番号が処理対象になってしまいます。これを避けるには一時的に「位置」設定を他の項目に変更してください。

※動画内でも少し触れましたが、たとえば一部の親文字の書式が異なる場合は他の文字の書式に影響が及ぶ可能性があります。他にも何らかの問題が生じる可能性は否定できませんので必ずバックアップを取り、慎重にお使いください。あまりドキュメントの完成間際に使用することはお勧めしません。


ここ数回JavaScriptを題材にしてきましたが、もう材料がありません(知識がないため1つのJavaScriptを書くのに膨大な時間がかかりますし……)。次回以降は背伸びせず初心に立ち返り、もう少し身近な機能について書くことにしようと思います。よろしくお願いします。

サンプルデータを更新しました

これまでのドキュメント全体を処理するスクリプトに加え、選択した箇所のみを処理するスクリプトもアップしました。jsxファイル名も変更しています。

サンプルデータはこちら《txt_ruby_241210d.zip》です。

posted by 照山裕爾 at 19:27| Comment(0) | TrackBack(0) | InDesign-検索/置換 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック