name: chemistry-markdown-formatter description: 化学专用格式排版规范和修复工作流。
Chemistry Markdown Formatter
化学 Markdown 排版标准化技能
此技能用于将不规范的化学 Markdown 文档转换为标准、规范的排版格式。基于 commit 681b6840f0509d4415843a4be86662fe6bc9ef88 的修改经验总结。
使用场景
- 修正化学文档中的公式排版错误
- 将旧版化学符号转换为标准 mhchem 格式
- 规范化物理单位、化学术语的 LaTeX 表示
- 确保化学文档符合项目排版规范
核心规范
1. 化学式必须使用 mhchem 宏包
所有化学式必须用 \ce{} 包裹,不能用普通数学模式或 \text{}。
| 错误 | 正确 |
|---|---|
$Na_2O$ |
$\ce{Na2O}$ |
$Na_2O_2$ |
$\ce{Na2O2}$ |
$Fe^{3+}$ |
$\ce{Fe^{3+}}$ |
$H_2O$ |
$\ce{H2O}$ |
$\text{NaOH}$ |
$\ce{NaOH}$ |
注意:在 \ce{} 内部,数字自动下标,不需要手动加下划线。
2. 离子电荷写法
| 错误 | 正确 |
|---|---|
$Na^+$ |
$\ce{Na+}$ |
$O^{2-}$ |
$\ce{O^{2-}}$ |
$CO_3^{2-}$ |
$\ce{CO3^{2-}}$ |
- 简单电荷(一位数):直接写
\ce{Na+} - 复杂电荷(多位数或带符号):用花括号
\ce{O^{2-}}
3. 气体与沉淀符号
在 \ce{} 内部使用简写符号,且前后必须有空格:
| 错误 | 正确 |
|---|---|
$\uparrow$ |
$\ce{^}$ |
$\downarrow$ |
$\ce{v}$ |
$\ce{O2^}$ |
$\ce{O2 ^}$ |
$\ce{BaSO4v}$ |
$\ce{BaSO4 v}$ |
正确示例:
$\ce{2Na2O2 + 2H2O = 4NaOH + O2 ^}$
$\ce{NaCl + NH3 + CO2 + H2O = NaHCO3 v + NH4Cl}$
4. 反应条件箭头
使用 ->[条件] 语法,禁止使用 \xlongequal 或 \xrightarrow:
| 错误 | 正确 |
|---|---|
$\xlongequal{\Delta}$ |
$\ce{->[\Delta]}$ |
$\xrightarrow{\Delta}$ |
$\ce{->[\Delta]}$ |
$\xrightarrow{高温}$ |
$\ce{->[高温]}$ |
正确示例:
$\ce{2Na2O + O2 ->[\Delta] 2Na2O2}$
$\ce{2NaHCO3 ->[\Delta] Na2CO3 + H2O + CO2 ^}$
$\ce{2Li + H2 ->[\Delta] 2LiH}$
5. 物理单位写法
使用 \pu{} 宏包(physics unit):
| 错误 | 正确 |
|---|---|
$0.97 \text{ g/cm}^3$ |
$\pu{0.97 g/cm^3}$ |
$180.5^\circ\text{C}$ |
$\pu{180.5 ^oC}$ |
$638 \text{ ℃}$ |
$\pu{638 ^oC}$ |
$1 \text{ mol}$ |
$\pu{1 mol}$ |
$19 \text{ g}$ |
$\pu{19 g}$ |
温度写法:使用 ^oC 而非 ^\circ\text{C}
正确示例:
密度约为 $\pu{0.97 g/cm^3}$
熔点约为 $\pu{180.5 ^oC}$
每生成 $\pu{1 mol}$ $\ce{O2}$
6. 数学模式中的化学符号
即使在数学环境(如半径、表达式)中,化学符号也要用 \ce{}:
| 错误 | 正确 |
|---|---|
$r(M^+) < r(M)$ |
$r(\ce{M+}) < r(\ce{M})$ |
$r(Li^+) < r(Na^+)$ |
$r(\ce{Li+}) < r(\ce{Na+})$ |
$(CO)_m(H_2)_n$ |
$(\ce{CO})_m(\ce{H2})_n$ |
7. 化学物质名称与括号
保持中文习惯,括号内跟化学式:
| 错误 | 正确 |
|---|---|
氢化钠 ($NaH$) |
氢化钠($\ce{NaH}$) |
氧化钠 ($Na_2O$): |
氧化钠($\ce{Na2O}$): |
sodium ($\ce{Na}$) |
钠($\ce{Na}$) |
注意:在 $\ce{}$ 中使用 $\ce{AB}$ 表示点号,比如 $\ce{CuSO45H2O}$。
8. 标点符号规范
化学式前后的标点要使用中文全角标点:
| 错误 | 正确 |
|---|---|
氧化钠($Na_2O$): |
氧化钠($\ce{Na2O}$): |
与水反应,生成... |
与水反应,生成... |
9. 递变关系表示
使用 \ce{->} 表示递变:
| 错误 | 正确 |
|---|---|
Li $\rightarrow$ Cs |
$\ce{Li -> Cs}$ |
10. 多行公式规范
多行显示公式 $$ 前后必须有空行:
正确:
$$
\ce{2Na(s) + H2(g) ->[\Delta] 2NaH(s)}
$$
错误:
$$
\ce{2Na(s) + H2(g) ->[\Delta] 2NaH(s)}
$$
行内公式 $ $ 不需要额外空行。
常见错误与禁忌
绝对禁止
- 禁止
\ce嵌套:\ce{\ce{...}}会导致渲染失败 - 禁止在
\ce内使用\text:\ce{\text{NaOH}}是错误的 - 禁止气体符号在
\ce外:不要用$\ce{O2}\uparrow$,要用$\ce{O2 ^}$ - 禁止复杂下划线:在
\ce内不要写Na_2O,直接写Na2O
注意空格
\ce{O2 ^}✓ (^ 前有空格)\ce{O2^}✗ (缺少空格)\ce{BaSO4 v}✓ (v 前有空格)\ce{BaSO4v}✗ (缺少空格)
标准范例
完整化学反应式
氧化钠与水反应:
$$
\ce{Na2O + H2O = 2NaOH}
$$
过氧化钠与水反应(气体符号):
$$
\ce{2Na2O2 + 2H2O = 4NaOH + O2 ^}
$$
加热分解(反应条件):
$$
\ce{2NaHCO3 ->[\Delta] Na2CO3 + H2O + CO2 ^}
$$
侯氏制碱法(沉淀符号):
$$
\ce{NaCl + NH3 + CO2 + H2O = NaHCO3 v + NH4Cl}
$$
物理性质描述
- **密度**:锂是**密度最小的金属**(约 $\pu{0.534 g/cm^3}$),其密度不仅小于水,甚至**小于煤油**。
- **熔沸点**:熔点约为 $\pu{180.5 ^oC}$,沸点约为 $\pu{1342 ^oC}$。
离子半径比较
同一主族中,随着核电荷数的增加,离子的**电子层数逐渐增多**,因此碱金属**离子半径自上而下逐渐增大**。例如:$r(\ce{Li+}) < r(\ce{Na+}) < r(\ce{K+}) < r(\ce{Rb+}) < r(\ce{Cs+})$。
化学物质名称括号
钠的氢化物主要指**氢化钠**($\ce{NaH}$),它是一种重要的碱金属原子与氢原子形成的二元化合物。在化学性质上,它与常见的共价型氢化物(如水、氨)截然不同,属于典型的**离子型(类盐型)氢化物**。
工作流程
检查清单
在处理化学 Markdown 文档时,按以下顺序检查:
- 步骤 1:找出所有化学式,确保都用
$\ce{...}$包裹 - 步骤 2:检查
\ce内是否有_下划线,去除不必要的下划线 - 步骤 3:检查离子电荷写法,复杂电荷用花括号
- 步骤 4:检查气体符号
^和沉淀符号v,确保前后有空格 - 步骤 5:检查反应条件,将
\xlongequal和\xrightarrow改为->[...] - 步骤 6:检查物理单位,改为
\pu{}格式 - 步骤 7:检查数学模式中的化学符号,也使用
\ce{} - 步骤 8:检查标点符号,确保使用中文全角标点
- 步骤 9:验证没有
\ce嵌套或\ce内使用\text - 步骤 10:多行公式 $$ 前后是否都有空行
执行策略
- 逐行审查:不要进行大规模批量替换,逐行检查每个化学式
- 先易后难:先修正明显的
\ce缺失,再处理复杂的反应条件 - 双重验证:修改后用 KaTeX 渲染验证公式是否正确
- 保留原文结构:不要改变列表缩进、段落结构等格式
快速对照表
| 类型 | 错误写法 | 正确写法 |
|---|---|---|
| 化学式 | $Na_2O$ |
$\ce{Na2O}$ |
| 离子 | $Na^+$ |
$\ce{Na+}$ |
| 复杂离子 | $SO_4^{2-}$ |
$\ce{SO4^{2-}}$ |
| 气体 | $O_2\uparrow$ |
$\ce{O2 ^}$ |
| 沉淀 | $BaSO_4\downarrow$ |
$\ce{BaSO4 v}$ |
| 加热 | $\xlongequal{\Delta}$ |
$\ce{->[\Delta]}$ |
| 温度 | $97.81^\circ\text{C}$ |
$\pu{97.81 ^oC}$ |
| 密度 | $0.97\text{ g/cm}^3$ |
$\pu{0.97 g/cm^3}$ |
| 物质的量 | $1\text{ mol}$ |
$\pu{1 mol}$ |
| 离子半径 | $r(Na^+)$ |
$r(\ce{Na+})$ |
| 递变 | Li$\rightarrow$Cs |
$\ce{Li -> Cs}$ |
验证方法
修改完成后,使用以下方式验证:
- KaTeX 渲染检查:确保所有公式正确渲染,无红色错误提示
- 文本搜索检查:
- 搜索
$确保没有孤立的$Na_2O$等形式 - 搜索
\text{确保化学式没有使用\text - 搜索
\xlongequal和\xrightarrow确保已替换
- 搜索
- 视觉检查:确保气体符号
↑和沉淀符号↓正确显示
相关资源
- 项目规范:
.agents/rules/style.md - 本文额外规范:
.agents/skills/chemistry-markdown-formatter/rules.md - Lint 工具:
./node_modules/.bin/markdownlint-cli2 - 自动修正:
./node_modules/.bin/autocorrect - Review 技能:
.agents/skills/review-workflow/