JAGAT Japan Association of Graphic arts Technology


本記事は、アーカイブに保存されている過去の記事です。最新の情報は、公益社団法人日本印刷技術協会(JAGAT)サイトをご確認ください。

電子書籍時代のユニコード入門

掲載日: 2014年04月15日

有限会社スコレックス
取締役 小林 龍生 氏

文字コード/ユニコードとは何か

電子書籍に関連して、HTMLやEPUB、CSSの話題となるが、結局は文字を並べるのにどうすればいいかということになる。その並べるための文字を電子的にどう表現するかが文字コードの世界で、要するに、文字に番号でも名前でもいいが、何か区別できるように付けて、コンピュータなので最終的にはビット列で文字を表現できるようにすればいい。

ところが、その番号や名前を付ける文字は何かというと、途端に意見が分かれる。それは、何と何を同じにし、何を区別するか、同じ文字と見るか、違う文字と見るかが、文化や用途によって全く違うからである。

Unicodeとは、世界中の文字を1つの統一的な規則で名前を付けようというものである。特に漢字は、日本、中国、台湾、韓国の他、ベトナム、シンガポール、香港などでも使っているが、大きく言えば中国圏である。
その漢字については、基本的には同じ文字と思われるものは一緒にしようとし、統合規則(Unification Rule)によって、日本や東アジアの漢字圏で漢字の名前を共有するやり方で、7万文字くらい入っている。

Unicodeはもともと16ビットでやろうとしたが、それだとせいぜい65,000くらい入る。漢字だけでは7万文字入っていて足りないので、UTF-16(サロゲートペア)が必要になり、16ビットを2つ使用し文字の名前の領域を広げたので、現在100万文字くらい使い分けが可能になっている。

もう1つUnificationの問題は、例えばVista問題で言うと、JIS 0213という2000年にできた規格が2004年に改正されたとき、その規格表に載っている字の形(例示字形)が一部変わった。

例えば「辻」が1点しんにょうから2点しんにょうになったり、葛飾の「葛」が、下が「ヒ」になっていたのを「メ」に直したりしている。
葛飾区は「メ」だが、JISの改正の前に平成の大合併で奈良県葛城市ができて、どうせならパソコンで出る字にすることになり、わざわざ「ヒ」にしてしまった。ところが、葛城市ができた途端にJISが改正され、出なくなってしまい文句を言っていた。

そんなことで、1つの符号域で複数の字の形が一緒にされてしまう、それを区別したいという要求がいろいろなところにある。人名や、先ほどの葛城市など技術的に応えるためにIVS(Ideographic Variation Sequence)というメカニズムを使うことにした。

ところが、こういう区別は、文化や使用目的によって何と何を区別したいかという粒度が違う。そこで1つの統一的な約束で区別するのはどうも不便だし実情に合わないので、分けたいものについて、別の名前を付ける。それを登録しておいて、名前を付けた部分について、同じ名前が別な意味で使われては困るので、それが起こらないために、SequenceをUnicode Consortiumに登録しておいて、別なコミュニティが同じSequenceを別な意味で使わないようにという約束をした。これがIVDである。(図1)(図2)


 
 
▲図1

 
▲図2

 

字体・字形・デザイン差

今まで私は文字をわりと曖昧に言っていたが、実は文字の中にもいろいろな捉え方がある。例えば文字はある意味を持っている。ある音、読みを持っている。そして形を持っている。そういう、音、義、形という、三次元モデルという形で文字のことを議論する人がいる。それは多分、正しいと思う。

符号化文字集合という国際的な標準策定の世界では、2つのグループが文字に関わる仕事をやっている。1つはISO/IEC JTC1。JTC1というのはJoint Technical Committeeの1という意味である。それのSC2、Sub Committee 2というのが符号化文字集合、Coded Character Set for Information Interchangeを担当してやっている。
もう1つ、SC34というグループがある。そこはフォントや文字の形、そこの部分を片手間にやっている。SC34の本来の仕事は別にある。それから、フォントがSC34かと思っていたらSC29という、MPEGなどをやっているグループにオープンタイプの規格が持って行かれたという話があるが、いずれにしても、そういう標準化の世界の中では今言ったCoded Characterとグリフを分けて考えている。

