From 304fca65aa7ee771d34884e03c95adfe1be3f286 Mon Sep 17 00:00:00 2001 From: jaywcjlove <398188662@qq.com> Date: Sun, 13 Nov 2022 23:20:45 +0800 Subject: [PATCH] feat: add `latex.md` #47 --- README.md | 4 +- docs/latex.md | 421 ++++++++++++++++++++++++++++++++++ docs/quickreference.md | 2 +- scripts/assets/latex.svg | 3 + scripts/utils/getTocsTree.mjs | 7 +- 5 files changed, 434 insertions(+), 3 deletions(-) create mode 100644 docs/latex.md create mode 100644 scripts/assets/latex.svg diff --git a/README.md b/README.md index a668e12..a71e436 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Quick Reference [CMake](./docs/cmake.md) [Django](./docs/djiango.md) [FFmpeg](./docs/ffmpeg.md) +[LaTeX](./docs/latex.md) [MATLAB](./docs/matlab.md) [Vue 3 ](./docs/vue.md) @@ -40,8 +41,9 @@ Quick Reference [INI](./docs/ini.md) [JSON](./docs/json.md) [Java](./docs/java.md) +[LaTeX](./docs/latex.md) [Markdown](./docs/markdown.md) -[MySQL](./docs/mysql.md) +[MySQL](./docs/mysql.md) [MATLAB](./docs/matlab.md) [PHP](./docs/php.md) [Python](./docs/python.md) diff --git a/docs/latex.md b/docs/latex.md new file mode 100644 index 0000000..eec61ff --- /dev/null +++ b/docs/latex.md @@ -0,0 +1,421 @@ +LaTeX 备忘清单 +=== + +本备忘单总结了 [LaTeX](https://www.latex-project.org/) 常用显示数学符号的参考列表和一些 [KaTeX](https://katex.org/) 的应用示例。 + +入门 +--- + +### 介绍 + +[LaTeX](https://www.latex-project.org/) 基于 TEX 的排版系统,适用于生成高印刷质量的科技和数学、物理文档。 + +- [LaTeX 官网](https://www.latex-project.org/) _(latex-project.org)_ +- [KaTeX 官网](https://katex.org/) _(katex.org)_ + +而 [KaTeX](https://katex.org/) 只处理 LaTeX 的数学符号的一个更小的子集,用于 web 上展示 + +### 示例 + +```KaTeX +% \f is defined as #1f(#2) using the macro +f\relax(x) = \int_{-\infty}^\infty + f\hat\xi\,e^{2 \pi i \xi x} + \,d\xi +``` + +--- + +```LaTeX +% \f is defined as #1f(#2) using the macro +f\relax(x) = \int_{-\infty}^\infty + f\hat\xi\,e^{2 \pi i \xi x} + \,d\xi +``` + +### 行内展示 + +```markdown +基于 KaTeX 在一行 +展示示例: `KaTeX:\int_0^\infty x^2 dx` +``` + +基于 KaTeX 在一行展示示例: `KaTeX:\int_0^\infty x^2 dx` + +Supported Functions +--- + +### Accents + + +:- | :- | :- +:- | :- | :- +`KaTeX:a'` `a'` | `KaTeX:\tilde{a}` `\tilde{a}` | `KaTeX:\mathring{g}` `\mathring{g}` +`KaTeX:a''` `a''` | `KaTeX:\widetilde{ac}` `\widetilde{ac}` | `KaTeX:\overgroup{AB}` `\overgroup{AB}` +`KaTeX:a^{\prime}` `a^{\prime}` | `KaTeX:\utilde{AB}` `\utilde{AB}` | `KaTeX:\undergroup{AB}` `\undergroup{AB}` +`KaTeX:\acute{a}` `\acute{a}` | `KaTeX:\vec{F}` `\vec{F}` | `KaTeX:\Overrightarrow{AB}` `\Overrightarrow{AB}` +`KaTeX:\bar{y}` `\bar{y}` | `KaTeX:\overleftarrow{AB}` `\overleftarrow{AB}` | `KaTeX:\overrightarrow{AB}` `\overrightarrow{AB}` +`KaTeX:\breve{a}` `\breve{a}` | `KaTeX:\underleftarrow{AB}` `\underleftarrow{AB}` | `KaTeX:\underrightarrow{AB}` `\underrightarrow{AB}` +`KaTeX:\check{a}` `\check{a}` | `KaTeX:\overleftharpoon{ac}` `\overleftharpoon{ac}` | `KaTeX:\overrightharpoon{ac}` `\overrightharpoon{ac}` +`KaTeX:\dot{a}` `\dot{a}` | `KaTeX:\overleftrightarrow{AB}` `\overleftrightarrow{AB}` | `KaTeX:\overbrace{AB}` `\overbrace{AB}` +`KaTeX:\ddot{a}` `\ddot{a}` | `KaTeX:\underleftrightarrow{AB}` `\underleftrightarrow{AB}` | `KaTeX:\underbrace{AB}` `\underbrace{AB}` +`KaTeX:\grave{a}` `\grave{a}` | `KaTeX:\overline{AB}` `\overline{AB}` | `KaTeX:\overlinesegment{AB}` `\overlinesegment{AB}` +`KaTeX:\hat{\theta}` `\hat{\theta}` | `KaTeX:\underline{AB}` `\underline{AB}` | `KaTeX:\underlinesegment{AB}` `\underlinesegment{AB}` +`KaTeX:\widehat{ac}` `\widehat{ac}` | `KaTeX:\widecheck{ac}` `\widecheck{ac}` | `KaTeX:\underbar{X}` `\underbar{X}` + +### \text{…}中的强调功能 + +:- | :- | :- +:- | :- | :- +`KaTeX:\'{a}` `\'{a}` | `KaTeX:\~{a}` `\~{a}` | +`KaTeX:\.{a}` `\.{a}` | `KaTeX:\H{a}` `\H{a}` | +``KaTeX:\\\`{a}`` \\`{a} | `KaTeX:\={a}` `\={a}` | +`KaTeX:\"{a}` `\"{a}` | `KaTeX:\v{a}` `\v{a}` | +`KaTeX:\^{a}` `\^{a}` | `KaTeX:\u{a}` `\u{a}` | +`KaTeX:\r{a}` `\r{a}` | + +### Delimiter Sizing + +:- | :- +:- | :- +`KaTeX:\left(\LARGE{AB}\right)` | `\left(\LARGE{AB}\right)` +`KaTeX:( \big( \Big( \bigg( \Bigg(`| `( \big( \Big( \bigg( \Bigg(` + +--- + +:- | :- | :- | :- | :- +:- | :- | :- | :- | :- +`\left` | `\big` | `\bigl` | `\bigm` | `\bigr` +`\middle` | `\Big` | `\Bigl` | `\Bigm` | `\Bigr` +`\right` | `\bigg` | `\biggl` | `\biggm` | `\biggr` +`` | `\Bigg` | `\Biggl` | `\Biggm` | `\Biggr` + +### 分隔符 Delimiters + + +预览 | 方法 | 预览 | 方法 | 预览 | 方法 | 预览| 方法 | 预览 | 方法 +:- | :- | :- | :- | :- | :- | :- | :- | :- | :- +| `KaTeX:()` | `()` | `KaTeX:\lparen \rparen` | `\lparen` `\rparen` | `KaTex:⌈ ⌉` | `⌈ ⌉` | `KaTex:\lceil \rceil` | `\lceil` `\rceil` | `KaTex:\uparrow` | `\uparrow` | +| `KaTeX:[]` | `[]` | `KaTeX:\lbrack \rbrack` | `\lbrack` `\rbrack` | `KaTex:⌊ ⌋` | `⌊ ⌋` | `KaTex:\lfloor \rfloor` | `\lfloor` `\rfloor` | `KaTex:\downarrow` | `\downarrow` | +| `KaTeX:\{ \}` | `{}` | `KaTex:\lbrace \rbrace` | `\lbrace` `\rbrace` | `KaTex:⎰⎱` | `⎰⎱` | `KaTex:\lmoustache \rmoustache` | `\lmoustache` `\rmoustache` | `KaTex:\updownarrow` | `\updownarrow` | +| `KaTeX:⟨ ⟩` | `⟨⟩` | `KaTex:\langle \rangle` | `\langle` `\rangle` | `KaTex:⟮ ⟯` | `⟮ ⟯` | `KaTex:\lgroup \rgroup` | `\lgroup` `\rgroup` | `KaTex:\Uparrow` | `\Uparrow` | +| `KaTeX:∣` | `\|` | `KaTex:\vert` | `\vert` | `KaTex:┌ ┐` | `┌ ┐` | `KaTex:\ulcorner \urcorner` | `\ulcorner` `\urcorner` | `KaTex:\Downarrow` | `\Downarrow` | +| `KaTeX:\|` _(MD语法冲突)_ | \\| | `KaTex:\Vert` | `\Vert` | `KaTex:└ ┘` | `└ ┘` | `KaTex:\llcorner \lrcorner` | `\llcorner` `\lrcorner` | `KaTex:\Updownarrow` | `\Updownarrow` | +| `KaTeX:∣ ∣` | `\lvert` `\rvert` | `KaTex:\lVert \rVert` | `\lVert` `\rVert` | | `\left.` | | `\right.` | `KaTex:\backslash` | `\backslash` | +| `KaTeX:\lang` `KaTeX:\rang` | `\lang` `\rang` | `KaTeX:\lt \gt` | `\lt \gt` | `KaTex:⟦ ⟧` | `⟦ ⟧` | `KaTex:\llbracket \rrbracket` | `\llbracket` `\rrbracket` | `KaTex:\lBrace \rBrace` | `\lBrace \rBrace` | + + +Environments +--- + +### Environments 1 + + +```KaTeX +\begin{matrix} + a & b \\ + c & d +\end{matrix} +``` + +```LaTeX +\begin{matrix} + a & b \\ + c & d +\end{matrix} +``` + +### Environments 2 + + +```KaTeX +\begin{array}{cc} + a & b \\ + c & d +\end{array} +``` + +```LaTeX +\begin{array}{cc} + a & b \\ + c & d +\end{array} +``` + +### Environments 3 + + +```KaTeX +\begin{pmatrix} + a & b \\ + c & d +\end{pmatrix} +``` + +```LaTeX +\begin{pmatrix} + a & b \\ + c & d +\end{pmatrix} +``` + +### Environments 4 + + +```KaTeX +\begin{bmatrix} + a & b \\ + c & d +\end{bmatrix} +``` + +```LaTeX +\begin{bmatrix} + a & b \\ + c & d +\end{bmatrix} +``` + +### Environments 5 + + +```KaTeX +\begin{vmatrix} + a & b \\ + c & d +\end{vmatrix} +``` + +```LaTeX +\begin{vmatrix} + a & b \\ + c & d +\end{vmatrix} +``` + +### Environments 6 + + +```KaTeX +\begin{Vmatrix} + a & b \\ + c & d +\end{Vmatrix} +``` + +```LaTeX +\begin{Vmatrix} + a & b \\ + c & d +\end{Vmatrix} +``` + +### Environments 7 + + +```KaTeX +\begin{Bmatrix} + a & b \\ + c & d +\end{Bmatrix} +``` + +```LaTeX +\begin{Bmatrix} + a & b \\ + c & d +\end{Bmatrix} +``` + +### Environments 8 + + +```KaTeX +\def\arraystretch{1.5} + \begin{array}{c:c:c} + a & b & c \\ \hline + d & e & f \\ + \hdashline + g & h & i +\end{array} +``` + +```LaTeX +\def\arraystretch{1.5} + \begin{array}{c:c:c} + a & b & c \\ \hline + d & e & f \\ + \hdashline + g & h & i +\end{array} +``` + +### Environments 9 + + +```KaTeX +x = \begin{cases} + a &\text{if } b \\ + c &\text{if } d +\end{cases} +``` + +```LaTeX +x = \begin{cases} + a &\text{if } b \\ + c &\text{if } d +\end{cases} +``` + +### Environments 10 + + +```KaTeX +\begin{rcases} + a &\text{if } b \\ + c &\text{if } d +\end{rcases}⇒… +``` + +```LaTeX +\begin{rcases} + a &\text{if } b \\ + c &\text{if } d +\end{rcases}⇒… +``` + +### Environments 11 + + +```KaTeX +\begin{smallmatrix} + a & b \\ + c & d +\end{smallmatrix} +``` + +```LaTeX +\begin{smallmatrix} + a & b \\ + c & d +\end{smallmatrix} +``` + +### Environments 12 + + +```KaTeX +\sum_{ +\begin{subarray}{l} + i\in\Lambda\\ + 0 + +```KaTeX +\begin{equation} +\begin{split} a &=b+c\\ + &=e+f +\end{split} +\end{equation} +``` + + +```LaTeX +\begin{equation} +\begin{split} a &=b+c\\ + &=e+f +\end{split} +\end{equation} +``` + +### Environments 12 + + +```KaTeX +\begin{align} + a&=b+c \\ + d+e&=f +\end{align} +``` + + +```LaTeX +\begin{align} + a&=b+c \\ + d+e&=f +\end{align} +``` + +### Environments 12 + + +```KaTeX +\begin{gather} + a=b \\ + e=b+c +\end{gather} +``` + + +```LaTeX +\begin{gather} + a=b \\ + e=b+c +\end{gather} +``` + +### Environments 12 + + +```KaTeX +\begin{alignat}{2} + 10&x+&3&y=2\\ + 3&x+&13&y=4 +\end{alignat} +``` + + +```LaTeX +\begin{alignat}{2} + 10&x+&3&y=2\\ + 3&x+&13&y=4 +\end{alignat} +``` + +### Environments 12 + + +```KaTeX +\begin{CD} + A @>a>> B \\ +@VbVV @AAcA \\ + C @= D +\end{CD} +``` + + +```LaTeX +\begin{CD} + A @>a>> B \\ +@VbVV @AAcA \\ + C @= D +\end{CD} +``` + +另见 +---- + +- [LaTeX 官网](https://www.latex-project.org/) _(latex-project.org)_ +- [KaTeX 官网](https://katex.org/) _(katex.org)_ diff --git a/docs/quickreference.md b/docs/quickreference.md index c639531..ee9ff47 100644 --- a/docs/quickreference.md +++ b/docs/quickreference.md @@ -146,7 +146,7 @@ Markdown 语法注释 #### 示例 ```markdown -### H2 部分 +## H2 部分 ### H3 部分 diff --git a/scripts/assets/latex.svg b/scripts/assets/latex.svg new file mode 100644 index 0000000..ab22dc2 --- /dev/null +++ b/scripts/assets/latex.svg @@ -0,0 +1,3 @@ + + + diff --git a/scripts/utils/getTocsTree.mjs b/scripts/utils/getTocsTree.mjs index b4f5daf..f2ccafc 100644 --- a/scripts/utils/getTocsTree.mjs +++ b/scripts/utils/getTocsTree.mjs @@ -107,7 +107,7 @@ export function getTocsTree(arr = [], result = []) { { type: 'element', tagName: 'div', - properties: { class: 'wrap-body' }, + properties: { class: ['wrap-body'] }, children: [...header], }, ], @@ -133,7 +133,12 @@ export function getTocsTree(arr = [], result = []) { children: [...resultChilds], }); } else { + panle.children[0].children[1].properties?.class.push(bodyClass); panle.children[0].children[1].children = panle.children[0].children[1].children.concat(resultChilds); + if (panle.children[0].children[1].properties && bodyStyle) { + const initStyle = panle.children[0].children[1].properties?.style || ''; + panle.children[0].children[1].properties.style = initStyle + bodyStyle; + } } } }