Fontspec:旧式数字和字体

Fontspec:旧式数字和字体

我正在尝试在 LuaLaTeX 文档中使用旧式数字。我的主要字体是“Cambria”,我不想更改它。

古式人物

正如您在这张图片(第 2 行)中看到的,字体发生了变化。如果使用该\oldstylenums命令,我不希望发生这种变化。奇怪的是,普通文本使用正确的数字。我如何才能轻松更改该命令的样式?

\documentclass{article}

\usepackage{fontspec}
\usepackage[math-style=ISO,bold-style=ISO]{unicode-math}%
\usepackage{MnSymbol}%
\setmainfont[Numbers={OldStyle,Proportional}]{Cambria}%
\setsansfont{Calibri}%
\setmonofont{Consolas}%
\setmathfont[range={it,sfit}]{Cambria Italic}%
\setmathfont[range={bfit,bfsfit}]{Cambria Bold Italic}%
\setmathfont{Cambria Math}%

\begin{document}
    \section{This should have an old-style figure}
    This is a text containing some figures: 123456. They should be old-style and not lining. This is specifically old-style: \oldstylenums{123456}. And this is lining: \liningnums{123456}. And in math it shall be lining: \( 123456\)
\end{document}

更新:正如您在下图中看到的,该文档中使用了普通的 LaTeX 字体,但这种字体不应该出现在那里。

文档中的字体

答案1

总结一下评论中的讨论,代码有一个主要问题:它使用了MnSymbol。除其他外,它加载了textcomp一个不适用于 unicode 字体的包。这个问题已通过不加载MnSymbol包得到解决。

这可能没有什么真正的缺点,因为unicode-math提供的字体支持已经足够了,尤其是使用像“Cambria Math”这样的字体。

正确的字体

相关内容