更改 siunitx 输出的字体大小

更改 siunitx 输出的字体大小

使用 siunitx 包编写带单位的数字时\SI{1064}{\um},数字和单位明显小于文本,但 mu 似乎是正确的大小。我使用 Verdana 作为主文本字体,并使用数学的默认 LaTeX 字体。MiKTeX 并使用 LuaLaTeX 编译。

平均能量损失

\documentclass[10pt,a4paper]{article}
\usepackage{siunitx}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setsansfont{Verdana} % Setting sans font
\renewcommand*{\familydefault}{\sfdefault} % Making sans serif font the default
\linespread{1.16} % Increasing the linespacing
\usepackage{unicode-math}

\begin{document} 
This is some text \SI{1064}{\um} m $m$
\end{document}

未缩放的文本

我尝试使用\defaultfontfeatures{Scale=MatchLowercase}

\documentclass[10pt,a4paper]{article} \usepackage{siunitx}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setsansfont{Verdana} % Setting sans font
\renewcommand*{\familydefault}{\sfdefault} % Making sans serif font the default
\linespread{1.16}        % Increasing the linespacing
\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}

\begin{document}
This is some text with scaling \SI{1064}{\um} m $m$
\end{document}}

带缩放的文本

数学模式中的数字和 m 变大了,但单位中的 m 没有变大。我试过了,\sisetup{detect-all}但那只会把所有用 Verdana 书写的文字都改成\SIVerdana,这不是我想要的。有没有办法增加单位字体的大小?

答案1

您的问题是数学模式字体与正文字体大小不同。我已通过缩放来解决这个问题,例如

\documentclass[10pt,a4paper]{article}
\usepackage{siunitx}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures = TeX, Scale = MatchLowercase}
\setsansfont{Verdana} % Setting sans font
\renewcommand*{\familydefault}{\sfdefault} % Making sans serif font the default
\usepackage{unicode-math}
\begin{document} 
This is some text \qty{1064}{\um}.
\end{document}

答案2

我的建议是使用siunitx选项加载mode=text。这样,文本字体(此处:Verdana)将在\num\unit指令中自动使用。

在此处输入图片描述

% !TEX TS-program = lualatex
\documentclass{article} 

\usepackage{unicode-math}
\setmainfont{Verdana} % main font

\usepackage[mode=text]{siunitx}

\begin{document}
This is some text \dots\ \qty{1064}{\um}.
\end{document}

答案3

我最初将@JosephWright 的答案标记为解决方案,但这似乎缩小了主字体(Verdana)以匹配数学字体大小。

因此,使用他的回答以及@Mico 关于如何更改主数学字体的评论,我找到了一个似乎有效的解决方案:

\documentclass[10pt,a4paper]{article}
\usepackage{siunitx}
\usepackage{unicode-math}

\defaultfontfeatures{Ligatures=TeX}
\setsansfont{Verdana} % Setting sans font
\renewcommand*{\familydefault}{\sfdefault} % Making sans serif font the default
\setmathfont{Cambria Math}[Scale=MatchUppercase] % Setting the maths font and scaling to match Verdana size
\setmathrm{Cambria Math}[Scale=MatchUppercase] % Setting the upright maths font used by siunitx
\newfontfamily{\mufont}{Cambria Math} % Selecting the mu from the Cambria Math font...
\DeclareSIPrefix\micro{\ensuremath{\mufont μ}}{-6} % ...and the selecting it for use with siunitx and make it represent 10^-6

\begin{document}
This is some text \dots\ \qty{1064}{\um}.
\end{document}

我需要将直立数学字体设置为 Cambria Math 并按比例缩放\setmathrm{Cambria Math}[Scale=MatchUppercase]

相关内容