EPUB

EPUB（Electronic Publication，電子出版）是一種電子圖書標準，由國際數位出版論壇（IDPF）提出；檔案的副檔名為`.epub`。這個格式已取代了先前的Open eBook開放電子書標準。

EPUB使用XHTML為構建基礎，UTF-8或UTF-16編碼，分成頁面排版固定的「版式」與文字內容可隨裝置、使用者調整的「自動重新排版」，並可隨需求加入數位版權管理（DRM）。目前已發展至3.3版本並廣為採用。

## 概覽

EPUB是一個自由的開放標準，屬於一種可以「自動重新排版」的內容；也就是文字內容可以根據閱讀設備的特性，以最適於閱讀的方式顯示。EPub檔案內部使用了XHTML或DTBook（一種由DAISY Consortium提出的XML標準）來展現文字、並以zip壓縮格式來包裹檔案內容。EPUB格式中包含了數位版權管理（DRM）相關功能可供選用。

EPUB於2007年9月成為國際數位出版論壇（IDPF）的正式標準，以取代舊的開放Open eBook電子書標準。EPub包括三項主要規格：

- 開放出版結構（Open Publication Structure，OPS）2.0，以定義內容的版面。
- 開放包裹格式（Open Packaging Format，OPF）2.0，定義以XML為基礎的.epub檔案結構。
- OEBPS容納格式（OEBPS Container Format，OCF）1.0，將所有相關文件收集至ZIP壓縮檔案之中。

自 2017 年 1 月 30 日起，IDPF 已與W3C合併。

## 文件格式

### 3.1版

EPUB 3.0推薦規範發布於2011年10月11日。2014年6月26日，EPUB 3.0.1發布，作為3.0的小維護更新。2017年1月5日發布EPUB 3.1，對文字的格式規範進行了重組和清理。EPUB 3.0取代了之前的EPUB 2.0.1版。可以從 IDPF網站找到2.0.1到3.0版本的更新內容。

EPUB 3.0由四個規範組成：

- EPUB出版物3.0，其定義了出版物級別的語義以及EPUB出版物的首要一致性要求。
- EPUB內容文檔3.0，其定義了用於EPUB出版社中的XHTML、SVG和CSS的配置文件。
- EPUB開放容器格式（OCF）3.0，其定義了將一組相關的資源封裝到一個作為EPUB容器的單一文件（ZIP）的文件格式和處理模型。
- EPUB媒體覆蓋3.0，其定義了同步文本和音頻的格式和處理模型。

EPUB 3.0格式旨在解決下列問題：

- 雖然EPUB能夠很好的處理以文本為主的書籍，但其可能不適合那些諸如漫畫書的需要精確布局的出版物。雖然這被認為是在解決一個已經解決了的問題，而不是解決懸而未決的問題。
- 阻礙大多數科技出版物使用EPUB的主要問題是其不支持MathML等式格式。現在，其被作為位圖或SVG圖片被嵌入，不能被螢幕閱讀器處理，也不能與電腦代數系統交互。EPUB 3.0規範加入了對MathML的支持。
- 對EPUB規範的其他批評是該規範缺少對鏈入EPUB書籍、在EPUB書籍之間跳轉、在EPUB書籍之內跳轉的定義和缺少對注釋的定義。對這些連結跳轉的阻礙是因為EPUB容器使用的是ZIP文件。此外，目前還不清楚使用EPUB的內部結構標記和直接連結ZIP的文件結構哪個更好。不能以標準方式注釋EPUB書籍可能會導致難以共享和轉移注釋，進而限制了使用EPUB的情景，特別是在教學環境中，其不能提供和網路相媲美的交互性。

### 2.0.1版

EPUB 2.0發布於2007年10月，2010年9月發布的維護更新版本（2.0.1）對該規範進行了澄清和校正。EPUB 2.0.1版有三個規範組成：

- 開放出版結構（OPS）2.0.1，包含其內容的格式。
- 開放包裝格式（OPF）2.0.1，使用XML描述`.epub`文件的結構。
- 開放容器格式（OCF）2.0.1，以ZIP文檔存檔所有文件。

EPUB內部使用XHTML或DTBook（數位無障礙資訊系統聯盟提供的一種XML標準）表示文本並組織內容文檔，使用CSS的子集提供的布局和格式化。XML用於創建文檔清單、目錄和EPUB元數據。最後，文件被捆綁在一個zip文件之中作為一個包裝格式。

#### 開放出版結構2.0.1

EPUB文件使用XHTML 1.1（或DTBook）構建2.0.1版本書籍的內容。這與之前的版本不同（OEBPS 1.2及更早），其使用的是XHTML的子集。然而，在某些元素上存在限制。EPUB中XHTML文檔的網際網路媒體類型是application/xhtml+xml。對於所需XHTML模塊的列表和限制的描述，可以查看規範的 2.2節。

樣式和布局使用CSS 2.0的子集，參考開放出版結構樣式表。此規範的語法要求閱讀系統僅支持一部分CSS屬性，並附加了一些自定義屬性。自定義屬性包括oeb-page-head、oeb-page-foot和oeb-column-number。可以使用@font-face屬性實現嵌入字體，同時在開放包裝格式的清單中包含字體文件。EPUB中CSS文檔的網際網路媒體類型是text/css。對於支持屬性的列表和詳細的資訊，可以查看規範的 3.0節。

