---
title: "Rending math to HTML in R using katex"
output:
html_document:
mathjax: null
theme: null
highlight: haddock
# self_contained: false
vignette: >
%\VignetteIndexEntry{Rending math to HTML in R using katex}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, comment = "")
library(katex)
```
This vignette demonstrates some example math rendered server-side in R using the katex package. Refer to the upstream [katex support table](https://katex.org/docs/support_table.html) for the full list of supported tex functions.
Example equations from: https://www.intmath.com/cg5/katex-mathjax-comparison.php
### Equation 1
```{r}
tex1 <- "\\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} \\equiv 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}} {1+\\frac{e^{-8\\pi}} {1+\\cdots} } } }"
katex_html(tex1, include_css = TRUE)
```
### Equation 2
```{r}
tex2 <- "\\left( \\sum_{k=1}^n a_k b_k \\right)^2 \\leq \\left( \\sum_{k=1}^n a_k^2 \\right) \\left( \\sum_{k=1}^n b_k^2 \\right)"
katex_html(tex2)
```
### Equation 3
```{r}
tex3 <- "1 + \\frac{q^2}{(1-q)}+\\frac{q^6}{(1-q)(1-q^2)}+\\cdots = \\prod_{j=0}^{\\infty}\\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \\text{ for }\\lvert q\\rvert < 1."
katex_html(tex3)
```
### Equation 4
```{r}
tex4 <- "\\int u \\frac{dv}{dx}\\,dx=uv-\\int \\frac{du}{dx}v\\,dx"
katex_html(tex4)
```
### Equation 5
```{r}
tex5 <- "S (\\omega)=\\frac{\\alpha g^2}{\\omega^5} \\,e ^{[-0.74\\bigl\\{\\frac{\\omega U_\\omega 19.5}{g}\\bigr\\}^{-4}]}"
katex_html(tex5)
```
### Equation 6
```{r}
tex6 <- "f(n) = \\begin{cases} \\frac{n}{2}, & \\text{if } n\\text{ is even} \\\\ 3n+1, & \\text{if } n\\text{ is odd} \\end{cases}"
katex_html(tex6)
```
### Equation 7
```{r}
tex7 <- "\\begin{aligned}
\\dot{x} & = \\sigma(y-x) \\\\
\\dot{y} & = \\rho x - y - xz \\\\
\\dot{z} & = -\\beta z + xy
\\end{aligned}"
katex_html(tex7)
```
### Equation 8
```{r}
tex8 <- "\\begin{pmatrix}
a_{11} & a_{12} & a_{13}\\\\
a_{21} & a_{22} & a_{23}\\\\
a_{31} & a_{32} & a_{33}
\\end{pmatrix}"
katex_html(tex8)
```