fonts / siunitx:了解「偵測全部」和「偵測內聯家庭=數學」的工作原理

fonts / siunitx:了解「偵測全部」和「偵測內聯家庭=數學」的工作原理

對於以下內容,我需要

  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預設使用其中一種\mathXXX字體,並且預設情況下該字體\mathXXX使用文字字體,因此\num即使在數學中也使用文字字體。您math-rm = \symup可以強制它使用數學字體。

detect-inline-family=math並不意味著\num將使用數學字體,而是意味著\num如果它位於數學命令內,則會做出反應。嘗試例如

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

在此輸入影像描述

  1. 知道是否可以使預設的數學字體粗細與周圍的字體一樣輕

坎布里亞數學有點大膽。為什麼不使用更適合的預設值(拉丁現代數學)?

相關內容