グリフは抽象的な文字の形である。1つまたは複数のグリフに対して1つのビット列、名前を対応付けるのが、符号化文字集合という規格、Coded Character Setである。

よく誤解するのは、グリフというのを非常に具体的な文字の形だと思ってしまう人がいる。規格の世界やフォントの世界では、グリフに対してグリフイメージという言葉を使っている。具体的な文字の形である。
ここが肝だが、1つのグリフの中には、あるグリフイメージのばらつきを1つにまとめることをやっているので、2段階のまとめがある。非常にたくさんあるグリフイメージ、例えば「あ」という字を100回書いたら、全部少しずつ違うだろう。それは少しずつ違うグリフイメージだが、それが100個ある。しかし、それに対して「あ」という1つの抽象的なグリフを想定する。さらに、1つまたは複数のグリフに対して1つの符号を付けて情報を管理する構造になっている。

今も字体差、字形差、デザイン差ということを言っているが、基本的なキャラクターがあって、グリフとがあって、グリフイメージがある。そういうデザイン差、1つのグリフの中でもグリフイメージの差というふうに考えるとわかりやすいと思う。(図3)

 
 
▲図3

 

漢字コード・国語施策の歴史/国語政策とJIS漢字コードの変遷

漢字コードの歴史だが、0208は78年に作られて83年に改定されたものである。もう四半世紀以上前だが、なぜかまだ新JISと言っている。
83年にいろいろ変更があり、78JISと83JISというので、同じキャラクターの中でのグリフチェンジがいろいろ行われて、それがずっと尾を引いていた。これはそれ以降あまり変わっていない。その後0212ができたが、これはあまり使われていないので、忘れていい。そして93年にUnicodeが出ている。

それから、JIS 0213が、日本の漢字規格の中では一番新しくて一番大きいものである。これは2000年に最初の版ができて、2004年に1回改正されている。その2004年の改正は、表外漢字字体表に合わせた改正である。そして2010年、常用漢字が改定されたので、それに合わせた改正をやる。この前審議会を通ったので、まもなく発効されると思う。

もう1つ、特に出版するときに押さえておきたいのは、今のは工業標準の話だが、国語施策というものがある。1921年に国語調査会が常用漢字表・仮名遣改定案・字体整理案を出している。戦前である。ところが、政治的なことや戦争による混乱などでそれはうまくいかなかった。

戦後、1946年に当用漢字が出て、81年に常用漢字が出た。それ以降、20年くらい間があいて、2000年に表外漢字字体表が出ているが、これが出版業界の中では重要である。

当用漢字、常用漢字がやろうとしたのは、よく使う漢字については手書きで使われるグリフと明朝体活字のグリフをできるだけ合わせることであった。ところが、その過程、特に常用漢字が出た1981年と、先ほど言ったJISの改正の1983年は、時期的に非常に近い。その83年の改正と常用漢字との間に違いが出てしまい、それがずっと尾を引いて、いわゆる新JIS、旧JIS問題で2000年くらいまで来た。

2000年の表外漢字字体表では、常用漢字以外の漢字についても、標準的な印刷字体、つまりグリフの考え方を決めた。即ち、常用漢字以外は、いわゆる明治以来の伝統的な康煕字典体、必ずしも康煕字典に載っている字体ではないものもあるが、いわゆる康煕字典体として印刷業界で使われていたものを使おうということである。
常用漢字以外は、旧字体を使おうということを、国の施策として出したのである。それを受けて、我々は2004年にJIS 0213の改正をした。

2000年に表外漢字字体表を出して国語審議会はお取りつぶしになってしまい、文化審議会国語分科会に格下げになっている。それでまだいろいろ活動していて、2010年に改定常用漢字表が出た。それぞれの動きのところで、出版界でどういう字形を印刷用に使うかという、そのあたりの判断が出てくることになると思う。

1998年に、財団法人日本文芸家協会が主催で、「漢字を救え!文字コード問題を考えるシンポジウム」が開催された。2011年には全部2000年段階のJIS 0213でできるようになっている。

