InDesign:FitTextFrame_g

引き続き、昨日のグダグダなスクリプトを少しかなり直しました。

InDesignCS3で動作確認
CS3以上であれば問題なく動作すると思われます




ver_fは、行の折り返し解消のために「各geometricBoundsを200ずつ外に拡張する」という処理がありました。
  …はい、ほぼ一発でペーストボードの外にハミ出てしまってテキストの座標系プロパティを拾えなくなります。
 アホすぎる。
これを、ページ(見開きならスプレッド)のサイズまで拡張、としました。
 テキスト長がよっぽどでなければこれでなんとか。よっぽどの時は諦めてください。

また、ちょっとかっこいいと思って
 story.characters.everyItem().baseline.getElements().sort().reverse()[0]
などとやっていたらクソバカ重くなってしまっていました。
 昨日は4〜5字で試したので気づかなかったのです。
これも、つまんない書き方に直してそこそこの速度になりました。

あと、実行前に出るダイアログも新しくなりました。
 これでようやく自分の実用に堪えるわけ(じゃ昨日のはなんだったんだ)
画像
字送り方向のフィッティング有無、
 行の送り込み解消(↑のオプション)、
行送り方向のフィッティング有無。

とりゃえずこれで、どうにか戦って下さいまし。
 なんであれ、長方形以外では使わないで下さい。

次回、土台が安定しきった所で、ようやく肉付けを
・フレームの線幅を考慮
・フレーム内マージンも
・各行のインデントも、まあ、いちおう
・背面に別置きしたオビの追随機能
…あとないか。もうないか。ありますか。

InDesign:フレームの角をカチカチした時を疑似再現するやつ

で、昨日の寝呆けたエントリに絡んだスクリプトを書いてみました。



FitTextFrame_f.jsx もろもろ不具合で公開終了。ver_g をどうぞ
CS3で動作確認。
CSは、2、3ヵ所書き直せば動きます。やりません。
※バージョン_eまでは自分用でした。大幅に書き直しました




【用法】
このような、だらしないテキストフレームがあります。
 これを、昨日の角カチカチと同様の効果をもたらしつつ、CS3の誤差を極力抑えつけます。
わかりやすいように、10Qのベタ送り、詰めも入れていない状態です。
 たてよこ両方やってしまうので辺カチカチと同様の結果は出せません。
横組みはどうでもよさげなので、縦組みでやってみましょう。




バウンディングボックスのハンドルをカチカチする代わりに、
 任意のアンカーポイントを選択してから実行します。
例として、普通に右上を選択して実行。試しにあふれさせてからにします。
 背面には確認用に元オブジェクトを複製してあります。
ついでにガイドも引いちゃおう。
 ご一緒にポテトはいかがですか。いらねえ。




ダイアログが出ます。ハイイエ か イイエス で応答して下さい。
 この後オーバーフローがある場合フレームを拡張する動作に移りますが、
 「はい」の場合、各段落の折り返しが解消するまで字送り方向にもフレームを拡張します。
   改段落、強制改行のコードで判別しています。
 今回は「はい」にしてみました




で、ゴニャゴニャ動いて終了します。見た目にはほぼ一瞬ですけど。
 ゴニャゴニャ動いたぶんは取り消してから最終の処理をしているので、
-回転のかかったオブジェクト
-ドキュメントの定規の開始位置がスプレッド以外
に当てはまらない場合はアンドゥ1回で戻せます。




気になる誤差はー…とりゃえずオッケーですね。
 極端なフォントサイズの混在などある場合は誤動作の可能性もあります。
また、geometricBoundsで動かしているので線幅のあるフレームではきちんと動かないと思います。



今後の動きとして、
・タテのみ、ヨコのみ選択可能に
・線つきフレームの対応
・背面に配置された帯オブジェクトの連動処理(これはver_eで実装したけど書き直すので)
などがありますが、またの機会で。。貞操帯で。

InDesign:フレームの隅をつつく話

