2010. április 22., csütörtök

ePUB formátumú könyvek 3. - Összerakás és véglegesítés

Az előző írásaimban megismerkedhettünk az ePub formátumú könyvek készítéséhez szükséges előkészületekkel, valamint a konténer állománnyal. Most következik az e-könyv összerakása.

Képek lementése

Amennyiben az eredeti dokumentumunk tartalmaz képeket, akkor azokat szedjük ki az eredeti állományból, és mentsük le egyesével az OEBPS/images mappába.

Forráskód tisztítása

A következő lépésünk az, hogy megtisztítsuk HTML állományunk forráskódját a szövegszerkesztő által belerakott felesleges formázásoktól. Erre lehet külön programot is használni, mint például a Java-alapú Tag Soup, de az a legbiztosabb, ha ezt a műveletet saját kezünkkel végezzük.

Töltsük be a szerkesztőnkbe (továbbra is a PsPad-et ajánlom) a HTML-fájlt, majd tisztítsuk meg a fájlt a következők szerint:

  • A szövegformázások közül a következő tag-ek maradjanak csak meg: <h1>, <h2>, <h3>, <h4>, <p>, <i>, <b> és <img ...>. Az összes többit töröljük, beleértve a <body>-t az előtte lévő, valamint a </body>-t az utána lévő résszel együtt.
  • A megmaradt tag-ekből töröljük ki az összes formázást, beleértve a különböző stíluslapi formázásokat.
  • A képeknél <img ...> a kép útvonalát állítsuk át images/képnév.jpg-re.
Mivel a szövegformázások általában az egész szövegben ugyanazok, ezért a formázásokat legegyszerűbben a szerkesztő Csere funkciójával tudjuk eltávolítani, aholis üresen hagyjuk azt a részt, ahova a csereszöveg kerülne.

Miután megtisztítottuk a forrásfájlt, a következő dolgunk a bekezdések újraformázása. Ez azt jelenti, hogy a könyv minden egyes bekezdését el kell látni <p> és </p> tag-gel. Mivel ehhez egy robot képességeivel kellene vetekednünk, ha manuálisan szeretnénk csinálni, ezért jobban járunk, ha a kód újraformázását kérjük a PsPad-től (HTML menü --> HTML kód újraformázása). Ez automatikusan berakja a megfelelő helyekre a szükséges bekezdésjeleket.


Szöveg szétdarabolása

A szövegünket fel kell darabolnunk fejezetekre, és el kell helyezni a konténer-állomány fájljaiba. Nyissuk meg a title_page.xhtml fájlt. A title részbe vigyük fel a mű szerzőjét és címét, a body részbe különböző címsor stílusokkal adjuk meg ugyanezt (pl. h1: a szerző neve, h2: a mű címe, h3: a sorozat elnevezése, már ha a könyv egy sorozat része). Ezzel készen is vagyunk a címállománnyal.

Ezt követi a copyright.xhtml, ahová a szerzői jogi információkat érdemes bemásolni. Itt is (és a továbbiakban minden fájl esetében, ahová a szövegeket másoljuk) adjuk meg a title tag-nél az adott rész/fejezet címét.

Ezután ismét egy monoton életérzésű rész következik. A chap01... .xhtml állományokba egyesével másoljuk be a HTML-állományunkból az egyes fejezeteket. Minél nagyobb méretű könyvről van, ez annál tovább fog tartani. Végezetül a sablonban megmaradt felesleges fejezet-állományokat (amennyiben vannak ilyenek) töröljük.

Tartalomjegyzék kialakítása

Amennyiben idáig eljutottunk (és még nem fásultunk bele a dologba), akkor a tartalomjegyzék-fájlt kell módosítanunk a fejezetcímeknek megfelelően (toc.ncx). Az egyes fejezetek címeit (a Címsorokká formázott tag-eket) kell felvinnünk a navpoint-ok text részébe. Ismételten felhívom a figyelmet rá, hogy itt mellőzzük az ékezetes karakterek használatát. Amennyiben elfogynak a navpoint-ok, az előzőek alapján tudunk újabbakat hozzáadni a fájlhoz.

Metaadatok megadása

