首页 > 解决方案 > rmarkdown PDF 自定义字体

问题描述

我有一个 rmarkdown 文件,我想将其字体更改为自定义字体(不是 Windows 原生的)。到目前为止我做了什么:

  1. 我得到了字体的 .ttf 文件并将它们安装在 Windows 上。我现在实际上可以在 Word 中访问它,所以这部分工作。
  2. 我编辑了我的 rmarkdown 文件的 YAML 部分以引用字体。当我使用 Windows 原生字体(Arial 等)尝试此操作时,此方法有效,因此通常代码本身不应该是错误的。

编辑:我发现它也不适用于某些预装的 Windows 字体,例如 Bahnschrift(可能是德语特有的)

  1. 我在 2 台不同的 PC 上尝试了 lualatex 和 xelalatex。如下所述,我还为绘图尝试了 extrafont,但它也无法识别字体。

这里 YAML 代码:rmarkdown 的其余部分实际上只是未更改的模板。Round Style只是一个例子。


---
title: "Untitled"
author: "Someone"
date: "7/8/2021"
output: 
  pdf_document:
    latex_engine: lualatex
mainfont: Round Style
---

#==编辑====

或其他版本:

---
title: "Untitled"
author: "Someone"
date: "7/8/2021"
output: 
  pdf_document:
    latex_engine: lualatex
  \usepackage{fontspec}
---
\setmainfont{Round Style}

#==编辑=结束====

我的怀疑是 R 只是没有意识到字体已安装。当我尝试通过extrafont包查找字体时,首先使用它font_import(),然后fonts()它显示的列表不包含新字体。

任何帮助都会很棒。自定义字体有很多结果,但我没有看到这个特定问题得到解决。

我得到的主要错误是:

! fontspec error: "font-not-found"
! 
! The font "RoundStyle" cannot be found.

标签: rlatexr-markdown

解决方案


这条线header-includes:不见了。尝试使用以下标题:

---
title: "Untitled"
author: "Someone"
date: "7/8/2021"
output: 
  pdf_document:
    latex_engine: lualatex
header-includes:
- \usepackage{fontspec}
---

\setmainfont{Round Style}

推荐阅读