Hatena::ブログ(Diary)

名もないテクノ手 このページをアンテナに追加 RSSフィード

EPUB版『InDesign者のための正規表現入門』

InDesignのTips一覧

2011-09-21

[][]Adobe Forumsで特定のフォーラム内を検索するブックマーク

先週の土曜日にAdobe Forumsが一時的にbusyになって、今週の月曜日にリニューアルしました。といっても外観はあまり変わっていないですね。しかしながら、スレッドをブックマークできる「Bookmark」や、資料などの「Document」、アンケートを実施できる「Poll」などが追加されました。

アンケート面白そうですね。早速ひとつ作ってみました(要ログイン)。

InDesignの次期バージョンに期待するもの *1


Adobe Forumsでぼくがもっとも使うのは検索です。スクリプトで困った時はたいてい誰かが書いています。以前「Adobe Forumsで特定のフォーラム内を検索する方法」というエントリーを上げましたけれど、リニューアルでオプションクエリが少し変わりましたので、改めてブックマーク用にメモしておきます。オプションをちこちこいじっても同じことができますが、めんどいのです。

基本的にcontainer(フォーラムID)でフォーラムを変更しています。新Adobe Forumsでは、containerを繋げても無効になります。

以下はすべて英語フォーラムです。ブックマークでは検索語は「hoge」になっています。「Date」でソートします。Allカテゴリで、日付制限はありません。numResults=100とかでもいけるんですが、あまり負荷をかけても申し訳ないのでデフォルト最大値の30としてあります。

では、新Adobe Forumsを楽しみましょう。


InDesign

http://forums.adobe.com/search.jspa?resultTypes=&dateRange=all&peopleEnabled=true&q=hoge&containerType=14&container=3359&username=&rankBy=date&numResults=30


InDesign Scripting

http://forums.adobe.com/search.jspa?resultTypes=&dateRange=all&peopleEnabled=true&q=hoge&containerType=14&container=3331&username=&rankBy=date&numResults=30


Illustrator

http://forums.adobe.com/search.jspa?resultTypes=&dateRange=all&peopleEnabled=true&q=hoge&containerType=14&container=3278&username=&rankBy=date&numResults=30


Illustrator Scripting

http://forums.adobe.com/search.jspa?resultTypes=&dateRange=all&peopleEnabled=true&q=hoge&containerType=14&container=3398&username=&rankBy=date&numResults=30


Photoshop

http://forums.adobe.com/search.jspa?resultTypes=&dateRange=all&peopleEnabled=true&q=hoge&containerType=14&container=3264&username=&rankBy=date&numResults=30


Photoshop Scripting

http://forums.adobe.com/search.jspa?resultTypes=&dateRange=all&peopleEnabled=true&q=hoge&containerType=14&container=3342&username=&rankBy=date&numResults=30


Acrobat

http://forums.adobe.com/search.jspa?resultTypes=&dateRange=all&peopleEnabled=true&q=hoge&containerType=14&container=3244&username=&rankBy=date&numResults=30


Acrobat Scripting

http://forums.adobe.com/search.jspa?resultTypes=&dateRange=all&peopleEnabled=true&q=hoge&containerType=14&container=3286&username=&rankBy=date&numResults=30


Bridge

http://forums.adobe.com/search.jspa?resultTypes=&dateRange=all&peopleEnabled=true&q=hoge&containerType=14&container=3261&username=&rankBy=date&numResults=30


Bridge Scripting

http://forums.adobe.com/search.jspa?resultTypes=&dateRange=all&peopleEnabled=true&q=hoge&containerType=14&container=3477&username=&rankBy=date&numResults=30


参照

Adobe Forumsで使われている検索エンジンの仕様です。ワイルドカード表現や検索式などについて...

Adobe Forums: Jive SBS Search Tips

*1:個人的には「バグフィックス」の1択しかなかったのだけど、もしかしたら「新機能」を優先したい人もいるかなとか、ひきこもごもな想いを込めて。

2011-07-09

[][][][]「round_num 0.5」の特別な設定例

