Tint Is Not Tufte: Brief Intro

library(tint)
library(ggplot2)
mtcars$am <- factor(mtcars$am, labels=c("manual", "automatic"))
## download files if connected -- and we're not on Windows as this consistently failed
## when not connected (or on Windows), two margin figure will not be shown, the rest
## is still processed as usual
connected <- tint:::.isConnected() && .Platform$OS.type != "windows"
if (connected) {
    tmpdir <- normalizePath(tempdir(), winslash = "/")
    latofile <- file.path(tmpdir, "tintPdfLatoPage1.pdf")
    garamondfile <- file.path(tmpdir, "tintPdfGaramondPage1.pdf")
    download.file("https://eddelbuettel.github.io/tint/tintPdfLatoPage1.pdf",
                  latofile, quiet = TRUE)
    download.file("https://eddelbuettel.github.io/tint/tintPdfGaramondPage1.pdf",
                  garamondfile, quiet = TRUE)
}

An Introduction to tint

tint \citep{cran:tint} updates the look and feel of 'Tufte' documents for R. It combines the (html and pdf parts of the) excellent tufte package \citep{cran:tufte} with the Roboto Condensed font use and color scheme proposed by envisioned css plus minor style changes such as removal of italics---but remains otherwise true to the tufte package for R. Later additions are a book style and well as generalisation of the font handling allowing for Lato and Garamond fonts along with extended color selection.

ggplot(mtcars, aes(wt, mpg)) + geom_point(size=3, aes(colour=factor(cyl))) +
    theme(legend.position="none")

The package name follows an old tradition and is recursive: tint is not tufte.

Full documentation is available in the longer PDF vignette, its Lato and Garamond variants (see below) as well as the longer HTML vignette. As these render to about two megabytes each, we no longer include them by default in the package as it swells the size of the installed package unnecessarily.

Margin Examples

The margin can be used for arbirtrary 'figure' environments by using the knitr option marginfigure along with standard \LaTeX mathematical markup.

We know from _the first fundamental theorem of calculus_ that for $x$ in $[a, b]$:
$$\frac{d}{dx}\left( \int_{a}^{x} f(u)\,du\right)=f(x).$$

We can also add a 'note' using the standard pandoc notation of text in square brackets following an hat symbol: ^[text here].^[This is a sidenote that was entered using a footnote.]

Notes can also be added in-line using an R command and the margin_note() function. r margin_note("Some text.") Note that this note is unnumbered.

Margin Figures

One feature of the tint / tufte packages are margin figure such as the first one on the right. It was created by setting the knitr option fig.margin=TRUE; the plotting code itself is standard.

ggplot(mtcars, aes(wt, mpg)) +
    geom_point(size=3, aes(colour=factor(cyl))) +
    theme(legend.position="none")
ggplot(mtcars, aes(wt, mpg)) + geom_point(size=3, aes(colour=factor(cyl))) +
    theme_tint() + theme(legend.position="none")

Charts can also take advantage of the theme_tint() we added; it owes a lot to a similar function in the ggtufte package \citep{github:ggtufte} (but which conflicts in its font settings with our, so we simplified). Its effect can be seen in the second figure. Note that the legend-suppression has to come after theme_tint() as changes are additive.

Full Width Figures

Figures can span across the entire page; this is enabled by using the chunk option fig.fullwidth = TRUE. Using the default them but conditioning by number of cylinders:

ggplot(mtcars, aes(wt, mpg)) + geom_point(size=3, aes(colour=am)) + facet_wrap(~ factor(cyl)) +
    theme(legend.position="bottom")

Main Column Figures

Besides margin and full width figures, one can of course also include figures constrained to the main column. This is the default type of figures in the LaTeX/HTML output. A single figure with cylinders in color and transmission not controlled for, and once again using theme_tint():

ggplot(mtcars, aes(wt, mpg)) +
    geom_point(size=2, aes(colour=factor(cyl))) +
    theme_tint() + theme(legend.position="none")

Font Extensions

Since version 0.1.1, the Lato and Garamond font families can be used. See the package for details. In contrast to the default Roboto variant, the Lato variant uses

if (connected) knitr::include_graphics(latofile, dpi = NA)
latexfonts: 
  - package: lato
    options: default
  - package: FiraMono
linkcolor: "0.3,0.3,0.6"

The Garamond variant uses

latexfonts: 
  - package: newtxmath
    options: 
      - cmintegrals
      - cmbraces
  - package: ebgaramond-maths
  - package: nimbusmononarrow
if (connected) knitr::include_graphics(garamondfile, dpi = NA)

This requires the fonts to be installed on the system on which the document is prepared. How to install additional fonts is beyond the scope of this note, see platform and font-specific help.

Citations, Code, Tables and More

Citations

One can use Pandoc-style citations using the the Bibtext citation identifier inside of square brackets: [@someone:1984]. Alternatively, the standard natbib features are available such as \citet{}, \citep{} and more.

Code

The package, just like any other pandoc-driven use of markdown, can also typset code directly. We showed this above with the ggplot() example (using R formatting) and the font declarations (using YAML formatting).

Tables

As knitr \citep{cran:knitr} is driving the conversion, many of its options also apply. See the documentation for the tufte and knitr for details.



Try the tint package in your browser

Any scripts or data that you put into this service are public.

tint documentation built on July 18, 2020, 5:06 p.m.