`otherlanguage` 的 Sans/monospace 字体

`otherlanguage` 的 Sans/monospace 字体

第 4 节“字体设置”,多语手册提供:

如果某种脚本或语言需要特定的无字体或等宽字体,则可以分别使用\⟨script⟩fontsf\⟨language⟩fontsf\⟨script⟩fonttt或来定义\⟨language⟩fonttt

在我看来仅有的如果 sans/monospace 字体所针对的语言是 ,则该条件成立defaultlanguage。也就是说,如果我使用

\setdefaultlanguage{english}
\setotherlanguage{ukrainian}

然后设置

\newfontfamily\cyrillicfont{Times New Roman}[Script=Cyrillic]
\newfontfamily\cyrillicfontsf{Arial Black}[Script=Cyrillic]

多语症不是选择Arial Black何时\sffamily在乌克兰语环境中调用,但默认返回\sffamily拉丁语,如日志所示:

Missing character: There is no й in font [lmsans10-bold]:mapping=tex-text!

我不认为这是预期的行为,但我在 Polyglossia 源代码中也找不到任何关于为什么会发生这种情况的提示。

那么,我的问题是,如何为其他语言设置特定的无字体或等宽字体defaultlanguage


梅威瑟:

% !TEX TS-program = xelatex
% !TEX encoding = UTF-8 Unicode

\documentclass{scrartcl}

\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{lipsum}

\newfontfamily\cyrillicfont{Times New Roman}[Script=Cyrillic]
\newfontfamily\cyrillicfontsf{Arial Black}[Script=Cyrillic]

\setmainlanguage{english}
\setotherlanguage{ukrainian}

\begin{document}
\begin{ukrainian}
\author{А.В. Тор}
\title{Великий об'єм }
\maketitle
\section{Перший}
\sffamily
\lipsum[1]
\end{ukrainian}
\sffamily
\lipsum[1]
\end{document}

相关内容