hrbrthemes
hrbrthemes copied to clipboard
Warning in RMarkdown
In grid.Call(L_textBounds, as.graphicsAnnot(x$label), ... :
font family 'Arial Narrow' not found in PostScript font database
Same as hrbrmstr/hrbrmisc#3, but this time with correct family name of Arial Narrow
instead of ArialNarrow
.
Could be related to yihui/knitr#729
---
title: "hrbrthemes testbed"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r message=FALSE}
library(hrbrthemes)
library(tidyverse)
```
### Arial Narrow
```{r}
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
labs(title="Arial Narrow", subtitle="This is a subtitle") +
theme_ipsum()
```
### Roboto Condensed
```{r}
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
labs(title="Roboto Condensed", subtitle="This is a subtitle") +
theme_ipsum_rc()
```
Generated no errors, messages or warnings on macOS Sierra & R 3.3.2
OK with html_output I don't get the warning too. But If I change the output to flexdashboard::flex_dashboard
, then I do get the warnings.
ah. lemme poke at that
It works if I use the work around mentioned in https://github.com/yihui/knitr/issues/729#issuecomment-40336104. So not an hrbrmstr issue then. I'll let you poke at it a bit but feel free to close it.
---
title: "hrbrthemes flexdashboard"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
---
```{r setup, include=FALSE}
library(flexdashboard)
library(hrbrthemes)
library(tidyverse)
```
Column {data-width=650}
-----------------------------------------------------------------------
### Roboto Condensed
```{r}
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
labs(title="Roboto Condensed", subtitle="This is a subtitle") +
theme_ipsum_rc()
```
Column {data-width=350}
-----------------------------------------------------------------------
### Arial Narrow
```{r}
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
labs(title="Arial Narrow", subtitle="This is a subtitle") +
theme_ipsum()
```
### More Roboto Condensed
```{r}
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
labs(title="Roboto Condensed", subtitle="This is a subtitle") +
theme_ipsum_rc()
```
Just used straight flexdasboard base layout. No hacks.
It works, but check your 'R Markdown' tab, For me it shows
Output created: t2.html
There were 50 or more warnings (use warnings() to see the first 50)
oh. aye! same here. one sec. i have a theory
add extrafont::loadfonts()
after library(tidyverse)
so the PDF NULL graphics device can see the fonts.
No warnings now.
gosh i hate fonts in Linux, BSD and R and Python
Nope that didn't do it. But adding the following does get rid of the warning.
knitr::opts_chunk$set(dev = 'svg')
options(device = function(file, width, height) {
svg(tempfile(), width = width, height = height)
})
Ditto for png.
huh. wondering why it worked here? (no warnings here after i did that extrafont dance)
what abt library(svglite); knitr::opts_chunk$set(dev = 'svglite')
and no knitr hack but include the extrafont
thing?
Nope! What's more svglite doesn't render the font correctly (w/ or w/o knitr hack).
I'm fine relying on the knitr hack FWIW. But you'll probably need to document the workaround.
Wow. The inconsistencies between operating systems and even same OS but different devices is kind of disconcerting (my svglite versions work fine as do the other "hacks"). Def do need to doc this tho. Mebbe a GSOC to "fix font stuff in R" is in order (prbly a multi-GSOC effort).
What's the fix for this if I want the output to be pdf_output
?
Can you be more specific? You won't be generating PDF in Rmd (generally) so you mean using the fonts with PDF output in general?
On Wed, Mar 1, 2017 at 1:26 PM, Tobias Schmidt [email protected] wrote:
What's the fix for this if I want the output to be pdf_output?
— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/hrbrmstr/hrbrthemes/issues/2#issuecomment-283425744, or mute the thread https://github.com/notifications/unsubscribe-auth/AAfHtlcs29eYE6iI79Tu3lHw5KFWydy6ks5rhbhDgaJpZM4MCC07 .
Oh, sorry, I meant setting output: pdf_document
instead of output: html_document
in the Rmd
document, which I do all the time.
Ah, roger that. you need to extrafont::loadfonts(quiet=TRUE)
right near
the top of the Rmd (it can be in an include=FALSE
chunk) and the fonts
shld make their way into the PDF(s)
On Wed, Mar 1, 2017 at 1:39 PM, Tobias Schmidt [email protected] wrote:
Oh, sorry, I meant setting output: pdf_document instead of output: html_document in the Rmd document, which I do all the time.
— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/hrbrmstr/hrbrthemes/issues/2#issuecomment-283429378, or mute the thread https://github.com/notifications/unsubscribe-auth/AAfHtvL670mKhsv0caloK5figB2ZQ2sUks5rhbtfgaJpZM4MCC07 .
Hmm, the following minimal reproducible example does not work for me:
---
title: "test"
output: pdf_document
---
```{r setup, include=FALSE}
library(dplyr)
library(ggplot2)
library(hrbrthemes)
extrafont::loadfonts(quiet=TRUE)
```
```{r}
iris %>%
ggplot(aes(Sepal.Length, Sepal.Width)) + geom_point() + theme_ipsum()
```
It throws
Error in grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y, :
invalid font type
Calls: <Anonymous> ... drawDetails -> drawDetails.text -> grid.Call.graphics
In addition: There were 50 or more warnings (use warnings() to see the first 50)
Execution halted
> sessionInfo()
R version 3.3.2 (2016-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: macOS Sierra 10.12.3
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] hrbrthemes_0.1.0 ggplot2_2.2.1 dplyr_0.5.0
loaded via a namespace (and not attached):
[1] Rcpp_0.12.9.1 Rttf2pt1_1.3.4 knitr_1.15.1 magrittr_1.5 munsell_0.4.3 colorspace_1.3-2
[7] R6_2.2.0 stringr_1.2.0 plyr_1.8.4 tools_3.3.2 hunspell_2.3 grid_3.3.2
[13] gtable_0.2.0 DBI_0.5-14 extrafontdb_1.0 htmltools_0.3.5 yaml_2.1.13 lazyeval_0.2.0
[19] assertthat_0.1 digest_0.6.12 rprojroot_1.2 tibble_1.2 purrr_0.2.2 evaluate_0.10
[25] rmarkdown_1.3 labeling_0.3 stringi_1.1.2 scales_0.4.1 backports_1.0.5 extrafont_0.17
I'm on the same OS. I just ran the code. Do you have Arial Narrow actually installed?
On Thu, Mar 2, 2017 at 7:28 PM, Tobias Schmidt [email protected] wrote:
sessionInfo() R version 3.3.2 (2016-10-31) Platform: x86_64-apple-darwin13.4.0 (64-bit) Running under: macOS Sierra 10.12.3
locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages: [1] stats graphics grDevices utils datasets methods base
other attached packages: [1] hrbrthemes_0.1.0 ggplot2_2.2.1 dplyr_0.5.0
loaded via a namespace (and not attached): [1] Rcpp_0.12.9.1 Rttf2pt1_1.3.4 knitr_1.15.1 magrittr_1.5 munsell_0.4.3 colorspace_1.3-2 [7] R6_2.2.0 stringr_1.2.0 plyr_1.8.4 tools_3.3.2 hunspell_2.3 grid_3.3.2 [13] gtable_0.2.0 DBI_0.5-14 extrafontdb_1.0 htmltools_0.3.5 yaml_2.1.13 lazyeval_0.2.0 [19] assertthat_0.1 digest_0.6.12 rprojroot_1.2 tibble_1.2 purrr_0.2.2 evaluate_0.10 [25] rmarkdown_1.3 labeling_0.3 stringi_1.1.2 scales_0.4.1 backports_1.0.5 extrafont_0.17
— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/hrbrmstr/hrbrthemes/issues/2#issuecomment-283827312, or mute the thread https://github.com/notifications/unsubscribe-auth/AAfHthPdzlGDbymhIxAuidmO9Oa_zJVzks5rh16egaJpZM4MCC07 .
Installed as in "it shows up in Font Book"? Yes.
Are you compiling using pdfLaTeX or XeLaTeX?
pdflatex.
On Fri, Mar 3, 2017 at 3:01 AM, Tobias Schmidt [email protected] wrote:
Installed as in "it shows up in Font Book"? Yes.
Are you compiling using pdfLaTeX or XeLaTeX?
— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/hrbrmstr/hrbrthemes/issues/2#issuecomment-283890500, or mute the thread https://github.com/notifications/unsubscribe-auth/AAfHth1QQHNfJ7L21IuUWrYtLDjNN8Pzks5rh8i9gaJpZM4MCC07 .
@RoyalTS For the warning part, I had to
options(device = function(file, width, height) {
png(tempfile(), width = width, height = height)
})
As described in https://github.com/yihui/knitr/issues/729#issuecomment-40336104
I tried with a bunch of formats like png/svg/jpg etc. and did not get any warnings.
Ah, there might be an uncontrolled difference here: What device are you outputting to?
I can get my test document to work if I set knitr::opts_chunk$set(dev = 'png')
, but not if I set knitr::opts_chunk$set(dev = 'pdf')
and @bhaskarvk's solution seems to be one that's geared towards png, right?
Wait a second: I need not only Arial Narrow to be installed, I also need that to be the PostScript and not the TrueType version of the font?
Ah, fonts and R/Python.
You need TTF versions of the fonts for them to work across devices consistently in R.
Said fonts need to be installed at the system-level.
You also need to ensure you've added the fonts to R using the procedures described in extrafont
.
This pkg tries to take care of the loading bit on startup now (recent dev update).
The hack @bhaskarvk mentioned is due to knitr
using a null PDF device behind the scenes, a process that tosses warnings since the context it executes in doesn't have the fonts loaded.
^^^ is one big reason ggplot2
doesn't do anything fancy with fonts in the pkg or examples since anything outside the basic fonts isn't going to work without some pain.