InDesign:綴じ方向変更の新機軸の予定のやつ


あのー… ほら、右綴じの本なのに左綴じドキュメントで作っちゃうすごい人がいるじゃないですか。ノンブルまで手打ちしちゃっててご苦労さんっつうか。
 いつかこんなの無くなるだろう、と信じて十余年、いっこうに無くなってませんのです。。
 大昔、単にPS書き出して面付け出力するような案件だったらPSファイルを2、1、4、3、6、5‥みたいな順で書いたりとかして後は深く考えるのヤメたりしてたんですけども。
 「単に」じゃない場合、やっぱりそのままにはしておけないので直しますやね。

常套的に用いていた手段は、
 ・複製したinddファイルを開いておき、
 ・オリジナルはオブジェクト全消しして、
 ・複製からスプレッドごとにペースト
 ・マスターアイテムはどうしましょ
 ・それにしても重いぜクソウ
だったんですけど、
 ちょっと思いついたので試してみてます。以下に。
  「試しました」じゃなくて「試してみてます」です。



test_id_bindingSwitcher.jsx

ver_b

※全てのページのマスターアイテムをオーバーライド&適用マスター「なし」の方針で定めました。
InDesignCS3で動作確認 CS5の複数ページサイズにはとことん不向きなのでテストに及ばず。



現状のフローをざっとヒローしますと、
 ・環境設定→ガイドとペーストボード→上下オフセットの幅 を3000に(とりゃえずmm主体でテスト中、他の単位への対応はのちほど)
 ・レイヤーのロックを解除
 ・オブジェクトを全てつまみ、すごい上に移動(ページ上から追い出す目的)
 ・ドキュメントの組み方向をスイッチ
 ・オブジェクトを全てつまみ、元のY座標に移動
 ・ペーストボードを元に戻す
 ・達成感の一服、つい気が大きくなって募金
という流れを想像して、いいだけ書いたあとに問題ぼろぼろ。
 以下、一つずつ。

・スプレッドが複数ある時、document.pageItems.everyItem().move()がコケる
複数のマスタースプレッドは問題ない。
move([x, y])で移動先座標を指定すると、全て先頭スプレッドに集まってしまう。
move(“hoge”, [x, y])で移動量を指定するとエラー。
 なのでスプレッドごとに移動しないといけない。

・単ページと見開きページの、マスターアイテムの追従性能の違い
一般にはあり得ない状況とは思うものの、
 マスターアイテムに、小口にフィットしたページ外オブジェクトがあるとき、
組み方向を変えると単ページと見開きページでは挙動が違う。
 単ページ
 ・一度目の組み方向変更で消える
 ・二度目、再び変更して元の組み方向に戻っても帰ってこない
 見開き
 ・一度目の変更で、ノド側に連れてこられる(そのまま隣りのページの物となる)
 ・二度目の変更で、隣りのページと一緒に移動する
これ、出力に向いたオペレータとしてはけっこう困るので使えない。

うーんむ。マスターページアイテムは全てオーバーライドするべきなのか。
 そしたらそしたで別の問題が浮上しそうではある。

・元のオーバーライド状況がすっ飛ぶ
オーバーライドしていないマスターページアイテムは、そのまま流れに任せる。
オーバーライドした物は、それはそれで流れに任せる。
オーバーライド後に削除した物が厄介。組み方向を変えるとニッコリ復活する。これが困る。
 どうしたらよろしいでしょうか。

あ、つまり、マスターページまるきり未使用なら現状でじゅうぶん使えます(ポジティブ)
 クリップボードを介さないので比較的軽いです。
  従来法(ペースト法)だと、新規書類なら未使用の(でも使う予定の)スタイルや合成フォントの移動もうざかったしドキュメントのグリッド設定やらなんやらも気にかける必要があったし、
 複製書類だと倍重かったし。
ちゅわけで、どうぞ。みんなで煮詰めていきましょう(投げ)

まとめ:現状の仕様 ver_a(2011.12.17)
・削除済みマスターページアイテムがニッコリ復活してしまう
ver_b(2011.12.26)

・全てのページのマスターアイテムをオーバーライドしつつ、適用マスターを「なし」にしたです。

ちょっと補習 完結編

去年から引っ張ってた宿題、やっとこ片付いたようで。。

元記事[InDesign]テキストオブジェクトが何行目か取得する @milligramme 3cc

ちょっと補習 その1 @車車車く本牛勿 -Rollin’ Real-
ちょっと補習 その2
ちょっと補習 その3
 最後の方なんか自分で何やってんだかわかんなくなってますが。

ちっとヤボ用でkamiseto姐御謹製のmenuActionTitleToString一覧表を眺めてたら、
 フツーにありました。「行頭」と「行末」。

で、こうなる。ようやく完成かな?
テキスト内の選択ハニーの先頭がフレーム(セル)内の何行目かを知りたいスクリプト。
 いや、知りたがるのは勝手か。。



if(!app.documents.length){exit();}
if(!app.selection.length){exit();}
var selOrg=app.selection[0];

app.menuActions.item(“$ID/Move to the start of the line”).invoke();
app.menuActions.item(“$ID/Move to the end of the line”).invoke();

var sel=app.selection[0], par, ulObj;
switch(sel.parent.reflect.name){
case “Cell” : par=sel.parent; break;
case “Story” : par=sel.parentTextFrames[0]; break;
default : exit();
}
ulObj=par.texts.itemByRange(par.insertionPoints[0], sel).lines.length;
app.selection=selOrg;
alert(ulObj+”行目ですか”);



キモになるのは、選択ハニーが挿入点だった場合。
 オブジェクトとしては同一の「2行目のケツ」と「3行目のサイショ」を判別するということ。
したんです。ああよかったなあ。
 これでやっと年賀状に着手できますわ。。