
この問題が私の設定によるものなのか、それとも何らかのバグによるものなのかを確認したいと思います。
これは私がロードするパッケージとその構成です (問題をテストするためにすべて最小限に抑えています)。私は XeTeX 0.9998 を使用しています。
\documentclass[12pt,a4paper]{scrbook}
\usepackage{polyglossia}
\setmainlanguage{italian}
\usepackage{amsmath,amsthm,mathtools}
\usepackage{mathcomp,mathrsfs,xfrac,bbm}
\usepackage{unicode-math}
\usepackage{xunicode}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setsansfont[Scale=MatchLowercase]{Myriad Pro}
\setmonofont{Inconsolata}
\setmathfont{XITS Math}
書いているときに、数式のスペースがおかしいことに気付き、これを書いてしまったのですが、
これはかなりひどいものでした。スペースがまったく良くなく、衝突が多々あります。その後、Unicode-Math でサポートされているフォント (README にリストがあります) の中から選択して、他のフォントをいくつか試してみたところ、STIX Math と Latin Modern Math で同じ効果が得られることがわかりました。
ここでは、フォントが薄いため、問題はそれほど明白ではありませんが、ラテンモダンの標準バージョン(オープンタイプフォントとUnicode-mathを使用せずに)と比較します。
これは正しいので、Unicode-mathに関連するものだと思っていましたが、Neo EulerとAsana Mathを使用すると問題ないようです
この問題の原因が何かわかる人はいませんか? フォントでしょうか? XITS または STIX を使いたいので、そうではないことを願っています... 問題を再現できますか?
答え1
主な問題は、XeTeX が数式の斜体修正を適用していないことです。
- XITS には斜体修正機能があり、適切な間隔を保つためにこれが必要です。
- Latin Modern の場合、フォントはイタリック体の修正をまったく提供しません。
- Asana の数学では斜体修正もできませんが、グリフの間隔が広く取られているため、斜体修正の必要性が軽減されます。
- オイラーには斜体補正機能がありますが、直立したデザインのため、斜体補正機能がないことがあまり目立ちません (あなたの例は間違っていますが、
math-style=upright
オイラー アルファベットを使用するにはオプションを渡す必要があります)。
XeTeX が斜体修正の適用を停止した理由は私にはわかりません。コードのその部分は長い間変更されていませんでしたが、いずれにせよコードに欠陥があったため、誤って動作してしまい、最近の数式クリーンアップの一部が壊れたのではないかと推測します。
ただし、回避策があります。XITSフォントをフォントエディタ(FontForgeが望ましい)で開き、スペースグリフの幅を次のように設定します。0これにより、エンジンは斜体修正を再度適用するようになります。
興味深いことに、イタリック修正が適用されるかどうかは、コードの OpenType 数学ブランチであっても、フォントのスペース係数がゼロであるかどうかによって決まります。これは TFM 数学フォントには当てはまりますが、OpenType フォントの場合は必ずしも当てはまりません。
また、OpenType 数式仕様は、イタリック体の修正をいつ適用するかに関して TeX アルゴリズムと異なりますが、これは非常に曖昧であり、MS の実装は実際に文書化されているものとは異なっているようで、XeTeX と LuaTeX ではまだ十分にサポートされていません。
アップデート: 斜体修正のより堅牢な処理が考案されるまで、XeTeX のマスター ブランチではこれをより適切に処理します。