ってスクリプト公開エントリじゃなくてさぞかしガッカリでしょうけど。。


※以下、自分のプアな環境でもがいた結果をつらつらだらだら書いてますが
 流星さんに検証いただき、CS3のみの謎仕様であると結論。
CS4以降では再現しないようです

※※それ以前に、ぐぐったら事例が山ほど出てきました。。
 これを医学用語で連休ボケと言います。
すいませんすいません。
 いちおう、これにまつわる便利な物作成中ということで。。

知ってはいたけど頑に使用を拒んだでいた機能がありまして。
 テキストフレームの角や辺のハンドルをカチカチすると中味にフィットする機能。
行数が少ない場合、連結マークが邪魔でロクに触れないので忘れる事にしていたんですが。
 が、ちょっと気になって触ってみたんですが。
2011年現在、そんなの機能が実装されたCS3発売直後ににやっとけよって話ですけども。
 ほんとに今さらですいませんが、わかりません。

サンプルオブジェクト その1




『 』内、Adobe InDesignのHelp(環境的事情でとりあえずCS3)より引用
フレームをその内容にすばやく合わせるには、選択ツールを使用してオブジェクトを選択し、ハンドルのいずれかをダブルクリックします。例えば、横組みテキストフレームの中央下のハンドルをダブルクリックすると、フレームの下部がテキストの下部にスナップします。横組みテキストフレームの中央右のハンドルをダブルクリックすると、幅を狭めてフレームサイズいっぱいに合わせる際に高さが保持されます。
との事で、ぜひカチカチしてみた。確かにそうなった。
 が、赤マル内の数値にやや違和感。




今度は角をカチカチしてみた。フレームの高さが辺カチカチの時と違う。




テキストフレームを内容に合わせるには、選択ツールを使用してオブジェクト/オブジェクトサイズの調整/フレームを内容に合わせるを選択します。テキストフレームの下部がテキストの内容に合わせられます。

ボタンを押せ、とは書いてないけど、まあ同じ事だろう、と
「フレームを内容に合わせる」を押した。
13Qの行送りベタで2行。これこれ、これやがな。




って、なんでこんなに結果がバラつくのか、がわかりません。
キッチリカッチリが求められる局面では「フレームを内容に合わせる」以外使ってはいけない事になるんですか。
いや、まあ、今回の検証範囲ではたかだか0.02mmの誤差なので自分的には大してご迷惑ではないとはいえ。

サンプルオブジェクト その2




フレーム内のすべてのテキストに合わせて高さや幅を広げるには、オーバーセットテキストフレームまたはフレームグリッド上でハンドルをダブルクリックします。

はい、カッチカチ(←実際かなりダブルクリック苦手な人)




額面通りではある。しかしどこまでも縦横比維持。
 気持ちはわかる。しかしもうちょっと人間的にやれねえのか。無理か。。


サンプルオブジェクト その3
(フリー素材拾ってくるの面倒なので一度拾ったらしゃぶり尽くすわけ)




フレームをその内容にすばやく合わせるには、フレームのいずれかの隅のハンドルをダブルクリックします。フレームは、クリックした点から遠いほうがサイズ変更されます。辺をクリックすると、フレームはその方向でのみサイズ変更されます。

テキストフレームの時とリクツは一緒なのだろう。
 と思ったけど、角は4つともカチカチの挙動が同様。
リンク位置ママで4辺とも動く。普通に「フレームを内容に合わせる」と同じ。




上辺、下辺の挙動が同様。
 フレームの天地のみフィット、フレームの左上座標はリンクオブジェクトの左上に整列、
リンクオブジェクトの座標はママ。




左辺、右辺も同様。
 フレームの左右のみフィット、フレームの左上座標はリンクオブジェクトの左上に整列、
リンクオブジェクトの座標はママ。




どうしたもんにゃら。。自分がわかってないだけなんでしょうか。
 掲示板で質問するには長くなりすぎたのでココで投げかけますが、
どなたが優しくしてくださるんでしょうか。。