2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

User:SomeyaMako/Re:从零开始的MathJax教程

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

在这个春光融融的四月份,由于某些众所周知的原因,无数的学生被囚禁在了家中,SomeyaMako便是其中的一员。

嘛,反正闲着也是闲着,与其每天在家中颓废(还时不时抽出时间来打日麻),还不如尽自己之能为萌百的大厦添砖加瓦,或者编写出一个(和你现在所浏览的页面一样的)搬砖指南。

2020年4月18日是一个历史性的日子。也许是用Template:ruby标注的方程式实在是有些欠缺,也许是应广大群众的呼声,在这一天,萌娘百科安装了MathJax插件;于是SomeyaMako定下了计划,要在萌百开一个MathJax教程的坑。由于SomeyaMako现在高二,时间并不充裕,到高三时接触网络的机会可能少之又少,因此这个页面可能会有一大段更新的空白期(长一年有余)。

或许这个坑需要很长时间来填完,或许这个页面不会有人来看,但是SomeyaMako相信,不论遇到多少坎坷,不论萌百的前路如何,SomeyaMako都会始终坚持在这里。

那么就让我们开始吧。


更新履历

版本0.0.1.200419

编写导语、序言以及建立教程框架

-- SomeyaMako70符2飜ナナジュッブリャンハン1200センニヒャク2300ニセンサンビャク!) 2020年4月19日 (日) 00:13 (CST)

版本0.1.0.200419

  • 增加基础篇
  • 更新化学篇-同位素及以前的内容

-- SomeyaMako70符2飜ナナジュッブリャンハン1200センニヒャク2300ニセンサンビャク!) 2020年4月19日 (日) 12:00 (CST)

版本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的功能是在网页上渲染数学公式,而同样被广泛运用的$\LaTeX$(为方便录入,下称LaTeX)则是对打印件进行排版。因此,MathJax对于LaTeX的支持有限度,许多LaTeX的指令无法用于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>}}

显示效果如下:

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}.$$

化学篇

关于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}

括号

求和、求积、导数与积分

表格与矩阵

分段函数与多元方程组

格式篇

空格与缩进

上色

调节字体

调节字号

等号对齐

注释及外部链接

  1. 详见GitHub页面