平日に買い、休日に読む? 

アマゾンの電子書店:キンドル・ダイレクト・パブリッシング(KDP)には、KDPセレクトという設定ができます。

KDPセレクトに設定すると、1冊販売する毎のロイヤリティが高くなります。それだけではなく、さらにプライム会員向けのKindle オーナー ライブラリー(KOL)に登録されます。KOLは、月に1冊本に限り自由に読むことができる本の一つになります。

KDP出版社向けのレポートには、販売部数と読んだページ数が表示されます。

1月16日に発売した『PDFインフラストラクチャ解説』ですが、発売にあたり、KDPセレクトに設定しました。

アマゾンでKDP実績レポートを見ますと、次のようになっています。

2016-01-26

先週中に、13冊販売しました。それとは別に、KOLで190頁強読んでいただきました。

面白いのは、KOLの読書が1月24日日曜日に一番多くなっています。購入いただいた方と、お読みいただいた方は同一人ではないのでしょうが集団としては、平日に購入し、休日に読む、と言えそうです。

『PDFインフラストラクチャ解説』POD版とKDP版が揃い踏みとなりました

『PDFインフラストラクチャ解説』ですが、1月21日にPOD版が発売となり、紙(POD)版+電子(KDP)版が揃いました。

amazon-20160121

アマゾン 
POD版の紹介ページ
KDP版の紹介ページ

POD版は1月6日にストアに納品されていますので、発売まで2週間かかっています。どうやら新年営業開始直後で本が溜まっていたために遅れたようです。

KDP版は1月14日に登録したところ、15日に「お客様が提出されたKDPコンテンツを調査させていただいたところ、ウェブ上で無料公開されているコンテンツが含まれていることが判明しました。(略)」の連絡が来ました。どうやら、無料配布版(未完成版)が引っかかったようです。そこで、無料配布版を削除して、再登録し1月16日発売となりました。

このあたりのスピード感は、自動化度の度合ではないかと想像します。本をPODで作るのは完全な自動になっていない(できない)?

■PDF関連情報
流通によるプリントオンデマンドでの出版が現実のものとなった今、その活用の課題を考える。(2017年1月時点)

解像度とは (草稿)

最終版はこちらに公開されています:解像度とは

デジタル画像は明るさや色の情報を持った画素(ピクセルまたはドット)単位で表現する。解像度は画像をどの位まで詳細に表現できるかを表す用語であるが、いろいろな使い方がある。例えば、スキャナーやプリンターのように、アナログの紙を対象として画像を入出力する機器ではドット密度を解像度という。それに対して、デジタルカメラ、ディスプレイ、デジタル画像ファイルでは、縦×横のピクセル数を解像度という。

アナログ機器の解像度と分解能
望遠鏡では遠くの物体をどの程度まで分解して鮮明に見れるか、という意味で解像度を使い、分解能ともいう。光学式望遠鏡の解像度はレンズの口径に比例する。顕微鏡や銀塩(アナログ)カメラでも、接近した二つの点をどの程度まで区別できるかを分解能または解像度という。

スキャナーやプリンターの解像度
スキャナーやプリンターはインチ当たりの画素数(dpi、ドット・パー・インチ)で解像度を表すのが一般である。スキャナーではdpiが大きいほど詳細に読み取ることができ、プリンターではdpiが大きいほど印字精度が高くなる。スキャナーやプリンターは紙という寸法をもつアナログ媒体を対象にしているため、解像度を望遠鏡や顕微鏡と同じような意味合いで使うのだろう。

デジタルカメラやスマホの解像度
デジタルカメラやスマホは撮像素子(CCDやCMOSなど)の総画素数(縦方向の画素数×横方向の画素数)を解像度という。これらの機器では、レンズなどの光学系や受光してから記録するまでの画像処理によって、分解能に相当する解像度は大幅に異なる。

ディスプレイの解像度
スマホやタブレットを始め、電子書籍端末、パソコンなどのディスプレイは、画面の物理的なピクセル数(縦ピクセル数×横ピクセル数)を画面解像度という。また、画面のインチあたりピクセル数(ppi、ピクセル・パー・インチ)を解像度ということもあるが、ppiは画素密度という方が分かりやすいだろう。

デジタル画像ファイル
スマホで撮影したデジタル画像はJPEGで保存されることが多い。また、デジタル画像の形式としてはPNGやGIFなども普及している。これらのデジタル画像は、横ピクセル数×縦ピクセル数が画像のサイズであり、これを画像解像度という。また、JEPG画像には、画素密度(ppi)を指定できるが、これを解像度ということもある。画素密度は指定されていない画像も多く、アプリケーションがppiを常に参照するとは限らない。ブラウザは画像ファイルのppi値を参照しないようだ。

