Files
pebrel/docs/math-rendering-test.md
T

28 KiB

Native Math Rendering Test

这是一份给 Nebula Markdown 阅读器使用的数学渲染截图样例。本文只把成对的 $...$ 和 $$...$$ 识别为数学公式;裸露 TeX 命令仍然按普通 Markdown 文本显示。

正文选区可读性

回答阅读器与 Markdown 文本组件的选区绘制在文字上方。之前主题适配直接复用 列表选中背景:在 MintLight、Nord 等主题中,这个背景不透明,会遮住已经绘制的 字形。主题适配现在保留原色相,并遵循 gpui-component 对文字选区的 0.3 不透明度(alpha) 上限;更透明的主题保持原值。列表、侧栏的实色选中背景不受影响。

验证时,在 MintLight 和 Nord 中分别拖选下面这句正文,检查选中后文字仍可读、 布局不移动,复制得到的内容与所选文字一致;再缩窄窗口检查换行后的选择。

alpha beta gamma delta

自动回归覆盖全部内置主题的选区颜色和透明度、主题 token 同步,以及真实 TextView 控件在深浅主题与宽窄布局下的鼠标拖选、键盘复制。另在 Windows 200% 缩放下对 MintLight 宽布局、Nord 窄布局做了原生窗口对照,修复前后的截图仅裁剪 标题栏与留白,未重绘内容:

阅读器选区修复前后对照,修复后文字仍然可读

原生预览可通过默认忽略的 native_reader_selection_preview 测试复核:先将 PEBREL_SELECTION_QA_DIR 设置为新的绝对输出目录,按需设置 PEBREL_SELECTION_QA_THEME(默认 MintLight)和 PEBREL_SELECTION_QA_WIDTH (默认 480),然后运行:

cargo test --locked -p nebula --bin pebrel --features gpui-test-support native_reader_selection_preview -- --ignored --nocapture --test-threads=1

测试只对自己的原生 TextView 窗口分发选择事件,不启动终端或 AI 会话、不改系统 剪贴板。输出目录出现 ready.json 后可截图,写入 capture-complete 文件即可 结束预览;没有信号时最多等待约一分钟后退出。

虚拟窗口测试不等同于完整产品验收;Linux/macOS 原生窗口、其他缩放和真实答案 内容仍需对应平台检查。本修复不改变 LaTeX 解析、公式选择时的源码回退、剪贴板格式或终端网格的配色;没有新增依赖 或逐帧计算,颜色只在主题应用时适配。

1. 行内公式

行内公式应该和中文、英文正常混排:圆的面积是 $S=\pi r^2$,勾股定理是 $a^2+b^2=c^2$,欧拉恒等式是 $e^{i\pi}+1=0$。这里再放一个带上下标的表达式 $x_{i+1}^2+y_{j-1}^2$,检查基线、间距和换行。

2. 希腊字母与常用运算符


\alpha+\beta+\gamma+\Delta+\Theta+\Lambda+\Omega

\pm\quad \mp\quad \times\quad \div\quad \cdot\quad \ast\quad \circ\quad \bullet\quad \oplus\quad \otimes

3. 关系符号与集合


x\ne y,\quad x\neq y,\quad x\approx y,\quad x\equiv y,\quad x\leq y,\quad x\geq y

A\subseteq B,\quad B\supseteq A,\quad A\cap B,\quad A\cup B,\quad x\in A,\quad x\notin B,\quad \varnothing

4. 箭头


a\to b\quad b\leftarrow a\quad A\leftrightarrow B\quad P\Rightarrow Q\quad P\Leftrightarrow Q

下面这行中的 -> 是普通 Markdown 文本,不应该被识别成数学:source -> target。

5. 分式、根式与二项式


\frac{1}{2}+\frac{x+1}{x-1}=\frac{x^2+1}{x^2-1}

\sqrt{x^2+y^2}\quad \sqrt[3]{x^3+y^3}\quad \sqrt{\frac{a+b}{c+d}}\quad \binom{n}{k}

6. 上下标与重音


\sum_{k=1}^{n}k^2,\quad \prod_{i=1}^{n}x_i,\quad a_0+a_1x+a_2x^2+\cdots+a_nx^n

\hat{x}

\vec{v}

\dot{x}\quad \ddot{x}

7. 极限、导数与积分


\lim_{x\to 0}\frac{\sin x}{x}=1

