måndagen den 20:e februari 2012

Omslaget - skapa en separat omslagsfil till din bok


De flesta programvaror som finns tillgängliga för att skapa en EPUB-fil skapar inte själva omslagssidan på något snyggt sätt. Jag tänkte beskriva hur man för hand lägger in en egen omslagssida som ger ett bra resultat. Det här är alltså ett sätt att göra detta på – det finns säkert en mängd andra lösningar som också fungerar.

Omslagsbilden
Först behöver vi själva omslagsbilden, som vi för enkelhetens skull säger ska vara i jpeg-format. Majoriteten av alla läsplattor har för närvarande en skärm som visar 600 x 800 pixlar. Det finns en del plattor som visar upp till 1200 pixlar, så om du vill ”framtidssäkra” din bok i alla fall ett par år, så välj att skapa omslaget med 1200 pixlars höjd. Döp bilden till cover.jpg. Omslaget ska inte behöva vara större än ca 400 kb om man håller sig till denna storlek.


Omslagssidan
Skapa därefter den xhtml-fil som ska ligga först i boken och där omslaget visas. Skapa en ren text-fil i till exempel ”Anteckningar/Notepad” eller något annat rent textbehandlingsprogram (inte word). Om du använder Sigil, kan du också där skapa ett nytt dokument och redigera i kodläget.
Skriv in följande kod på en helt ren sida:

<?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 xml:lang="sv" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Omslag</title>
</head>
<body style="text-align:center;">
<div>
<img src="images/cover.jpg" alt="omslagsbild" style="height:100%; text-align:center;"/>
</div>
</body>
</html>

Som språk ovan har jag angett svenska (xml:lang="sv"). Det som står där ska avspegla det språk som används i filens innehåll och attribut som man ger olika element på sidan. Till exempel har jag skrivit alt="omslagsbild". Eftersom språket är angivet som svenska så vet då förhoppningsvis läsarprogrammet att just detta ska tolkas som svenska.

Döp filen till coverpage.xhtml. OBS! Sökvägen till omslagsbilden måste anpassas till den struktur du har i din bok. I detta exempel ligger omslaget i en separat mapp som heter images.

Jag har valt att lägga in stilarna för centrering och bildhöjd direkt i koden. Detta beror på att det är svårt att skapa en stilmall i css som blir enhetlig på alla läsplattor och surfplattor. Css-koden tolkas tyvärr lite olika i olika läsarprogram (iBooks, Digital Editions, osv). Just omslaget vill man gärna att det ska ligga centrerat och fylla ut sidan på något bra sätt och det här sättet brukar fungera.

Nu kan man tycka – varför skriver jag ibland "cover" och ibland "omslag". Varför inte hålla sig till ett språk? Jag brukar döpa alla bilder och innehållsfiler på engelska. Då undviker man automatiskt å, ä. ö. Däremot all text som på något vis kan synas i läsarprogrammet, eller dyka upp ifrån en alt-tagg bör vara på samma språk som det boken är skriven på.

opf-filen
Övriga filer som måste korrigeras är din opf-fil, vanligen kallad content.opf eller package.opf, samt eventuellt din innehållsförteckning toc.ncx.

I opf-filen behöver man lägga in referensen till bilden i <metadataoch i <manifestsamt överst i listan för <spineså att omslaget visas först i boken.

<metadata>
...
<meta name="cover" content="coverimage"/>
</metadata>


<manifest>
<item id="coverimage" href="images/cover.jpg" media-type="image/jpeg"/>
<item id="coverpage" href="coverpage.xhtml" media-type="application/xhtml+xml"/>
...
</manifest>


<spine toc="ncx">
<itemref idref="coverpage"/>
...
</spine>

Innehållsförteckningen, toc.ncx
Om du vill ha med omslaget i din innehållsförteckning, toc.ncx, läggs referensen till detta in där. Observera att man måste ange rätt ”playOrder” som ska vara playOrder=”1”. Detta innebär att man måste numrera om allt annat i innehållsförteckningen, vilket kan vara tidsödande om den är omfattande. Nodens id måste också vara unikt, men behöver inte vara numrerat i någon ordning. Detta id kan namnges valfritt (så länge man håller sig till a-z, siffror, - och _, men undviker andra tecken och mellanslag).

