InDesignのコンテキスト機能をコントロールするスクリプト

最終更新日

みなさま、いかがおすごしでしょうか。わたしはぜっさんねんどまつしんこうのさなかでたぼうをきわめております。そのえいきょうでかんじへんかんをおこなうひまもありません。
と、しょうもないことをしていないで本日の本題です。
最近のInDesignさんにはコンテキスト機能がついています。テキストを選択してポインタを近づけると表示されるアレです。
へたに引っ掛けると大事故につながったりするんですけど、使いたいときはとても使いたいのですが、このオン・オフは環境設定を開いて「高度なテキスト」の項目を選択したうえでチェックボックスを操作する必要があります。これが結構な手間です。なので、スクリプトでなんとかしたいんですけど、対応するプロパティ名がよくわかりません。
面倒なのでChatGPT君に作れって言ってみたんですけど(実際にはもっと下手に出てお願いする体を取っていたりします)まあ、プロパティ調べてみたらあるんじゃね?って言われただけでした。
まあ、そうですよね、ググっても情報ありませんし。ということで、どど〜んとバックグラウンドでプロパティを総ざらいしてみました。
そんなこんなで書かれた渾身のワンライナーが以下のものです。

app.preferences[38].showAlternatesUi = !app.preferences[38].showAlternatesUi;

実行する毎に異字体メニューの表示状態を切替えられます。
以下のスクリプトをダウンロードしてご利用ください。

以降追記

このpreferencesってやつは環境によって動的に変化しちゃうやつなんで単純にindexで決め打ちすると動かない方も出てくるということで、以下のスクリプトを作成しました。

function searchProperty(str)
{
  var pref =app.preferences;
  for (var i=0;i<pref.length;i++)
  {
    for (var a in pref[i]) if (a==str) return i;
  }
}

var n = searchProperty("showAlternatesUi");
if (n!=undefined)
{
  var cd = "app.preferences[" + n + "].showAlternatesUi = !app.preferences[" 
    +  n + "].showAlternatesUi;";
  var f = File("~/Desktop/showAlternate.jsx");
  if(f.open("w"))
  {
    f.write(cd);
    f.close();
    alert("Proscess complete.\n Now, You can find showAlternate.jsx in your desktop.")
  }
}
else
{
  alert("Error: Property not found in your InDesign...")
}

このスクリプトを実行するとそのInDesignが保持する環境設定の該当部分のインデックスを調査してスクリプトのインデックス部分を書き換えた上でデスクトップに「showAlternate.jsx」という名前で保存します。
以下のzipファイルをダウンロードしてご利用ください。

ten_a

Graphic Designer, Scripter and Coder. Adobe Community Professional.

シェアする