Hatena::ブログ(Diary)

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

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

InDesignのTips一覧

2009-06-08

[][]変換の難しい漢字を入力する

読めない漢字って結構あります。読めないと入力できないのは「かな漢字変換」を使う人々の悲しい運命です。ってことで、InDesignで難しい漢字を入力する方法のおさらい。新入社員さん必見です^^ <でもそんな人が読んでくれているとは思えない...orz


探す

まず、その字を探さなくちゃいけません。といっても字形パネルから全文字を見ていくのでは、日が暮れます。その前に目がつぶれます。

最近の漢和辞典はUnicodeが書かれているので、辞書を引けばいいのでしょうけれど、こちらも前近代的です。

ATOKには手書き文字入力機能がありますが、ATOKが入っていないかもしれません(わたしも使っていません)。

お〜まちさんが公開されている「InDesign用 部首別字形セット」を使うのもひとつの手です。ただし、字形パレットがちょっと重くなってしまうので、常時入れておくのはおすすめしません。

最近、こんなサイトを見つけました。っていうか、知らなかったのが本当に悔やまれます。

漢字検索

ここ、すごくいいです。文字の構成要素を入力すると、即座に文字と文字コードを返してくれます。コピペできる文字ならそのままInDesignにコピペしてもよいでしょう。もしコピペできないなら、Unicode番号だけを控えておきます。


Unicode/CID番号から入力する

Unicode/CID番号が分かったとしても、InDesignでその文字を入力するにはちょっとしたテクニックが必要です。

InDesign CS2までなら、CTEさんの「CID直接入力」プラグインが利用できます。

Unicode番号から文字を入力するには、検索置換ダイアログを使います。くわしくは「異体字に置き換える方法」を参照してください。InDesign CS3からは字形の検索置換を使えば、CID番号で置換ができるようになりました。

CID番号で指定できると、Unicodeが同じ番号の異体字も使い分けることができます。しかし、この字形置換って検索側のコードポイントも調べなくてはいけないのでけっこく面倒です。ってことで今回ご紹介するのは、タグテキスト経由の入力方法です。ひな形さえ用意しておけば、あとはそのCID番号部分を書き換えるだけです。上記の「異体字に置き換える方法」の最後にちょろっと書かれていますね。これだけだとなんのことだかさっぱりわかりません^^

C. 同じ Unicode 値の異体字や、Unicode にマップされていない文字の場合

同じ Unicode 値の異体字や、Unicode にマップされていない文字に置き換える場合は、<cSpecialGlyph:[CID Code]><001a><cSpecialGlyph:> タグを使用して、CID コードを直接指定します。

1)タグテキストのひな形を用意します。

当方、Mac環境なのでヘッダが「<SJIS-MAC>」になっていますが、Winな人は「<SJIS-WIN>」にしておいてください。最初に「<ParaStyle:>」としないと読み込めないことがあります。

f:id:seuzo:20090608001332p:image

<SJIS-MAC>
<ParaStyle:><cSpecialGlyph:0000><001A><cSpecialGlyph:>

2)ひな形の「0000」の部分にコードを打ち込み、保存します。

  • CID 10670の白抜き数字のせの場合:

f:id:seuzo:20090608002640p:image


3)タグファイルを読み込みます。

挿入したい場所にカーソルを置きます。

f:id:seuzo:20090608002756p:image

「ファイル」メニューから「配置」を実行します。タグを読み込む時には常に「読み込みオプション」をオンにして、「グリッドフォーマットの適用」をオフにしてください。

f:id:seuzo:20090608002908p:image

※注意 もちろん、カーソル位置のフォントが該当CID番号の字形を持っている必要があります。もし字形がなければ、当然変換されません。


追記

(2009-06-08)1/1000gの日記さんで、ことえりの「部品の共通な漢字を検索」との関連をご指摘いただきました。ありがとうございます。

言選り、ことえり、kotoeri - 1/1000gの日記

なかとじなかとじ 2009/06/08 11:06 変なところに反応。

>最近の漢和辞典はUnicodeが書かれている

