更新

更新

如果我\setmainfont在文档中使用指令,我得到的就是这个而不是英国字形!

在此处输入图片描述

这个问题的原因是什么?如何解决?

\documentclass{article}
\usepackage{harfload, fontspec}
\setmainfont{Noto Sans Bengali}[RawFeature={mode=harf}]

\parindent 0pt
\begin{document}
    বাংলা \textbf{বাংলা}\\
    English
\end{document}

答案1

Noto Sans Bengali 不包含拉丁字母的字形。

如果您在 Windows 上的文字处理器中工作,您可能会认为它确实如此,因为当字形缺失时,此类程序可能会默默地替换其他字体。 harftex为您提供更多的控制权,因此需要您准确地说出您想要什么。

以下是一种方法:

\documentclass{article}
\usepackage{harfload,fontspec}
\setmainfont{Noto Sans Bengali}[RawFeature={mode=harf}]
\newfontfamily\british{Noto Sans}[Script=Latin]
\parindent 0pt
\begin{document}
বাংলা \textbf{বাংলা}\\
\british English
\end{document}

输出

更新

自 2019 年 11 月起,您可以安装luahbtex和更换线路

\usepackage{harfload,fontspec}
\setmainfont{Noto Sans Bengali}[RawFeature={mode=harf}]

用这些:

\usepackage{fontspec}
\setmainfont{Noto Sans Bengali}[Renderer=Harfbuzz,Script=Bengali]

Ulrike Fischer 的解释了解详情。

相关内容