[关闭]
@codeep 2022-07-13T06:57:47.000000Z 字数 32098 阅读 371117

源文件下载 / Ver. 2022-07-13 / Ver. 2020-10-03本文固定链接 https://ericp.cn/cmd

Cmd Markdown 公式指导手册

由于 Cmd Markdown 编辑器及本手册均已放弃维护,最后嵌入版本为 MathJax.js v2.2,可能与当前现代浏览器产生部分不兼容或渲染出错,您可在相关位置批注,我会收到邮件通知并确认更正。

建议您在 Chrome 或 Edge 浏览器中使用 Cmd Markdown 编辑器。

Ver. 2022-07-13


本文为 MathJax 在 Cmd Markdown 环境下的常用语法指引。Cmd Markdown 编辑阅读器支持 编辑显示支持,例如:,访问 MathJax 以参考更多使用方法。

右键点击每一个公式,选择 [Show Math As] → [TeX Commands] 以查看该公式的命令详情。


一、公式使用参考

1.如何插入公式

可使用行中公式放在文中与其它文字混编,或单独成行的独立公式。

行中公式可以用如下方法表示:
 $ 表达式 $
独立公式可以用如下方法表示:
 $$ 表达式 $$
自动编号的公式可以用如下方法表示:
若需要手动编号,可在公式后使用 \tag{编号} 语句。
\begin{equation}
    表达式
    \label{eq:当前公式名}
\end{equation}

自动编号后的公式可在全文任意处使用 \eqref{eq:公式名} 语句引用。

  1. $ J_\alpha(x) = \sum_{m=0}^\infty \frac{(-1)^m}{m! \Gamma (m + \alpha + 1)} {\left({ \frac{x}{2} }\right)}^{2m + \alpha} \text {,行内公式示例} $
  1. $$ J_\alpha(x) = \sum_{m=0}^\infty \frac{(-1)^m}{m! \Gamma (m + \alpha + 1)} {\left({ \frac{x}{2} }\right)}^{2m + \alpha} \text{,独立公式示例,使用 \tag 手动编号} \tag{0.1} $$
  1. $$ 在公式 \eqref{eq:sample} 中,我们看到了这个被自动编号的公式。$$
  2. \begin{equation}
  3. E=mc^2 \text{,自动编号公式示例}
  4. \label{eq:sample}
  5. \end{equation}

不自动编号的公式可以用如下方法表示:
\begin{equation*}
    表达式
\end{equation*}

2.如何输入上下标

^ 表示上标,_ 表示下标。如果上下标的内容多于一个字符,需要用 {} 将这些内容括成一个整体。
上下标可以嵌套,也可以同时使用。

  1. $$ x^{y^z}=(1+{\rm e}^x)^{-2xy^w} $$

如果要在左右两边都有上下标,可以使用 \sideset 命令;也可以简单地在符号前面多打一个上下标,此时会以行内公式渲染。
本例内 \quad 均为空格符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格

  1. $$ \sideset{^1_2}{^3_4}\bigotimes \quad or \quad {^1_2}\bigotimes {^3_4} $$

3.如何输入括号和分隔符

()[]| 表示符号本身,使用 \{\} 来表示 {} 。当要显示大号的括号或分隔符时,要用 \left\right 命令。

一些特殊的括号:

输入 显示 输入 显示
\langle \rangle
\lceil \rceil
\lfloor \rfloor
\lbrace \rbrace
\lvert \rvert
\lVert \rVert

@lymd 有时,我们需要在行内使用两个竖杠表示向量间的某种空间距离,可以这样写
\lVert \boldsymbol{X}_i - \boldsymbol{S}_j \rVert^2

  1. $$ f(x,y,z) = 3y^2z \left( 3+\frac{7x+5}{1+y^2} \right) $$

有时要用 \left.\right. 进行匹配而不显示本身。

  1. $$ \left. \frac{{\rm d}u}{{\rm d}x} \right| _{x=0} $$

4.如何输入分数

通常使用 \frac {分子} {分母} 来生成一个分数,分数可多层嵌套。
若分数只有一层,也可使用 分子 \over 分母 命令。
例内 \quad \mid \, 等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格

  1. $$ \frac{a-1}{b-1} \quad or \quad {a+1 \over b+1} $$

当分式 仅有两个字符时 可直接输入 \frac ab 来快速生成一个

  1. $$ \frac 12,\frac 1a,\frac a2 \quad \mid \quad \text{2 letters only:} \quad \frac 12a \,, k\frac q{r^2} $$

5.如何输入开方

使用 \sqrt [根指数,省略时为2] {被开方数} 命令输入开方。
本例内 \quad 均为空格符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格

  1. $$ \sqrt{2} \quad or \quad \sqrt[n]{3} $$

6.如何输入省略号

数学公式中常见的省略号有两种,\ldots 表示与 文本底线 对齐的省略号,\cdots 表示与 文本中线 对齐的省略号。

  1. $$ f(x_1,x_2,\underbrace{\ldots}_{\rm ldots} ,x_n) = x_1^2 + x_2^2 + \underbrace{\cdots}_{\rm cdots} + x_n^2 $$

7.如何输入向量

