第 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}