unicode-mathの利用

unicode-mathについて

unicode-mathは,XeTeX やLuaTeX で,Unicodeの数学記号を利用して数式を組むパッケージである。たとえば,数式のxは,このパッケージを使わない場合はU+0078の文字,このパッケージを使った場合はU+1D465の文字が使われる。U+0078はテキスト文字であるxのコード,U+1D465は数式文字(斜体)であるxのコードになる。このパッケージを使わない場合は,フォントを取り替えて斜体xを表すが,このパッケージを使う場合,フォントがもっている数式文字の斜体xを使うことになる。

したがって,Unicodeの数式記号にグリフが登録されているフォントが必要で,いまのところ,そのようなフォントは限られている。

数式組版に使用する文字コードが異なるため,組み上がったPDFから,文字をコピーアンドペーストしたときにも違いが出る。対応したフォントで表示すれば,数式がある程度再現されるが,フォントに数式記号のグリフが登録されていなければ,その部分は文字が表示されない。

まだメリットはあまりなさそうだが,将来に期待して,私はこの環境を使おうと思った。ただ,このパッケージを使うと,数式フォントでbold,SansSerif,bold SansSerifを切り替えることが簡単にできる。この点は気に入っている。

簡単な設定例

Latin Modernを使うなら,このフォントがデフォルトなので,次のようにするだけで,unicode-mathを利用できる。

\usepackage{unicode-math}
\unimathsetup{math-style=ISO,bold-style=ISO}

STIXフォント

STIXは,Scientific and Technical Information Exchangeの頭文字で,科学技術系の情報交換用のフォントである。ライセンスフリーであり,アメリカのおもな学会も,このフォント事業に参加しているという。TeXとも相性がよさそう。

Timesがベースのフォントであるため,Century系のフォントが中心である日本の数式組版から見ると,やや異質なところもある。ただ,小文字のvの斜体で,底の部分が丸くなっているため,ギリシャ文字\nuと見分けがつきやすくなっている。
STIXフォントを利用した例を以下に示す。

STIXフォントでの指定例

いろいろと試行錯誤した結果,次のような設定に行き着いている。

\usepackage{unicode-math}
\unimathsetup{math-style=ISO,bold-style=ISO}
\setmainfont{STIX Two Text}[Ligatures=TeX, Scale=1.1]
\setmathfont{STIX Two Math}[Scale=1.1]
\setmathfont{STIX Two Math}[Scale=1.1,range={"1D454,"1D488},StylisticSet={2},script-features={},sscript-features={}]
  • math-style,bold-style:立体,斜体の選択が自然な感じがしたのでISOを指定した。
  • Scale=1.1:日本語に対して,英数字が小さい印象だったので,英数字のサイズを110%にした。
  • StylisticSet={2}:小文字gの斜体のデザインを変えるために異体字を使う指定にした。
  • range:異体字を使う指定をすると,小文字vも底がとがった字形に変わってしまうため,range指定して小文字gの斜体だけに限定した。
  • script-features,sscript-features:添字(上付文字,下付文字),添字の添字でも異体字を使うようにした。

この設定をして,数式中でregular,bold,SansSerif,bold SansSerifを切り替えることが簡単にできる。そのサンプルは次の通り。