Markdown 上標和下標語法指南

Markdown 本身沒有專門的上標(superscript)和下標(subscript)語法——這玩意不像粗體和斜體有專屬的標記,你得借助 HTML 標籤或者 Unicode 字元來實現。
這篇文章把 markdown superscript 和 markdown subscript 的幾種實現方式都講清楚,順便給你一張可以直接複製貼上的 Unicode 字元速查表。
用 HTML 標籤(最常用)
這是最主流、相容性最好的方式。Markdown 支援內嵌 HTML,所以直接用 <sup> 和 <sub> 標籤就行:
上標 <sup>
x<sup>2</sup> + y<sup>2</sup> = z<sup>2</sup>渲染效果:x2 + y2 = z2
下標 <sub>
H<sub>2</sub>O 是水的化學式渲染效果:H2O 是水的化學式
語法很簡單,就是把要變成上標或下標的內容包在標籤裡。大部分 Markdown 平台都支援這兩個 HTML 標籤,因為它們是最基礎的 HTML 元素。
常見使用場景
光知道語法不夠,得知道什麼時候用。以下是幾個實際場景:
化學式
化學式是下標的高頻場景:
- 水:H<sub>2</sub>O
- 二氧化碳:CO<sub>2</sub>
- 硫酸:H<sub>2</sub>SO<sub>4</sub>
- 硫酸根離子:SO<sub>4</sub><sup>2-</sup>渲染效果:
- 水:H2O
- 二氧化碳:CO2
- 硫酸:H2SO4
- 硫酸根離子:SO42-
注意硫酸根離子的寫法——下標和上標可以疊加使用,<sub> 和 <sup> 挨著寫就行。
數學公式
- 面積公式:A = πr<sup>2</sup>
- 體積公式:V = 4/3πr<sup>3</sup>
- 數列通項:a<sub>n</sub> = a<sub>1</sub> + (n-1)d如果公式比較複雜,建議用 LaTeX 數學公式(下面會講到)。
商標和符號
- 註冊商標:Markdown<sup>®</sup>
- 商標:Coca-Cola<sup>™</sup>
- 版權:© 2024
- 溫度:25°C 或 77°F說實話商標符號用 HTML 標籤有點囉嗦,直接用 Unicode 字元更方便——後面有速查表。
引用標註
參見第<sup>3</sup>版《設計模式》不過如果你的標註是帶跳轉連結的學術引用,應該用 Markdown 腳註 而不是 <sup>。腳註能自動編號和跳轉,上標標籤做不到這些。
用 Unicode 字元(零依賴)
其實很多上標和下標有對應的 Unicode 字元,直接複製貼上就能用,不需要任何 HTML 標籤。
常用上標字元
| 字元 | 說明 | Unicode |
|---|---|---|
| ¹ | 上標1 | U+00B9 |
| ² | 上標2 | U+00B2 |
| ³ | 上標3 | U+00B3 |
| ⁿ | 上標n | U+207F |
| ⁺ | 上標+ | U+207A |
| ⁻ | 上標- | U+207B |
| ⁰ | 上標0 | U+2070 |
| ⁱ | 上標i | U+2071 |
常用下標字元
| 字元 | 說明 | Unicode |
|---|---|---|
| ₀ | 下標0 | U+2080 |
| ₁ | 下標1 | U+2081 |
| ₂ | 下標2 | U+2082 |
| ₃ | 下標3 | U+2083 |
| ₄ | 下標4 | U+2084 |
| ₙ | 下標n | U+2099 |
| ₊ | 下標+ | U+208A |
| ₋ | 下標- | U+208B |
直接複製貼上就行:
H₂O 和 CO₂ 不用寫 HTML 標籤
x² + y² = z²
E = mc²這種方式最省事,但 Unicode 字元覆蓋範圍有限——複雜化學式或數學公式可能找不到對應的字元。
用 LaTeX 數學公式
如果公式比較複雜(比如分數、積分、根號),直接用 LaTeX 數學語法更合適。大部分支援 Markdown 的平台也支援 LaTeX 公式:
行內公式:$H_2SO_4$ 和 $x^2 + y^2 = z^2$
區塊公式:
$$
\sum_{i=1}^{n} a_i = a_1 + a_2 + \cdots + a_n
$$- 上標用
^:x^2→ x² - 下標用
_:H_2O→ H₂O
LaTeX 在數學和化學公式場景是最專業的方案,但需要平台支援數學公式渲染。GitHub 不支援 LaTeX,Obsidian 和 Typora 支援。
三種方案怎麼選
| 特性 | HTML 標籤 | Unicode 字元 | LaTeX 公式 |
|---|---|---|---|
| 上標 | <sup>2</sup> | ² | ^2 |
| 下標 | <sub>2</sub> | ₂ | _2 |
| 相容性 | 幾乎所有平台 | 所有平台 | 需要數學渲染 |
| 複雜度 | 簡單 | 最簡單 | 需要學語法 |
| 適合場景 | 通用 | 簡單標註 | 複雜公式 |
我的習慣是這樣的:
- 簡單的化學式和數學(H₂O、x²)→ 直接用 Unicode 字元複製貼上
- 需要確保所有平台都能顯示 → 用 HTML 標籤
- 複雜公式(積分、分數、矩陣)→ 用 LaTeX
為什麼 Markdown 沒有原生語法
你可能好奇為什麼上標下標不像 Markdown 粗體 和 Markdown 斜體 那樣有自己的語法標記。原因是 CommonMark 的設計哲學——John Gruber 最初設計 Markdown 時就沒有包含上標下標,後來 CommonMark 規範也沿用了這個決定。他們的理由是:上標下標的使用頻率遠低於粗體斜體,而且 HTML 標籤 <sup> <sub> 已經足夠簡單,沒必要為此增加額外的語法負擔。
這個話題在 CommonMark 社群討論過很多次,社群的態度基本一致:不會加入原生的上標下標語法。
常見問題
<sup> 和 <sub> 在 GitHub 上能用嗎?
能用。GitHub 支援這兩個 HTML 標籤。不過 GitHub 不支援 LaTeX 數學公式,所以寫複雜公式的話得想別的辦法。
Unicode 字元會不會在某些平台顯示不了?
基本不會。Unicode 上標下標字元是標準字元集的一部分,現代瀏覽器和編輯器都能正常顯示。但如果你的讀者用的是非常老的系統,少數字元可能會有問題。
上標標籤和腳註有什麼區別?
<sup> 只是顯示一個上標文字,沒有任何跳轉功能。Markdown 腳註 [^1] 會自動編號、產生跳轉連結、在頁面底部收集。如果你要做學術引用,用腳註;如果只是要一個小小的上標數字或符號,用 <sup> 就夠了。
參考來源: