unicode-math の理論を完全に理解したい(続き)
入力における立体と斜体の自動補正
「立体と斜体の“非区別”」の小節で述べた通り、数式中のラテン小文字は普通は斜体が使われる。従って、従来の LaTeX 数式では x を入力すると「斜体の x」が出力される。しかし、これまでに述べた理屈をそのまま適用すると、unicode-math では x(U+007B) の入力では「立体の x」が出力されて、「斜体の x」を出力するには U+1D465 の文字または \symit{x} を入力する必要が生じてしまう。
この面倒を避けるための対処として、unicode-math では「入力の立体と斜体を自動的に補正する」「立体と斜体を区別しない特殊な数式英字フォント命令を用意する」という入力補正を行っている。
- up の(“基本”の)文字、it の文字の入力 →
\symupまたは\symitに補正される - bfup の文字、bfit の文字、
\symbf命令の入力 →\symbfupまたは\symbfitに補正される - sfup の文字、sfit の文字、
\symsf命令の入力 →\symsfupまたは\symsfitに補正される - bfsfup の文字、bfsfit の文字、
\symbfsf命令の入力 →\symbfsfupまたは\symbfsfitに補正される
※具体的な数式英字フォント命令(\symup や \symsfit 等)は入力補正の対象にならない。
先述の通り「立体と斜体の何れを常用するか」に様々な習慣があるため、入力補正の方式をオプション*1で選択できる。up 対 it の補正結果は math-style オプションの値により決まる。
| オプション値 | ラテン小 | ラテン大 | ギリシャ小 | ギリシャ大 |
|---|---|---|---|---|
ISO |
it | it | it | it |
TeX |
it | it | it | up |
french |
it | up | up | up |
upright |
up | up | up | up |
※literal指定で補正が抑止され、入力の立体と斜体の区別が保持される。
bfup 対 bfit の補正結果は bold-style オプションの値により決まる。((先述の通り、math-style の TeX の設定は米国の習慣を反映したものといえそうだが、bold-style の TeX、特に「ギリシャ小文字を斜体とする」については注意が必要だと思う。単なる「LaTeX 者の習慣」なのかもしれない。))
| オプション値 | ラテン小 | ラテン大 | ギリシャ小 | ギリシャ大 |
|---|---|---|---|---|
ISO |
bfit | bfit | bfit | bfit |
TeX |
bfup | bfup | bfit | bfup |
upright |
bfup | bfup | bfup | bfup |
※literal指定で入力補正が抑止され、入力の立体と斜体の区別が保持される。
sfup 対 sfit、および bfsfup 対 bfsfit の補正結果は sans-style オプションの値により決まる。
| オプション値 | 意味 | |
|---|---|---|
italic |
sfit および bfsfit | |
upright |
sfup および bfsfup |
※literal指定で入力補正が抑止され、入力の立体と斜体の区別が保持される。
※ところで、Unicode の「数式書体付文字」においては、ギリシャ文字はサンセリフ太字(bfsf)をもつが単なる太字(sf)はもたないという規定になっている。何故なんだろう?
※bold-style と sans-style の既定値は math-style の設定値に依存する。math-style の既定値は TeX である。
| math- 設定値 | bold- 既定値 | sans- 既定値 |
|---|---|---|
ISO |
ISO |
italic |
TeX |
TeX |
upright |
french |
upright |
upright |
upright |
upright |
upright |
literal |
literal |
literal |
ナブラ記号と偏微分記号
ナブラ記号(∇;U+2207)と偏微分記号(∂;U+2202)は Unicode で「数式書体付文字」として扱われている。*2従って、これらの文字も「数式英字」の範囲に含まれ、また入力補正の対象となる。入力補正の方式は各文字ごとに個別のオプションで指定する。
ナブラ記号の補正結果は nabla オプションの値により決まる。偏微分記号の補正結果は partial オプションの値により決まる。
italic: 斜体(it/bfit/bfsfit)になる。upright: 立体(up/bfup/bfsfup)になる。literal: 入力補正が抑止される。
nabla の既定値は upright、partial の既定値は italic であるが、math-style が literal の場合は両方の既定値が literal に変わる。
\symliteral 命令
オプションの設定に関わらず、\symliteral 命令を利用すると入力の補正を抑止できる。例えば、math-style が literal 以外の場合、x(U+007B) と U+1D465 は同じ出力(立体か斜体の何れか一方)になるが、\symliteral の引数に入れた場合は x は立体、U+1D465 は斜体で出力される。