Tint Is Not Tufte: Brief Intro

Dirk Eddelbuettel and Jonathan Gilligan

2022-11-01

An Introduction to tint

tint (Eddelbuettel and Gilligan 2019Eddelbuettel, Dirk, and Jonathan Gilligan. 2019. Tint: ’Tint’ Is Not ’Tufte’. https://CRAN.R-project.org/package=tint.) updates the look and feel of ‘Tufte’ documents for R. It combines the (html and pdf parts of the) excellent tufte package (Xie and Allaire 2018Xie, Yihui, and JJ Allaire. 2018. Tufte: Tufte’s Styles for r Markdown Documents. https://CRAN.R-project.org/package=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.

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 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].1

Notes can also be added in-line using an R command and the margin_note() function. 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")

Charts can also take advantage of the theme_tint() we added; it owes a lot to a similar function in the ggtufte package (Arnold 2018Arnold, Jeffrey. 2018. Ggtufte: Themes and Geoms Implementing Tufte’s Work in ’Ggplot2’. https://github.com/jrnold/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:

A full width figure.

A full width figure.

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():

A figure in the main column.

A figure in the main column.

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

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

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]. In pdf mode, the standard natbib features are also 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 (Xie 2019Xie, Yihui. 2019. Knitr: A General-Purpose Package for Dynamic Report Generation in r. https://CRAN.R-project.org/package=knitr.) is driving the conversion, many of its options also apply. See the documentation for the tufte and knitr for details.


  1. This is a sidenote that was entered using a footnote.↩︎