A könyv tartalmi része ezennel fel lett töltve, már csak a könyvolvasók által igényelt metaadatok megadása van hátra. Először is a tartalomjegyzék fájlban adjuk meg a könyv azonosítóját, majd ugyanezt az azonosítót vigyük fel a content.opf állományba is.

A további metaadatokkal (szerző, cím, kiadó, stb.) szintén töltsük fel a content.opf fájlunkat, majd ugyanitt töröljük a felesleges fájlokra mutató jelzéseket a manifest és spine részen (illetve amennyiben bővíteni kell a listát, a fejezetek számának megfelelően bővítsük).

Könyv véglegesítése

És végül elérkeztünk az utolsó lépéshez. A könyv borítóját helyezzük el az images mappában cover.jpg néven. Amennyiben fokozni akarnánk a könyvünk külcsínyét, akkor a stylesheet.css állományban módosítsuk a tag-ekhez kapcsolódó formázásokat. Arra figyeljünk, hogy soha ne pixelben, hanem százalékban adjuk meg a formázási értékeket, mivel a könyvolvasók felbontása más és más lehet.

A formázás után a konténer-állomány részeit csomagoljuk vissza .zip formátumba, majd nevezzük át .epub-ra a kiterjesztését. Betöltjük az e-könyvet a könyvolvasóba, és élvezzük a munkánk jól megérdemelt gyümölcsét.

2010. április 20., kedd

ePUB formátumú könyvek 2. - Konténer állomány

Az ePUB formátumú könyvek igényes kialakítására a továbbiakban szükségünk lesz XML alapismeretekre is. Aki ilyennel nem rendelkezik, vagy kevésbé igényes munkát szeretne végezni, az egyszerűen csak használja a Calibre programot a korábbiakban létrehozott HTML-állomány átalakítására. Ugyanakkor meg kell jegyezni, hogy Calibre használata esetén nem garantált, hogy az egyes fejezetek közti váltás és a tartalomjegyzék működni fog.

Sablon az ePUB formátumhoz


Mindenekelőtt (mivelhogy meglehetősen lusták vagyunk) töltsük le a sample.zip állományt. Ez egy üres, tömörített sablon, amit a továbbiakban fel fogunk tölteni a könyv adataival, tartalmával.

Csomagoljuk ki egy mappába a letöltött állományt. Az állomány a következő fájlokat és mappákat tartalmazza:

  • mimetype: ebből tudja az olvasó/operációs rendszer, hogy milyen típusú állományról van szó
  • META-INF mappa: ez a mappa tartalmaz egy containet.xml állományt, ami azt mutatja, hogy hol található az e-könyv tartalma
  • OEBPS mappa: a könyv tartalmának tényleges helye, és a következőket tartalmazza:
    • images mappa: a könyv képei ide kerülhetnek.
    • Content.opf: egy XML állomány, ami leírja a könyv szerkezetét.
    • toc.ncx: a tartalomjegyzék
    • .xhtml állományok: a könyv tartalmai kerülnek ide.
Nézzük meg részletesen ezeket a fájlokat és mappákat.

mimetype
Ez egy sima ASCII szöveges állomány, ami csak egy sort tartalmaz: "application/epub+zip"

META-INF mappa
Ez a mappa tartalmazza a container.xml állományt, ami a Content.opf fájlra mutat. Ez minden e-könyvnél ugyanaz, viszont ha másik mappát szeretnénk neki beállítani, akkor akkor az itt található állományban is módosítanunk kell az elérési útvonalat.

OEBPS mappa
Ez az a mappa, ahol az e-könyv ténylegesen el van tárolva.

- images mappa: minden, a könyvben szereplő képet ide kell bemásolni, lehetőleg nem túl nagy felbontásban, hogy az e-olvasó képernyőjére is kiférjen.

- Container.opf: ez a fájl adja meg a könyv részeinek listáját, meghatározza azok sorrendjét, és eltárolja a különböző metaadatokat (cím, szerző, ISBN, kiadó, stb.)

