[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:1630) [AS_Indesign CS3]num_glyph



たぶん、こういうのってちゃんとツールとしてオモテに出した方がいいんだよなあ、、、まんどい。と思いつつ。
これを出すなら、検索範囲とか選べるようにしたり、「すべてを2分数字に」とか処理を選べるようなGUIを付けないとなあ。
それよりなによりREADME書くのがめんどい^^
とにかく今はネタを寄せ集めてる感じなので、とりあえず正規表現のサンプルってことで。

(*
num_glyph
選択しているテキストの
4桁だけを4分数字に
3桁だけを3分数字に
2桁だけを2分数字に
それぞれします。
(c)2007 seuzo.jp 市川せうぞー

2007.8.8	ver.0.1	とりあえず
*)


tell application "Adobe InDesign CS3"
	
	if not (exists selection) then my my_error("テキストを選択してください", true)
	if class of selection is not in {text, text column, story, paragraph, line, word, character} then my my_error("テキストを選択してください", true)
	
	--検索状態をデフォルトに
	set find grep preferences to nothing
	set change grep preferences to nothing
	--検索オプション
	set include locked layers for find of find change grep options to false --ロックされたレイヤーを含めない
	set include locked stories for find of find change grep options to false --ロックされたストーリーを含めない
	set include hidden layers of find change grep options to false --非表示レイヤーを含めない
	set include master pages of find change grep options to false --マスターページを含めない
	set include footnotes of find change grep options to false --脚注を含めない
	--検索置換
	set find what of find grep preferences to "\\b\\d{4}\\b" --4桁の数字
	set glyph form of find grep preferences to none --標準字形のみを検索対象にする
	set glyph form of change grep preferences to quarter width form --4分字形に
	change grep selection --選択範囲のみを置換
	set find what of find grep preferences to "\\b\\d{3}\\b" --3桁の数字
	set glyph form of change grep preferences to third width form --3分字形に
	change grep selection --選択範囲のみを置換
	set find what of find grep preferences to "\\b\\d{2}\\b" --2桁の数字
	set glyph form of change grep preferences to monospaced half width form --2分字形に
	change grep selection --選択範囲のみを置換
end tell


----------------------------------●エラー処理
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 CS3"
		activate
		beep
		set ANS to button returned of (display dialog err_str buttons my_stop with icon 0) --警告ダイアログ出してストップ
		if ANS is "中止" then error number -128
	end tell
end my_error