画像の表示におけるサイズ
デジタル画像はプリンターに出力したり、ディスプレイに表示するときに物理的なサイズが決まる。例えば、横600ピクセル×縦1200ピクセルの画像を600dpiのプリンターに出力すれば、横1インチ(2.54cm)×縦2インチ(5.08cm)の大きさとなる。また、400ppiのタブレットに表示すれば、横1.25インチ(3.17cm)×縦3インチ(7.62cm)のサイズとなる。しかし、スタイルシートなどで版面や表示領域の幅に対して画像の占める幅の比率を指定することも多い。このとき、画像は指定領域にフィットするように拡大・縮小される。

肉眼でみる画像の解像度
画像をプリンタやディスプレイに表示するとき、肉眼の解像度よりもはるかに低い場合は、画像がぼけて見える。逆に、肉眼の解像度よりもはるかに高い解像度で表示しても、肉眼で識別できないので無駄である。従って、肉眼の解像度よりも少し高い解像度で表示するのが効率的である。

肉眼の解像度は視力で表す。視力1.5の場合、5mの距離でランドル氏環というC字型の指標の1mmの幅を識別できる。実際に実験すると明視距離(25cm)では約360dpiまで識別できるそうである。従って、印刷や表示時の画像解像度は360dpiよりも多少大きいのが適切となる。

最新のスマホのディスプレイは400ppiに達している。例えばiPhone6Plusは401ppiである。iPhone6Plusの画面解像度は1,920 x 1,080ピクセルなので、フルスクリーンの画像ファイルであれば1,920 x 1,080ピクセル程度のサイズで作成し、拡大・縮小なしで表示すると効率的だろう。

Unicode バージョン別の登録文字数の推移、追加文字数と変更点

V1.0.1 V2.0 V3.0 V4.0 V5.0 V6.0 V7.0 V8.0
アルファベット・記号 4,728 6,491 10,210 13,973 16,486 22,454 26,013 27,958
漢字 漢字 20,902 20,902 20,902 20,902 20,902 20,902 20,902 20,902
漢字(URO拡張) 22 38 39 48
漢字拡張A 6,582 6,582 6,582 6,582 6,582 6,582
漢字拡張B 42,711 42,711 42,711 42,711 42,711
漢字拡張C 4,149 4,149 4,149
漢字拡張D 222 222 222
漢字拡張E 5,762
互換漢字 302 302 302 903 1,009 1,012 1,014 1,014
漢字小計 21,204 21,204 27,786 71,098 71,226 75,616 75,619 81,390
ハングル音節 2,350 11,172 11,172 11,172 11,172 11,172 11,172 11,172
図形文字 28,282 38,867 49,168 96,243 98,884 109,242 112,804 120,520
レイアウト制御文字 12 18 26 139 140 142 152 152
合計 28,294 38,885 49,194 96,382 99,024 109,384 112,956 120,672

収録文字数はUnicode Consortium.“The Unicode Standard, Version 8.0 – Core Specification.”(Table D-2, p. 891)による。

バージョン別変更点

バージョン番号 主な変更点
1991年 Unicode 1.0
1992年 Unicode 1.0.1 漢字(URO)20,902文字と互換漢字302文字を新設
1993年 Unicode 1.1 アルファベット・記号1,562文字追加、ハングル音節4,306追加、レイアウト制御文字6追加、UTR#4
1996年 Unicode 2.0 アルファベット・記号201文字追加(チベット文字)、ハングル音節4,516追加、サロゲート・コードポイントを新設
1998年 Unicode 2.1 アルファベット・記号2文字追加、UTR#8
2000年 Unicode 3.0 アルファベット・記号3,717文字追加(エチオピア文字、)、漢字拡張A 6,582文字新設、レイアウト制御文字8追加
2001年 Unicode 3.1 アルファベット・記号1,588文字追加、漢字拡張B 42,711文字新設、互換漢字542文字追加、レイアウト制御文字105追加、UAX#27
2002年 Unicode 3.2 アルファベット・記号955文字追加、互換漢字59文字追加、レイアウト制御文字2追加、UAX#28
2003年 Unicode 4.0 アルファベット・記号1,220文字追加、レイアウト制御文字6追加
2005年 Unicode 4.1 アルファベット・記号1,144文字追加、漢字(URO)拡張22文字新設、互換漢字106文字追加、レイアウト制御文字1追加
2006年 Unicode 5.0 アルファベット・記号1,369文字追加
2008年 Unicode 5.1 アルファベット・記号1,615文字追加、漢字(URO)拡張8文字追加、レイアウト制御文字1追加
2009年 Unicode 5.2 アルファベット・記号2,487文字追加、漢字(URO)拡張8文字追加、漢字拡張C 4,149文字新設、互換漢字3文字追加、レイアウト制御文字1追加
2010年 Unicode 6.0 1,000を超える記号の追加。その主なものは絵文字である。
アルファベット・記号1,866文字追加、漢字拡張D 222文字新設
2012年 Unicode 6.1 200 を超える絵文字用の標準異形を追加。
アルファベット・記号730文字、漢字(URO)拡張1文字追加、互換漢字2文字追加、レイアウト制御文字1文字削除
2012年 Unicode 6.2 アルファベット・記号1文字追加
2013年 Unicode 6.3 アルファベット・記号1文字削除、レイアウト制御文字6追加
2014年 Unicode 7.0 23の新しいスクリプトが追加された。
アルファベット・記号2,829文字追加、レイアウト制御文字5追加
2015年 Unicode 8.0 Sutton Sign Writing 672文字、アナトリア・ヒエログラフ583(紀元前100-200)、初期王朝の楔形文字196(紀元前2900-2335年)、古ハンガリア108文字(13世紀後半)など6つの新しいスクリプトが追加された。
アルファベット・記号1,945文字追加、漢字(URO)拡張9文字追加、拡張漢字E 5,762文字追加