A fontosabb metaadatok (tag-ek) a fájlban:
dc:title: a könyv címét tartalmazza
dc:language: a könyv nyelve (magyar nyelv jelzése a hu, más nyelvek esetén a nyelvek kódjában kell keresgélnünk)
dc:author: a könyv szerzője
dc:publisher: a könyvkiadó neve
dc:description: a könyv rövid leírása, általában a fülszöveget célszerű ide felvinni
dc:identifier: a könyv azonosítója. Minden könyvnek egyedi azonosítóval kell rendelkeznie, nem lehet két könyvnek ugyanazt az azonosítót adni. Az egyik legegyszerűbb ilyen módszer, ha azonosítóként a nicknevünk után az aktuális dátumot adjuk meg, pl.: melchiadesian20100422. Az azonosítót mindig az "uuid:" után kell megadni.
dc:subject: a könyv műfaja

A forráskódban ezután következő manifest rész tartalmazza a könyv részeit (a fejezetek állományait), a stíluslap, a borító kép és a tartalomjegyzék-fájl nevét és helyét. Alapértelmezésben ezek a fájlok mind az OEBPS mappában kell, hogy elhelyezkedjenek.

A spine-nal jelölt rész az egyes fejezetek olvasási sorrendjét mutatja úgy, ahogyan az a tartalomjegyzékben meg fog jelenni. Ügyeljünk arra, hogy az idref tag utáni szövegek mindig megegyezzenek a manifest rész sorainak id tagjaival. Amennyiben a mi könyvünk kevesebb állományból áll, mint amennyi a fejezeteknek biztosítva van, a többi állományt nyugodtan töröljük.

- toc.ncx
Ez a fájl a tényleges tartalomjegyzék, ami alapján a könyvolvasók képesek az egyes fejezetek között navigálni. Minden egyes itt megadott fejezet új oldalon fog kezdődni. Amire itt figyelni kell:

  • a dbt:uid részen lévő azonosító azonos legyen az opf állományban megadott azonosítóval.
  • doctitle: a könyv címe, ahogyan az megjelenik a könyvolvasó szoftverben
  • navpoint tag:
    • a navpoint tag-ek határozzák meg az egyes fejezetek sorrendjét
    • id: Az adott fejezet azonosítója, meg kell egyeznie az .opf fájl spine részében foglalt azonosítókkal
    • playOrder: Az egyes fejezetek sorrendjét adják, folyamatosan növekvőnek kell lenniük aszerint, hogy hogyan követik egymást a könyvben.
    • text: Az adott fejezet elnevezése. Annak ellenére, hogy az ePUB formátum az UTF-8 karakterkódolást támogatja, gyakran előfordul, hogy a tartalomjegyzéket képtelen megjeleníteni az ékezetes betűk miatt. Ezért javasolt ezeket mellőzni. Ha a könyv fejezetei csak sorszámozottak, akkor az "x. fejezet" szövegek teljesen jók lesznek, minden egyéb esetben pedig ékezet nélkül adjuk meg itt a fejezetcímeket, pl.: "Eloszo"
- page-template.xpgt: Ez az állomány nem része az alapértelmezett ePub formátumnak, de az olyan asztali könyvolvasó programok, mint pl. az Adobe Digital Editions ennek segítségével sokkal könnyebben átláthatóvá teheti a szövegek szerkezetét.

- chapX.html fájlok: ezek tartalmazzák a tényleges szöveget, fejezetekre bontva, ahol X az adott fejezet sorszáma.

A következő részben a könyv feldarabolásáról és a végleges formázásról ejtünk szót.

2010. április 19., hétfő

ePUB formátumú könyvek 1. - Előkészítés

A különféle könyvolvasó kütyük megjelenésével együtt kezdenek elterjedni az ePUB formátumú könyvek is. Igaz, már rengeteg formátum jelent meg, de személy szerint én ezt találom a leghasználhatóbbnak mind közül.
Elsősorban azért, mert szinte valamennyi könyvolvasó felismeri, és egész jól meg tudja jeleníteni őket. Másodsorban azért, mert akár mi magunk is létre tudunk hozni ilyen formátumú könyveket. Nem egy ismerősöm van, aki innen-onnan lopott "kapott", többnyire Word vagy PDF formátumú elektronikus könyvekkel rendelkeznek, melyek többnyire alig olvashatóak, az előre rögzített formázások vagy a különböző ékezethibák miatt. Ezért ajánlom ezt a cikksorozatot azoknak, akik szeretnének kényelmesen elektronikus könyveket olvasni, netalán maguk is létrehozni igényes elektronikus könyveket.

