Overleaf XeLaTeX下LaTeX印地语无法渲染、找不到Devanagari MT字体求助
Overleaf XeLaTeX 印地语文本渲染故障修复
故障根因
- 指定的
Devanagari MT为macOS系统专属字体,Overleaf运行环境为Linux服务器,未预装该字体,直接触发字体缺失报错 - 之前的通用解决方案多针对本地编译环境设计,在Overleaf服务器环境下无法识别本地安装的系统专属字体,因此调整后仍无法生效
- 代码加载的
\usepackage[utf8]{inputenc}、\usepackage[T1]{fontenc}为pdfLaTeX专属兼容包,在XeLaTeX编译模式下存在冗余,会干扰字体加载流程 - 原字体配置未适配Overleaf环境的天城文支持组件,无法匹配印地语的渲染规则
具体修改步骤
- 删除冗余的pdfLaTeX专属配置:移除代码中如下两行内容
XeLaTeX原生支持UTF-8编码,无需手动加载编码兼容模块。\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} - 替换为Overleaf环境原生支持的天城文字体:将原字体声明行
替换为系统预装的开源天城文字体,可选Noto Sans Devanagari或Nirmala UI,无需手动上传字体文件,示例配置:\newfontfamily\devanagarifont[Scale=MatchUppercase]{Devanagari MT}\newfontfamily\devanagarifont[Scale=MatchUppercase]{Noto Sans Devanagari} - 可选优化:修正语言映射规则。原代码使用
sanskrit语言规则包裹印地语文本,与实际内容不匹配,可在polyglossia配置中新增印地语支持:
后续将印地语文本的包裹命令从\setotherlanguage{hindi}\foreignlanguage{sanskrit}{...}替换为\foreignlanguage{hindi}{...},即可匹配正确的字符组合、断行规则。
编译验证
完成上述修改后,在Overleaf编译器下拉菜单选择XeLaTeX,重新编译即可正常显示印地语文本,无字体缺失报错。
内容的提问来源于stack exchange,提问作者Pragyan
相关产品推荐
相关产品推荐

