ページのヘッダイメージ

ボイス オブ デイジー 4 Android用

ボイス オブ デイジー技術情報

最終更新日:2014.06.19

このページはデイジーの製作者・製作団体向けにボイス オブ デイジーに関する技術的な情報をまとめたものです。
以下のルールに従って作成されたデイジータイトルは、ボイス オブ デイジーで問題なく表示・再生できます。


もくじ

ページの先頭に戻る


メタデータ

ボイス オブ デイジーでは、ncc.htmlに記載されたメタデータより書籍のタイトルや著者などの本に関する情報を取得しています。

必須のメタデータ

DAISY 2.02の規格では、次のメタデータは必須(mandatory)と定義されています。これらの必須のメタデータがncc.htmlに記載されていないデイジータイトルはエラーとなり開けません。

name意味
dc:creator著者・作者
dc:date出版日: yyyy-mm-ddのISO 8601形式で記載
dc:formatフォーマット: "Daisy 2.02"でなければなりません
dc:identifierデイジー出版物の識別文字列(※注)
dc:language言語: ISO 639の言語コードで記載
dc:publisher出版社
dc:titleタイトル
ncc:charsetエンコーディング
ncc:pageFront扉ページのページ数, 正の数字もしくは0
ncc:pageNormal本文ページのページ数, 正の数字もしくは0
ncc:pageSpecial特殊ページのページ数, 正の数字もしくは0
ncc:tocItemsNCCのナビゲーション位置の数, 正の数字
ncc:totalTime総再生時間

dc:identifier

DAISY 2.02の規格では、dc:identifierのメタ情報は、デイジー出版物の識別に使われると規定されています。異なるデイジー出版物は、異なるdc:identifierの値が使われていなければなりません。

ボイス オブ デイジーはncc.htmlに記載されたdc:identifierの値をデイジータイトルを区別するのに使います。同じ、dc:identifierの値を持つデイジータイトルがボイス オブ デイジーに転送されると、格納済みのデイジータイトルが更新されたものと判定され、古い方のデイジータイトルは削除されます。

なんらかの都合で、同じdc:identifierの値を持つ複数のデイジータイトルを同時にボイス オブ デイジーに保存しなければならない場合には、[更新された本を上書きする]の設定項目をオフにしてください。

ncc:multimediaType

DAISY 2.02の規格では、ncc:multimediaTypeのメタ情報は、どのような形式でデイジータイトルが作られているかを表現するものです。ncc:multimediaTypeに設定できる値には次の6種類があります。

意味ボイス オブ デイジー
audioOnly音声のみ× サポートされていません
audioNcc音声とNCC○ サポートされています
audioPartText音声と一部テキスト× サポートされていません
audioFullText音声とフルテキスト○ サポートされています
textPartAudioテキストと一部音声× サポートされていません
textNccテキストとNCC× サポートされていません

このうち、ボイス オブ デイジーでサポートされている形式は、audioNccとaudioFullTextの2つの形式です。ncc:multimediaTypeのメタ情報にボイス オブ デイジーでサポートされていない値が設定されているデイジータイトルは、エラーとなり開けません。

ページの先頭に戻る


XMLのエンジン

ボイス オブ デイジーでは独自のXMLエンジンによってSMILやHTMLファイルに関する処理を行っています。ここでは、このXMLエンジンに関する注意事項を説明します。

エンコーディング名

SMILやXMLファイルの先頭のXML宣言内では次のように、そのファイルで使われるエンコーディング名(文字コード名)を示します。

<?xml version="1.0" encoding="エンコーディング名" standalone="yes" ?>

XML Version 1.0の規格「日本工業規格 JIS X 4159:2002拡張可能なマーク付け言語 (XML)」では、エンコーディング名で使用する文字列はIANAの国際組織に登録されたものと定義されています。そのうち、ボイス オブ デイジーのXMLエンジンで使用できるエンコーディング名は次の通りです。

