texi2dvi {tools} | R Documentation

## Compile LaTeX Files

### Description

Run `latex`/`pdflatex`, `makeindex` and `bibtex` until all cross-references are resolved to create a dvi or a PDF file.

### Usage

    texi2dvi(file, pdf = FALSE, clean = FALSE, quiet = TRUE,
             texi2dvi = getOption("texi2dvi"),
             texinputs = NULL, index = TRUE)

    texi2pdf(file, clean = FALSE, quiet = TRUE,
             texi2dvi = getOption("texi2dvi"),
             texinputs = NULL, index = TRUE)

### Arguments

`file` | character string. Name of the LaTeX source file.
`pdf` | logical. If `TRUE`, a PDF file is produced instead of the default dvi file (`texi2dvi` command line option --pdf).
`clean` | logical. If `TRUE`, all auxiliary files created during the conversion are removed.
`quiet` | logical. No output unless an error occurs.
`texi2dvi` | character string (or `NULL`). Script or program used to compile a TeX file to dvi or PDF. The default (selected by `""` or `"texi2dvi"` or `NULL`) is to look for a program or script named ‘texi2dvi’ on the path and otherwise emulate the script with `system2` calls (which can be selected by the value `"emulation"`). See also ‘Details’.
`texinputs` | `NULL` or a character vector of paths to add to the LaTeX and bibtex input search paths.
`index` | logical: should indices be prepared?

### Details

`texi2pdf` is a wrapper for the common case of `texi2dvi(pdf = TRUE)`.

Despite the name, this is used in R to compile LaTeX files, specifically those generated from vignettes and by the `Rd2pdf` script (used for package reference manuals). It ensures that the ‘R_HOME/share/texmf’ directory is in the TEXINPUTS path, so R style files such as ‘Sweave’ and ‘Rd’ will be found. The TeX search path used is first the existing TEXINPUTS setting (or the current directory if unset), then elements of argument `texinputs`, then ‘R_HOME/share/texmf’ and finally the default path. Analogous changes are made to BIBINPUTS and BSTINPUTS settings.

On Windows the option `"texi2dvi"` is normally unset. The MiKTeX command `texify.exe` is a suitable choice for `texi2dvi`, and is tried as from R 3.2.3 if the argument is blank or `NULL` and a program or script `texi2dvi` is not found.

MiKTeX had a `texi2dvi` executable until Sept 2015, but no other Windows TeX installation that we know of does, so emulation is used on e.g. TeXLive installations on Windows.

Occasionally indices contain special characters which cause indexing to fail (particularly when using the hyperref LaTeX package) even on valid input. The argument `index = FALSE` is provided to allow package manuals to be made when this happens: it uses emulation.

### Value

Invisible `NULL`. Used for the side effect of creating a dvi or PDF file in the current working directory (and maybe other files, especially if `clean = FALSE`).

### Note

There are various versions of the `texi2dvi` script on Unix-alikes and quite a number of bugs have been seen, some of which this R wrapper works around.

One that was present with `texi2dvi` version `4.8` (as supplied by macOS) is that it will not work correctly for paths which contain spaces, nor if the absolute path to a file would contain spaces.

The three possible approaches all have their quirks. For example the Unix-alike `texi2dvi` script removes ancillary files that already exist but the other two approaches do not (and may get confused by such files).

Where supported (`texi2dvi` 5.0 and later; `texify.exe` from MiKTeX), option --max-iterations=20 is used to avoid infinite retries.

The emulation mode supports `quiet = TRUE` from R 3.2.3 only. Currently `clean = TRUE` only cleans up in this mode if the conversion was successful—this gives users a chance to examine log files in the event of error.

All the approaches should respect the values of environment variables LATEX, PDFLATEX, MAKEINDEX and BIBTEX for the full paths to the corresponding commands.

### Author(s)

Originally Achim Zeileis but largely rewritten by R-core.

[Package tools version 3.6.0 Index]