chemistry-markdown-formatter

star 2

化学专用格式排版规范和修复工作流。

raineblog By raineblog schedule Updated 6/8/2026

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

行内公式 $ $ 不需要额外空行。


常见错误与禁忌

绝对禁止

  1. 禁止 \ce 嵌套\ce{\ce{...}} 会导致渲染失败
  2. 禁止在 \ce 内使用 \text\ce{\text{NaOH}} 是错误的
  3. 禁止气体符号在 \ce:不要用 $\ce{O2}\uparrow$,要用 $\ce{O2 ^}$
  4. 禁止复杂下划线:在 \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:多行公式 $$ 前后是否都有空行

执行策略

  1. 逐行审查:不要进行大规模批量替换,逐行检查每个化学式
  2. 先易后难:先修正明显的 \ce 缺失,再处理复杂的反应条件
  3. 双重验证:修改后用 KaTeX 渲染验证公式是否正确
  4. 保留原文结构:不要改变列表缩进、段落结构等格式

快速对照表

类型 错误写法 正确写法
化学式 $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}$

验证方法

修改完成后,使用以下方式验证:

  1. KaTeX 渲染检查:确保所有公式正确渲染,无红色错误提示
  2. 文本搜索检查
    • 搜索 $ 确保没有孤立的 $Na_2O$ 等形式
    • 搜索 \text{ 确保化学式没有使用 \text
    • 搜索 \xlongequal\xrightarrow 确保已替换
  3. 视觉检查:确保气体符号 和沉淀符号 正确显示

相关资源

  • 项目规范:.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/
Install via CLI
npx skills add https://github.com/raineblog/whk --skill chemistry-markdown-formatter
Repository Details
star Stars 2
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator