Skip to content

Commit

Permalink
Merge pull request #17 from bobbytung/master
Browse files Browse the repository at this point in the history
修正標示錯誤、筆誤,以及對應Issue
  • Loading branch information
TDPF authored Nov 27, 2018
2 parents 019d101 + 17a6669 commit 4c331d1
Showing 1 changed file with 29 additions and 41 deletions.
70 changes: 29 additions & 41 deletions tdpf-epub3guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ EPUB 3內使用HTML5與CSS3等網頁技術,各作業系統與瀏覽器組版

EPUB 3內的各種內容,包括包裝文件、導覽文件、內容文件、樣式表等通稱為「文件檔案」。

###文件檔案的基礎
### 文件檔案的基礎

#### <u>文字編碼</u>

Expand All @@ -98,57 +98,53 @@ EPUB 3內的各種內容,包括包裝文件、導覽文件、內容文件、

適當忽略原始碼中的註解行、可任意配置元素中屬性的順序,各屬性間如果有一個以上的空白、換行或Tab等,請適當解譯,與支援Web標準的現代瀏覽器具備相同的嚴謹度與自由性。

#### <u>META-INF中的container.xml</u>

本文件不提供具有兩個以上OPF檔案的範例,若有兩個以上OPF檔案時,請依照EPUB 3規範適當處理。

### 包裝文件(Package Document/OPF檔案)

#### <u>遵守翻頁方向</u>

書的翻頁方向必需依從包裝文件中Spine元素的`page-progresson-direction`屬性,不管內容文件或者樣式表中使用哪一種`writing-mode`
書的翻頁方向**必需**依從包裝文件中Spine元素的`page-progresson-direction`屬性,不管內容文件或者樣式表中使用哪一種`writing-mode`

而XHTML內容文件中的文字排列方向,則依照各XHTML中Body元素所指定的`writing-mode`屬性。當`writing-mode`指定於html元素時,必需繼承於body元素。

例如`page-progression-direction`指定為`rtl`(由右向左)時,而xhtml的`writing-mode`指定為`horizontal-tb`(橫排)時,期待文字於螢幕內「由左向右」顯示,而新的頁面則是「由右向左」增加。

#### <u>遵守Spine元素指定規則</u>

必需正確依照spine元素內的順序顯示內容
**必需**正確依照spine元素內的順序顯示內容

也必需反應itemref元素內`linear`屬性的`yes``no`。當為`no`時則不應顯示,當為`yes`時,則不應隱藏
**必需**反應itemref元素內`linear`屬性的`yes``no`。當為`no`時則**不應**顯示,當為`yes`時,**不應**隱藏

也必需反應itemref元素中「properties」屬性所指定的`page-spread-right``page-spread-left`
**必需**反應itemref元素中「properties」屬性所指定的`page-spread-right``page-spread-left`

未記載於spine元素中的內容,就不應作為書的內頁所顯示
未記載於spine元素中的內容,**不應**作為書的內頁所顯示

#### <u>不使用已廢止的元素</u>

guide元素已經廢止,故不應使用該語法
guide元素已經廢止,**不應**使用該語法

#### <u>處理Metadata等</u>

當RS支援`<dc:title>`資訊時,會將所記載內容的書名使用於RS中顯示。

當RS支援`<dc:creator>`資訊時,會將所記載內容的作者名使用於RS中顯示。顯示多數作者時的顯示方式及其角色,則由各RS自行判斷處理。

當有多數作者時,出版社可自行決定要在一個`<dc:creator>`中記載全員,或者分開記載。當分開記載時,出版社必需給予該作者`role`的值,以及顯示順序。
當有多數作者時,出版社可自行決定要在一個`<dc:creator>`中記載全員,或者分開記載。當分開記載時,出版社**必需**給予該作者`role`的值,以及顯示順序。

作者名為中文時,不另外加入`file-as`,而以`<dc:creator>`中文姓氏首字筆順排列。

檔案id(unique-identifier)基本上必須使用`urn:isbn:xxxxxxxxxxxxx`(x為數字)標記,不需加入連字號;若無isbn,則使用uuid`urn:uuid:xxxxxxxx:xxxx:xxxx:xxxx:xxxxxxxxxxxx`(x為16進位)。
檔案id(unique-identifier)基本上**必需**使用`urn:isbn:xxxxxxxxxxxxx`(x為數字)標記,不需加入連字號;若無isbn,則使用uuid`urn:uuid:xxxxxxxx:xxxx:xxxx:xxxx:xxxxxxxxxxxx`(x為16進位)。

更新日期若沒特別指示,設定為製作預計的出版日;這項日期RS不應顯示
更新日期若沒特別指示,設定為製作預計的出版日;這項日期RS**不應**顯示

