Rev 84772 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/tools/man/texi2dvi.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2016 R Core Team% Distributed under GPL 2 or later\name{texi2dvi}\alias{texi2dvi}\alias{texi2pdf}\title{Compile LaTeX Files}\description{Run \code{latex}/\code{pdflatex}, \code{makeindex} and \code{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{\item{file}{character string. Name of the LaTeX source file.}\item{pdf}{logical. If \code{TRUE}, a PDF file is produced instead ofthe default DVI file (\code{texi2dvi} command line option \option{--pdf}).}\item{clean}{logical. If \code{TRUE}, all auxiliary files createdduring the conversion are removed.}\item{quiet}{logical. No output unless an error occurs.}\item{texi2dvi}{character string (or \code{NULL}). Script or programused to compile a TeX file to DVI or PDF. The default (selectedby \code{""} or \code{"texi2dvi"} or \code{NULL}) is to lookfor a program or script named \command{texi2dvi} on the path andotherwise emulate the script with \code{system2} calls (whichcan be selected by the value \code{"emulation"}). See also\sQuote{Details}.}\item{texinputs}{\code{NULL} or a character vector of paths to add tothe LaTeX and BibTeX input search paths.}\item{index}{logical: should indices be prepared?}}\details{\code{texi2pdf} is a wrapper for the common case of\code{texi2dvi(pdf = TRUE)}.Despite the name, this is used in \R to compile LaTeX files,specifically those generated from vignettes and by the\code{\link{Rd2pdf}} script (used for package reference manuals). Itensures that the \file{\var{\link{R_HOME}}/share/texmf} directory isin the \env{TEXINPUTS} path, so \R style files such as \file{Sweave.sty}and \file{Rd.sty} will be found. The TeX search path used is first theexisting \env{TEXINPUTS} setting (or the current directory if unset),then elements of argument \code{texinputs}, then\file{\var{R_HOME}/share/texmf} and finally the default path.Analogous changes are made to \env{BIBINPUTS} and \env{BSTINPUTS}settings.#ifdef unixThe default option for \code{texi2dvi} is set from environment variable\env{R_TEXI2DVICMD}, and the default for that is set from environmentvariable \env{TEXI2DVI} or if that is unset, from a value chosen when\R is configured.%% issues included not re-running latex in texinfo 6.1 and bashisms in%% the /bin/sh script in <= 6.0.A shell script \command{texi2dvi} is part of GNU's \pkg{texinfo}.Several issues have been seen with released versions, so if yours doesnot work correctly try \env{R_TEXI2DVICMD=emulation}.#endif#ifdef windowsOn Windows the option \code{"texi2dvi"} is normally unset. The MiKTeXcommand \command{texify.exe} is a suitable choice for \code{texi2dvi},and is tried as from \R 3.2.3 if the argument is blank or \code{NULL}and a program or script \code{texi2dvi} is not found.MiKTeX had a \code{texi2dvi} executable until Sept 2015, but no otherWindows TeX installation that we know of does, so emulation is used one.g.\sspace{}TeXLive installations on Windows.#endifOccasionally indices contain special characters which cause indexingto fail (particularly when using the \samp{hyperref} LaTeX package)even on valid input. The argument \code{index = FALSE} is provided toallow package manuals to be made when this happens: it uses emulation.}\note{%% configure just looks for a texi2dvi command and does not check its%% version. Howvever, it is normally distributed with texinfo, and%% that is checked to be >= 5.1.%% The macOS distribution by default installs /usr/local/bin/texi2dvi,%% but that is optional and macOS has /usr/bin/texi2dvi stuck at 4.8.There are various versions of the \command{texi2dvi} script onUnix-alikes and quite a number of bugs have been seen, some of whichthis \R wrapper works around.One that was present with \command{texi2dvi} version \code{4.8} (assupplied by macOS) is that it will not work correctly for paths whichcontain spaces, nor if the absolute path to a file would containspaces.The three possible approaches all have their quirks. For example theUnix-alike \code{texi2dvi} script removes ancillary files that alreadyexist but the other two approaches do not (and may get confused bysuch files).Where supported (\command{texi2dvi} 5.0 and later;\command{texify.exe} from MiKTeX), option \option{--max-iterations=20}is used to avoid infinite retries.The emulation mode supports \code{quiet = TRUE} from \R 3.2.3 only.Currently \code{clean = TRUE} only cleans up in this mode if theconversion was successful---this gives users a chance to examine logfiles in the event of error.All the approaches should respect the values of environment variables\env{LATEX}, \env{PDFLATEX}, \env{MAKEINDEX} and \env{BIBTEX} for thefull paths to the corresponding commands.}\value{Invisible \code{NULL}. Used for the side effect of creating a DVI orPDF file in the current working directory (and maybe other files,especially if \code{clean = FALSE}).}\author{Originally Achim Zeileis but largely rewritten by R-core.}\keyword{utilities}