Unicodeとは(草稿)

JEPAサイトで完成版公開
Unicode

Unicodeは、Unicodeコンソーシアムという業界団体が定める、地球上の全ての文字を網羅する符号化文字集合(文字コード)である。Unicodeが普及する前は地域・国別に標準化された文字コードが使われていた。地域別に文字コードが異なるとコンピュータ・ソフトウェアのローカライズで、基本的なテキスト処理を地域毎に変更しなければならない。この問題を解消するためプログラムの文字処理用にUnicodeが開発されたが、インターネットの普及に伴い、HTMLやXMLのテキスト用文字コードとしても使われるようになり、現在は最もポピュラーな文字コードになった。

Unicodeの歴史

ゼロックスはStarの日本版J-Star、アップルはKanji Talk(Macintoshの日本語環境)を作る過程で、日本語化の問題に直面した。こんなことから両社でUnicodeのアイデアについて意見の交換があった。1988年4月に初めてアップルがUnicodeテキストのプロトタイプを出し、TrueTypeでUnicodeをサポートすることを決めた。また、1988年7月にアップルはResearch Libraries Groupから中国語、日本語、韓国語(CJK)の文字データベースを購入し、CJK漢字の統一化(Unification)をはじめた。その後、Sun、IBM、マイクロソフトなどの米国メーカーの賛同を得て、大きな動きになった。1991年にUnicode1.0仕様書出版、1992年には第2巻が追加されUnicode1.0.1となった。

UnicodeとISO(International Organization for Standardization)標準の関係

UnicodeはISO/IEC 10646という文字コード規格と同期をとっている。最新のUnicodeV8.0は、ISO/IEC 10646:2014, Information Technology—Universal Coded Character Set (UCS)(Universal Character Set (UCS)ともいう)とコード単位で完全互換である。

