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(4) | TrackBack(0) | InDesign-検索/置換 | このブログの読者になる | 更新情報をチェックする

2016年11月24日

文字スタイル部分・下線部分などを索引化する(の続き)

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

先に『文字スタイル部分・下線部分などを索引化する』を書きましたが、その後「JavaScriptを使えば前後の作業も効率化できるのでは」と考え、まとめることにしました。

※いずれも実験的なものなので、ご使用にあたっては慎重に検証されるようお願いします(必ずバックアップを取った上でお試しください)。


【前の作業】指定された用語群に書式を一括適用する


InDesignによるレイアウトが完成した後、編集者の方から「この項目(用語)を索引化したい」と用語の一覧(テキストファイル)を渡されたことがあります。このような場合、JavaScriptを使えば該当するすべての文字列に対して書式(文字スタイル、下線、打ち消し線など)を一括適用することが可能です。

※書式を適用するためには、行頭の「//」を削除してコメントアウトを解除してください。全項目がコメントアウトされたままでJavaScriptを実行すると、該当する文字列が削除されてしまうのでご注意ください(置換文字列欄が空欄になっているため)。

この作業をおこなった後に、先の『文字スタイル部分・下線部分などを索引化する』の作業をおこなえば、簡単に索引リストを作成することができます。

【後の作業】索引リストに読みを付加する

※2017.3.22にサンプルデータを更新しました。


前回の『文字スタイル部分・下線部分などを索引化する』で作成した索引リストはExcelでソートした順に並んでいます。漢字の用語は、たとえ『ア行』であってもカタカナの用語の後になっています。また、漢字の用語だけを見ても「手形」「準拠法……」「小切手……」など、必ずしも読みの順には並んでいません。
これに読みを追加する方法がないか……と考えている時に思い出したのが、chalcedonyさんがお書きになった『選択した文字列を索引項目に登録するJavaScript(読み仮名自動入力、CS3〜)』です。このJavaScriptは、索引項目を登録する時にYahoo!のテキスト解析WebAPIを利用して読み仮名を自動的に入力する……という、とても便利なものです。これに少し手を加えるだけで、索引リスト(テキストファイル)に読みを付加することができると思い、やってみました。

※chalcedonyさんのブログに「書いてるコードは使えそうならご自由に」とあったので甘えさせていただきました。WebAPIの部分については全く理解できておらず、そのまま使わせていただいています。

※Yahoo!のWebAPIを利用するには『アプリケーションID』が必要です。取得のための手続きは簡単です。詳しくは『ご利用ガイド』をご覧ください。


試してみたところ、期待した通りの読みを付加してくれることが多いように感じます。とはいえ自動的な処理ですので、最終的にはご自身が(または編集者が)確認・修正すべきだということはご理解ください。

※Yahoo!が「日本語形態素解析API」のサービスを終了した場合、本スクリプトは使用できなくなります。


WebAPIなど、世の中には便利なものがたくさんあるものですね。もっときちんと理解して、使えるようになりたいです。
サンプルデータ(2017.3.22更新版)はこちら《2017_0322a-minimum.zip》です。

Web Services by Yahoo! JAPAN
posted by 照山裕爾 at 06:15| Comment(0) | TrackBack(0) | InDesign-書式・スタイル | このブログの読者になる | 更新情報をチェックする

2016年11月14日

文字スタイル部分・下線部分などを索引化する

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

以前『[ ]で囲まれた部分を索引化する』でブラケット(角括弧)で囲まれた部分を索引化するJavaScriptなどを紹介しました。今回は、文字スタイルを摘要した箇所などを索引化する方法をテストしましたので、ここでご紹介します。

※2016.11.16の20時40分頃に再度サンプルデータを差し替えました(2017.11.17に更新)。

※2016.11.18、2016.11.23、2017.3.23、2017.4.14にサンプルデータを差し替えました。


1114c.png

今回のJavaScriptでは「findGrep()」という機能(メソッドというのでしょうか)を使用しています。これはInDesignの「正規表現検索」機能のことです。ですから少しJavaScriptを書き換えるだけで文字スタイルが適用された箇所だけでなく、ブラケットで挟まれた箇所も、下線や打ち消し線が設定された箇所も検索することができます。まずは動画をご覧ください。

※使い慣れない内臓マイクを使用したため一部の音がこもってしまいました。すみません。

※この作業では索引マーカーを使用しないので、索引マーカー挿入による体裁の崩れ(INDDでもお話ししたFEFFが体裁を崩すこととも関連があると思います)も回避することができます。



リスト書き出し後、ExcelやJeditで作業をしなければならないのが少し面倒ですが、リスト書き出しそのものは思っていたより短時間で済むようです。

※2016.11.16/動画内で触れている「^G」についてはJavaScript内で削除するよう書き替えました。これに伴い、Jedit Xの複数置換テーブルも差し替えました(「^G」を削除する行が不要になったため)。

※2016.11.16の20時40分頃に再度サンプルデータを差し替えました(圏点、条件テキストにも対応しました)。

※2016.11.17にサンプルデータを更新しました(半角スペースが削除される問題を解消)。

※2016.11.18にサンプルデータを更新しました(特殊文字が含まれる場合にテキストが適切に保存されない問題に対応)。

※2016.11.23にサンプルデータを更新しました。

※2017.3.23にサンプルデータを更新しました。

※2017.4.14にサンプルデータを更新しました。


以前も書いたように、私は普段、こういった作業のために株式会社エル・シー・エスの「InDex Plug-in」(有料)を使用しています(こちらは読み仮名もつけてくれます)。しばらくはこのプラグインと今回のJavaScriptを併用しながら、実務に使えるものかどうか試していこうと思っています。

毎度のことですが、たどたどしいJavaScriptなので、お試しになる際はよくテストをされるようお願いします。何かの叩き台にでもなると嬉しいです。
2017.4.14サンプルデータはこちら《2017_0414b_minimum.zip》です。
posted by 照山裕爾 at 23:01| Comment(0) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする