我想使用软件包中的 NewCMSans,因为它提供了真正的粗体无衬线字体(而不是像或 这样的newcomputermodern
笔画扩展,请参阅 newcomputermodern 的文档)。NewCM 字体仅以 OpenType 形式提供,因此我需要使用。lm
cmu
fontspec
NewCMSans
提供 Regular 和 Oblique 的小写字母(光学尺寸为 8pt,而不是 10pt),但不提供 Bold 或 Bold Oblique。该sansmathfonts
软件包提供 Sans Bold 和 Bold Slanted 小写字母,但仅作为Type 1
字体。是否可以将这些 sansmathfonts 的小写字体(和旧式数字)与 NewCMSans 的其他字体组合成主 Sans 字体?
以下是我的尝试,但我无法强制字体编码为T1
fontspec 定义中的 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}