tikzDevice-package: Support for native LaTeX output of R graphics

tikzDevice-packageR Documentation

Support for native LaTeX output of R graphics


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:


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.


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' ).


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


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


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').


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}")


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.


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


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


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


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}" ))


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.


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.


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


A numeric that denotes the number of pts 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).


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


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.


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.


See packageDescription("tikzDevice").

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


The TikZ and PGF Packages: Manual for version 2.00
Till Tantau, February 20, 2008

See Also


tikzDevice documentation built on May 29, 2024, 4:18 a.m.