us-ascii iso-ir-6 ANSI_X3.4-1968 ANSI_X3.4-1986 ISO_646.irv:1991 ISO646-US us IBM367 cp367 csASCII ASCII
ucs2-le ucs2 ISO-10646-UCS-2 UCS-2 csUnicode UCS-2LE UNICODELITTLE
ucs2-be UCS-2BE UNICODEBIG
ucs4-le ucs4 ISO-10646-UCS-4 UCS-4 CSUCS4 UCS-4LE
ucs4-be UCS-4BE
utf-7 utf7 unicode-1-1-utf-7 CSUNICODE11UTF7 csUTF7
utf-8 utf8 csUTF8
utf-8n utf8n
utf-16 csUTF16
utf-16n
utf-32 csUTF32
utf-32n
utf-16be csUTF16BE
utf-16le csUTF16LE
utf-16be+bom
utf-16le+bom
utf-32be csUTF32BE
utf-32le csUTF32LE
utf-32be+bom
utf-32le+bom
iso-2022-jp csISO2022JP
euc-jp x-euc-jp ujis eucJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE csEUCPkdFmtJapanese
Shift_JIS sjis MS_Kanji csShiftJIS
iso-8859-1 iso-ir-100 ISO_8859-1 latin1 l1 IBM819 CP819 csISOLatin1 ISO8859-1 ISO_8859-1:1987
iso-8859-2 iso-ir-101 ISO_8859-2 latin2 l2 csISOLatin2 ISO8859-2 ISO_8859-2:1987
iso-8859-3 iso-ir-109 ISO_8859-3 latin3 l3 csISOLatin3 ISO8859-3 ISO_8859-3:1988
iso-8859-4 iso-ir-110 ISO_8859-4 latin4 l4 csISOLatin4 ISO8859-4 ISO_8859-4:1988
iso-8859-5 iso-ir-144 ISO_8859-5 cyrillic csISOLatinCyrillic ISO8859-5 ISO_8859-5:1988
iso-8859-6 iso-ir-127 ISO_8859-6 ECMA-114 ASMO-708 arabic csISOLatinArabic ISO8859-6 ISO_8859-6:1987
iso-8859-7 iso-ir-126 ISO_8859-7 ELOT_928 ECMA-118 greek greek8 csISOLatinGreek ISO8859-7 ISO_8859-7:1987
iso-8859-8 iso-ir-138 ISO_8859-8 hebrew csISOLatinHebrew ISO8859-8 ISO_8859-8:1988
iso-8859-9 iso-ir-148 ISO_8859-9 latin5 l5 csISOLatin5 ISO8859-9 ISO_8859-9:1989
iso-8859-10 iso-ir-157 ISO_8859-10 csISOLatin6 l6 latin6 ISO8859-10 ISO_8859-10:1992
iso-8859-13 csISO885913 ISO-IR-179 ISO8859-13 ISO_8859-13 l7 latin7
iso-8859-14 iso-ir-199 ISO_8859-14:1998 ISO_8859-14 latin8 iso-celtic l8 csISO885914
iso-8859-15 ISO_8859-15 Latin-9 csISO885915 ISO-IR-203 ISO8859-15 ISO_8859-15:1998
cp932 SJIS-open SJIS-win MS932
EUC-JP-MS eucJP-MS eucJP-open eucJP-win
windows-1252 cp1252 MS1252 cswindows1252

ここに挙げられていないエンコーディング名が使われているデイジータイトルはエラーとなり開けません。

既存のデイジータイトルの中には希にIANAには未登録のエンコーディング名が使われているものが存在します。HTMLやSMILを作成する際には、必ずIANA登録されたエンコーディング名を指定するようにしてください。

ページの先頭に戻る


ZIPファイルに関する注意

ボイス オブ デイジーではZIPファイルの展開にZLIBというオープンソースのライブラリを使用しています。

ZLIBの扱えるZIPファイルの制限

ZLIBの扱えるZIPファイルの上限は4Gバイトまでです。また、一つのファイルのサイズ上限は2Gバイトです。

これより大きなサイズのZIPファイルは、ZIP64と呼ばれる別のファイル形式で作られたものです。ZLIBでは、ZIP64のファイル形式は扱えないため、ボイス オブ デイジーでは4Gバイトを超えるZIPファイルは扱えません。

エンコーディング

