忍者ブログ

ぼんぷろぐ

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

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

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

[イラレ]
イラレのアピアランスで水平シアーを作るスクリプト

(2016.01.28) 垂直シアーに対応しました!




アピアランスの効果をスクリプトから適用する方法が解明された!(参考:IllustratorのLiveEffectメソッドがなんとかなった! - 手抜きLab@DTPの現場)ので、以前に作ったアピアランスの『変形』2つで水平シアーを作るための値を計算するツールをイラレスクリプトにしました。

使い方は、効果を適用したいアイテムを選択してスクリプトを実行→ダイアログに角度を入力するだけ。相変わらず45°以上に対応してません。

[ダウンロード]


ところで効果がスクリプトから適用できるようになった件ですが、この恩恵として、今までしょぼいUIをつっつくしかなかった『パスの自由変形』が、具体的な数値で作れるようになったんですよね。
まだじっくり試してはないのですが、シアーなんかもそっちで作ったほうが扱いやすそう。ただパスの自由変形で作ったシアーは適用するモノの縦横比によって角度が変わってくるので、これとどっちを使うかは場合によりけりです。


[追記]
イラレのアピアランスで段落に斜体をかけたい!!【Adobe illustrator】
https://note.com/raon_design/n/n27e543a7c6a4


この記事のリンクからここに来た方へ。
記事の説明では1回目(エリアテキストにする前)のシアーは「変形>シアー」で、2回目(エリアテキストにした後)のシアーはスクリプトでかけることになっていますが、2回とも「変形>シアー」を使うべきです。そうすれば変形後のテキストエリアは(見かけだけじゃなく本当に)長方形になるので、角をドラッグするだけで簡単にエリアサイズを変えられます。
スクリプトを使った場合は、見かけは長方形でも実際は平行四辺形なので、縦横比を保持せずリサイズすると角度が変わります。デメリットしかないです。

(このことはツイッタ上で著者の方には伝えたのですが記事を修正する気にはなってくれなかったようです)
PR

[InDesign]
InDesignで文字組みアキ量設定を編集するのにウンザリした人のためのスクリプト

ver1.0 →ver1.01 元にする文字組みアキ量が『なし』のとき、隠しアキ量になってしまう問題を修正
※ver1.0は『なし』を元に作った文字組みアキ量に対して使用しないでください

(2015.11.20) ver1.01→ver1.2 いちいちダイアログを閉じないで設定を更新できるようにした

(2015.11.23)『アキ量設定を新規作成して編集.jsx』を同梱しました。
テキストを選択して実行すると、適用されているアキ量設定をコピーして新たなアキ量設定を作成し、選択テキストに適用し、同じフォルダ内にある『アキ量かきかえ1_2.jsx』を実行します。

(2015.11.25) ver1.2→1.3
『更新』または『OK』ボタンを押したとき、選択テキストを含む段落には、新しいアキ量設定が即座に反映されるようにした…つもりなのですが、環境によってはならないかもしれません。
・『現在の値に加算』を使ってるとたまに9.999999999とか10.0000000001とかが発生する問題を修正。
※ver1.2から、ダイアログ内をTabキーで移動しようとしても移動できず、かわりにInDesign上にタブが入力されてしまうようです。ご注意ください



表題のとおりウンザリした人向けのスクリプトなのですが、実際にInDesignの文字組みアキ量設定ダイアログを使ってみれば、どなたでもウンザリできるのではないかと思います。

なにしろInDesignでは文字クラスが26種(行頭・行末は1種とみなす)ありまして、設定箇所はその二乗の676から[段落先頭→行末]など不要な組み合わせを引いて648箇所、それぞれに最小値、最適値、最大値、優先度があって計2592箇所。それを一個一個クリックしてキーボード叩いていかなきゃいけないわけですから(『始め括弧類』などで多少簡略化できます)。ちゃんと方針を定めて作れる人なら一晩でできる程度のものなのかもしれないですが、とても『試行錯誤しながら』は無理。やってらんない。

てなわけでもっと効率よく設定変更できるようなダイアログをスクリプトで作ってみました。例によって動作確認したのはCS6@WinだけですがCS4以上なら動くかも。コードは一部除いてバイナリ化してますのでスクリプト書く人の参考にはならんです。

使い方

プリセット以外の文字組アキ量が適用されたテキストを選択して実行すると、↓のようなダイアログが出ます。

1.設定箇所の指定

まずダイアログの左半分で前の文字クラスと後の文字クラスを指定して、アキを設定する箇所を決めます。複数選択可能なので、たとえば前の文字で3つ、後の文字で4つのチェックを入れると3×4=12箇所を一度に設定できることになります。

また、事前に定義した『文字クラスグループ』を使って、一度に複数のチェックを入れることもできます。本家アキ量設定ダイアログにある『始め括弧類』みたいなものです。

