It turns out that creating an ebook isn’t as straightforward as you might think.
I assumed it was as easy as converting a word file and maybe tweaking a few values. An hour’s work at most. Unfortunately, that was completely naive as I learned the hard way recently when I had to create a new ebook for my latest novel. From language errors and file formats to stylesheets and html, it’s been a slog of a journey figuring out how to do things the right way. After going through the process recently, I thought it might be worth doing a post that lays out the rough steps that took me from an error-filed mess to a finished product that actually works. Maybe it’ll be useful in helping some of you avoid issues in creating your own ebooks.
So to begin with, I wrote my novel in LibreOffice. I spent a long time setting up all my own custom styles, and after some work, I had a solid-looking manuscript in the form of an odt file.
From there, I naively attempted to take the easy route as I did with my first book: I loaded up Calibre, imported the manuscript, and converted the file (for anyone that doesn’t know, Calibre is ebook library software, and it’s widely recommended that you don’t create your ebook with it). I spent an entire night editing that file: fixing the layout, adding in the table of content links, prettying up the headings. So when it came time to upload the file to Kindle, I was horrified to find that Kindle wouldn’t accept it. It seems my mistake was trying to upload an azw3 file, the modern format that can be read by Kindle readers (commonly referred to as KF8).
After kicking myself for such a time-consuming mistake, I checked the files that Kindle does accept. It seemed that creating a mobi would be the best choice as it wouldn’t need to be converted after upload.
So I spent another night recreating my ebook in .mobi format using Calibre. But yet again, Kindle wouldn’t accept the file. This time it spat out a language error that I had never seen before. After too long trawling old forum posts, I discovered it was because Calibre wasn’t setting the correct language in the conversion process. Despite following all the advice I could find and my attempts at editing the file, I couldn’t fix the problem and Kindle kept spitting out that language error repeatedly.
At this point I had to step away. So many hours of frustrating work with nothing to show for it is a soul-sapping experience.
The next day, after some sleep, I decided to give up on Calibre and find a new method. I discovered Sigil, a freeware epub creation tool. Sigil can’t create mobi files, but it can create epubs which is another format that Kindle accepts.
So I spent most of the day figuring out how to use Sigil and once I was comfortable with the software, I set to work creating an .epub version of my manuscript. I saved my original odt manuscript as a html file using LibreOffice and imported it into Sigil. After a lot of editing and tweaking the formatting, I was quite happy with what I was looking at. I wasn’t taking any chances this time though. I found epubcheck, a command-line tool that validates and checks epub files for errors, and plugged my shiny new epub file into it.
My heart sank as it threw back hundreds of errors at me.
One of the main issues was that during the process, my file had been automatically formatted to use inline styles rather than classes on a CSS stylesheet. This is not a good thing (if you’re not sure what those terms mean, I recommend checking out this series of helpful posts). The screenshot below shows you what I was faced with when looking at the html code of my table of contents.
An indecipherable mess, right?
After much sighing, I rolled up my sleeves and climbed down into that mess of code. With my limited knowledge of html/css, it took a long time to edit. Using Sigil, I added in metadata, a custom stylesheet, created classes for the text, removed all inline styling, and generally tidied up the html code. There was plenty of other smaller problems I had to figure out too, but listing them all would need a whole other blog post.
Here’s what the finished table of contents looked like after I was finished.
After I was done, completely exhausted and utterly video-blind, I plugged it back into epubcheck with my fingers crossed.
I had never been so happy to look at a command-line interface.
I uploaded the epub to kindle with no issues after that. Amazon converted it and I downloaded the mobi to check everything was okay. I had to tweak the file some more after that, just to fix a few formatting issues that cropped up in the conversion process, but it was a simple affair after laying all the groundwork.
It took days of fumbling around and banging my head against the wall, but now I have an error-free, professional looking epub file that I can submit to any ebook retailer (though I am staying Kindle exclusive with my books for now). Most importantly though, I’m comfortable with repeating the process for turning any future manuscripts into ebooks, so here’s hoping the next one will be painless.