マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

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 つの集合の合併になっている:
    • 「AJ1 グリフに対応する文字を含む Unicode ブロック」全てを合わせたもののうち、BMPにあるもの。
    • 「AJ1 グリフに対応する文字の集合」のうち、BMPにあるもの。
    前者はリスト①に等しい。後者はバラバラの符号位置で煩雑なので完全に示すのは避けるが、リスト②の部分集合である。
  • (iv) upLaTeX で otf パッケージを読み込んだ場合の \UTF 入力の和文フォント(utfjmr?-h、utfjmr?-v 等)*1
    以下の 2 つの集合の合併になっている:
    • BMP の全域。
    • 「AJ1 グリフに対応する文字の集合」のうち、BMPにあるもの。
    前者は 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 でもない文字

その上で調査結果を表にまとめると以下のようになる。

分類BMPBMP
ABCABC
🈓🉆🍣
(i) upjisr-h××××
(i) 改訂版×××
(ii) upjpnrm-h××
(iii) upnmlrmin-h×××
(iv) utfjmr?-h××

…………ややこしい。

*1:これらは“4096-サブフォント形式”である(‘?’はサブフォント番号 )が、サブフォントのマップ先の Unicode 符号値を基準にして考える。