2.最小値・最適値・最大値・優先度の設定

右半分の上の段、編集不可能なテキストボックスに、現在の値が表示されます。設定が混在している場合は(混在)と表示されます。『50%(混在)』のように表示されるのは、『混在しているが、直前にチェックを入れた箇所については50%である』という意味です。
下段の編集可能なテキストボックスの方に新しい値を入力します。空欄にすると、そこは現在の値が維持されます。

3.オプション

『条件を指定』をONにすると、その下の4つのテキストボックスが入力可能になります。値を入力すると、最小値・最適値・最大値・優先度の現在の値が条件に一致する所だけ、設定を変更するようになります。空欄は無視されます。

『現在の値に加算』にONにすると、現在の値に入力した値を加えたもの新しい値とします。

『設定後に全ストーリーの再計算を実行』ONにすると、設定後に『全ストーリーの再計算』(Ctrl+Alt+/)コマンドを実行します。これをやらないと新しい設定は既存のテキストに反映されません。

[InDesign]
InDesignの「隠しアキ量」をスクリプトでどうこうする話の続き

スクリプトから文字組みアキ量を設定するとき、A,Bを文字クラスを表す数として、
[A,B,true,…]

[B,A,false,…]

いずれも同じ『Aに属する文字の後に、Bに属する文字がきたときの間のアキ』を定義する配列である。

このうち一方が文字組みアキ量設定ダイアログに反映される『表のアキ量』、もう一方が『隠しアキ量』になる。

どっちがどっちなのかは設定箇所によりまちまち。

という不思議仕様について、ツメるときとアケるときがあるから設定が2つあるのかなぁなどと適当なことを言ってたのが前回なわけですが。

もっと単純な話ですね。

[A,B,true,…] は、前の文字の『文字後のアキ量』
[B,A,false,…] は、後の文字の『文字前のアキ量』

考えてみれば、InDesignの文字間のアキは、間にテキストカーソルを置いてみれば、前後の文字のどちらに属するアキなのかを決めることができます。
たとえば約物全角系の文字組みにおいて、閉じ括弧の後に平仮名がくるときの半角アキは、閉じ括弧の方に属しています。

もし仮に『文字組みアキ量設定によるアキはすべて前の文字に属する』と決まっていたとしたら、平仮名の後に前括弧がくるときの間のカーソル位置はここになるはず。


そうならないのは『文字組みアキ量設定』が、ひそかに『前の文字に属するアキ』と『後の文字に属するアキ』を使い分けているということです。
そして使われなかった方が『隠しアキ量』になる…。


そう考えれば、works014さんのおっしゃっている、

>「隠されたアキ量の問題」として報告したInDesignの「文字組みアキ量設定」のバグ回避方法が見つかりました…問題となる約物類の後続文字の「文字前のアキ量」を「ベタ」に固定すれば設定通りに処理されるようです…
InDesignの隠されたアキ量 - Togetterまとめ

このことも説明がつきます。句読点や閉じ括弧の後の『表のアキ量』は前の文字に属するものなので、後続文字の「文字前のアキ量」を「ベタ」にすれば『隠しアキ量』だけを無効化できると。

[InDesign]
InDesignの「隠された文字組みアキ量」をスクリプトでどうにかする

えーっとまずInDesignの文字組みアキ量設定には『隠された設定値』が存在してることが、『なんでやねんDTP』のworks014さんらの検証により明らかになってます。

InDesignの隠されたアキ量 - Togetterまとめ
http://togetter.com/li/676197


アキをツメるんじゃなくアケる方向で調整するとき、句読点や閉じカッコの後のアキが、文字組みアキ量設定ダイアログで最大値50%とかにしていても、最大値100%として調整されている…らしい(あってる?)。
追記:やっぱり間違ってた。100%を足して150%として調整されるらしい。
追記2:というのも厳密には間違いで、50%として調整した後、もっとも優先度の低い『優先度:なし』の段階でさらに100%を調整するってことか。



一方、文字組みアキ量設定をスクリプトから制御しようという話に関して、先人の知恵はこちらにまとめられてる通り。

文字組みアキ量設定、まとめ? - 名もないテクノ手
http://d.hatena.ne.jp/seuzo/20090730/1248890024


これによるとスクリプトからアキ量を設定する時に使う配列は
[文字クラス番号①, 文字クラス番号②, ②は後の文字か否か, 最小値, 最適値, 最大値, 優先度…]
という形式になっており、
たとえば句点(6)の後に平仮名(11)がくるときの間のアキを設定する配列は
[6,11,true,…]

[11,6,false,…]

2通りがあることになる。
そしてそれらはどっちを使ってもいいわけではなく、ちゃんと文字組みアキ量設定ダイアログに反映されるのは一方だけである…らしい。

プロフィール

kawamoto_α
(あるふぁ(仮))


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

ツイッタ

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



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



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



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