ZIPファイルには複数のファイルが格納されています。残念ながら、ZIP形式の技術仕様には、格納されているファイル名やフォルダ名に使われるエンコーディング(文字コード)が定められていません。一般に、欧米のWindowsで作られたZIPファイルはcp1252のエンコーディングが使われ、日本語Windowsで作られたZIPファイルは、cp932(Shift_JISのMicrosoftによる拡張)の文字コードが使われています。また、MacでZIPファイルを作成するとutf-8のエンコーディングが使われます。

ボイス オブ デイジーが英語、ドイツ語のUIで起動された時には、ZIPファイルのファイル名はcp1252のエンコーディングで作成されているものと想定し、日本語のUIで起動された時には、cp932のエンコーディングで作成されたものと想定しています。ZIPファイルが展開できても、再生時にエラーになる場合には、iOSの言語設定と、ZIPファイルのエンコーディングの対応を確認してください。

EXEファイル

サピエ(視覚障害者情報総合ネットワーク)では、デイジーの配布ファイルとして自動展開形式のEXEファイルを用いています。このEXE形式はZIP形式を元にしたものであるため、ボイス オブ デイジーで展開できます。これ以外の、自動展開形式のEXEファイルは、ボイス オブ デイジーではサポートしていません。

ページの先頭に戻る


縦書きに関する注意

日本国内で作られてきた縦書きのDAISY 2.02タイトルは、Windows上で動作するIEのレンダリングエンジンの利用を前提に作られています。このため、他のブラウザエンジンでは解釈できないCSSが使われていたり、IE独自のCSSスタイルの解釈を前提に作られています。

ボイス オブ デイジーでは、HTMLの表示にWebKitというSafariのブラウザエンジンを用いています。WebKitの縦書きに関するCSSの解釈はWEB標準を厳守しており、IEとは大きく異なります。

ボイス オブ デイジーで縦書きのHTMLを表示する際には、HTMLに埋め込まれたスタイルシートファイルの外部参照を削除し、独自の縦書きCSSファイルへの参照に置き換えた上で、WebKitを使って画面を行っています。副作用として、コンテンツに用意したスタイルが全て無視されてしまいます。

