![使用 LuaLaTeX 时如何将 Devanagari 字体加粗?](https://linux22.com/image/454587/%E4%BD%BF%E7%94%A8%20LuaLaTeX%20%E6%97%B6%E5%A6%82%E4%BD%95%E5%B0%86%20Devanagari%20%E5%AD%97%E4%BD%93%E5%8A%A0%E7%B2%97%EF%BC%9F.png)
当使用 LuaLaTeX 并对 Polyglossia 包进行以下配置时,使用时不会呈现字体的粗体\textbf{}
。
\usepackage{polyglossia}
\setdefaultlanguage{hindi}
\setotherlanguage{english}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\newfontscript{Devanagari}{deva,dev2}
\newfontface{\hindi}[Script=Devanagari,Renderer=Harfbuzz]{Nakula}
\setmainfont{Nakula}
我不熟悉这个fontspec
包。你能告诉我如何才能使字体变粗吗?
答案1
如果字体没有粗体,LaTeX 不会以粗体打印字符。我没有在任何地方找到 Nakula-Bold.ttf/otf。如果你能找到它,你的问题就会很容易解决。fontspec
如果你加载,则无需加载polyglossia
。后者无论如何都会加载前者。你首先将文档的主字体设置为 Times New Roman,最后将其更改为 Nakula,这意味着前一个命令现在无效。此外,如果您想使用 Nakula 作为“主字体”,则无需将其加载为“新字体”。梵文脚本已经由定义,fontspec
因此您也不需要\newfontscript
。因此,我认为可以省略您的代码中的四行。请参见以下示例。我更喜欢包babel
并遵循这些指导方针。
\documentclass{article}
\usepackage[hindi,provide=*]{babel}
\babelprovide{hindi}
\usepackage{fontspec}
\newfontfamily\baloo[%
Script=Devanagari,%
Renderer=Harfbuzz%
]{Baloo2}
\newfontfamily\nakula[%
Script=Devanagari,%
Renderer=Harfbuzz%
]{Nakula}
\begin{document}
\verb|\textbf| works with Baloo2: {\baloo नमस्ते}, \textbf{\baloo नमस्ते}
but doesn't with Nakula: {\nakula नमस्ते}, \textbf{{\nakula नमस्ते}}
\end{document}
还有许多其他字体具有您需要的所有粗细。我个人最喜欢的是 Baloo2 和 EkType 的 Mukta。它们都是可用的在 TeX 分布中。