<navPoint id="coverimage" playOrder="1">
<navLabel>
<text>Omslag</text>
</navLabel>
<content src="coverpage.xhtml"/>
</navPoint>

Kommentar angående Indesign CS5.5
När man skapar en EPUB-fil från Indesign CS5.5 läggs omslagsbilden in först i den första filen i boken. Dessutom skapas en kopia på omslagsbilden som refereras till i opf-filen för att vara den bild som ska synas i läsplattornas bokhyllevyer, och för att sidan ska dyka upp som första sida i iPad. Detta är för mig en underlig omväg man har tagit. Man behöver inte ha två omslagsbilder i boken. Huvudsaken är att den meta-tagg jag nämner ovan finns med och att den hänvisar till omslagsbilden. Mycket bättre hade varit om Indesign hade skapat en separat fil för omslaget, såsom jag har gått igenom ovan. Separata innehållsfiler är det enda helt säkra alternativet för att skapa sidbrytningar i EPUB. Sidbrytning finns som css-stil, men alla läsarprogram ”lyder” inte denna stil.

lördagen den 12:e november 2011

Ska man inkudera fonter i EPUB?

Som det ser ut just nu i skrivande stund så rekommenderar jag inte att man använder fonter i EPUB-filen. Man kan till exempel från Indesign välja att exportera med fonterna, och får då WARNING i epubcheck. Det är med andra ord inte något fel på filen, men en varning att det kanske inte kommer att fungera optimalt. Min erfarenhet är att det kan uppstå problem i olika läsarprogram och e-boksappar om man skickar med fonter, så avstå gärna från det.

Hur ska man göra då om man vill ha lite olika stilar i sin bok?
Jo, använd de så kallade basfonterna eller generiska fonterna som finns att tillgå i css, det vill säga
serif, sans-serif och monospace. Det brukar räcka för att få fram de olika känslorna man vill förmedla genom att använda sig av olika fonter. Observera att de generiska fonterna i css skrivs inte med "flärpar" som andra inkluderade fonter. Det ska med andra ord se ut enligt följande:

.minfontstil {
font-family: serif;
}

Det här är med andra ord FEL:

.minfelaktigafontstil {
font-family: "serif";
}

Fonter och EPUB3
I EPUB3 kommer fonthanteringen att ändras så att inkluderade fonter stöds enligt vissa kriterier (CSS Fonts Module Level 3). Det finns mer om det i EPUB3-specen
http://idpf.org/epub/30/spec/epub30-contentdocs.html#sec-css-fonts.

lördagen den 18:e juni 2011

Om epubcheck och Oxygen

I den senaste versionen 12.2 av Oxygen XML (www.oxygenxml.com) ingår nu epubcheck, och man kan söka/ersätta i alla filer i den EPUB som är öppen (inte bara i en innehållsfil i taget som i tidigare versioner). Verkligen en stor förbättring av detta redan utmärkta program för alla som redigerar EPUB-filer ofta. Rekommenderas varmt!

onsdagen den 18:e maj 2011

Använda epubcheck lokalt

Epubcheck är ett verktyg för att kontrollera att en EPUB-fil följer den standard som IDPF har satt. Epubcheck upptäcker en mängd olika typer av fel i en EPUB-fil. Det som kontrolleras är OCF container-struktur, att kodning är korrekt i OPF och OPS, och att allt bokinnehåll är korrekt refererat till via olika metadata-taggar. Epubcheck kan köras lokalt på datorn via kommandofönster eller on-line. Jag tänkte beskriva här hur man kör epubcheck lokalt på PC.

För att kunna köra epubcheck lokalt måste Java Runtime vara installerat (1.5 eller högre). Finns inte java installerat på datorn kan det hämtas via http://www.java.com/


Därefter behöver man ladda ned själva programvaran epubcheck. Den finns att hämta via http://code.google.com/p/epubcheck/. Välj där att ladda ned ”Stable build” och därefter den senaste versionen.

Alla filer som behövs för programmet ligger i ett zip-arkiv som man zippar upp till en mapp på sin c:-disk som heter till exempel ”epubcheck” (valfritt namn).

