Skip to content
R for the Rest of Us Logo

Using custom fonts in R examples and exercises

This lesson is locked

Get access to all lessons in this course.

If the video is not playing correctly, you can watch it in a new window


Click on the transcript to go to that point in the video. Please note that transcripts are auto generated and may contain minor inaccuracies.

Your Turn

  1. Take one of the charts we’ve made and add your own fonts to it

  2. Adjust the size or style of your text using theme elements

  3. Save your chart with the custom fonts

Make sure you’ve installed the ragg package.

Learn More

This blog post talks about modern text features in R using the ragg and systemfonts packages.

Have any questions? Put them below and we will help you out!

You need to be signed-in to comment on this post. Login.

Blayne Beacham

Blayne Beacham

February 21, 2023

I got one variation of the font that I want to work by using this:

systemfonts::register_variant( name = "Segoe UI Custom Semibold", family = "Segoe UI", weight = "semibold" )

However, I tried to do the same for a semilight version and it didn't work: systemfonts::register_variant( name = "Segoe UI Custom Semilight", family = "Segoe UI", weight = "semilight" )

For the latter I get "Error: No font with the given family name and weight/width settings available".

Am I missing something?

soundarya soundararajan

soundarya soundararajan

March 9, 2023

I am getting a similar error reported by someone earlier. This is my code register_variant( "Rockwell_custom", Rockwell, weight = "semibold", features = font_feature(ligatures = "discretionary") ) and this is my error: Error: No font with the given family name and weight/width settings available

Blayne Beacham

Blayne Beacham

August 28, 2023

I have another question about what might be possible with . Instead of 'hard-coding' text between the span tags, is it possible to use a variable instead (so the text can be dynamic depending on the data)?

Here is an example of what I am trying to do:

subtitle = paste("According to the average weight by island,", "<span style = 'color: purple;'>Biscoe</span>", "contains the heaviest penguins of the islands surveyed."),

This runs fine, but I would prefer to not 'hard code' in 'Biscoe' and instead use a variable like max_height_island. When I try to do this it just shows up as "max_height_island". I recall from your RMarkdown stuff that you can run some inline stuff with `r but I'm not sure if there is an equivalent here. Any thoughts?

Blayne Beacham

Blayne Beacham

August 28, 2023

Shoot. It looks like the "span" tags got scrubbed when I published the comment. Do you get what I mean?

I basically want to turn one word in a sentence into a different colour (that aligns with the colour I have in the graph) but I want the word to be based on a variable that I create rather than manually typing it in (in this way I can do functions with it to produce a lot of reports/graphs without hard-coding the highlighted name)

David Keyes

David Keyes Founder

August 29, 2023

Pending approval

Yup, you can definitely do this. Here's a quick video explanation.

BTW, on the new website, you can add code chunks (same as you would in RMarkdown) to keep the formatting of code. I fixed your question below so the span shows up.