やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

HTML文書をつくる12 文字の上付き、下付き(sup, sub)

 上付き文字、下付き文字をあらわす。

要素一覧

要素 概要
<sup> 上付き文字
<sub> 下付き文字
  • CO2
  • X2

 MathMLを推奨するが、簡単に書きたいときに使ってもよい。

使い分け

Unicode文字

⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾
₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
  • CO₂

 ほかにも文字はある。以下参照。

<sup>, <sub>

CO<sub>2</sub>
X<sup>2</sup>
  • CO2
  • X2

<math>

 MathMLは数式を書くためのXMLサブセットである。HTMLに埋め込んでよいが、ほとんどのブラウザは未対応なので、MathJaxというJavaScriptライブラリを使って描画する。

<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=MML_SVG"></script>

<math><mi>C</mi><msub><mi>O</mi><mn>2</mn></msub></math>
<math><msup><mi>X</mi><mn>2</mn></msup></math>
  • CO2
  • X2

まとめ

Unicode文字 <sup>, <sub> <math>
CO₂ CO2 CO2
X2 X2

テキストコピー

Unicode文字 <sup>, <sub> <math>
CO₂ CO2 不可
X2 不可

所感

 MathMLが一番かっこいいが、コードも一番長い。しかもテキストコピーできない。どれを使うべきか悩む。上付き、下付きくらいならUnicode文字を使えばいい気がする。

 <sup>, <sub>は中途半端。簡単にやるならUnicode文字を使ったほうがいい。表示の綺麗さもUnicodeよりはマシというレベル。そしてテキストコピーをすると上付き、下付きでなくなってしまう。これ、使いどころはあるのか? 私ならUnicode文字を使いたい。

対象環境

$ uname -a
Linux raspberrypi 5.10.63-v7l+ #1496 SMP Wed Dec 1 15:58:56 GMT 2021 armv7l GNU/Linux