Hatena::ブログ(Diary)

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

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

InDesignのTips一覧

2008-09-18

[][][]丸数字とユニコード

昨日の記事で、「あれ? 白抜き数字の10〜20ってUnicode表記できるんじゃね?」と思った人がいるかもしれません。

けれど、これってなぜかInDesign内ではフォント依存なんですよ。小塚明朝(ゴシック)proとかヒラギノProN、あるいはMorisawaのPr5以降ならOKなんです。けれどMorisawaのProフォント(Adobe1-4)だと、Unicodeで指定できないんですね。

と思ったら、2年も前にfontさんが勉強部屋で言及されていました。

[10354]CIDコードでの置換

http://bbs.ddc.co.jp/mt/indesignbbs/archives/10354cid_20061207175500.html

わかりやすく表にまとめると、こんな感じでしょうか。あらためて調べてみると、この飛び具合に歴史を感じます^^

f:id:seuzo:20080918220124p:image


スクリプトでCID番号で文字入力するのって、タグしかないんですかね? 誰かがこっそり作っていたりしませんか?

ファイルを介すると思うだけで超しぼむんですけど... グリフ置換って1:1だからなあ。。。

参考:

Wikipedia「丸数字」

http://ja.wikipedia.org/wiki/%E4%B8%B8%E6%95%B0%E5%AD%97

「丸数字とUnicode

http://kdp.txt-nifty.com/kdp/2008/07/unicode_2757.html

2008-09-17

[][][]InDesignタグでUnicodeにマッピングされていない文字はCIDで指定する

ちょっとご質問があって、答えたのでメモ。タグリファレンスに(なぜか書かれていないので)知らない人は割といると思う。

InDesignタグでUnicodeにマッピングされていない文字を使いたい場合は、CID番号で指定する必要がある。

書式は以下の通り。

<cSpecialGlyph:CID番号><001A><cSpecialGlyph:>

アドビのサポートデータベース(「異体字に置き換える方法 (InDesign CS)」文書番号:224814 )の最後の方に少し記述があります。

http://support.adobe.co.jp/faq/faq/qadoc.sv?224814+002+3


たとえば、具体的に図版や表のキャプションの最初の数字を白抜き数字にしたいなら

#! /usr/bin/ruby -Ks
require "jcode"
$/ = "\015"#Mac改行

num_tbl = {
'1'=>'<2776>',
'2'=>'<2777>',
'3'=>'<2778>',
'4'=>'<2779>',
'5'=>'<277A>',
'6'=>'<277B>',
'7'=>'<277C>',
'8'=>'<277D>',
'9'=>'<277E>',
'10'=>'<cSpecialGlyph:10514><001A><cSpecialGlyph:>',
'11'=>'<cSpecialGlyph:10515><001A><cSpecialGlyph:>',
'12'=>'<cSpecialGlyph:10516><001A><cSpecialGlyph:>',
'13'=>'<cSpecialGlyph:10517><001A><cSpecialGlyph:>',
'14'=>'<cSpecialGlyph:10518><001A><cSpecialGlyph:>',
'15'=>'<cSpecialGlyph:10519><001A><cSpecialGlyph:>',
'16'=>'<cSpecialGlyph:10520><001A><cSpecialGlyph:>',
'17'=>'<cSpecialGlyph:10521><001A><cSpecialGlyph:>',
'18'=>'<cSpecialGlyph:10522><001A><cSpecialGlyph:>',
'19'=>'<cSpecialGlyph:10523><001A><cSpecialGlyph:>',
'20'=>'<cSpecialGlyph:10524><001A><cSpecialGlyph:>'
}

while line = ARGF.gets
	line.sub!(/^([図表注]|リスト)([0-9][0-9]?)/) {'<ParaStyle:04_10_キャプション>' + $1 + num_tbl[$2]}
	line.sub!(/^/, "<SJIS-MAC>\r") if ($. == 1)
	print line
end