I've been using Markdown, a plain text lightweight markup language in combination with Pandoc, a versatile document converter to do the bulk of my writing.

The benefits

  • I can use the same text editing tools for my computing work as well as my writing work.
  • With a generic makefile, I can compile the markdown file into PDF, HTML and DOCX with a single command. This allows me to use the tools I am most comfortable with and send drafts to colleagues in whichever format they are most comfortable with.
  • I can post the markdown file to my Github account and it is visible as a rendered document instead of the plaintext. This allows me to quickly update documents and make them available publicly with very little effort. I can update the document and push it to Github and it is immediately visible.

This works very well for teaching documents and other short pieces. It doesn't have all the features I need for writing conference and journal papers. I tried valiantly to use Markdown and Pandoc for a recent conference submission but had two main problems.

  • It is not straightforward to use references and labels using Markdown. This is important when you need to refer to figures and tables.
  • Two column formatting and tables. My conference template is in a two column format and I wasn't able to include a table in the two column mode.

The lightweight syntax and features of Markdown excel when there will be no page formatting or page breaks. I had to fall back to LaTeX for the submission.

I was able to create a multi-output workflow by placing the content of the paper in a single LaTeX file and then using \input to read the content into three different files with different preambles. One in the journal proprietary final format, one in a standard format for self-publication, and one in a draft format for comments and co-authors.

The markdown and pandoc tools take some time to set up, but being able to write in plain text with very light markup in a powerful text editor is a joy.