使用 \vec{向量} 来自动产生一个向量。也可以使用 \overrightarrow 等命令自定义字母上方的符号。
例内 \quad \mid \, 等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格

  1. $$ \vec{a} \cdot \vec{b}=0 $$
  1. $$ xy \text{ with arrows:} \quad \overleftarrow{xy} \; \mid \; \overleftrightarrow{xy} \; \mid \; \overrightarrow{xy} $$

8.如何输入积分

使用 \int_积分下限^积分上限 {被积表达式} 来输入一个积分。

例子:

  1. $$ \int_0^1 {x^2} \,{\rm d}x $$

显示:

本例中 \,{\rm d} 部分可省略,但加入能使式子更美观,详见在字符间加入空格如何进行字体转换

9.如何输入极限运算

使用 \lim_{变量 \to 表达式} 表达式 来输入一个极限。如有需求,可以更改 \to 符号至任意符号。

例子:

  1. $$ \lim_{n \to \infty} \frac{1}{n(n+1)} \quad and \quad \lim_{x\leftarrow{示例}} \frac{1}{n(n+1)} $$

显示:

10.如何输入累加、累乘运算

使用 \sum_{下标表达式}^{上标表达式} {累加表达式} 来输入一个累加。与之类似,使用 \prod \bigcup \bigcap 来分别输入累乘、并集和交集,更多符号可参考“其它特殊字符”。

此类符号在行内显示时上下标表达式将会移至右上角和右下角,如 \sum_{i=1}^n \frac{1}{i^2} 显示为

或:

@woria 在行内可使用 \sum\limits_{下标表达式}^{上标表达式} {累加表达式} 使上下标仍在正上正下方。
\sum\limits_{i=1}^n \frac{1}{i^2} 显示为

本例内 \quad 均为空格符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格

  1. $$ \sum_{i=1}^n \frac{1}{i^2} \quad and \quad \prod_{i=1}^n \frac{1}{i^2} \quad and \quad \bigcup_{i=1}^{2} \Bbb{R} $$

11.如何输入希腊字母

输入 \小写希腊字母英文全称\首字母大写希腊字母英文全称 来分别输入小写和大写希腊字母。
对于大写希腊字母与现有字母相同的,直接输入大写字母即可。

输入 显示 输入 显示 输入 显示 输入 显示
\alpha A \beta B
\gamma \Gamma \delta \Delta
\epsilon E \zeta Z
\eta H \theta \Theta
\iota I \kappa K
\lambda \Lambda \mu M
\nu N \xi \Xi
o O \pi \Pi
\rho P \sigma \Sigma
\tau T \upsilon \Upsilon
\phi \Phi \chi X
\psi \Psi \omega \Omega

部分字母有变量专用形式,以 \var- 开头。

小写形式 大写形式 变量形式 显示
\epsilon E \varepsilon
\theta \Theta \vartheta
\rho P \varrho
\sigma \Sigma \varsigma
\phi \Phi \varphi

12.如何输入其它特殊字符

完整的 可用符号列表可以在 这份文档 中查阅(极长,共 348 页),大部分常用符号可以参阅 这份精简版文档 查询。需要注意的是, 符号并不保证在 MathJax v2.2 中可用,即在 Cmd Markdown 编辑阅读器中可能并不支持所输入的特定命令。

若需要显示更大或更小的字符,在符号前插入 \large\small 命令。
MathJax 针对任意元素均提供从小至大 \tiny \Tiny \scriptsize \small *默认值 \normalsize \large \Large \LARGE \huge \Huge 共十种渲染大小,详见官方文档

若找不到需要的符号,推荐使用 来画出想要的符号

detexify_t

(1).关系运算符

输入 显示 输入 显示 输入 显示 输入 显示
\pm \times \div \mid
\nmid \cdot \circ \ast
\odot \otimes \oplus \leq
\geq \neq \approx \equiv
\sum \prod \coprod \backslash

(2).集合运算符

输入 显示 输入 显示 输入 显示
\emptyset \in \notin
\subset \supset \subseteq
\supseteq \cap \cup
\vee \wedge \uplus
\top \bot \complement

(3).对数运算符

输入 显示 输入 显示 输入 显示
\log \lg \ln

(4).三角运算符

输入 显示 输入 显示 输入 显示
\backsim \cong \angle A
\sin \cos \tan
\csc \sec \cot

(5).微积分运算符

输入 显示 输入 显示 输入 显示
\int \iint \iiint
\partial \oint \prime
\lim \infty \nabla

(6).逻辑运算符

输入 显示 输入 显示 输入 显示
\because \therefore \neg
\forall \exists \not\subset
\not< \not> \not=

@xiaobanni
\vdash 显示为

(7).戴帽符号

输入 显示 输入 显示 输入 显示
\hat{xy} \widehat{xyz} \bar{y}
\tilde{xy} \widetilde{xyz} \acute{y}
\breve{y} \check{y} \grave{y}
\dot{x} \ddot{x} \dddot{x}

若需要在特定文字顶部\底部放置内容,可使用 \overset{顶部内容}{正常内容}\underset{底部内容}{正常内容} 命令。
例内 \qquad \quad \mid \; \, 等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格

  1. $$ \verb+\overset{above}{level}+ \qquad \overset{xx}{ABC} \;\; \mid \quad \overset{x^2}{\longmapsto}\ \, \mid \quad \overset{\bullet\circ\circ\bullet}{T} $$
  1. $$ \verb+\underset{below}{level}+ \qquad \underset{xx}{ABC} \;\; \mid \quad \underset{x^2}{\longmapsto}\ \, \mid \quad \underset{\bullet\circ\circ\bullet}{T} $$

