为什么使用 STIX2 时某些数学字形与文本字形不同?

为什么使用 STIX2 时某些数学字形与文本字形不同?

当使用 STIX2 字体来处理文本和数学运算时,数学模式下的某些字形与文本模式下的字形不同。例如,$zuvw$产生的字形与 不同\emph{zuvw}

示例输出

问:为什么会这样?是否可以改变这种情况,以便数学模式字形与文本模式中的字形相同?

我注意到字体文件中STIX2Math.otf存在两种版本的字形。因此,我相信默认行为符合数学字体设计的一般原则,并且不是一个错误。

MWE 假设 STIX2 OpenType 字体位于指定路径中:

\documentclass[11pt]{article}
\usepackage{fontspec} 
\usepackage{unicode-math}
\setmathfont{STIX2Math}[
Extension={.otf},
Path=./STIX2fonts/,
Scale=1]
\setmainfont{STIX2Text}[
Extension={.otf},
Path=./STIX2fonts/,
UprightFont={*-Regular},
BoldFont={*-Bold},
ItalicFont={*-Italic},
BoldItalicFont={*-BoldItalic}]

\begin{document}
\verb|$zuvw$|: $zuvw$, \verb|\emph{zuvw}|: \emph{zuvw}.
\end{document}

答案1

STIX Two 的官方文档(texdoc stixtwomath)展示了适合“uvwz”的样式集,如斜体 STIX Two,但不幸的是,也会g更改为形状不同的来自斜体。

在此处输入图片描述

因此,需要对范围进行一些调整。

\documentclass[11pt]{article}
\usepackage{fontspec}
\usepackage{unicode-math}

\setmainfont{STIX Two Text}
\setmathfont{STIX Two Math}
\setmathfont{STIX Two Math}[
  range={`u,`v,`w,`z,"1D462,"1D463,"1D464,"1D467},
  StylisticSet=02,
]

\begin{document}

\verb|$zuvwg$|: $zuvwg$, \verb|\emph{zuvwg}|: \emph{zuvwg}.

\end{document}

在此处输入图片描述

相关内容