我对 fontspec 和朋友不太感兴趣,因此从这个关于尼泊尔语逐字的答案中获得了最多的信息:
这是我稍微编辑过的代码:
\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}
我已将修复程序编辑到您链接的上一个答案中。感谢您发现此错误。