LuaLaTeX 无法正确渲染尼泊尔语,我该如何解决?

LuaLaTeX 无法正确渲染尼泊尔语,我该如何解决?

我对 fontspec 和朋友不太感兴趣,因此从这个关于尼泊尔语逐字的答案中获得了最多的信息:

如何在 Overleaf 的同一页上书写尼泊尔语和英语

这是我稍微编辑过的代码:

\documentclass{report}
\tracinglostchars=3 % Error if language detection fails!
\usepackage[bidi=basic, layout=sectioning, nil]{babel}
\usepackage{microtype}
\usepackage{graphicx}

\emergencystretch=3em % Compensate for lack of hyphenation.

\babelprovide[import=en, main, onchar=fonts ids]{english}
\babelprovide[import=ne, onchar=fonts ids]{nepali}

\usepackage{fontspec}
\defaultfontfeatures{ Scale = MatchUppercase, Ligatures=TeX }
\babelfont{rm}[Language=Default]{Noto Sans}
\babelfont[nepali]{rm}[Language=Default]{Noto Sans Devanagari}

\begin{document}

\includegraphics[width=2cm]{word}

\Large

\foreignlanguage{nepali}{फ्राई}
\end{document}

这里是word.png,应该渲染为“फ्राई”:

在此处输入图片描述

我注意到一个残酷的转折,在这里它们看起来很相似,但是当我运行它时,它们肯定不相似。

答案1

正如 Ulrike Fischer 在评论中回答的那样,您需要在 LuaLaTeX 中使用 Harfbuzz 渲染器和 Noto Sans Devanagari。在加载 Noto Sans Devanagari 时将其添加为选项。

\documentclass{report}
\tracinglostchars=3 % Error if language detection fails!
\usepackage[bidi=basic, layout=sectioning, nil]{babel}
\usepackage{microtype}
\usepackage{graphicx}

\emergencystretch=3em % Compensate for lack of hyphenation.

\babelprovide[import=en, main, onchar=fonts ids]{english}
\babelprovide[import=ne, onchar=fonts ids]{nepali}

\usepackage{fontspec}
\defaultfontfeatures{ Scale = MatchUppercase, Ligatures=TeX }
\babelfont{rm}
          [Language=Default]{Noto Sans}
\babelfont[nepali]{rm}
          [Language=Default, Renderer=HarfBuzz]{Noto Sans Devanagari}

\begin{document}

% \includegraphics[width=2cm]{word}

\Large

\foreignlanguage{nepali}{फ्राई}
\end{document}

Noto Sans Devanagari 样本

我已将修复程序编辑到您链接的上一个答案中。感谢您发现此错误。

相关内容