📖 什么是 mhchem?
mhchem 是 MathJax 和 LaTeX 的一个扩展包,专门用于排版化学式和化学方程式。它提供了简单直观的语法来表示化学符号、反应、状态等。
核心命令:\ce{...} 用于排版化学式和反应
💡 提示: 在所有示例中,你可以看到左边是源代码,右边是渲染后的效果。试着理解语法规则!
🧪 基础化学式
简单分子式
\ce{H2O}
$\ce{H2O}$
\ce{CO2}
$\ce{CO2}$
\ce{C6H12O6}
$\ce{C6H12O6}$
复杂化学式
\ce{H2SO4}
$\ce{H2SO4}$
\ce{Ca(OH)2}
$\ce{Ca(OH)2}$
\ce{CuSO4.5H2O}
$\ce{CuSO4.5H2O}$
⚡ 离子和电荷
简单离子
\ce{H+}
$\ce{H+}$
\ce{OH-}
$\ce{OH-}$
\ce{SO4^2-}
$\ce{SO4^2-}$
复杂离子
\ce{Fe^2+}
$\ce{Fe^2+}$
\ce{Fe^3+}
$\ce{Fe^3+}$
\ce{[Ag(NH3)2]+}
$\ce{[Ag(NH3)2]+}$
⚖️ 化学方程式
基本反应
\ce{2H2 + O2 -> 2H2O}
$$\ce{2H2 + O2 -> 2H2O}$$
\ce{CH4 + 2O2 -> CO2 + 2H2O}
$$\ce{CH4 + 2O2 -> CO2 + 2H2O}$$
可逆反应
\ce{N2 + 3H2 <=> 2NH3}
$$\ce{N2 + 3H2 <=> 2NH3}$$
\ce{CO2 + H2O <=> H2CO3}
$$\ce{CO2 + H2O <=> H2CO3}$$
平衡反应
\ce{A + B <-> C + D}
$$\ce{A + B <-> C + D}$$
➡️ 各种反应箭头
| 代码 | 效果 | 说明 |
|---|---|---|
\ce{->} |
$\ce{->}$ | 单向反应 |
\ce{<-} |
$\ce{<-}$ | 逆向反应 |
\ce{<->} |
$\ce{<->}$ | 平衡反应 |
\ce{<=>} |
$\ce{<=>}$ | 可逆反应 |
\ce{<<=>>} |
$\ce{<<=>>>}$ | 共振结构 |
🔥 反应条件
在箭头上下添加条件
\ce{A ->[上方条件][下方条件] B}
$$\ce{A ->[上方条件][下方条件] B}$$
\ce{2KClO3 ->[加热][MnO2] 2KCl + 3O2 ^}
$$\ce{2KClO3 ->[加热][MnO2] 2KCl + 3O2 ^}$$
\ce{CaCO3 ->[高温] CaO + CO2 ^}
$$\ce{CaCO3 ->[高温] CaO + CO2 ^}$$
\ce{N2 + 3H2 <=>[催化剂][高温高压] 2NH3}
$$\ce{N2 + 3H2 <=>[催化剂][高温高压] 2NH3}$$
🌡️ 状态符号
使用括号表示物质状态:(s) 固态、(l) 液态、(g) 气态、(aq) 水溶液
\ce{NaCl(s)}
$$\ce{NaCl(s)}$$
\ce{H2O(l)}
$$\ce{H2O(l)}$$
\ce{CO2(g)}
$$\ce{CO2(g)}$$
\ce{H+(aq) + OH-(aq) -> H2O(l)}
$$\ce{H+(aq) + OH-(aq) -> H2O(l)}$$
⬇️ 沉淀和气体符号
使用 v 表示沉淀(↓),使用 ^ 表示气体(↑)
\ce{AgNO3 + NaCl -> AgCl v + NaNO3}
$$\ce{AgNO3 + NaCl -> AgCl v + NaNO3}$$
\ce{CaCO3 + 2HCl -> CaCl2 + H2O + CO2 ^}
$$\ce{CaCO3 + 2HCl -> CaCl2 + H2O + CO2 ^}$$
\ce{BaCl2 + Na2SO4 -> BaSO4 v + 2NaCl}
$$\ce{BaCl2 + Na2SO4 -> BaSO4 v + 2NaCl}$$
☢️ 同位素表示
\ce{^{12}_6C}
$$\ce{^{12}_6C}$$
\ce{^{14}_6C}
$$\ce{^{14}_6C}$$
\ce{^{235}_{92}U}
$$\ce{^{235}_{92}U}$$
\ce{^{238}_{92}U}
$$\ce{^{238}_{92}U}$$
🔄 氧化还原反应
\ce{Zn + Cu^2+ -> Zn^2+ + Cu}
$$\ce{Zn + Cu^2+ -> Zn^2+ + Cu}$$
\ce{2Fe^2+ + Cl2 -> 2Fe^3+ + 2Cl-}
$$\ce{2Fe^2+ + Cl2 -> 2Fe^3+ + 2Cl-}$$
\ce{MnO4- + 8H+ + 5e- -> Mn^2+ + 4H2O}
$$\ce{MnO4- + 8H+ + 5e- -> Mn^2+ + 4H2O}$$
🧬 有机化学
基本有机物
\ce{CH3-CH2-OH}
$$\ce{CH3-CH2-OH}$$
\ce{CH3COOH}
$$\ce{CH3COOH}$$
\ce{C6H5-NH2}
$$\ce{C6H5-NH2}$$
有机反应
\ce{CH2=CH2 + H2 ->[Ni][加热] CH3-CH3}
$$\ce{CH2=CH2 + H2 ->[Ni][加热] CH3-CH3}$$
\ce{CH3COOH + CH3OH <=>[H2SO4][加热] CH3COOCH3 + H2O}
$$\ce{CH3COOH + CH3OH <=>[H2SO4][加热] CH3COOCH3 + H2O}$$
🌟 综合示例
燃烧反应
\ce{C3H8 + 5O2 ->[点燃] 3CO2 + 4H2O}
$$\ce{C3H8 + 5O2 ->[点燃] 3CO2 + 4H2O}$$
酸碱中和
\ce{HCl + NaOH -> NaCl + H2O}
$$\ce{HCl + NaOH -> NaCl + H2O}$$
光合作用
\ce{6CO2 + 6H2O ->[光照][叶绿素] C6H12O6 + 6O2 ^}
$$\ce{6CO2 + 6H2O ->[光照][叶绿素] C6H12O6 + 6O2 ^}$$
电解水
\ce{2H2O ->[电解] 2H2 ^ + O2 ^}
$$\ce{2H2O ->[电解] 2H2 ^ + O2 ^}$$
氨的合成
\ce{N2 + 3H2 <=>[Fe][高温高压] 2NH3}
$$\ce{N2 + 3H2 <=>[Fe][高温高压] 2NH3}$$
双水解反应
\ce{Al2(SO4)3 + 6NaHCO3 -> 2Al(OH)3 v + 3Na2SO4 + 6CO2 ^}
$$\ce{Al2(SO4)3 + 6NaHCO3 -> 2Al(OH)3 v + 3Na2SO4 + 6CO2 ^}$$
✏️ 交互式试验区
完整代码:
\ce{H2O}
渲染结果:
$$\ce{H2O}$$
📝 常用语法参考
| 功能 | 语法 | 示例 | 效果 |
|---|---|---|---|
| 下标 | 直接输入数字 | \ce{H2O} | $\ce{H2O}$ |
| 上标(电荷) | ^ | \ce{Fe^3+} | $\ce{Fe^3+}$ |
| 反应箭头 | -> | \ce{A -> B} | $\ce{A -> B}$ |
| 可逆箭头 | <=> | \ce{A <=> B} | $\ce{A <=> B}$ |
| 反应条件 | ->[上][下] | \ce{A ->[条件] B} | $\ce{A ->[条件] B}$ |
| 沉淀 | v | \ce{AgCl v} | $\ce{AgCl v}$ |
| 气体 | ^ | \ce{CO2 ^} | $\ce{CO2 ^}$ |
| 状态 | (s/l/g/aq) | \ce{H2O(l)} | $\ce{H2O(l)}$ |
| 电子 | e- | \ce{2e-} | $\ce{2e-}$ |
| 同位素 | ^{质量数}_{原子序数} | \ce{^{14}_6C} | $\ce{^{14}_6C}$ |
💡 提示和技巧
提示 1: mhchem 会自动识别元素符号并正确排版,无需手动处理大小写。
提示 2: 使用空格或 + 号连接不同的物质,mhchem 会自动处理间距。
提示 3: 对于复杂的化学式,可以使用括号 () 来分组,如 Ca(OH)2。
提示 4: 在网页中使用时,需要在 MathJax 配置中加载 mhchem 扩展。
提示 5: mhchem 可以与普通的数学公式混合使用,例如:$K_a = \ce{[H+][A-]/[HA]}$
🔗 更多资源
官方文档
• MathJax mhchem 扩展文档: https://mhchem.github.io/MathJax-mhchem/
• MathJax 官网: https://www.mathjax.org/
配置说明
要在你的网页中使用 mhchem,需要在 MathJax 配置中添加:
window.MathJax = {
tex: {
packages: {'[+]': ['mhchem']}
},
loader: {
load: ['[tex]/mhchem']
}
};
💡 关于 CDN 加载:
本页面使用了多个 CDN 备用源来加载 MathJax:
- 首选: cloudflare CDN(全球加速)
- 备用1: bootcdn(国内优化)
- 备用2: jsdelivr(备用方案)
如果页面加载缓慢,请耐心等待或刷新页面。如果长时间无法加载,可能是网络问题。