使用 luatex 替换 unicode-math 中的单个代码点

使用 luatex 替换 unicode-math 中的单个代码点

我想替换数学字体中的特定字形。使用预定义范围时效果很好:

\setmathfont[math-style=TeX, Scale=\mathscale, Path=/u/val/Documents/thesis/fonts/xits/, Extension=.otf, StylisticSet={8}]{xits-math}
\setmathfont[range=it/Latin, Scale=\mathscale, Path=/u/val/Documents/thesis/fonts/EB_Garamond/, Extension=.otf]{EBGaramond12-Italic}

但是,下面的方法不起作用:

\setmathfont[math-style=TeX, Scale=\mathscale, Path=/u/val/Documents/thesis/fonts/xits/, Extension=.otf, StylisticSet={8}]{xits-math}
\setmathfont[range={"1D434-"1D44D}, Scale=\mathscale, Path=/u/val/Documents/thesis/fonts/EB_Garamond/, Extension=.otf]{EBGaramond12-Italic}

我只是用代码点替换了“range=it/Latin”。“it/Latin”范围似乎有额外的效果。

如何获得“range=it/Latin”的效果并结合仅选择特定字形的自由?

我正在使用 unicode-math 0.8b 和 LuaTex beta-0.80.0(TeX Live 2015/TeX Live for SUSE Linux)编辑:不适用于 unicode-math 0.8d 和 LuaTex 0.95.0 (TeX Live 2016)

注意:我还尝试了各种不同的范围表达式,但它们都对输出没有任何影响:

range="41-"5A
range={"41-"5A->"1D434-"1D44D}
range={"1D434-"1D44D->"41-"5A}
range=it/{"1D434-"1D44D}
range=it/{"41-"5A}
range={119860-119885}

以及上述的几种组合……

编辑:

MWE 来说明这个问题:

\documentclass{minimal} 
\usepackage{unicode-math}

\setmainfont{Kurier}
\setmathfont{xits}
\setmathfont{KurierItalic}[range={"1D434-"1D44D}]
% \setmathfont{KurierItalic}[range={it/Latin}]

\begin{document}
   \textit{ABCDEFabcdef}
   $ABCDEFabcdef$
\end{document}

当包含当前注释掉的行时,这会起作用(文本和数学模式具有相同的大写字母),但上面的行没有任何效果。

相关内容