mi.appとInDesignの文字種変換

mi.appがもっている文字種変換機能は以下の通りで充実しています。

  • 半角カナ→全角カナ
  • 全角カナ→半角カナ
  • 半角英数(A-z,0-9)→全角英数(A-z,0-9)
  • 全角英数(A-z,0-9)→半角英数(A-z,0-9)
  • 半角英数記号(A-z,0-9,!,…)→全角英数記号(A-z,0-9,!,…)
  • 全角英数記号(A-z,0-9,!,…)→半角英数記号(A-z,0-9,!,…)
  • 半角スペース→全角スペース
  • 全角スペース→半角スペース
  • 全角カナ→全角かな
  • 全角かな→全角カナ
  • 半数→全数
  • 全数→半数

(この変換テーブルは,‘~/Library/Application Support/mi3/Transliterate/’にあって,多分内容を編集しても動作はすると思います)
この中の全角英数字記号変換の変換対象となっているキャラクタは,以下のようになっています(全角だけ表記します)。

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”#$%&’()*+,−./:;<=>?@[\]^_`{|}〜¥

mi.appの文字種変換機能の中にもアルファベットだけあるいは数字だけというものがなく,英数で括られてしまっています。
アルファベットと数字を一括で変換してしまうというのも,状況によっては不便となります。
パーレン類も別個に対処したいものです。

□追記

mi.appでは「半数→全数」、「全数→半数」という数字だけの変換フィルタはありません。私の誤りです。訂正致します(2014.03)

■InDesignで数字とアルファベットを別途で全半変換してみる
そんなこともあって,ReplaceString<http://wp.me/p1Cs3W-1R>を書いて変換辞書ファイルもそれなりにバンドルしたのですが,InDesign上で全角あるいは半角のアルファベットだけ,数字だけの変換をやりたくなってきました。前処理としてmi.appやTextWrangler.appで処理をしておければ良いのですが,貼り込んだ後からの編集段階で切ったはったをやっている時にはInDesign上で処理が必要となるケースが多いのです。

1

InDesignの文字種変換機能を使って,以下の全角文字列を全角英数字から半角英数字へ変換した場合,

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”#$%&’*+,−./:;?@^_`¥<=>(〜)[\]{|}「」『』【】〈〉〔〕

が,こうなります。

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!”#$%&’*+,−./:;?@^_`¥(〜)[\]{|}「」『』【】〈〉〔〕

何故かパーレン類は対象としないで,その他は見事に半角です。この他では,スペースも対象外です。
これでわかることは,スペースとパーレンは別途に対処しないといけないということと,また,数字のみとかアルファベットのみという機能が無い点が不便だということがわかります。

そこで,AppleScriptで全角数字から半角数字への変換処理を書いてみると次のようになります。

tell application "Adobe InDesign CC"
	activate
	set SelectedStrngs to the selection
	if SelectedStrngs is not {} then
		set {find text preferences, change text preferences, find grep preferences, change grep preferences} to {nothing, nothing, nothing, nothing}
		set width sensitive of find change grep option 1 to true
		set find what of find grep preference 1 to "[0-9]+"
		set FoundChar to find grep SelectedStrngs
		set find character type of find transliterate preference 1 to full width roman symbols
		set change character type of change transliterate preference 1 to half width roman symbols
		repeat with i in FoundChar
			change transliterate i
		end repeat
		display notification "終わりました。" with title "完了"
	else
		display notification "文字列を選択してから実行しましょう。" with title "注意!"
	end if
end tell

これは「->半角数字」の場合ですが,アルファベットを対象にするには”[0-9]+”の部分を”[A-z]”とすればいいでしょう。また,全半を逆にするには,‘find character type’と‘change character type’のwidthを逆にして,検索対象も逆に書き換えればOKです。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中