hrbrthemes icon indicating copy to clipboard operation
hrbrthemes copied to clipboard

PDF Output

Open leojoubert opened this issue 6 years ago • 9 comments

Hi,

I would like to use hrbdthemes with a PDF output Rmarkdown document. Truing this simple example :

---
title: "hrbrthemes testbed"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(hrbrthemes)
library(tidyverse)

Arial Narrow

ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  labs(title="Arial Narrow", subtitle="This is a subtitle") +
  theme_ipsum()

Roboto Condensed

ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  labs(title="Roboto Condensed", subtitle="This is a subtitle") +
  theme_ipsum_rc()

I get the following error : 

`Error in grid.Call.graphics : incorrect font specification.`

How can I fix this ?

leojoubert avatar Dec 21 '17 09:12 leojoubert

Thx for trying out the pkg and taking the time to file an issue/question!

Can you post the output of sessionInfo()?

hrbrmstr avatar Dec 21 '17 19:12 hrbrmstr

In retrospect, that may not matter.

Please try:

---
title: "hrbrthemes testbed"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r message=FALSE}
library(hrbrthemes)
library(tidyverse)
library(Cairo)

extrafont::loadfonts()
```

### Arial Narrow

```{r dev="cairo_pdf"}
ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  labs(title="Arial Narrow", subtitle="This is a subtitle") +
  theme_ipsum()
```


### Roboto Condensed

```{r dev="cairo_pdf"}
ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  labs(title="Roboto Condensed", subtitle="This is a subtitle") +
  theme_ipsum_rc()
```

hrbrmstr avatar Dec 21 '17 19:12 hrbrmstr

And, I just pushed a change that makes this easier.

Assuming RStudio use,

  • File -> New File -> R Markdown
    • From Template
      • ipsum PDF Template

Will start off a new document with everything above so you don't need to cut/paste from other docs.

hrbrmstr avatar Dec 21 '17 20:12 hrbrmstr

This was a rly helpful question and will likely ease the pain of many others. If you're inclined, would you mind forking the pkg and adding yourself to the DESCRIPTION file as a contributor? I can do it as well if you provide the necessary DESCRIPTION info fields. No worries if not, but this was a good thing to inquire about and cause the addition for.

hrbrmstr avatar Dec 21 '17 20:12 hrbrmstr

Many thinks for having me as a contributor. I forked the repository and added my coordinate. Sorry btw for mistinking typing my answer, it was quite diffucult to read :)

leojoubert avatar Jan 03 '18 09:01 leojoubert

Any idea how to do this for outputting a single plot to pdf? I tried

Cairo::CairoPDF("plot.pdf")
ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  labs(title="Roboto Condensed", subtitle="This is a subtitle") +
  theme_ipsum_rc()
dev.off()

But I don't get the robo font. plot.pdf

sahirbhatnagar avatar Apr 10 '18 15:04 sahirbhatnagar

I usually do:

ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  labs(title="Roboto Condensed", subtitle="This is a subtitle") +
  theme_ipsum_rc() -> gg

ggsave("plot.pdf", gg, device = cairo_pdf)

when targeting PDF

hrbrmstr avatar Apr 10 '18 17:04 hrbrmstr

I have a similar problem trying to use roboto condensed (via theme_ipsum_rc) in an Rmarkdown document -> pdf.

slyrus avatar Jun 02 '19 17:06 slyrus

Just to add a simple solution that worked well for me: Specify cairo_pdf as your dev device for the PDF document. This is especially useful if you plan on exporting to multiple formats and don't want the overhead of switching between (say) PDF and PNG figures for (say) PDF and HTML output.

Example of relevant YAML section:

output: 
  pdf_document:
    dev: cairo_pdf
    <other pdf options>
  html_document:
    <html options>

grantmcdermott avatar Apr 30 '20 05:04 grantmcdermott