私信:お師匠。

とりゃえず根幹部分だけおぼついたので。

スクリプト構文の冒頭にある、がんじがらめの動作条件をご確認の上、
めめっと試してみておくんなさいまし

この時点で問題があるなら早めに出て欲しいもんですねえ “^

たぶん全バージョン、全プラッポホーフ対応。たぶん。
行送り値を全部しまいこみつつ、比較してます。
実際の行送りはLines内のCharacterを1こ1こ見て一番デカいのを捕まえないとダメっぽいです。
つまり、Characters配列を全部見てます。将来的にすごく重くなるのかも。ならないのかも。
あと、間違えてParentStoryを使ってしまったので連結テキストやオーバーフローありだとワヤクチャになります。Texts[0]が正解。
おいおい様々なシチュエーションに対応していきます。師匠が(ォィォィ)
まずは簡便にテストお願いしますです。




修正版 _b
・characters配列の内容を全部見ていたところを、textStyleRangesの内容に変更。ばかだなあ。
・同様に、textSytyleRanges[-1]の居る行だけを本文として対象に。
 本文の行同士を総当たり形式で比較してるけど結構ムダかも。
・ぼちぼち縦組も対応。
とりゃえず、イラッとしない程度の速さにはなりました。まだ無駄が多いというか根本的におかしい気も。。
実行後、1秒弱お待ち下さい。orz

座標を見たい行の、先頭以外の挿入点に0.01×0.01mmぐらいのインラインオブジェクトを作ってしまえば速いのだが。
座標だけ拾ったらすぐundoしちゃえばバレないかな?



修正版_c

・テキストが1行しかない時の無限ループを修正 orz
・3つ以上でもへっちゃら
...ぼちぼちよろしいですかね?



ほぼ最終版_d
・定規の開始位置が「スプレッド」以外の時の不具合を修正
・ver_cでユーザー入力による基準オブジェクトの指定が効かなくなった不具合を修正
ver_cで基準オブジェクトの1行目にしか揃わなくなった不具合を修正
・手にやさしいフローラルの香り
・文字揃え=欧文ベースライン 以外はキッパリ切り捨て
・テキストの配置=上/右 以外はキッパリ諦め
   いろいろとケツの穴がすぼまった仕上がりとなっておりますが 。。

InDesign:単位なんかぶっ飛ばせ…したい

文字の級数や行送りなどの値をドキュメントのペーストボード上で利用する時に、各単位間の補正値を求める関数
 というのをでっち上げてみました。
要は、ヒストリーの増減に影響しない物に、利用したい数値を単位つきで当ててやり、別の単位に変換された数値を元の数値で割ってやれば補正値が出る、という。
ここでは変形アンカーポイントをダシに使っています。使ったあとはちゃんとおかたづけしているので痕跡ゼロ。
自分で数日前に似た事をやってた事をホンキで忘却してましたが、それはそれ。汎用性なら今回の方があるし。

で、試作品。



テキストフレームのサイズを上か下に1行分だけ拡張するテスト
InDesign バージョンてきとう
※全ての単位、自動行送りに対応しときました。例に寄って急いで試していただいた三名様、もらい直してくださいすいません




上揃えの横組みテキストに「上に1L追加」とか涼しい赤字が来てムキーッとなったときとか用。
縦組みの場合は右か左に拡張します。



まだまだ試作段階なので回転のかかったフレームには未対応。
嗚呼試作品。
ゆくゆくはUIを作って、1行分縮小、文字数分横に拡張、1行分の距離をカーソルキー移動量に一時的に適用、など
もりだくさんにする予定(親切な誰かが)。


軽くテスト。とてもわかりやすいテスト。




関数 unitFunc()の引数に行送りの単位(環境設定→単位と増減値→他の単位→組版)を入れてぶん投げます。
var unt=unitFunc(Document.viewPreferences.typographicMeasurementUnits); みたいな。
返ってきた補正値を実際の行送り値に掛けてやればペーストボード上での移動値が出ます。


上に追加。行送り20Hなので5mm伸びた。




下に追加




フレームグリッドの場合、ちょっと厄介。
(フォントサイズ × 単位補正値)+(行送り値 × Point補正値)となります。
カッコいらないな。。
行送りだけは単位設定に関わらず常にPointで値が返ってくるらしいですよ?
 なんなんすかね。



そんなこんなで一応動きはしますが、



フレームグリッドだからといってちゃんとテキストにグリッドフォーマットが適用されているか、
とかまではまだ見てくれていません。 嗚呼試作品。

ウチのフォルダ、試作品まみれ。
とりゃえず関数uni
tFunc()は流用してもらって損はないかと思うであります。


InDesign:ストリプク パネル!

先日の「いちいちアクティブにしないScriptUIパレット」を利用した試作品。
 前に作った「scriptMenu_b.jsx」は書き方にムダが多くて遅かった上にサブフォルダ非対応で困ってたので。
  自分で困るなよ。。



対応:InDesignCS3以降
MacOSX 10.4.11、CS3で動作確認済み。 
いき親分より、Windows版 CS3/CS5で動作確認報告いただきました。
※いちおうAppleScriptもVBも分岐に入れておいたつもりですが、なんだかうまくない様子。

※いろいろ(多すぎて書けない)直しました。
 「Stripk Panel_c.jsx」までのバージョンをゲットしてしまった方は
 ver.d(上記リンク)をいただき直してください。すみませんです。もじもじ




【つかいかた】
・アプリケーションの「Scripts Panel」内など、てきとうにスクリプトが集まった場所に置いておき、InDesignのスクリプトパネルから実行します。



・スクリプトが置かれたディレクトリの内容が出ます。でっかいです。いいことです。
 パレットの大きさは自由に変更できます。
 フォルダの内容はツリー表示されます。
 パレットが非アクディブな状態からでもシングルクリックで目的のスクリプトを実行できます。
「でっかいのはうれしいけど、カチカチじゃないと誤爆が怖い」という方はチェックボックスの操作で切り替えが可能。


・1つのフォルダによく使うものだけエイリアスを集めておき、
 その中に「Stripk Panel.jsx」を置くなどしてもシンプルでいい感じ。そんな感じ。



【正規のスクリプトパネルとの違い】
・スクリプトの数が貯まりすぎて溺れそうな人は、最低限の物だけフォルダに選り分ければ
 生活感の薄いトレンディドラマのようなかっこいいスクリプト生活を送れます。
・表示がでっかいので、視力の問題からしばしばスクリプトを取り違えて実行してしまう人は間違えなくなります。
 (これでも間違えたらウチはもう立ち直れないですが)
・ダブルクリックが苦手、カチカチが煩わしい、そんな人におすすめ。
・「カチカチ」が「カチ」で済むので、スクリプト実行一回につき作業時間を約0.2秒短縮できます。
 これで昨日より15秒ほど早く帰れます。
・パレットからのスクリプトファイルを表示・スクリプト編集などは実装していません。

【カスタマイズ】
・ツリービューのフォントサイズ
・チェックボックスの初期状態
の2項目はスクリプトの冒頭で宣言してあります。好みに応じて書き換えてください。
 スクリプティング習得の第一歩に既成の物をちょっ