そうだったんですか。
ここ10年くらい、紙辞書はとんとごぶさたしているので
知りませんでした。

Unicodeの志はよいと思うのですが、
無茶がたたって使えないコード体系という印象です。
かといってCIDというのはあくまで「植字」なので、
全てアプリ側にしわ寄せがきてしまう。

Unicodeにレイヤーの概念を持ち込めば
もっとスッキリすると思うのですがね。
もっともっと工学系と学術系の融合が必要と感じています。

seuzoseuzo 2009/06/08 12:00 >そうだったんですか。

はい。普通にUnicode番号が振られています。漢和辞書を引くのが手間でない(慣れている)人にはいいかもしれません。

>無茶がたたって使えないコード体系という印象です。

まあ、完璧なコード体系ってないと思うんです。
Unicodeに代わるコード体系をという人もいるようですが、混乱を招くだけです。
http://www.rubyist.net/~matz/20070312.html#p02
http://blog.livedoor.jp/dankogai/archives/50783501.html

日本語を母語にするのを止めれば、すべて解決ですが^^

森卓司森卓司 2018/11/24 23:54 タグ付きテキストのエンコーディングをUTF-16LEにした場合(<UNICODE-MAC>など)は、ユーザーガイドに載ってる「特殊文字用タグ」は使えないようです。<001A>(SUBSTITUTE)もだめで、U+001Aの文字そのものを使えばうまくいきました。
https://twitter.com/mori_taksi/status/1066340316196663297?s=20

seuzoseuzo 2018/11/25 08:29 森卓司さん
twitterのスレッドに続けずに、こんなところで後ろ向きな返信を許してください。

まず、Unicode16LEで<>記法の一部が使えない問題は、ずっと前から指摘されていました(実際に何度かレポートもアプしましたが)まったくバグが直る気配ないです。この部分のコードはobsolatedなのかもしれません。というか、Adobe的には、日本語に積極的コミットするフェーズはもう終わってるということでしょう。

CIDコードで文字指定したい場合はおっしゃるように<001A>をリテラルで入れてあげる必要があります。
以下は先日使ったばかりの、カタカナの白抜き丸囲みです。ruby処理例:
#白抜きのカタカナのテーブル
kana_tbl = {
'ア'=>"<cSpecialGlyph:10705>#{26.chr}<cSpecialGlyph:>",
'イ'=>"<cSpecialGlyph:10706>#{26.chr}<cSpecialGlyph:>",
'ウ'=>"<cSpecialGlyph:10707>#{26.chr}<cSpecialGlyph:>",
'エ'=>"<cSpecialGlyph:10708>#{26.chr}<cSpecialGlyph:>",
'オ'=>"<cSpecialGlyph:10709>#{26.chr}<cSpecialGlyph:>",
'カ'=>"<cSpecialGlyph:10710>#{26.chr}<cSpecialGlyph:>",
'キ'=>"<cSpecialGlyph:10711>#{26.chr}<cSpecialGlyph:>",
'ク'=>"<cSpecialGlyph:10712>#{26.chr}<cSpecialGlyph:>",
'ケ'=>"<cSpecialGlyph:10713>#{26.chr}<cSpecialGlyph:>",
'コ'=>"<cSpecialGlyph:10714>#{26.chr}<cSpecialGlyph:>"
}


単にunicode番号で文字指定したい場合もリテラルですね。rubyの場合ですとputs "\u307b\u3052" とでも。

森卓司森卓司 2018/11/25 13:14 また遼東の豕を抱えていそいそと遼河を渡っているところを見られてしまいました。
いわゆる拡張新字体を康煕字典体に一括変換するのはInDesignに配置してからやるととても遅いので、原稿整理段階で字形タグをつけてしまったらきっと早いと思い、ごそごそ探していたらここの記事を見つけた次第でした。もともとShift_JISにコードがない文字もたくさん入っている原稿なのでUTFじゃないとだめなのです。
<cGlyphForm:>、<cAlternateGlyph:>、<cOTFeatureList:>のほうを使いますかね。
なんだかタグ付きテキスト自体が時代遅れのような気がしてきました。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証