### 導覽文件(EPUB Navigation Document)

#### <u>處理導覽文件</u>

當導覽文件與ncx檔案同時存在時,必需優先處理導覽文件;按照EPUB 3.1規格,製作時可不加入ncx檔案。
當導覽文件與ncx檔案同時存在時,**必需**優先處理導覽文件;按照EPUB 3.1規格,製作時可不加入ncx檔案。

#### <u>顯示導覽文件</u>

導覽文件的顯示方式由RS自行決定,但至少需顯示三層級目錄。本規格預設導覽文件不會包含連結以外的元素
導覽文件的顯示方式由RS自行決定,但至少****顯示三層級目錄。本規格預設導覽文件不會包含連結以外的元素

### 基本樣式表

Expand All @@ -172,25 +168,21 @@ RS可以自行決定是否讓使用者自行切換直排或者橫排。

現狀大多數RS不讓使用者自行切換排版方向,主要是實作切換替代樣式表的環境不多,也缺少檢查用的工具與指標。同時不依存排版方向設計的邏輯方向指定CSS(如margin-start)還尚未完善。使得要切換排版方向非常困難,依照狀況不同會花上相當的時間調整。

#### <u>盡量不使用具Prefix的CSS屬性</u>
#### <u>盡量不使用-epub-Prefix的CSS屬性</u>

雖然在EPUB 3.0規範中為了解決相容性問題,而有制定許多以`-epub-`Prefix來額外處理的CSS屬性,但由於現狀希望盡量不使用各種Prefix,所以本文件不推薦使用任何具Prefix的CSS數值
雖然在EPUB 3.0規範中為了解決相容性問題,而有制定許多以`-epub-`Prefix來額外處理的CSS屬性,但由於在EPUB 3.2版規範中捨棄了這些屬性,所以本文件不推薦使用`-epub-`Prefix的CSS數值

而因為多數行動裝置作業系統使用Webkit作為核心,所以至多在不具Prefix的CSS屬性無法使用時,可以追加`-webkit-`以求相容。為求後續逐步調整變化,建議並列而非取代。
而因為多數行動裝置作業系統使用Webkit作為核心,所以在不具Prefix的CSS屬性無法使用時,可以追加`-webkit-`以求相容。為求後續逐步調整變化,建議並列而非取代。

#### <u>使用@import規則</u>

為求讓各XHTML內連結CSS檔案的記載方式簡單一致,並且讓CSS能夠被克制調整。本文件範本在XHTML內使用linl元素讀取主要CSS,並且使用@import規則,在主要CSS檔案內部讀入所需的各CSS檔案。也就是RS需要實作讓XHTML讀入複數CSS的功能。
為求讓各XHTML內連結CSS檔案的記載方式簡單一致,並且讓CSS能夠被客制化調整。本文件範本在XHTML內使用link元素讀取主要CSS,並且使用@import規則,在主要CSS檔案內部讀入所需的各CSS檔案。也就是RS需要實作讓XHTML讀入複數CSS的功能。

但不推薦在以@import讀入的CSS檔案中,再使用@import功能。

#### <u>適當無視非內建字型</u>

指定字型時,請適當地忽視嵌入字型。
#### <u>需支援嵌入字體</u>

但就排版表現來說,嵌入字型的需求會越來越高,故推薦各RS可實作嵌入字型功能。

對於使用瀏覽器的RS,由於中文字型下載速度較慢,推薦使用瀏覽器快取功能儲存授權字型。
RS需支援嵌入字體。本文件建議將嵌入字體應用於中文、日文以外的語言,如韓文、泰文、越南文等常與中文混合排列的語言;若要使用中文、日文為嵌入字體,則需預先按照使用的文字製作成字體子集(subset)。

#### <u>指定html元素</u>

Expand Down Expand Up @@ -244,7 +236,7 @@ html元素內原則上除了排版方向(writing-mode)與全體字體指定

#### <u>直排時的文字方向</u>

字型規格上,必需依照Unicode Consortium所提供的文件UTR#50,將特定字碼於直排時轉向。
字型規格上,**必需**依照Unicode Consortium所提供的文件UTR#50,將特定字碼於直排時轉向。

```

Expand Down Expand Up @@ -292,18 +284,20 @@ http://www.w3.org/TR/2014/CR-css-writing-modes-3-20140320/#central-baseline

#### <u>造字圖片</u>

透過本文件的圖片縮小語法,讓圖片顯示為內文一字尺寸。用於填補生罕字等內建字體不支援的漢字。不特別指定圖片尺寸極限,但提供推薦值
透過本文件的圖片縮小語法,讓圖片顯示為內文一字尺寸。用於填補生罕字等內建字體不支援的漢字。不特別指定圖片尺寸極限,但提供推薦值

```