round_num」をこっそりver.0.5にアップしてエントリーを上書きしました。ver.0.4をリリースしてから間がないですし、たいていのユーザーにとってはほとんど変わらないことでしたので。

で、だ。ver.0.5はどこが違うかっていうと、変更したグリフに特定の文字スタイルを適用できるようにしました。この機能を使うためには、ソースコードの設定をちょっと書き換える必要があります。

たとえば、下図のようなテキストがあったとします。

f:id:seuzo:20110709000129p:image

この時、「手順+数字」の時だけ数字のグリフを変更し、かつそのグリフに指定の文字スタイルを適用します。

f:id:seuzo:20110709000215p:image

具体的には、ソースコードの13行目あたりから始まる設定:

var my_regex_str = "[0-9,.]*[0-9]+"; //正規表現のデフォルト
var my_char_style_str = ""; //数字に適用する文字スタイル。空文字列ならなにも適用しない。

この部分を

var my_regex_str = "(?<=手順)[0-9]+"; //正規表現のデフォルト
var my_char_style_str = "みどり"; //数字に適用する文字スタイル。空文字列ならなにも適用しない。

のように変更します*1。使ったあとに元に戻す必要がありますので、元の設定をコピーしてコメントアウトしておくといいでしょう。

動画で見るとこんな感じです。

D

*1:この正規表現が何を表すか、よくわからない人は変更しない方がいいと思います。ここに書かれた正規表現は、InDesignの検索フィールドに入ります。ですから、InDesignの拡張正規表現に対応しています。ただし、あまり無茶な書き方をするとエラーになったりするかもしれません。ほどほどに。

2011-06-22

[][][]InDesign CS5のバックグラウンド書出しを無効にする裏技

去年、このブログで「PDF書出しはバックグラウンドで片手間にやることじゃない。忘れちゃったのかい? 」というエントリを書いたんですが、現在はもう必要なくなりました。*1

秘密の魔法は、Adobe Forums上でAdobe SystemsのMatthew Launさんによって明らかになりました。

Adobe Forums: Background PDF export Help

Mac OSでの手順:
  1. 「DisableAsyncExports.txt」という名前の空テキストファイルを作ります。
  2. アプリケーション「InDesign CS5.app」をcontrolキーを押しながらクリックし、「パッケージの内容を表示」を選びます。
  3. パッケージの中の「Contents」フォルダの中の「MacOS」フォルダに、1)で作成した「DisableAsyncExports.txt」を入れます。フルパスは「/Applications/Adobe InDesign CS5/Adobe InDesign CS5.app/Contents/MacOS/DisableAsyncExports.txt」になります。
  4. 再起動の必要はありません。

f:id:seuzo:20110622122135p:image

Windowsでの手順:
  1. 「DisableAsyncExports.txt」という名前の空テキストファイルを作ります。
  2. アプリケーション「Adobe IInDesign CS5」と同じ階層に1)で作成した「DisableAsyncExports.txt」を入れます。フルパスは「C:\Program Files\Adobe\Adobe InDesign CS5\DisableAsyncExports.txt」になります。

(どなたか画面ダンプをご提供いただければここに添付します。)


これだけ。これでバックグラウンド書出しが無効になっています。書出し系はPDFだけではなく、IDMLやJPEGなどすべてのフォーマットに適用されます。

Adobe Forums上を見ればわかるとおり、Adobeのドヤ顔機能でユーザーが結構迷惑してたんですよね。


さらに有効/無効を切り替える

バックグラウンド書出しをたまに有効にしたい人もいるかもしれません。いいことがあるとは思えませんが...

Adobe Forumsの同じスレッド内にメニュー上で有効/無効を切り替えるスクリプトをMarijan Tompaさんが提供してくださっています。

このスクリプトを「Startup Scripts」フォルダに入れておけば、「ファイル」メニュー上に「有効/無効」を切り替えできるメニューが現れます。

f:id:seuzo:20110622123801p:image

*1:もし、ぼくの書いたスクリプト「showBackGroundPanel.jsx」が「Startup Scripts」フォルダに入っているなら、手順を実行する前に削除してもかまいません。

2011-05-11

