前言
最近想在博客上开一个数学相关的专题,但是发现 Astro 并不能直接解析含有
LaTeX 表达式的 Markdown 文件。而使用 remarkMath,rehypeKatex
解决了这个问题,特此记录。
实现
1. 安装依赖
为了能够在自己的网站上使用 remarkMath 和 rehypeKatex,我们需要使用 npm 安装它们:
npm install rehype-katex
npm install remark-math
在国内的下载速度有时可能会很慢,可以使用镜像源解决这个问题。
2. 添加配置
接下来需要修改 astro.config.mjs
,让 Astro 加载以上两个库作为 Markdown 的解析器:
import { defineConfig } from 'astro/config' ;
import mdx from '@astrojs/mdx' ;
import sitemap from '@astrojs/sitemap' ;
import remarkMath from 'remark-math' ; // 新增
import rehypeKatex from 'rehype-katex' ; // 新增
export default defineConfig ({
site : 'https://example.com' ,
integrations : [ mdx (), sitemap ()],
markdown : {
syntaxHighlight : 'shiki' ,
shikiConfig : {
theme : 'one-light' ,
},
remarkPlugins : [ remarkMath ], // 新增
rehypePlugins : [ rehypeKatex ] // 新增
}
});
3. 加载样式表
在需要使用 LaTeX 的页面加载样式表
https://fastly.jsdelivr.net/npm/[email protected] /dist/katex.css
这一步是非必须的 ,但是不加载可能会导致一些显示问题。我在配置的时候没有加载 CSS,
发现一个名为 katex-html
的元素没有被正确隐藏,
因此我在页面的<style>
块下隐藏掉了这个元素,在使用中没有发现异常:
.katex-html {
display: none;
}
至此,所有的配置工作就完成了。下面我给出一些示例,来验证其表现效果。
示例一:洛必达法则的证明
引言
洛必达法则(L’Hôpital’s Rule)是求极限的一种方法,它适用于当两个函数的极限同时趋于 0 或无穷大时的情形。本文将给出洛必达法则的数学证明。
洛必达法则的表述
定理: 设 f ( x ) f(x) f ( x ) 和 g ( x ) g(x) g ( x ) 在区间 ( a , b ) (a, b) ( a , b ) 内可微,且 g ′ ( x ) ≠ 0 g'(x) \neq 0 g ′ ( x ) = 0 对所有 x ∈ ( a , b ) x \in (a, b) x ∈ ( a , b ) 成立。若
lim x → c f ( x ) = 0 且 lim x → c g ( x ) = 0 \lim_{x \to c} f(x) = 0 \quad \text{且} \quad \lim_{x \to c} g(x) = 0 x → c lim f ( x ) = 0 且 x → c lim g ( x ) = 0
或者
lim x → c f ( x ) = ± ∞ 且 lim x → c g ( x ) = ± ∞ , \lim_{x \to c} f(x) = \pm \infty \quad \text{且} \quad \lim_{x \to c} g(x) = \pm \infty, x → c lim f ( x ) = ± ∞ 且 x → c lim g ( x ) = ± ∞ ,
且
lim x → c f ′ ( x ) g ′ ( x ) = L , \lim_{x \to c} \frac{f'(x)}{g'(x)} = L, x → c lim g ′ ( x ) f ′ ( x ) = L ,
其中 L L L 是有限常数或 L = ± ∞ L = \pm \infty L = ± ∞ ,那么
lim x → c f ( x ) g ( x ) = L . \lim_{x \to c} \frac{f(x)}{g(x)} = L. x → c lim g ( x ) f ( x ) = L .
证明
假设 f ( c ) = g ( c ) = 0 f(c) = g(c) = 0 f ( c ) = g ( c ) = 0 且 f ′ ( x ) f'(x) f ′ ( x ) 和 g ′ ( x ) g'(x) g ′ ( x ) 存在并连续,证明过程基于柯西中值定理(Cauchy’s Mean Value Theorem)。
柯西中值定理: 设 f ( x ) f(x) f ( x ) 和 g ( x ) g(x) g ( x ) 在闭区间 [ a , b ] [a, b] [ a , b ] 上连续,在开区间 ( a , b ) (a, b) ( a , b ) 上可微,且 g ′ ( x ) ≠ 0 g'(x) \neq 0 g ′ ( x ) = 0 对于 x ∈ ( a , b ) x \in (a, b) x ∈ ( a , b ) 成立,则存在 ξ ∈ ( a , b ) \xi \in (a, b) ξ ∈ ( a , b ) 使得
f ′ ( ξ ) g ′ ( ξ ) = f ( b ) − f ( a ) g ( b ) − g ( a ) . \frac{f'( \xi )}{g'( \xi )} = \frac{f(b) - f(a)}{g(b) - g(a)}. g ′ ( ξ ) f ′ ( ξ ) = g ( b ) − g ( a ) f ( b ) − f ( a ) .
现在我们开始证明洛必达法则。为简单起见,假设 x → c + x \to c^+ x → c + 的情形,c c c 可以是有限值或无穷大。考虑区间 [ x , c ] [x, c] [ x , c ] ,在这个区间上应用柯西中值定理,对于 x x x 足够接近 c c c ,有
f ( x ) − f ( c ) g ( x ) − g ( c ) = f ′ ( ξ ) g ′ ( ξ ) , \frac{f(x) - f(c)}{g(x) - g(c)} = \frac{f'(\xi)}{g'(\xi)}, g ( x ) − g ( c ) f ( x ) − f ( c ) = g ′ ( ξ ) f ′ ( ξ ) ,
其中 ξ ∈ ( x , c ) \xi \in (x, c) ξ ∈ ( x , c ) 。由于 f ( c ) = 0 f(c) = 0 f ( c ) = 0 且 g ( c ) = 0 g(c) = 0 g ( c ) = 0 ,上式化简为
f ( x ) g ( x ) = f ′ ( ξ ) g ′ ( ξ ) . \frac{f(x)}{g(x)} = \frac{f'(\xi)}{g'(\xi)}. g ( x ) f ( x ) = g ′ ( ξ ) f ′ ( ξ ) .
接下来,我们取 x → c x \to c x → c ,根据假设 lim x → c f ′ ( x ) g ′ ( x ) = L \lim_{x \to c} \frac{f'(x)}{g'(x)} = L lim x → c g ′ ( x ) f ′ ( x ) = L ,所以
lim x → c f ( x ) g ( x ) = L . \lim_{x \to c} \frac{f(x)}{g(x)} = L. x → c lim g ( x ) f ( x ) = L .
因此,洛必达法则得证。
总结
本文通过应用柯西中值定理,证明了洛必达法则。当两个函数的极限同时趋于 0 或无穷大时,可以通过其导数的极限来求解函数商的极限。这是一个极其重要的工具,特别是在处理不定形式时。
示例二:各种公式
[ a 1 , 1 a 2 , 1 ⋯ a n , 1 a 1 , 2 a 2 , 2 ⋯ a n , 2 ⋮ ⋮ ⋱ ⋮ a 1 , n a 2 , n ⋯ a n , n ] = A = K T Q = [ k 1 T k 2 T ⋮ k n T ] [ q 1 q 2 ⋯ q n ] \left[
\begin{array}{cccc}
a_{1,1} & a_{2,1} & \cdots &a_{n,1}\\
a_{1,2} & a_{2,2} & \cdots &a_{n,2}\\
\vdots & \vdots & \ddots & \vdots\\
a_{1,n} & a_{2,n} & \cdots &a_{n,n}\\
\end{array}
\right]
=
A
=
K^TQ
=
\left[
\begin{array}{c}
k_1^T\\
k_2^T\\
\vdots\\
k_n^T\\
\end{array}
\right] \left[ q_1\,q_2\, \cdots \,q_n \right] a 1 , 1 a 1 , 2 ⋮ a 1 , n a 2 , 1 a 2 , 2 ⋮ a 2 , n ⋯ ⋯ ⋱ ⋯ a n , 1 a n , 2 ⋮ a n , n = A = K T Q = k 1 T k 2 T ⋮ k n T [ q 1 q 2 ⋯ q n ]
A = ( a 11 a 12 … a 1 n a 21 a 22 … a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 … a m n ) \mathbf{A} =
\left( \begin{array}{cccc}
a_{11} & a_{12} & \ldots & a_{1n} \\
a_{21} & a_{22} & \ldots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \ldots & a_{mn} \\
\end{array} \right) A = a 11 a 21 ⋮ a m 1 a 12 a 22 ⋮ a m 2 … … ⋱ … a 1 n a 2 n ⋮ a mn
s p a n { v } ⊥ \mathbf{span}\{v\}^\bot span { v } ⊥
α = ± ∥ x ∥ 2 \alpha = \pm \parallel x \parallel_2 α = ± ∥ x ∥ 2
∂ 7 u ∂ x 4 ∂ t 3 ∂ 9 z ∂ x 5 ∂ y 4 \newcommand{\partt}[6]
{ \frac
{\partial^{#2}#1}
{{\partial{#3}^{#4}}{\partial{#5}^{#6}}} }
{\partt {u} {7} {x} {4} {t} {3}}\\
\\
{\partt {z} {9}{x} {5}{y}{4}} ∂ x 4 ∂ t 3 ∂ 7 u ∂ x 5 ∂ y 4 ∂ 9 z
cos 2 θ + sin 2 θ = 1 \cos^{2}\theta + \sin^{2}\theta = 1 cos 2 θ + sin 2 θ = 1
cos 2 θ = sin 2 θ + cos 2 θ = 1 − 2 sin 2 θ = 2 cos 2 θ − 1 \cos2\theta=\sin^{2}\theta + \cos^{2}\theta = 1-2\sin^{2}\theta = 2\cos^{2}\theta -1 cos 2 θ = sin 2 θ + cos 2 θ = 1 − 2 sin 2 θ = 2 cos 2 θ − 1
lim n → ∞ ∑ k = 1 n 1 k 2 = π 2 6 \lim_{n \to \infty}\sum_{k=1}^{n}\frac{1}{k^{2}}=\frac{\pi^{2}}{6} n → ∞ lim k = 1 ∑ n k 2 1 = 6 π 2
x 2 ≥ 0 for all x ∈ R x^{2}\geq0\qquad \textrm{for all } x \in \mathbb{R} x 2 ≥ 0 for all x ∈ R
a l p h a , β , γ , Γ , ξ , Ξ , π , Π , μ , ϕ , Φ , ω , Ω alpha\,, \beta\,, \gamma\,,\Gamma\,,\xi\,,\Xi\,,\pi\,,\Pi\,,\mu\,,\phi\,,\Phi\,,\omega\,,\Omega a lp ha , β , γ , Γ , ξ , Ξ , π , Π , μ , ϕ , Φ , ω , Ω
1 + x 2 x 2 + y \sqrt{1+x^2} \qquad \sqrt{x^2+\sqrt{y}} 1 + x 2 x 2 + y
α ∗ β ∗ γ ∗ δ ~ 1 ∗ 2 ∗ ⋯ ∗ N ⏟ \widetilde{\alpha*\beta*\gamma*\delta} \qquad \underbrace{1*2*\cdots*N} α ∗ β ∗ γ ∗ δ 1 ∗ 2 ∗ ⋯ ∗ N
A B C D → \overrightarrow{ABCD} A BC D
arccos θ , cos 2 θ , log y , lim sup ( x i ) \arccos{\theta},\qquad \cos{2\theta},\qquad \log{y},\qquad \limsup{(x_i)} arccos θ , cos 2 θ , log y , lim sup ( x i )
∫ − ∞ ∞ sin x ( x ) d x ≠ 1 \int_{-\infty}^{\infty}{\sin^x(x)} dx \ne 1 ∫ − ∞ ∞ sin x ( x ) d x = 1
1 1 + 1 2 + 1 3 + ⋯ 1 N \frac{1}{1}+\frac{1}{2} + \frac{1}{3} + \cdots \frac{1}{N} 1 1 + 2 1 + 3 1 + ⋯ N 1
∭ μ ( x , y , z ) d x d y d z \iiint \mu(x,y,z)\,dx dy dz ∭ μ ( x , y , z ) d x d y d z
∏ i = 0 N x i \prod_{i=0}^{N}x_{i} i = 0 ∏ N x i
相关链接
这篇文章的公式部分转载自 CSDN,有修改,源站链接:https://blog.csdn.net/eloudy/article/details/135830153