\frac{\mathrm{d}}{\mathrm{d}x}\left(x^3+2x\right)=3x^2+2,\quad
\frac{\partial^2 f}{\partial x\partial y}

\int_{0}^{1}x^2\,\mathrm{d}x=\frac{1}{3},\quad
\iint_{D}(x+y)\,\mathrm{d}x\,\mathrm{d}y,\quad
\oint_C\vec{F}\cdot\mathrm{d}\vec{r}

8. 伸缩括号与绝对值


\left(\frac{a}{b}\right),\quad
\left[\sum_{i=1}^{n}x_i\right],\quad
\left\{x\in\mathbb{R}\mid x>0\right\},\quad
\left\lvert x-1\right\rvert<\varepsilon

9. 矩阵


\begin{matrix}
a & b \\
c & d
\end{matrix}
\qquad
\begin{pmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{pmatrix}

\begin{bmatrix}
1 & 2 & 3 \\
4 & 5 & 6
\end{bmatrix}
\qquad
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix}=ad-bc

10. 分段函数与多行公式


f(x)=\begin{cases}
x^2, & x\ge 0 \\
-x^2, & x<0
\end{cases}

\begin{aligned}
(a+b)^2 &= a^2+2ab+b^2 \\
(a-b)^2 &= a^2-2ab+b^2
\end{aligned}

11. 逻辑、偏导与向量分析


\forall\varepsilon>0,\quad \exists\delta>0,\quad
0<\lvert x-a\rvert<\delta\Rightarrow\lvert f(x)-f(a)\rvert<\varepsilon

\nabla\cdot\vec{E}=\frac{\rho}{\varepsilon_0},\quad
\nabla\times\vec{B}=\mu_0\vec{J}+\mu_0\varepsilon_0\frac{\partial\vec{E}}{\partial t}

12. 长公式换行与收缩

下面的块级公式用于检查过宽公式是否会自动收缩到阅读列内,而不是越过右边界:


\frac{\displaystyle\sum_{i=1}^{n}\left(\alpha_i x_i+\beta_i y_i\right)}{\sqrt{\displaystyle\prod_{j=1}^{m}\left(1+z_j^2\right)}}
\leq
\left\lvert\int_{0}^{1}\frac{e^{t^2}}{1+t^2}\,\mathrm{d}t\right\rvert+\left\lvert\oint_C\vec{F}\cdot\mathrm{d}\vec{r}\right\rvert

13. 空行与 Unicode 说明文字

下面的公式中故意保留空行和中文说明,检查块级 $$ 的跨行处理:


\sin(a+b)=\sin a\cos b+\cos a\sin b

这里是公式内部的中文说明:和角公式。

\cos(a+b)=\cos a\cos b-\sin a\sin b

14. 边界对照

下面这些内容不应该生成数学字形,因为没有使用 $ 或 $$ 围栏:

\lim_{x \to 0} \frac{\sin x}{x}
\sqrt{x^2+y^2}
\frac{1}{2}

最后的明确行内公式应该生成数学字形:$\lim_{x\to 0}\frac{\sin x}{x}=1$。

15. 用户报告的七组科研公式

每组先保留 katex 源码块,再用相同源码实际渲染。源码块只用于比对,公式由 $ / $$ 触发。测试直接读取本文件,不另抄公式。

欧拉恒等式

e^{i\pi}+1=0

e^{i\pi}+1=0

高斯积分

\int_{-\infty}^{+\infty} e^{-x^2}\,dx=\sqrt{\pi}

\int_{-\infty}^{+\infty} e^{-x^2}\,dx=\sqrt{\pi}

傅里叶变换

\widehat{f}(\xi)
=
\int_{-\infty}^{+\infty}
f(x)e^{-2\pi i x\xi}\,dx

\widehat{f}(\xi)
=
\int_{-\infty}^{+\infty}
f(x)e^{-2\pi i x\xi}\,dx

Transformer 注意力机制

\operatorname{Attention}(Q,K,V)
=
\operatorname{softmax}\left(
\frac{QK^{\mathsf T}}{\sqrt{d_k}}
\right)V

\operatorname{Attention}(Q,K,V)
=
\operatorname{softmax}\left(
\frac{QK^{\mathsf T}}{\sqrt{d_k}}
\right)V

分段函数

\phi(x)=
\begin{cases}
x, & x\ge 0,\\
\alpha(e^x-1), & x<0.
\end{cases}

