Themes

tinytable offers a very flexible theming framwork, which includes a few basic visual looks, as well as other functions to apply collections of transformations to tinytable objects in a repeatable way. These themes can be applied by supplying a string or function to the theme argument in tt(). Alternatively, users can call the theme_tt() function.

The main difference between theme_tt() and the other options in package, is that whereas style_tt() and format_tt() aim to be output agnostic, theme_tt() supplies transformations that can be output-specific, and which can have their own sets of distinct arguments. See below for a few examples.

library(tinytable)
options(tinytable_tt_digits = 3)
options(tinytable_theme_placement_latex_float = "H")
x <- mtcars[1:4, 1:5]

Visual themes

To begin, let’s explore a few of the basic looks supplied by themes:

tt(x, theme = "striped")
tinytable_kw05ycu7vusaw730u1u9
mpg cyl disp hp drat
21 6 160 110 3.9
21 6 160 110 3.9
22.8 4 108 93 3.85
21.4 6 258 110 3.08
tt(x) |> theme_tt("striped")
tinytable_98ntodjorsprswskk9oz
mpg cyl disp hp drat
21 6 160 110 3.9
21 6 160 110 3.9
22.8 4 108 93 3.85
21.4 6 258 110 3.08
tt(x, theme = "grid")
tinytable_zx3jj5u6u707awiivww8
mpg cyl disp hp drat
21 6 160 110 3.9
21 6 160 110 3.9
22.8 4 108 93 3.85
21.4 6 258 110 3.08
tt(x, theme = "bootstrap")
tinytable_0opnptpkum49l0xul7i9
mpg cyl disp hp drat
21 6 160 110 3.9
21 6 160 110 3.9
22.8 4 108 93 3.85
21.4 6 258 110 3.08

Custom themes

Users can also define their own themes to apply consistent visual tweaks to tables. For example, this defines a themeing function and sets a global option to apply it to all tables consistently:

theme_vincent <- function(x, ...) {
  out <- x |> 
    style_tt(color = "teal") |>
    theme_tt("placement")
  out@caption <- "Always use the same caption."
  return(out)
}

options(tinytable_tt_theme = theme_vincent)

tt(mtcars[1:2, 1:2])
tinytable_1nhnj9xr0v3vo9eo3p08
Always use the same caption.
mpg cyl
21 6
21 6
tt(mtcars[1:3, 1:3])
tinytable_7eimw5ei1hz3mh8hilzq
Always use the same caption.
mpg cyl disp
21 6 160
21 6 160
22.8 4 108
options(tinytable_tt_theme = NULL)

Tabular

The tabular theme is designed to provide a more “raw” table, without a floating table environment in LaTeX, and without CSS or Javascript in HTML.

tt(x) |> theme_tt("tabular") |> print("latex")
\begin{tblr}[         %% tabularray outer open
]                     %% tabularray outer close
{                     %% tabularray inner open
colspec={Q[]Q[]Q[]Q[]Q[]},
}                     %% tabularray inner close
\toprule
mpg & cyl & disp & hp & drat \\ \midrule %% TinyTableHeader
21   & 6 & 160 & 110 & 3.9  \\
21   & 6 & 160 & 110 & 3.9  \\
22.8 & 4 & 108 & 93  & 3.85 \\
21.4 & 6 & 258 & 110 & 3.08 \\
\bottomrule
\end{tblr} 

Resize

LaTeX only.

Placement

LaTeX only.

Multipage

LaTeX only.