11 Use of TeX dialects
Various dialects of TeX are used for different purposes in R. The policy is that manuals be written in texinfo
, and for convenience the main and Windows FAQs are also. This has the advantage that it is easy to produce HTML and plain text versions as well as typeset manuals.
LaTeX is not used directly, but rather as an intermediate format for typeset help documents and for vignettes.
Care needs to be taken about the assumptions made about the R user’s system: it may not have either texinfo
or a TeX system installed. We have attempted to abstract out the cross-platform differences, and almost all the setting of typeset documents is done by tools::texi2dvi
. This is used for offline printing of help documents, preparing vignettes and for package manuals via R CMD Rd2pdf
. It is not currently used for the R manuals created in directory doc/manual
.
tools::texi2dvi
makes use of a system command texi2dvi
where available. On a Unix-alike this is usually part of texinfo
, whereas on Windows if it exists at all it would be an executable, part of MiKTeX. If none is available, the R code runs a sequence of (pdf)latex
, bibtex
and makeindex
commands.
This process has been rather vulnerable to the versions of the external software used: particular issues have been texi2dvi
and texinfo.tex
updates, mismatches between the two1, versions of the LaTeX package hyperref
and quirks in index production. The licenses used for LaTeX and latterly texinfo
prohibit us from including ‘known good’ versions in the R distribution.
1 Linux distributions tend to unbundle texinfo.tex
from texinfo
.
On a Unix-alike configure
looks for the executables for TeX and friends and if found records the absolute paths in the system Renviron
file. This used to record false
if no command was found, but it nowadays records the name for looking up on the path at run time. The latter can be important for binary distributions: one does not want to be tied to, for example, TeX Live 2007.
Footnotes