Reducing the time it takes to write a document

I have some thoughts:

  • Try to make sure you know beforehand (almost) everything your paper needs. Tables, figures, charts, and so forth. It's easier to write something when you already have an idea of what will be there afterwards. :)

  • Does your paper use a special document class, e.g. IEEEtran? When writing a paper, make sure to use the proper class/style, it will save time. Most conferences provide a LaTeX template to help you on this. If the template is not provided, stick with the good old article class and adjust the options according to your needs (size, columns, etc).

  • Make sure your file has the proper encoding. It might sound basic, but at least you won't have eventual problems with it. I once had a bad output, it took me an hour or so to figure out it was a simple encoding issue. :P

  • If you don't generate plots/figures/tables in your LaTeX code, always have their sources near you. If you draw diagrams with Dia, Inkscape, etc, create a src folder inside your project directory. Any changes will be easily found.

  • Speaking of directories, create a nice directory tree. I usually like to have everything I need inside my project directory. Folders are your friends. :)

  • I usually don't do this, but it's a personal taste. :) Make sure to have one big bib file with all your research references, from apple to zebra. It will save time to get citations in your papers. For every paper you write, use this file. If you need to add/remove/update stuff, it will be replicated to all your available papers.

  • Use your own code snippets. Things you use a lot, make sure to have them at your hands, e.g, a specific table environment, new commands, etc. You can also create a small package containing them, put it in the current folder or the personal tree. I have one for my math definitions, e.g, \Rset -> \mathbb{R}.

  • Use a nice editor/IDE. Learn what it can offer you. Code completion, standard code snippets, preview, you name it. There a post in our blog about some features we could use when writing our stuff. Also, other nice links include Charlie Tanksley’s series of posts on Vim and Seamus Bradley’s series of posts on emacs.

  • If your project is complex, create a build script. It can be a Makefile, a sh/bat file or even using latexmk, rubber or arara. If you need more super advanced stuff, use other tools (Perl/Python/Ruby) to make your life easier.

  • Comment and organize your code. I know we are talking about reducing time, but believe me, a good commented code helps a lot. Didier Verna's keynote at TUG2011 is very interesting; coding standards play an important role.

  • Know your tools. Check the formats they can export to - pdf, eps, ps, TikZ code.

  • Terminal is your friend. TeX Live has such great command line tools to help you, e.g, pdfcrop. ImageMagick also provides great solutions.

  • When in doubt, compile your projects a hundred times. :) Write a line, compile it. Better safe than sorry.

Hope it helps. :)


I regularly produce reports under pressure. There are two aspects to consider,

  1. Your own work habits
  2. The idiosyncrancies of TeX\LaTeX

The first is difficult to develop, whereas the second is techniques and building up on your knowledge of TeX.

First on work habits. Download focus booster, do a bit of reading on the pomodoro technique and ask yourself if you are a perfectionist; this often leads to procrastination; if you are a student or academic, self-test if you suffering from the common student syndrome. Get to know your productive times. Personally I went through all the syndromes at various stages of my life, nothing to worry about as long as you are aware of them. Most of the issues with productivity stem from trying to reach perfection. I would take an educated guess and say, that it is highly unlikely that anyone subscribing to this site who is not a perfectionist. Who else will worry about spacing and italics and formatting as we do, and spaces between subscripts and superscripts and fonts as we do? This aspect of yourself, you need to work on. A report that is to be read by a few people as for example a work progress report, does not need to be perfect. Maybe next time!

Now for some LaTeX techniques. Write what you have to say and then worry about the presentation. Don't do any editing relating to presentation unless you satisfied that the write-up is complete.

Compile often, is the best advice and given by a few people in other answers. Personally I try to minimize packages and if I can avoid it, especially hyperref.

Minimize mark-up within text blocks and don't incorporate any macros in your work unless you understand how they work. Minimize packages. Take a hey it works approach with your own macros and accept that other people might be better programmers than you and I. You writing a report and not a master class test in TeX programming. If you have any TikZ plots or graphs allow for anything up to three hours each, so here you can improve your productivity by spending a bit of time to develop a set of plots or diagrams common to your work.

As last words I would like to share with you my technique for editing (which I stole from Paul Halmos). Use the spiral technique. When you write Chapter 2, read and edit Chapter 1 and Chapter 2; when you finish with Chapter 3, read and edit Chapters 1,2 & 3. If you follow the technique when you are on the last Chapter you are done. This is also a good technique to adopt within a Chapter itself, just do the same with paragraphs.

There is no magic wand. To master anything you need to pay your 10,000 hours of effortful learning.


Ten minutes left to a hard deadline and LaTeX refuses to compile, yes.

Advice: When under pressure, compile often to realize any error instantly.

Apart from that, my main advice is never to come so close to hard deadlines. TeX was written by a man who worked in quietness without E-mail and probably his phone did not ring every five minutes. He forgot to implement a wizard-mode for the 21. century.

I myself mastered such troubles by employing a serious management for templates. I'm using Emacs as an editor (well, and as a calender, and for organising myself and . . .). There is an Emacs-package called YASnippets, which I can recommend. I've got some dozens of snippets, partially frames for whole files, partially something like "head of contract". Go and see, if you use Emacs. Otherwise dig what your editor offers.