使用 fontspec 和 sansmathfonts 为 CM Sans 提供小写字母

使用 fontspec 和 sansmathfonts 为 CM Sans 提供小写字母

我想使用软件包中的 NewCMSans,因为它提供了真正的粗体无衬线字体(而不是像或 这样的newcomputermodern笔画扩展,请参阅 newcomputermodern 的文档)。NewCM 字体仅以 OpenType 形式提供,因此我需要使用。lmcmufontspec

NewCMSans提供 Regular 和 Oblique 的小写字母(光学尺寸为 8pt,而不是 10pt),但不提供 Bold 或 Bold Oblique。该sansmathfonts软件包提供 Sans Bold 和 Bold Slanted 小写字母,但仅作为Type 1字体。是否可以将这些 sansmathfonts 的小写字体(和旧式数字)与 NewCMSans 的其他字体组合成主 Sans 字体?

以下是我的尝试,但我无法强制字体编码为T1fontspec 定义中的 sansmathfonts \setsansfont

% !TeX program = lualatex
% lualatex and fontspec needed because New Computer Modern is only available as OpenType fonts
\documentclass[11pt,a4paper]{scrartcl}

\usepackage{lmodern}
\usepackage{newcomputermodern}
\usepackage{sansmathfonts}
\usepackage{fontspec}
\setsansfont{NewComputerModernSans10}[
Numbers=OldStyle,
ItalicFeatures = { SmallCapsFont = NewCMSans08-Oblique, SmallCapsFeatures={Letters=SmallCaps} },
BoldFeatures = { SmallCapsFont = cmssbxcsc10 },  % \usefont{T1}{xcmss}{bx}{sc}
BoldItalicFeatures = { SmallCapsFont = cmssxicsc10 },  % \usefont{T1}{xcmss}{bx}{scit}
]

\begin{document}

\sffamily
\begin{itemize}
  \item Upright éà 1234 and \textsc{Small Caps éà 1234},
  \item \emph{Italic éà 1234 and \textsc{Italic (Oblique) Small Caps éà 1234}},
  \item \textbf{Bold éà 1234 and \textsc{Bold Small Caps éà 1234}},
  \item \textbf{\emph{Bold Italic éà 1234 and \textsc{Bold Italic Small Caps éà 1234}}}.
\end{itemize}

Desired output (small caps with accents and oldstyle figures):
\usefont{T1}{xcmss}{bx}{sc}
Bold Small Caps éà \fontspec{LMSans10-Bold}[Numbers=OldStyle]1234
\usefont{T1}{xcmss}{bx}{scit}
Bold Italic Small Caps éà \fontspec{LMSans10-BoldOblique}[Numbers=OldStyle]1234

\end{document}

相关内容