Illustrator:ドキュメントのカラーモードに合わせてカラーパネルを自動で切り替えるエクステンションをこしらえたよ

はじめに

きっかけは、はむこさんのぼやき。なんかこの流れわりと多いなw
しょっちゅういいこというからなあ。

https://x.com/hamko1114/status/1980819102185976050

そーなんすよ。
カラーパネルの野郎、今さわってるドキュメントのカラーモードがRGBだろうがCMYKだろうが「まったくそれとは無関係でござい」を貫いて表示してよこすんすよ。頑固っ! 頑固っ!
これがまた、うっかりの勘違いを引き起こす。たまによくやる。

カラーパネルの切り替えはスクリプトのDOMには用意されてない(おれ調べ)。
でもアクションならできるみたい(はむこ調べ)、
んじゃアクションを実行するスクリプトを何らかで連動すればいけるかもね、って。

で、何かいい方法あるかなって探してみたです。
探してみたところで、うちは勝手が効くのがExtendScriptだけなので。プラグイン作れる人はなんでもできる。
この「何かしたら連動して何かなる」というのを叶えるにはイベントリスナーを設定するってことなんだけど、IllustratorはInDesignと違ってそんなの用意されてない。
そう、InDesignならね(ないものねだり)。

でも別の日に別のもの調べてるとき、ちろっと見かけたんですよ。
IllustratorのイベントをExtendScriptでつかまえられるプラグインあるって。
ブラウザの履歴をたどったら、確かにあった。
AIHostAdapter ですって。

https://community.adobe.com/t5/illustrator-discussions/aihostadapter-aip-macos-installation-filepath/td-p/14228574?profile.language=en

https://community.adobe.com/t5/illustrator-discussions/aihostadapter-plugin-windows-install/td-p/12727345?profile.language=en

それをもとに、やれるだけやってみました(やれない部分もあるという意味…)。
よかったら使ってみてくださいまし。


いれかた(ちょっと手順がいくつかあります…)

AIHostAdapter プラグインをもらいにいきましょう。

https://github.com/Adobe-CEP/CEP-Resources/tree/master/CEP_11.x/AIHostAdapter

Win または macOS を、その日の気分でカチ。

なんちゃら.zip をカチ。

画面右上 … ボタンから「Download」。

ダウンロードして展開して、AIHostAdapter.aip を Plug-ins フォルダへ。
どうも入れ場所が諸説あるんですが、自分の環境では Plug-ins フォルダ直下で大丈夫でした。

Windowsの人は
/Applications/Adobe Illustrator 202x/Plug-ins.localized/AIHostAdapter.aip
あたり、らしいです。現在試せませんすみません…

続いて、うちがこしらえたCEPエクステンションをダウンロード。

https://github.com/AJABON/ColorPanelAdapter/blob/main/ColorPanelAdapter.zxp

ソースコードも置いてありますが、このzxpファイルだけで大丈夫です。
例によって右上の … ボタンからダウンロードしてください。

で、このzxpファイルをインストールするためのアプリが必要です(めんどいね、めんどいよね…)。

https://aescripts.com/learn/post/zxp-installer?srsltid=AfmBOoqR6UhtylS3KQe4wYcNsVxQ7sGko-q_Shzt1H_UNkztd_r8uEW_

macOSかWinか、風水に従ってダウンロード。

インストールは直感でやってみて。

野良アプリなので、macOSの場合いちばん最初の起動だけ右クリックから「開く」で。
セキュリティ的なことをゴネられたら、システム設定「プライバシーとセキュリティ」で許してあげて。

で、いざ起動するとこういう画面が出るので、zxpファイルを投げ込んでみましょう。
(このあと金のzxpと銀のzxpを手に持った女神が出てきますうそです)

以上が終わったらIllustrator起動。
起動済みだったら再起動。
以上でーす。


つかいかた

この時点でもうエクステンションは仕事しています。今回そういう造りです。
オフにするにはエクステンションをアンインストールするしかない。強気だー。

で、ドキュメントがRGBのとき、カラーパネルはHSBで表示したい、という大元の希望があったんだけど
配るにあたり、RGBがいい人もいるだろうということで、
切り替えるためのパネルも作りました。ウィンドウメニューから出します。
これは切り替えにだけ使うもので、パネルが出ていなくても仕事はします。

で、「WebセーフRGB」はバグがあるようで、どうしてもアクション実行から切り替えられませんでした。
ざんねーん。なので今回はCMYK、RGBまたはHSB のいずれかとなります。

冒頭の経緯にあるように、処理じたいは即席でアクションを作って、実行してすぐ削除しています。
Illustratorのスクリプトではけっこう常套手段なんだけど、気になる人は気になってしまうかも。
慣れましょうね(としか言えない)。

使い始めは少しだけギクシャクするかもしれません。
何度か動かしてるうちにスムースになっていく感じです。
何に対してもわりと言えることですね(いいのかそれで)。
なんでかはちょっとわかってない…たぶん変数が出揃ってないんだ。
まあ、ちょっと使ってみてくださいまし。

CEPの技術的な話題は次の機会にー。

InDesign:文字数でインデントするやつ作り(直し)ました

