DeltaIV
DeltaIV

Reputation: 5646

Changing the font size of figure captions in RMarkdown HTML output

I would like to make the font size of all figure captions in my R Markdown document smaller. The final output is HTML and I'm working in R Studio. To load the picture, I use the include_graphics function from knitr, because I've been told it's the best way (see here). My .Rmd file is:

---
title: "ppp"
author: "ppp"
date: "July 4, 2017"
output: 
  html_document: 
    fig_caption: yes
---

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


```{r foo, fig.cap="$f_{p}$ as a function of $g$ for various values of $r=\\frac{\\rho_{w}}{\\rho_{a}}$"}
# All defaults
include_graphics("download.jpg")
``` 

This is regular text.

The corresponding output is: enter image description here

As you can see, the caption font size and the regular text font size are exactly the same, which doesn't look that nice. How can I solve this problem?

Upvotes: 15

Views: 11674

Answers (2)

maycca
maycca

Reputation: 4102

To embed it within the RMD documents, use this chunk:

```{css, echo=FALSE}
p {
  font-size: 32px;
}
```

How this looks within the whole RMD file:

---
title: "ppp"
author: "ppp"
date: "July 4, 2017"
output: 
  html_document: 
    fig_caption: yes
---

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


```{css, echo=FALSE}
p {
  font-size: 32px;
}
```


```{r foo, fig.cap="$f_{p}$ as a function of $g$ for various values of $r=\\frac{\\rho_{w}}{\\rho_{a}}$"}
# All defaults
include_graphics("download.jpg")
``` 

This is regular text.

Upvotes: 0

Martin Schmelzer
Martin Schmelzer

Reputation: 23909

Just add the following CSS to your Rmd document (anywhere below the YAML header):

<style>
p.caption {
  font-size: 0.6em;
}
</style>

What are we doing here:

If you mark the caption in your browser and inspect that element (Chrome: right-click -> Inspect) you can see that the caption is actually a HTML paragraph with a class named caption:

<p class="caption"> ... </p>

With the above CSS code we change the font-size of exactly those elements (and only those) to 60% of the default size.


enter image description here

Upvotes: 22

Related Questions