更改特定字符的 StylisticSet

更改特定字符的 StylisticSet

我正在使用带有 LuaLaTeX 和 unicode-math 的 STIX2 字体。我正在尝试使用 StylisticSet 2,它可以改变某些小写斜体字母的外观,但仅限于字母 z。然而,这似乎对我不起作用,命令 \mitz 被重新定义,但实际输入的字符“z”保持不变:

\documentclass{article}

\usepackage{fontspec}
\usepackage{unicode-math}

\setmathfont{STIX Two Math}[CharacterVariant=3]
\setmathfont{STIX Two Math}[range={\mitz},StylisticSet=2]
\setmainfont{STIX Two Text}

\begin{document}
$z\mitz$
\end{document}

这产生了

在此处输入图片描述

我希望第一个“z”看起来像第二个。(简单地将范围更改为“z”会产生错误,而使用代码点“1D467 会产生相同的结果。)谢谢!

答案1

您可以添加`z以下range选项:

\documentclass{article}

\usepackage{fontspec}
\usepackage{unicode-math}

\setmathfont{STIXTwoMath-Regular.otf}[CharacterVariant=3]
\setmathfont{STIXTwoMath-Regular.otf}[range={`z,\mitz},StylisticSet=2]
\setmainfont{STIXTwoText}[
  Extension=.otf,
  UprightFont=*-Regular,
  ItalicFont=*-Italic,
  BoldFont=*-Bold,
  BoldItalicFont=*-Italic,
]

\begin{document}

$z\mitz\symit{z}\symbf{z}$

\end{document}

(在这台机器上我需要以这种方式加载字体。)

在此处输入图片描述

答案2

在此处输入图片描述

unicode-math给出z一个\Umathcode使其排版为 U+1D467 的使用相同的字体

range选项使得输入字符"1D467排版为字符 U+1D467在设置了 ss2 的字体中

您想要的是z像字符输入一样运行"1D467,因此请赋予它相同的值\Umathcode

\documentclass{article}

\usepackage{fontspec}
\usepackage{unicode-math}

\setmathfont{STIX Two Math}[CharacterVariant=3]
\setmathfont{STIX Two Math}[range={\mitz},StylisticSet=2]
\setmainfont{STIX Two Text}

\begin{document}

\Umathcodenum`z=\Umathcodenum"1D467

$z\mitz$
\end{document}

相关内容