![パッケージ unicode-math: デフォルトで数式モードの文字を通常の ASCII 範囲にマップします](https://rvso.com/image/420750/%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%20unicode-math%3A%20%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A7%E6%95%B0%E5%BC%8F%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AE%E6%96%87%E5%AD%97%E3%82%92%E9%80%9A%E5%B8%B8%E3%81%AE%20ASCII%20%E7%AF%84%E5%9B%B2%E3%81%AB%E3%83%9E%E3%83%83%E3%83%97%E3%81%97%E3%81%BE%E3%81%99.png)
XeLaTeX では、追加オプションなしで fontspec と unicode-math を使用して PDF を作成していますが、ほとんどの場合、期待どおりに動作します。ただし、特定の状況 (この質問の最後で指定) では、数式モードの (ラテン) 文字を通常の ASCII 文字に直接マップし、適切なフォント (斜体、太字など) を使用して、デフォルトの動作として正しい視覚出力を生成する必要があります。
特定のコマンドではこれを実現できます。たとえば、$\mathit{x}$ は次のコードでこれを正しく実行します (私はそう思います)。ただし、$x$ はソース内の ASCII 文字 x を出力内の U+1D465 コード ポイントにマッピングします。
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\unimathsetup{
mathrm=text,
mathit=text,
mathsf=text,
mathbf=text,
mathtt=text,
math-style=ISO,
}
\begin{document}
$\mathit{x}$ <-- maps to ASCII x
$x$ <-- still maps to U+1D465
\end{document}
簡単に言うと、Unicode-Math で出力にデフォルトで ASCII 文字を使用するにはどうすればよいでしょうか?
理由は次のとおりです。
1: 一般的に、一部のフォントと同様に、視覚的な外観は均一ですが、通常のイタリック体フォントと数学用イタリック体フォントは互いに大きく異なります。
2: (最も重要) 最初に PDF を作成し (フラグメントをインポートするテンプレートを使用)、次に inkscape を使用して svg に変換することで、いくつかのドキュメント フラグメントから svg を作成しようとしています。これまでのところ、この方法が最も良い結果が得られていますが、inkscape では数式文字が正しくレンダリングされず、Web 互換性も心配です。