忍者ブログ

ぼんぷろぐ

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

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

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

[InDesign]
フォントファミリーに係るルビの文字化けについて

(2022/12/30追記)
例の沼関係で来られた方はこちらツイートのスレッドもご覧ください。




InDesignでダイナフォントDF平成明朝体W9の文字にルビを振ると…文字化けするという話を、このブログで2015年に書いてたんですけど、その後の経過というか考察というかがツイッターに書き捨てただけになってたのでこの際まとめておきます。

結論としてはアドビが悪いので、DF平成明朝体が悪いともとられかねないような記事を放置していてダイナフォントさんごめんなさい。
PR

[InDesign]
左端からの距離に比例した移動量で右に動かすスクリプト



タイトル通りのやつです。
アウトライン化済みの文字の字間を変えたいときなどに役立つかもしれません。
ただし、アウトライン化された文字が、1文字ごとにグループもしくは複合パスで1アイテムになっている必要があります。
ばらけてる場合はこーんなかんじで伸びてしまいます。


また、アウトライン化前の文字でトラッキングを使って字間をあけたものとぴったり同じにはなりません。これは仮想ボディの情報が無くなっているから仕方ないです。

使い方


①2つ以上のアイテム、もしくは2つ以上のアイテムがグループ化された1つのグループを選択してスクリプトを実行します。

②スライダーを動かすと選択アイテムが選択範囲の左端からの距離に比例した移動量で動きます。移動量100で左端からの距離が2倍に、-100で0倍になります。選択範囲全体の横幅や、一番右のアイテムの右端の座標を指定することもできます。

③OKボタンを押します。

ダウンロード

[ver1.0 - 2018/11/09]

[InDesign]
特定のマスターページアイテムがオーバーライドされてるページを見つけるスクリプト

マスターページ上でアイテムを一つ選択して実行すると、そのアイテムがオーバーライドされているページを探して、見つかったページの番号のボタンが並んだパレットを作ります。ボタンを押すとそのページに飛ぶというしくみです。



※マスターのマスターまでは考慮してません。つまりAマスターを元にBマスターを作り、Bマスターを元にページを作ってAマスター上のアイテムをオーバーライドした場合、これを見つけることはできません。(実装が困難なわけではなく、単なる手抜きです)

[InDesign]
複数段落選択中は各段落の先頭にタブを挿入するようにするスクリプト

前回に続いてメニューアクションにイベントリスナーをつける例をもう一つ。

InDesignではタブの入力は通常の文字入力と異なり、『タブを挿入』のメニューコマンドをタブキーに割り当てられたキーボードショートカットで実行するという形になっています。そこにイベントリスナーで処理を割り込ませ、特定の状況下で挙動を変えてやろうという試みです。具体的には複数段落にわたるテキストを選択している場合、各段落の先頭にタブが挿入されるようにします。さらにデフォルトでShift+Tabに割り当てられている『右インデントタブを挿入』では、各段落の先頭のタブを消去するようにしてみます。

使い方は前回と同様、以下のコードを拡張子jsxで保存してStartup Scriptsフォルダに入れるだけ。
"beforeInvoke"でメニューアクションの実行前に割り込み、条件に当てはまる場合はpreventDefaultで通常のタブ挿入をキャンセルしています。

#targetengine "CopipeCheck"
function addEL(obj, eventName, handler, name) {
    var el0 = obj.eventListeners.item(name);
    if (el0.isValid) el0.remove();
    obj.addEventListener(eventName, handler).name = name;
}

addEL(app.menuActions.itemByID(119698), "beforeInvoke", function (ev){
    var sel0=app.selection[0];
    if (sel0 && sel0.hasOwnProperty("paragraphs") && sel0.paragraphs.length>1){
        ev.preventDefault();
        app.doScript(function(){
            var paras=sel0.paragraphs.everyItem().getElements();
            for (var i=paras.length-1;i>=0;i--) paras[i].insertionPoints[0].contents="\t";
        },ScriptLanguage.JAVASCRIPT,[],UndoModes.ENTIRE_SCRIPT);
    }
}, "Tab1");

addEL(app.menuActions.itemByID(119673), "beforeInvoke", function (ev){
    var sel0=app.selection[0];
    if (sel0 && sel0.hasOwnProperty("paragraphs") && sel0.paragraphs.length>1){
        ev.preventDefault();
        app.doScript(function(){
            var paras=sel0.paragraphs.everyItem().getElements();
            for (var i=paras.length-1;i>=0;i--) {
                var c0=paras[i].characters[0];
                if (c0.contents=="\t") c0.contents="";
            }
        },ScriptLanguage.JAVASCRIPT,[],UndoModes.ENTIRE_SCRIPT);
    }
}, "ShiftTab1");

プロフィール

kawamoto_α
(あるふぁ(仮))


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

ツイッタ

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



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



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



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