答案1
您不会指望加载顺序会有什么不同:babel
是关于选择语言自定义,fontspec
是关于选择字体,这些只是略有关联。当然,babel
包括许多不同作者的许多不同语言文件,可能存在一些极端情况,以不同的顺序加载可以解决某些问题,但我不知道有任何这种情况。
请注意,链接的问题都是 2015 年之前的旧版本,当时 xelatex 和 lualatex 默认(如 pdftex)使用原始 TeX OT1 7 位编码,因此某些 babel 文件可能已警告该编码无法支持所请求的语言。然而,lualatex 和 xelatex 现在都默认(并且通常只使用)TU(Unicode),因此语言的选择不应影响所使用的编码,尽管当然并非所有字体都涵盖所有语言脚本。
请注意,在 (pdf)latex 中情况有所不同,因为您只能使用 8 位编码,因此需要更改编码以支持不同的语言。这意味着可能需要事先调用fontenc
(not )以避免出现警告,例如加载编码以支持希腊语,或加载 T1 以支持大多数西欧语言,但即使在这里,我认为在大多数情况下,即使没有事先明确加载,babel 文件也会安排正确的编码。fontspec
babel
LGR
fontenc
答案2
在 3.15 版本中,Babel 直接支持通过 fontspec 配置字体。在这种情况下,你可以直接使用命令\babelfont
,而不需要fontspec
自己显式加载:
\documentclass{article}
\usepackage[american]{babel}
\babelfont{rm}{Libertinus Serif}
\babelfont{sf}{Libertinus Sans}
\begin{document}
\Huge Hello World. \textsf{In Sans.}
\end{document}
参见 babel 手册第 1.14 节“选择字体”。