此命令可叠加嵌套使用,生成类似化学反应式的多重条件符号,
\overset{H_2}{\underset{1300℃}{\Longleftrightarrow}}

\overset{Surface/bulk}{\underset{diffusion}{\longleftrightarrow}}

在书写化学方程式时可声明 \require{AMDcd} 语句,使用 MathJax 内置的交换图表功能,具体例子可参见下文

(8).连线符号

其它可用的文字修饰符可参见官方文档 "Additional decorations"

输入 显示
\fbox{a+b+c+d} 高级框选需声明 enclose 标签
\overleftarrow{a+b+c+d}
\overrightarrow{a+b+c+d}
\overleftrightarrow{a+b+c+d}
\underleftarrow{a+b+c+d}
\underrightarrow{a+b+c+d}
\underleftrightarrow{a+b+c+d}
\overline{a+b+c+d}
\underline{a+b+c+d}
\overbrace{a+b+c+d}^{Sample}
\underbrace{a+b+c+d}_{Sample}
\overbrace{a+\underbrace{b+c}_{1.0}+d}^{2.0}
\underbrace{a\cdot a\cdots a}_{b\text{ times}}

(9).箭头符号

输入 显示 输入 显示 输入 显示
\to \mapsto \underrightarrow{1℃/min}
\implies \iff \impliedby
输入 显示 输入 显示
\uparrow \Uparrow
\downarrow \Downarrow
\leftarrow \Leftarrow
\rightarrow \Rightarrow
\leftrightarrow \Leftrightarrow
\longleftarrow \Longleftarrow
\longrightarrow \Longrightarrow
\longleftrightarrow \Longleftrightarrow

13.如何进行字体转换

若要对公式的某一部分字符进行字体转换,可以用 {\字体 {需转换的部分字符}} 命令,其中 \字体 部分可以参照下表选择合适的字体。一般情况下,公式默认为斜体字

示例中 全部大写 的字体仅大写可用。

输入 全字母可用 显示 输入 仅大写可用 显示
\rm 罗马体 \mathcal 花体(数学符号等)
\it 斜体 \mathbb 黑板粗体(定义域等)
\bf 粗体 \mit 数学斜体
\sf 等线体 \scr 手写体
\tt 打字机体 \cal 等同于 \mathcal
\frak 旧德式字体 \Bbb 等同于 \mathbb

@lymd \boldsymbol{\alpha} 用来表示向量或者矩阵的加粗斜体,如向量

转换字体十分常用,例如在积分中:

  1. \begin{array}{cc}
  2. \mathrm{Bad} & \mathrm{Better} \\
  3. \hline \\
  4. \int_0^1 x^2 dx & \int_0^1 x^2 \,{\rm d}x
  5. \end{array}

注意比较两个式子间 的不同。
使用 \operatorname 命令也可以达到相同的效果,详见定义新的运算符

14.如何高亮一行公式