吐露から

ゆるい視点からの話ですけど、段落のインデント設定が、たまにすごくだるいんですよ。
「11Q 2行目以降 1Wサゲ」とか書かれてたら、やじゃないですか。
あ、これ、五-七-五だ…
左インデントに「2.75」とか「11Q」とか入力して、
そのあと1行目左インデントに「-2.75」とか「-11Q」とか入力して。
手がすべってこの順番をまちがえるたんびに、アプリにアラート出されて叱られて。
もう、いやっいやっ。

…って前々から思ってて。

過去に書いたスクリプトが、あるにはある

で、ものすごく昔に一度スクリプトを書いたんだけど、操作面でいまいちかわいくなくて、
作った本人まったく使わないまま埋もれてしまってましたです。

今回、いまの自分が持ちうる知識を結集して、がっつりめに書き直しました。
リファクタリングってんですかこれ。合ってますか。違う気がする。


ダウンロード

今回も、AIとタッグを組んですごいスクリプトを書く方たちに向け、
少しでもお役に立てればという願いをこめてgistに置きました。どんどん参考にされたい。
リンクに飛んだら右上の「Download ZIP」おしてね。

mojindent.jsx

名前、うちのChatGPTと一緒に考えたんですが…大丈夫ですかこれで。
※リリース後に機能追加したためUI下部に若干の変更があります。


何するものか

インデントの設定を「文字数」で行えるやつです。
また、いきなり1行目左インデントにマイナス値を入れたりしても、自動で整合してくれるようにしました。
もうアプリに叱られなくて済むわあ。


あそびかた

てきとうなテキストを選択してスクリプトを起動すると、UIが出ます。
(v1.1.0)選択テキストフレーム群、または選択テキストの先頭挿入点の文字サイズが処理基準となります。
上記対象内の設定が一意であれば、UIに現在の値が反映されます。
なにも選択していない場合、ドキュメントデフォルトの段落スタイルが設定・変更の対象となります。
UIが出たあとから対象を変更した場合は、そのつど「とりこみ」ボタンを押してください。
あまり複雑な状況でチャレンジしないようにしてください。やさしくして。

各フィールドには、文字数に換算したインデント値が表示されます。
13Qの場合、実際のインデント値が 6.25mm だったら 2 と出るかんじです。
選択範囲内に複数の段落群があって、設定がばらついている時は段落パネル同様、空欄になります。


さわりかた

で操作なんですが、

  • フィールドに直接入力
  • フィールド上に値が入った状態でキーボードの ↑ ↓ で増減 ※
  • 増減ボタンで増減 ※

が可能です。

※:shiftキー併用で増減値は 5 ずつとなります。

各フィールド間はtabキーでジャンプします。
shiftキー併用でバックもできるでー。

それと、項目名のところをクリックすると入力欄にフォーカスします。
アプリの標準パネルでもおなじみですね。


補足

(v1.1.0より)
「とりこみ」の文字サイズは、選択範囲の先頭挿入点を基準とします。
UIの下部にとりこんだ文字サイズを表示するようにしたので参考にどうぞ。


できないこと

まあ、いいことばかりではない、ということです。

  • フィールド上での計算式には(まだ)対応していません。
    それをやるなら標準の段落パネルを使えばいいじゃんすかよ、って話です。
  • 縦組みには(まだ)対応していないというか、組み方向の振り分けを実装していません。
    ので、縦組みテキストで何が起こるかは責任とれません。
    世評によってはのちのち対応するかもしれません。

というわけです

今回、とことんまで気持ちよく使えるScriptUIを目指してみました。
これ以上のことを望むならCEPのほうがよいかも。
というか、ほんとにそろそろUXPも始めないとね…

いくらかほめてくださるとけっこううれしいです。

InDesign:ページ/スプレッド内だけ正規表現検索置換したいならスクリプトですぐだよ

街の静寂を破る美女の悲鳴
(だるい仕事の最中にTL覗いたら見つけた:美女でも悲鳴でもない)

https://x.com/luktar/status/1967540433145475405

これ、ふつうに基本的な検索置換でできると思ってた、というか自分が思い込んでしまってたんだけど、できないじゃんすか。
あらあらこれはこれは。

検索置換のターゲットを限定するところまでなら比較的かんたんにスクリプトで解決できるだわ、と
頼まれもしないのに気分転換を込めてちょっと書いてみました。
そのあと3〜4回修正しなければならなかったのがいつもの自分品質。


id_changeGrepOnPageOrSpread.jsx

CS3以降で動く気がします。


あそびかた

まず実行すると、怒られます(おい)。
これは正規表現検索の設定ができていない場合に出ます。

なので、検索置換ウィンドウを開いて、正規表現のほうで
検索文字列、置換文字列、検索形式、置換形式 をととのえておきます。

で、実行すると、入力を求めてきます。
アクティブページなら 1 を、アクティブスプレッドなら 2 を半角で入力してOK。

検索置換終了。やったわー。

過去に似たような処理を書いた気がして、掘り出してみようとも思ったけど
結局そんなに行数いかなかったのでこれでいっか。
拡張の可能性があるとすればページ範囲の指定ぐらいかなあ。