@codeep
2022-07-13T06:57:47.000000Z
字数 32098
阅读 405945
源文件下载 / Ver. 2022-07-13 / Ver. 2020-10-03本文固定链接 https://ericp.cn/cmd
由于 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] 以查看该公式的命令详情。
可使用行中公式放在文中与其它文字混编,或单独成行的独立公式。
$ 表达式 $
$$ 表达式 $$
\tag{编号} 语句。\begin{equation}
表达式
\label{eq:当前公式名}
\end{equation}
自动编号后的公式可在全文任意处使用 \eqref{eq:公式名} 语句引用。
$ J_\alpha(x) = \sum_{m=0}^\infty \frac{(-1)^m}{m! \Gamma (m + \alpha + 1)} {\left({ \frac{x}{2} }\right)}^{2m + \alpha} \text {,行内公式示例} $
显示:
例子:
$$ 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} $$
显示:
例子:
$$ 在公式 \eqref{eq:sample} 中,我们看到了这个被自动编号的公式。$$\begin{equation}E=mc^2 \text{,自动编号公式示例}\label{eq:sample}\end{equation}
\begin{equation*}
表达式
\end{equation*}
^ 表示上标,_ 表示下标。如果上下标的内容多于一个字符,需要用 {} 将这些内容括成一个整体。
上下标可以嵌套,也可以同时使用。
$$ x^{y^z}=(1+{\rm e}^x)^{-2xy^w} $$
如果要在左右两边都有上下标,可以使用 \sideset 命令;也可以简单地在符号前面多打一个上下标,此时会以行内公式渲染。
本例内 \quad 均为空格符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \sideset{^1_2}{^3_4}\bigotimes \quad or \quad {^1_2}\bigotimes {^3_4} $$
()、[] 和 | 表示符号本身,使用 \{\} 来表示 {} 。当要显示大号的括号或分隔符时,要用 \left 和 \right 命令。
一些特殊的括号:
| 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|
| \langle | \rangle | ||
| \lceil | \rceil | ||
| \lfloor | \rfloor | ||
| \lbrace | \rbrace | ||
| \lvert | \rvert | ||
| \lVert | \rVert |
@lymd 有时,我们需要在行内使用两个竖杠表示向量间的某种空间距离,可以这样写
\lVert \boldsymbol{X}_i - \boldsymbol{S}_j \rVert^2→
$$ f(x,y,z) = 3y^2z \left( 3+\frac{7x+5}{1+y^2} \right) $$
有时要用 \left. 或 \right. 进行匹配而不显示本身。
$$ \left. \frac{{\rm d}u}{{\rm d}x} \right| _{x=0} $$
通常使用 \frac {分子} {分母} 来生成一个分数,分数可多层嵌套。
若分数只有一层,也可使用 分子 \over 分母 命令。
例内 \quad \mid \, 等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \frac{a-1}{b-1} \quad or \quad {a+1 \over b+1} $$
当分式 仅有两个字符时 可直接输入 \frac ab 来快速生成一个 。
$$ \frac 12,\frac 1a,\frac a2 \quad \mid \quad \text{2 letters only:} \quad \frac 12a \,, k\frac q{r^2} $$
使用 \sqrt [根指数,省略时为2] {被开方数} 命令输入开方。
本例内 \quad 均为空格符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \sqrt{2} \quad or \quad \sqrt[n]{3} $$
数学公式中常见的省略号有两种,\ldots 表示与 文本底线 对齐的省略号,\cdots 表示与 文本中线 对齐的省略号。
$$ f(x_1,x_2,\underbrace{\ldots}_{\rm ldots} ,x_n) = x_1^2 + x_2^2 + \underbrace{\cdots}_{\rm cdots} + x_n^2 $$
使用 \vec{向量} 来自动产生一个向量。也可以使用 \overrightarrow 等命令自定义字母上方的符号。
例内 \quad \mid \, 等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \vec{a} \cdot \vec{b}=0 $$
显示:
例子:
$$ xy \text{ with arrows:} \quad \overleftarrow{xy} \; \mid \; \overleftrightarrow{xy} \; \mid \; \overrightarrow{xy} $$
使用 \int_积分下限^积分上限 {被积表达式} 来输入一个积分。
例子:
$$ \int_0^1 {x^2} \,{\rm d}x $$
显示:
本例中 \, 和 {\rm d} 部分可省略,但加入能使式子更美观,详见在字符间加入空格及如何进行字体转换。
使用 \lim_{变量 \to 表达式} 表达式 来输入一个极限。如有需求,可以更改 \to 符号至任意符号。
例子:
$$ \lim_{n \to \infty} \frac{1}{n(n+1)} \quad and \quad \lim_{x\leftarrow{示例}} \frac{1}{n(n+1)} $$
显示:
使用 \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 均为空格符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \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} $$
输入 \小写希腊字母英文全称 和 \首字母大写希腊字母英文全称 来分别输入小写和大写希腊字母。
对于大写希腊字母与现有字母相同的,直接输入大写字母即可。
| 输入 | 显示 | 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|---|---|---|---|
| \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 |
完整的 可用符号列表可以在 这份文档 中查阅(极长,共 348 页),大部分常用符号可以参阅 这份精简版文档 查询。需要注意的是, 符号并不保证在 MathJax v2.2 中可用,即在 Cmd Markdown 编辑阅读器中可能并不支持所输入的特定命令。
若需要显示更大或更小的字符,在符号前插入
\large或\small命令。
MathJax 针对任意元素均提供从小至大\tiny\Tiny\scriptsize\small*默认值 \normalsize\large\Large\LARGE\huge\Huge共十种渲染大小,详见官方文档。
| 输入 | 显示 | 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|---|---|---|---|
| \pm | \times | \div | \mid | ||||
| \nmid | \cdot | \circ | \ast | ||||
| \odot | \otimes | \oplus | \leq | ||||
| \geq | \neq | \approx | \equiv | ||||
| \sum | \prod | \coprod | \backslash |
| 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|---|---|
| \emptyset | \in | \notin | |||
| \subset | \supset | \subseteq | |||
| \supseteq | \cap | \cup | |||
| \vee | \wedge | \uplus | |||
| \top | \bot | \complement |
| 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|---|---|
| \log | \lg | \ln |
| 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|---|---|
| \backsim | \cong | \angle A | |||
| \sin | \cos | \tan | |||
| \csc | \sec | \cot |
| 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|---|---|
| \int | \iint | \iiint | |||
| \partial | \oint | \prime | |||
| \lim | \infty | \nabla |
| 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|---|---|
| \because | \therefore | \neg | |||
| \forall | \exists | \not\subset | |||
| \not< | \not> | \not= |
@xiaobanni
\vdash显示为
| 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|---|---|
| \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 \; \, 等均为空格或分隔符号,为方便公式格式对比而添加,请注意辨别。详见在字符间加入空格。
$$ \verb+\overset{above}{level}+ \qquad \overset{xx}{ABC} \;\; \mid \quad \overset{x^2}{\longmapsto}\ \, \mid \quad \overset{\bullet\circ\circ\bullet}{T} $$
显示:
例子:
$$ \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 内置的交换图表功能,具体例子可参见下文。
其它可用的文字修饰符可参见官方文档 "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}} |
| 输入 | 显示 | 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|---|---|
| \to | \mapsto | \underrightarrow{1℃/min} | |||
| \implies | \iff | \impliedby |
| 输入 | 显示 | 输入 | 显示 |
|---|---|---|---|
| \uparrow | \Uparrow | ||
| \downarrow | \Downarrow | ||
| \leftarrow | \Leftarrow | ||
| \rightarrow | \Rightarrow | ||
| \leftrightarrow | \Leftrightarrow | ||
| \longleftarrow | \Longleftarrow | ||
| \longrightarrow | \Longrightarrow | ||
| \longleftrightarrow | \Longleftrightarrow |
若要对公式的某一部分字符进行字体转换,可以用 {\字体 {需转换的部分字符}} 命令,其中 \字体 部分可以参照下表选择合适的字体。一般情况下,公式默认为斜体字 。
示例中 全部大写 的字体仅大写可用。
| 输入 | 全字母可用 | 显示 | 输入 | 仅大写可用 | 显示 |
|---|---|---|---|---|---|
| \rm | 罗马体 | \mathcal | 花体(数学符号等) | ||
| \it | 斜体 | \mathbb | 黑板粗体(定义域等) | ||
| \bf | 粗体 | \mit | 数学斜体 | ||
| \sf | 等线体 | \scr | 手写体 | ||
| \tt | 打字机体 | \cal | 等同于 \mathcal |
||
| \frak | 旧德式字体 | \Bbb | 等同于 \mathbb |
@lymd
\boldsymbol{\alpha}用来表示向量或者矩阵的加粗斜体,如向量 。
转换字体十分常用,例如在积分中:
\begin{array}{cc}\mathrm{Bad} & \mathrm{Better} \\\hline \\\int_0^1 x^2 dx & \int_0^1 x^2 \,{\rm d}x\end{array}
注意比较两个式子间 与 的不同。
使用 \operatorname 命令也可以达到相同的效果,详见定义新的运算符。
使用 \bbox[底色, (可选)边距, (可选)边框 border: 框宽度 框类型 框颜色] 命令来高亮一行公式。
底色和框颜色支持详见“更改文字颜色”,边距及框宽度支持 绝对像素 px 或 相对大小 em,框类型支持 实线 solid 或 虚线 dashed。
$$\bbox[yellow]{e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)}$$
$$\bbox[#9ff, 5px]{ % 此处向外添加 5 像素的边距e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)}$$
$$% 此处使用 0.5 倍行高作为边距,附加 2 像素的实线边框(Ctrl+Alt+Y 可见)\bbox[#2f3542, 0.5em, border:2px solid #f1f2f6]{\color{#f1f2f6}{e^x=\lim_{n\to\infty} \left( 1+\frac{x}{n} \right)^n \qquad (1)}}$$
在 \left 和 \right 之后加上要使用的括号来创建自动匹配高度的圆括号 ( ),方括号 [ ] 和花括号 \{ \}。
在每个公式末尾前使用 \tag {行标} 来实现行标。
$$f\left(\left[\frac{1+\left\{x,y\right\}}{\left(\frac xy + \frac yx\right)(u+1)}+a\right]^{3/2}\right)\tag {行标}$$
如果你需要在不同的行显示对应括号,可以在每一行对应处使用 \left. 或 \right. 来放一个“不存在的括号”。
$$\begin{align*}a=&\left(1+2+3+ \cdots \right. \\&\cdots+\left. \infty-2+\infty-1+\infty\right)\end{align*}$$
如果你需要将大括号里面显示的分隔符也变大,可以使用 \middle 命令,此处分别使用单竖线 | 和双竖线 \| 。
$$\left\langleq \; \middle|\frac{\frac xy}{\frac uv}\middle\| p\right\rangle$$
当需要使用的运算符不在 MathJax 的内置库中时,程序可能会报错或产生错误的渲染结果。此时可以使用 \operatorname 命令定义一个新的运算符号。
\begin{array}{c|c}\mathrm{Error} & \text{Wrong rendering} \\\hline \\\arsinh(x) & arsinh(x) \\\Res_{z=1} & Res_{z=1}{\frac{1}{z^2-z}=1} \\\end{array}
使用 \operatorname{运算符}{式子} 来生成一个普通运算,或使用 \operatorname*{运算符}_{下标}^{上标}{式子} 来生成一个含上下标的自定义运算。
\begin{array}{c|c}\text{Normal Operator} & \text{Operator with label above and below} \\\hline \\\scriptsize\text{\operatorname{arsinh}{x}} & \scriptsize\text{\operatorname*{Res}_{z=1}{\frac{1}{z^2-z}=1}} \\\operatorname{arsinh}{x} & \operatorname*{Res}_{z=1}{\frac{1}{z^2-z}=1} \\\end{array}
在 \text {文字} 中仍可以使用 $公式$ 插入其它公式。
$$ f(n)= \begin{cases} n/2, & \text {if $n$ is even} \\ 3n+1, & \text{if $n$ is odd} \end{cases} $$
有四种宽度的空格可以使用: \,、\;、\quad 和 \qquad,灵活使用 \text{n个空格} 也可以在任意位置实现空格。
同时存在一种负空格 \! 用来减小字符间距,一般在物理单位中使用。
重复使用 \! 命令能够实现不同元素的叠加渲染,如 和
\begin{array}{c|c}\text{Spaces} & \text{Negative Space in Units} \\\hline \\\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 \\\end{array}
一些常见的公式单位可表达如下:
$$ \mu_0=4\pi\times10^{-7} \ \left.\mathrm{\mathrm{T}\!\cdot\!\mathrm{m}}\middle/\mathrm{A}\right. $$$$ 180^\circ=\pi \ \mathrm{rad} $$$$ \mathrm{N_A} = 6.022\times10^{23} \ \mathrm{mol}^{-1} $$
使用 \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 或 #rrggbb 的 r g b 可输入 0-9 和 a-f 来表示红色、绿色和蓝色的纯度(饱和度)。
\begin{array}{|rrrrrrrr|}\hline\verb+#000+ & \color{#000}{text} & & &\verb+#00F+ & \color{#00F}{text} & & \\& & \verb+#0F0+ & \color{#0F0}{text} && & \verb+#0FF+ & \color{#0FF}{text} \\\verb+#F00+ & \color{#F00}{text} & & &\verb+#F0F+ & \color{#F0F}{text} & & \\& & \verb+#FF0+ & \color{#FF0}{text} && & \verb+#FFF+ & \color{#FFF}{text} \\\hline\end{array}
显示:
例子:
\begin{array}{|rrrrrrrr|}\hline\verb+#000+ & \color{#000}{text} & \verb+#005+ & \color{#005}{text} & \verb+#00A+ & \color{#00A}{text} & \verb+#00F+ & \color{#00F}{text} \\\verb+#500+ & \color{#500}{text} & \verb+#505+ & \color{#505}{text} & \verb+#50A+ & \color{#50A}{text} & \verb+#50F+ & \color{#50F}{text} \\\verb+#A00+ & \color{#A00}{text} & \verb+#A05+ & \color{#A05}{text} & \verb+#A0A+ & \color{#A0A}{text} & \verb+#A0F+ & \color{#A0F}{text} \\\verb+#F00+ & \color{#F00}{text} & \verb+#F05+ & \color{#F05}{text} & \verb+#F0A+ & \color{#F0A}{text} & \verb+#F0F+ & \color{#F0F}{text} \\\hline\verb+#080+ & \color{#080}{text} & \verb+#085+ & \color{#085}{text} & \verb+#08A+ & \color{#08A}{text} & \verb+#08F+ & \color{#08F}{text} \\\verb+#580+ & \color{#580}{text} & \verb+#585+ & \color{#585}{text} & \verb+#58A+ & \color{#58A}{text} & \verb+#58F+ & \color{#58F}{text} \\\verb+#A80+ & \color{#A80}{text} & \verb+#A85+ & \color{#A85}{text} & \verb+#A8A+ & \color{#A8A}{text} & \verb+#A8F+ & \color{#A8F}{text} \\\verb+#F80+ & \color{#F80}{text} & \verb+#F85+ & \color{#F85}{text} & \verb+#F8A+ & \color{#F8A}{text} & \verb+#F8F+ & \color{#F8F}{text} \\\hline\verb+#0F0+ & \color{#0F0}{text} & \verb+#0F5+ & \color{#0F5}{text} & \verb+#0FA+ & \color{#0FA}{text} & \verb+#0FF+ & \color{#0FF}{text} \\\verb+#5F0+ & \color{#5F0}{text} & \verb+#5F5+ & \color{#5F5}{text} & \verb+#5FA+ & \color{#5FA}{text} & \verb+#5FF+ & \color{#5FF}{text} \\\verb+#AF0+ & \color{#AF0}{text} & \verb+#AF5+ & \color{#AF5}{text} & \verb+#AFA+ & \color{#AFA}{text} & \verb+#AFF+ & \color{#AFF}{text} \\\verb+#FF0+ & \color{#FF0}{text} & \verb+#FF5+ & \color{#FF5}{text} & \verb+#FFA+ & \color{#FFA}{text} & \verb+#FFF+ & \color{#FFF}{text} \\\hline\end{array}
使用删除线功能必须声明 $$ 符号。
在公式内使用 \require{cancel} 来允许片段删除线的显示。
声明片段删除线后,使用 \cancel{字符}、\bcancel{字符}、\xcancel{字符} 和 \cancelto{字符} 来实现各种片段删除线效果。
$$\require{cancel}\begin{array}{rl}\verb|y+\cancel{x}| & y+\cancel{x} \\\verb|\cancel{y+x}| & \cancel{y+x} \\\verb|y+\bcancel{x}| & y+\bcancel{x} \\\verb|y+\xcancel{x}| & y+\xcancel{x} \\\verb|y+\cancelto{0}{x}| & y+\cancelto{0}{x} \\\verb+\frac{1\cancel9}{\cancel95} = \frac15+& \frac{1\cancel9}{\cancel95} = \frac15 \\\end{array}$$
使用 \require{enclose} 来允许整段删除线的显示。
声明整段删除线后,使用 \enclose{删除线效果}{字符} 来实现各种整段删除线效果。
其中,删除线效果有 horizontalstrike、verticalstrike、updiagonalstrike 和 downdiagonalstrike,可叠加使用。
$$\require{enclose}\begin{array}{rl}\verb|\enclose{horizontalstrike}{x+y}| & \enclose{horizontalstrike}{x+y} \\\verb|\enclose{verticalstrike}{\frac xy}| & \enclose{verticalstrike}{\frac xy} \\\verb|\enclose{updiagonalstrike}{x+y}| & \enclose{updiagonalstrike}{x+y} \\\verb|\enclose{downdiagonalstrike}{x+y}| & \enclose{downdiagonalstrike}{x+y} \\\verb|\enclose{horizontalstrike,updiagonalstrike}{x+y}| & \enclose{horizontalstrike,updiagonalstrike}{x+y} \\\end{array}$$
此外, \enclose 命令还可以产生包围的边框和圆等,参见 MathML Menclose Documentation 以查看更多效果。
分别使用 circle 和 roundedbox 包围的公式 |
|---|
$$\require{enclose}\begin{array}{c}\enclose{circle}{f(\top),\, f^2(\top),\, f^3(\top) \,\cdots\, f^n(\top)} \\\enclose{roundedbox}{f(\bot),\, f^2(\bot),\, f^3(\bot) \,\cdots\, f^n(\bot)} \\\end{array}$$
使用 box 框住所有公式 |
|---|
$$\require{enclose}\enclose{box}{\begin{array}{c}f(\top),\, f^2(\top),\, f^3(\top) \,\cdots\, f^n(\top) \\f(\bot),\, f^2(\bot),\, f^3(\bot) \,\cdots\, f^n(\bot) \\\end{array}}$$
分别使用 circle 和 roundedbox 包围的公式 |
使用 box 框住所有公式 |
|---|---|
此例语法可参见如何输入一个数组或表格。
在开头使用 \begin{matrix}`,在结尾使用 `\end{matrix},在中间插入矩阵元素,每个元素之间插入 & ,并在每行结尾处使用 \\ 。
使用矩阵时必须声明 $ 或 $$ 符号。
$$\begin{matrix}1 & x & x^2 \\1 & y & y^2 \\1 & z & z^2 \\\end{matrix}$$
在开头将 matrix 替换为 pmatrix bmatrix Bmatrix vmatrix Vmatrix 。
$ \begin{matrix} 1 & 2 \\ 3 & 4 \\ \end{matrix} $$ \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ \end{pmatrix} $$ \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix} $$ \begin{Bmatrix} 1 & 2 \\ 3 & 4 \\ \end{Bmatrix} $$ \begin{vmatrix} 1 & 2 \\ 3 & 4 \\ \end{vmatrix} $$ \begin{Vmatrix} 1 & 2 \\ 3 & 4 \\ \end{Vmatrix} $
| matrix | pmatrix | bmatrix | Bmatrix | vmatrix | Vmatrix |
|---|---|---|---|---|---|
使用 \cdots , \ddots , \vdots 来输入省略符号。
$$\begin{pmatrix}1 & a_1 & a_1^2 & \cdots & a_1^n \\1 & a_2 & a_2^2 & \cdots & a_2^n \\\vdots & \vdots & \vdots & \ddots & \vdots \\1 & a_m & a_m^2 & \cdots & a_m^n \\\end{pmatrix}$$
详见数组使用参考。
$$\left[\begin{array}{cc|c}1 & 2 & 3 \\4 & 5 & 6 \\\end{array}\right]$$
其中 cc|c 代表在一个三列矩阵中的第二和第三列之间插入分割线。
若想在一行内显示矩阵,可使用 \bigl(\begin{smallmatrix} 表达式 \end{smallmatrix}\bigr)
这是一个行中矩阵的示例 $\bigl(\begin{smallmatrix} a & b \\ c & d \end{smallmatrix}\bigr)$
人们经常想要一列整齐且居中的方程式序列。使用 \begin{align}…\end{align} 来创造一列方程式,其中在每行结尾处使用 \\ 。使用方程式序列无需声明公式符号 $ 或 $$ 。
请注意 {align} 语句是自动编号的,使用 {align*} 声明不自动编号。
\begin{align}\sqrt{37} & = \sqrt{\frac{73^2-1}{12^2}} \\& = \sqrt{\frac{73^2}{12^2}\cdot\frac{73^2-1}{73^2}} \\& = \sqrt{\frac{73^2}{12^2}}\sqrt{\frac{73^2-1}{73^2}} \\& = \frac{73}{12}\sqrt{1-\frac{1}{73^2}} \\& \approx \frac{73}{12}\left(1-\frac{1}{2\cdot73^2}\right) \\\end{align}
本例中每行公式的编号续自“如何插入公式”中的自动编号公式 。
在 {align} 中后添加 & 符号来自动对齐后面的内容,可灵活组合 \text 和 \tag 语句。\tag 语句编号优先级高于自动编号。
\begin{align}v + w & = 0 & \text{Given} \tag 1 \\-w & = -w + 0 & \text{additive identity} \tag 2 \\-w + 0 & = -w + (v + w) & \text{equations $(1)$ and $(2)$} \\\end{align}
本例中第一、第二行的自动编号被 \tag 语句覆盖,第三行的编号为自动编号。
@joyphys 如何引用
\tag标记的公式?
使用\tag{yourtag}来标记公式,然后在\tag之后加上\label{yourlabel}
使用 \begin{cases}…\end{cases} 来创造一组条件表达式,在每一行条件中插入 & 来指定需要对齐的内容,并在每一行结尾处使用 \\。
$$f(n) =\begin{cases}n/2, & \text{if $n$ is even} \\3n+1, & \text{if $n$ is odd} \\\end{cases}$$
@Sherlockk 用 markdown+math 编辑时
\text内需用\(equation\)
若想让文字在左侧对齐显示,则有如下方式:
$$\left.\begin{array}{l}\text{if $n$ is even:} & n/2 \\\text{if $n$ is odd:} & 3n+1 \\\end{array}\right\}=f(n)$$
在一些情况下,条件表达式中某些行的行高为非标准高度,此时使用 \\[2ex] 语句代替该行末尾的 \\ 来让编辑器适配。
| 不适配[2ex] |
|---|
$$f(n) =\begin{cases}\frac{n}{2}, & \text{if $n$ is even} \\3n+1, & \text{if $n$ is odd} \\\end{cases}$$
| 适配[2ex] |
|---|
$$f(n) =\begin{cases}\frac{n}{2}, & \text{if $n$ is even} \\[2ex]3n+1, & \text{if $n$ is odd} \\\end{cases}$$
| 不适配[2ex] | 适配[2ex] |
|---|---|
一个 [ex] 指一个 "X-Height",即 x 字母高度。可以根据情况指定多个 [ex],如 [3ex]、[4ex] 等。
其实可以在任意换行处使用 \\[2ex] 语句,只要你觉得合适。
通常,一个格式化后的表格比单纯的文字或排版后的文字更具有可读性。
数组和表格均以 \begin{array} 开头,并在其后定义列数及每一列的文本对齐属性,c l r 分别代表居中、左对齐及右对齐。若需要插入垂直分割线,在定义式中插入 | ,若要插入水平分割线,在下一行输入前插入 \hline 。
与矩阵相似,每行元素间均须要插入 & ,每行元素以 \\ 结尾,最后以 \ end{array} 结束数组。
使用单个数组或表格时无需声明 $ 或 $$ 符号。
\begin{array}{c|lcr}n & \text{左对齐} & \text{居中对齐} & \text{右对齐} \\\hline1 & 0.24 & 1 & 125 \\2 & -1 & 189 & -8 \\3 & -20 & 2000 & 1+10i \\\end{array}
多个数组\表格可 互相嵌套 并组成一组数组或表格。
使用嵌套前必须声明 $$ 符号。
$$\begin{array}{c} % 总表格\begin{array}{cc} % 第一行内分成两列\begin{array}{c|cccc} % 第一列"最小值"数组\text{min} & 0 & 1 & 2 & 3 \\\hline0 & 0 & 0 & 0 & 0 \\1 & 0 & 1 & 1 & 1 \\2 & 0 & 1 & 2 & 2 \\3 & 0 & 1 & 2 & 3 \\\end{array}&\begin{array}{c|cccc} % 第二列"最大值"数组\text{max} & 0 & 1 & 2 & 3 \\\hline0 & 0 & 1 & 2 & 3 \\1 & 1 & 1 & 2 & 3 \\2 & 2 & 2 & 2 & 3 \\3 & 3 & 3 & 3 & 3 \\\end{array}\end{array} % 第一行表格组结束\\\begin{array}{c|cccc} % 第二行 Delta 值数组\Delta & 0 & 1 & 2 & 3 \\\hline0 & 0 & 1 & 2 & 3 \\1 & 1 & 0 & 1 & 2 \\2 & 2 & 1 & 0 & 1 \\3 & 3 & 2 & 1 & 0 \\\end{array} % 第二行表格结束\end{array} % 总表格结束$$
可以使用 \begin{array} … \end{array} 和 \left\{ … \right. 来创建一个方程组:
$$\left\{\begin{array}{c}a_1x+b_1y+c_1z=d_1 \\a_2x+b_2y+c_2z=d_2 \\a_3x+b_3y+c_3z=d_3 \\\end{array}\right.$$
或使用条件表达式组 \begin{cases} … \end{cases} 来实现相同效果:
\begin{cases}a_1x+b_1y+c_1z=d_1 \\a_2x+b_2y+c_2z=d_2 \\a_3x+b_3y+c_3z=d_3 \\\end{cases}
就像输入分式时使用 \frac 一样,使用 \cfrac 来创建一个连分数。
$$x = a_0 + \cfrac{1^2}{a_1 +\cfrac{2^2}{a_2 +\cfrac{3^2}{a_3 +\cfrac{4^4}{a_4 +\cdots}}}}$$
不要使用普通的 \frac 或 \over 来生成连分数,看起来会很奇怪。
$$x = a_0 + \frac{1^2}{a_1 +\frac{2^2}{a_2 +\frac{3^2}{a_3 +\frac{4^4}{a_4 +\cdots}}}}$$
当然,你可以使用 \frac 来表达连分数的紧缩记法。
$$x = a_0 + \frac{1^2}{a_1 +}\frac{2^2}{a_2 +}\frac{3^2}{a_3 +}\frac{4^4}{a_4 +}\cdots$$
连分数通常都太大以至于不易排版,所以建议在连分数前后声明 $$ 符号,或使用像 [a0,a1,a2,a3,…] 一样的紧缩记法。
推荐使用 Cmd Markdown 自带的各种图功能,详见 Cmd Markdown 高阶语法手册。
使用一行 \require{AMScd} 语句来允许交换图表的显示。
声明交换图表后,语法与矩阵相似,在开头使用 \begin{CD},在结尾使用 \ end{CD},在中间插入图表元素,每个元素之间插入 & ,并在每行结尾处使用 \\。
$$\require{AMScd}\begin{CD}A @>a>> B \\@V b V V\# @VV c V \\C @>>d> D \\\end{CD}$$
其中,@>>> 代表右箭头、@<<< 代表左箭头、@VVV 代表下箭头、@AAA 代表上箭头、@= 代表水平双实线、@| 代表竖直双实线、@.代表没有箭头。
在 @>>> 的 >>> 之间任意插入文字即代表该箭头的注释文字。
$$\require{AMDcd}\begin{CD}A @>>> B @>{\text{very long label}}>> C \\@. @AAA @| \\D @= E @<<< F \\\end{CD}$$
在本例中,very long label 自动延长了它所在箭头以及对应箭头的长度,因而交换图表十分适合进行化学反应式的书写。
$$\require{AMDcd}\begin{CD}\rm{RCOHR^{'}SO_3Na} @>{\large\text{Hydrolysis, $\Delta$, Dil.HCl}}>> \rm{(RCOR^{'})+NaCl+SO_2+ H_2O}\end{CD}$$
| !! 本段内容为个人翻译,可能有不准确之处 !! |
|---|
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 符号——它会使整段函数看起来很奇怪并可能产生歧义,因此它在专业数学排版中几乎从不出现。可试着横着写这些分式,中间使用斜线间隔 / (用斜线代替分数线)。
\begin{array}{cc}\mathrm{Bad} & \mathrm{Better} \\\hline \\\large e^{i\frac{\pi}2} \quad e^{\frac{i\pi}2}& \large e^{i\pi/2} \\[2ex]\int_{-\frac\pi2}^\frac\pi2 \sin x\,dx & \int_{-\pi/2}^{\pi/2}\sin x\,dx \\\end{array}
The | symbol has the wrong spacing when it is used as a divider, for example in set comprehensions. Use \mid instead:
使用 | 符号作为分隔符时会产生错误的间距,因此在需要分隔时最好使用 \mid 来代替它。
\begin{array}{cc}\mathrm{Bad} & \mathrm{Better} \\\hline \\\{x|x^2\in\Bbb Z\} & \{x\mid x^2\in\Bbb Z\} \\\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,如下面的例子所示。
\begin{array}{cc}\mathrm{Bad} & \mathrm{Better} \\\hline \\\int\int_S f(x)\,dy\,dx & \iint_{\boldsymbol{S}} f(x)\,{\rm d}y\,{\rm d}x \\\int\int\int_V f(x)\,dz\,dy\,dx & \iiint_{\boldsymbol{V}} f(x)\,{\rm d}z\,{\rm d}y\,{\rm d}x \\[3ex]\hline \\\text{多重积分示例} & \idotsint_{\boldsymbol{D}} f(x_1,x_2,\,\cdots\, ,x_n)\,{\rm d}x_1\cdots{\rm d}x_n\end{array}
Use \,, to insert a thin space before differentials; without this will mash them together:
使用多重积分时,在被积变量后加入 \, (或在微分符号 之前)来插入一个小的间距,否则各种被积变量将会挤成一团。注意比较 的不同。
\begin{array}{cc}\mathrm{Bad} & \mathrm{Better} \\\hline \\\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 \\\end{array}
感谢您花费时间阅读这份指导手册,本手册内容可能有疏漏之处,欢迎更改指正。
更多语法请参见:Cmd Markdown 简明语法手册,Cmd Markdown 高阶语法手册。
祝您记录、阅读、分享愉快!
Drafted & Translated by Eric P.
2015-10-02