0

我无法使用 RMarkdown、waffle 包和字形编译 PDF

我使用 TIKZ 设备还是 PDF 渲染都没关系。该文档可以毫无问题地编译为 HTML。

我现在能想到的唯一解决方法是使用 HTML 编译器创建 SVG 图形,然后在我的中间 .TEX 文件中引用这些文件。

请注意,如果您只是在“## ---- waffle_figure ----”行下方运行代码。它应该创建图表,因为您之前已经在系统上安装了fontawesome字体,在 R 中安装了extrafont包,然后运行​​font_install()命令。

---
title: "Waffle"
output:
  pdf_document:
    latex_engine: xelatex
  html_document: default
header-includes:
- \usepackage{fontspec}
- \defaultfontfeatures{Extension = .otf}
- \usepackage{fontawesome}
- \usepackage{tikz}
---

```{r setup, include=FALSE}
library(knitr)
library(tikzDevice)
knitr::opts_chunk$set(warning = FALSE,  error = FALSE, message = FALSE,  results='hide', echo = FALSE, dev = "tikz", external = TRUE)
```

\faTwitter

## Waffle Plot

You can also embed plots, for example:  \newline

```{r pressure, echo=FALSE, dev="tikz"}
## ---- waffle_figure ----
loadpackages <- function(package.list = c("ggplot2", "Rcpp")) {
    new.packages <- package.list[!(package.list %in% installed.packages()[,"Package"])]
    if (length(new.packages)){install.packages(new.packages, repos = 'http://cran.us.r-project.org')}
    lapply(eval(package.list), require, character.only = TRUE)}

loadpackages(c("waffle", "extrafont", "grid", "gridExtra", "tikzDevice"))
parts <- c(40, 30, 20, 10)
waffle(parts,
       rows=10,
       use_glyph = "user",
       glyph_size = 5)
```
4

1 回答 1

1

华夫饼包现已更新!现在,quartz 和 cairo 设备都可以与 knitr/rmarkdown 一起使用。非常感谢Bob Rudis和 Dave Gandy。

修改后的代码包括拉丁现代 (LaTeX) 字体,以证明可以在华夫饼图表中实现乳胶字体和字体真棒字形。

为了使代码工作,您必须首先从各自的网站安装lmroman10-regular-webfont.ttffontawesome-webfont.ttf :单击webfont 工具包链接Fontawesome 下载


title: "Waffle"
output:
  pdf_document:
    latex_engine: xelatex
  html_document: default
header-includes:
- \usepackage{fontspec}
- \defaultfontfeatures{Extension = .otf}
- \usepackage{fontawesome}
- \usepackage{tikz}
---

```{r setup, include=FALSE}
library(knitr)
knitr::opts_chunk$set(warning = FALSE,  error = FALSE, message = FALSE,  results='hide', echo = FALSE, dev = "tikz", external = TRUE)
```

## Font Awesome Gyphy

Font awesome glyphs are easy to integrate into the main text. For example: \faTwitter.

## Waffle Plot

You can also embed plots with glyphs and custom fonts, for example:  \newline

```{r pressure, echo=FALSE, dev="quartz_pdf", dev.args=list(family = "Helvetica")}
## ---- waffle_figure ----
loadpackages <- function(package.list = c("ggplot2", "Rcpp")) {
    new.packages <- package.list[!(package.list %in% installed.packages()[,"Package"])]
    if (length(new.packages)){install.packages(new.packages, repos = 'http://cran.us.r-project.org')}
    lapply(eval(package.list), require, character.only = TRUE)}

loadpackages(c("waffle", "extrafont", "grid", "gridExtra"))
# font_import()  # Run this command, type "y", and press enter after installing new fonts.

parts <- c(40, 30, 20, 10)
waffle(parts,
       rows=10,
       use_glyph = "user",
       glyph_size = 7)+ggtitle("Some Sample Text Here")+
  theme(plot.title = element_text(family="LM Roman 10"))
```
于 2016-09-23T15:57:01.130 回答