当使用 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}