使用 \bbox[底色, (可选)边距, (可选)边框 border: 框宽度 框类型 框颜色] 命令来高亮一行公式。
底色和框颜色支持详见“更改文字颜色”,边距及框宽度支持 绝对像素 px相对大小 em,框类型支持 实线 solid虚线 dashed

  1. $$
  2. \bbox[yellow]{
  3. e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)
  4. }
  5. $$
  1. $$
  2. \bbox[#9ff, 5px]{ % 此处向外添加 5 像素的边距
  3. e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)
  4. }
  5. $$
  1. $$
  2. % 此处使用 0.5 倍行高作为边距,附加 2 像素的实线边框(Ctrl+Alt+Y 可见)
  3. \bbox[#2f3542, 0.5em, border:2px solid #f1f2f6]{
  4. \color{#f1f2f6}{e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)}
  5. }
  6. $$

15.大括号和行标的使用

\left\right 之后加上要使用的括号来创建自动匹配高度的圆括号 ( ),方括号 [ ] 和花括号 \{ \}
在每个公式末尾前使用 \tag {行标} 来实现行标。

  1. $$
  2. f\left(
  3. \left[
  4. \frac{
  5. 1+\left\{x,y\right\}
  6. }{
  7. \left(
  8. \frac xy + \frac yx
  9. \right)
  10. (u+1)
  11. }+a
  12. \right]^{3/2}
  13. \right)
  14. \tag {行标}
  15. $$

如果你需要在不同的行显示对应括号,可以在每一行对应处使用 \left.\right. 来放一个“不存在的括号”。

  1. $$
  2. \begin{align*}
  3. a=&\left(1+2+3+ \cdots \right. \\
  4. &\cdots+\left. \infty-2+\infty-1+\infty\right)
  5. \end{align*}
  6. $$

如果你需要将大括号里面显示的分隔符也变大,可以使用 \middle 命令,此处分别使用单竖线 | 和双竖线 \|

  1. $$
  2. \left\langle
  3. q \; \middle|
  4. \frac{\frac xy}{\frac uv}
  5. \middle\| p
  6. \right\rangle
  7. $$

16.其它命令

(1).定义新的运算符 \operatorname

当需要使用的运算符不在 MathJax 的内置库中时,程序可能会报错或产生错误的渲染结果。此时可以使用 \operatorname 命令定义一个新的运算符号。

  1. \begin{array}{c|c}
  2. \mathrm{Error} & \text{Wrong rendering} \\
  3. \hline \\
  4. \arsinh(x) & arsinh(x) \\
  5. \Res_{z=1} & Res_{z=1}{\frac{1}{z^2-z}=1} \\
  6. \end{array}

使用 \operatorname{运算符}{式子} 来生成一个普通运算,或使用 \operatorname*{运算符}_{下标}^{上标}{式子} 来生成一个含上下标的自定义运算。

  1. \begin{array}{c|c}
  2. \text{Normal Operator} & \text{Operator with label above and below} \\
  3. \hline \\
  4. \scriptsize\text{\operatorname{arsinh}{x}} & \scriptsize\text{\operatorname*{Res}_{z=1}{\frac{1}{z^2-z}=1}} \\
  5. \operatorname{arsinh}{x} & \operatorname*{Res}_{z=1}{\frac{1}{z^2-z}=1} \\
  6. \end{array}

查询关于此命令的定义关于此命令的讨论来进一步了解此命令。

(2).添加注释文字 \text

\text {文字} 中仍可以使用 $公式$ 插入其它公式。

  1. $$ f(n)= \begin{cases} n/2, & \text {if $n$ is even} \\ 3n+1, & \text{if $n$ is odd} \end{cases} $$

(3).在字符间加入空格

有四种宽度的空格可以使用: \,\;\quad\qquad,灵活使用 \text{n个空格} 也可以在任意位置实现空格。
同时存在一种负空格 \! 用来减小字符间距,一般在物理单位中使用。
重复使用 \! 命令能够实现不同元素的叠加渲染,如

  1. \begin{array}{c|c}
  2. \text{Spaces} & \text{Negative Space in Units} \\
  3. \hline \\
  4. \overbrace{a \! b}^{\text{\!}} \mid \underbrace{ab}_{\rm{default}} \mid \overbrace{a \, b}^{\text{\,}} \mid \underbrace{a \; b}_{\text{\;}} \mid \overbrace{a \quad b}^{\text{\quad}} \mid \underbrace{a \qquad b}_{\text{\qquad}} & \mathrm{N}\!\cdot\!\mathrm{m} \mid \mathrm{s}\!\cdot\!\mathrm{A} \mid \mathrm{kg}\!\cdot\!\mathrm{m}^2 \\
  5. \end{array}

一些常见的公式单位可表达如下:

  1. $$ \mu_0=4\pi\times10^{-7} \ \left.\mathrm{\mathrm{T}\!\cdot\!\mathrm{m}}\middle/\mathrm{A}\right. $$
  2. $$ 180^\circ=\pi \ \mathrm{rad} $$
  3. $$ \mathrm{N_A} = 6.022\times10^{23} \ \mathrm{mol}^{-1} $$

(4).更改文字颜色 \color

使用 \color{颜色}{文字} 来更改特定的文字颜色。

更改文字颜色需要浏览器支持 ,如果浏览器不知道你所需的颜色,那么文字将被渲染为黑色。对于较旧的浏览器(HTML4 & CSS2),以下颜色是被支持的:

输入 显示 输入 显示
black grey
silver white
maroon red
yellow lime
olive green
teal auqa
blue navy
purple fuchsia

对于较新的浏览器(HTML5 & CSS3),HEX 颜色将被支持:

输入 \color {#rgb} {text} 来自定义更多的颜色,其中 #rgb#rrggbbr g b 可输入 0-9a-f 来表示红色、绿色和蓝色的纯度(饱和度)。

  1. \begin{array}{|rrrrrrrr|}\hline
  2. \verb+#000+ & \color{#000}{text} & & &
  3. \verb+#00F+ & \color{#00F}{text} & & \\
  4. & & \verb+#0F0+ & \color{#0F0}{text} &
  5. & & \verb+#0FF+ & \color{#0FF}{text} \\
  6. \verb+#F00+ & \color{#F00}{text} & & &
  7. \verb+#F0F+ & \color{#F0F}{text} & & \\
  8. & & \verb+#FF0+ & \color{#FF0}{text} &
  9. & & \verb+#FFF+ & \color{#FFF}{text} \\
  10. \hline\end{array}
  1. \begin{array}{|rrrrrrrr|}\hline
  2. \verb+#000+ & \color{#000}{text} & \verb+#005+ & \color{#005}{text} & \verb+#00A+ & \color{#00A}{text} & \verb+#00F+ & \color{#00F}{text} \\
  3. \verb+#500+ & \color{#500}{text} & \verb+#505+ & \color{#505}{text} & \verb+#50A+ & \color{#50A}{text} & \verb+#50F+ & \color{#50F}{text} \\
  4. \verb+#A00+ & \color{#A00}{text} & \verb+#A05+ & \color{#A05}{text} & \verb+#A0A+ & \color{#A0A}{text} & \verb+#A0F+ & \color{#A0F}{text} \\
  5. \verb+#F00+ & \color{#F00}{text} & \verb+#F05+ & \color{#F05}{text} & \verb+#F0A+ & \color{#F0A}{text} & \verb+#F0F+ & \color{#F0F}{text} \\
  6. \hline
  7. \verb+#080+ & \color{#080}{text} & \verb+#085+ & \color{#085}{text} & \verb+#08A+ & \color{#08A}{text} & \verb+#08F+ & \color{#08F}{text} \\
  8. \verb+#580+ & \color{#580}{text} & \verb+#585+ & \color{#585}{text} & \verb+#58A+ & \color{#58A}{text} & \verb+#58F+ & \color{#58F}{text} \\
  9. \verb+#A80+ & \color{#A80}{text} & \verb+#A85+ & \color{#A85}{text} & \verb+#A8A+ & \color{#A8A}{text} & \verb+#A8F+ & \color{#A8F}{text} \\
  10. \verb+#F80+ & \color{#F80}{text} & \verb+#F85+ & \color{#F85}{text} & \verb+#F8A+ & \color{#F8A}{text} & \verb+#F8F+ & \color{#F8F}{text} \\
  11. \hline
  12. \verb+#0F0+ & \color{#0F0}{text} & \verb+#0F5+ & \color{#0F5}{text} & \verb+#0FA+ & \color{#0FA}{text} & \verb+#0FF+ & \color{#0FF}{text} \\
  13. \verb+#5F0+ & \color{#5F0}{text} & \verb+#5F5+ & \color{#5F5}{text} & \verb+#5FA+ & \color{#5FA}{text} & \verb+#5FF+ & \color{#5FF}{text} \\
  14. \verb+#AF0+ & \color{#AF0}{text} & \verb+#AF5+ & \color{#AF5}{text} & \verb+#AFA+ & \color{#AFA}{text} & \verb+#AFF+ & \color{#AFF}{text} \\
  15. \verb+#FF0+ & \color{#FF0}{text} & \verb+#FF5+ & \color{#FF5}{text} & \verb+#FFA+ & \color{#FFA}{text} & \verb+#FFF+ & \color{#FFF}{text} \\
  16. \hline\end{array}

(5).添加删除线

使用删除线功能必须声明 $$ 符号。

在公式内使用 \require{cancel} 来允许片段删除线的显示。
声明片段删除线后,使用 \cancel{字符}\bcancel{字符}\xcancel{字符}\cancelto{字符} 来实现各种片段删除线效果。

  1. $$
  2. \require{cancel}
  3. \begin{array}{rl}
  4. \verb|y+\cancel{x}| & y+\cancel{x} \\
  5. \verb|\cancel{y+x}| & \cancel{y+x} \\
  6. \verb|y+\bcancel{x}| & y+\bcancel{x} \\
  7. \verb|y+\xcancel{x}| & y+\xcancel{x} \\
  8. \verb|y+\cancelto{0}{x}| & y+\cancelto{0}{x} \\
  9. \verb+\frac{1\cancel9}{\cancel95} = \frac15+& \frac{1\cancel9}{\cancel95} = \frac15 \\
  10. \end{array}
  11. $$

使用 \require{enclose} 来允许整段删除线的显示。
声明整段删除线后,使用 \enclose{删除线效果}{字符} 来实现各种整段删除线效果。
其中,删除线效果有 horizontalstrikeverticalstrikeupdiagonalstrikedowndiagonalstrike,可叠加使用。

  1. $$
  2. \require{enclose}
  3. \begin{array}{rl}
  4. \verb|\enclose{horizontalstrike}{x+y}| & \enclose{horizontalstrike}{x+y} \\
  5. \verb|\enclose{verticalstrike}{\frac xy}| & \enclose{verticalstrike}{\frac xy} \\
  6. \verb|\enclose{updiagonalstrike}{x+y}| & \enclose{updiagonalstrike}{x+y} \\
  7. \verb|\enclose{downdiagonalstrike}{x+y}| & \enclose{downdiagonalstrike}{x+y} \\
  8. \verb|\enclose{horizontalstrike,updiagonalstrike}{x+y}| & \enclose{horizontalstrike,updiagonalstrike}{x+y} \\
  9. \end{array}
  10. $$

此外, \enclose 命令还可以产生包围的边框和圆等,参见 MathML Menclose Documentation 以查看更多效果。

分别使用 circleroundedbox 包围的公式
  1. $$
  2. \require{enclose}
  3. \begin{array}{c}
  4. \enclose{circle}{f(\top),\, f^2(\top),\, f^3(\top) \,\cdots\, f^n(\top)} \\
  5. \enclose{roundedbox}{f(\bot),\, f^2(\bot),\, f^3(\bot) \,\cdots\, f^n(\bot)} \\
  6. \end{array}
  7. $$
使用 box 框住所有公式
  1. $$
  2. \require{enclose}
  3. \enclose{box}{
  4. \begin{array}{c}
  5. f(\top),\, f^2(\top),\, f^3(\top) \,\cdots\, f^n(\top) \\
  6. f(\bot),\, f^2(\bot),\, f^3(\bot) \,\cdots\, f^n(\bot) \\
  7. \end{array}
  8. }
  9. $$
分别使用 circleroundedbox 包围的公式 使用 box 框住所有公式

此例语法可参见如何输入一个数组或表格

二、矩阵使用参考

1.如何输入无框矩阵

在开头使用 \begin{matrix}`,在结尾使用 `\end{matrix},在中间插入矩阵元素,每个元素之间插入 & ,并在每行结尾处使用 \\
使用矩阵时必须声明 $$$ 符号。

  1. $$
  2. \begin{matrix}
  3. 1 & x & x^2 \\
  4. 1 & y & y^2 \\
  5. 1 & z & z^2 \\
  6. \end{matrix}
  7. $$

2.如何输入边框矩阵

在开头将 matrix 替换为 pmatrix bmatrix Bmatrix vmatrix Vmatrix

  1. $ \begin{matrix} 1 & 2 \\ 3 & 4 \\ \end{matrix} $
  2. $ \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ \end{pmatrix} $
  3. $ \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix} $
  4. $ \begin{Bmatrix} 1 & 2 \\ 3 & 4 \\ \end{Bmatrix} $
  5. $ \begin{vmatrix} 1 & 2 \\ 3 & 4 \\ \end{vmatrix} $
  6. $ \begin{Vmatrix} 1 & 2 \\ 3 & 4 \\ \end{Vmatrix} $
matrix pmatrix bmatrix Bmatrix vmatrix Vmatrix

3.如何输入带省略符号的矩阵

使用 \cdots , \ddots , \vdots 来输入省略符号。

  1. $$
  2. \begin{pmatrix}
  3. 1 & a_1 & a_1^2 & \cdots & a_1^n \\
  4. 1 & a_2 & a_2^2 & \cdots & a_2^n \\
  5. \vdots & \vdots & \vdots & \ddots & \vdots \\
  6. 1 & a_m & a_m^2 & \cdots & a_m^n \\
  7. \end{pmatrix}
  8. $$

4.如何输入带分割符号的矩阵

详见数组使用参考

  1. $$
  2. \left[
  3. \begin{array}{cc|c}
  4. 1 & 2 & 3 \\
  5. 4 & 5 & 6 \\
  6. \end{array}
  7. \right]
  8. $$

其中 cc|c 代表在一个三列矩阵中的第二和第三列之间插入分割线。

5.如何输入行中矩阵

若想在一行内显示矩阵,可使用 \bigl(\begin{smallmatrix} 表达式 \end{smallmatrix}\bigr)

  1. 这是一个行中矩阵的示例 $\bigl(\begin{smallmatrix} a & b \\ c & d \end{smallmatrix}\bigr)$

三、方程式序列使用参考

1.如何输入一个方程式序列

人们经常想要一列整齐且居中的方程式序列。使用 \begin{align}…\end{align} 来创造一列方程式,其中在每行结尾处使用 \\ 。使用方程式序列无需声明公式符号 $$$

请注意 {align} 语句是自动编号的,使用 {align*} 声明不自动编号。

  1. \begin{align}
  2. \sqrt{37} & = \sqrt{\frac{73^2-1}{12^2}} \\
  3. & = \sqrt{\frac{73^2}{12^2}\cdot\frac{73^2-1}{73^2}} \\
  4. & = \sqrt{\frac{73^2}{12^2}}\sqrt{\frac{73^2-1}{73^2}} \\
  5. & = \frac{73}{12}\sqrt{1-\frac{1}{73^2}} \\
  6. & \approx \frac{73}{12}\left(1-\frac{1}{2\cdot73^2}\right) \\
  7. \end{align}

本例中每行公式的编号续自“如何插入公式”中的自动编号公式

2.在一个方程式序列的每一行中注明原因

{align} 中后添加 & 符号来自动对齐后面的内容,可灵活组合 \text\tag 语句。\tag 语句编号优先级高于自动编号。

  1. \begin{align}
  2. v + w & = 0 & \text{Given} \tag 1 \\
  3. -w & = -w + 0 & \text{additive identity} \tag 2 \\
  4. -w + 0 & = -w + (v + w) & \text{equations $(1)$ and $(2)$} \\
  5. \end{align}

本例中第一、第二行的自动编号被 \tag 语句覆盖,第三行的编号为自动编号。

@joyphys 如何引用 \tag 标记的公式?
使用 \tag{yourtag} 来标记公式,然后在 \tag 之后加上 \label{yourlabel}

四、条件表达式使用参考

1.如何输入一个条件表达式

使用 \begin{cases}…\end{cases} 来创造一组条件表达式,在每一行条件中插入 & 来指定需要对齐的内容,并在每一行结尾处使用 \\

  1. $$
  2. f(n) =
  3. \begin{cases}
  4. n/2, & \text{if $n$ is even} \\
  5. 3n+1, & \text{if $n$ is odd} \\
  6. \end{cases}
  7. $$

@Sherlockk 用 markdown+math 编辑时 \text 内需用 \(equation\)

2.如何输入一个左侧对齐的条件表达式

若想让文字在左侧对齐显示,则有如下方式:

  1. $$
  2. \left.
  3. \begin{array}{l}
  4. \text{if $n$ is even:} & n/2 \\
  5. \text{if $n$ is odd:} & 3n+1 \\
  6. \end{array}
  7. \right\}
  8. =f(n)
  9. $$

