人がおもろい事してるとすぐ乗っかる奴

PICTRIX師匠なにやら連作していらっしゃる中、下ネタもぼちぼち出始めたご様子で(もちろん神聖なるお仕事の余技なのでしょうけど)
 そういやウチにもそんなの1つぐらい作ったような記憶が..
しかし今年の夏以前のモロモロのデータはイッキに消し飛んだのだった。前のマシンから引き継いだ物も含めドドンと8年分ぐらい。
 手元のMacBookには最近の物(スクリプトしかない)と、入院の折、やれたらいいねと思ってコピーしておいた「やりかけ」フォルダの内容だけ。
  いや実際「やりかけ」フォルダが一番HDD内のウェイトを占めていたような気もしたが。

で、もしかしたら無意識にコピってるかも、と思って検索したら
 まんまと出てきました。あぁ、ちょっとうれしい。しかし、しょもない。

うはは

InDesign:テキスト流し込みスクリプト 4

なかなかヒマがなくて進まなかった上に、
 時間が空くと自分で書いた意味不明すぎるコードを新鮮なキモチで解読するところから始めないといけないといういつものパタンでグダグダです。
 拾い物を使うだけでなくて中身を覗く趣味のある方にはコメントアウトの多さに笑われそうだ。



InDesignCS3以降
CS2未満の環境では最初のでしのいで下さい
*リンクURLの誤表記を修正しました。ごめんちゃ


というわけでちょぴり機能追加。どんどんパレットがでっかくなってってますけど。
 赤囲み内が追加機能です。その他のコントロールは前回参照。ズボラ人生。


前回(ver1.1)からの変更点〉
●複数アイテムが適用先のテキストスタイルごとに入る機能
●縦並び、横並びなど単純な法則で配置された複数のフレームへの一括流し込み
 の2つが追加機能となります。
 この延長で、前回わかってて知らんぷりした「適用先がスタイル混合の選択範囲の場合」
 の不具合というか不都合も調整しました。
これらの機能を追加するにあたり、対象のテキストフレーム1つに対し適用するテキストアイテムは1つ、を基本とし、
 余ったテキストフレームは放置、
 余ったテキストスタイルは削除、
 テキストアイテム中の余った段落は最後に流し込まれたテキストに改段で連結
 余ったテキストアイテムは前のテキストアイテム内の続きの段落として使用、
と仕様を定めました。

●猫のトイレの砂が散らばらない機能
●詰め替え用の黒コショウがビンに入りきらず余ったのを一度で使い切る機能
 これらはどうにもなりませんでした。

〈説明〉
まずは『元のスタイル群を段落単位で適用』チェックボックス。
 名前が長ったらしいですが、ちょっとわかりにくいっぽいので。
ここでいうスタイルとはスクリプトの textStyleRanges というオブジェクトに縛られた文字列を指し、
 ヒトクチで言うと「同じ設定の文字たちのヒトカタマリ」とゆうことです。
  別にドキュメント上で文字スタイルや段落スタイルで管理されていなくても同じ設定でかたまっていればソレが該当します。
 逆に、段落スタイルが適用された文字列でも部分的にオーバーライドがあるとヒトカタマリはそこで切れます。
このヒトカタマリごとに、流し込むテキストを1段落ごと当てていく、という機能です。
 実際に触ってもらった方がいいですね。
  ロンより翔子みせたげる(スーパーリアル麻雀P2)

読み込んだテキストの内容はこんな感じ。
 5段落、1段落、1段落 の3アイテムとして読み込まれます。


流し込む前の状態。
 とてもわざとらしく書体やら級数やら変えてあります。
4スタイル、2スタイル の2フレーム。こちらは段落数は無関係です。あくまでスタイル数です。


テキストフレームを全て選択、流し込みアイテムも全て選択。
 チェックボックスはオン。
流しこみ、ドン。


..と、なります。
1つめのテキストフレームはスタイルが4カタマリある所へ5段落流し込んだわけです。
 余った最後の1段落には、末尾のスタイルが継続使用されます。
2つめのテキストフレームはスタイル1カタマリ、1段落なのでテキストスタイルが余りますが、
 適用先のテキストフレームが使い切られると最終のフレームに次の段落として使われる仕様なので2つめの2段落目となり、これでトントン。

上の例では複数のテキストフレームにいっぺんに流し込んでいるので適用先はストーリー固定という事になりますが、
 「対象:選択範囲」のラジオボタンを付けておけば選択文字列の中だけで同じ事がでけます。
が、selection(texts)内の textStyleRanges と Story 内の textStyleRanges は別次元なのかなんなのか、
 先頭のスタイルから流していくと文字数の増減ぶんスタイルの変わり目もズレ込んでいってワヤクチャになる問題があり、
  これをズボラに回避するため、末尾スタイルからさかのぼって流し込んでいくようにしてあります。
 実行は一瞬ですが、ヤベーモドソーと思ってundo連発していくと割と混沌な過程がバレるのですが、我慢するか気にしないかでヒトツ。
この『元のスタイル群を段落単位で適用』チェックを外した状態での挙動は、先頭1文字以外消してしまってから流し込んでいます。
 これで余分なスタイルを消しています。これも見て見ぬふりしといて下さい。
自動組版の王道とかタグ付きテキストとかXMLとかまったく触った事がなくて我流で自動化推進してきた人間の作品である、という事は留意して頂いた方がよいのかも知れません。
 自分の作業環境に特化しているぶんこっちの方がウチにはいいんですがね。テキスト整形はリターンキーばすばす打つだけだし。

えー次。『流し込み順』
 ドロップダウンすると4つの選択肢があり、隣に「下から」チェックボックス。
この組み合わせで8通りの流し込み順を選択します。
 現場の同僚氏に、このエヌとゼットが直感的に理解できないと言われ説明にも詰まってしまったので、ここは図解を入れておきます。
  『Z-左』は上から下へ、同じY座標にいる物同士は左から右へ。『Z-右』なら右から左へ。


  『N-右』なら左から右へ、同じX座標にいる物は上から下へ。『N-左』なら左から右へ。


  これらに加え『下から』は上と下の優先順位を逆転させる。


現状、各テキストフレームの左上の座標で判定しています。
 統計的に横書きで左揃えのテキストフレームを右に伸ばしまくりなデータが来る事が多いので暫定的に、です。
なので、縦書きメインなページではご注意。
 近い将来のバージョンアップで比較対象の座標も選択可能にするします。
それと、元の作り手が超ぶっきらぼうさんだったりして各フレームの頭が数値的に揃ってない場合を想定して、
 座標比較は誤差2まで許容してます。単位はドキュメント依存で。
  上の画像もよく見ると隣同士のフレームのY座標を少しズラしてあります。誤差修正がないと1、3、2〜と流れ込んでたところです。

もう1つ、選択中のテキストフレームが連結フレームだった場合。
 それぞれストーリーの先頭テキストフレームを

おさかな:エサからペットに昇格したやつですが

ちびっこいザリガニを4匹、ウチの水槽にキープしてたんですが

 息子ちんがエサやるの好きだもんですっかり居着いてしまってたんですが
いきなりそのうち半分(2匹)が同時にダッピィしやがりました。



いきなり生気のないこんなのが水槽内にいくつかコロコロしてたら、そりゃあ母ちゃんもおののくわ。。

すっかりおさかな方面の投稿ばっか続いてますが、スクリプトもうじき公開でけます。
 テキスト流し込みのやつはわりと期待されてるようなので奮ってます。