Brainware: So You Want To Make An eBook

This post is part of So You Want to Make an eBook?. (I know, it's been a while since an official section, right?) I'm releasing this book in sections on my blog, but when it's all finished I will offer the whole thing as a single eBook. Everyone who donates toward its production (use the coffee cups to the right, note that it's because of this effort) will get a free copy of this eBook. You can find all the posts here.

Before You Begin

There are two sections to this portion. First is "Brainware", covering basic knowledge about file formats and operating systems. Second is "Software", which covers both needed (and optional) software.


For most of this document, I was using a Windows system. I had to migrate to Linux three quarters of the way through (Ubuntu 10.04 with Openbox as the WM, for those who are curious), so keeping things operable on multiple platforms is important to me. Because I use largely open-source or cross-platform tools, your process should not be significantly different on a Mac.

You will need to know a little bit about what a command prompt is, and how it works. Here is a starter guide for the three most common operating systems:

Windows guide:

Mac guide:

Ubuntu guide:

You will need to know that a file extension is a short series of letters at the end of a filename showing what kind of file it is. For example, Bob.ZIP is a ZIP file, and Bob.JPG is a picture of Bob, and Bob.DOC is that letter Bob wrote to Joss Whedon after watching Dollhouse. For our purposes, this will hold true throughout this process, but I have to mention...

This convention is most strongly followed on Windows computers. On Mac and Linux systems, this isn't always the case. For example, Bob.JPG is not executable (able to be run by itself) on a Windows system, but both Mac and Linux have an "executable bit" that could let a program named Bob.JPG actually be some other kind of program. (See for more on executable bits.)

Right. Moving on.

You will need to know that a ZIP file format (extension ZIP) is a data compression and archive format containing one or more files. (Think of folding your clothes into a suitcase and then squishing all the air out.) You will need to know how to create a ZIP file (more on this in the Software section). There are other types of data compression and archiving; they don't matter to us for this purpose.

You need to know a little bit about document file formats. (Just a little, this won't hurt much.)

RTF, or "Rich Text" (extension of RTF) is perhaps the most portable word processing format out there today. Pretty much anything that calls itself a word processor can read and write RTF format, though you usually have to use the "Save as…" command when saving for the first time. There are also some word processors that try to do more than the RTF format actually allows, so other programs may not known how to understand that. Regardless, it's probably the easiest to move back and forth between systems. We will be starting with RTF formatted documents.

Plain Text documents (extension of TXT or TEXT) have no built-in italics, underlining, and so on. They work... but get boring. (There is such a thing as "plain-text markup", but we don't need it for this process.) That and a lot of people are addicted to their smart quotes, em-dashes, and so on. We'll see how that complicates things (a little bit) later on. Still, you mostly need to know this format to distinguish it from a word processing document.

HTML (HyperText Markup Language) and CSS (Cascading Style Sheets) are the document types that rule the Web. They're also the types that eBooks use. In general, HTML files (extension of HTM or HTML) contain the content and the CSS file (extension of CSS) contains the instructions on making it look nice. You can put CSS instructions inside a HTML file. Some programs do this by default. Don't do that. Keeping the content separate from the style makes it easy to fix problems across a large document.

You do not need to know anything about HTML or CSS at this point, just what the acronyms stand for. I will not cover anything other than what you absolutely have to know for this task, though. Learning more about HTML and CSS will help you be able to fix it when it breaks.

Other Word Processing Documents - This includes ODT, DOC, DOCX, WP, and any other document format besides the ones addressed above. They may look prettier, but are essentially useless to us. If you save in one of these formats when writing your book, you'll be best served by converting it to RTF before beginning the eBook creation process.

A caveat: If you are making a PDF file to sell, you can use the "Save as PDF" or a third-party "Print to PDF" tool from one of these formats with no problem whatsoever. Converting from ePub to PDF almost never works right.

There are three major eBook formats - and one of them isn't really an eBook format.

PDF stands for Portable Document Format (extension PDF). This creates a digital representation of a page, not an eBook. (I mentioned this earlier when talking about reflowing.) For some books, where layout on the page is crucial, PDF will be the only format you will be able to use.

The other two types are ePub and the Kindle/Mobi format. The Kindle (extension AZW or MOBI) format is pretty much only supported by the Kindle and its desktop applications. ePub (extension EPUB) is supported by everyone else - the nook, iOS, Kobo, Sony, and so on. Even newer Kindlers can handle ePub just fine.

Do not confuse format with DRM. DRM - or Digital Rights Management - is the supposedly anti-piracy encryption that some retailers put on their eBooks. An ePub file wrapped in DRM is still an ePub, just like a fish in a paper wrapper is still a fish. DRM is - in my experience - a waste of your time and energy.

We will be concentrating on creating a perfect eBook in the ePub format. The Amazon/Kindle format is much harder to directly work with than ePub. The good news is that once you have a perfectly correct ePub, conversion to Mobi is a trivial issue.

Next time: Software.

This post was part of So You Want to Make an eBook?. I'm releasing this book in sections on my blog, but when it's all finished I will offer the whole thing as a single eBook. Everyone who donates toward its production (use the coffee cups to the right, note that it's because of this effort) will get a free copy of this eBook. You can find all the posts here.


edward said…
First of all, Steve, thanks for maintaining this eBook blog. It's a gold mine of information, and I look forward to each now addition.

I agree that knowing HTML and CSS is invaluable to crafting a professional-looking eBook. But such coding can be intimidating to beginners. I'd just like to share a resource: W3Schools ( has EXCELLENT tutorials for HTML and CSS (among many others) designed with novices in mind. I basically taught myself CSS from this site.

I swear before all that is holy that this is not an robot advertisement - just a fellow writing trying to share a useful resources.
Steve Saus said…
No, you're good Edward. I'm familiar with them, and you're right, it's a good source for learning CSS and webpage creation.

I'm mostly going to cover CSS that specifically pops up with ePub, so my examples will largely be a "If you want {x}, do {y}" kind of thing. Understanding it is what sites like that are great at doing, but beyond the scope of my goal here.

Thanks for sharing that!