圖片尺寸:128x128 px

圖片格式:8bit的透明PNG
圖片格式:8bit的白底PNG

反鋸齒:無

```

(補充:為對應各種閱讀程式的預設底色,以透明底色PNG較佳。但考量到現在多數閱讀程式有對應黑底白字的「夜間模式」,透明底色會讓圖片內容無法辨識,故推薦較為通用的白色底色)

#### <u>指定圖片與Block元素的尺寸以及最大尺寸</u>

目前各瀏覽器上max-heightmax-width的動作有所不同。於RS上實作時,這兩個值應該以RS內內容可顯示範圍為基礎,顯示上請以Readium作為基準。
Expand All @@ -323,9 +317,7 @@ http://www.w3.org/TR/2014/CR-css-writing-modes-3-20140320/#central-baseline
這時元素在非頁面進行方向那一端(直排時為高),在與頁面等寬的狀況下,超過螢幕內空間的話,則無法顯示。

> 說明:當在可顯示區域為高800x寬600px的RS中,一張寬600px的圖片設定寬度為width: 100%。而置放頁面已經有數行文字佔用顯示空間時,RS需要將該圖片送到下一頁,以寬度600px顯示。

>

> 但若該圖片高度為1000px時,則會有200px的空間受到切割而無法顯示。製作方應該不指定寬度為Width: 100%,改為height: 100%,讓寬度依比例自動調整。

#### <u>大於頁面進行方向時</u>
Expand Down Expand Up @@ -384,7 +376,7 @@ RS不應在body元素內部內容顯示空間加入自有的邊界。同時書

``` html

<a epub:type="noteref” class="noteref" href="#註解編號" rel="footnote" >1</a>
<a epub:type="noteref” class="noteref" href="#註解編號" rel="footnote" >1</a>

<div epub:type="footnote" class="footnote" id="註解編號">

Expand Down Expand Up @@ -416,17 +408,17 @@ RS可以利用以上標準語法製作不同顯示方式,如跳出式註解,

列表雖然應該依循語意,使用ol, ul, li等元素標註,但由於需要透過樣式表調整位置,所以建議使用`<p>`元素取代。

導引文件如EPUB Content Documents 3.0.1所記載,列表元素不應該顯示其編號。
導覽文件如EPUB Content Documents 3.0.1所記載,列表元素不應該顯示其編號。

### 表格

目前RS在處理HTML `<table>` 時,表現性尚未最佳化;在分頁與小尺寸螢幕上表現更不理想。若希望表格呈現與原書近似,建議將表格處理為透明的PNG圖片插入頁面中
目前RS在處理HTML `<table>` 時,表現性尚未最佳化;在分頁與小尺寸螢幕上表現更不理想。若希望表格呈現與原書近似,建議將表格處理為白色底色PNG圖片(原因同缺字圖片)插入頁面中

若要使用 `<table>` 來製作表格,請自行測試顯示效果。各RS間顯示結果不一定一致。

### 數學等計算公式

EPUB規範中雖推薦使用MathML來顯示計算公式,但現在各瀏覽器引擎對MathML顯示的支援狀況還過低,以至於許多使用瀏覽器進行電子書顯示的服務無法提供完善的資源。建議將計算公式處理為透明的PNG圖片插入頁面中,並且按照所佔行數來指定高/寬度。
EPUB規範中雖推薦使用MathML來顯示計算公式,但現在各瀏覽器引擎對MathML顯示的支援狀況還過低,以至於許多使用瀏覽器進行電子書顯示的服務無法提供完善的資源。建議將計算公式處理為白色底色PNG圖片插入頁面中,並且按照所佔行數來指定高/寬度。

### 其他CSS的解釋方法

Expand Down Expand Up @@ -1178,7 +1170,7 @@ xhtml檔案 :「xhtml」資料夾

* 但`<p>`與標題用的`<h1>~<h6>`開始標籤之後與關閉標籤之前,請不要換行。

```html
```html

× <h1>

Expand All @@ -1196,22 +1188,18 @@ xhtml檔案 :「xhtml」資料夾

</div>

```
```

* 行內元素(`<span>`等),原則上不換行。

* `<a>`的狀況。當`<a>`不是包覆區塊元素(包括`<p>`在內)時,請不要換行。



此外,當元素內的變化太多,而不曉得層級對應關係時,請不要繼續使用既有的class,而使用專用的class。

像是「想要讓特定角色的台詞使用特別字體」、「信件內文想要加上框線」遇到這些可能會進行樣式修正的部分。與提在元素內加入多數class達到效果,不如新增定義專用的class。

----



## 範本:文字重排型

### 必要的設定檔案
Expand Down

0 comments on commit 4c331d1

Please sign in to comment.