ISO/IEC 10646との相違点は、Unicodeは実装のための様々な機能文字、文字データ、テキスト処理アルゴリズムなどを定めていることである。仕様書本体にはスクリプト別のテキスト処理方法を定めており、さらに文字の特性データベース(Unicode Character Database)などのデータを提供している。付録として提供されるUnicode Standard Annex(UAX)は仕様の一部である。重要なものにアラビア文字やヘブライ文字をラテン文字などと混植するための双方向処理方法(UAX#9)、改行位置の決定特性(UAX#14)、正規形(UAX#15)などがある。他に、Unicode Technical Standard (UTS)と、Unicode Technical Report(UTR)がある。UTSはUnicodeとは別の独立した仕様であり、UTRは参考情報である。

文字の割り当てと番号付け

Unicodeの文字番号をコードポイントと言い、番号の範囲をコードスペースと言う。コードスペースは0から10FFFF(16進表記、以下、コードポイントは16進表記)で、1,114,112個のコードポイントを収容可能である。コードスペースは便宜上64Kずつのサイズの面に分けており、主な面には次のものがある。

(ア)基本多言語面(BMP):0000~FFFFまで。通常使う文字の大部分が収容される
(イ)第1面または補助多言語面(Supplementary Multilingual Plane):10000~1FFFFまで。Lenear B(線状文字B)など歴史的な文字、音楽表記用の文字、数学表記用の文字(記号)のような特殊用途の文字用の面
(ウ)第2面または補助表意文字面(Supplementary Ideographic Plane):20000~2FFFFまで。BMP面に入りきらなかったCJK文字(漢字)を収容する

スクリプト主義

Unicodeはグリフではなく抽象的な文字に対してコードポイントを与える。このときスクリプトが異なれば形が似た文字であっても別のコードポイントを与えるが、スクリプトが同じであれば言語が異なってもコードポイントを一つに統合している。例えば、ラテン文字の“o”(U+006F)、ギリシャ文字の“ο”(U+03BF:Omicron)、キリル文字の“о”(U+043E)は、スクリプトが異なるので同じ字形に関わらず別のコードポイントが与えられている。日本語はひらがな、カタカナ、漢字、ラテンアルファベットを用いて表記するが、それぞれ別のスクリプトである。漢字は日本語、中国語(大陸、台湾、香港、シンガポールなどで方言がある)、韓国語(昔)などの表記に使われるが、言語の相違を捨象して漢字というスクリプト内で統合する。但し、当初の統合化作業では元になる主な地域別文字集合で別の文字コードになっていれば統合はしなかった(1992年以降はこのルールは適用されていない)。

収録文字数

V1.0.1で漢字が収録された。このときの文字数は図形文字とレイアウト制御文字を含めて、28,294文字であった。その後、精力的な文字の追加が行われて、2015年公開のV8では同120,672文字となっている。そのうち、アルファベット・記号が27,958、漢字81,390、ハングル音節11,172、レイアウト制御文字152である。レイアウト制御文字は、改行などの基本的文字、左から右へ書く文字と右から左へ書く文字の混在のために使う方向制御文字などが分類される。

※Unicodeではスクリプトが中核概念であるにも関わらず、スクリプトについての厳密な定義がなかった。現在、UAX #24, Unicode Script Propertyの改訂版(草稿)でスクリプトについて定義しようとしている。

2.Unicode バージョン別の登録文字数の推移、追加文字数と変更点
3.Unicodeの漢字統合と絵文字(草稿)

ナビゲーションとは(草稿)

JEPAサイトで完成版公開
ナビゲーション

ナビゲーションは航法、航海術を表す言葉であり、船舶や航空機などを目的地まで導くことやその役割を意味する。近年は、インターネットのWeb、電子書籍などのデジタル出版分野でも目的とする情報にたどりつくことやそのための手段のことをナビゲーションというようになった。ちなみにHTML5でナビゲーション用のリンクをグループ化する<nav>タグが定義された。ここでは、デジタル出版物を中心としてナビゲーションについて検討する。

紙の出版物

紙の本ではナビゲーションという言葉は使わない。しかし、機能としてのナビゲーション、すなわち目的の情報に導く手段はいろいろある。紙の本で目的地を示す情報には、見出し番号と見出し、図表番号とキャプション、ノンブル(ページ番号)、柱などを用意する。目的地に導く方法として、ぱらぱらとページをめくって探す、目次から辿る、索引や図表一覧から辿るなどが使われる。さらに、ユーザーのカスタム情報として栞紐(しおりひも)を使う 、紙のしおりを挟む、付箋を貼るなどの手段を使うことがある。

PDF

PDFは紙の本をデジタル化したものなので、目的地を示す情報は紙で用意されている項目と同じである。目的地に導く方法は、PDFに用意するものとしては、アウトラインツリー(目的地毎にアウトライン項目を用意し、アウトライン項目をツリー構造で示したもので、Acrobatでは、アウトラインツリーを「しおり」表現している)、サムネイルなどがPDF独自の方法である。アウトライン項目、目次の見出し、索引の項目から目的地へのリンクを設定できる。

紙より便利な点は、リンクのテキストをクリックすると目的地にハイパージャンプできることである。PDFリーダーは、ページを捲る方法として「進む」、「戻る」、「先頭」、「最後」を用意しているのは普通である。しかし、紙のページをぱらぱらめくるのに相当する機能が用意されているPDFリーダーはあまり見かけない。読んでいるPDFに対してユーザーが自分専用の目的地のしるしをつけるためのカスタム手段は、PDFリーダーがサポートすべき項目であるが、こうした機能をもつPDFリーダーは見かけない。

EPUB3

EPUB3では目的地を示す情報として読者に見えるのは、見出し番号と見出し、図表番号とキャプション位である。EPUB3では柱で目的地を示すことができないし、特にリフロー型EPUBではEPUBリーダーが表示するページ番号は目的地を示すために使えない。ハイパーリンクの行先アドレスは、目的地を示すが可視化されない。

EPUB3では、目的地に導く方法として、ナビゲーション・ファイル(<nav>要素にepub:type=”toc” を指定したファイル)を必ず用意しなければならない。しかしナビゲーション・ファイルに記載する情報は標準化されていない。日本電子書籍出版社協会の電書協 EPUB 3 制作ガイドでは「版元から特に指示がないかぎり、カバーページ、目次ページ、奥付ページへのリンクのみとする」とされているなど、あまり重視されていない。むしろ、ナビゲーション・ファイルとは、別に、本文とは同様なレイアウトを設定する目次ファイルを用意することが多い。索引や図表一覧などは用意することができるが、市販の電子書籍ではあまり使われていない。

紙より便利な点は、リンクのテキストをクリックすると目的地にハイパージャンプできることである。EPUBリーダーは、ページを捲る方法として「進む」、「戻る」、「先頭」、「最後」を用意しているのは普通である。また、スライダーでページ素早く進むインターフェイスを用意しているEPUBリーダーもある。読んでいるEPUBでユーザーが自分専用の目的地のしるしをつけるためのカスタム手段をサポートするEPUBリーダーも珍しくない。しかし、全体としてEPUBのナビゲーションは紙と比べて機能が低い。

EPUB 3.1 開発計画の概要 2015/10/20現在

EPUB3.1の開発が始まっています。状況をざっと整理しておきます。

・開発計画承認:2015年7月8日
・議長:Markus Gylling, IDPF、Tzviya Siegman, Wiley
・副議長:Garth Conboy, Google、Brady Duga, Google
・期限:2016年1月最初の草稿仕様、遅くても2016年第4四半期終了

開発計画概要:

EPUB 3.1 Work Plan

フォーカス
・ばらばらに開発されたモジュールの統合
・単純化。あまりサポートされていない機能は廃止しても良い。
・スクリプトと対話性について規則を明確化
・オープンWebプラットフォーム:W3CのDigital Publishing Interest Groupとベクトルを合わせる、サーバーサイドの表現
・新機能 機能要求に基づき追加が可

制約
・できるだけ後方互換性を保つ
・実装可能性を考慮して、新機能は保守的に追加

レポジトリー:https://github.com/IDPF/epub-revision/wiki/EPUB-3.1

10月8-9日初回のF2F会議(ニューヨーク)が開催された。参加者36名。
 議事録

【テーマ別コンセンサス】
・Journals(情報誌)―特別なサブグループにはしない。
・Metadata―特別なメタデータ表現言語は要求しない。外部リンクとする。
・Web-friendly manifestation―EPUBのWebフレンドリーな表現が必要なことに合意。
・Serialization―HTML表現の検討を続ける。epub:接頭辞はHTMLでは使えないのでどうするかを検討する。当面ssmlはHTMLでは表現できないがXHTMLのみ可とするで良い。
・Scripting―特別な合意はなし。
・External resources―外部リソースが必要な分野(スクリプト、リーダーのためのデータ、フォントなど)を認識。
・Restructuring―傘になる仕様を検討する方向。

【感想】
一番熱が入っているのはEPUB-Webの分野のように見えます。また、HTML表現についてもどうやら認められそうな雰囲気です(現在はXHTMLのみ)。HTMLについては予定調和的コンセンサスな気がします。

EPUB3.1というマイナーなバージョン番号と短い開発期間としては、大きなテーマが盛り込まれているのが懸念事項です。開発がスタートしたばかりなので、今のところ議論百出です。今後どちらの方向へ進むか興味深いところです。個人的にはEPUB-Webに期待するところが大きい。

SVG(草稿)

最終版: SVGとは

SVG (Scalable Vector Graphics)は、XMLを応用したマークアップにより、2次元画像を線画で表す(ベクトル画像という)形式である。ベクトル画像とラスター画像の混在も記述できる。単独の画像ファイルとして扱ったり、HTML5の中に直接記述したり、他のXML言語の中に埋め込んで使える。Javascriptなどによるプログラムを組込んで対話的な文書やアニメーションを表現できる。

歴史
SVGはW3C (World Wide Web Consortium)が策定したものである。2001年9月にV1.0が勧告となり、2003年1月にV1.1となった。その後、2011年8月にV1.1第2版となっている。V1.1第2版までに長い年月が経過した。SVGは初期の携帯電話で扱うには仕様が重すぎたため、SVG BasicやSVG Tinyというモバイル用の仕様が策定された。しかし、その後、携帯端末でもフルブラウザが使える時代となりモバイルSVG仕様の必要性はなくなった。SVG 1.1の第2版はSVG Tinyの仕様が逆に本体仕様に反映されるなど、V1.1からかなり大幅な変更が加えられている。現在は、HTML5やCSS3と整合性のよいSVG 2.0の仕様開発がすすめられている。

ブラウザサポート
現在、SVGはGoogle Chrome、FireFox、Internet Explorer (IE)、 Microsoft Edgeなどの主要なブラウザで表示できる。しかし、当初マイクロソフトはVML (Vector Markup Language)という独自のベクトル画像形式を提案し、IEはVMLを採用していた。IEがSVG 1.1第2版を実装したのはIE9からである。そして、IE10ではVML機能が削除された。このようにして、長い時間がかかったが、現在、SVGはWebの標準画像形式の一つとなった。

HTML4までは、SVGは外部の画像として用意したり、object要素を利用してSVGで記述した画像を埋め込んだ。HTML5ではbody要素の内部にsvg要素を直接記述できる(インラインSVGという)ので、SVGによる線画マークアップをHTML5に張り付けることができる。またブラウザのJavascriptで簡単にSVGのコンテンツを操作できる。

特徴
・svg要素の内部に画像を記述する。svg要素は入れ子になってもよいので画像を断片として再利用できる。グループ化したり、コンテナに入れたりできる。
・線画は汎用のパスで表すが、線、多角形、円・楕円、などの基本図形を表すタグと属性が定義されている。
・フィルターを記述できるので、ぼかし、影付けや照明などの効果を指定できる。
・文字は文字コードを保持するテキスト列として表せる。但し、テキスト列内で自動改行やワードラップしないので、SVGの作成時に行毎にマークアップする必要がある。
・文字の形や位置がずれないようにするため、Webフォントを使ったり、SVG独自のフォント記述(SVGフォント)ができる。
・SVG はSMIL (Synchronized Multimedia Integration Language)を使って動画および静止画をメディアの部品として利用できる
・CSSスタイルシートでスタイル付けできる。多くのプロパティをCSSと共有しているが、SVG独自のプロパティも定義されている。

作り方
簡単なものはSVGのマークアップをテキストエディタで編集したりプログラムで作成することができる。複雑な画像はIllustratorなどで編集してSVG形式で保存して作成するのが普通である。また、Inkscapeのような無償のSVG編集ソフトもある。

EPUB
EPUB3ではSVGの画像ファイルをコンテンツ文書として指定することもできるし、HTML5の内部にSVGで記述した画像を含めることもできる。

外字(草稿)

最終版:外 字

外字は、使用頻度の少ない文字の配置場所、あるいは、その字形の表し方をいう。漢字のような図形に意味を持たせる文字では外字は常に大きな問題である。しかし、活版の時代、文字コードのサイズが小さい時代、現在のように大規模文字コードが使われる時代で外字の問題は変質している。

活版印刷の時代には漢字は活字として用意され、文撰職人が原稿を見ながら文撰用の棚に並んだなかから活字を拾った。この作業を効率化するため、印刷会社では漢字を使用頻度の多い順から、大出張、第一出張、第二出張など、外字として分類し、棚に並べるにあたりその配置を工夫していた。大出張は使用頻度の多い文字なので、中央のかなの上部で拾いやすい位置に配置し、外字は使用頻度が少ない文字なので活字を拾うのに背を伸ばしたり、かがんだりしなければならない位置に置かれた。文撰用の棚が沢山ある場合は、さらに使用頻度の少ない外字は工場の一角に別の棚を設けることもあった。

1970年代末にJIS漢字コード表が制定されたが、初期のJIS漢字コード(JIS C 6226:1978)では、第一水準漢字、第二水準漢字、非漢字を併せて6802文字が規定された。しかし、①、②などの丸付数字や、㈱、㈲を初めとして利用頻度の多い文字で規定されないものがあった。情報機器のメーカはJIS漢字コード表に規定されていない文字を独自に選定し外字として独自の文字コードを割りあてた。JIS漢字コード表は、第一バイト21~7E(94区)、第二バイト21~7E(94点)の矩形領域に文字種を割り当てるものであったが、一部の区、点は文字が割り当てられていなかった。そこで外字コードの割り当て方法としては、①JISコード表の区点範囲で文字が割り当てられていない空き領域に独自に追加文字を割り当てる方法、②JISコード表の表外の領域に追加文字を割り当てる方法(IBM拡張文字は7F区以降に割り当て)があった。

1970年代末にはワープロ専用機が登場したが、ワープロ専用機の多くはメーカーがあらかじめ空き領域に割り当てた外字(システム外字)に加えて、ユーザーが文字の字形をデザインするツールを用意し、ユーザーがデザインした外字(ユーザー外字)も使用可能とした。パソコンのMS-DOS、初期のWindowsやMacintoshも独自にシステム外字を定義した。このようにシステムで定義する外字は機種依存文字とも呼ばれ、システム間で非互換の文字が多かったため、JISコード外の文字を正しく情報交換するのが困難であった。

JIS C6226は、その後JIS X0208になり、さらにJIS X0208を包含し、1万文字を超える文字を規定するJIS X0213が制定された。そしてWindowsやMacOSでJIS X0213の文字がすべて使えるようになり、またUnicodeの普及など文字集合が大規模化することで、システム外字が必要という事態は少なくなった。しかし、現在は、新しい外字問題が生じている。

漢字の一番大きな分類は字種である。字種とは文字の意味(字義)や文字の読み(音)、正字・俗字のように歴史的経緯から見て同じ文字であるみなされる文字である。一方、一番細かい分類は目に見える文字の形である字形(デジタルフォントではグリフという)である。一つの文字に対してデザイン差までを考慮すれば字形は無数になる。これに対して、JISコード表は漢字の字体を符号化する。字体とは字形を抽象化した字の骨格であるとされている。JISコード番号には抽象的な字体が割り当てられており、そのコード番号の文字は字形(グリフ)を通じてしか可視化できない。印刷されたJISコード表に記載されているのは字形であるが、これは例示とされている。

現在、外字が使われるのは次の2つのケースがあるだろう。使用する文字コードの枠組みを、例えば、JIS X0213:2004と決めたとき、①JIS X0213:2004で規定する字体の範囲外の字体を使いたいとき、②JIS X0213:2004で規定する字体であるが、グリフが使用するフォントにない場合もしくは使いたいグリフをフォントに依存することなく指定したいときである。①は1970年代から継続する伝統的な外字問題である。

例えば、EPUB3の制作ガイドである電書協ガイドでは、「JIS X 0213:2004 の文字集合にない文字は外字画像化」するとされている。外字画像方式では外字には文字コードを使用しないで、外字を画像で表し、その画像を文字と同じ大きさで行中にインライン配置する。しかし、外字画像を利用すると、文字コードがないので検索ができなくなったり、音声読み上げができないなとの不都合が生じてしまう。

基準とする文字コードの枠組みで表せない文字は画像などで表すことになるのはやむをえない。外字画像を使わないようにするには基準とする文字コードをより大規模な文字集合にするしかない。

一方、②に属する問題は解決方法がある。市販のEPUB電子書籍にはJIS X 0213:2004 の文字集合で規定されている文字で、JIS X0213:2004に対応するフォントで使えるグリフが外字画像化されているケースもあることが、facebookなどのSNSなどで報告されている。これは制作時の環境のフォントではグリフがないところで、文字の形を優先したいという趣旨かもしれない。もし、このような問題が予想される時はフォント埋め込みが一つの解決策となる。使用したいフォントが埋め込みできない場合は当該の文字だけのフォントを制作してEPUBにフォントを埋め込むことを推奨したい。

フォント埋め込み(草稿)

JEPAの「いまさら聞けない電子書籍のABC ~ebookpedia~」の下書きです。最終版は、JEPAのページをご参照ください。

電子ドキュメント内の文字情報は文字コードを使って表されるが、文字コードだけでは文字の形は分からない。文字コードをもとに文字の形を描画するにはフォントを使う。電子ドキュメント作成時にフォントのデータを内部に含めることを「フォント埋め込み」という。フォントを埋め込んだ電子ドキュメントを配布すれば、受け手は埋め込まれたフォントを使って文字を可視化できるので、例えば太字、丸文字など、ドキュメント作成者の意図した形で文字を表現できる。

フォントの所在
モバイル機器、PCなどの機器(デバイス)で、電子ドキュメントを可視化するにはデバイス・OS・リーダアプリなどに装備されているフォントのデータを使うのが普通である。Webフォントという、インターネット上のフォントサーバーからフォントのデータを入手して表示する技術も普及し始めた。

アウトラインフォント
デジタルフォントでは文字の形をグリフという。フォントは、一定のデザインのもとに作成した多数のグリフの集合である。一つの文字コードに対して複数のグリフが用意されている文字も沢山ある。もっとも成功したデジタルフォントであるアウトラインフォントはグリフを曲線で描画する。この描画パラメータをグリフデータという。OpenTypeのようなインテリジェントなフォントは、グリフデータに加えて、文字コードからグリフデータへの対応表、縦書・横書などでのグリフの切替表、ある文字を表示したとき、次の文字をどこに表示するか決めるためのグリフの各種寸法、配置すべき位置に関するデータ(フォントメトリックス)などの付随データをひとつにまとめて提供している。

電子ドキュメント作成時のグリフの扱い
電子ドキュメントを作成するとき、グリフの扱いを大きく分けると次の3通りになる。
① 電子ドキュメントに文字コードのみを含め、グリフデータは含めない(フォント埋め込みなし)
② 電子ドキュメントに、グリフデータを含める(フォント埋め込み)。
③ フォントからグリフデータを取り出し、グリフを描画する線画データに変換してから電子ドキュメントに埋め込む(アウトライン化)。
アウトライン化は特殊な用途なので除外し、以下では、①フォント埋め込みなしと②フォント埋め込みについて、a. 表示の違い、b. PDFとEPUBの埋め込み方法を比較しながら説明する。

フォント埋め込みの有無による表示の違い
受け手が電子ドキュメントを表示するとき、フォント埋め込みがないときとあるときでの相違を簡単に説明する。

(1) フォント埋め込みなし電子ドキュメントの表示
電子ドキュメントの表示アプリケーションは、デバイスやアプリなどがもつフォントを使う。電子ドキュメントの中で指定されているのと同じフォントが使えないときは、類似のフォントを使う。表示に使うフォントが文字コードに対応するグリフをもっていないとき、持っていてもグリフの形がオリジナルを作成したフォントと違うときは文字を正しく表示できない。また、多くの場合、フォントが違うとフォントメトリックスが異なるので作成時と文字の配置が変わり、レイアウトが崩れてしまう。

(2) フォント埋め込みあり電子ドキュメントの表示
フォントを埋め込んだ電子ドキュメントは、埋め込まれたフォントを使って表示すれば、文字の形や配置が変わることなく、作成時のレイアウトを再現できる。但し、表示アプリケーションによっては正しく再現できない。これはアプリケーションの責任である。

PDFとEPUBのフォント埋め込み方法の比較
PDFとEPUBでは、フォント埋め込みの技術的な仕組みは相当に異なる。次にそれぞれの仕組みを簡単に説明する。

(1) PDF
PDFは文字の位置を正確に指定する機能を備えている。そこでPDF作成ソフトがPDFにフォントを埋め込むとき、PDF作成ソフトはテキスト中の文字コードからレイアウトされたグリフIDにする。必要なグリフデータはPDF中の共有リソースとして保存される。そしてグリフIDから文字コードへの対応表(ToUnicodeCMAP)も作成する。中には、ToUnicodeCMAPを作成しないPDF作成ソフトもあるが、このようなPDFでは文字を検索したり、テキストの読み上げ、テキスト取り出しができない。このようにPDFのフォント埋め込みではフォントの中のグリフデータだけを使うので、それをPDF以外に転用するのは困難である。

(2) EPUB
EPUBのコンテンツ文書はXHTMLであり、テキストは文字コードで表される。EPUBのリーダーはフォントを使ってコンテンツを可視化する。このためEPUBのフォント埋め込みはフォントファイルの形式で埋め込む必要がある。具体的にはWebフォントと同じ方式で、CSS3の@font-face規則でフォントの属性とフォントのパスを記述する。Webフォントとの相違は、EPUBのフォント埋め込みではフォントファイルを自分のパッケージ内に含めるのに対して、Webフォントはフォントの存在をURLで示す点である。

サブセット化・難読化
フォント埋め込みのオプションについて説明する。

(1) サブセット埋め込み
電子ドキュメント作成時にフォントを埋め込むとき、フォントの中の全ての文字ではなく、その電子ドキュメントで使われている文字のみに絞ってグリフデータを埋め込むことをサブセット埋め込みという。日本語は文字数が多いのでフォントのサイズが大きい。サブセット化するとサイズを大幅に圧縮できるので、日本語のフォント埋め込みではサブセット化が重要である。PDFのサブセット埋め込みでは使われているグリフデータだけ集めれば良いが、EPUBのサブセット埋め込みはEPUB作成の度にサブセットフォントを作成する必要がある。Webフォントでも指定されたフォントファイルを丸ごとダウンロードするのではなく、フォントサーバーでダイナミックにサブセット化するのが普通なので、技術的には同じである。

(2) 難読化
EPUBのフォント埋め込みではフォントファイルの形式で埋め込むため、フォントを取り出してEPUB表示以外の目的につかうことも難しくない。目的外利用を抑制するため、フォントファイルの内部を解読し難くすることを難読化という。EPUB作成時にフォントが難読化されると、EPUBリーダーではそれを解読して読む必要がある。このため難読化に関しては作り手と消費側で合意が必要であり、EPUB3.0の仕様書には難読化のアルゴリズムやキーの使い方を規定している。

埋め込みとフォントの権利
フォントはプログラムとして著作者の権利が認められている。フォントを埋め込んだ電子ドキュメントの作成・頒布は、フォントの一部または全部の複製と再配布に該当するので、原則として著作権者の許諾が必要である。

PDFが登場したのは1990年代の後半であるが、当初はフォントを埋め込まないPDFは読み手の環境によっては正しく表示できないという問題による誤解や混乱が見られた。フォント・ベンダーによってはライセンス契約に埋め込み許諾・制限・不許可を記載している。しかし、PDFを作成するにあたって、ユーザーがいちいちフォント・ベンダーの許可を確認するのは面倒である。そこでOpenTypeにはフォントファイルに「埋め込み許可フラグ」が設定されており、PDF作成ソフトがそのフラグをみて埋め込みできるかどうか判断するという枠組ができている。また、1998年には日本タイポグラフィ協会は「電子ドキュメントデータへのフォント埋込み機能に対する タイプフェイス/フォントの権利保護に関する声明書」[1]で秩序ある埋め込みを許容する方向を示すなど、フォント埋め込みが幅広く使えるようになっている。この結果、どこでも、だれでもPDFを正しく表示できるようになった。このようにPDFの普及にあたってフォント埋め込みが果たした役割は大きい。

EPUBへのフォント埋め込みを許諾するかどうかはフォント・ベンダーによって方針が異なるようだ。またフォントファイルの「埋め込み許可フラグ」がEPUBを想定しているかどうかも不明である。こうしたことでEPUBのフォント埋め込みはまだ普及していない。フォント埋め込みが普及すれば、特殊な文字や外字などをイメージファイルとして表す必要がなくなるし、さらに文字による表現力が豊かになる。フォント埋め込みの普及を期待したい。

[1] 電子ドキュメントデータへのフォント埋込み機能に対する タイプフェイス/フォントの権利保護に関する声明書

Facebookで頂いたコメント

〔宣伝〕CAS-UBは、EPUB、PDFへのフォント埋め込みに対応しています。PDFはサブセット埋め込みのみです。EPUBはフルセット埋め込みとサブセット埋め込みの選択に対応しています。難読化は未対応です。