DTPab

印刷やデザイン、アドビ製アプリやスクリプトなど、雑多な技術ブログ

InDesign

実行する回数によって処理を変えたい

同僚から、初めて実行した時と2回目に実行した時とで、スクリプトの動作を変えたいがどうすればいいか?という質問をもらいました。 せっかくなので「実行する回数によって処理を変える方法」について(もちろんInDesignのスクリプトです)説明したいと思い…

「InDesign JavaScript教室」第1期の申込受付が始まりました

cs5.xyz お〜まちさん(CS5)が以前の東京DTP勉強会で話していらっしゃった、希望者がいればInDesignを使ったJavaScript(ExtendScript)の勉強会を開催しますというお話、実現することになりました。 詳細は上記リンクより確認してください。 で、なんで僕…

InDesignの正規表現検索チートシート

【訂正 2018.9.4】一部表記を訂正しました(赤字部分)。 なんか前回も検索についての記事だったんですけど、今回もたまたま検索に関する記事です。やっぱりよく使うInDesignの正規表現検索。 で、InDesignの正規表現検索は標準機能ながら強力で使いやすいの…

JavaScriptの検索とInDesignの検索

【4/5 21:56 戻り値の表記にアドバイスをいただいたので反映させました】 【4/6 09:10 findTextメソッドとfindGrepメソッドの設定をクリアするコードを追記し、indexOfメソッドとlastIndexOfメソッドのコードのミスを修正しました】 この前のもくもく会で、J…

保存バージョン以外のInDesignで開くのを警告したい

はじめに 動作画面 コード 説明など ダウンロード はじめに 繁忙期も佳境になり、仕事に忙殺されております。 しかしだからこそ、スクリプトという享楽に打ち込んでしまうのもまた必然…。 それはさておき、できそうだなと思って取り組んでこなかったスクリプ…

InDesignの標準機能「大文字と小文字の変更」の不具合

大した内容ではないのですが、ちょっとしたInDesignの不具合を見つけました。けっこう限定的なので普段の組版へはあまり大きな影響はないと思います。結果として2つの不具合を紹介しますが、恐らく原因は同じです。 では本題です。 InDesignの書式メニューに…

スクリプトもくもく会#5を開催しました(1)

2018年最初のもくもく会でしたが、おかげさまで大盛況のうちに終わりました。ご参加のみなさま、そして会場を貸してくださったYUIDEAさま、ありがとうございました。今年もゆる〜く続けていくつもりですので、よろしくお願いします。 さて、もくもく会でいた…

InDesign CC2017(12.1)で表のヘッダーとフッターが消える

(訂正 2017.11.11 11:09)CC2017では、古いドキュメントでも再現します。 (追記 2017.11.11 15:00)対策用のイベントスクリプトを追記しました。 (追記 2017.11.11 22:20)検証バージョンを追記しました。 (追記 2017.11.13 16:00)注意とスクリプトを追…

Mac版Adobeアプリに関する注意喚起:Unicode正規化

先日、あさうすさんがWindowsへの乗り換えに関する記事をアップしていましたね。最近のWindowsはスペックが良いいのに安いという、コストパフォーマンス面ではMacは太刀打ちできません。しかもOSの管理がMacほどひどくない(ここ重要)。 それとは逆にMacに…

targetengineとそれを利用した擬似的ライブラリ

(10/24 10:15 追記) 現れた場所に関係なく、変数の宣言はコードを実行する前に処理されます。var を伴って宣言した変数のスコープは実行コンテキスト (execution context)であり、これは変数を含んでいる関数、または関数の外で宣言された変数はグローバル…

もくもく会#3まとめ

はじめに 会場について モニターを使った発表 CEPとSUI(こうちゃん) SUIで生成するフローティングウィンドウ CEPで生成するフローティングウィンドウ コールバック スクリプト作成のためのスクリプト支援(kmutoさん) Grepクエリマネージャ(自分) 補足 …

字形パネルの妙

今回はスクリプトではなくて、字形パネルの挙動が面白かったのでご報告です。 知っている方もいるかもしれませんが(そしていらっしゃったら詳細をお教え願いたい)、字形パネルの挙動が合成フォントの場合にちょっと変わった動作になるようです。 百聞は一…

二重配列によるソートでフレームを座標順に取得する

二重配列とは sortメソッド 論理演算子|| 本題 二重配列をソートする関数 ちょっと躓いたので備忘録も兼ねて残しておきます。ちょっとだけツイートした二重配列のソートについてです。 二重配列と配列に対するsortメソッドについては既に知っているよ、とい…

アイテムの存在するページの確認

あるアイテムがドキュメントの何ページ目にあるのかというのは、スクリプトを介して意外と簡単に取得できます。ただ、それが意図した結果かどうかというのは別の話です。スクリプトではよくある話ですね。 というわけで、まずは下図をご覧ください。 見開き…

parentPageのparent

ここんとこレジュメのスクリプトばっかりで遊んでないので、ちょっぴりハマったことをメモ。 ドキュメント中のテキストフレーム内の文字を選択した状態で、そのテキストフレームと同じページに新たにオブジェクトを作りたかった。 var myDoc = app.activeDoc…