\phi(x)=
\begin{cases}
x, & x\ge 0,\\
\alpha(e^x-1), & x<0.
\end{cases}

矩阵

A=
\begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n}\\
a_{21} & a_{22} & \cdots & a_{2n}\\
\vdots & \vdots & \ddots & \vdots\\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{pmatrix}

A=
\begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n}\\
a_{21} & a_{22} & \cdots & a_{2n}\\
\vdots & \vdots & \ddots & \vdots\\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{pmatrix}

多行推导

\begin{aligned}
(a+b)^3
&=(a+b)(a+b)^2\\
&=(a+b)(a^2+2ab+b^2)\\
&=a^3+3a^2b+3ab^2+b^3
\end{aligned}

\begin{aligned}
(a+b)^3
&=(a+b)(a+b)^2\\
&=(a+b)(a^2+2ab+b^2)\\
&=a^3+3a^2b+3ab^2+b^3
\end{aligned}

16. 原始输出的异常对照

前三个样例仍是可以排版的 TeX,但保留用户报告中的逗号和缺失等号,用于核对数学语义与原文保存。不能自动补出缺失的等号,也不能把逗号猜成 TeX 间距;测试只应确认源文本未被改写。后三个行末单反斜杠样例才是损坏输入,需要源码回退。

高斯积分:逗号仍然是逗号


\int_{-\infty}^{+\infty} e^{-x^2},dx=\sqrt{\pi}

傅里叶变换:原文缺少等号


\widehat{f}(\xi)

\int_{-\infty}^{+\infty}
f(x)e^{-2\pi i x\xi},dx

注意力公式:原文缺少等号


\operatorname{Attention}(Q,K,V)

\operatorname{softmax}\left(
\frac{QK^{\mathsf T}}{\sqrt{d_k}}
\right)V

行结束反斜杠损坏:分段函数


\phi(x)=
\begin{cases}
x, & x\ge 0,\
\alpha(e^x-1), & x<0.
\end{cases}

行结束反斜杠损坏:矩阵


A=
\begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n}\
a_{21} & a_{22} & \cdots & a_{2n}\
\vdots & \vdots & \ddots & \vdots\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{pmatrix}

行结束反斜杠损坏:多行推导


\begin{aligned}
(a+b)^3
&=(a+b)(a+b)^2\
&=(a+b)(a^2+2ab+b^2)\
&=a^3+3a^2b+3ab^2+b^3
\end{aligned}

17. 滚动、选区和缩放回归

在本文件顶部与末尾之间往返滚动,再在公式附近拖选中文、英文和源码。窗口从宽列缩到窄列后恢复,检查分母、根号、矩阵括号、相邻文字和选区。Ctrl+C 的结果应保持源文本语义。输入法正在组合、终端光标所在行和 VI 模式不能被图片覆盖。

下面的不同公式用于扰动布局缓存;编号是测试参数,不是新增数学结论。

滚动样例 01

第 1 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{1}(x)=\frac{x^2+1}{\sqrt{1+x^2}}+\sum_{k=1}^{1}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 02

第 2 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{2}(x)=\frac{x^2+2}{\sqrt{1+x^2}}+\sum_{k=1}^{2}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 03

第 3 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{3}(x)=\frac{x^2+3}{\sqrt{1+x^2}}+\sum_{k=1}^{3}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 04

第 4 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{4}(x)=\frac{x^2+4}{\sqrt{1+x^2}}+\sum_{k=1}^{4}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 05

第 5 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{5}(x)=\frac{x^2+5}{\sqrt{1+x^2}}+\sum_{k=1}^{5}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 06

第 6 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{6}(x)=\frac{x^2+6}{\sqrt{1+x^2}}+\sum_{k=1}^{6}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 07

第 7 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{7}(x)=\frac{x^2+7}{\sqrt{1+x^2}}+\sum_{k=1}^{7}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 08

第 8 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{8}(x)=\frac{x^2+8}{\sqrt{1+x^2}}+\sum_{k=1}^{8}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 09

第 9 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{9}(x)=\frac{x^2+9}{\sqrt{1+x^2}}+\sum_{k=1}^{9}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 10

第 10 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{10}(x)=\frac{x^2+10}{\sqrt{1+x^2}}+\sum_{k=1}^{10}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 11

第 11 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{11}(x)=\frac{x^2+11}{\sqrt{1+x^2}}+\sum_{k=1}^{11}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 12

