---
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)
```