3.如何使条件表达式适配行高

在一些情况下,条件表达式中某些行的行高为非标准高度,此时使用 \\[2ex] 语句代替该行末尾的 \\ 来让编辑器适配。

不适配[2ex]
  1. $$
  2. f(n) =
  3. \begin{cases}
  4. \frac{n}{2}, & \text{if $n$ is even} \\
  5. 3n+1, & \text{if $n$ is odd} \\
  6. \end{cases}
  7. $$
适配[2ex]
  1. $$
  2. f(n) =
  3. \begin{cases}
  4. \frac{n}{2}, & \text{if $n$ is even} \\[2ex]
  5. 3n+1, & \text{if $n$ is odd} \\
  6. \end{cases}
  7. $$
不适配[2ex] 适配[2ex]

一个 [ex] 指一个 "X-Height",即 x 字母高度。可以根据情况指定多个 [ex],如 [3ex][4ex] 等。
其实可以在任意换行处使用 \\[2ex] 语句,只要你觉得合适。

五、数组与表格使用参考

1.如何输入一个数组或表格

通常,一个格式化后的表格比单纯的文字或排版后的文字更具有可读性。
数组和表格均以 \begin{array} 开头,并在其后定义列数及每一列的文本对齐属性,c l r 分别代表居中、左对齐及右对齐。若需要插入垂直分割线,在定义式中插入 | ,若要插入水平分割线,在下一行输入前插入 \hline
与矩阵相似,每行元素间均须要插入 & ,每行元素以 \\ 结尾,最后以 \ end{array} 结束数组。
使用单个数组或表格时无需声明 $$$ 符号。

  1. \begin{array}{c|lcr}
  2. n & \text{左对齐} & \text{居中对齐} & \text{右对齐} \\
  3. \hline
  4. 1 & 0.24 & 1 & 125 \\
  5. 2 & -1 & 189 & -8 \\
  6. 3 & -20 & 2000 & 1+10i \\
  7. \end{array}