[][][][][]強制改行している段落をテキスト変数で正しく拾う

テキスト変数はCS3から実装されていて、とても便利な機能です。しかし、強制改行(Shift-Return)を含んでいると強制改行部分にスペースが入ってしまいます。

f:id:seuzo:20110511182508p:image

おそらく、欧文組版の仕様で、単語間スペースを表していると思われます。けれど、ぼくらが使ってInDesignは日本語版ですよね。これ、お困りの方も多いと思います。

これをよりスマートに解決する方法を紹介します。


1)何もしない文字スタイルを2つ作ります。ここでは「見出し1行目」「見出し2行目」としました。

f:id:seuzo:20110511182510p:image

f:id:seuzo:20110511182509p:image


2)変数を2種類(1行目と2行目)定義します。「ランニングヘッド・柱(文字スタイル)」でそれぞれ手順1で作った文字スタイルを指定します。

f:id:seuzo:20110511182512p:image

f:id:seuzo:20110511182511p:image

f:id:seuzo:20110511182513p:image


3)見出しの段落スタイルの「先頭文字スタイル」で下記のように設定してください。
文字スタイル文字数文字区切る/含む
見出し1行目1強制改行で区切る
なし1強制改行を含む
見出し2行目1文章を含む

f:id:seuzo:20110511184808p:image


4)柱のテキストフレーム内で、手順2で作成したテキスト変数「見出し1行目」「見出し2行目」をそれぞれ挿入します。

f:id:seuzo:20110511190131p:image

見出しの段落スタイルを適用するだけで、強制改行を含んでいようといまいと、自動的に柱が生成されます。


今回、「先頭文字スタイル」を使いました。では「正規表現スタイル」も有効でしょうか? いいえ、残念ですが「正規表現スタイル」は使えません。想像ですけれど、テキスト変数がCS3からで正規表現スタイルがCS4から継ぎ足されたので、計算順序も変数を見てから正規表現スタイルを後に見てるんじゃないかと推測しています。ま、邪推でしょうけど^^


注意

(追記:2011-05-13T14:15:13+0900)上記の「先頭文字スタイル」で自動的に柱を生成する場合、注意することがひとつあります。

ひとつ前の段落で、強制改行によって2行分の文字スタイルが適用されている時、ターゲット段落が1行しかないと、前の段落の「見出し2行目」がそのまま生きてしまいます。

これを回避するには、1行しかないターゲット段落の行末に半角スペースなどを入れて、そのスペースに対して文字スタイル「見出し2行目」を手動で適用します。

2011-04-22

[][][][][]InDesignのMini Bridgeのカレントパスを素早く変更する

前回のエントリ「Mini BridgeパネルのTips」の中で、Mini Bridgeのパスを変更するのがめんどいとぶーたれました。まあ、そんな時にスクリプトですよ。ってことで書いてみました。まずは動画をごらんあれ。

D

スクリプトパネルから実行すれば、Finderの最前面のウインドウをMini Bridgeのカレントパスに変更します。

Finder上でドラッグ&ドロップもできるようになっています。アプリケーション形式の「change_path4MiniBridge.app」は(スクリプトパネルからの実行もドラッグ&ドロップも)どちらもできますが、スクリプトパネルからしか実行しないって人は「change_path4MiniBridge.scpt」を使った方が速度が早いです。

ダウンロード:change_path4MiniBridge.zip 直

コードはこんな感じです。

(*
change_path4MiniBridge
(c)2011 seuzo.jp
InDesign CS5のMini Bridgeのカレントパスを変更します。

●Useage:
スクリプトパネルから実行した場合、Finderの最前面のウィンドウをMini Bridgeのカレントパスにします。
フォルダ(またはファイル)をファイルをドラッグ&ドロップすれば、それをカレントパスにします。

●History:
2011-04-22	ver0.1	とりあえず
*)


--------------------------------------------------------●ドラッグ&ドロップされた
on open of theFiles
	tell application "Finder"
		if (length of theFiles > 1) then my my_error("ドラッグ&ドロップできるのはひとつだけです", true)
		set aFile to item 1 of theFiles
		if (kind of aFile) is not ("フォルダ" as Unicode text) then
			set current_dir to (container of aFile) as alias
		else
			set current_dir to aFile as alias
		end if
		my main(current_dir)
		
	end tell
