You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 12:36:18