I wrote my earliest stories using a range of tools, from my dad’s old manual typewriter to Bank Street Writer on the Commodore 64. After I got a real job and disposable income, I bought a PC and used Microsoft Word, because every writer used a word processor, right?
After a decade of that, when I switched to Linux in 2011, I stayed in the word processor paradigm, using LibreOffice Writer as my main writing tool for years, well into my independent publishing career.
But word processors are not built for generating electronic books or PDFs for upload to print-on-demand publishers, like IngramSpark or Kindle Direct Publishing. Sure, most word processors have an “export to epub” button, but if you inspect the raw HTML inside that epub, there’s a whole lot of conversion cruft that bloats file sizes. Plus, a formatting fix doable with one edit in a CSS stylesheet is practically impossible if you have to do it for every paragraph of an epub.
“Print to PDF” is worse. It’s a pain in the a$$ to manually add page breaks at the end of page 1 of a chapter and tweak heights of blank lines to get text to line up from a left page to a right.
On top of that, word processors have a million settings, almost none of which a writer needs. A book is 99% plain text, with markup usually only required for italics and, very rarely, bold.
If word processors are overkill for composing and ill-designed for publishing, what’s solution did I arrive at?
I write stories in the Markdown markup language. Plain text, italics, bold, HTML headings that can become chapter titles, and a few other tricks I haven’t had call for yet but would love to use someday.
To generate publishable formats, I run my Markdown file through Pandoc to generate epub and LaTeX files. Multiple tools can convert ebooks from epub to mobi format for Amazon’s ecosystem (I use Amazon’s kindlegen command line tool). LaTeX is a complex beast, but I concatenate my LaTeX manuscript with boilerplate front matter and back matter and make a few edits to get to a print-interior PDF. No tweaking blank line heights or manually adding page breaks.
Pandoc can also convert Markdown to ODT, a word processor format, if I’m working with an editor who wants to receive manuscripts as .doc or .rtf files. LibreOffice Writer gets me the last mile on that conversion.
Since Markdown is basically plain text with a little markup, any text editor will do. After using Kate (the text editor shipped with the KDE Desktop Enviornment), I took the plunge into Vim. My advice if you’re switching to Vim: use Vimtutor. A great way to climb Vim’s notoriously steep learning curve.
Information management is the only other thing I need. I’ve used Zim, a personal wiki for your desktop. In my quest to vimify my workflow, I’ve tried various wiki plugins for vim. Lervag’s wiki.vim is my current choice. I’m manfully resisting the urge to fire up Emacs to see if org-mode is as great an information manager as people say.