EPUB還要求使用網際網路媒體類型image/png、image/jpeg、image/gif和image/svg+xml支持PNG、JPEG、GIF和SVG圖像。規範同樣允許其他媒體類型，但創作者必須使用支持的類型提供替代內容。對於所有需要的網際網路媒體類型的列表，可以查看規範的 Section 1.3.7節。

必須使用Unicode，內容必須使用UTF-8或UTF-16編碼。這是為了支持國際化和多語種數據。然而，閱讀系統不必提供用於顯示所有Unicode字符所需的字體，可以使用至少一個占位符顯示那些不能完全顯示的字符。

EPUB的XHTML文件的結構如下：

```html4strict
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-TW">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
    <title>Pride and Prejudice</title>
    <link rel="stylesheet" href="css/main.css" type="text/css" />
  </head>
  <body>
    ...
  </body>
</html>
```

### 數字版權管理

EPUB文件可以隨意的作為附加層包含數字版權管理，但這不是規範所要求的。另外，規範沒有指定任何特定的數字版權管理系統，所以出版商可以自由地選擇適合的數字版權管理計劃。然而，未來版本的EPUB（即OCF）可能會指定數字版權管理的格式。

EPUB規範沒有強制或推薦使用特定的數字版權管理計劃。這可能會影響設備對不同數字版權管理系統所支持的水平以及購買電子書的便捷性。因此，不同數字版權管理系統之間的不兼容，可能會使EPUB格式按系統分裂，削弱單一標準格式的優勢，並令消費者感到困惑。

目前，擁有數字版權管理的EPUB文件必須在其ZIP容器的根級META-INF目錄中包含一個名為rights.xml的文件。

### 驗證

一個名為epubcheck的開源工具用於對結構化標記（OPS、OPF、OCF）及XHTML和圖片文件進行驗證並檢查錯誤。該工具可以從命令行運行，也可以在網路應用程式及應用程式中作為庫使用。此工具原作中的大部分工作是在Adobe Systems中完成的。

## 軟體

### Epub閱讀軟體

#### Windows

- Microsoft Edge：微軟為Edge加入支持打開EPUB的功能，但後來又取消此功能。
- SumatraPDF：Windows平台上一款免費閱讀器，支持打開PDF, ePub, MOBI, XPS, DjVu, CHM, CBZ和CBR格式。

#### Linux

- Okular：2005年Google Summer of Code開發的專案、以KPDF為基礎、並代替KPDF、KGhostView、KFax、KFaxview、與KDVI，成為KDE 4的文件檢視器，支援下述檔案： PDF、PostScript、TIFF、CHM、DjVu、DVI、XPS、ODF、FictionBook、Comicbook、Plucker、EPUB、Mobi。

#### macOS、iOS

- Apple Books：Apple的電子書閱讀工具，支援書面材質、翻頁特效、標註、Spotlight、字典功能，能夠透過自家iBooks Store下載電子書。

#### 跨平台

- FBReader：可在Windows、Linux、macOS、iOS、Android，以及多種PDA上使用的開放原始碼閱讀軟體，支援多種檔案格式。
- Mobipocket：PC、PDA、電子書設備（Symbian、 Windows Mobile、 Palm OS、 webOS、Java ME、 BlackBerry、 Psion、Kindle and iLiad），Mobipocket於2005年被Amazon收購。
- Google Play圖書：使用者可以從Google Play購買和下載電子書，該服務提供超過500萬本電子書，Google聲稱它是全球最大的電子書商店。使用者還可以向他們的Google Play圖書帳戶雲端儲存中上傳多達1000個PDF或EPUB格式的電子書，並在多個裝置之間同步。但不支援上傳受到Google Play圖書 數字著作權管理（DRM）保護的電子書。
- Firefox，需插件 EPUBReader

### Epub製作軟體

- Sigil：跨平台的開源epub電子書編輯器，支持Windows、Linux和Mac系統。
- Google文件：Google提供的網頁式辦公套件在線服務，在檔案->下載->EPUB Publication(.epub)之選項。
- LibreOffice：開放的辦公室套裝軟體，在6.0版中增加「匯出為EPUB」之選項。支援Windows、 Mac 及 Linux。
- calibre：自由、開源、跨平台的電子書軟體套裝，可以用來組織、存放以及管理電子書。可能在數字版權管理的限制下轉換電子書的格式。可以閱讀、製作epub以及把epub轉換為html、odt、docx。

## 外部連結

- Epub格式建構指南（亦適用於EPUB）
- Adobe公司所提供的 電子書範本圖書庫
- Infogrid Pacific公司所提供的 電子書範本圖書庫
- （簡體中文）使用EPUB製作數字圖書教程

## 基本資料

- 日語原文：Electronic Publication (EPUB)
- 擴展名：`.epub`
- mime：application/epub+zip
- magic：`PK\x03\x04` (Zip)
- 發行日期：2007年
- 最新版本：3.3
- 最新版本：2023年5月25日
- 使用容器：OEBPS Container Format（OCF，ZIP）
- 擴展自：Open eBook、XHTML、CSS、DTBook
- 標準：ISO/IEC TS 30135
- 免費在線檔案：是