2016年11月25日

JavaScriptで複数一括置換【改良版】

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

2013年の9月に『複数の置換を一気に実行する』で、複数の用語を一括置換する方法について書きました。この中の『Excelと簡単なJavaScriptで複数の検索を実行する』ではInDesign上で複数一括置換をおこなうJavaScriptをご紹介したのですが、Excelを使った作業が必要となるため少々面倒だと感じていました。
そこで今回は、このJavaScriptを改良することにしました。置換リスト(置換テーブル)としてはJavaScriptファイルとは別に保存したテキストファイルを使用します。テキストファイルには「検索文字列」「タブ」「置換文字列」の形で置換リストを書いておいてください。正規表現も使用できます(InDesignのダイアログに入力するのと同じ書き方をすればOKです)。
以下、作業手順については動画をご覧ください。

JavaScriptファイルを書き替えることなく、さまざまな置換リストを使用できるので便利になったと思います。機会がありましたらお試しください。

※お試しになる際は事前によくテストをされるようお願いします。また、かならずバックアップをとってからご使用ください。


サンプルデータはこちら《2016_1125a_minimum.zip》です。
posted by 照山裕爾 at 03:53| Comment(0) | TrackBack(0) | InDesign-検索/置換 | このブログの読者になる | 更新情報をチェックする

2013年11月08日

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

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

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

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



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


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

posted by 照山裕爾 at 19:27| Comment(0) | TrackBack(0) | InDesign-検索/置換 | このブログの読者になる | 更新情報をチェックする

2013年10月26日

JavaScriptで丸数字、四角囲み数字などに置換する

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

前回のJavaScriptをご覧いただいた方に「記号などはCIDの方がいい場合もあるかも」とヒントをいただき、活用方法を考えてみました。

多くのフォント(Pro以上?)にはカッコ書きの数字や丸数字、四角囲みの数字などが用意されています。が、その多くにはUnicodeが割り当てられていないため、ライターや編集者の方々はテキストデータに入力できず不便を感じていることが多いのではないでしょうか。

そこで、たとえば「○100○」のように入力しておけば丸数字の100に置換されるように前回・前々回のJavaScriptのリストを書き換えてみました。下図のように、「○100○」などの文字列をキリル文字もしくはギリシャ文字1文字に置換した後、字形置換をおこないます。
1025-01.jpg

※ドキュメント内でキリル文字やギリシャ文字を使用していた場合、そこまで一緒に置換されてしまいます。必要に応じてリストを書き換えてください。


たとえば、こんな感じに置換できます。
1025-03.jpg

※Stdフォントは想定していません(これらの修飾数字を持っていないため)。中でも「小塚明朝 Std R」は文字が消えてしまうようなので使用を避けてください(理由はよく分かりません)。

(2013.10.31追記)小塚明朝Std RおよびB、さらに小塚ゴシックBでこの現象が発生するようです。

※1桁数字は「1」「01」どちらでも大丈夫だと思います(該当グリフがない場合はテキストデータに記録されます)。

※必ず元ドキュメントは保存した上でお試しください。何かあっても責任は持てません。


では、動画をご覧ください。

実は、このJavaScriptの簡単なものを一度アップしたのですが、ある方から“市川せうぞーさんの「数字を丸数字などに変換(round_num.jsx) - 名もないテクノ手」というものが既にあります”と教えていただきました(ありがとうございました!)。拝見し、特にピンポイントで置換する場面ではすごく便利だと感じました。スクリプトの信頼性の高さは私のものと段違いですし……。

私が作ったものはリストが長いのでモタモタしています。ただ、複数の種類の数字を一気に処理できるので、使える場面はあるのではないかと思っています。機会があれば、ぜひお役立てください。また、他の使い方のヒントになれば嬉しいです。
サンプルデータはこちら《minimum20131104.zip》です(CS4以降)。

(2013.10.26追記)未実行リストが作成できないという問題があるようです。追って、何とか解決できるか試してみます。ご迷惑をおかけします。

(2013.10.31追記)全リストを一気に実行するJavaScriptファイルを修正しました。また、小塚Stdの不具合を示すInDesignファイルを追加しました。

(2013.11.5)全リストを一気に実行するJavaScriptファイルをさらに修正しました(未実行一覧のファイルをシンプルにしました)。

posted by 照山裕爾 at 04:08| Comment(0) | TrackBack(0) | InDesign-検索/置換 | このブログの読者になる | 更新情報をチェックする