diff --git a/tdpf-epub3guide.md b/tdpf-epub3guide.md index 9373ba4..42a3bd2 100644 --- a/tdpf-epub3guide.md +++ b/tdpf-epub3guide.md @@ -74,7 +74,7 @@ EPUB 3內使用HTML5與CSS3等網頁技術,各作業系統與瀏覽器組版 EPUB 3內的各種內容,包括包裝文件、導覽文件、內容文件、樣式表等通稱為「文件檔案」。 -###文件檔案的基礎 +### 文件檔案的基礎 #### 文字編碼 @@ -98,15 +98,11 @@ EPUB 3內的各種內容,包括包裝文件、導覽文件、內容文件、 適當忽略原始碼中的註解行、可任意配置元素中屬性的順序,各屬性間如果有一個以上的空白、換行或Tab等,請適當解譯,與支援Web標準的現代瀏覽器具備相同的嚴謹度與自由性。 -#### META-INF中的container.xml - -本文件不提供具有兩個以上OPF檔案的範例,若有兩個以上OPF檔案時,請依照EPUB 3規範適當處理。 - ### 包裝文件(Package Document/OPF檔案) #### 遵守翻頁方向 -書的翻頁方向必需依從包裝文件中Spine元素的`page-progresson-direction`屬性,不管內容文件或者樣式表中使用哪一種`writing-mode`。 +書的翻頁方向**必需**依從包裝文件中Spine元素的`page-progresson-direction`屬性,不管內容文件或者樣式表中使用哪一種`writing-mode`。 而XHTML內容文件中的文字排列方向,則依照各XHTML中Body元素所指定的`writing-mode`屬性。當`writing-mode`指定於html元素時,必需繼承於body元素。 @@ -114,17 +110,17 @@ EPUB 3內的各種內容,包括包裝文件、導覽文件、內容文件、 #### 遵守Spine元素指定規則 -必需正確依照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元素中的內容,就**不應**作為書的內頁所顯示。 #### 不使用已廢止的元素 -guide元素已經廢止,故不應使用該語法。 +guide元素已經廢止,故**不應**使用該語法。 #### 處理Metadata等 @@ -132,23 +128,23 @@ guide元素已經廢止,故不應使用該語法。 當RS支援``資訊時,會將所記載內容的作者名使用於RS中顯示。顯示多數作者時的顯示方式及其角色,則由各RS自行判斷處理。 -當有多數作者時,出版社可自行決定要在一個``中記載全員,或者分開記載。當分開記載時,出版社必需給予該作者`role`的值,以及顯示順序。 +當有多數作者時,出版社可自行決定要在一個``中記載全員,或者分開記載。當分開記載時,出版社**必需**給予該作者`role`的值,以及顯示順序。 作者名為中文時,不另外加入`file-as`,而以``中文姓氏首字筆順排列。 -檔案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) #### 處理導覽文件 -當導覽文件與ncx檔案同時存在時,必需優先處理導覽文件;按照EPUB 3.1規格,製作時可不加入ncx檔案。 +當導覽文件與ncx檔案同時存在時,**必需**優先處理導覽文件;按照EPUB 3.1規格,製作時可不加入ncx檔案。 #### 顯示導覽文件 -導覽文件的顯示方式由RS自行決定,但至少需顯示三層級目錄。本規格預設導覽文件不會包含連結以外的元素 +導覽文件的顯示方式由RS自行決定,但至少**需**顯示三層級目錄。本規格預設導覽文件不會包含連結以外的元素。 ### 基本樣式表 @@ -172,25 +168,21 @@ RS可以自行決定是否讓使用者自行切換直排或者橫排。 現狀大多數RS不讓使用者自行切換排版方向,主要是實作切換替代樣式表的環境不多,也缺少檢查用的工具與指標。同時不依存排版方向設計的邏輯方向指定CSS(如margin-start)還尚未完善。使得要切換排版方向非常困難,依照狀況不同會花上相當的時間調整。 -#### 盡量不使用具Prefix的CSS屬性 +#### 盡量不使用-epub-Prefix的CSS屬性 -雖然在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-`以求相容。為求後續逐步調整變化,建議並列而非取代。 #### 使用@import規則 -為求讓各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功能。 -#### 適當無視非內建字型 - -指定字型時,請適當地忽視嵌入字型。 +#### 需支援嵌入字體 -但就排版表現來說,嵌入字型的需求會越來越高,故推薦各RS可實作嵌入字型功能。 - -對於使用瀏覽器的RS,由於中文字型下載速度較慢,推薦使用瀏覽器快取功能儲存授權字型。 +RS需支援嵌入字體。本文件建議將嵌入字體應用於中文、日文以外的語言,如韓文、泰文、越南文等常與中文混合排列的語言;若要使用中文、日文為嵌入字體,則需預先按照使用的文字製作成字體子集(subset)。 #### 指定html元素 @@ -244,7 +236,7 @@ html元素內原則上除了排版方向(writing-mode)與全體字體指定 #### 直排時的文字方向 -字型規格上,必需依照Unicode Consortium所提供的文件UTR#50,將特定字碼於直排時轉向。 +字型規格上,**必需**依照Unicode Consortium所提供的文件UTR#50,將特定字碼於直排時轉向。 ``` @@ -292,18 +284,20 @@ http://www.w3.org/TR/2014/CR-css-writing-modes-3-20140320/#central-baseline #### 造字圖片 -透過本文件的圖片縮小語法,讓圖片顯示為內文一字尺寸。用於填補生罕字等內建字體不支援的漢字。不特別指定圖片尺寸極限,但提供推薦值 +透過本文件的圖片縮小語法,讓圖片顯示為內文一字尺寸。用於填補生罕字等內建字體不支援的漢字。不特別指定圖片尺寸極限,但提供推薦值: ``` 圖片尺寸:128x128 px -圖片格式:8bit的透明PNG +圖片格式:8bit的白底PNG 反鋸齒:無 ``` +(補充:為對應各種閱讀程式的預設底色,以透明底色PNG較佳。但考量到現在多數閱讀程式有對應黑底白字的「夜間模式」,透明底色會讓圖片內容無法辨識,故推薦較為通用的白色底色) + #### 指定圖片與Block元素的尺寸以及最大尺寸 目前各瀏覽器上max-height與max-width的動作有所不同。於RS上實作時,這兩個值應該以RS內內容可顯示範圍為基礎,顯示上請以Readium作為基準。 @@ -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%,讓寬度依比例自動調整。 #### 大於頁面進行方向時 @@ -384,7 +376,7 @@ RS不應在body元素內部內容顯示空間加入自有的邊界。同時書 ``` html -1 +1
@@ -416,17 +408,17 @@ RS可以利用以上標準語法製作不同顯示方式,如跳出式註解, 列表雖然應該依循語意,使用ol, ul, li等元素標註,但由於需要透過樣式表調整位置,所以建議使用`

`元素取代。 -導引文件如EPUB Content Documents 3.0.1所記載,列表元素不應該顯示其編號。 +導覽文件如EPUB Content Documents 3.0.1所記載,列表元素不應該顯示其編號。 ### 表格 -目前RS在處理HTML `` 時,表現性尚未最佳化;在分頁與小尺寸螢幕上表現更不理想。若希望表格呈現與原書近似,建議將表格處理為透明的PNG圖片插入頁面中。 +目前RS在處理HTML `
` 時,表現性尚未最佳化;在分頁與小尺寸螢幕上表現更不理想。若希望表格呈現與原書近似,建議將表格處理為白色底色PNG圖片(原因同缺字圖片)插入頁面中。 若要使用 `
` 來製作表格,請自行測試顯示效果。各RS間顯示結果不一定一致。 ### 數學等計算公式 -EPUB規範中雖推薦使用MathML來顯示計算公式,但現在各瀏覽器引擎對MathML顯示的支援狀況還過低,以至於許多使用瀏覽器進行電子書顯示的服務無法提供完善的資源。建議將計算公式處理為透明的PNG圖片插入頁面中,並且按照所佔行數來指定高/寬度。 +EPUB規範中雖推薦使用MathML來顯示計算公式,但現在各瀏覽器引擎對MathML顯示的支援狀況還過低,以至於許多使用瀏覽器進行電子書顯示的服務無法提供完善的資源。建議將計算公式處理為白色底色PNG圖片插入頁面中,並且按照所佔行數來指定高/寬度。 ### 其他CSS的解釋方法 @@ -1178,7 +1170,7 @@ xhtml檔案 :「xhtml」資料夾 * 但`

`與標題用的`

~

`開始標籤之後與關閉標籤之前,請不要換行。 - ```html +```html ×

@@ -1196,22 +1188,18 @@ xhtml檔案 :「xhtml」資料夾 - ``` +``` * 行內元素(``等),原則上不換行。 * ``的狀況。當``不是包覆區塊元素(包括`

`在內)時,請不要換行。 - - 此外,當元素內的變化太多,而不曉得層級對應關係時,請不要繼續使用既有的class,而使用專用的class。 像是「想要讓特定角色的台詞使用特別字體」、「信件內文想要加上框線」遇到這些可能會進行樣式修正的部分。與提在元素內加入多數class達到效果,不如新增定義專用的class。 ---- - - ## 範本:文字重排型 ### 必要的設定檔案