end open


--------------------------------------------------------●起動
on run
	tell application "Finder"
		set current_dir to (insertion location) as alias --最前面のウインドウ
		my main(current_dir)
	end tell
end run


--------------------------------------------------------●メイン
to main(current_dir)
	my ver() --InDesignのバージョン確認
	tell application "Adobe Bridge CS5" to activate
	my deceive_bridge() --Bridgeの「InDesignに戻る」を確実にする
	set current_dir to (POSIX path of current_dir) as Unicode text
	my dir_return2InDesign(current_dir) --Mini Bridgeのパスを変更
end main





--------------------------------------------------------●InDesignバージョン確認ルーチン
to ver()
	tell application "Adobe InDesign CS5"
		activate
		set my_version to (version of script preferences) as real
		if my_version < 7 or my_version > 7.9 then
			activate
			my my_error("このプログラムはInDesign CS5以外では動作しません", true)
		end if
		return version
	end tell
end ver


--------------------------------------------------------●仮のドキュメントを開いて画像をリンクし、リンクをBridgeで表示させる。悪い回避方法
--Bridgeのファイルメニューからアプリケーションに戻る時、app.documents[0].chooseMenuItem("ReturnToApplication");だと、InDesignかPhotoshopかを指定できない対策。
to deceive_bridge()
	--Adobe InDesign CS5:Configuration:Icon.pngが存在するのを前提にパスを得ています。
	tell application "Finder"
		set img_path to container of (path to application "Adobe InDesign CS5")
		set img_path to (file "Icon.png" of folder "Configuration" of img_path) as alias
	end tell
	
	tell application "Adobe InDesign CS5"
		set tmp_doc to make new document
		tell page 1 of tmp_doc
			set tmp_graphic to place img_path as alias --画像を配置
			reveal in Bridge (item link of item 1 of tmp_graphic) --Brigeで表示
		end tell
		close tmp_doc saving no
	end tell
end deceive_bridge

--------------------------------------------------------●Bridgeのカレントディレクトリを変更し、InDesignに返す
to dir_return2InDesign(current_dir)
	tell application "Adobe Bridge CS5"
		--activate
		set my_js to "app.documents[0].presentationPath = '" & current_dir & "';app.documents[0].chooseMenuItem('ReturnToApplication');"
		
		do javascript my_js
	end tell
end dir_return2InDesign


----------------------------------●エラー処理
on my_error(err_str, my_stop)
	set err_str to err_str as Unicode text
	if my_stop then
		set my_stop to {"中止"}
	else
		set my_stop to {"中止", "続行"}
	end if
	tell application "Adobe InDesign CS5"
		activate
		beep
		set ANS to button returned of (display dialog err_str buttons my_stop default button 1 with icon 0) --警告ダイアログ出してストップ
		if ANS is "中止" then
			set user interaction level of script preferences to interact with all --ユーザー操作の再開
			error number -128
		end if
	end tell
end my_error

Bridgeのファイルメニューからアプリケーションに戻るのをapp.documents[0].chooseMenuItem("ReturnToApplication");と書けるんですけど、InDesignPhotoshopかを指定できないんです。それで仕方なく、InDesignのダミーのドキュメントに画像をリンクしてそこからBridgeで表示しています。BridgeはInDesignから呼ばれたので、ファイルメニューは「Adobe InDesignに戻る」になってるんですね。我ながらダメな回避方法です。うまい方法をご存知の方は教えてください。


おまけのTips

Bridgeをバリバリ使っている人はご存知かもしれませんが、Bridge本体のフォルダ移動はFinderからドラッグ&ドロップでできます。

  • フォルダ(またはファイル)をBridgeアプリケーションにドラッグ&ドロップする
  • Adobe Bridgeのパスバー、またはプレビューにフォルダ(またはファイル)をドラッグ&ドロップする

リファレンスにも書いてあります。

Creative Suite 5 * ファイルおよびフォルダー内の移動