How to Write a Book

11 Comments

Comments are ordered by helpfulness, as indicated by you. Help us pick out the gems and discourage asshattery by voting on notable comments.

Got something to add? You can leave a comment below.

  1. Russ

    Out authors write in MultiMarkdown. This allows us, with a build file, a standard config & templates, to use Pandoc to produce neat clean ePub’s. We can then convert these using the Calibre command line utility into a MOBI for Kindle.

    If necessary (as we do) you can re-write some bits of the ePub with XMLStarlet
    e.g. for UUID or a cover for Kindle when converted.

    Wrap all this up in a small script and you can go from the authors MultiMarkdown files into ePub and MOBI in a few minutes ;-)

  2. Wolf

    Happy to hear you landed on Prince, that’s what I use for document generation. Prince is great but it’s like a $3500 polyfill for bad CSS3 paged media support in browsers.

    I look forward to the day where I won’t be needing Prince for my work. It seems that there are enough parties who would have an interest in improving this aspect of browser support (I’m thinking Apple and Amazon). It’s not a sexy subject but making HTML output to paper in a good way will ultimately make it the ultimate archiving language, moreso than it already is.

    Long after proprietary .docx and .pages formats have faded, structured HTML documents will be able to be machine and human-read.

  3. Dean

    I’m currently working on a book and looking to use Leanpub. It’s a great system and allows the book to be written in Markdown

  4. Jonathan Snook

    Marie: I haven’t run into anything with the conversion process and haven’t had any complaints or concerns from anybody who purchased the book through Amazon. As mentioned in the article, you do want to consider how rich of an experience you want to create for EPUB. The richer it is, the less it’ll port over to other platforms.

    For example, I originally considered embedding video into the EPUB version but the ability to port to multiple formats was very limiting. I decided to leave the video out.

  5. Jonathan Snook

    Stephen Holdaway: I tried wkhtmltopdf but, at the time, it didn’t support as many of the CSS features that Prince did and that I was already using to style the book with. As a result, I left it by the wayside. It might be worth revisiting.

  6. Marie

    Jonathan: Thanks, that’s good to know.

    I’m not planning on using too rich an epub experience; it’s a novel not something more interactive than that.

  7. Michael Kjeldsen

    Brilliant walkthrough of how to publish a book. I must admit though, that I expected tips on the actual writing/editing process of a book directed towards a technical audience :-)

    But definitely interesting!

  8. Stephen Holdaway

    I’m curious that the open source software wkhtmltopdf hasn’t been mentioned for converting HTML to PDF. It is a command line tool, but it’s very straight forward to use and is incredibly powerful.

    I’ve used wkhtmltopdf to generate invoices, packing slips, and multi-page documents that were originally designed in desktop publishing programs with no compromises. Additionally, being WebKit based, JavaScript can be used to alter documents before they are rendered to PDF.

  9. Zak M

    Great post AND great ebook. As somebody who dabbles with ebooks too, i’d also strongly suggest ensuring the epub validates using epubcheck. I suggest testing on the popular apple/windows and android readers too.

    Also the mobileread site is wealth of advice and tips http://wiki.mobileread.com/wiki/Main_Page

    Cheers

  10. marie

    Lovely article and nice timing, this is exactly what I’m up against right now!

    I’m choosing to assemble things using Assemble.io, and am likely to use it to spit out the files for LaTeX as well (that’s what I’m intending to use to create the PDF and other formats).

    What’s your experience with transforming EPUB to MOBI using Calibre; is there anything I need to be aware of in that process, any kind of gotchas?

Impress us

Be friendly / use Textile