9
votes

I am using Knit PDF to compile a beamer presentation in RStudio.

---
title: "A.P. Statistics"
author: "Notes for Chapter 3.Rmd"
date: "Monday, October 13, 2014"
output: beamer_presentation
---

## Computer Output

```{r}
summary(lm(cars$dist~cars$speed))
```

How can I change the font size (just for this one chunk, leaving other chunks the same font size) so that the output of this command fits on one slide?

3

3 Answers

8
votes

One solution is using knitr hooks. A hook is code that will run before or after the chunk code is executed. You could use it to insert a LaTeX fontsize command in the file.

```{r echo=FALSE}
knitr::knit_hooks$set(mysize = function(before, options, envir) {
  if (before) 
    return(options$size)
})
```

Know you can change the size by

```{r mysize=TRUE, size='\\large'}
1:10
```

One Drawback is that this type of hook will affect all the fonts on a slide, i.e. also the echoed R-Code. Though cumbersome, you could use two consecutive chunks (1st: echo, results no; 2nd: no echo, results yes) to evade this.

```{r results="'hide'}
1:10
```

```{r echo=FALSE, mysize=TRUE, size='\\large'}
1:10
```

PS. Maybe there is a better way by modifying output hooks instead of chunk hooks.

1
votes

I was going to place it as a comment to Mark Heckmann's answer, but the formatting was all screwed.

Actually, if you write your chunk hook like this:

```{r echo=FALSE} 
knitr::knit_hooks$set(mysize = function(before, options, envir) { 
  if (before) { 
    return(options$size) 
  } else { 
    return("\\normalsize") 
  } 
}) 
```

it will do the trick.

In my case, I also included an

knitr::opts_chunk$set(mysize = TRUE, size = "\\tiny")

right below the knitr::knit_hooks$set().

0
votes

Here's how i do it ...

add the following to your slideStyle.sty file

% set font size to 7 with line breaks at 8
\newcommand\FontSmall{\fontsize{7}{8}\selectfont}

call the file at the top of your markdown:

output: 
  beamer_presentation:
    includes: 
      in_header: "P:/R/Slides/slideStyles.sty"

and then in your .Rmd file add the below

## Tiny font slide

\FontSmall

here is some tiny font ...