正規表現で文字スタイル割り当て.jsx

先日、@jamierob さんとのやりとりの中で作ったスクリプトが自分にも便利でよく使っているので紹介しようと思います。

作ったと言っても、コアな部分は Adobeスクリプティングフォーラムの Select part of point text objects matching a regex expression で言及されていた pixxxel schubser さんのスクリプトで、私はUIをつけたりしただけです。

機能は選択されているテキストオブジェクトの内容を正規表現で検索して、一致した箇所に指定した文字スタイルを割り当てるというものです。

例えば画像のような設定で実行すると、テキストの行頭の数字を太字にできます。(Charcter Style 1 が太字のスタイル)

f:id:shspage:20181211201956p:plain

スクリプトでの文字スタイルの割り当てには、clearingOverrides というオプションがあり、これを有効にしないと文字スタイルが適用されない場合があります。 このオプションが何を意味するかは何となく分かるのですが、どういう時に有効/無効にする必要があるのか、私もよくわかっていません。よくわからないときは有効にしておけばよいものだと思います。

また、正規表現について、各テキストオブジェクトを順に処理するループの中で再定義しないとうまく動作しないようでした。これも実際どういう仕組みなのか、把握し切れていないのですが。

スクリプト@jamierob さんが以下で公開しています。 https://github.com/jamesw05/illustrator-shortcuts/blob/master/apply_Style_With_RegExp.jsx

現時点のバージョンのUIやメッセージを日本語にしたものを私のGistに置いておきます。 https://gist.github.com/shspage/82e70da926dc5c9bfdc591d1c4afb7d5

文字スタイルじゃなくて、書体とサイズを適用するようにしてもいいかなとも思いますが、UI 作るのが面倒だし、文字スタイルにしたほうが後から一括変更したい時などに融通も利くしなので、このままでもいいかなと思っています。 正直、このスクリプトを使うようになってから、文字スタイルをよく使うようになりました。