Presentation
The purpose of Rubber is to make the building of a document automated, from the source files to the final document file, replacing the work of a Makefile.
The basis is a routine that compiles a LaTeX source the right number of times to resolve all references and make all tables of contents, list of figures, and so on. On top of that, Rubber provides a modular system to handle various tasks needed apart from compilations. This, for instance, includes processing bibliographic references or indices, as well as compilation or conversion of figures. Additionally, modules can perform a post-processing of the document (for instance to convert a DVI to PostScript or PDF) or even a preprocessing (useful when the LaTeX source is generated by another program, like cweave).
Dependency analysis is performed by parsing the source files, so that modifying any source, user package, graphics file or other dependency leads to appropriate compilations. Modules are triggered either explicitly using command-line options, or implicitly when the sources are parsed. For instance, BibTeX support is activated whenever the source contains commands that generate a bibliography, graphics support is activated by \usepackage{graphics} and similar commands, and so on. The modular approach allows any additional feature to be supported by simply writing a module to support it.
Requirements and download
Rubber is written entierly in the language Python, using features from version 2.2. Of course, a supported TeX compiler must be present, as well as additional tools like bibtex and dvips if they are used.
| source tarball: | rubber-1.1.tar.gz |
|---|
The current development version contains many bugfixes:
| source snapshot: | rubber-1.1-20070109.tar.gz |
|---|---|
| RPM package: | rubber-1.1-20070109.noarch.rpm |
I am very proud to have Rubber properly packaged in such prestigious open-source systems as Debian, Gentoo, FreeBSD, NetBSD, Fink and Darwin thanks to extremely cool users. I would be even happier to have other packages.
You can also get the current development version from the Darcs repository by saying
darcs get http://www.pps.jussieu.fr/~beffara/darcs/rubber/
Documentation
The included documentation contains a precise description of the command line interface and the list of directives and standard modules. It is also available online.
Page written by Emmanuel Beffara, last modified on January 16th, 2007.