The Tools I Use to Publish Books
Someone recently asked me what tool they should use to write a book. I've decided to answer with a confusing (and somewhat intimidating) diagram. Here it is you can click on the diagram for a larger view:
The blue components are tools, the yellow components are content, the pink components are all intermediate formats, and the grey boxes on the right-hand side are all publishing destinations. I only use three tools to author books:
- Eclipse
- Eclipse is just the IDE I've happened to settle upon, there's nothing specific to Eclipse in terms of the publishing pipeline shown above. If you fell more comfortable with another IDE, go right ahead. For more info: http://www.eclipse.org
- XMLmind
- I've written about XMLmind in the past, I have a love/hate relationship with this tool. On one hand it lends itself to a simple, focused writing experience. It doesn't have many bells and whistles, and the UI leaves much to be desired. In many ways, this is desirable as I don't find myself beguiled by some new bell or whistle. XMLmind gets the writing process right in that it allows you to very quickly select whole paragraphs and sections and rearrange them in the document. On the other hand, commons tasks that relate to figures can be very tedious. For more info: http://www.xmlmind.com/xmleditor/
- Snapz Pro X
- This is a simple utility for OSX which I use to capture screenshots. That's it. Note that this tool isn't cheap for a screenshot utility, it is commercial and costs $69 USD. I also use it to record and narrate video content. For more info: http://www.ambrosiasw.com/utilities/snapzprox/
- Adobe Illustrator
- This is where I lose many programmers. Yes, I spend a considerable amount of time in Adobe Illustrator. I understand that it costs an arm and a leg, but it is a capable tool. I use Illustrator to draw diagrams that don't fit the mold of OmniGraffle, but, mostly, I use Illustrator to create PDFs for online covers and one-piece covers. For more info: http://tryit.adobe.com/us/cs5/illustrator/
- Adobe Photoshop
- This also tends turn programmers off, I use Photoshop heavily. Look at any book I've written lately and you will see a huge amount of screenshots. Most of these screenshots need to be "photoshopped" heavily to conserve space and to get them to fit in the confines of a printed page. I also make heavy use of Photoshop to automate actions on directories of image. A book can contain hundreds of screenshots, and Photoshop gives me the opportunity to very quickly script actions on every image in a directory. I've also found after years of looking for an alternative way, that each distribution medium usually demands an entirely different set of figure images. FOP rendered PDFs look much better with PDF figures, and web pages demand PNGs. ePub books have introduced a whole new concern about page widths (that I still have yet to fully comprehend). For more info: http://tryit.adobe.com/us/cs5/photoshop/
- OmniGraffle
- I've had a long lasting relationship with diagramming tools going back to the days when Microsoft didn't own Visio. Omnigraffle is great. If you are writing a book on a Mac, I'd recommend it. For more info: http://www.omnigroup.com/products/omnigraffle/
That answers the "What Tools do You Use?" question which was posed to me by a colleague last week. Everything else in this massive diagram is mostly automated with a series of bash scripts and with a build tool called Maven. The core of the effort is DocBook, and the transformations to the various intermediate formats are managed with a plugin called the docbkx-maven-plugin. More on that in a another post.
