ぼんやりDTP

DTPに関係したりしなかったりするぼんやりとした話をなんとなく。

InDesignのドキュメントの再構築、再計算、recompose

InDesign CS6 で作業中、知らない間に中身があるはずのテキストフレームの中身の描画が真っ白になる場合がある。

PDF に書き出しても真っ白なまま。PDF書き出し時にも特にエラーも出ないので、しれっと意図しない空白が紛れ込んだPDFが出来上がる。まずい。

テキストがオーバーフローしているのではなく、真っ白なテキストフレーム内で探り探りテキスト選択等をしてみると、選択等の操作はできてしまう。

見えない表
見えない表

該当のテキストフレームをリサイズしたりすると正常に描画される。 (テキストフレームのgeometricBoundsJavaScriptで変更して戻すなど、何らかの更新作業をさせても可。)

そのようなテキストフレームは表組みなんかが含まれている場合が多い気がする。

目視チェックも現実的ではないので、どうしたものかとググったが、一通り作業した後などに「全ストーリーの再計算(Command + Option + /)」コマンドを実行するのが現実的な作業になるかと思う。 (なお、idml に書き出してまた開くのもそれはそれで有用な方法だろうと思うが、作業上、そこまでの作業をするような段階ではない場合の話)

以下、おかしな動作をする書類を再構築するには(InDesign CS3以降)より引用。

  1. InDesign を起動し、文書を開きます。
  2. Ctrl + Alt + / キー(Windows)/Command + Option + / キー(Mac OS)を押します。

※ちなみにテキストがないドキュメントだと上記コマンドを実行しても何も起こらない模様。(追記:2019-04-16)

ただ、これはこれで意図しないオーバーフローを起こす可能性があるので、「全ストーリーの再計算」後にオーバーフローのチェック、調整の工程を入れる必要がある。

なお、表のセルの意図しないオーバーフローの解消にも有効な模様。というか表周りの処理はバギーなのか。忌まわしき理不尽な赤丸。

表のセルのオーバーフロー
表のセルのオーバーフロー

AppleScriptで「全ストーリーの再計算」のキーストロークを入力

上記の「Command + Option + / キー」をAppleScriptで入力するサンプルスクリプト

「全ストーリーの再計算」のメニューアイテムがあればJavaScriptの「menuAction.invoke()」 で実行できそうなものだが、メニューアイテムに存在するかどうかわからない。

--DESCRIPTION:全ストーリーの再計算_全ドキュメント.scpt

on run
    tell application "Adobe InDesign CS6"
        activate
        set myDocuments to every document
        repeat with myDocument in myDocuments
            set active document to myDocument
            tell application "System Events"
                key code 44 using {command down, option down}
            end tell
        end repeat
    end tell
end run

JavaScriptrecompose

InDesignJavaScriptのオブジェクトのメソッドにはrecomposeなんてものがあるので、これを使えるんじゃないかと思ったんだけど、どうも、期待したような問題解決には使えない模様。

試してみたrecompose。これを選択したテキストフレーム、その親ストーリー等に対して実行してみたが特に何も起きなかった。

  • TextFrame.recompose ()

  • Document.recompose ()

  • Story.recompose ()

  • Table.recompose ()

  • Cell.recompose ()

Recompose issue | Adobe Community 」を読むと

It's true that recompose() often doesn't work in a script.

とか書いてあって、テキストフレームのgeometricBoundsを変更して戻すスクリプトが提示されているあたり、JavaScriptrecomposeにはあまり期待できない模様。

その他参考ページ

  1. Tips & Techniques: Force InDesign to Recompose
  2. cellのoverflowsは実行中に再評価されない - 名もないテクノ手
  3. Text disappearing - In Design CC on PC | Adobe Community