Epub

Electronic Publication (EPUB)
Přípona souboru .epub
Typ internetového média application/epub+zip
Magické číslo PK 0x03 0x04
Tvůrce International Digital Publishing Forum (IDPF)
První verze září 2009
Poslední verze 3.2[1] (15. května 2019)
Předchůdce Open e-book
Typ formátu e-book Souborový formát
Obsažen uvnitř OEBPS Container Format (OCF; Zip)
Rozšiřuje formát Open eBook, XHTML, CSS, DTBook
Standard(y) ISO/IEC TS 30135
Otevřený formát ano
Website http://www.idpf.org/epub

EPUB (electronic publication) je standard vytvořený pro e-booky dle standardu organizace International Digital Publishing Forum (IDPF). Přípona souboru je .epub, ve skutečnosti se jedná o komprimovaný ZIP soubor se specifickou adresářovou a souborovou strukturou. Zip byl zvolen jako kontejner pro svou širokou podporu a známou specifikaci. EPUB je navržen k distribuci a výměně textových dat jako jsou digitální publikace a dokumenty. Definuje způsob prezentace obálek, strukturovaný a sémanticky rozšířený webový obsah - včetně HTML5, CSS, SVG, obrázky a další zdroje pro distribuci ve formátu tzv. „single-souboru“. Obsah je zapsán pomocí XML a HTML5 tagů. Jako formát pro elektronickou publikaci splňuje tzv. reflowable, to znamená, že čtenář si může přizpůsobit rozvržení textu pro konkrétní čtecí zařízení.

Historie

Práce na novém formátu pro elektronické publikace byly dokončeny v září 2007, který nahrazoval do té doby používaný Open e-book (.opf) z roku 1999. V září 2010 vyšla aktualizace 2.0.1. Specifikace ePUB 3.0 IDPF vydalo v říjnu 2011. O 3 roky později ji nahradila menší aktualizace 3.0.1, tedy v červnu 2014. Verze ePUB 3 přinesla i pevné rozvržení či formátovaní pro komiksy a matematiku (MathML). Poslední verze vešla v platnost 5. ledna 2017 na verzi 3.1. Došlo reorganizaci specifikace formátu a pročistění kódu (HTML a CSS), podporuje vzdálené zdroje i nové formáty písma (WOFF 2.0, SFNT). V květnu 2016 IDPF přešlo pod W3C za účelem "plně sladit vydavatelský průmysl a základní webové technologie".
Epub se v začátcích stal neoficiálním českým formátem pro elektronickou knihu (ve světě se šířil pomaleji). Existovaly i kritiky na tento formát. Např. volitelné nastavení DRM, či náročnost ve čtecích zařízeních, které musí nejdříve EPUB rozbalit a zkompilovat než je možné ho číst - tento problém do jisté míry odstraňoval formát MOBI používaný v Amazon Kindle, který je v podstatě zkompilovaným e-book formátem, nicméně v roce 2022 Amazon formát MOBI opustil a naopak začal preferovat EPUB.[2]

Vlastnosti

  • volný a otevřený formát
  • reflowable (zalamování) a změna velikosti textu (barva, pozadí, ...)
  • fixed-layout, umožňuje různé výsledné zobrazení v závislosti na přístrojích
  • metadata
  • plná podpora unicode (kterou ovšem standard EPUB nezaručuje, a třeba v názvech souborů doporučuje držet se pouze ASCII znaků)
  • částečná podpora DAISY, specifikace pro dokumenty určené zrakově omezeným čtenářům
  • částečná podpora MathML
  • podpora HTML5 vybraných tagů
  • rastrové a vektorové obrázky přímo v souboru publikace
  • podpora metadat
  • non-DRM i DRM (volitelné), problém kompatibility, znevýhodněný spotřebitel
  • CSS
  • podpora pro out-of-line a in-line XML k rozšíření funkčnosti EPUBu
  • podpora audio a video obsahu v závislosti na podpoře přístrojů
  • poznámky a záložky
  • PLS (výslovnost informací jak pro rozpoznávání řeči tak syntézu řeči)

Formát souboru

EPUB 3.1 specifikace byla schválena v lednu 2017. EPUB 3.1 nahrazuje předchozí verzi 3.0.1. Ta 3.0 a ta předchozí 2.0.1. Podrobný popis rozdílů mezi 3.0 a 2.0.1 lze nalézt na internetových stránkách IDPF. EPUB 3 se skládá ze šesti specifikací:

  • EPUB Packages 3.1 - definuje sémantiku úrovní a nejdůležitější požadavky na EPUB
  • EPUB Content Documents 3.1 - definuje profily XHTML, SVG a CSS pro použití v rámci EPUB
  • EPUB Media Overlays 3.1 - definuje formát a model pro zpracování synchronizaci textu a zvuku
  • EPUB Open Container Format (OCF) 3.1 - definuje formát souboru a jeho uložení do kontejneru ZIP
  • EPUB Accessibility - definuje přístupnost metadat a jejich požadavky na EPUB.
  • Alternate Style Tags - definuje vzor pro značkování alternativních stylů pomocí mikroformátů.