Milyen szoftverekre lesz szükség?


Szükségünk lesz az elmaradhatatlan szövegszerkesztőre. Amennyiben nem rendelkezünk ilyennel (de most őszintén - kinek a PC-jén nem figyel ott a Word?), akkor az OpenOffice programcsomagot bármikor használhatjuk (http://hu.openoffice.org).
Ezen kívül kelleni fog nekünk egy egyszerű szövegszerkesztő, ami az ePUB fájl összerakásában fog nekünk segíteni. Ajánlott viszont, hogy a HTML, XHTML formázásokat ismerje, mert így jelentősen meg fogja könnyíteni a munkánkat. Személy szerint a PsPad-et (http://www.pspad.com) tudom ajánlani.
Egy tömörítőprogramra is szükségünk lesz, de akár a Total Commander beépített tömörítője is megfelelő lehet a .zip formátumú állományaink elkészítésére.


Szöveg előkészítése


Amennyiben PDF formátumban van meg az elkészítendő e-könyvünk, célszerű átkonvertálni RTF vagy DOC állománnyá. Erre nagyon jól használható a PDF To Word Online konverter (http://www.pdftoword.com). Ha minden kötél szakad, akkor pedig marad a kopipészt, de annak megvan az a hátránya, hogy minden sor végére berak egy Entert, és azt piszkosul fárasztó kiszedni.


Amennyiben már átkonvertáltuk a szöveget, a következő lépéseket érdemes elvégezni:
  1. Élőfej és élőláb eltávolítása
  2. Sorkizárás megszüntetése
  3. Oldaltörések eltávolítása
  4. Automatikus szövegelválasztás kikapcsolása
Miután ezekkel is megvagyunk következik a fejezetek elhatárolása a különböző címsorstílusokkal. Amennyiben azt szeretnénk, hogy tudjunk lépkedni a különböző fejezetek között, a fejezetcímeket ennek megfelelően kell megformázni:


1. rész --> Címsor 1 stílus
   1. fejezet --> Címsor 2 stílus
   2. fejezet --> Címsor 2 stílus
        1. alfejezet --> Címsor 3 stílus


... és így tovább. Amennyiben a könyv csak fejezetekre van osztva, és nincsen további tagolás, akkor elég csak egy stílust használni. A lényeg, hogy a szövegtörzstől megkülönböztessük a címeket a Címsor mezőkkel.


Mire figyeljünk még?


Tartalomjegyzék


Nem kell a szövegbe, a tartalomjegyzéket a címsorok alapján jönnek majd létre.


Képek


Amennyiben a képek nem képezik szerves részét a szövegnek, vegyük ki őket. Amennyiben mégis fontosnak ítéljük meg a képeket, akkor lehetőleg ne tíz megapixeles képek legyenek, bőven elég a kb. 300*100 képpontos méret is.


Hivatkozások


A hivatkozásokat szintén mellőzzük a dokumentumunkból. E-könyv olvasón nem akarunk elnavigálni egy weboldalra sem (sok készüléken nem is tudunk), így azokra nincs szükség. Viszont ha mégis, akkor célszerű Word-öt használni, mivel azzal tudjuk a legjobban lekezelni.


Dokumentum mentése


Ahhoz, hogy ePUB formátumot hozzunk létre, UTF-8 karakterkódolással kell elmentenünk a kész dokumentumunkat, HTML formátumban. Alapértelmezésben a szövegszerkeszők a Kelet-európai Windows (ISO-8859-2) formátumot használják, amit a következőképpen tudunk átállítani:


Microsoft Office Word 2007: Office gomb --> Word beállításai --> Testreszabás --> Speciális --> Webes beállítások --> Kódolás: Unicode (UTF-8)
Microsoft Office Word 2003: Eszközök --> Beállítások --> Webes beállítások --> Kódolás: Unicode (UTF-8)
OpenOffice Writer: Eszközök --> Beállítások --> Betöltés/Mentés --> HTML kompatibilitás --> Karakterkódolás: Unicode (UTF-8)


Ezek után már csak el kell mentenünk a dokumentumot weblapként. Ezzel kész is vagyunk a dokumentum előkészítésével. A következő részben a tényleges e-könyvet tartalmazó konténer állományt fogom bemutatni.