TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I just stumbled on this blog post about rubber and was thinking: "Isn't that exactly what latexmk does?". So, now I wonder: isn't it? Or are there any differences?

share|improve this question
Great question! :) – Paulo Cereda Dec 5 '11 at 11:00
up vote 40 down vote accepted

Unfortunately, rubber does not seem to be really maintained anymore; the latest stable version 1.1 was released in 2006, and the more recent "development version" is unusable.

That's the main reason why I tried to switch from rubber to latexmk. However, it seems that the rubber has the following features that are not (yet?) offered by latexmk:

  1. Rubber parses the LaTeX log file, filters it, and pretty-prints only "relevant" messages (warnings, errors). Rubber always runs LaTeX in a non-interactive mode, while latexmk seems to require additional switches or configuration.
  2. With rubber you can have configuration options as comments in the LaTeX source code; latexmk requires auxiliary configuration files.
  3. Most importantly, rubber lets you specify the correct values of TEXINPUTS, BIBINPUTS, BSTINPUTS, etc. for each document using the aforementioned configuration options; latexmk seems to expect that these environment variables are already defined appropriately.

Of course many of these issues can be worked around with some wrapper scripts and auxiliary files. And obviously there are many features of latexmk that are not offered by rubber.

share|improve this answer
To add some news: Rubber v1.2 was released on 2015-06-24. It seems however that for Ubuntu, 1.2 will not be included in 15.04, but 15.10 and further. For more information, see the launchpad of Rubber. – r0estir0bbe Sep 30 '15 at 8:44

One important advantage of latexmk over rubber is that latexmk detects dependent files much more reliably. As best as I have been able to work out, rubber determines the dependent files by parsing the tex file, by looking for \input, \include and \includegraphics macros. But if these macros are buried inside another macro, rubber doesn't detect the dependent files correctly. E.g., if you have


rubber won't detect that sub.tex is a dependent file. Thus if the file sub.tex changes, rubber won't detect that the compilation needs to be run again.

Latexmk instead parses the log file and uses the -recorder option of (pdf)latex to determine the dependent files.

share|improve this answer

Latexmk also brings an auto-preview feature, which recompiles (smartly) the pdf as soon as the tex is saved.

There are also more advanced features, like tight integration with makefiles for example.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.