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-その他の機能 | このブログの読者になる | 更新情報をチェックする

2016年04月07日

データ結合後のレイアウトからテキストを抽出する

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

InDesignのデータ結合は、定型フォーマットが並ぶレイアウトを作成する際にとても便利な機能です(データ結合については「定形フォーマットが並ぶレイアウトを作成する(データ結合)」を参照ください)。しかし、残念ながらInDesignにはデータ結合後のレイアウトからデータベースを再生成(書き出し)する機能は存在しません。このため、レイアウトを組んだ後に編集者の方から修正指示が入った場合、元のデータベースの内容とレイアウト上の内容が一致しなくなってしまいます。

私はこれまで、この問題を解決するためには「修正がある場合は元のデータベースを修正し、あらためてデータ結合し直す」か「修正がある場合は元のデータベースとInDesignデータに同じ修正を加える」という2つの方法しかないと思ってきました。しかし前者は、初回のデータ結合後にInDesign上でおこなった文字間調整や画像位置の調整などがすべて破棄されてしまう(データ結合のたびに同じ調整をする必要がある)点が問題です。後者では、元のデータベースとInDesignデータに対しておこなった修正作業が間違いなく同じだという確証が得られません(一方だけ修正される可能性などがあります)。

今回はInDesignの文字スタイル機能、オブジェクトスタイル機能とHTML書き出し機能を使ってデータ結合後のレイアウトからテキストを抽出する方法を考えてみました。
0406.png

以下、動画をご覧ください。

後で取り出せるよう、InDesign上では各テキストに文字スタイルを適用しておきます。「s01_code」などのように文字スタイル名を英数字にしておけば、そのままHTMLのタグに反映されます。なお、グラフィックフレームにはオブジェクトスタイルを適用しておきます。

書き出したHTMLファイルはJeditの複数一括置換で処理してデータベースの体裁に整えています。途中でExcelを使用して縦横を入れ替えています。

※VBAなどを使える方であれば一連の作業をもっと合理的に処理できるようにも思います。今回は私にできる範囲でやってみました。


実際に業務で使用するには、いろいろな検証が必要だと思います。まずは「こんなやり方もある」ということで、何か新しい手法を考える際のヒントにしていただければ幸いです。
サンプルデータはこちら《2016_0406_minimum.zip》です。

【2016.4.7追記】

アンカーされたグラフィックフレーム内の画像や、さまざまなファイル形式の画像に対応するための作業を追加しました。

なお、動画内で触れているAJABONさんのJavaScript(ドキュメント内のアンカーつきオブジェクトを内容の単一リンクファイル名に置換するもの)については【このサイト】の「ドキュメント内のアンカーつきオブジェクトを内容の単一リンクファイル名に置換する」をご覧ください。
サンプルデータ(0407更新版)はこちら《2016_0407_minimum.zip》です。
posted by 照山裕爾 at 00:20| Comment(0) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする

2015年06月29日

[ ]で囲まれた部分を索引化する

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

仕事の中でInDesign内の[ ]で囲まれた部分を索引として抽出することがあります。この時、私はLCSのInDexというプラグインを使用しています。とても便利で助かっているのですが、同じようなことをJavaScriptではできないものかと思い、勉強のために試してみることにしました。
0628.jpg

結論から言えば[ ]で囲まれた部分だけを、読みは考えずどうにか抽出することはできたようです。完成度はお恥ずかしいレベルなのですが、皆様が何か他のものを作る時の叩き台にでもなればと思いアップしておくことにしました。ヘトヘトになりました。JavaScriptは難しいですね。

今回、参考にしたサイトは以下の通りです。

marubananaさん【match() と replace()】
http://blog.livedoor.jp/marubanana/archives/2617974.html

chalcedonyさん【[JavaScript]String.matchとRegExp.execと後方参照】
http://d.hatena.ne.jp/chalcedony_htn/20090315/1237121111

古籏一浩さん【InDesign CS6自動化作戦/索引を作成する】
http://www.openspc2.org/book/InDesignCS6/hard/014/index.html

普段私が愛用しているプラグイン「InDex」については下記のサイトをご覧ください。とても便利です。

株式会社エル・シー・エス/InDex Plug-in(有料)
http://www.loyal.co.jp/gaiyou/l_group/LCS/LCS.html

サンプルデータはこちら《2015_0628.zip》です(ドキュメントはCS6で作成)。
posted by 照山裕爾 at 03:41| Comment(0) | TrackBack(0) | InDesign-その他の機能 | このブログの読者になる | 更新情報をチェックする