フォント / siunitx: 「detect-all」と「detect-inline-family=math」の仕組みを理解する

フォント / siunitx: 「detect-all」と「detect-inline-family=math」の仕組みを理解する

以下のために、私は

  1. detect-allも、周囲のインライン数式と同じフォントで印刷detect-inline-family=mathされない理由を理解しています\num。そうする唯一の方法はmath-rm = \symupこの答え

  2. ドキュメントをデフォルトの数学フォントでコピーmath-rm = \symupするためにオプションをロードする必要がある理由を理解します。\num

  3. 私の目には少し太く見えるので、デフォルトの数式フォントの太さを周囲の通常のテキストと同じくらい薄くできるかどうか知りたいです。

ここに画像の説明を入力してください

\documentclass[14pt]{article}

\usepackage[no-math]{fontspec}
\setmainfont{Latin Modern Roman}

\usepackage{unicode-math}
\setmathfont[math-style=ISO]{Cambria Math}

\usepackage[
detect-all,
detect-inline-family=math
]{siunitx}

\begin{document}
    \centering
    text: 123 \num{123}\\
    inline math: $123~\num{123}$\\
    display math: \[123~\num{123}\]
    
    \verb|\sisetup{math-rm = \symup}|
    \sisetup{math-rm = \symup} % https://tex.stackexchange.com/a/438342/2288
    
    \vspace{\baselineskip}
    text: 123 \num{123}\\
    inline math: $123~\num{123}$\\
    display math: \[123~\num{123}\]
\end{document}

答え1

\mathrm(\mathbfおよびなど) は、デフォルトの設定で周囲のテキスト フォントからのグリフを使用し、\symrm(および\symbf? など) は数式フォントからのグリフを使用します。

\documentclass[14pt]{article}

\usepackage{unicode-math}
\setmainfont{Arial}
\setmathfont[math-style=ISO]{Cambria Math}
\begin{document}\pagestyle{empty}
$\mathrm{mathrm}\quad\symrm{symrm}$
\end{document}

ここに画像の説明を入力してください

デフォルトではフォント\numの 1 つが使用され\mathXXX、デフォルトではこの\mathXXXフォントはテキスト フォントを使用するため、\num数式でもテキスト フォントが使用されます。 を使用すると、math-rm = \symup数式フォントを使用するように強制できます。

detect-inline-family=math\num数式フォントを使用するという意味ではなく、\num数式コマンド内にある場合に反応するという意味です。例えば、

  $123~\num{456}~\mathsf{\num{789}}$

ここに画像の説明を入力してください

  1. デフォルトの数式フォントの太さを周囲のフォントと同じくらい薄くできるかどうかを知る

そうですね、Cambria Math は少し太字です。より適したデフォルト (ラテン現代数学) を使用しないのはなぜですか?

関連情報