Markdown 上標和下標語法指南

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
¹上標1U+00B9
²上標2U+00B2
³上標3U+00B3
上標nU+207F
上標+U+207A
上標-U+207B
上標0U+2070
上標iU+2071

常用下標字元

字元說明Unicode
下標0U+2080
下標1U+2081
下標2U+2082
下標3U+2083
下標4U+2084
下標nU+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> 就夠了。


參考來源: