2010年6月5日土曜日

InDesignの字送りで囲み文字を作る。



モリサワMC-B2やCANONのEdianにはデフォルトで、「文字合成」(合成文字じゃない)の機能があります。
要は2つの文字を重ね合わせる機能。○囲みの文字なんかを作るのに便利。でもInDesignには文字合成はありません。

○囲みの作り方は、ディザInDesignのお~まちさんが、圏点を使うやり方を紹介されています。
ディザ InDesignブログ: 圏点を利用して囲み文字
囲み文字の作成をサポートする

ですが、この方法だとテキスト書き出しした時やスクリプトでcontentsを呼び出した時に、肝心の文字が「○」で出てしまいます。文字の意味としては、「合」の方にあるわけで……
素直に字送りで重ねる方法もあった方いいと思ったので、サンプルを書いてみました。InDesignCS3 v5.0.4、MacOSX 10.5.8にて動作確認。

「○合」を重ね合わせたいならば、「○合」と入力した場所を選択して、スクリプトを実行してください。
文字のサイズを変更したいならば、スクリプトの中を直接編集。

20100608追記:
いき♂さんのアドバイスを取り入れ、丸囲み文字の後ろに「結合なし」文字を挿入するようにしました。

4 件のコメント:

いき♂ さんのコメント...

WindowsXP sp3/InDesign CS3およびCS5にて確認しました。
正常に合字を作ってくれます。
ただ、気をつけるべきは、合字のすぐ後ろにカーソルを入れて文字を入力すると、合字の内側の文字と同じく小さな級数でトラッキングがかかった状態で文字が打ち込まれてしまう点でしょうか。
いえ、単なる粗探しですね、すみません。

kanemu1117nc さんのコメント...

いき♂さん、検証ありがとうございます。
確かにそうなります。(それは圏点で作ってもそうなります)
手作業で作ってそうならない方法があれば、スクリプトに組み込むのですが……。
なにか良い方法がありましたら教えて下さい。

いき♂ さんのコメント...

http://twitpic.com/1uoc8r
3文字目に特殊文字「結合なし」を入力しておいて、○と直後の文字に対してスクリプトを実行すれば、オペレータにとって見た目で○の直後にカーソルを入れても正常な状態で文字を入力することができます……。
ってか、その程度しか思いつかないのですが。

kanemu1117nc さんのコメント...

スクリプト修正しました。
ただ、InDesignCS3で「制御文字を表示」して見た時、制御文字が意外な場所に出る事があって戸惑うかもしれません。
制御文字の前から入力をはじめてしまうと意味がないので、スクリプトを使う人に、なにをどうやって文字を作ってるのかちゃんと理解してもらう必要があると思います。