Tools for Writers, Part 1: Introductions and Rationales.

Complaints: Most writers I know, when they go to edit or write drafts on the computer, immediately pop open Microsoft Word, Open Office or some other word processor of choice. While this is fine, and works for probably about 97% of people, it just doesn’t work for me. There are a few problems with word processors in general:

  1. The problem is (and this is more true for Word than Open Office– the .docx file extension is the devil) usually, when some content goes into a word processor, its kind of cumbersome to get that content (formatting and all) out. Sure you can copy and paste, but who wants to do that? Case-in-point: way way back in my early days of computing & writing, my Mom got a copy of Microsoft Works. Not knowing any better, I used this program to write almost everything through high school and part of community college. Now I can’t natively access this file (Word won’t open it, I found a converter provided by Microsoft, but even its results were less than stellar), and the content that I produced and own, is mangled at best.
  2. When I am writing, I just want to write. I don’t want to worry about messing with the style bar or font size or color or anything remotely like that. It’s distracting, it takes my mind off writing. That is the problem with WYSIWYG (What-You-See-Is-What-You-Get) paradigm– you have to make all the decisions at once. The style, look and/or feel is not really important when I’m writing. I just want to get to the point and move on.
  3. I want my content accessable on any platform, at any time. Thus, there is only one way to go: plain text. There is a plain text editor installed by default on damn near every operating system. The problem with plain text though, is that its so plain. It doesn’t handle italics or bold face text. And that’s only the beginning of the problem. Block quotes, code snippets, headings, subheadings? Nope…

The Solution: Meta-formats

What the hell is a meta-format? I’m glad you asked. Its a file who’s content is meant to viewed in a different file format. Like source code for writers. There are a number of meta-formats (or lightweight mark-up) around, and all of them are open source (which, if you want your data to be viable over time, is really the way to go). Out of the handful on wikipedia, there are a few that are particularly useful for my application, because the source remains very readable while still in the plain text format. I currently use Multimarkdown, but Markdown or reStructuredText are also nice. I like Multimarkdown because it supports the use of header data for things like author, title, date, keywords and a few more nice things (though i’m sure I will learn more about reST, since I’m trying to learn python at the moment). Multimarkdown is quite easy, in fact, I’m not really sure that there is much to learn. Install mmd from the web site, write a document, then convert it… to a multitude of formats. It’s that easy. I’m not really going to go into any examples of mmd mark-up, because, really– just click the link and take the five minutes to read the mmd web page. From mmd, you can convert to xHTML, HTML, LaTeX, and on OS X, RTF. But really, as long as you can get to HTML, you can get it into most word processors (if that’s what you really want…).

Tools

Now that we an have easy-to-read and highly portable (read: edit anywhere) file, we’re ready to go, right? For the most part, yes. But there are a few more tools that will make file conversion so much more fun.

TeX/LaTeX/ConTeXt/XeTeX

If you’ve spent any time at all with me talking about writing or books or construction of such things, you may know that I really like LaTeX. Extra bonus: LaTeX is free software. Its available on Windows, OS X, and Linux. Yay for free! LaTeX is a “document preparation system” – which doesn’t really mean that much by itself. What it is, is a mark-up language for printed text. If you want to print your text, and you want it to look good, you should be interested in LaTeX. LaTeX/ConTeXt/XeTeX are all essentially the same thing, with a few distinctive features. They are all programs written on top of TeX (pronounced “tech”– and thus, “lay-tech”), which is a typesetting engine (and a mark-up language to describe your text). Plain TeX is a bit complicated, but LaTeX/ConTeXt are not that hard to learn (despite what other people on the internet say). You probably won’t pick it up in a day, but it shouldn’t take much longer than that. And once you do learn it, you’ll probably hate the way that word processors typeset text. One may ask, Why don’t I just write my documents in LaTeX? The answer is: the mark-up is a bit too cumbersome for me. Some people like it. Also, the source isn’t that readable. If you know LaTeX, the code isn’t difficult to read, but if someone just opened the file, they would have no clue what they were looking at (I think if you gave someone a markdown file to edit, they would probably figure it out after a few minutes.) But it doesn’t matter, because markdown will convert to LaTeX, and then if you know LaTeX, you can further customize the look and feel of the text. For why you should be using LaTeX for your print documents, see this article. If you need help, or want to learn LaTeX, shoot me an e-mail. I use LaTeX every day at work, so I know it pretty well.

Pandoc

Pandoc (also free software available on Windows, OS X, and Linux) is a nice little command line conversion tool. It can can read markdown and (subsets of) reStructuredText, HTML, and LaTeX, and it can write markdown, reStructuredText, HTML, LaTeX, ConTeXt, PDF, RTF, DocBook XML, OpenDocument XML, ODT, GNU Texinfo, MediaWiki markup, groff man pages, and S5 HTML slide shows. Wow. That is a lot of formats. Being command line in nature, you can throw a pandoc command into a bash loop (coming in a post soon!) and batch convert a ton of files in no time flat.

textutil

Unfortunately, textutil is for OS X only. But damn, it is handy. It is a command line program that fills some holes that pandoc misses. It can convert txt, html, rtf, rtfd, doc, docx, wordml, odt, or webarchive. The rich text (rtf), doc, and docx support is really nice.

Outro

I think those are enough toys to play with for now ;) If you have any questions, shoot me an e-mail, or even better, leave a comment. Look for the next post some time soon! Thanks for reading.