数学字母表忽略 LuaLaTeX 上的字体规格选项

数学字母表忽略 LuaLaTeX 上的字体规格选项

我正在尝试基于 的代码在 LuaLaTeX 上创建一个新的数学字母表mathspec。我通过 设置了一个带有一些选项的字体系列,fontspec并将其声明为字母表。虽然它似乎有效,但 LuaLaTex 会忽略这些选项。

具体来说,我借用了以下几句话mathspec

\usepackage[no-math]{fontspec}

\makeatletter
    \zf@fontspec{Style = Swash}{Arno Pro Italic}
    \let\eu@mathcal\zf@family
    \DeclareMathAlphabet{\mymathcal}{EU2}{\eu@mathcal}{m}{n}
\makeatother

例如,当我使用 时$\mymathcal{N}$,LuaLaTeX 会打印标准斜体 N,而不是其花体版本。另一方面,XeLaTeX 工作正常(更改编码方案后)。

你知道我该如何解决这个问题吗?

答案1

您必须使用Renderer=Basic。还有更好的方法来定义字体,使用较新版本的fontspec

\documentclass{article}
\usepackage[no-math]{fontspec}

\newfontfamily{\myswashfont}{Cochineal}[
  Style=Swash,NFSSFamily=myswash,Renderer=Basic
]
\newfontfamily{\mynonswashfont}{Cochineal}[] % just for testing

\DeclareMathAlphabet{\mymathcal}{\encodingdefault}{myswash}{m}{it}

\begin{document}

{\mynonswashfont\itshape ABCDEFHIJKLMNOPQRSTUVWXYZ}

{\myswashfont\itshape ABCDEFHIJKLMNOPQRSTUVWXYZ}

$\mymathcal{Q}$

{\mynonswashfont\itshape Q}

{\myswashfont\itshape Q}

\end{document}

在此处输入图片描述

您可以看到第三行(带有\mymathcal)具有与最后一行相同的输出。

相关内容