在多语系统中设置语言变体会从字体中删除小写字母

在多语系统中设置语言变体会从字体中删除小写字母

我遇到了polyglossia和某些字体之间的奇怪交互(尽管我只测试过)。当为语言Libertinus Serif指定语言变体时,小写字母在 Libertinus 字体中不起作用。bokmalnorwegian

\documentclass{article}

\usepackage{polyglossia}
    \setdefaultlanguage[variant = bokmal]{norwegian}
\usepackage{fontspec}
    \setmainfont{Libertinus Serif}

\begin{document}
\textsc{abc}
\end{document}

LaTeX 字体警告:字体形状TU/LibertinusSerif(1)/m/sc未定义

(字体)TU/LibertinusSerif(1)/m/n在第 9 行输入中使用。

删除语言变体或使用默认字体时,小写字母会照常显示。虽然我认为这是某种奇怪的错误,但我想知道在修复之前如何解决这个问题。

答案1

您可以重置小型大写字母的语言:

\documentclass{article}

\usepackage{polyglossia}
\setdefaultlanguage[variant = bokmal]{norwegian}

\usepackage{fontspec}
\setmainfont{Libertinus Serif}[SmallCapsFont={Libertinus Serif},SmallCapsFeatures={Language=Default,Letters = SmallCaps}]

\begin{document}

\textsc{abc}
\end{document}

相关内容