ボイス オブ デイジーが縦書き表示に使用しているスタイルシートの内容は次の通りです。(参考:AMISやEesyReaderとの互換性について

/* ======== ======== ======== ======== ======== ========
	縦書き表示用CSS
	ボイス オブ デイジー for iOS バージョン4.0.4以降向け

					最終更新日:2014.06.12
   ======== ======== ======== ======== ======== ======== */
@charset "utf-8";

/* ======== ======== ======== ======== ========
	共通
   ======== ======== ======== ======== ======== */

* {
	direction : ltr;
	-webkit-writing-mode : vertical-rl;
	-webkit-text-size-adjust : none;
	font-family : 'Hiragino Kaku Gothic ProN', sans-serif;
	text-align : justify;
}

body {
	line-height : 2.6;
	margin : 1.0em;
}

a {
	text-decoration : none;
}

/* 非表示用 */
.kage {
	visibility :hidden;
	font-size : 0%;
	margin : 0px;
}

/* ======== ======== ======== ======== ========
	見出し
   ======== ======== ======== ======== ======== */

/* 見出し1 */
h1 {
	margin : 1em 0 0 2em;
	line-height : 150%;
}
h1.s {	/* 新規追加:文字小さめ */
	margin :  1em 0 0 2em;
	line-height :  150%;
	font-size : 150%;
}
h1.ss {	/* 新規追加:さらに小さめ */
	margin :  1em 0 0 2em;
	line-height :  150%;
	font-size : 125%;
}

/* 表示見出し2 */
h2 {
	visibility : visible;
	font-size : 120%;	/* 変更:100% → 120% */
	margin : 1em 0 0 2em;
	line-height : 150%;
}
h2.s {	/* 新規追加:従来のh2 */
	visibility : visible;
	font-size : 100%;
	margin :  1em 0 0 2em;
	line-height :  150%;
}

/* 非表示見出し2 */
h2.none {
	visibility : hidden;
	font-size : 0%;
	margin : 0px;
}

/* ======== ======== ======== ======== ========
	本文
   ======== ======== ======== ======== ======== */
p.ll {		font-size : 140%;	}	/* 新規追加:文字最大 */
p.l {		font-size : 120%;	}	/* 新規追加:文字大きめ */

/* ======== ======== ======== ======== ========
	画像およびテキストの寄せ
   ======== ======== ======== ======== ======== */

/* 上寄せ */
img_left {
	text-align : left;
}

/* 中央寄せ */
.img_center, .center {
	text-align : center;
}

/* 下寄せ */
.img_right, .right {
	text-align : right;
}

/* ======== ======== ======== ======== ========
	インデント
   ======== ======== ======== ======== ======== */

/* 新規追加:所属の組織 */
.org {
	text-align :  right;
	margin :  0 0 2em 0em;
} 

/* 著者 */
.author {
	text-align : right;
	margin : 0 0 2em 4em;
} 

/* 引用 */
.quote {
	padding-top : 30px;
	padding-bottom : 30px;
}

/* 字下げ(1〜16文字) */
.indent_1em {		padding-top : 1em;	}
.indent_2em {		padding-top : 2em;	}
.indent_3em {		padding-top : 3em;	}
.indent_4em {		padding-top : 4em;	}
.indent_5em {		padding-top : 5em;	}
.indent_6em {		padding-top : 6em;	}
.indent_7em {		padding-top : 7em;	}
.indent_8em {		padding-top : 8em;	}
.indent_9em {		padding-top : 9em;	}
.indent_10em {	padding-top : 10em;	}
.indent_11em {	padding-top : 11em;	}
.indent_12em {	padding-top : 12em;	}
.indent_13em {	padding-top : 13em;	}
.indent_14em {	padding-top : 14em;	}
.indent_15em {	padding-top : 15em;	}
.indent_16em {	padding-top : 16em;	}

/* 1行目だけを1字下げる(インライン要素には効きません) */
.indent, .indent_top, .indent_1-0em {
	text-indent : 1em;
}

/* 2行目以降を1文字下げる(インライン要素には効きません) */
.indent_m11em, .indent_0-1em  {
	text-indent : -1em;
	padding-top : 1em;
}

/* 2行目以降を1文半字下げる(インライン要素には効きません) */
.indent_0-1point5em {
	text-indent : -1.5em;
	padding-top : 1.5em;
}

/* 2行目以降を2文字下げる(インライン要素には効きません) */
.indent_m22em, .indent_0-2em {
	text-indent : -2em;
	padding-top : 2em;
}

/* 2行目以降を2文半下げる(インライン要素には効きません) */
.indent_0-2point5em {
	text-indent : -2.5em;
	padding-top : 2.5em;
}

/* 2行目以降を3文字下げる(インライン要素には効きません) */
.indent_m33em, .indent_0-3em {
	text-indent : -3em;
	padding-top : 3em;
}

/* 2行目以降を3文半下げる(インライン要素には効きません) */
.indent_0-3point5em {
	text-indent : -3.5em;
	padding-top : 3.5em;
}

/* 1行目を1文字下げ、2行目以降を3文字下げる(インライン要素には効きません) */
.indent_m12em	{	text-indent : -1em;	padding-top : 2em;	}

/* 1行目を2文字下げ、2行目以降を3文字下げる(インライン要素には効きません) */
.indent_m13em	{	text-indent : -1em;	padding-top : 3em;	}

/* 1行目を5文字下げ、2行目以降を6文字下げる(インライン要素には効きません) */
.indent_m16em	{	text-indent : -1em;	padding-top : 6em;	}

/* 1行目を1文字上げ、2行目以降を1文字下げる(インライン要素には効きません) */
.indent_m21em	{	text-indent : -2em;	padding-top : 1em;	}

/* 1行目を1文字下げ、2行目以降を3文字下げる(インライン要素には効きません) */
.indent_m23em	{	text-indent : -2em;	padding-top : 3em;	}

/* 1行目を1文字下げ、2行目以降を5文字下げる(インライン要素には効きません) */
.indent_m45em	{	text-indent : -4em;	padding-top : 5em;	}

/* 1行目を2文字上げ、2行目以降を1文字下げる(インライン要素には効きません) */
.indent_m31em	{	text-indent : -3em;	padding-top : 1em;	}

/* 1行目を1文字上げ、2行目以降を2文字下げる(インライン要素には効きません) */
.indent_m32em	{	text-indent : -3em;	padding-top : 2em;	}

/* ======== ======== ======== ======== ========
	漢文表記
   ======== ======== ======== ======== ======== */

/* 漢文:送り文字用 */
.okuri {
	font-size : 0.5em;
	vertical-align : 20%;
	letter-spacing : 0px;
}

/* 漢文:レ点、一二点、上下点 */
.mark {
	font-size : 0.4em;
	vertical-align : -20%;
	letter-spacing : 0px;
}

/* ======== ======== ======== ======== ========
	線
   ======== ======== ======== ======== ======== */

/* 傍線 */
.underline {
	border-right : solid 2px black;
	text-decoration : none;
}
.underline_gray{
	border-right : solid 2px gray;
	text-decoration : none;
}
.underline_red {
	border-right : solid 2px red;
	text-decoration : none;
}
.underline_blue {
	border-right : solid 2px blue;
	text-decoration : none;
}
.underline_pink {
	border-right : solid 2px pink;
	text-decoration : none;
}
.underline_green {
	border-right : solid 2px green;
	text-decoration : none;
}
.underline_yellow {
	border-right : solid 2px yellow;
	text-decoration : none;
}
.underline_beige {
	border-right : solid 2px beige;
	text-decoration : none;
}
.underline_orange {
	border-right : solid 2px orange;
	text-decoration : none;
}

/* □枠 */
.waku, .sikaku {
	border : solid 1px black;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:1px → 10px */
}
.waku_gray {
	border : solid 1px gray;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:1px → 10px */
}
.waku_red {
	border : solid 1px red;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:1px → 10px */
}
.waku_blue {
	border : solid 1px blue;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:1px → 10px */
}
.waku_pink {
	border : solid 1px pink;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:1px → 10px */
}
.waku_green {
	border : solid 1px green;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:1px → 10px */
}
.waku_yellow {
	border : solid 1px yellow;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:1px → 10px */
}
.waku_beige {
	border : solid 1px beige;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:1px → 10px */
}
.waku_orange {
	border : solid 1px orange;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:1px → 10px */
}

/* 囲み段落 */
.kakomi {
	border : solid 2px black;
	text-align : justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_gray {
	border : solid 2px gray;
	text-align : justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_red {
	border : solid 2px red;
	text-align : justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_blue {
	border : solid 2px blue;
	text-align : justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_pink {
	border : solid 2px pink;
	text-align : justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_green {
	border : solid 2px green;
	text-align : justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_yellow {
	border : solid 2px yellow;
	text-align : justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_beige {
	border : solid 2px beige;
	text-align : justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_orange {
	border : solid 2px orange;
	text-align : justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}

/* 垂直線 */
hr {	border : solid 1px black;
}
hr.gray {
	border : solid 1px gray;
}
hr.red {
	border : solid 1px red;
}
hr.blue {
	border : solid 1px blue;
}
hr.pink {
	border : solid 1px pink;
}
hr.green {
	border : solid 1px green;
}
hr.yellow {
	border : solid 1px yellow;
}
hr.beige {
	border : solid 1px beige;
}
hr.orange {
	border : solid 1px orange;
}

段落頭の字下げ、非表示ページ番号、漢文:送り文字、漢文:レ点、一二点、上下点、傍線、□枠などの表現を用いる場合には、このスタイルシートのスタイル名を用いるようにしてください。

また、ここに挙げられていないスタイルの追加が必要な場合には、アップデート版による対応を検討しますので、サイパックにご相談ください。


AMISやEesyReaderとの互換性について

新しい縦書きデイジータイトルを作成する際に、ボイス オブ デイジーだけで正しく表示できればよい場合は上のCSSをお使いください。

もし、ボイス オブ デイジーとAMIS & EesyReaderで同様に表示させたい場合は、次のCSSを使ってください。
クラス名を変えなければ個々の値は変更していただいても構いません。

/* ======== ======== ======== ======== ======== ========
	縦書き表示用CSS
	AMIS & EasyReader向け 
	(ボイス オブ デイジー for iOS バージョン4.0.4向けCSSと互換)

					最終更新日:2014.06.09
   ======== ======== ======== ======== ======== ======== */
@charset "utf-8";

/* ======== ======== ======== ======== ========
	共通
   ======== ======== ======== ======== ======== */

* {
	direction :  ltr;
	writing-mode : tb-rl;	/* IE向けの縦書き指定 */
	font-family : Meiryo, "MS PGothic", sans-serif;
	text-align :  justify;
}

body {
	line-height : 2.6;
	margin :  1.0em;
}

a {
	text-decoration :  none;
}

/* 非表示用 */
.kage {
	visibility : hidden;
	font-size : 0%;
	margin :  0px;
}

/* ======== ======== ======== ======== ========
	見出し
   ======== ======== ======== ======== ======== */

/* 見出し1 */
h1 {
	margin :  1em 0 0 2em;
	line-height :  150%;
}
h1.s {	/* 新規追加:文字小さめ */
	margin :  1em 0 0 2em;
	line-height :  150%;
	font-size : 150%;
}
h1.ss {	/* 新規追加:文字小さめ */
	margin :  1em 0 0 2em;
	line-height :  150%;
	font-size : 125%;
}

/* 見出し2 (表示)*/
h2 {
	visibility : visible;
	font-size : 120%;	/* 変更:100% → 120% */
	margin :  1em 0 0 2em;
	line-height :  150%;
}
h2.s {	/* 新規追加:従来のh2 */
	visibility : visible;
	font-size : 100%;
	margin :  1em 0 0 2em;
	line-height :  150%;
}

/* 見出し2(非表示) */
h2.none {
	visibility : hidden;
	font-size : 0%;
	margin :  0px;
}

/* ======== ======== ======== ======== ========
	本文
   ======== ======== ======== ======== ======== */
p.ll {		font-size : 140%;	}	/* 新規追加:文字最大 */
p.l {		font-size : 120%;	}	/* 新規追加:文字大きめ */
p.s {		font-size : 80%;	}	/* 新規追加:文字小さめ */
p.ss {	font-size : 60%;	}	/* 新規追加:文字最小 */

/* ======== ======== ======== ======== ========
	画像およびテキストの寄せ
   ======== ======== ======== ======== ======== */

/* 上寄せ */
img_left {
	text-align :  left;
}

/* 中央寄せ */
.img_center, .center {
	text-align :  center;
}

/* 下寄せ */
.img_right, .right {
	text-align :  right;
}

/* ======== ======== ======== ======== ========
	インデント
   ======== ======== ======== ======== ======== */

/* 新規追加:所属の組織 */
.org {
	text-align :  right;
	margin :  0 0 2em 0em;
} 
/* 著者 */
.author {
	text-align :  right;
	margin :  0 0 2em 4em;
} 

/* 引用 */
.quote {
	padding-top :  30px;
	padding-bottom :  30px;
}

/* 字下げ(1〜16文字) */
.indent_1em {		padding-top :  1em;	}
.indent_2em {		padding-top :  2em;	}
.indent_3em {		padding-top :  3em;	}
.indent_4em {		padding-top :  4em;	}
.indent_5em {		padding-top :  5em;	}
.indent_6em {		padding-top :  6em;	}
.indent_7em {		padding-top :  7em;	}
.indent_8em {		padding-top :  8em;	}
.indent_9em {		padding-top :  9em;	}
.indent_10em {	padding-top :  10em;	}
.indent_11em {	padding-top :  11em;	}
.indent_12em {	padding-top :  12em;	}
.indent_13em {	padding-top :  13em;	}
.indent_14em {	padding-top :  14em;	}
.indent_15em {	padding-top :  15em;	}
.indent_16em {	padding-top :  16em;	}

/* 1行目だけを1字下げる(インライン要素である<span>には効きません) */
.indent, .indent_top, .indent_1-0em {
	text-indent :  1em;
}

/* 2行目以降を1文字下げる(インライン要素である<span>には効きません) */
.indent_m11em, .indent_0-1em  {
	text-indent :  -1em;
	padding-top :  1em;
}

/* 2行目以降を1文半字下げる(インライン要素である<span>には効きません) */
.indent_0-1point5em {
	text-indent :  -1.5em;
	padding-top :  1.5em;
}

/* 2行目以降を2文字下げる(インライン要素である<span>には効きません) */
.indent_m22em, .indent_0-2em {
	text-indent :  -2em;
	padding-top :  2em;
}

/* 2行目以降を2文半下げる(インライン要素である<span>には効きません) */
.indent_0-2point5em {
	text-indent :  -2.5em;
	padding-top :  2.5em;
}

/* 2行目以降を3文字下げる(インライン要素である<span>には効きません) */
.indent_m33em, .indent_0-3em {
	text-indent :  -3em;
	padding-top :  3em;
}

/* 2行目以降を3文半下げる(インライン要素である<span>には効きません) */
.indent_0-3point5em {
	text-indent :  -3.5em;
	padding-top :  3.5em;
}

/* 1行目を1文字下げ、2行目以降を2文字下げる(インライン要素である<span>には効きません) */
.indent_m12em	{	text-indent : -1em;	padding-top : 2em;	}

/* 1行目を2文字下げ、2行目以降を3文字下げる(インライン要素である<span>には効きません) */
.indent_m13em	{	text-indent : -1em;	padding-top : 3em;	}

/* 1行目を1文字下げ、2行目以降を6文字下げる(インライン要素である<span>には効きません) */
.indent_m16em	{	text-indent : -1em;	padding-top : 6em;	}

/* 1行目を1文字上げ、2行目以降を1文字下げる(インライン要素である<span>には効きません) */
.indent_m21em	{	text-indent : -2em;	padding-top : 1em;	}

/* 1行目を1文字下げ、2行目以降を3文字下げる(インライン要素である<span>には効きません) */
.indent_m23em	{	text-indent : -2em;	padding-top : 3em;	}

/* 1行目を1文字下げ、2行目以降を5文字下げる(インライン要素である<span>には効きません) */
.indent_m45em	{	text-indent : -4em;	padding-top : 5em;	}

/* 1行目を2文字上げ、2行目以降を1文字下げる(インライン要素である<span>には効きません) */
.indent_m31em	{	text-indent : -3em;	padding-top : 1em;	}

/* 1行目を1文字上げ、2行目以降を2文字下げる(インライン要素である<span>には効きません) */
.indent_m32em	{	text-indent : -3em;	padding-top : 2em;	}

/* ======== ======== ======== ======== ========
	漢文表記
   ======== ======== ======== ======== ======== */

/* 漢文 : 送り文字用 */
.okuri {
	font-size : 0.5em;
	vertical-align : 20%;
	letter-spacing : 0px;
}

/* 漢文 : レ点、一二点、上下点 */
.mark {
	font-size : 0.4em;
	vertical-align : -20%;
	letter-spacing : 0px;
}

/* ======== ======== ======== ======== ========
	線
   ======== ======== ======== ======== ======== */

/* 傍線 */
.underline {
	text-decoration : overline;
}
.underline_gray{
	text-decoration : overline;
}
.underline_red {
	text-decoration : overline;
}
.underline_blue {
	text-decoration : overline;
}
.underline_pink {
	text-decoration : overline;
}
.underline_green {
	text-decoration : overline;
}
.underline_yellow {
	text-decoration : overline;
}
.underline_beige {
	text-decoration : overline;
}
.underline_orange {
	text-decoration : overline;
}

/* □枠 */
.waku, .sikaku {
	border : solid 1px black;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:2px → 10px */
}
.waku_gray {
	border : solid 1px gray;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:2px → 10px */
}
.waku_red {
	border : solid 1px red;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:2px → 10px */
}
.waku_blue {
	border : solid 1px blue;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:2px → 10px */
}
.waku_pink {
	border : solid 1px pink;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:2px → 10px */
}
.waku_green {
	border : solid 1px green;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:2px → 10px */
}
.waku_yellow {
	border : solid 1px yellow;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:2px → 10px */
}
.waku_beige {
	border : solid 1px beige;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:2px → 10px */
}
.waku_orange {
	border : solid 1px orange;
	margin : 20px;	/* 変更:2px → 20px */
	padding : 10px;	/* 変更:2px → 10px */
}

/* 囲み段落 */
.kakomi {
	border :  solid 2px black;
	text-align :  justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_gray {
	border :  solid 2px gray;
	text-align :  justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_red {
	border :  solid 2px red;
	text-align :  justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_blue {
	border :  solid 2px blue;
	text-align :  justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_pink {
	border :  solid 2px pink;
	text-align :  justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_green {
	border :  solid 2px green;
	text-align :  justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_yellow {
	border :  solid 2px yellow;
	text-align :  justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_beige {
	border :  solid 2px beige;
	text-align :  justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}
.kakomi_orange {
	border :  solid 2px orange;
	text-align :  justify;
	padding :  70px 10px 70px 10px;	/* 変更:7px 0px 7px 0px; → 70px 10px 70px 10px; */
}

/* 垂直線 */
hr {	border : solid 1px black;
}
hr.gray {
	border : solid 1px gray;
}
hr.red {
	border : solid 1px red;
}
hr.blue {
	border : solid 1px blue;
}
hr.pink {
	border : solid 1px pink;
}
hr.green {
	border : solid 1px green;
}
hr.yellow {
	border : solid 1px yellow;
}
hr.beige {
	border : solid 1px beige;
}
hr.orange {
	border : solid 1px orange;
}

なお、ボイス オブ デイジーの縦書き表示用CSSでは傍線(.underline)の表現に「border-right : solid 2px black; text-decoration : none;」を採用していますが、AMIS & EesyReader向けでは「text-decoration : overline;」に変更してあります。
これは、AMIS & EesyReaderで「border-right」を用いると、以下のような問題が発生するためです。

  • 傍線が表示されない場合がある(padding-right を 0.5em未満に設定した場合)
  • 傍線がテキストから離れすぎる(padding-right に 0.5emよりも大きな値を設定した場合)
  • ルビと傍線を併用すると、ルビのテキストと傍線が重なることがある
  • ルビと傍線を併用すると、傍線にかかるテキストが左にずれて表示されることがある
  • Easy Reader ではハイライトがさしかかると傍線が消えることがある

「text-decoration : overline;」ならば上記の不具合は解消されます。
ただし、以下のようなデメリットもあります。

  • 色が付けられない
  • 傍線の太さを指定できない
  • 傍線とテキストの距離を指定できない
  • ルビと傍線を併用すると、ルビにも傍線がついてしまう

ページの先頭に戻る


ルビに関する注意(書式)

縦書きと同様に、日本国内で作られてきた縦書きのDAISY 2.02タイトルは、次の例のようにIE独自のルビタグを前提に作られています。

<ruby><rb>千早</rb><rp>(</rp><rt>ちはや<rt><rp>)</rp></ruby>ぶる <ruby><rb>神代</rb><rp>(</rp><rt>かみよ</rt><rp>)</rp></ruby>もきかず <ruby><rb>龍田川</rb><rp>(</rp><rt>たつたがは<rt><rp>)</rp></ruby> からくれなゐに 水くくるとは

一方、HTML5で初めて規格として定義されたrubyタグではrbタグは不要です。ボイス オブ デイジーでは、IE独自のrbタグを、WebKitで問題が生じないように、削除した上で表示を行っています。IEでの表示を前提に作られたルビ付きのデイジータイトルは、そのままボイス オブ デイジーで表示できます。

iOSのバージョンによって、横書きのルビ付の付いた漢字がiPhone/iPod touchだと小さく表示されることがあります。この場合、コンテンツに含まれるCSSに次の定義(-webkit-text-size-adjust: none;)を付け加えてください。

* {
-webkit-text-size-adjust : none;
}

ページの先頭に戻る


ルビに関する注意(インライン要素との併用)

ルビを振ったテキストに、さらに傍線を引きたい場合は、次のようにルビタグの外側に傍線のタグ(青字)を書くようにしてください。
<strong>など、他のインライン要素の場合も同様です。

<span class="underline"><ruby><rb>千早</rb><rp>(</rp><rt>ちはや<rt><rp>)</rp></ruby></span>ぶる

次のように、ルビタグの内側にインライン要素を書くと、ボイス オブ デイジーでは正しく表示されません。

<ruby><span class="underline"><rb>千早</rb></span><rp>(</rp><rt>ちはや<rt><rp>)</rp></ruby>ぶる
<ruby><rb><span class="underline">千早</span></rb><rp>(</rp><rt>ちはや<rt><rp>)</rp></ruby>ぶる

ページの先頭に戻る