InDesign:等間隔で分布のプリセット的なスクリプト

はじめに!

これ、もうかなり古い記事で、
今はもっと高機能でカンタンなものができているので、
その新しい方をどうぞ。どうぞどうぞ。
InDesign:整列・分布のパラメータをファイル名で指定するやつ

ここより以下は記録として残してありますが、まあもう古いので参考程度にどうぞ。




現場からのリクエスト物ですけど。

整列パネルの「等間隔に分布」に定型の「間隔を指定」してけっこうかなりすごく使うんだけど、
いちいち数値の出し入れがめんどい。ごもっとも。ごもっとも。
でスクリプト書きました。


id_distribute_=_0mm.jsx

Yosemite + CS6で動作確認
たぶんNintendo Switchとかでも動きます

2017.09.22 ver_c キーオブジェクト未指定だった場合の挙動を改善しました
2017.11.13 ver_d 水平分布時の記述ミスを修正

あそびかた

ファイル名のルールはこの通り。


(日)垂直方向なら半角イコール(=)、水平方向なら半角アマダレを2本(!!)入れてください。
2017.06.27:当初「||」でしたが、Windows環境で無理とのことで変更しました。すーません
(月)間隔を入れます。単位つき可。単位省略の場合は定規の単位に依存します。0.5mmを「.5mm」と書いてもおっけーです。
(火)お飾りです。お好きな言葉に書き換えても影響ありません。アレとか。
(水)拡張子とアンダースコアはデリケートな部分なのでそっとしておいてください。

という感じでーですね、
毎回わざわざ間隔を入力しなくても、毎回わざわざスクリプトのファイル名を変えるだけで簡単に間隔を指定できちゃうんですねえ。
じゃなくて、
スクリプトファイルを複製して名前をつけて使い分けるかんじです。ショートカットも登録できるし。

引数(適用値)をファイル名で指定する案は、けーっこう前から脳内で「いつか、そのうち、できれば、なるべく」
ってずーっと思ってたんですけど、なかなかやらんですね。

今回もおーけー流星号したんですがバカンス中のようで、
さんに教えていただきました。
スクリプトが書けるからといって決してオブジェクトモデルに明るくないのがウチです。


現状の注意点(あとでなおします) なおし(てもらい)ました 2017.06.23 14:00

・整列パネル上で「間隔を指定」にチェックが入っていないとエラー
・選択オブジェクト群にキーオブジェクトが指定されているとエラー

InDesign / Illustrator:インデント値を字数で入力したい

 

ことってありますよね。問答無用で。
まあ、級/歯を脳内でミリ換算できて当たり前の業界ではあるんですが、
ウチはもう10Qと12Qしか愛せないっ。
「11Qの2w落ち」とかで既に電卓ラブです。理屈だけわかってればいいんです。…たぶん。
で、現場に、どっかから摘んできた野生のスクリプトがあったので、
そこから着想だけいただいて自分なりに突貫で書いてみました。
自分で拾った物でもなく、コード内にクレジットがないのでほんとにどなたの物やら。でもいいなあこれ。


id_indentSetter.jsx

Yosemite、InDesignCS6で動作確認済み
たぶんCS3でも動きます。たぶん。


ai_indentSetter.jsx

Yosemite、IllustratorCS6で以下略
たぶんCS3ぜんぶで動きますたぶん


あそびかた

原稿です。手近なウェットティッシュの注意書きを書き写しました。
華麗なブラインドタッチで。

テキストフレームをひとつ、もしくはテキストを一部選択してスクリプトを実行。
選択ハニーに絡む段落群が処理対象となります。

実行すると、かわいいダイアログが出ます。
一見、豆腐屋さんのようですが
各入力欄は、InDesignの段落パネル内のレイアウトにならっています。

必要な欄に、数値だけ入力します。空欄は無視されます。
(このため、既存インデント値とのバッティングにはご注意
数値は、段落先頭文字の何文字分、という値を入れます。単位はいりません。
段落前後のアキは、行送り値の単位を数字だけ入力します。
入力が終わったらプリーズボタンをカチ。リターンキーでも大丈夫です。

段落ごとにインデントがかかり終了。
インデント量は段落ごとに先頭文字サイズで計算してます。意味あるかわかりませんが…

ほか、単位つき入力の受け入れとか、現状から相対値で増減とか
いろいろ付けようと思ったんですけども。
一旦最小限でお出ししますっす。
オリジナルの段落パネルと使い分けてやってくだされば。


2017.06.21

で、ちょっとの書き換えでイラスターでも動いたのでそうしました。
・最終行インデントがない
・段落前後アキは元から行送り値の単位と合致しているので割愛
・処理するテキストフレームは1つだけ(めんどい)、もしくはてきとうに文字列を選択して実行
という差異があります。


というわけで、仕事をさっさと済ませて、1本早い電車で帰りましょう(3〜4分?)。
コード内のapp.scriptPreferences.measurementUnitプロパティについては、
あるふぁ(仮)さんより教えていただきました。いつもありがとうございますー。