大体、こういう話題になる字、トウ小平の「トウ」や、深センの「セン」、内田百ケンの「ケン」の使い分け、森鴎外の「オウ」の使い分け、このあたりはみんな、今ではもうできるようになっている。

外字問題が解決しないと電子出版はうまくいかないと言われる。まだ0208の、83JISをShift-JISでエンコーディングして携帯電話などで使っている人がいるが、それはもうそろそろやめてほしい。できたらUnicodeベースで、符号化のやり方はUnicodeで、キャラクターの範囲は0213という形でほぼ大丈夫である。

ただ、それでも外字とか異体字は決してなくなることはない。外字で言えば0213に入っていないので、こんな字がある。これで「エダナシ」と読む。木のこの部分がない。

こんな形の字があって、実際にこれを苗字として使っている人たちが日本にはいる。そういう人たちについても、例えばそれを名簿で使ったり、剣豪小説の苗字に「エダナシ三郎」という人がいれば、それは使えなければならない。符号化されていれば、それを使えばいいが、符号化されていないものは、何らかで出してこの外字を使わなければならない。

もう1つは異体字である。1点しんにょう、2点しんにょうの区別や、葛城市と葛飾区、グリフとしては違うけれども文字符号としては統合されてしまうもの。そういうものの使い分けを何とかしなければならない。技術的にはIVSという仕組みを使えば何とかなる。
(図4)(図5)(図6)(図7)

 
 
▲図4

 
▲図5
 
▲図6
 
▲図7

文字の拡張と今後

異体字の考え方にはいろいろな考え方があって、用途や文化によっても違う。それを符号化文字集合の規格の観点からまとめた話をして終わりにしたい。(図8)上は「檜」山さんと「桧」山さんである。(図8)真ん中は「鰺」という字である。「鯵」と、形が違う。旧字と新字である。0208では別の符号位置に入っている。「鰺」については、78年と83年で符号位置を入れ替えている。こんなことをするから、混乱する。
これについては、符号化文字集合の問題ではない。どちらの符号を取るかなので、それは皆さんで考えればいい。
それから、JIS 0208を使ってきたときに、78JISのフォントと83JISのフォントで字形が変わってしまう問題があるので、気をつけたほうがいいだろう。

それから、冨田さんも、普通の「富」という字は図7の左だが、ワカンムリのほうは別符号が付いている。別符号が付いたものについては、78JISと83JISで入れ替わったものにだけ、気をつけていればOKだろう。
葛城市と葛飾区の話とか、辻の話は先ほどしたが、これは2000年と2004年の0213で字形変更、例示字形の変更と言っているが、明らかにグリフを変更している。それについては技術的にはIVS/IVDというやり方で解決がつくが、実装がまだ進んでいないので、「IVS/IVDが使えるのか使えないのか」を、出版社の人であれば印刷会社とかプロダクションの人に、ハードウェアの変換をする人のところに聞くといい。大体「使えない」と答えると思うが、聞くだけ聞いてみてもらいたい。

あと、ここは気をつけたほうがいいのは、JISには包摂基準という、複数のグリフを1つの符号域に統合するための規則がある。それに対してUnicodeやISO 10646というユニバーサルコーデドセットという国際規格ではUnification Ruleというルールを持って複数のグリフを統合する仕組みを取っているが、その包摂基準とUnification Ruleの間でずれがある。

ここを気をつけないと、Unicodeで使い分けていた字が、JISに持っていった途端にどこかに行ってしまう話がある。例を挙げると、高田さんの「高」、いわゆる口高、梯子高というものだが、梯子高はUnicodeには最初から入っている。

なぜかというと、台湾が2つを分けているからである。Source Code Separation Ruleという、最初のUnicode、10646を作ったときに1回だけ適用するという決めごとで、それを入れてしまった。

ところがJISには明確に、口高と梯子高は包摂すると書いてある。したがって、JIS的に言えばこれは同じ符号域で、例えばバリエーションセレクターのようなメカニズムで使い分けてもいいが、実際にUnicodeでエンコーディングされた多くのフォントは別符号域を持っている。これは気をつけたほうがいい。Source Code Separationを中心としてUnicodeで別符号域が付けられているもの。

