theme_tt function

Themes for tinytable

Themes for tinytable

A theme is a function which applies a collection of transformations to a tinytable object. Whereas the other tinytable functions such as format_tt() and style_tt() aim to be output-agnostic, themes can be output-specific, only applying to LaTeX, HTML, or Typst, as needed.

Each theme can have specific arguments, which are passed to the theme_tt() function. See the "Arguments" section below.

theme_tt(x, theme, ...)

Arguments

  • x: A tinytable object

  • theme: String. Name of the theme to apply. One of:

    • "bootstrap": Similar appearance to the default Bootstrap theme in HTML
    • "grid": Vertical and horizontal rules around each cell.
    • "multipage": Long tables continue on the next page (LaTeX only)
    • "placement": Position of the table environment (LaTeX)
    • "rotate": Rotate a LaTeX or Typst table.
    • "resize": Scale a LaTeX tinytable to fit the width argument.
    • "spacing": Draw more compact or airy tables.
    • "striped": Grey stripes on alternating rows
    • "tabular": Remove table environment (LaTeX) or Javascript/CSS (HTML)
    • "void": No rules
  • ...: Additional arguments passed the themeing function. See the "Arguments" section below for a list of supported arguments for each theme.

Returns

A modified tinytable object

Arguments

multipage

  • rowhead: Non-negative integer. The number of header rows to repeat on each page.

    • Set globally with options("tinytable_theme_multipage_rowhead" = 1L)
  • rowfoot: Non-negative integer. The number of footer rows to repeat on each page.

    • Set globally with options("tinytable_theme_multipage_rowfoot" = 1L)

tabular

  • style:

    • "tabular": Drop all LaTeX dependencies and floating environments, except \\begin{tabular}
    • "tabularray": Drop all LaTeX dependencies and floating environments, except \\begin{tblr}
    • Set globally with options("tinytable_theme_tabular_style" = "tblr")

placement

  • horizontal (Typst only): "l", "c", or "r" to align the table horizontally in the page.

    • Set globally with options("tinytable_theme_placement_horizontal" = "l")
  • latex_float: String to insert in square brackets after the LaTeX table environment, ex: "H", "htbp". The default value is controlled by a global option:

    • Set globally with options("tinytable_theme_placement_latex_float" = "H")

resize

  • width: A numeric value between 0.01 and 1, representing the proportion of the line width to use

    • Set globally with options("tinytable_theme_resize_width" = 0.9)
  • direction: "down", "up", "both" A string indicating if the table should be scaled in one direction. For example, "down" will only resize the table if it exceeds \linewidth

    • Set globally with options("tinytable_theme_resize_direction" = "down")

rotate

  • angle: Angle of the rotation. For example, `angle=90`` applies a half counter-clockwise turn.

  • Caveats:

    • LaTeX and Typst only.
    • Typst: In Quarto documents, rotation does not work because Quarto takes over the figure environment.
    • LaTeX: In Quarto documents, captions must be specified using the caption argument in tt() rather than via Quarto chunk options.

spacing

  • rowsep: Row spacing
  • colsep: Column spacing

Examples

library(tinytable) x <- mtcars[1:4, 1:4] # equivalent calls tt(x, theme = "striped") tt(x) |> theme_tt("striped") # resize w/ argument x <- cbind(mtcars[1:10, ], mtcars[1:10, ]) tt(x) |> theme_tt("resize", width = .9) |> print("latex")
  • Maintainer: Vincent Arel-Bundock
  • License: GPL (>= 3)
  • Last published: 2025-03-23