User:SomeyaMako/Re:从零开始的MathJax教程
在这个春光融融的四月份,由于某些众所周知的原因,无数的学生被囚禁在了家中,SomeyaMako便是其中的一员。
嘛,反正闲着也是闲着,与其每天在家中颓废(还时不时抽出时间来打日麻),还不如尽自己之能为萌百的大厦添砖加瓦,或者编写出一个(和你现在所浏览的页面一样的)搬砖指南。
2020年4月18日是一个历史性的日子。也许是用Template:ruby标注的方程式实在是有些欠缺,也许是应广大群众的呼声,在这一天,萌娘百科安装了MathJax插件;于是SomeyaMako定下了计划,要在萌百开一个MathJax教程的坑。由于SomeyaMako现在高二,时间并不充裕,到高三时接触网络的机会可能少之又少,因此这个页面可能会有一大段更新的空白期(长一年有余)。
或许这个坑需要很长时间来填完,或许这个页面不会有人来看,但是SomeyaMako相信,不论遇到多少坎坷,不论萌百的前路如何,SomeyaMako都会始终坚持在这里。
那么就让我们开始吧。
更新履历
版本0.0.1.200419
编写导语、序言以及建立教程框架
--
SomeyaMako(
版本0.1.0.200419
- 增加基础篇
- 更新化学篇-同位素及以前的内容
--
SomeyaMako(
版本1.0.0.200419
- 将化学篇更新完毕
- 修复了一些不为人知的bug
- 新增了未知的
bugfeature - 更改了更新履历一节中的签名格式
--2020年4月19日 (日) 22:49 (CST)
版本1.1.0.200420
- 更新数学篇至括号一节之前
- 修复了一些不为人知的bug
- 新增了未知的
bugfeature
--2020年4月20日 (一) 22:47 (CST)
序言
本教程将主要以数学公式与化学方程式的Mathjax实现为主。
在电脑端,对于一个以MathJax方式录入的公式,在公式上点击右键可以进行查看源代码、调节大小等操作,这对于不知道公式如何输入的编辑来说是一大福音。
基础篇
若要使用Template:MathJax进行公式输入,请参考以下代码(代码引用自Template:MathJax):
{{MathJax|<nowiki>(你要写的内容行,用“$”或“$$”包裹公式)</nowiki>}}
其中$
会将输入的公式直接插入到文字中,称为行内(inline)公式,而$$
会让公式单独成段,称为行间(displayed)公式。
我们仍以Template:MathJax中提供的样例作参考:
{{MathJax|<nowiki>When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$</nowiki>}}
显示效果如下:
化学篇
关于mhchem宏包
LaTeX中的mhchem
宏包主要被用于输入化学式与化学方程式。虽然化学式与化学方程式也可以直接在LaTeX中用\text
等多个命令配合使用书写,但由于其十分冗长、其代码可读性差等原因通常不被采用,而mhchem
便应运而生了。mhchem
宏包提供了对于化学式与化学方程式的一种快速、准确并且显示效果优秀的输入方式,其代码便捷、易读从而易于维护现已被(相对)广泛地采用。
mhchem
的最新版本为于2018年6月发布的mhchem v4.08
,MathJax上支持的最新版本为v3.3
[1]。
使用mhchem
宏包时,请在代码两端添加\ce{
与}
。另一种可用的方法为调用Template:Chem,其可以在一定程度上省去冗杂代码的麻烦,在此不加赘述。
下文的示例仍以Template:MathJax为例,给出的代码中省略{{MathJax|$$}}
,只保留关键部分。
化学式
本节主要讲如何输入化学式。
原子、分子等
以通常形式输入即可。如果有输入括号的需求,请参考下文。
- 碳原子:$\ce{C}$
\ce{C}
- 氢气:$\ce{H2}$
\ce{H2}
- 硫酸:$\ce{H2SO4}$
\ce{H2SO4}
带电离子与原子团等
电荷量以及电性的输入方式和输入数学公式时上标的输入形式相同,为^{电荷量及电性}
,不过由于宏包的特性,{}
通常可以省略。
对于单个正电荷或负电荷,在不引起冲突时可以直接输入单个+
或-
。
如果有输入括号的需求,请参考下文。
- 氢离子:$\ce{H+}$
\ce{H+}
\ce{H^+}
等 - 铬酸根离子:$\ce{CrO4^2-}$
\ce{CrO4^2-}
或\ce{CrO4^{2-}}
- 铬酸根离子的错误示范1:$\ce{CrO4 2-}$
\ce{CrO4 2-}
- 铬酸根离子的错误示范2:$\ce{CrO42-}$
\ce{CrO42-}
- 碳酸氢根离子:$\ce{HCO3^-}$
\ce{HCO3^-}
或\ce{HCO3-}
- 氧离子:$\ce{O^2-}$
\ce{O^2-}
- 过氧根离子:$\ce{O2^2-}$
\ce{O2^2-}
- 超氧根离子:$\ce{O2-}$
\ce{O2^-}
或\ce{O2-}
水合物、复盐等
表示水合物等需要加点的化合物时,可以使用*
或.
,但在同一篇条目中应统一格式。
- 五水合硫酸铜:$\ce{CuSO4*5H2O}$
\ce{CuSO4*5H2O}
或\ce{CuSO4.5H2O}
- 氯化镁钾:$\ce{KCl.MgCl2}$
\ce{KCl*MgCl2}
或\ce{KCl.MgCl2}
- 水合亚铁离子:$\ce{Fe^2+.6H2O}$
\ce{Fe^2+*6H2O}
或\ce{Fe^2+.6H2O}
氧化态
请参考下方的示例。
- 四氧化三铁:$\ce{Fe^{II}Fe^{III}2O4}$
\ce{Fe^{II}Fe^{III}2O4}
同位素
表示一种元素的同位素时:
- 质量数,使用
^{}
- 质子数/核电荷数,使用
_{}
因存在版本问题,上下标无法对齐。请参考下方的示例。
- 氢/氕:$\ce{^1_1H}$
\ce{^1_1H}
或\ce{^{1}_{1}H}
- 重氢/氘:$\ce{^2_1H}$
\ce{^2_1H}
或\ce{^{2}_{1}H}
- 超重氢/氚:$\ce{^3_1H}$
\ce{^3_1H}
或\ce{^{3}_{1}H}
- 电子:$\ce{^0_-1e}$
\ce{^0_-1e}
或\ce{^{0}_{-1}e}
化学键
如果要表示(结构相对简单的物质中的)化学键,请参考下方的示例。
- 1-丁烯-3-炔:$\ce{H2C=CH-C#CH}$
\ce{H2C=CH-C#CH}
- 1-丁烯-3-炔:$\ce{H2C\bond{=}CH\bond{-}C\bond{#}CH}$
\ce{H2C\bond{=}CH\bond{-}C\bond{#}CH}
- 1-丁烯-3-炔:$\ce{H2C\bond{2}CH\bond{1}C\bond{3}CH}$
\ce{H2C\bond{2}CH\bond{1}C\bond{3}CH}
其他化学键的表示:
- $\ce{A\bond{~}B\bond{~-}C}$
\ce{A\bond{~}B\bond{~-}C}
- $\ce{A\bond{~--}B\bond{~=}C\bond{-~-}D}$
\ce{A\bond{~--}B\bond{~=}C\bond{-~-}D}
- $\ce{A\bond{...}B\bond{....}C}$
\ce{A\bond{...}B\bond{....}C}
- $\ce{A\bond{->}B\bond{<-}C}$
\ce{A\bond{->}B\bond{<-}C}
关于括号
(
与)
、[
与]
的使用与书写无异。
- 硫化铵:$\ce{(NH4)2S}$
\ce{(NH4)2S}
- 铁氰化铁:$\ce{Fe[Fe(CN)6]}$
\ce{Fe[Fe(CN)6]}
若要插入{
与}
,请使用\{
与\}
。
- $\ce{[\{(X2)3\}2]^3+}$
\ce{[\{(X2)3\}2]^3+}
非数字的化学计量数、电荷数等
可以直接将其如同数字下标一般处理;作下标时不能省略_
,其他同理。请参考下方的示例。
- 氮氧化物:$\ce{NO_x}$
\ce{NO_x}
- $\ce{Fe^n+}$
\ce{Fe^n+}
或\ce{Fe^{n+}}
- 铁锈:$\ce{Fe2O3.xH2O}$
\ce{Fe2O3.xH2O}
关于有机物的结构式
由于MathJax支持的功能实在是有限,不能如同真正的LaTeX一般支持许多宏包,复杂有机物的结构式也好、键线式也好,都无法直接渲染。
若有此方面需求,一个可行且可靠的方法为下载一个LaTeX编辑器,利用chemfig
宏包实现,将截图或原始图片上传至图床后引用。
化学方程式
本节主要讲如何输入化学方程式。
化学计量数
直接在前面加上化学计量数即可。
- $\ce{2(NH4)2S}$
\ce{2(NH4)2S}
- $\ce{2 (NH4)2S}$
\ce{2 (NH4)2S}
- $\ce{0.5(NH4)2S}$
\ce{0.5(NH4)2S}
- $\ce{1/2(NH4)2S}$
\ce{1/2(NH4)2S}
- $\ce{(1/2)(NH4)2S}$
\ce{(1/2)(NH4)2S}
若要以斜体输入非数字计量数,请在需要斜体的计量数前后添加$
。
- $\ce{x(NH4)2S}$
\ce{x(NH4)2S}
- $\ce{$x$(NH4)2S}$
\ce{$x$(NH4)2S}
注意,如果计量数后方的物质有前置上下标,请加上{}以分隔。
- 2个钚原子核的正确示范:$\ce{2{}^{239}_{94}Pu}$
\ce{2{}^{239}_{94}Pu}
- 2个钚原子核的错误示范:$\ce{2^{239}_{94}Pu}$
\ce{2^{239}_{94}Pu}
- 2个钚原子核的错误示范(空格过长):$\ce{2 ^{239}_{94}Pu}$
\ce{2 ^{239}_{94}Pu}
物质状态及其他属性
直接在后方加入括号即可。
- 液氮:$\ce{N2(l)}$
\ce{N2(l)}
- 氢氧化钠溶液:$\ce{NaOH(aq)}$
\ce{NaOH(aq)}
- 浓硫酸:$\ce{H2SO4(浓)}$
\ce{H2SO4(浓)}
反应条件及箭头(等号)
不同形式的箭头的写法如下。
效果 | 代码 |
---|---|
$\ce{A -> B}$
|
\ce{A -> B}
|
$\ce{A <- B}$
|
\ce{A <- B}
|
$\ce{A <-> B}$
|
\ce{A <-> B}
|
$\ce{A <--> B}$
|
\ce{A <--> B}
|
$\ce{A <=> B}$
|
\ce{A <=> B}
|
$\ce{A <=>> B}$
|
\ce{A <=>> B}
|
$\ce{A <<=> B}$
|
\ce{A <<=> B}
|
对于反应条件,请在箭头后方加上[反应条件1][反应条件2]
(两个条件的中括号之间无空格)。请参考下方的示例。
- $\ce{A ->[H2SO4(浓)] B}$
\ce{A <=>[H2SO4(浓)] B}
- $\ce{A ->[][\triangle] B}$
\ce{A <=>[][\triangle] B}
- $\ce{A ->[H2SO4(浓)][\triangle] B}$
\ce{A <=>[H2SO4(浓)][\triangle] B}
若要以文字格式渲染反应条件,请在中括号内反应条件外添加{
与}
。请参考下方的示例。
- $\ce{A ->[{H2SO4(浓)}][{\triangle}] B}$
\ce{A <=>[{H2SO4(浓)}][{\triangle}] B}
气体与沉淀符号
插入气体请使用^
,插入沉淀请使用v
。请参考下方的示例。
- $\ce{SO4^2- + Ba^2+ -> BaSO4 v}$
\ce{SO4^2- + Ba^2+ -> BaSO4 v}
- $\ce{2H2O ->[通电] 2H2 ^ + O2 ^}$
\ce{2H2O ->[通电] 2H2 ^ + O2 ^
杂项
若要插入希腊字母,请使用以下的格式。值得一提的是,如果某个大写希腊字母和某个大写英文字母字形一致,LaTeX里是没有前者对应的命令的。
希腊字母 | ||||
---|---|---|---|---|
名称 | 大写 | $\TeX$ |
小写 | $\TeX$
|
alpha | $A$ |
A | $\alpha$ |
\alpha |
beta | $B$ |
B | $\beta$ |
\beta |
gamma | $\Gamma$ |
\Gamma | $\gamma$ |
\gamma |
delta | $\Delta$ |
\Delta | $\delta$ |
\delta |
epsilon | $E$ |
E | $\epsilon$ |
\epsilon |
$\varepsilon$ |
\varepsilon | |||
zeta | $Z$ |
Z | $\zeta$ |
\zeta |
eta | $H$ |
H | $\eta$ |
\eta |
theta | $\Theta$ |
\Theta | $\theta$ |
\theta |
$\vartheta$ |
\vartheta | |||
iota | $I$ |
I | $\iota$ |
\iota |
kappa | $K$ |
K | $\kappa$ |
\kappa |
lambda | $\Lambda$ |
\Lambda | $\lambda$ |
\lambda |
mu | $M$ |
M | $\mu$ |
\mu |
nu | $N$ |
N | $\nu$ |
\nu |
xi | $\Xi$ |
\Xi | $\xi$ |
\xi |
omicron | $O$ |
O | $\omicron$ |
\omicron |
pi | $\Pi$ |
\Pi | $\pi$ |
\pi |
$\varpi$ |
\varpi | |||
rho | $P$ |
P | $\rho$ |
\rho |
$\varrho$ |
\varrho | |||
sigma | $\Sigma$ |
\Sigma | $\sigma$ |
\sigma |
$\varsigma$ |
\varsigma | |||
tau | $T$ |
T | $\tau$ |
\tau |
upsilon | $\Upsilon$ |
\Upsilon | $\upsilon$ |
\upsilon |
phi | $\Phi$ |
\Phi | $\phi$ |
\phi |
$\varphi$ |
\varphi | |||
chi | $X$ |
X | $\chi$ |
\chi |
psi | $\Psi$ |
\Psi | $\psi$ |
\psi |
omega | $\Omega$ |
\Omega | $\omega$ |
\omega |
对于加热符号△
,请以\triangle
输入。
- $\ce{A ->[\triangle] B}$
\ce{A <=>[\triangle] B}
若要在文字下方或上方增加内容,请使用\underset
与\overset
。下面是一个稍复杂的例子,代码作了换行处理以便查看。
- $\ce{Zn^2+ <=>[+ 2OH-][+ 2H+] $\underset{\text{amphoteres Hydroxid}}{\ce{Zn(OH)2 v}}$ <=>[+ 2OH-][+ 2H+] $\underset{\text{Hydroxozikat}}{\ce{[Zn(OH)4]^2-}}$}$
\ce{Zn^2+
<=>[+ 2OH-][+ 2H+]
$\underset{\text{amphoteres Hydroxid}}{\ce{Zn(OH)2 v}}$
<=>[+ 2OH-][+ 2H+]
$\underset{\text{Hydroxozikat}}{\ce{[Zn(OH)4]^2-}}$
}
至此,MathJax教程的化学篇告一段落。关于其他常用符号的输入等,请参考数学篇与格式篇中的有关内容。
数学篇
本节将主要对数学公式的输入进行说明。
与化学篇不同的是,数学篇不需要调用宏包,所以不需要频繁使用
\ce
。
在一个以\
开头的命令结束时,后面应视具体情况加上空格。
数字、上下标、四则运算以及常用符号的输入
数字、英文字母、希腊字母
数字和英文字母可直接键入。注意,如果其中存在空格,需要以\,
的形式输入(或参考下文的空格与缩进一节),不过为什么不直接用文本呢?请参考下方的示例。
- $Re:0$
Re:0
- $建议改成$
建议改成
- $建 议 改 成:$
建 议 改 成:
- $建\, \, 议\, \, 改\, \, 成:$
建\, \, 议\, \, 改\, \, 成:
- $The quick brown fox jumps over the lazy dog.$
The quick brown fox jumps over the lazy dog.
- $The\, quick\, brown\, fox\, jumps\, over\, the\, lazy\, dog.$
The\, quick\, brown\, fox\, jumps\, over\, the\, lazy\, dog.
希腊字母的输入见上文。
其他符号
见表格。注意,当你不知道什么时候要加<nowiki>
的时候(如有等号或大括号时),你最好全加上。
重音符号 | |||||
---|---|---|---|---|---|
$\hat{a}$ |
\hat{a} |
$\check{a}$ |
\check{a} |
$\tilde{a}$ |
\tilde{a}
|
$\acute{a}$ |
\acute{a} |
$\grave{a}$ |
\grave{a} |
$\dot{a}$ |
\dot
|
$\ddot{a}$ |
\ddot{a} |
$\breve{a}$ |
\breve{a} |
$\bar{a}$ |
\bar{a}
|
$\vec{a}$ |
\vec{a} |
$\widehat{A}$ |
\widehat{A} |
$\widetilde{A}$ |
\widetilde{A}
|
二元关系符 | |||||
---|---|---|---|---|---|
$<$ |
< |
$>$ |
> |
$=$ |
=
|
$\le$ |
\le 或\leq |
$\geq$ |
\ge 或\leq |
$\equiv$ |
\equiv
|
$\ll$ |
\ll |
$\gg$ |
\gg |
$\doteq$ |
\doteq
|
$\prec$ |
\prec |
$\succ$ |
\succ |
$\sim$ |
\sim
|
$\preceq$ |
\preceq |
$\succeq$ |
\succeq |
$\simeq$ |
\simeq
|
$\subset$ |
\subset |
$\supset$ |
\supset |
$\approx$ |
\approx
|
$\subseteq$ |
\subseteq |
$\supseteq$ |
\supseteq |
$\cong$ |
\cong
|
$\sqsubset$ |
\sqsubset |
$\sqsupset$ |
\sqsupset |
$\Join$ |
\Join
|
$\sqsubseteq$ |
\sqsubseteq |
$\sqsupseteq$ |
\sqsupseteq |
$\bowtie$ |
\bowtie
|
$\in$ |
\in |
$\ni$ |
\ni 或\owns |
$\propto$ |
\propto
|
$\vdash$ |
\vdash |
$\dashv$ |
\dashv |
$\models$ |
\models
|
$\mid$ |
\mid |
$\parallel$ |
\parallel |
$\perp$ |
\perp
|
$\smile$ |
\smile |
$\frown$ |
\frown |
$\asymp$ |
\asymp
|
$:$ |
: |
$\notin$ |
\notin |
$\ne$ |
\ne 或\neq
|
常用二元运算符的输入方式如下。
由于笔者精力有限敲不起大段大段的表格代码 上面两个表格共3030字节,剩余部分请参考这个网站。
分数、根式、乘方(上标)、下标以及常见函数的输入
分数
要输入分数,请使用\frac{分子}{分母}
\dfrac{分子}{分母}
。关于这两种写法的差异请参考下方的示例。
- $\frac{3165}{23367}$
\frac{3165}{23367}
- $\dfrac{3165}{23367}$
\dfrac{3165}{23367}
其本身可以嵌套。
- $x=a_0+\frac{1}{a_1+\frac{1}{a_2+\frac{1}{a_3+a_4}}}$
x=a_0+\frac{1}{a_1+\frac{1}{a_2+\frac{1}{a_3+a_4}}}
- $x=a_0+\dfrac{1}{a_1+\dfrac{1}{a_2+\dfrac{1}{a_3+a_4}}}$
x=a_0+\dfrac{1}{a_1+\dfrac{1}{a_2+\dfrac{1}{a_3+a_4}}}
根式
要输入根式,请使用\sqrt[根指数]{根底数}
。[]
在嵌套时需要额外加一层{}
。
- $\sqrt[3]{2}$
\sqrt[3]{2}
- $\sqrt[3]{\sqrt[3]{2}}$
\sqrt[3]{\sqrt[3]{2}}
- $\sqrt[{\sqrt[3]{2}}]{2}$
\sqrt[{\sqrt[3]{2}}]{2}
乘方(上标)
要输入乘方(上标),请使用^{指数}
。
- $2^3$
2^3
- $2^{3}$
2^{3}
- $a^998244853$
a^998244853
- $a^{998244853}$
a^{998244853}
嵌套时请注意按需加小括号。
- $2^{(3^4)}$
2^{(3^4)}
- $(2^3)^4$
(2^3)^4
下标
下标的使用与乘方/上标相同,只需把^
改成_
即可。嵌套处理同上。
- $2_3$
2_3
- $2_{3}$
2_{3}
- $a_998244853$
a_998244853
- $a_{998244853}$
a_{998244853}
- ${{a_2}_c}_4$
{{a_2}_c}_4
常见函数
由于函数名称通常的排版方式与采用意大利体的变量名称不同,而采用罗马字体,一般需要进行特殊处理。 LaTeX内置了一些常见的函数的命令如下。
对于上述的函数,如果传入的参数书写时在函数名右下角或右上角,请以下标或上标方式输入:
- $\log_33$
\log_33
如果传入的参数书写时在函数名右侧,以正常方式输入即可:
- $\lg 3$
\lg 3
- $\text{mex}(S)=\min\{x|x\in\mathbb{N}\land x\notin S)$
\text{mex}(S)=\min\{x|x\in\mathbb{N}\land x\notin S)
如果传入的参数书写时在函数名上面或者下面或者上面和下面(如极限\lim
、下文的求和求积等),请使用\limits
。请参考下方的示例:
- $\lim\limits_{x\rightarrow 0^-}\dfrac{1}{x}=-\infty$
\lim\limits_{x\rightarrow 0^-}\dfrac{1}{x}=-\infty
- $\bigcup\limits_{i=1}^{n}{X_i}$
\bigcup\limits_{i=1}^{n}{X_i}
当然转换成上下标形式也是可以的,如果你嫌前者占地方过大或者想排版在一行里。
- $\lim_{x\rightarrow 0^-}1/x=-\infty$
\lim_{x\rightarrow 0^-}1/x=-\infty
- $\bigcup_{i=1}^{n}{X_i}$
\bigcup_{i=1}^{n}{X_i}