Abstrave quarto theme
Roy Francis
25-May-2025
---
title: "This is a title"
format:
revealjs
---
quarto::quarto_render() in R:quarto render in the terminal:Slides are separated by ##. Incremental content on is separated by . . . like below.
Hide or not count a slide:
## Slide Title {visibility="hidden"}
## Slide Title {visibility="uncounted"}
. . .
Any content inside class .notes on a slide are notes. This is only visible in presenter mode (by pressing s).
. . .
The slide content can be organized into columns which can be nested if needed.
:::{.columns}
:::{.column width="50%"}
<div style="background-color:#fdebd0">Left content</div>
:::
:::{.column width="50%"}
<div style="background-color:#eaf2f8">Right content</div>
:::{.column width="60%"}
<div style="background-color:#d0ece7">Inner left</div>
:::
:::{.column width="40%"}
<div style="background-color:#f2d7d5">Inner right</div>
:::
:::
:::
Left content
Right content
Inner left
Inner right
::: {.v-top}
::: {}
- Top aligned
- content
:::
:::
::: {.v-center}
::: {}
- Center aligned
- content
:::
:::
::: {.v-bottom}
::: {}
- Bottom aligned
- content
:::
:::
Rendering of normal text, numbers and symbols.
ABCDEFGHIJKLMNOPQRSTUYWXYZÅÄÖ
abcdefghijklmnopqrstuvwxyzåäö
0123456789
!“#%&/()$@*^~<>-:;,_±|?+=
!"#%&/\()$@*^~<>-:;,_±|?+=
Headings can be defined as shown below.
## Level 2 heading
### Level 3 heading
#### Level 4 heading
##### Level 5 heading
###### Level 6 heading
Level 1 usage is not recommended. Use level 2 for slide titles. Use level 3 and below for other titles.
Text scaling classes
[Largest text]{.largest}
[Larger text]{.larger}
[Large text]{.large}
Normal text.
[Small text]{.small}
[Smaller text]{.smaller}
[Smallest text]{.smallest}
Largest text
Larger text
Large text
Normal text
Small text
Smaller text
Smallest text
Horizontal alignment of text can be adjusted as shown below.
[Left aligned text]{.left}
[Center aligned text]{.center}
[Right aligned text]{.right}
Left aligned text
Center aligned text
Right aligned text
::: {.blockquote}
This line is quoted
:::
This line is quoted
A horizontal line can be created using ---
This is **Bold text** This is Bold text
This is *Italic text* This is Italic text
~~Strikethrough~~ text Strikethrough text
This is subscript H~2~O H2O
This is superscript 2^10^ 210
This is a [badge]{.badge .badge-primary}
This is a badge
This is a [badge]{.badge .badge-secondary}
This is a badge
This is a [link](r-project.org) This is a link
Fit text to full width.
::: {.r-fit-text}
Attention
:::
Attention
In reports, .aside pushes content into the margin while in revealjs, it is pushed to the bottom.
::: {.aside}
Content inside aside.
:::
Unordered List
- Bullet 1
- Bullet 2
- Sub-bullet 2.1
Incremental List
:::{.incremental}
1. Incremental Bullet 1
2. Incremental Bullet 2
3. Incremental Bullet 3
:::
For more options, see here.
::: {style="color: red"}
This paragraph is red.
:::
This paragraph is red.
[This text is blue]{style="color: blue"}
This text is blue
::: {.callout-note}
This is a callout.
:::
::: {.callout-warning}
This is a callout.
:::
::: {.callout-important}
This is a callout.
:::
::: {.callout-tip}
This is a callout.
:::
::: {.callout-caution}
This is a callout.
:::
Note
This is a callout.
Warning
This is a callout.
Important
This is a callout.
Tip
This is a callout.
Caution
This is a callout.
Variants of callout
::: {.callout-note icon=false}
Icon is disabled
:::
::: {.callout-note appearance="simple"}
Appearance is simple
:::
::: {.callout-note appearance="minimal"}
Appearance is minimal
:::
::: {.callout-note appearance="simple"}
## Custom title
Simple appearance and a custom title
:::
::: {.callout-note appearance="minimal"}
## Custom title
Minimal appearance and a custom title
:::
Note
Icon is disabled
Appearance is simple
Appearance is minimal
Custom title
Simple appearance and a custom title
Custom title
Minimal appearance and a custom title
::: {.callout-note}
This contains code
## Callout with code
```
Sys.Date()
```
:::
Callout with code
This contains code
Sys.Date()
Inline code
`this` looks like this.`r Sys.Date()` producing 2025-05-25.== != && ++ |> <> <- <= <~ /= |=> ->>
Code chunks
Code can also be defined inside chunks.
```
This is code
```
This is code
R code is executed inside code blocks like this
which shows the code and output.
For more code highlighting documentation, see here.
Using Markdown
Using regular markdown.