Köra epubcheck, steg för steg

1. Öppna ett kommandofönster genom att gå till Startmenyn. Öppna mappen Tillbehör och klicka på Kommandotolken.

2. I kommandofönstret som dyker upp skriver man efter prompten (>):
java –jar och ett mellanslag.



3. Öppna i ett fönster bredvid, den mapp där epubcheck-programmet finns nedladdat. Dra den fil som heter epubcheck-x.x.jar till kommandofönstret och släpp där (det som markeras med x i programfilen är den aktuella version av programmet som gäller, i detta exempel är det version 1.2). Skriv därefter in ett mellanslag efter programnamnet. Det ska då se ut enligt nedan.



4. Dra därefter den EPUB-fil som ska kontrolleras till kommandofönstret och tryck på retur.



5. Innehåller inte filen några fel får man meddelandet nedan.



6. Om EPUB-filen innehåller fel kan man få meddelanden ungefär som nedan.



De felmeddelanden som syns ovan betyder att:
- datumet som finns på rad 7 i filen package.opf inte är korrekt inlagt
- det är ett fel på rad 16 och 17 i innehållsförteckningen toc.ncx.
Detta är bara ett par exempel på felmeddelanden som kan uppstå.

Rätta en EPUB-fil

Arbetar man ofta med EPUB-filer som kan behöva rättas kan det vara värt att investera i till exempel programmet Oxygen XML (http://www.oxygenxml.com/) som är en xml-hanterare där man kan öppna en EPUB-fil och redigera direkt.

Ett något mer besvärligt alternativ är att dra ut en innehållsfil ur en EPUB via något zip-program, redigera, och sen stoppa tillbaka filen igen.

OBS! Zippa inte upp hela EPUB-filen eftersom det med stor sannolikhet blir fel när den zippas igen. En EPUB-fil är i själva verket en vanlig zip-fil, organiserad på ett specifikt sätt. Öppna zip-arkivet utan att zippa upp och dra endast ut den fil som ska redigeras ur zip-arkivet, redigera i någon texthanterare (anteckningar) och lägg tillbaka den igen.

Epubpreflight

Epubpreflight är ett program där man kollar sina EPUB-filer på exakt samma sätt som i epubcheck. Det epubpreflight framför allt gör är att kontrollera att EPUB-filens innehållsfiler inte är för stora. Textfilerna får inte överskrida 300KB okomprimerade och bildfiler ska inte överskrida 10MB. EPUB-filer som innehåller för stora filer kan nämligen inte alls öppnas på en del e-boksläsare.

lördagen den 29:e januari 2011

Från Indesign CS5 till epub

Har nu testat lite att skapa epub från Indesign CS5. Exporten från CS4 var ju inte så bra men en hel del verkar har förbättrats till CS5. Till exempel blir epub-filen nu uppdelad i småfiler som den ska vara även om man har sin bok i en enda lång fil i stället för i en ”Indesign book”. Jag har dock förstått att har man en mer komplicerad bok med fotnötter i till exempel så blir dessa fellänkade i epub-filen om man lägger in dessa en enda fil. Här måste man fortfarande dela upp boken i småfiler och skapa en ”book” innan man exporterar till epub.

Jag skapade en mycket enkel bok med några paragrafstilar som en huvudrubrik, brödtext utan indrag, brödtext med indrag, indragen vänstermarginal och centrerad paragraf. Sen behövdes teckenstilar som kursiv, bold och jag testade även kapitäler.
Jag la in omslagsbilden på en separat sida först i boken. På sidan 2 skapade jag en innehållsförteckning där allt formaterat som huvudrubrik ingick.
För att få in rätt metadata i epub-filen måste man mata in information om filen i ”file ->file info”.



Sen var det dags för export till epub.

Där bockar man i ”Include document metadata”, skriver i förlagets namn, och som unique identifier är ISBN-numret lämpligt. Under fliken Images kan man gärna välja ”image quality high” för jpg-bilderna. Under fliken Contents valde jag följande inställningar:



Resultatet ser helt ok ut i Digital Editions:



Som synes så följer teckenstilarna kursiv och bold med och alla indrag fungerar som de ska. Jag har valt att göra kapitälerna i den första paragrafen som en textstil i mindre font applicerad på versaler i stället för att använda den inbyggda stilen kapitäler. Css-stilen ”small-caps” fungerar nämligen inte i alla läsare, inte i Digital Editions t.ex.

Om man använder kapitäler ser stilen som kommer ut från Indesign ut så här:
span.smallcaps {
font-weight: normal;
font-style: normal;
font-variant: small-caps;
}

Den stil jag har definierat blir:
span.smallcaps {
font-weight: normal;
font-style: normal;
font-size: 0.7em;
}
I Firefox plug-in för att läsa epub-filer:



Dags för epubcheck!
När man börjar gräva lite mer i epub-filen uppstår de första ojojoj-en.
En körning genom epubcheck 1.1 ger följande ERROR:
ERROR: c:\[filepath]/content.opf(10):date value '' is not valid. The date must be in the form YYYY, YYYY-MM or YYYY-MM-DD (e.g., "1993", "1993-05" or "1993-05-01"). See http://www.w3.org/TR/NOTE-datetime.

Detta innebär att metadatan <dc:date> inte är ifylld! Skrutt!
En vidare titt i opf-filen visar också att språket inte är satt rätt trots att jag har valt svenska som språk för alla paragrafstilar. Det här kanske kan sättas generellt för indesign-filen på annat sätt, men jag har inte lyckats lista ut hur.

Alltså: Man måste in i opf-filen och rätta upp några saker:
1. Sätta datum rätt. <dc:date>2011-01-29</dc:date> (Det räcker med bara år, eller år-månad.)
2. Sätta språket till <dc:language>sv</dc:language> om boken är på svenska.
3. Lägga till taggen <meta name=”cover” content=”coverimage-fmt-jpeg” /> som gör att omslagsbilden dyker upp som en tumnagel i t.ex. iPadens bibliotek. (Det som ska stå i content=”…” är omslagsbildens item id som finns i manifestet. Se nedan.)

<package xmlns="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/" unique-identifier="bookid" version="2.0">
<metadata>
<meta name="generator" content="Adobe InDesign"/>
<dc:title>Testbok</dc:title>
<dc:creator>Magdalena Kanger</dc:creator>
<dc:subject/>
<dc:description/>
<dc:publisher>Förlaget</dc:publisher>
<dc:date>2011-01-29</dc:date>
<dc:source/>
<dc:relation/>
<dc:coverage/>
<dc:rights/>
<dc:identifier id="bookid">urn:uuid:9789120110129</dc:identifier>
<dc:language>sv</dc:language>
<meta name=”cover” content=”coverimage-fmt-jpeg” />
</metadata>
<manifest>
<item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>
<item id="testbok" href="testbok.xhtml" media-type="application/xhtml+xml"/>
<item id="testbok-1" href="testbok-1.xhtml" media-type="application/xhtml+xml"/>
<item id="testbok-2" href="testbok-2.xhtml" media-type="application/xhtml+xml"/>
<item id="coverimage-fmt-jpeg" href="images/coverimage_fmt.jpeg" media-type="image/jpeg"/>
<item id="logo-fmt-jpeg" href="images/logo_fmt.jpeg" media-type="image/jpeg"/>
<item id="css" href="template.css" media-type="text/css"/>
</manifest>
<spine toc="ncx">
<itemref idref="testbok"/>
<itemref idref="testbok-1"/>
<itemref idref="testbok-2"/>
</spine>
</package>



Använda egen stilmall?
Om man gör böcker som ofta har likartad layout kan man fördefiniera en stilmall och välja att inte exportera med stilar från Indesign utan klicka i ”Use Existing CSS File” och importera sin egen. Man måste då förstås använda paragraf- och textstilar i Indesign med namn som motsvarar de man har definierat i sin egen css-mall.

Ladda ned filerna:
Här finns den testbok jag har gjort i Indesign CS5 samt den epub-fil jag fick ut samt en uppdaterad epub-fil med rätt datum osv.
Det jag inte gillar med denna bok är att omslagsbilden har hamnat i samma fil som titelsidan. Jag har därför uppdaterad stilmallen med en ”page-break-before: always;” för stilen ”title”. Det fungerar i en del läsare, men inte alla.
Man kan få mycket bättre kontroll över omslagsbilden om man lägger in den i epub-filen separat och inte tar med den i Indesign, men det är lite mer hantverk och en helt annan historia.
Man kan också rensa bort en del onödigheter i css-mallen som exporteras ut från Indesign. Till exempel sätts font-färgen på alla fonter till svart om man inte definierat något. Det är omöjligt att välja bort (jag har frågat åtminstone en Indesign-expert på något forum). På vissa läsare riskerar man då att texten inte syns överhuvudtaget om personen som läser väljer att ställa in ljus text mot mörk bakgrund. Det blir ju bara helt svart.

Slutligen
Det blir helt ok från Indesign CS5 om boken inte är alltför komplicerad (fotnötter t.ex.). Man måste gå in och uppdatera några småsaker, men i det stora hela blir det bra.
Avslutar med boken såsom den ser ut på min htc-telefon. Helt ok.

torsdagen den 11:e november 2010

E-boken i produktionsflödet

Jag vet att det finns ett nytt tänk på gång hos många förlag. E-boken har kommit för att stanna och man måste få in produktionen av denna i sina flöden.

Som det ser ut just nu så finns inga självklara programvaror för att producera perfekta e-boksfiler. Många använder Indesign, och vad jag förstår så är CS5 mycket bättre än CS4 (som enligt min åsikt inte gjorde bra Epub-filer alls), så vi är väl på väg att få tillgång till bättre programvaror. Det här gör att nya krav ställs på förlagen. Man måste involvera personer med viss teknisk kompetens i produktionsprocessen på ett annat sätt än för vanliga pappersböcker. Med teknisk kompetens tänker jag då kunskaper i webbspråk som HTML, XML och CSS. Detta på grund av att man ofta måste gå in i bokfilen i efterhand och redigera i koden, eller förstå hur en stilmall fungerar och kunna modifiera den – som exempel.

En annan utmaning gäller formgivarna som förstås måste involveras i e-bokens layout. Man måste frågå pappers-tänket där man jobbar med statiska sidor där varje radbrytning och mellanslag kan påverkas in i minsta detalj. Man måste se e-bokens möjligheter och fundera på hur man kan utnyttja det omflödande formatet och vilka layoutmöjligheter som det ger. En inte ovanlig reaktion från formgivare är annars att man förfasar sig över hur ens genomtänkta layout blir förstörd i en e-bok. Jag kan förstå den reaktionen, men den blir inte konstruktiv. Man måste vända på det hela och se e-boken som ett nytt/annat sätt att ta till sig boken – på samma sätt som ljudboken som ju är ett helt annat sätt att ta till sig en bok, om än gammal om man tänker på det ursprungliga muntliga sagoberättandet.

Designfrågan är inte enkel. För en pappersbok bestämmer man formatet och layoutar efter det. En e-bok ska ju helst fungera på allt från smartphone till iPad eller för all del laptop. Ofta blir man som e-boksproducent tvungen att kompromissa, men man måste ändå bestämma sig för var man tänker dra sina gränser, för vem man skapar e-böckerna. Ska man exkludera alla som inte har en iPhone? Ska man förutsätta att den fina layoutade faktaboken läses på större skärm, och troligen blir obegriplig på en telefon? Man kanske blir tvungen att göra dessa val ibland.

Epub-specifikationen är ju på väg att uppdateras till EPUB3 någon gång under nästa år. Detta kommer att innebära ökade möjligheter till både snyggare layout och interaktivitet. Förhoppningsvis finns dessa möjligheter med i tänket vid utveckling av läsarprogrammen för alla plattor och pekdatorer/telefoner som flödar ut på marknaden just nu. Det hjälper ju inte om Epub-specifikationen stöder coola css-stilar om sen läsarprogrammen inte stöder detsamma. Värt att bevaka!

måndagen den 25:e oktober 2010

Epub länk-spec på gång

Det finns en artikel på Threepress om en Epub länk-specifikation som är på gång. Mycket intressant. Läs!
http://blog.threepress.org/2010/10/21/developing-an-epub-linking-spec/