我正在尝试基于 的代码在 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
)具有与最后一行相同的输出。