Programming Science

Why Latex is broken and what needs to be fixed

Having programmed too much HTML and CSS gets your mindset gets warped; in the right direction. You start to believe religiously that code should be separated from layout, and that those two should be separated from the content. And then you are faced with LaTeX which according to latex-project.org

LaTeX is not a word processor! Instead, LaTeX encourages authors not to worry too much about the appearance of their documents but to concentrate on getting the right content.

Which is exactly the opposite of what LaTeX makes you do. Since you are not writing LaTex all the time you do not remember all the little tricks and extra packages that makes LaTeX great and you start to fuss over them and try to get the layout right instead of writing your paper. Obviously you want to do the layout when you do the layout, and write when your write, and not the two simultaneous.

A second source of irritation is the non-separation of code and content. If I had a dollar…for every time I have pressed the enter button to get a newline and made the LaTex compiler throw some weird error. At the end of the day you have done no writing but a whole lot more of debugging.

Fixing LaTex internally or coming up with a totally new way of format for publishing would take too much time and no one would really care anyway. So what can you do?

Enter MarkDown. MarkDown, made by John Gruber, was first intended as smooth way of converting between simple text to html. But then it started to be used in other situations too. People realized they wanted to write not layout. Or as the main character in He Died With a Felafel in his Hand said,

Pages impose an artificial structure on my stream of consciousness.

So MarkDown gets rid of the structure and lets you focus on the writing. It is simple and to the point. Github uses it. And it comes with the benefit of being platform independent and version independent.

Instead of writing \section{MyTitle} you write # MyTitle and \subsubsection{MyTitle} becomes ### MyTitle. New paragraphs are one enter button away and images are easily inserted. But what about equations? The neat thing about MarkDown is that it ignores everything that is not markdown. Which is about almost everything. Putting in an equation in your markdown document will just come out as LaTeX code and not some jumble, which is fine.

In order to publish your document according to scientific standards required for your conference or journal you can just convert your MarkDown document to LaTex via the excellent terminal converter PandDoc by John MacFarlane. You will still need the base document for setting up the overall layout of your document, but you can add the converted markdown files via the LaTex input command.

I have put up a git repository of system here together with a MakeFile to generate it all.

Leave a Reply

Your email address will not be published. Required fields are marked *