mirror of
				https://github.com/zopiya/x-eden-quartz.git
				synced 2025-11-04 06:46:48 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: LaTeX
 | 
						|
tags:
 | 
						|
  - feature/transformer
 | 
						|
---
 | 
						|
 | 
						|
Quartz uses [Katex](https://katex.org/) 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) = \int_{-\infty}^\infty
 | 
						|
    f\hat(\xi),e^{2 \pi i \xi x}
 | 
						|
    \,d\xi
 | 
						|
$$
 | 
						|
 | 
						|
$$
 | 
						|
\begin{aligned}
 | 
						|
a &= b + c \\ &= e + f \\
 | 
						|
\end{aligned}
 | 
						|
$$
 | 
						|
 | 
						|
$$
 | 
						|
\begin{bmatrix}
 | 
						|
1 & 2 & 3 \\
 | 
						|
a & b & c
 | 
						|
\end{bmatrix}
 | 
						|
$$
 | 
						|
 | 
						|
$$
 | 
						|
\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](https://github.com/remarkjs/remark-math), 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 $e^{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 $1 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):
 | 
						|
 | 
						|
```ts title="quartz/plugins/transformers/latex.ts"
 | 
						|
import "katex/contrib/mhchem"
 | 
						|
```
 | 
						|
 | 
						|
## Customization
 | 
						|
 | 
						|
Latex parsing is a functionality of the [[plugins/Latex|Latex]] plugin. See the plugin page for customization options.
 |