第 12 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{12}(x)=\frac{x^2+12}{\sqrt{1+x^2}}+\sum_{k=1}^{12}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 13

第 13 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{13}(x)=\frac{x^2+13}{\sqrt{1+x^2}}+\sum_{k=1}^{13}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 14

第 14 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{14}(x)=\frac{x^2+14}{\sqrt{1+x^2}}+\sum_{k=1}^{14}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 15

第 15 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{15}(x)=\frac{x^2+15}{\sqrt{1+x^2}}+\sum_{k=1}^{15}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 16

第 16 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{16}(x)=\frac{x^2+16}{\sqrt{1+x^2}}+\sum_{k=1}^{16}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 17

第 17 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{17}(x)=\frac{x^2+17}{\sqrt{1+x^2}}+\sum_{k=1}^{17}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 18

第 18 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{18}(x)=\frac{x^2+18}{\sqrt{1+x^2}}+\sum_{k=1}^{18}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 19

第 19 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{19}(x)=\frac{x^2+19}{\sqrt{1+x^2}}+\sum_{k=1}^{19}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 20

第 20 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{20}(x)=\frac{x^2+20}{\sqrt{1+x^2}}+\sum_{k=1}^{20}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 21

第 21 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{21}(x)=\frac{x^2+21}{\sqrt{1+x^2}}+\sum_{k=1}^{21}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 22

第 22 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{22}(x)=\frac{x^2+22}{\sqrt{1+x^2}}+\sum_{k=1}^{22}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 23

第 23 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{23}(x)=\frac{x^2+23}{\sqrt{1+x^2}}+\sum_{k=1}^{23}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 24

第 24 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{24}(x)=\frac{x^2+24}{\sqrt{1+x^2}}+\sum_{k=1}^{24}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 25

第 25 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{25}(x)=\frac{x^2+25}{\sqrt{1+x^2}}+\sum_{k=1}^{25}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 26

第 26 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{26}(x)=\frac{x^2+26}{\sqrt{1+x^2}}+\sum_{k=1}^{26}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 27

第 27 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{27}(x)=\frac{x^2+27}{\sqrt{1+x^2}}+\sum_{k=1}^{27}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 28

第 28 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{28}(x)=\frac{x^2+28}{\sqrt{1+x^2}}+\sum_{k=1}^{28}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 29

第 29 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{29}(x)=\frac{x^2+29}{\sqrt{1+x^2}}+\sum_{k=1}^{29}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 30

第 30 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{30}(x)=\frac{x^2+30}{\sqrt{1+x^2}}+\sum_{k=1}^{30}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 31

第 31 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{31}(x)=\frac{x^2+31}{\sqrt{1+x^2}}+\sum_{k=1}^{31}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 32

第 32 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{32}(x)=\frac{x^2+32}{\sqrt{1+x^2}}+\sum_{k=1}^{32}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 33

第 33 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{33}(x)=\frac{x^2+33}{\sqrt{1+x^2}}+\sum_{k=1}^{33}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 34

第 34 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{34}(x)=\frac{x^2+34}{\sqrt{1+x^2}}+\sum_{k=1}^{34}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 35

第 35 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{35}(x)=\frac{x^2+35}{\sqrt{1+x^2}}+\sum_{k=1}^{35}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 36

第 36 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{36}(x)=\frac{x^2+36}{\sqrt{1+x^2}}+\sum_{k=1}^{36}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 37

第 37 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{37}(x)=\frac{x^2+37}{\sqrt{1+x^2}}+\sum_{k=1}^{37}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 38

第 38 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{38}(x)=\frac{x^2+38}{\sqrt{1+x^2}}+\sum_{k=1}^{38}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 39

第 39 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{39}(x)=\frac{x^2+39}{\sqrt{1+x^2}}+\sum_{k=1}^{39}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 40

第 40 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{40}(x)=\frac{x^2+40}{\sqrt{1+x^2}}+\sum_{k=1}^{40}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 41

第 41 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{41}(x)=\frac{x^2+41}{\sqrt{1+x^2}}+\sum_{k=1}^{41}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 42

第 42 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{42}(x)=\frac{x^2+42}{\sqrt{1+x^2}}+\sum_{k=1}^{42}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 43

第 43 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{43}(x)=\frac{x^2+43}{\sqrt{1+x^2}}+\sum_{k=1}^{43}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 44

第 44 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{44}(x)=\frac{x^2+44}{\sqrt{1+x^2}}+\sum_{k=1}^{44}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 45

