Quartz uses Katex by default to typeset both inline and block math expressions at build time.

Syntax

Block Math

Block math can be rendered by delimiting math expression with $$.

$$
f(x) = \int_{-\infty}^\infty
    f\hat(\xi),e^{2 \pi i \xi x}
    \,d\xi
$$
f(x)=f(^ξ),e2πiξxdξf(x) = \int_{-\infty}^\infty f\hat(\xi),e^{2 \pi i \xi x} \,d\xi a=b+c=e+f\begin{aligned} a &= b + c \\ &= e + f \\ \end{aligned} [123abc]\begin{bmatrix} 1 & 2 & 3 \\ a & b & c \end{bmatrix} Eψ=HψExpanding the Hamiltonian Operator=22m2x2ψ+12mωx2ψUsing the ansatz ψ(x)=ekx2f(x), hoping to cancel the x2 term=22m[4k2x2f(x)+2(2kx)f(x)+f(x)]ekx2+12mωx2f(x)ekx2Removing the ekx2 term from both sidesEf(x)=22m[4k2x2f(x)4kxf(x)+f(x)]+12mωx2f(x)Choosing k=im2ω to cancel the x2 term, via 22m4k2=12mω=22m[4kxf(x)+f(x)]\begin{array}{rll} E \psi &= H\psi & \text{Expanding the Hamiltonian Operator} \\ &= -\frac{\hbar^2}{2m}\frac{\partial^2}{\partial x^2} \psi + \frac{1}{2}m\omega x^2 \psi & \text{Using the ansatz $\psi(x) = e^{-kx^2}f(x)$, hoping to cancel the $x^2$ term} \\ &= -\frac{\hbar^2}{2m} [4k^2x^2f(x)+2(-2kx)f'(x) + f''(x)]e^{-kx^2} + \frac{1}{2}m\omega x^2 f(x)e^{-kx^2} &\text{Removing the $e^{-kx^2}$ term from both sides} \\ & \Downarrow \\ Ef(x) &= -\frac{\hbar^2}{2m} [4k^2x^2f(x)-4kxf'(x) + f''(x)] + \frac{1}{2}m\omega x^2 f(x) & \text{Choosing $k=\frac{im}{2}\sqrt{\frac{\omega}{\hbar}}$ to cancel the $x^2$ term, via $-\frac{\hbar^2}{2m}4k^2=\frac{1}{2}m \omega$} \\ &= -\frac{\hbar^2}{2m} [-4kxf'(x) + f''(x)] \\ \end{array}

Warn

Due to limitations in the underlying parsing library, block math in Quartz requires the $$ delimiters to be on newlines like above.

Inline Math

Similarly, inline math can be rendered by delimiting math expression with a single $. For example, $e^{i\pi} = -1$ produces eiπ=1e^{i\pi} = -1

Escaping symbols

There will be cases where you may have more than one $ in a paragraph at once which may accidentally trigger MathJax/Katex.

To get around this, you can escape the dollar sign by doing \$ instead.

For example:

  • Incorrect: I have $1 and you have $2 produces I have 1andyouhave1 and you have 2
  • Correct: I have \$1 and you have \$2 produces I have $1 and you have $2

Using mhchem

Add the following import to the top of quartz/plugins/transformers/latex.ts (before all the other imports):

quartz/plugins/transformers/latex.ts
import "katex/contrib/mhchem"

Customization

Latex parsing is a functionality of the Latex plugin. See the plugin page for customization options.