我用自由主义者我的文档中的字体系列。Libertinus Serif 包含阿拉伯数字的上标和下标版本,而 Libertinus Math 则不然。
在数学模式下,由于某种原因,这些字形被\normalsize
显式地(即通过\small
、、\scriptsize
和\footnotesize
)\tiny)
或隐式地(例如通过^
和_
)与小于 的任何内容一起使用(导致不愉快的字距调整等)。将上标/下标数字换行有助于\mathrm
解决问题。但肯定有更好的方法吧?
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{Libertinus Serif}
\setmathfont{Libertinus Math}
\begin{document}
$1234567890^{1234567890}$
$1234567890^\mathrm{1234567890}$
\end{document}
答案1
手册中的第 4.2 节unicode-math
指定Style=MathScript
和Style=MathScriptScript
自动应用于小于字体基本大小的尺寸。
Libertinus Math 字体恰好通过为数字定义特定形状来支持这些功能。
您可以通过指定范围为数字设置不同的字体来禁用此功能:
\documentclass[12pt]{article}
\usepackage{ifxetex} % for the ugly workaround
\usepackage{unicode-math}
\setmainfont{Libertinus Serif}
\setmathfont{Libertinus Math}[
]
\setmathfont{Libertinus Math}[
range=`0-`9,
script-features={},
sscript-features={},
]
\setmathfont{Libertinus Math}[range=\int] % just for safety
% using range has unexpected consequences on \left and \right
% see http://tex.stackexchange.com/a/207554/4427
\ifxetex
\Udelcodenum`.=1073741824 % reset the right delcode
fi
\begin{document}
$1234567890^{1234567890}$
$1234567890^\mathrm{1234567890}$
\end{document}