3

我想定义要在我的 RMarkdown PDF 文档中使用的字体。我想使用 Google 字体,比如 Roboto,但我没有管理员权限直接安装它。尽管如此,我认为我可以解决这些特权,因为我已经安装了许多 R 包,这些包带有自己的字体(例如,tint)。

通常,要为 Markdown 文档设置自定义字体,我会在 YAML 中执行以下操作:

---
title: "Title"
output:
  pdf_document:
    latex_engine: xelatex
mainfont: Calibri
---

如果安装了字体,这可以工作,但是,正如我所说,我无法安装字体。我可以通过showtext包使用 Google 字体,如下面的示例所示,但这仅适用于数字:

---
title: "Title"
output:
  pdf_document
---

# Header One  

## Header Two
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

```{r fonts, message=FALSE}
library(showtext)
font_add_google("Lobster", "lobster")
```

```{r fig.showtext=TRUE, fig.align='center'}
plot(1, pch = 16, cex = 3)
text(1, 1.1, "A fancy dot", family = "lobster", col = "steelblue", cex = 3)
```

在此处输入图像描述

如您所见,我在图中使用了 Lobster 字体,这很棒。我想扩展这个例子,以便将 Lobster 字体用于文档的主体,但不需要直接安装。这可能吗?

4

1 回答 1

5

正如上面提到的@camille,tint安装 TeX 包以使用字体。(这里有一个相当广泛的字体包列表,包括像 Roboto 这样的 Google Fonts。)如果我想使用 Lobster 作为主体,我可以像这样在标题中包含适当的 TeX 文件,它会在编织时自动下载和安装:

---
title: "Title"
output:
  pdf_document
header-includes:
  - \usepackage{LobsterTwo}
---

# Header One  

## Header Two
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

在此处输入图像描述

不是一个完美的解决方案,因为它依赖于该字体的 TeX 包的存在,但仍然......

于 2019-03-25T16:14:11.907 回答