2.如何输入一个嵌套的数组或表格

多个数组\表格可 互相嵌套 并组成一组数组或表格。
使用嵌套前必须声明 $$ 符号。

  1. $$
  2. \begin{array}{c} % 总表格
  3. \begin{array}{cc} % 第一行内分成两列
  4. \begin{array}{c|cccc} % 第一列"最小值"数组
  5. \text{min} & 0 & 1 & 2 & 3 \\
  6. \hline
  7. 0 & 0 & 0 & 0 & 0 \\
  8. 1 & 0 & 1 & 1 & 1 \\
  9. 2 & 0 & 1 & 2 & 2 \\
  10. 3 & 0 & 1 & 2 & 3 \\
  11. \end{array}
  12. &
  13. \begin{array}{c|cccc} % 第二列"最大值"数组
  14. \text{max} & 0 & 1 & 2 & 3 \\
  15. \hline
  16. 0 & 0 & 1 & 2 & 3 \\
  17. 1 & 1 & 1 & 2 & 3 \\
  18. 2 & 2 & 2 & 2 & 3 \\
  19. 3 & 3 & 3 & 3 & 3 \\
  20. \end{array}
  21. \end{array} % 第一行表格组结束
  22. \\
  23. \begin{array}{c|cccc} % 第二行 Delta 值数组
  24. \Delta & 0 & 1 & 2 & 3 \\
  25. \hline
  26. 0 & 0 & 1 & 2 & 3 \\
  27. 1 & 1 & 0 & 1 & 2 \\
  28. 2 & 2 & 1 & 0 & 1 \\
  29. 3 & 3 & 2 & 1 & 0 \\
  30. \end{array} % 第二行表格结束
  31. \end{array} % 总表格结束
  32. $$

