我正在(重新)熟悉用于多语言文档的 babel 和 lualatex。我知道我可以使用以下方法设置单个字体系列:
\babelfont[english]{rm}{Latin Modern Roman}
但是我该如何告诉 babel “对所有字体模式/样式使用所有经典 TeX 默认字体系列”(包括小型大写字母、无衬线字体等)?我想告诉它一些与“Computer Modern”有关的内容,但显然没有具有类似名称的 lualatex 可用字体。
笔记:
- 我不介意它是多个命令。
- 我使用 TeXLive 2019(在 Devuan Beowulf ~= Debian Buster 上)。
答案1
同时定义\babelfont{sf}
和\babelfont{tt}
。例如:
\usepackage[greek,english]{babel}
\usepackage{fontspec}
\babelfont{rm}
{CMU Serif}
\babelfont{sf}
{CMU Sans Serif}
\babelfont{tt}
{CMU Typewriter Text}
您可能希望使用\defaultfontfeatures
after\usepackage{fontspec}
和 before设置大多数选项\babelfont
,例如,
\documentclass{article}
\usepackage[greek.ancient,english]{babel}
\usepackage{fontspec}
\defaultfontfeatures[NewComputerModern]{
UprightFont = {NewCM10-Regular},
ItalicFont = {NewCM10-Italic},
BoldFont = {NewCM10-Bold},
BoldItalicFont = {NewCM10-BoldItalic},
% Can define SizeFeatures to use NewCM08-* here.
Extension = {.otf} }
\babelfont[english]{rm} % Language=Default suppresses a harmless warning.
[Ligatures=Common, Language=Default]{NewComputerModern}
\babelfont[greek]{rm}
[Language=Default]{NewComputerModern}
\begin{document}
Homer’s \textit{\foreignlanguage{greek}{Ὀδύσσεια}} begins,
“\foreignlanguage{greek}{ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς
μάλα πολλὰ πλάγχθη}.”
\end{document}
您还可以为每种语言定义rm
、sf
和字体,例如:tt
\usepackage[english]{babel}
\usepackage{fontspec}
\babelprovide[import=ar]{arabic}
\defaultfontfeatures{ Scale=MatchUppercase,
Ligatures=TeX }
\babelfont{rm}
[Scale=1.o]{Libertinus Serif}
\babelfont[arabic]{rm}
{Amiri}
\babelfont{tt}
{Libertinus Mono}
\babelfont[arabic]{tt}
{ALM Fixed}