第 45 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{45}(x)=\frac{x^2+45}{\sqrt{1+x^2}}+\sum_{k=1}^{45}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 46

第 46 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{46}(x)=\frac{x^2+46}{\sqrt{1+x^2}}+\sum_{k=1}^{46}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 47

第 47 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{47}(x)=\frac{x^2+47}{\sqrt{1+x^2}}+\sum_{k=1}^{47}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

滚动样例 48

第 48 段:公式前的中文与英文 baseline alignment,检查窗口缩放后的段落连续性。


f_{48}(x)=\frac{x^2+48}{\sqrt{1+x^2}}+\sum_{k=1}^{48}k

公式后的说明应留在原段落中,重复拖选和滚动不能复制出渲染器内部文本。

18. 重音与伸缩分隔符

行内中文、英文和重音公式应保持同一条基线:复数共轭写作 $\overline{z}$,向量写作 $\vec{v}$,观测量写作 $\widehat{y}$。


\hat{x}\quad \bar{x}\quad \tilde{x}\quad \vec{v}\quad
\dot{x}\quad \ddot{x}\quad \widehat{AB}\quad
\widetilde{f+g}\quad \overline{z}

\begin{gathered}
\left(\frac{a}{b}\right)\quad
\left[\sum_{i=1}^{n}x_i\right]\quad
\left\{x\in\mathbb{R}\mid x>0\right\}\\
\left\langle u,v\right\rangle\quad
\left\lvert x-1\right\rvert\quad
\left\Vert A\right\Vert\quad
\left\lfloor y\right\rfloor\quad
\left\lceil y\right\rceil
\end{gathered}

\big(x+y\big)\quad
\Big[x\Big]\quad
\bigg\{x\bigg\}\quad
\Bigg\langle x\Bigg\rangle\quad
\left.\frac{\mathrm{d}f}{\mathrm{d}x}\right|_{x=0}

19. 积分、大运算符与上下限

上限和下限同时存在时,积分号、求和号和乘积号的脚标应随公式缩放;积分后的单位写在同一行。


\int_{0}^{1}x^2\,\mathrm{d}x=\frac{1}{3},\quad
\iint_{D}f(x,y)\,\mathrm{d}A,\quad
\iiint_{V}g(x,y,z)\,\mathrm{d}V,\quad
\oint_{\partial\Omega}\vec{F}\cdot\mathrm{d}\vec{r}

\sum_{k=0}^{n}k^2,\quad
\prod_{j=1}^{m}a_j,\quad
\bigcup_{i=1}^{n}A_i,\quad
\bigcap_{i=1}^{n}B_i,\quad
\sum_{i=1}^{n}C_i

\lim_{x\to 0}\frac{\sin x}{x}=1,\quad
\limsup_{n\to\infty}a_n,\quad
\sup_{x\in D}f(x),\quad
\inf_{x\in D}f(x)

20. 希腊字母、集合与逻辑


\alpha\ \beta\ \gamma\ \delta\ \epsilon\ \varepsilon\ \zeta\ \eta\ \theta\ \vartheta\ \iota\ \kappa\ \lambda\ \mu\ \nu\ \xi\ \pi\ \varpi\ \rho\ \varrho\ \sigma\ \varsigma\ \tau\ \upsilon\ \phi\ \varphi\ \chi\ \psi\ \omega

\mathbb{N}\subset\mathbb{Z}\subset\mathbb{Q}\subset\mathbb{R}\subset\mathbb{C},\quad
\mathbb{R}\supset\mathbb{Q},\quad
A\cup B,\quad
\lvert A\cup B\rvert=\lvert A\rvert+\lvert B\rvert-\lvert A\cap B\rvert

\forall x\in X,\ \exists y\in Y:\ P(x,y),\quad
\neg(P\land Q)\Leftrightarrow(\neg P\lor\neg Q),\quad
P\Rightarrow Q,\quad Q\Leftrightarrow P

21. 矩阵环境族


\begin{Bmatrix}
a & b\\
c & d
\end{Bmatrix}
\qquad
\begin{Vmatrix}
a & b\\
c & d
\end{Vmatrix}

\begin{smallmatrix}
1 & 2 & 3\\
4 & 5 & 6
\end{smallmatrix}
\qquad
\begin{array}{lcr}
\text{左对齐} & \text{居中} & \text{右对齐}\\
a & b & c\\
d & e & f
\end{array}