3.如何输入一个方程组

可以使用 \begin{array} … \end{array}\left\{ … \right. 来创建一个方程组:

  1. $$
  2. \left\{
  3. \begin{array}{c}
  4. a_1x+b_1y+c_1z=d_1 \\
  5. a_2x+b_2y+c_2z=d_2 \\
  6. a_3x+b_3y+c_3z=d_3 \\
  7. \end{array}
  8. \right.
  9. $$

或使用条件表达式组 \begin{cases} … \end{cases} 来实现相同效果:

  1. \begin{cases}
  2. a_1x+b_1y+c_1z=d_1 \\
  3. a_2x+b_2y+c_2z=d_2 \\
  4. a_3x+b_3y+c_3z=d_3 \\
  5. \end{cases}

六、连分数使用参考

1.如何输入一个连分式

就像输入分式时使用 \frac 一样,使用 \cfrac 来创建一个连分数。

  1. $$
  2. x = a_0 + \cfrac{1^2}{a_1 +
  3. \cfrac{2^2}{a_2 +
  4. \cfrac{3^2}{a_3 +
  5. \cfrac{4^4}{a_4 +
  6. \cdots
  7. }
  8. }
  9. }
  10. }
  11. $$

不要使用普通的 \frac\over 来生成连分数,看起来会很奇怪。

  1. $$
  2. x = a_0 + \frac{1^2}{a_1 +
  3. \frac{2^2}{a_2 +
  4. \frac{3^2}{a_3 +
  5. \frac{4^4}{a_4 +
  6. \cdots
  7. }
  8. }
  9. }
  10. }
  11. $$

当然,你可以使用 \frac 来表达连分数的紧缩记法

  1. $$
  2. x = a_0 + \frac{1^2}{a_1 +}
  3. \frac{2^2}{a_2 +}
  4. \frac{3^2}{a_3 +}
  5. \frac{4^4}{a_4 +}
  6. \cdots
  7. $$

连分数通常都太大以至于不易排版,所以建议在连分数前后声明 $$ 符号,或使用像 [a0,a1,a2,a3,…] 一样的紧缩记法。

七、交换图表使用参考

1.如何输入一个交换图表

推荐使用 Cmd Markdown 自带的各种图功能,详见 Cmd Markdown 高阶语法手册

使用一行 \require{AMScd} 语句来允许交换图表的显示。
声明交换图表后,语法与矩阵相似,在开头使用 \begin{CD},在结尾使用 \ end{CD},在中间插入图表元素,每个元素之间插入 & ,并在每行结尾处使用 \\

  1. $$
  2. \require{AMScd}
  3. \begin{CD}
  4. A @>a>> B \\
  5. @V b V V\# @VV c V \\
  6. C @>>d> D \\
  7. \end{CD}
  8. $$

其中,@>>> 代表右箭头、@<<< 代表左箭头、@VVV 代表下箭头、@AAA 代表上箭头、@= 代表水平双实线、@| 代表竖直双实线、@.代表没有箭头。
@>>>>>> 之间任意插入文字即代表该箭头的注释文字。

  1. $$
  2. \require{AMDcd}
  3. \begin{CD}
  4. A @>>> B @>{\text{very long label}}>> C \\
  5. @. @AAA @| \\
  6. D @= E @<<< F \\
  7. \end{CD}
  8. $$

在本例中,very long label 自动延长了它所在箭头以及对应箭头的长度,因而交换图表十分适合进行化学反应式的书写。

  1. $$
  2. \require{AMDcd}
  3. \begin{CD}
  4. \rm{RCOHR^{'}SO_3Na} @>{\large\text{Hydrolysis, $\Delta$, Dil.HCl}}>> \rm{(RCOR^{'})+NaCl+SO_2+ H_2O}
  5. \end{CD}
  6. $$

八、一些特殊的注意事项

!! 本段内容为个人翻译,可能有不准确之处 !!

These are issues that won't affect the correctness of formulas, but might make them look significantly better or worse. Beginners should feel free to ignore this advice; someone else will correct it for them, or more likely nobody will care.

现在指出的小问题并不会影响公式的正确显示,但能让它们看起来明显更好看。初学者可无视这些建议,自然会有强迫症患者替你们改掉它的,或者更可能地,不会有人在意这些细节。

Don't use \frac in exponents or limits of integrals; it looks bad and can be confusing, which is why it is rarely done in professional mathematical typesetting. Write the fraction horizontally, with a slash:

在以 为底的指数函数、极限和积分中尽量不要使用 \frac 符号——它会使整段函数看起来很奇怪并可能产生歧义,因此它在专业数学排版中几乎从不出现。可试着横着写这些分式,中间使用斜线间隔 / (用斜线代替分数线)。

  1. \begin{array}{cc}
  2. \mathrm{Bad} & \mathrm{Better} \\
  3. \hline \\
  4. \large e^{i\frac{\pi}2} \quad e^{\frac{i\pi}2}& \large e^{i\pi/2} \\[2ex]
  5. \int_{-\frac\pi2}^\frac\pi2 \sin x\,dx & \int_{-\pi/2}^{\pi/2}\sin x\,dx \\
  6. \end{array}

The | symbol has the wrong spacing when it is used as a divider, for example in set comprehensions. Use \mid instead:

使用 | 符号作为分隔符时会产生错误的间距,因此在需要分隔时最好使用 \mid 来代替它。

  1. \begin{array}{cc}
  2. \mathrm{Bad} & \mathrm{Better} \\
  3. \hline \\
  4. \{x|x^2\in\Bbb Z\} & \{x\mid x^2\in\Bbb Z\} \\
  5. \end{array}

For double and triple integrals, don't use \int\int or \int\int\int. Instead use the special forms \iint and \iiint:

使用多重积分符号时,不要多次使用 \int 来声明,直接使用 \iint 来表示二重积分或 \iiint 来表示三重积分。
在表示面积分和体积分时下标建议使用 \boldsymbol{S}\boldsymbol{V} 符号;对于多维函数的超体积,可使用 \idotsint,如下面的例子所示。

  1. \begin{array}{cc}
  2. \mathrm{Bad} & \mathrm{Better} \\
  3. \hline \\
  4. \int\int_S f(x)\,dy\,dx & \iint_{\boldsymbol{S}} f(x)\,{\rm d}y\,{\rm d}x \\
  5. \int\int\int_V f(x)\,dz\,dy\,dx & \iiint_{\boldsymbol{V}} f(x)\,{\rm d}z\,{\rm d}y\,{\rm d}x \\[3ex]
  6. \hline \\
  7. \text{多重积分示例} & \idotsint_{\boldsymbol{D}} f(x_1,x_2,\,\cdots\, ,x_n)\,{\rm d}x_1\cdots{\rm d}x_n
  8. \end{array}

Use \,, to insert a thin space before differentials; without this will mash them together:

使用多重积分时,在被积变量后加入 \, (或在微分符号 之前)来插入一个小的间距,否则各种被积变量将会挤成一团。注意比较 的不同。

  1. \begin{array}{cc}
  2. \mathrm{Bad} & \mathrm{Better} \\
  3. \hline \\
  4. \iiint_V f(x){\rm d}z {\rm d}y {\rm d}x & \iiint_{\boldsymbol{V}} f(x)\,{\rm d}z\,{\rm d}y\,{\rm d}x \\
  5. \end{array}

感谢您花费时间阅读这份指导手册,本手册内容可能有疏漏之处,欢迎更改指正。
更多语法请参见:Cmd Markdown 简明语法手册Cmd Markdown 高阶语法手册
祝您记录、阅读、分享愉快!

Drafted & Translated by Eric P.
2015-10-02

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注