upTeX できる Unicode の話
前回の話に関連して、upTeX で使われる論理フォント(VF)について、サポートする文字の範囲を調べてみた。
- 調査対象は最新版の W32TeX。
- upTeX のバージョンは 1.20。
- otf のバージョンは v1.7b6(otfbeta;upTeX 対応版)
調査結果
- (i) upLaTeX の“標準”の和文フォント(upjisr-h、upjisg-h、upjisr-v、upjisg-v):
「AJ1 グリフに対応する文字を含む Unicode ブロック」全てを合わせたもののうち、BMP 内にあるもの。具体的にはリスト①(後述)の範囲。 - (ii) upLaTeX の“BMP 外対応”の和文フォント(upjpnrm-h、upjpngt-h、upjpnrm-v、upjpngt-v):
「AJ1 グリフに対応する文字を含む Unicode ブロック」全てを合わせたもの全域。具体的にはリスト① + リスト②の範囲。 - (iii) upLaTeX で otf パッケージを読み込んだ場合の(直接入力の)和文フォント(upnmlminr-h、upnmlminr-v 等):
以下の 2 つの集合の合併になっている: 前者はリスト①に等しい。後者はバラバラの符号位置で煩雑なので完全に示すのは避けるが、リスト②の部分集合である。 - (iv) upLaTeX で otf パッケージを読み込んだ場合の
\UTF
入力の和文フォント(utfjmr?-h、utfjmr?-v 等)*1:
以下の 2 つの集合の合併になっている: 前者は U+0000..U+FFFF で、後者は(iii)の場合と同じ。
[2018-03-01 追記]uptex-fonts の [2018-02-11] 以降の版では、(i)のサポート範囲が拡大されて、結果的に(iii)と同一になった。
範囲リスト
リスト①
- U+0000..U+04FF
- U+1E00..U+243F
- U+2460..U+27BF
- U+2900..U+29FF
- U+2B00..U+2BFF
- U+2E80..U+2FDF
- U+3000..U+30FF
- U+3190..U+319F
- U+31F0..U+4DBF
- U+4E00..U+9FFF
- U+E000..U+FB4F
- U+FE10..U+FE1F
- U+FE30..U+FE4F
- U+FF00..U+FFEF
リスト②
- U+1F100..U+1F2FF
- U+20000..U+2A6DF
- U+2A700..U+2B81F
- U+2F800..U+2FA1F
まとめ
つまり、Unicode 文字を次の 3 つに分類したとする。
- A: AJ1 のグリフに対応する文字
- B: A ではないが、A が属するブロックの 1 つにある文字
- C: A でも B でもない文字
その上で調査結果を表にまとめると以下のようになる。
分類 | BMP 内 | BMP 外 | ||||
---|---|---|---|---|---|---|
A | B | C | A | B | C | |
例 | ☃ | ⛇ | ⟗ | 🈓 | 🉆 | 🍣 |
(i) upjisr-h | ○ | ○ | × | × | × | × |
(i) 改訂版 | ○ | ○ | × | ○ | × | × |
(ii) upjpnrm-h | ○ | ○ | × | ○ | ○ | × |
(iii) upnmlrmin-h | ○ | ○ | × | ○ | × | × |
(iv) utfjmr?-h | ○ | ○ | ○ | ○ | × | × |
…………ややこしい。