首先,我知道我不应该使用babel
在 XeTeX 中,但是这个奇怪的问题困扰着我。
这是我在 Overleaf 上创建的 MWE:
\documentclass{article}
\usepackage{fontspec}
\iftrue
\usepackage{polyglossia}
\setdefaultlanguage{english}
\else
\usepackage[english]{babel}
\fi
\usepackage[default]{sourcesanspro}
\begin{document}
\section*{This is a section title}
And this is a body text.
\end{document}
因为我给了选择default
权sourcesanspro
,我期望它能应用于整个文档。然而,我得到的结果是:
因此,字体仅应用于节标题,而不是正文。
现在,让我们停用polyglossia
并激活babel
通过将第 5 行从 更改\iftrue
为\iffalse
。然后我得到:
可以看出字体已应用于两者。
一开始我以为这是sourcesanspro
,但现在我甚至不知道原因是什么。我还没有检查这是否是 Overleaf 特有的问题;因此,仅供参考,以下是应用 Overleaf 时上述 MWE 的链接多语或者巴别塔。
请问有什么线索可以解决此问题吗?
答案1
该sourcesanspro
包重置\familydefault,
但没有\rmdefault
。
\documentclass{article}
\usepackage{fontspec}
\iftrue
\usepackage{polyglossia}
\setdefaultlanguage{english}
\else
\usepackage[english]{babel}
\fi
\usepackage[default]{sourcesanspro}
\edef\rmdefault{\sfdefault} % this is missing in sourcesanspro
\begin{document}
\section*{This is a section title}
And this is a body text.
\end{document}