忍者ブログ

ぼんぷろぐ

InDesign、イラレ、フォトショ(CS6 Win)の勉強中。。。(旧まとめいみブログ)

[InDesign]
レイアウトグリッドを選択フレームグリッドにあわせるスクリプト

久しぶりに普通に使えそうなInDesignスクリプトです。フレームグリッドを1つ選択して実行するとレイアウトグリッドがそのフレームグリッドのグリッドにピッタリ重なるようになるはず。


var page=app.layoutWindows[0].activePage;
var sel0=app.layoutWindows[0].selection[0];

page.gridData.properties=sel0.parentStory.gridData.properties;

var pb=page.bounds;
var vb=sel0.visibleBounds;
var tfp=sel0.textFramePreferences;
var we=sel0.strokeWeight;
var ma=tfp.insetSpacing;

page.marginPreferences.properties={top:0,left:0,bottom:0,right:0};//16.08.05追記

page.marginPreferences.properties={
    top:vb[0]-pb[0]+we+ma[0],
    left:page.side==1818653800?pb[3]-vb[3]+we+ma[3]:vb[1]-pb[1]+we+ma[1],
    bottom:pb[2]-vb[2]+we+ma[2],
    right:page.side==1818653800?vb[1]-pb[1]+we+ma[1]:pb[3]-vb[3]+we+ma[3],
    columnGutter:tfp.textColumnGutter,
    columnCount:tfp.textColumnCount,
    columnDirection:sel0.parentStory.storyPreferences.storyOrientation
}




気づいたこと
・page.marginPreferencesの『left』は必ずしも左じゃなく、ノド・小口でいうところのノド
・gridDataプロパティはTextFrameにもある(CS6から?)けどこいつはgridViewとかの数個のプロパティしか持っていない。本物はTextFrame.parentStory.gridData
・夏のかつおのたたきはおいしい



(2016.08.05)レイアウトグリッドをページの上の方から下の方に変更しようとすると失敗する問題を修正
PR

[イラレ]
イラレのスクリプトパネルっぽいやつに『メニューコマンドを実行する機能』などを追加した


・イラレのメニューコマンドをキーボードショートカットで実行できる機能を追加
・スクリプトを右クリックメニューから編集できるようにした

の2点を更新しました。
前のバージョンにAvastちゃんが反応する問題はアイコンを修正したらなぜか治りました。

ダウンロードはこちら




イラレのメニューコマンドをキーボードショートカットで実行できる機能を追加


と言ってもこんなのはイラレの標準機能でできるわけで、単に使えるキーが増える(無変換キー、マウスの拡張ボタンなど)という程度のものです。

また、メニューコマンドの登録には、ExtendScriptのapp.executeMenuCommandの引数で使われる、メニューに対応した文字列を調べる必要があります。手抜きLab@DTPの現場さんのところに一覧表がありますが、完全ではありません(たとえば後述の『preview』などが書かれていません)。

調べたらAiMenuCommand.txtに、
menuCommandString\パネルに表示されるメニュー名
の形で書き加えます。
デフォルトでは、私が使いたかった以下の4つが登録されています。

fitin\アートボード全体を表示
preview\プレビュー/アウトライン
ink\オーバープリントプレビュー
raster\ピクセルプレビュー

たとえば、previewのキーに『RButton & LButton』を設定すると、右ボタン押しながら左クリックのマウス操作(いわゆるロッカージェスチャ)だけでプレビュー←→アウトラインの表示切り替えができます。

※CS6以降限定です。それ以前のバージョンの方はAiMenuCommand.txtを削除してください。パネルに『メニューコマンド』フォルダが表示されなくります。



スクリプトを右クリックメニューから編集できるようにした


エクスプローラーでの右クリック→編集と同じ挙動なので、通常は.jsxはExtendScriptToolkit、.jsはメモ帳かな?
常にESTKで開きたいけどESTKの開くファイルの指定の仕方がよくわからん

[InDesign]
片手でアイス食べながら だらだらInDesignを眺めるためのAutoHotkeyスクリプト

中ボタンでいつでも手のひらツールを発展させて、片手のマウスだけでInDesignドキュメントを眺めるのに必要な一通りの機能が使えるようにしてみました。