The dimensions are based on image and/or fill up the entire width.
Control image dimensions.
{width=50%}
{width=20%}

For more image documentation, see here.
Figure layout
::: {layout-ncol=3}
{#fig-layout-1}
{#fig-layout-2}
{#fig-layout-3}
:::
Absolute positioning
{.absolute top=250 left=0 height="450"}
{.absolute top=200 right=50 height="250"}
{.absolute bottom=0 right=200 height="200"}



Using Raw HTML
This image is 30% size. <img src="assets/image.webp" style="width:30%;"/>

Using R
R chunks in RMarkdown can be used to control image display size using the argument out.width.
This image is displayed at a size of 200 pixels.
Stack images and display incrementally
::: {.r-stack}
::: {.fragment}
{style="transform:rotate(-5deg);border:beige 40px solid;"}
:::
::: {.fragment}
{style="transform:rotate(5deg);border:beige 40px solid;"}
:::
:::


Stretch images to use up remaining space.
{.stretch}
Some examples of rendering equations.
$e^{i\pi} + 1 = 0$
$$\frac{E \times X^2 \prod I}{2+7} = 432$$
$$\sum_{i=1}^n X_i$$
$$\int_0^{2\pi} \sin x~dx$$
\(e^{i\pi} + 1 = 0\) \[\frac{E \times X^2 \prod I}{2+7} = 432\] \[\sum_{i=1}^n X_i\] \[\int_0^{2\pi} \sin x~dx\]
Some examples of rendering equations.
$\left( \sum_{i=1}^{n}{i} \right)^2 = \left( \frac{n(n-1)}{2}\right)^2 = \frac{n^2(n-1)^2}{4}$
$\begin{eqnarray} X & \sim & \mathrm{N}(0,1)\\ Y & \sim & \chi^2_{n-p}\\ R & \equiv & X/Y \sim t_{n-p} \end{eqnarray}$
$\begin{eqnarray} P(|X-\mu| > k) & = & P(|X-\mu|^2 > k^2)\\ & \leq & \frac{\mathbb{E}\left[|X-\mu|^2\right]}{k^2}\\ & \leq & \frac{\mathrm{Var}[X]}{k^2} \end{eqnarray}$
\(\left( \sum_{i=1}^{n}{i} \right)^2 = \left( \frac{n(n-1)}{2}\right)^2 = \frac{n^2(n-1)^2}{4}\)
\(\begin{eqnarray} X & \sim & \mathrm{N}(0,1)\\ Y & \sim & \chi^2_{n-p}\\ R & \equiv & X/Y \sim t_{n-p} \end{eqnarray}\)
\(\begin{eqnarray} P(|X-\mu| > k) & = & P(|X-\mu|^2 > k^2)\\ & \leq & \frac{\mathbb{E}\left[|X-\mu|^2\right]}{k^2}\\ & \leq & \frac{\mathrm{Var}[X]}{k^2} \end{eqnarray}\)
kableThe most simple table using kable from R package knitr.
Tables using the gt package. Grammar of tables with extensive customization options.
| Sepal Length | Sepal Width | Petal Length | Petal Width |
|---|---|---|---|
| setosa | |||
| 5.1 | 3.5 | 1.4 | 0.2 |
| 4.9 | 3.0 | 1.4 | 0.2 |
| versicolor | |||
| 7.0 | 3.2 | 4.7 | 1.4 |
| 6.4 | 3.2 | 4.5 | 1.5 |
| virginica | |||
| 6.3 | 3.3 | 6.0 | 2.5 |
| 5.8 | 2.7 | 5.1 | 1.9 |
| Source: Iris data. Anderson, 1936; Fisher, 1936) | |||
kableExtraMore advanced table using kableExtra and formattable.
iris[c(1:2,51:52,105:106),] %>%
mutate(Sepal.Length=color_bar("lightsteelblue")(Sepal.Length)) %>%
mutate(Sepal.Width=color_tile("white","orange")(Sepal.Width)) %>%
mutate(Species=cell_spec(Species,"html",color="white",bold=T,
background=c("#8dd3c7","#fb8072","#bebada")[factor(.$Species)])) %>%
kable("html",escape=F) %>%
kable_styling(bootstrap_options=c("striped","hover","responsive"),full_width=F) %>%
column_spec(5,width="3cm")| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species | |
|---|---|---|---|---|---|
| 1 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 2 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 51 | 7.0 | 3.2 | 4.7 | 1.4 | versicolor |
| 52 | 6.4 | 3.2 | 4.5 | 1.5 | versicolor |
| 105 | 6.5 | 3.0 | 5.8 | 2.2 | virginica |
| 106 | 7.6 | 3.0 | 6.6 | 2.1 | virginica |
DTInteractive table using R package DT.
reactableInteractive tables with reactable.
Plots using base R.
ggplot2Plotting using ggplot2.
highcharterR package highcharter is a wrapper around javascript library highcharts.
library(highcharter)
h <- iris %>%
hchart("scatter",hcaes(x="Sepal.Length",y="Sepal.Width",group="Species")) %>%
hc_xAxis(title=list(text="Sepal Length"),crosshair=TRUE) %>%
hc_yAxis(title=list(text="Sepal Width"),crosshair=TRUE) %>%
hc_chart(zoomType="xy",inverted=FALSE) %>%
hc_legend(verticalAlign="top",align="right") %>% hc_size(height=300,width=500)
htmltools::tagList(list(h))plotlyR package plotly provides R binding around javascript plotting library plotly.
ggplotlyplotly also has a function called ggplotly which converts a static ggplot2 object into an interactive plot.
ggiraphR package ggiraph converts a static ggplot2 object into an interactive plot.
library(ggiraph)
p <- ggplot(iris,aes(x=Sepal.Length,y=Petal.Length,colour=Species))+
geom_point_interactive(aes(tooltip=paste0("<b>Petal Length:</b> ",Petal.Length,"\n<b>Sepal Length: </b>",Sepal.Length,"\n<b>Species: </b>",Species)),size=2)+
theme_bw()
tooltip_css <- "background-color:#f8f9f9;padding:10px;border-style:solid;border-width:2px;border-color:#125687;border-radius:5px;"
girafe(code=print(p), height_svg=2, width_svg=4,
options=list(
opts_hover(css="cursor:pointer;stroke:black;fill-opacity:0.3"),
opts_zoom(max=5),
opts_tooltip(css=tooltip_css,opacity=0.9),
opts_sizing(width=0.6)
)
)dygraphsR package dygraphs provides R bindings for javascript library dygraphs for time series data.
R package networkD3 allows the use of interactive network graphs from the D3.js javascript library.
leafletR package leaflet provides R bindings for javascript mapping library; leafletjs.
crosstalkR package crosstalk allows crosstalk enabled plotting libraries to be linked. Through the shared ‘key’ variable, data points can be manipulated simultaneously on two independent plots.
library(crosstalk)
shared_quakes <- SharedData$new(quakes[sample(nrow(quakes), 100),])
lf <- leaflet(shared_quakes,height=300) %>%
addTiles(urlTemplate='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png') %>%
addMarkers()
py <- plot_ly(shared_quakes,x=~depth,y=~mag,size=~stations,height=300) %>%
add_markers()
div(div(lf,style="float:left;width:49%"),div(py,style="float:right;width:49%"))ObservableJS in quarto documentation.
This slide has a colourful background
## Colourful {background-color="#ABEBC6"}
This slide has a background image
## Big Image {background-image="assets/image.webp"}
css: "styles.css".scrollable sysname
"Linux"
release
"6.11.0-1014-azure"
version
"#14~24.04.1-Ubuntu SMP Thu Apr 24 17:41:03 UTC 2025"
nodename
"fv-az1921-371"
machine
"x86_64"
login
"unknown"
user
"runner"
effective_user
"runner"