为什么 XeLaTeX 中的风格集会破坏脚本风格?

为什么 XeLaTeX 中的风格集会破坏脚本风格?
\documentclass{article}
\usepackage{amsmath, amsfonts, amssymb}%
\usepackage{unicode-math}
\setmainfont{STIX Two Text}
\setmathfont{STIX Two Math}[StylisticSet={02}]

\begin{document}
$g^g_{g^g}$
\end{document}

当我们选择 StylisticSet={02} 时,上标和下标的 'g' 和 'z' 形状没有改变。如何控制它?

在此处输入图片描述

答案1

在我看来,这看起来像是一个错误,我还没有尝试确定它是否在unicode-mathXeTeX 中。这是一个临时的解决方法:

\setmathfont{STIX Two Math}[StylisticSet=2,
                            script-features={},
                            sscript-features={}]

解决方法示例

目前,设置StylisticSet=2insidescript-features不起作用。您可以通过使用 来限制解决方法的范围range=。如下所示:

\setmathfont{STIX Two Math}[StylisticSet=2]
\setmathfont{STIX Two Math}[StylisticSet=2,
                            range=it/{latin},
                            script-features={},
                            sscript-features={}]

将范围设置为仅需要它的单个字母也不起作用。

\ifXeTeX由于目前只有 XeTeX 需要它,你可以从包中将其包装起来iftex。这样你就可以获得:

\documentclass[varwidth, preview]{standalone}
\usepackage{iftex}
\usepackage{amsmath}
\usepackage{unicode-math}

\defaultfontfeatures{ Scale = MatchLowercase }
\setmainfont{STIX2Text}[
  Scale = 1.0 ,
  Ligatures = {Common, TeX},
  UprightFont = *-Regular ,
  BoldFont = *-Bold ,
  ItalicFont = *-Italic ,
  BoldItalicFont = *-BoldItalic ,
  Extension = .otf ]
\setmathfont{STIX2Math.otf}[StylisticSet=2]

\ifXeTeX
\setmathfont{STIX2Math.otf}[StylisticSet=2,
                            range=it/{latin},
                            script-features={},
                            sscript-features={}]
\fi% XeTeX

\begin{document}
$g^g_{g^g}$ $z^z_{z^z}$ $\alpha^\alpha_{\alpha^\alpha}$
\end{document}

相关内容