1RUBBER(1) General Commands Manual RUBBER(1)
2
3
4
6 rubber - a building system for LaTeX documents
7
9 rubber [options] sources ...
10 rubber-pipe [options]
11
13 Rubber is a wrapper for LaTeX and companion programs. Its purpose is,
14 given a LaTeX source to process, to compile it enough times to resolve
15 all references, possibly running satellite programs such as BibTeX,
16 makeindex, Metapost, etc. to produce appropriate data files.
17
18 The command rubber builds the specified documents completely. The
19 source files may be either LaTeX sources (in which case the suffix .tex
20 may be omitted) or documents in a format Rubber knows how to translate
21 into LaTeX. If one compilation fails, the whole process stops, includ‐
22 ing the compilation of the next documents on the command line, and rub‐
23 ber returns a non-zero exit code.
24
25 The command rubber-pipe does the same for one document but it reads the
26 LaTeX source from standard input and dumps the compiled document on
27 standard output.
28
29 Some information cannot be extracted from the LaTeX sources. This is
30 the case, for instance, with the search paths (which can be specified
31 in environment variables like TEXINPUTS), or the style to be used with
32 Makeindex. To address this problem, one can add information for Rubber
33 in the comments of the LaTeX sources, see section DIRECTIVES.
34
36 The options are used either to choose the action to be performed or to
37 configure the building process. They are mostly the same in rubber and
38 rubber-pipe. Options are parsed using GNU Getopt conventions.
39
40 -b, --bzip2
41 Compress the final document (in bzip2 format). This is equiva‐
42 lent to saying -o bzip2 after all other options.
43
44 --clean
45 Remove all files produced by the compilation, instead of build‐
46 ing the document. This option is present in rubber only. It
47 applies to the compilation as it would be done with the other
48 options of the command line, i.e. saying "rubber --clean foo"
49 will not delete foo.ps, while saying "rubber --ps --clean foo"
50 will.
51
52 -c, --command <command>
53 Execute the specified command (or directive) before parsing the
54 input files. See section DIRECTIVES for details.
55
56 -e, --epilogue <command>
57 Execute the specified command (or directive) after parsing the
58 input files. See section DIRECTIVES for details.
59
60 -f, --force
61 Force at least one compilation of the source. This may be use‐
62 ful, for instance, if some unusual dependency was modified (e.g.
63 a package in a system directory). This option is irrelevant in
64 rubber-pipe.
65
66 -z, --gzip
67 Compress the final document (in gzip format). This is equiva‐
68 lent to saying -o gz after all other options.
69
70 -h, --help
71 Display the list of all available options and exit nicely.
72
73 --inplace
74 Go to the directory of the source files before compiling, so
75 that compilation results are in the same place as their sources.
76
77 --into <directory>
78 Go to the specified directory before compiling, so that all
79 files are produced there and not in the current directory.
80
81 --jobname <name>
82 Specify a job name different from the base file name. This
83 changes the name of output files and only applies to the first
84 target.
85
86 -k, --keep
87 This option is used in rubber-pipe only. With this option, the
88 temporary files will not be removed after compiling the document
89 and dumping the results on standard output. The temporary docu‐
90 ment is named rubtmpX.tex, where X is a number such that no file
91 of that name exists initially.
92
93 -l, --landscape
94 Specify that the final document should use landscape orienta‐
95 tion. This is relevant only when using dvips or dvipdfm.
96
97 -n, --maxerr <num>
98 Set the maximum number of displayed errors. By default, up to
99 10 errors are reported, saying -n -1 displays all errors.
100
101 -m, --module <module>[:<args>]
102 Use the specified module in addition to the document's packages.
103 Arguments can be passed to the package by adding them after a
104 colon, they correspond to the package options in LaTeX. The
105 module is loaded before parsing the document's sources.
106
107 --only <sources>
108 Compile the document partially, including only the specified
109 sources. This works by inserting a call to \includeonly on the
110 command line. The argument is a comma-separated list of file
111 names.
112
113 -o, --post <module>[:<args>]
114 Use the specified module as a post-processor. This is similar
115 to the -m options except that the module is loaded after parsing
116 the document.
117
118 -d, --pdf
119 Produce PDF output. When this option comes after --ps (for
120 instance in the form -pd) it is a synonym for -o ps2pdf, other‐
121 wise it acts as -m pdftex, in order to use pdfLaTeX instead of
122 LaTeX.
123
124 -p, --ps
125 Process the DVI produced by the process through dvips(1) to pro‐
126 duce a PostScript document. This option is a synonym for
127 -o dvips, it cannot come after --pdf.
128
129 -q, --quiet
130 Decrease the verbosity level. This is the reverse of -v.
131
132 -r, --read <file>
133 Read additional directives from the specified file (see also the
134 directive "read").
135
136 -S, --src-specials
137 Enable generation of source specials if the compiler supports
138 it. This is equivalent to setting the variable src-specials to
139 yes.
140
141 -s, --short
142 Display LaTeX's error messages in a compact form (one error per
143 line).
144
145 -I, --texpath <directory>
146 Add the specified directory to TeX's search path.
147
148 --synctex
149 Enable SyncTeX support in the LaTeX run.
150
151 --unsafe
152 Permit the document to invoke arbitrary external programs. This
153 is potentially dangerous, only use this option for documents
154 coming from a trusted source.
155
156 -v, --verbose
157 Increase the verbosity level. Levels between 0 and 4 exist, the
158 default level is 1 for rubber and 0 for rubber-pipe. Beware,
159 saying -vvv makes Rubber speak a lot.
160
161 --version
162 Print the version number and exit nicely.
163
164 -W, --warn <type>
165 Report information of the given type if there was no error dur‐
166 ing compilation. The available types are: boxes (overfull and
167 underfull boxes), refs (undefined or multiply defined refer‐
168 ences), misc (other warnings) and all to report all warnings.
169
171 Rubber's action is influenced by modules. Modules take care of the
172 particular features of packages and external programs.
173
174 Packages
175 For every package that a document uses, Rubber looks for a module of
176 the same name to perform the tasks that this package my require apart
177 from the compilation by LaTeX. Modules can be added to the ones pro‐
178 vided by default to include new features (this is the point of the mod‐
179 ule system). The standard modules are the following:
180
181 asymptote
182 Process the .asy files generated by the LaTeX package, then
183 triggers a recompilation.
184
185 beamer This module handles Beamer's extra files the same way as other
186 tables of contents.
187
188 bibtex, biblatex
189 Takes care of processing the document's bibliography with BibTeX
190 when needed. This module is automatically loaded if the docu‐
191 ment contains the macro \bibliography (see also in DIRECTIVES
192 for options).
193
194 combine
195 The combine package is used to gather several LaTeX documents
196 into a single one, and this module handles the dependencies in
197 this case.
198
199 epsfig This modules handles graphics inclusion for the documents that
200 use the old style \psfig macro. It is actually an interface for
201 the graphics module, see this one for details.
202
203 glossaries
204 Run makeglossaries and recompiles when the .glo file changes.
205
206 graphics, graphicx
207 These modules identify the graphics included in the document and
208 consider them as dependencies for compilation. They also use
209 standard rules to build these files with external programs. See
210 the info documentation for details.
211
212 hyperref
213 Handle the extra files that this package produces in some cases.
214
215 index, makeidx, nomencl
216 Process the document's indexes and nomenclatures with makein‐
217 dex(1) when needed (see section DIRECTIVES for options).
218
219 ltxtable
220 Add dependencies for files inserted via the ltxtable LaTeX pack‐
221 age.
222
223 minitoc, minitoc-hyper
224 On cleaning, remove additional files that produced to make par‐
225 tial tables of contents.
226
227 moreverb, verbatim
228 Adds the files included with \verbatiminput and similar macros
229 to the list of dependencies.
230
231 multibib
232 Handles the extra bibliographies that this package creates, and
233 removes the extra files on cleaning.
234
235 xr Add additional .aux files used for external references to the
236 list of dependencies, so recompiling is automatic when refer‐
237 enced document are changed.
238
239 Pre-processing
240 The following modules are provided for using programs that generate a
241 LaTeX source from a different file format:
242
243 cweb This module's purpose is to run cweave(1) if needed before the
244 compiling process to produce the LaTeX source. This module is
245 automatically loaded if the file specified on the command line
246 has .w as its suffix.
247
248 lhs2TeX
249 This module uses the lhs2TeX preprocessor to generate the LaTeX
250 source from a Literate Haskell program. It is automatically
251 triggered if the input file's name ends with .lhs.
252
253 Post-processing
254 The following modules are provided to support different kinds of
255 post-processings. Note that the order matters when using these mod‐
256 ules: if you want to use a processing chain like
257 foo.tex -> foo.dvi -> foo.ps -> foo.pdf -> foo.pdf.gz
258 you have to load the modules dvips, ps2pdf and gz in that order, for
259 instance using the command line
260 rubber -p -o ps2pdf -z foo.tex
261
262 bzip2 Produce a version of the final file compressed with bzip2(1).
263
264 dvipdfm
265 Runs dvipdfm(1) at the end of compilation to produce a PDF docu‐
266 ment.
267
268 dvips Runs dvips(1) at the end of compilation to produce a PostScript
269 document. This module is also loaded by the command line option
270 --ps.
271
272 expand Produce an expanded LaTeX source by replacing \input macros by
273 included files, bibliography macros by the bibliography produced
274 by bibtex(1), and local classes and packages by their source.
275 If the main file is foo.tex then then expanded file will be
276 named foo-final.tex. See the info documentation for details.
277
278 gz Produce a version of the final file compressed with gzip(1).
279
280 ps2pdf Assuming that the compilation produces a PostScript document
281 (for instance using module dvips), convert this document to PDF
282 using ps2pdf(1).
283
284 Compiler choice
285 The following modules are used to change the LaTeX compiler:
286
287 aleph Use the Aleph compiler instead of TeX, i.e. compiles the docu‐
288 ment using lamed(1) instead of latex.
289
290 omega Use the Omega compiler instead of TeX, i.e. compiles the docu‐
291 ment using lambda(1) instead of latex. If the module dvips is
292 used too, it will use odvips(1) to translate the DVI file. Note
293 that this module is triggered automatically when the document
294 uses the package omega.
295
296 pdftex Instructs Rubber to use pdflatex(1) instead of latex(1) to com‐
297 pile the document. By default, this produces a PDF file instead
298 of a DVI, but when loading the module with the option dvi (for
299 instance by saying -m pdftex:dvi) the document is compiled into
300 DVI using pdflatex. This module is also loaded by the command
301 line option --pdf.
302
303 vtex Instructs Rubber to use the VTeX compiler. By default this uses
304 vlatex as the compiler to produce PDF output. With the option
305 ps (e.g. when saying "rubber -m vtex:ps foo.tex") the compiler
306 used is vlatexp and the result is a PostScript file.
307
308 xelatex
309 Instructs Rubber to use xelatex(1) instead of latex.
310
312 The automatic behavior of Rubber is based on searching for macros in
313 the LaTeX sources. When this is not enough, directives can be added in
314 the comments of the sources. A directive is a line like
315 % rubber: cmd args
316 The line must begin with a "%", then any sequence of "%" signs and spa‐
317 ces, then the text "rubber:" followed by spaces and a command name,
318 possibly followed by spaces and arguments.
319
320 General directives
321 alias <name1> <name2>
322 Pretend that the LaTeX macro name1 is equivalent to name2. This
323 can be useful when defining wrappers around supported macros.
324
325 clean <file>
326 Indicates that the specified file should be removed when clean‐
327 ing using --clean.
328
329 depend <file>
330 Consider the specified file as a dependency, so that its modifi‐
331 cation time will be checked.
332
333 make <file> [<options>]
334 Declare that the specified file has to be generated. Options
335 can specify the way it should be produced, the available options
336 are from <file> to specify the source and with <rule> to specify
337 the conversion rule. For instance, saying "make foo.pdf from
338 foo.eps" indicates that foo.pdf should be produced from foo.eps,
339 with any conversion rule that can do it. See the info documen‐
340 tation for details on file conversion.
341
342 module <module> [<options>]
343 Loads the specified module, possibly with options. This is
344 equivalent to the command-line option --module.
345
346 onchange <file> <command>
347 Execute the specified shell command after compiling if the con‐
348 tents of the specified file have changed. The file name ends at
349 the first space.
350
351 paper <options>
352 Specify options related to paper size. Currently they are used
353 to give -t options to dvips and -p options to dvipdfm.
354
355 path <directory>
356 Adds the specified directory to the search path for TeX (and
357 Rubber). The name of the directory is everything that follows
358 the spaces after "path".
359
360 produce <file>
361 Declares that the LaTeX run will create or update the specified
362 file(s).
363
364 read <file>
365 Read the specified file of directives. The file must contain
366 one directive per line. Empty lines and lines that begin with
367 "%" are ignored.
368
369 rules <file>
370 Read extra conversion rules from the specified file. The format
371 of this file is the same as that of rules.ini, see the info doc‐
372 umentation for details.
373
374 set <name> <value>
375 Set the value of a variable as a string. For details on the
376 existing variables and their meaning, see the info documenta‐
377 tion.
378
379 setlist <name> <values>
380 Set the value of a variable as a (space-separated) list of
381 strings. For details on the existing variables and their mean‐
382 ing, see the info documentation.
383
384 shell_escape
385 Mark the document as requiring external programs (shell-escape
386 or write18). Rubber does not actually enable this unless called
387 with the option --unsafe.
388
389 synctex
390 Enable SyncTeX support in the LaTeX run.
391
392 watch <file>
393 Watch the specified file for changes. If the contents of this
394 file has changed after a compilation, then another compilation
395 is triggered. This is useful in the case of tables of contents,
396 for instance.
397
398 Module-specific directives
399 If a command has the form foo.bar, it is considered a command bar for
400 the module foo. If this module is not registered when the directive is
401 found, then the command is silently ignored. For the standard modules,
402 the directives are the following:
403
404 biblatex.path <directory>
405 Adds the specified directory to the search path for BibTeX data‐
406 bases (.bib files).
407
408 bibtex.crossrefs <number>
409 Set the minimum number of crossref required for automatic inclu‐
410 sion of the referenced entry in the citation list. This sets
411 the option -min-crossrefs when calling bibtex(1).
412
413 bibtex.path <directory>
414 Adds the specified directory to the search path for BibTeX data‐
415 bases (.bib files).
416
417 bibtex.stylepath <directory>
418 Adds the specified directory to the search path for BibTeX
419 styles (.bst files).
420
421 bibtex.tool <command>
422 Use a different bibliography tool instead of BibTeX.
423
424 dvipdfm.options <options>
425 Pass the specified command-line switches to dvipdfm.
426
427 dvips.options <options>
428 Pass the specified command-line switches to dvips.
429
430 index.tool (index) <name>
431 Specifies which tool is to be used to process the index. The
432 currently supported tools are makeindex(1) (the default choice)
433 and xindy(1). The argument index is optional, it may be used to
434 specify the list of indexes the command applies to. When
435 present, it must be enclosed in parentheses; the list is comma-
436 separated. When the argument is not present, the command
437 applies to all indices.
438
439 index.language (index) <language>
440 Selects the language used for sorting the index. This only
441 applies when using xindy(1) as the indexing tool. The optional
442 argument has the same semantics as above.
443
444 index.modules (index) <module>...
445 Specify which modules to use when processing an index with
446 xindy(1). The optional argument has the same semantics as
447 above.
448
449 index.order (index) <options>
450 Modifies the sorting options for the indexes. The arguments are
451 words (separated by spaces) among standard, german and letter.
452 This only applies when using makeindex(1). The optional argu‐
453 ment has the same semantics as above.
454
455 index.path (index) <directory>
456 Adds the specified directory to the search path for index styles
457 (.ist files). The optional argument has the same semantics as
458 above.
459
460 index.style (index) <style>
461 Specifies the index style to be used. The optional argument has
462 the same semantics as above.
463
464 makeidx.language, .modules, .order, .path, .style, .tool
465 These directives are the same as for the index module, except
466 that they don't accept the optional argument.
467
468 multibib.crossrefs, .path, .stylepath, .tool
469 These directives are the same as for the bibtex module but they
470 apply to bibliographies managed by the multibib package. They
471 take an optional first argument, with the same convention as for
472 the directives of the index module, which may be used to specify
473 the list of bibliographies the command applies to.
474
476 There are surely a some...
477
478 This page documents Rubber version 1.4. The program and this man-page
479 are maintained by Sebastian Kapfer <sebastian.kapfer@fau.de>. The
480 homepage for Rubber can be found at https://launchpad.net/rubber/.
481
483 The full documentation for rubber is maintained as a Texinfo manual.
484 If the info and rubber programs are properly installed at your site,
485 the command
486
487 info rubber
488
489 should give you access to the complete manual.
490
491
492
493 RUBBER(1)