もくもく会#2レジュメ 解答編5「doScriptによる実行」

元の設問はこちら。 機能1:動作するInDesignのバージョンを指定する 機能2:[黒]スウォッチだけでなく,色成分がK100のみの場合もすべてオーバープリントにする、機能3:スクリプトで修正した個数をカウントして表示 機能4:開いているすべてのドキュメント…

もくもく会#2レジュメ 解答編4「任意に実行」

元の設問はこちら。 機能1:動作するInDesignのバージョンを指定する 機能2:[黒]スウォッチだけでなく,色成分がK100のみの場合もすべてオーバープリントにする、機能3:スクリプトで修正した個数をカウントして表示 機能4:開いているすべてのドキュメント…

もくもく会#2レジュメ 解答編3「すべてのドキュメントで実行」

改めて元の設問はこちら。 機能1、機能2・3は前回・前々回の記事を参照してください。 さて、機能4です。 4.開いているすべてのドキュメントで実行する var allDocs = app.documents; for (var x=0; x

もくもく会#2レジュメ 解答編2

解説らしい解説がないので、機能2と3は抱き合わせました。 さっそく以下からどうぞ。 2.[黒]スウォッチだけでなく,色成分がK100のみの場合もすべてオーバープリントにする var myDoc = app.activeDocument; var myTxf = myDoc.textFrames; for (var i=0; i

もくもく会#2レジュメ 解答編1

先日のもくもく会#2に合わせて作ったレジュメですが、ボチボチ解答例を上げていきます。興味のある方はトライしてみてください。 というわけで、まずは機能1「動作するInDesignのバージョンを指定する」です。

表の斜線の[黒]スウォッチがオーバープリントにならない

標題の通りです。CC2017でも改善されていないバグ(だと個人的には思ってます)です。 適当に表を用意してもらい、斜線(色を[黒]にする)を引いてオーバープリントプレビューにしてみてください。もしくはPDFに書き出して出力プレビューでも可です。 デフォ…

圏点が数字に化ける

日中にツイートしてしまったのですが、バグでもなんでもなく、あるべき場所にあるものを捨てないように気をつけましょうという話でした。 仮にCS6ですが、 Win: C:\Program Files (x86)\Adobe\Adobe InDesign CS6\Required\fonts Mac(CC2014まで): /Appl…

文字に適用されている文字スタイルを一覧表示する

【2020-10-9 20:00 スクリプトを一部修正しました】 if (mySel.appliedNestedStyles[i] == null) continue; ↓ if (mySel.appliedNestedStyles[i] === undefined) continue; 【ここまで】 今回もまた正規表現スタイル絡みのネタです。 業務上、他人が作ったデ…

選択した文字の文字コードをInDesign風表記に変換する

今回は前回の続き、というか、蛇足になります。 InDesignで文字のUnicode(UTF-16)コードポイントを調べる際、情報パネルを参照するのがセオリーだと思います。でもそれを正規表現として検索置換パネルに入力したいときや、正規表現スタイルの入力時に、該…

OS間で気をつけるべき正規表現

【訂正 2018.9.4】 正規表現の書き間違いを訂正しました(赤字部分)。 今回はスクリプトからちょっと離れまして、正規表現のお話です。 僕の勤める会社では、Mac環境とWin環境の両方があり、OSを跨いで作業することもしばしばあります。そんなときに、用意…

DTPスクリプトもくもく会#2

DTPerのスクリプトもくもく会#2が、来月開催予定です。 dtpmkmk.connpass.com 今回から、ESTK(JavaScript)のメンターとして参加することになり、 また主催者であるこうちゃん黒猫まみれ(@macneko_ayu)さんより 共同管理者という役割までいただいてしまい…

Undoが効かないコマンドを実行する前に一旦確認したい

代表格が「ストーリーの再計算」、「ブックの同期」などでしょうか。 このコマンドを実行してしまうと、もう戻せません。何かあっても手遅れです。最悪はバックアップから拾い上げたりしなくちゃならなくなります。 これは余談ですが、(限定的な状況で)Mac…

リンクファイルの配置オプションを表示する

一旦InDesignに配置してしまったリンクファイルの配置オプションを変更したいが、(特にWindowsだと)再リンクする際、またファイルパスを辿って画像を指定するのが大変面倒くさいのでどうにかしてください。同僚からそんな依頼を受けて作ったスクリプトです…

inddドキュメントをユニークに識別する

タイトルまんまです。 ドキュメントをユニークに識別したいときってありますよね。 ありませんか? なければそっと閉じてくださいw はじめはUUID(GUID)とかMD5とか生成して、XMPを利用してドキュメントに埋め込もう*1と思っていたんです。 ところがどっこ…

末尾の改行を除いて段落を選択するスクリプト

何かしらアウトプットの置き場が欲しかったのですが、 ブログがかんたんでいいだろうということでブログを始めようと思います。 ってそれだけじゃアレなので、以前Twitterで紹介したスクリプトです。 詳細はDTPTransitさんのこの記事をご参照ください。 var …