\begin{pmatrix}
1 & 0\\
0 & 1
\end{pmatrix}
\begin{bmatrix}
1 & 2\\
3 & 4
\end{bmatrix}
\begin{Bmatrix}
1 & 2\\
3 & 4
\end{Bmatrix}

22. 嵌套分式与根式


\frac{1+\dfrac{1}{1+\tfrac{1}{x}}}
{\sqrt{1+\frac{a^2}{b^2}}}
\quad
\frac{\sqrt{b^2+a^2}}{\sqrt{b^2}}

\sqrt{\frac{1+\frac{1}{n}}{1-\frac{1}{n}}}\quad
\sqrt[3]{\frac{x^3+y^3}{x+y}}\quad
\sqrt[\alpha]{\frac{\dfrac{p}{q}}{\sqrt{r+s}}}

\left(
\frac{\dfrac{\sqrt{x+1}}{y-1}}
{\dfrac{a+b}{c+d}}
\right)^{\!2}
\quad
\frac{\displaystyle\sum_{i=1}^{n}\frac{x_i}{1+x_i^2}}
{\displaystyle\sqrt{\prod_{j=1}^{m}(1+z_j^2)}}

23. 对齐与多行推导环境


\begin{gathered}
u+v=w\\
w+t=s\\
s-r=q
\end{gathered}

\begin{split}
\sin(a+b)
&=\sin a\cos b+\cos a\sin b\\
\cos(a+b)
&=\cos a\cos b-\sin a\sin b
\end{split}

\begin{alignedat}{2}
f(x)&=x^2+1 &\qquad g(x)&=x^2-1\\
f'(x)&=2x & g'(x)&=2x
\end{alignedat}

\begin{multline}
\frac{1}{2}(a+b)^2
=\frac{1}{2}a^2+ab+\frac{1}{2}b^2\\
\text{用于检查多行公式在窄列中的连续性}
\end{multline}

24. 字体变体与样式


\mathrm{d}x\quad
\mathbf{v}\quad
\mathit{X}\quad
\mathsf{N}\quad
\mathtt{code}\quad
\mathbb{R}\quad
\mathcal{L}\quad
\mathfrak{g}

\displaystyle\sum_{n=1}^{\infty}\frac{1}{n^2}
=\frac{\pi^2}{6},\qquad
\textstyle\sum_{n=1}^{3}n,\qquad
\scriptstyle x_i^2,\qquad
\scriptscriptstyle x_i^2

\operatorname{rank}(BC)\leq
\min\{\operatorname{rank}(B),\operatorname{rank}(C)\},\quad
\mathrm{e}^{\mathrm{i}\theta}=\cos\theta+\mathrm{i}\sin\theta

25. 单位与中文混排

中文说明应可以紧邻行内公式:样品长度为 $12,\mathrm{mm}$,速度为 $3.0,\mathrm{m,s^{-1}}$,温度为 $300,\mathrm{K}$。公式前后的汉字不能被公式盒覆盖。


m=2.5\,\mathrm{kg},\quad
E=mc^2,\quad
p=1.01\,\mathrm{MPa},\quad
c=299\,792\,458\,\mathrm{m\,s^{-1}}

\rho=\frac{m}{V}=1.00\,\mathrm{g\,cm^{-3}},\quad
\lambda=532\,\mathrm{nm},\quad
\nu=6.0\times10^{14}\,\mathrm{Hz},\quad
\Delta T=25\,\mathrm{K}

带中文的自然段也应保持数学源文本可复制:在 x=0 附近,函数 f(x) 的一阶导数满足 $\frac{\mathrm{d}f}{\mathrm{d}x}=0$。

26. 可降级装饰

boxed 和 tag 只要求数学内容仍可读;边框或编号位置可以由渲染器降级处理。


\boxed{E=mc^2}\tag{1}

\boxed{\frac{a+b}{c+d}}\tag*{附录}

27. 不支持宏与坏输入的源码回退

以下块故意使用当前引擎不支持的化学式、物理量和单位宏。回退时保留原始数学源码,不应把这些宏猜译成另一种公式。


\ce{H2O + CO2 -> H2CO3}

\pu{9.81\ m/s^2}

\SI{9.81}{\meter\per\second\squared}

以下块有意缺少右花括号,用于确认坏输入会回退到源码;不能补写缺失字符后再声称公式成功。


\frac{a+b}{c+d