XeLaTeX:如何防止在数学模式中使用下标和上标版本的阿拉伯数字?

XeLaTeX:如何防止在数学模式中使用下标和上标版本的阿拉伯数字?

我用自由主义者我的文档中的字体系列。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}

1234567890^1234567890

答案1

手册中的第 4.2 节unicode-math指定Style=MathScriptStyle=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}

在此处输入图片描述

相关内容