・中ボタンドラッグで手のひらツール
・中ボタンダブルクリックでスプレッド全体を表示
・右ボタン押しながらスクロールで拡大縮小
・右ボタン押しながら左クリックで「プレビュー←→通常」の切り替え

以下AHKスクリプトのソース

IdProgId=InDesign.Application
DoubleClickDelay:=300
SetMouseDelay, -1
SetKeyDelay, -1
MButtonDownTime1:=0
Return

#IfWinActive ahk_class indesign

;中ボタン押し下げ
*MButton::
    BlockInput, on
    MButtonDownTime0:=MButtonDownTime1
    MButtonDownTime1:=A_TickCount
    If (MButtonDownTime1-MButtonDownTime0<DoubleClickDelay){
        Send ^!0
        Return
    }
    Send {Blind}{Alt Down}
    Send {Blind}{Space Down}
    Send {Blind}{LButton Down}
    BlockInput, off
Return

;中ボタン押し上げ
*MButton up::
BlockInput, on
    Send {Blind}{LButton Up}
    Send {Blind}{Space Up}
    Send {Blind}{Alt Up}
BlockInput, off
Return

;右ボタン+スクロール
RButton & WheelUp::
    Send !{WheelUp}
Return

RButton & WheelDown::
    Send !{WheelDown}
Return

;右ボタン+左ボタン
RButton & LButton::
    app:=ComObjCreate(IdProgId)
    if (app.menuActions.itemByID(118830).checked=-1)
        app.menuActions.itemByID(118829).invoke()
    Else
        app.menuActions.itemByID(118830).invoke()
Return

;右ボタンがそのまま離された
RButton::
    MouseClick ,R
Return



つかいかた


上記のスクリプトをテキストファイル(UTF-8 BOM付き)で保存して、拡張子をahkにしてAutoHotkeyで実行します。

※環境によっては
IdProgId=InDesign.Application
のところを
IdProgId=InDesign.Application.CS6_J
などと書き換えなくてはならないかもしれません



単体で動作するEXEファイル版のダウンロードはこちら

[InDesign]
マウスの中ボタンでいつでも手のひらツール

(2016.07.6)更新
※ここには「Alt+左ドラッグ」と「スペース+左ドラッグ」を選択状態によって使い分けたりするような話が書いてあったのですが、いつでも「Alt+スペース+左ドラッグ」で手のひらツールが使えることをすびさんに教えていただいたので大幅に書き換えました。

※それだけじゃ芸がないので中ダブルクリックで「Ctrl+Alt+0」(スプレッド全体を表示)を送る機能もつけてみました。


以下AHKスクリプトのソース



;中ボタンでいつでも手のひらツール ver2
IdProgId=InDesign.Application
DoubleClickDelay:=300
SetMouseDelay, -1
SetKeyDelay, -1
MButtonDownTime1:=0

#IfWinActive ahk_class indesign

;中ボタン押し下げ
*MButton::
    BlockInput, on
    MButtonDownTime0:=MButtonDownTime1
    MButtonDownTime1:=A_TickCount
    If (MButtonDownTime1-MButtonDownTime0<DoubleClickDelay){
        Send ^!0
        Return
    }
    Send {Blind}{Alt Down}
    Send {Blind}{Space Down}
    Send {Blind}{LButton Down}
    BlockInput, off
Return

;中ボタン押し上げ
*MButton up::
BlockInput, on
    Send {Blind}{LButton Up}
    Send {Blind}{Space Up}
    Send {Blind}{Alt Up}
BlockInput, off
Return


あーとはこれをテキストファイル(UTF-8 BOM付き)で保存してAutoHotkeyで実行するだけで、中ボタンがいつでも使える手のひらツールになります。べんりね~。

※環境によっては
IdProgId=InDesign.Application
のところを
IdProgId=InDesign.Application.CS6_J

プロフィール

あるふぁ(仮)
InDesignで新聞組版のようなことをしてる人です。

InDesignスクリプトについて

つくったInDesignスクリプトのまとめ

twitter

5つの「く」

ハタハタのすばらしさをまとめました。