それから、この拡張Bというのが厄介である。図8は吉田茂の「ヨシ」だが、笑い話があって、吉田さんは署名などに最初「ツチヨシ」を使っていた。ところが、ちょうど当用漢字が出た頃で、役人に「首相、ヨシの字はこちらの字にしてください」と言われて、「ああ、そうか」ということで、それ以降、下が短い「侍ヨシ」にしたという。吉田茂ほどの人でも、その程度である。

私の考えでは、こういうものは明らかにUnicodeでも統合すべきだと思う。ところが、拡張Bを作ったときに、私の目が届かないところで、これが符号化されてしまった。後で気が付いたが、どうしようもなかった。今ではこれもフォントに入れて使えるようにしているものが結構あるので、使われても仕方がない。
それから、「靖」の下が円になっているもの。これはカナダ文字、互換漢字である。カナダ文字について知りたい人は、私が書いた本を読んでもらいたい。「ユニコード戦記」というものに書いている。

これは日本のIBMなどのパソコンには結構入っていて、Windowsでも、JIS0208には入っていないが機械に付いている外字のような扱いで入っているものがあるが、その一部というか、その中で包摂されたもの、ユニファイされたものが互換漢字という、CJK Compatibility Ideographsに入っている。

ユニコードでは、それを使うことができる。ただし、特にこの互換漢字について気をつけなければならないのは、ユニコードがノーマライゼーションプロセスというテクニカルレポートを作っていて、ノーマライゼーションの過程で幾つかのレベルがあるが、互換文字は統合漢字に寄せるというルールになっている。
ノーマライゼーションするかしないかは、例えばインターネットを通してWebの記事などを送ったりするときに、どこかでノーマライゼーションされても文句を言えない。さらに厄介なのは、されたかされないかわからない場合がある。

したがって、互換漢字領域の字を使うとき、それをオープンな環境の中で使うときは気をつけたほうがいい。オープンな環境で、使い分けがクリティカルな状況の中でそういう文字を使うと危険である。

この点で気をつけなければならないことは、限られている。あるものは大体OK、ないものは外字でやるというやり方で、ないものはほとんどないので、心配することはないだろう。
図9の「丈」という字のこの部分を、我々は筆押さえと言っているが、これはどう考えてもデザイン差だと思う。しかし、Adobeが作っているAJ1-6というグリフセットでは分けている。

入った理由は、JIS0213の2000年から2004年に変えたときに、筆押さえを全部表外漢字字体表の字形に合わせたので、形が変わっているので過剰反応してAdobeが分けてグリフを入れたのだと思う。このあたりをどうするか。
また、「龍」という字も、AJ1-6には3つのグリフが登録されている。これが標準的なものだとすると、1画目が横になっているものと、下が三本線ではなくてカタカナのテのようになっているものと、3つ入っている。

これは、名刺でこの字を好む人も結構いる。手書きの筆勢や、凧にもよく「龍」と書くが、そのときはほとんどこの字である。それに対して、この違いは何かというと、これは康煕字典に載っている形である。縦と横は、ある考え方では1つのグリフの中でのデザイン差とも考えられるが、縦のほうは下品だと言う出版関係者がいる。こちらのほうが上品だと言うが、この使い分けは好みの問題である。

そういうデザイン差に対するこだわりが、一部の出版関係者にある。そのあたりのことは、印刷の方はどうしても受発注の関係があるので、むげに断れないと思う。そういうときは仕方がないと思ってやってもらいたい。

この場合はAdobeのAJ1-6というグリフセットに入っていて、バリエーションセレクターも登録されているので、使い分けはできる。しかし、全部ができるわけではないし、別のところで好みの問題としか思えないデザイン差を「これにしろ」と言われる場合もあるかもしれない。それについては規格との整合性をうまく保持した形で対応できるようなことを考えていくのがいいと思う。
(図8)(図9)(図10)(図11)(図12)

2011年11月28日TG研究会「EPUB3策定の経緯と電子書籍の今後」より(文責編集)

(C) Japan Association of Graphic Arts Technology