![更改特定字符的 StylisticSet](https://linux22.com/image/470022/%E6%9B%B4%E6%94%B9%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E7%9A%84%20StylisticSet.png)
我正在使用带有 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}