/

TeX 公式

Quarkdown 原生支持 TeX 数学方程与公式。当渲染为 HTML 时,该功能由 KaTeX 提供支持。

行内

行内方程可以通过在两个 $ 符号之间包裹文本来创建。两个分隔符前后都必须有空白(或行首/行尾)。

示例 1

Let $ \overline v = \frac {\Delta x} {\Delta t} $ be the **average velocity** of an object.

Let \overline v = \frac {\Delta x} {\Delta t} be the average velocity of an object.

单行块

块级方程通常在视觉上居中,并与行内方程使用相同的语法,但需要与其他内容相互隔离:

示例 2

The following function is a **Fourier Transform**:

$ F(u) = \int^{+\infty}_{-\infty} f(x) e^{-i 2\pi x} dx $

The following function is a Fourier Transform:

F(u) = \int^{+\infty}_{-\infty} f(x) e^{-i 2\pi x} dx

注意:此语法不会中断段落,因此请确保为块级内容留出适当的空白。如果段落未被中断,由于 Markdown 的惰性行,该公式会被识别为行内公式。

示例 3

The following function is a **Fourier Transform**:
$ F(u) = \int^{+\infty}_{-\infty} f(x) e^{-i 2\pi x} dx $

The following function is a Fourier Transform:F(u) = \int^{+\infty}_{-\infty} f(x) e^{-i 2\pi x} dx

多行块

一个块级公式可以借助类似于围栏代码块的语法跨越多行,使用三个 $ 符号作为分隔符。

示例 4

$$$
f(x) =
\begin{cases}
    0 & \text{if } x = 0 \\
    1 & \text{if } x \neq 0
\end{cases}
$$$
f(x) = \begin{cases} 0 & \text{if } x = 0 \\ 1 & \text{if } x \neq 0 \end{cases}

.math 函数

方程也可以通过 .math 原语函数 来创建。当方程内容由其他函数计算而来,或者你想为某个特定公式应用样式时,这会很有用。

示例 5

.math
    E = mc^2

<!-- 或,等价地 -->

.math {E = mc^2}
E = mc^2E = mc^2

默认情况下,.math 在被块级函数调用使用时会产生块级公式。你可以通过 block 参数强制其为行内或块级:

示例 6

Inline: .math {2 + 2}

Inline: 2 + 2

其内容会被作为 Quarkdown 求值,因此嵌套的函数调用会被执行,这与基于 $ 的语法相反。

示例 7

.var {n} {5}

.math
    f(.n) = .n::multiply {2}
f(5) = 10

样式

行内与块级方程都接受与容器相同的样式属性

示例 8

.math fontsize:{larger}
    \pi \approx 3.14
\pi \approx 3.14

扩展

.math 支撑标准的 $ ... $ 语法,因此扩展它 会一次性影响文档中的每一个方程。

示例 9

.extend {math}
    .super foreground:{skyblue}

.extend {math} where:{block: .block}
    .super fontsize:{larger}

$ a^2 + b^2 = c^2 $

Inline: $ a^2 + b^2 = c^2 $
a^2 + b^2 = c^2

Inline: a^2 + b^2 = c^2

Quarkdown 支持通过 .texmacro 函数创建 TeX 宏。更多信息请参阅 TeX macros