忍者ブログ

ぼんぷろぐ

InDesignとかイラレとかのスクリプトよもやま話

新しいブログに引っ越しました。

こちらのブログはもう更新しませんが、コメント欄は生きてますので疑問、ご指摘などありましたらどうぞ。

[InDesign]
スクリプトをフォルダ構造のままInDesignメニューにするスクリプト(と、細かいスクリプトいくつか)

置換クエリをメニューにするスクリプトってのを前に作ったのですが、設定が非常に面倒だし、いろいろと拙い点があって恥ずかしいので無かったことにさせていただきたいのです。
 で、その代替というか、もうちょっと汎用性を高くしたのを作りました。

 
 特定のフォルダ内にあるスクリプトをすべてメニューにするスクリプトです。サブフォルダはそのまんまサブメニューになります。
「Startup Scripts」フォルダに入れて使うのを想定してます。
例によってCS6@Win7でしか動作確認してませんが、CS3くらいから動く予感。

ダウンロード

[スクリプトフォルダをメニューに ver1.01]

(2015.7.17 1.0→1.01 同梱のテキスト置換スクリプトがグループ選択時にうまく動作しなかったのを修正)

仕様

・対象のフォルダは、デフォルトでは「Scripts Panel」フォルダ内の「menu」フォルダになってます。
変更する場合は、スクリプトの2行目にフォルダのパスを書きます。Windows式の、C:\…って形式で書く場合は\を\\に置き換えます。

var menuFolderName="C:\\Users\\mikan\\InDesignMenu";

・メニュー化されるのは拡張子js,jsx,vbsのスクリプトです。
・メニューの順番はファイルの名前順になります。
・拡張子はメニューには表示されません。
・ファイル名の先頭が半角数字+アンダーバーの場合、その部分はメニューには表示されません。

ファイル名:01_自動長体.jsx → メニュー名:自動長体

・半角数字+アンダーバーに拡張子がついただけのファイルはメニューにならずに区切り線になります。

えーとつまり
メニューの順番は勝手にファイルの名前順になってカスタマイズできないけど、ファイル名先頭の数字+アンダーバーはメニュー名に含まれないようにしたので、メニューの順番を制御したければ頭に数字をつけて、ファイル名順がそのまま目的のメニュー順になるようにうまくリネームしてくれ、ということです。そのときに区切り線を入れたい場合には10_.jsxみたいなダミーファイルを置いといてくれと。

なんか楽するつもりで作ったけど結局面倒くさくなってる気がするぞ。メニューの順番を気にしないならホントにフォルダ指定するだけなんですが。
PR

[InDesign]
テキストの属性をペーストするスクリプト

InDesignのテキストが持つ属性(プロパティ)が十数個のカテゴリに分類してあって、
選択したカテゴリの属性を、ある文字から別の文字に移植してやるためのスクリプトです。

ページアイテムの属性をコピペするスクリプト
↑こんなのをその昔に作ったんですが、そのテキストば~じょん…と言ってしまうには違いが多すぎるかも。やりたいことは大体同じなんですけどね。使い勝手がだいぶ違ってます。(たぶんこっちの方が使い勝手が悪い)

使い方

①属性を吸い上げたいテキストを選択し、普通にコピーします
②属性を適用したいテキストを選択し、テキスト属性ペースト.jsxを実行します
③ダイアログから、項目を選んでOKを押します

ダウンロード

[テキスト属性ペーストver1.0]

[InDesign]
InDesignのフレームグリッドと[段落スタイルなし]の話

InDesignの段落スタイルには、ほぼ全てのテキストの書式が定義されている
の続きです。

InDesignにおける書式設定の優先度が、オーバーライド>文字スタイル>段落スタイル っていうような順序になってるのは使ってればなんとなく分かります。
そして、段落スタイルが適用されてない(スタイルとのリンクを切断している)テキストでは、段落スタイルのかわりに[段落スタイルなし]がベースになってるというようなことを前回書いたわけですが、
そこらへん、アドビさんの解説ではどうなってますの?っていうと、ここにありました。

