场景说明 #
本文用于验证在高密度数学公式场景下,KaTeX 渲染在浏览器中的性能表现。我们通过构造大量的内联、块级、矩阵、求和与积分表达式,模拟真正的数理统计或通信理论类文章。
内联公式压力段 #
要在单段落中穿插足够多的内联表达式,我们使用黄金分割数 \(\varphi = \dfrac{1+\sqrt5}{2}\)、二项式公式 \((a+b)^n = \sum_{k=0}^{n} {n \choose k} a^{n-k} b^k\)、误码率近似式 \(P_e \approx Q\!\left(\sqrt{2E_b/N_0}\right)\)、指数母函数 \(G_X(s) = \mathbb{E}[e^{sX}]\)、热传导方程 \(u_t = \kappa u_{xx}\)、伯努利试验概率 \(P(k) = {n \choose k} p^k (1-p)^{n-k}\)、傅里叶级数系数 \(a_n = \tfrac{2}{T} \int_0^T f(t) \cos (n\omega_0 t) \, dt\) 等典型表达式。请注意阅读时页面需要一次性渲染十多个公式,以测试解析阶段的 CPU 占用情况。
块级大量公式 #
为了模拟教材中的推导,我们准备了多个连续的块级表达式:
$$ \mathcal{L}\{f(t)\} = \int_0^{\infty} f(t) e^{-st} dt $$$$ \mathbf{F}(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} dt $$$$ \nabla^2 \Phi = \frac{\partial^2 \Phi}{\partial x^2} + \frac{\partial^2 \Phi}{\partial y^2} + \frac{\partial^2 \Phi}{\partial z^2} $$$$ \vec{E}(r,t) = \frac{1}{4\pi \varepsilon_0} \int_V \frac{\rho(r',t_r)}{|r-r'|^3} (r-r')\, dV' $$$$ Z(s) = R + sL + \frac{1}{sC} $$连续五个块级公式常用于检测页面回流行为以及字体渲染是否存在闪烁。
列表与矩阵组合 #
- 信号空间基向量: $$ \mathbf{u}_i(t) = \begin{cases} \sqrt{\frac{2}{T}} \cos \left(\frac{(2i-1)\pi t}{2T}\right), & 0 \le t \le T \\ 0, & \text{otherwise} \end{cases} $$
- 高斯协方差矩阵: $$ \Sigma = \begin{bmatrix} \sigma_1^2 & \rho_{12} \sigma_1 \sigma_2 & \dots & \rho_{1n} \sigma_1 \sigma_n \\ \rho_{21} \sigma_2 \sigma_1 & \sigma_2^2 & \dots & \rho_{2n} \sigma_2 \sigma_n \\ \vdots & \vdots & \ddots & \vdots \\ \rho_{n1} \sigma_n \sigma_1 & \rho_{n2} \sigma_n \sigma_2 & \dots & \sigma_n^2 \end{bmatrix} $$
- 正交多项式递推: $$ P_{n+1}(x) = (A_n x + B_n) P_n(x) - C_n P_{n-1}(x) $$
大型求和与积分串联 #
连续求和与积分能够检验长公式下的折行和滚动性能:
$$ \sum_{k=1}^{N} \sum_{m=1}^{M} \left|\frac{1}{2\pi} \int_{-\pi}^{\pi} x_{k,m}(\omega) e^{j\omega (k+m)} d\omega \right|^2 $$$$ I(\alpha,\beta) = \int_{0}^{1} x^{\alpha-1} (1-x)^{\beta-1} \, _2F_1\left(a,b;c; x\right) dx $$$$ J(n) = \sum_{k=0}^{\infty} (-1)^k \frac{\Gamma(k+n)}{k!\, \Gamma(n)} e^{-\lambda k} $$复合张量与算子压力段 #
下面增加多层嵌套的张量、行列式与算子,测试 KaTeX 在复杂结构下的重排表现:
$$ \mathbf{T}_{ijk} = \sum_{m=1}^{M} R_{im} S_{mj} Q_{mk} = \sum_{m=1}^{M} \left( \int_{\Omega} \phi_i(x) \psi_m(x) dx \right) \left( \oint_{\Gamma} u_m(y) v_j(y) dy \right) \left( \frac{\partial^2 w_m(z)}{\partial z^2} \bigg|_{z=k} \right) $$$$ \det\!\begin{bmatrix} \lambda & 1 & 0 & \dots & 0 \\ \mu_1 & \lambda & 1 & \dots & 0 \\ \vdots & \vdots & \ddots & \ddots & \vdots \\ 0 & 0 & \dots & \lambda & 1 \\ (-1)^{n-1} \prod_{i=1}^{n-1} c_i & 0 & \dots & 0 & \lambda \end{bmatrix} = \lambda^n + \sum_{k=1}^{n} (-1)^k e_k(c_1,\ldots,c_n) \lambda^{n-k} $$$$ \begin{aligned} \mathcal{F}\{ \nabla^2 f \}(\omega) &= -\|\omega\|^2 F(\omega), \\ \mathcal{F}^{-1}\{ \|\omega\|^{-2} F(\omega) \}(x) &= \int_{\mathbb{R}^n} \frac{F(\omega)}{\|\omega\|^2} e^{j\omega^T x} d\omega, \\ \mathbf{curl}\,(\mathbf{curl}\, \mathbf{A}) &= \nabla(\nabla \cdot \mathbf{A}) - \nabla^2 \mathbf{A}. \end{aligned} $$级数展开与特殊函数 #
在同一节内给出多个级数展开与特殊函数表达式,施压到符号解析阶段:
$$ \log(1+x) = \sum_{n=1}^{\infty} (-1)^{n-1} \frac{x^n}{n}, \quad |x| < 1 $$$$ \operatorname{Li}_s(z) = \sum_{k=1}^{\infty} \frac{z^k}{k^s}, \qquad B_n = -n \sum_{k=1}^{n} \frac{\zeta(1-k)}{k} {n-1 \choose k-1} $$$$ H_n^{(r)} = \sum_{k=1}^{n} \frac{1}{k^r}, \qquad E_n(x) = \sum_{k=0}^{n} {n \choose k} E_k x^{n-k} $$结论 #
当页面出现类似规模的公式密度时,可观察初次渲染时间、滚动时的帧率以及交互延迟,从而评估 KaTeX 在当前主题与浏览器组合下的表现。