tikzDevice-package {tikzDevice} R Documentation

## Support for native LaTeX output of R graphics

### Description

The tikzDevice package implements the `tikz` ouput device which generates R graphics in a LaTeX friendly format. LaTeX handles the typesetting of all text in graphics generated by `tikz`. This allows for seamless integration between these graphics and documents that are also being typeset by LaTeX. Using LaTeX to generate graph text also means that LaTeX mathematics can be typeset directly into labels and annotations.

### Options That Affect Package Behavior

The tikzDevice package is currently influenced by a number of global options that may be set in scripts, from the console or in a `.Rprofile` file. All of the options can be set by using `options(<option> = <value>)`. These options allow for the use of custom `documentclass` declarations, LaTeX packages, and typesetting engines (e.g. XeLaTeX or LuaLaTeX). The defaults, if are any for a given option, are shown below the description. The global options are:

`tikzDefaultEngine`

Specifies which typesetting engine functions in the tikzDevice package will prefer. Current possible values are `pdftex`, `xetex` or `luatex`. Respectively, these values trigger the use of the `pdflatex`, `xelatex` and `lualatex` compilers.

`tikzLatex`

Specifies the location of the LaTeX compiler to be used by tikzDevice. Setting this option may help the package locate a missing compiler. The default is searched for when the package is loaded, otherwise it can be set manually. This option may be set as follows: `options( tikzLatex = '/path/to/latex/compiler' )`.

`tikzXelatex`

Functions similar to `tikzLatex`, except this option specifies the location of the XeLaTeX compiler.

`tikzLualatex`

Functions similar to `tikzLatex`, except this option specifies the location of the LuaLaTeX compiler.

`tikzMetricsDictionary`

When using the graphics device provided by tikzDevice, you may notice that appears to “lag" or “hang" when commands such as `plot()` are executed. This is because the device must query the LaTeX compiler for string widths and font metrics. For a normal plot, this may happen dozens or hundreds of times- hence becomes unresponsive for a while. The good news is that the `tikz` code is designed to cache the results of these computations so they need only be performed once for each string or character. By default, these values are stored in a temporary cache file which is deleted when is shut down. A location for a permanent cache file may be specified by setting the value of `tikzMetricsDictionary` in `.Rprofile` with ```options(tikzMetricsDictionary = '/path/to/dictionary/location')```.

`tikzDocumentDeclaration`

A string. The LaTeX documentclass declaration used in output files when `standAlone == TRUE`. `tikzDocumentDeclaration` also influences the calculation of font metrics. The default value is: ```options(tikzDocumentDeclaration = "\documentclass[10pt]{article}")```

`tikzLatexPackages`

A character vector. These are the packages which are included when using the `pdftex` engine and `tikz` is used with the the `standAlone` option as well as when font metrics are calculated.

`tikzXelatexPackages`

This option works like `tikzLatexPackages`, except is is used when the `xetex` engine is in use.

`tikzLualatexPackages`

This option works like `tikzXelatexPackages`, except is is used when the `luatex` engine is in use.

`tikzFooter`

A character vector. The footer to be used only when `standAlone==TRUE`.

`tikzMetricPackages`

A character vector. These are the packages which are additionally loaded when doing font metric calculations. As you see below, the font encoding is set to Type 1. This is very important so that character codes of LaTeX and match up. The default value is: ```options(tikzMetricPackages = c( "\usepackage[utf8]{inputenc}", "\usepackage[T1]{fontenc}", "\usetikzlibrary{calc}" ))```

`tikzUnicodeMetricPackages`

This vector is used when font metric calculations are performed using the `xetex` or `luatex` engines. It should have the same contents as `tikzMetricPackages` with the addition of the `fontspec` and `xunicode` packages.

`tikzSanitizeCharacters`

A character vector of special latex characters to replace. These values should correspond to the replacement values from the `tikzReplacementCharacters` option. See `sanitizeTexString` for more details.

`tikzReplacementCharacters`

A character vector of replacements for special latex characters. These values should correspond to the values from the `tikzSanitizeCharacters` option.

`tikzLwdUnit`

A numeric that denotes the number of `pt`s in LaTeX that `lwd=1` in R is translated to. Defaults to 0.4 (LaTeX and TikZ default); for compatibility with R default, please use 72.27/96 (96 pixels in R is 1 inch, which is 72.27 points in TeX).

`tikzRasterResolution`

When `tikz` is requested to add a raster to a graphic, the raster is written to a PNG file which is then included into the LaTeX code. This option controls the resolution (dpi) at which the PNG files are created.

`tikzPdftexWarnUTF`

A `TRUE/FALSE` value that controls whether warnings are printed if Unicode characters are sent to a device using the `pdftex` engine.

`tikzSymbolicColors`

A logical value indicating whether colors are written as RGB values or as symbolic names in which case the need to be defined in the LaTeX document.

`tikzMaxSymbolicColors`

an integer number indicating the maximal number of distinct colors to write symbolically. Any excess color will be defined as if `symbolicColors` was set to `FALSE`.

Default values for all options may be viewed or restored using the `setTikzDefaults` function.

### Author(s)

See `packageDescription("tikzDevice")`.

Submit bug reports to: https://github.com/yihui/tikzDevice/issues

### References

The TikZ and PGF Packages: Manual for version 2.00
http://sourceforge.net/projects/pgf
Till Tanatu, February 20, 2008

`tikz`