Struktura

Ukázka adresářové struktury:

mimetype
META-INF/
  container.xml
OEBPS/
  content.opf
  toc.ncx
  kniha, díl, kapitola.html
  obrázek.png
  images/
    soubory lze i nořit.jpg
  css/
    style.css
    vlastní písmo.otf


mimetype je textový soubor bez přípony, který obsahuje pouze deklaraci MIME a to:

application/epub+zip

Je pro všechny EPUBy jednotný.
container.xml slouží jako seznam všech OPF souborů v EPUBu. Podle standardu ovšem zařízení může všechny OPF kromě prvního ignorovat. Zápis je pomocí XML syntaxe:

<?xml version="1.0"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
    <rootfiles>
        <rootfile full-path="OEBPS/content.opf"
            media-type="application/oebps-package+xml" />
        <rootfile full-path="OEBPS/další OPF.opf"
            media-type="application/oebps-package+xml" />
    </rootfiles>
</container>

toc.ncx soubor je zásadní pro orientaci v publikaci. NCX není nic jiného, než obsah knihy, řazení kapitol, napsaný ve XML syntaxi pomocí hypertextového odkazu. Ty se zde dělí na dva typy. Odkazuje se buď na celý soubor kniha.html, nebo i na jeho části. Pokud se odkazuje na části textu v souboru, musí být v souboru nastaven na příslušném místě odkaz, který bude souhlasit se zápisem v NCX souboru. Ukázka kódu pro řazení jednotlivých souborů:

<navPoint id="cokoliv" playOrder="pořadové číslo">
    <navLabel><text>zobrazovaný název</text></navLabel>
    <content src="přílušný soubor.html" />
  </navPoint>

Ukázka kódu pro řazení uvnitř souboru (POZOR, odkaz musí souhlasit s odkazem v HTML souboru):

<navPoint id="cokoliv" playOrder="pořadové číslo">
    <navLabel><text>zobrazovaný název</text></navLabel>
    <content src="přílušný soubor.html#značka např.D1-CH3" />
  </navPoint>

Celý soubor NCX by mohl vypadat přibližně potom takto:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN"
  "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd">
<ncx xmlns="http://www.daisy.org/z3986/2005/ncx/"
  version="2005-1" xml:lang="en-US">
<head>
<meta name="dtb:uid" content="uid"/>
<meta name="dtb:depth" content="1"/>
<meta name="dtb:totalPageCount" content="0"/>
<meta name="dtb:maxPageNumber" content="0"/>
</head>
<docTitle><text>NÁZEV KNIHY</text></docTitle>
<docAuthor><text>autor</text></docAuthor>
<navMap>
<navPoint id="titulní strana" playOrder="1">
<navLabel><text>název knihy</text></navLabel>
<content src="book.html#start"/>
</navPoint>
<navPoint id="předmluva" playOrder="2">
<navlabel><text>předmluva</text></navLabel>
<content src="book.html#preface"/>
</navPoint>
<navPoint id="obsah" playOrder="3">
<navlabel><text>Obsah</text></navLabel>
<content src="obsah.html"/>
</navPoint>
<navPoint id="navpoint-1" playOrder="4">
<navLabel><text>Kapitola 1:aneb jak to začalo</text></navLabel>
<content src="book.html#S1"/>
</navPoint>
<navPoint id="navpoint-2" playOrder="5">
<navLabel><text>Kapitola 2</text></navLabel>
<content src="book.html#S2"/>
</navPoint>
<navPoint id="navpoint-3" playOrder="6">
<navLabel><text>Kapitola 3: aneb jak to dopadlo</text></navLabel>
<content src="book.html#S3"/>
</navPoint>
</navMap>
</ncx>

Samotná kniha je potom psaná v HTML. Formátování obstarávají tagy či externí soubor CSS. Od verze 3.0 jsou podporovány i značky z HTML5.

Software

ePUB je čitelný na rozšířených systémech i hardwarových čtečkách. Programy pro čtení je spousta např.: Amazon Kindle, Google Play Books (Android a iOS) a Apple iBooks, MoonReader, CoolReader, ... Editaci lze provádět v Calibre, Sigil, LaTeX, Genebook, ...

Reference

  1. EPUB 3.2 specification [online]. [cit. 2022-02-27]. Dostupné online. (anglicky) 
  2. Learn About Sending Documents to Your Kindle Library [online]. [cit. 2022-05-04]. Dostupné v archivu pořízeném z originálu dne January 25, 2022. (anglicky) 

Externí odkazy

Zdroj