>複数の方法を使用して、属性が相互に矛盾する場合は、InDesign により使用する属性が選択されます。優先順位は次のとおりです。
>①文字属性のオーバーライド
>②文字スタイル
>③段落属性のオーバーライド
>④段落スタイル
>⑤CJK グリッド属性(グリッドフォーマットまたはフレームグリッド設定ダイアログボックスから)
>⑥アプリケーションデフォルト(ルートの段落スタイル)

[段落スタイルなし]は⑥のことですね。前回ちょろっと書いたようにアプリケーションデフォルトと呼ぶのは不適当だと思いますが。

あと、『段落属性のオーバーライド』と『文字スタイル』は別に競合しないのだから「①文字・段落属性のオーバーライド」とまとめちゃっていいような気がする。

今回注目したいのはこの『⑤CJK グリッド属性』です。要はグリッドフォーマットのことですが、ここにこんなものがあることはあまり知られてないんじゃなかろうか。

グリッドフォーマットは、フレームグリッドにおいて
・『配置』でテキストを配置する時、『グリッドフォーマットを適用』をONにする
・テキストを普通にペーストする
・『グリッドフォーマットを適用』コマンドを実行する
などで適用することができますが、これらはすべて優先度①のオーバーライドとして適用するもので、⑤とは関係ありません。

⑤の設定が存在してることは、フレームグリッド内のテキストで段落スタイルパネルの『スタイルとのリンクを切断』『オーバーライドを消去』を実行し、『フレームグリッド設定』から書式を様々に変更してみるとよく分かります。
グリッドフォーマットの変更に追随して、中のテキストの書体も一緒に変わってくれるのです。


このような現象は段落スタイルを設定したテキストでは起こりません。
前回の表題のとおり、段落スタイルにはすべての文字・段落属性が定義されています。したがって段落スタイルを適用したテキストでは、⑤、⑥の設定は④の段落スタイルの下に封じられて全く表に出てこないのです。
(※段落スタイルの最終的な基準が[段落スタイルなし]であることと、⑥に[段落スタイルなし]があることは全く別の話です)

そこで、書式のベースとして、段落スタイルの代わりに『カスタマイズした[段落スタイルなし]』を使うことができれば、「書体がグリッドフォーマットの変更に追随して自動的に変わってくれる」という⑤の効果を活かした組版ができるんじゃないか?という話になるわけですが…

[InDesign]
InDesignの段落スタイルには、ほぼ全てのテキストの書式が定義されている

InDesign触りはじめのころ、よく戸惑ってたのが、段落スタイルを編集しながら「あれ、これ空欄に戻すのどうやるんだっけ…」ていうやつ。

正解は「それは不可能」で、空欄を設定できるのは文字スタイルの方だけなんですよね。
『段落スタイルの編集』ダイアログの各ページを見渡してみれば分かるんですが、段落スタイルには、すべての属性に対して設定値があります。
一方文字スタイルの方は、自分で設定した箇所だけ設定値があって、ほかは空欄のまま。

そして、文字スタイルと段落スタイルが両方かかってる文字では、「文字スタイルの設定値があるとこ」は文字スタイルの設定が、それ以外は段落スタイルの設定が生きてきます(オーバーライドが無ければ)。

これらのことからなんとなく分かるのは、「段落スタイルは段落のベースとなる書式を網羅的に定義するもので、文字スタイルはその一部の文字列の一部の属性を上書きで変更するものである」ていうこと。

記事タイトルの意味するところはこれだけなんですけど、もうちょっと突っ込んで考えてみます。

プロフィール

kawamoto_α
(あるふぁ(仮))


InDesignで新聞組版のようなことをしています。

ツイッタ

※ブラウザによっては当ブログからDLしたzipファイルが拡張子なしになることがあるようですが、.zipを補って開いてください。



イラレ用トーンカーブスクリプト(¥1500)



クロソイド式角丸長方形スクリプト(¥500)
Illustrator用
InDesign用



イラレスクリプトをキーボードショートカットで実行するやつ(Win用)