如何在bookdown::pdf_document2中使用Roboto字体?
解决Windows下MikTeX使用Roboto字体失效的问题
以下是针对该问题的几种实用解决方法:
1. 直接指定字体文件路径
Roboto在Windows字体目录中的文件名通常为Roboto-Regular.ttf,直接指定路径和文件名可绕开字体名称识别问题,修改后的代码如下:
--- header-includes: - \usepackage{fontspec} - \setmainfont[Path=C:/Windows/Fonts/]{Roboto-Regular.ttf} output: bookdown::pdf_document2: toc: false latex_engine: xelatex --- # Title This is some text. This is some more text.
若需粗体、斜体等字体变体,可补充指定对应文件:
--- header-includes: - \usepackage{fontspec} - \setmainfont[ Path=C:/Windows/Fonts/, BoldFont=Roboto-Bold.ttf, ItalicFont=Roboto-Italic.ttf, BoldItalicFont=Roboto-BoldItalic.ttf ]{Roboto-Regular.ttf} output: bookdown::pdf_document2: toc: false latex_engine: xelatex ---
2. 确认Roboto的正确内部字体名称
部分字体的显示名称与系统内部注册名称不一致,可通过以下方式查询:
- 打开控制面板「字体」,找到Roboto后右键选择「属性」,在「详细信息」标签页查看「名称」字段(可能为
Roboto或Roboto-Regular); - 或在命令行执行
luaotfload-tool --list --pattern=Roboto(需确保MikTeX已安装luaotfload工具),输出结果中的name字段即为内部名称。
找到正确名称后直接替换参数,例如:
\setmainfont{Roboto-Regular}
3. 刷新MikTeX字体缓存
若字体存在但编译时无法识别,可能是MikTeX字体缓存未更新:
- 打开MikTeX Console,切换到「Tasks」标签页,点击「Refresh font map files」,等待刷新完成后重启编译工具再尝试。
内容的提问来源于stack exchange,提问作者MartineJ
相关产品推荐
相关产品推荐

