R chunk code stay inside the Beamer frame
Asked Answered
Z

1

7

Here is my MWE code.

\documentclass{beamer}
\begin{document}

<<setup, include=FALSE>>=
# smaller font size for chunks
opts_chunk$set(size = 'footnotesize')
options(width=60)
@


\begin{frame}[fragile]
\frametitle{Test1}

<<boring-random>>=
y <- c(5, 7, 15, 17, 17, 19)
Trt <- gl(n = 3, k = 2, length = 3 * 2, labels = paste("Trt",
1:3, sep = ""), ordered = FALSE)
Data <- data.frame(Trt, y)
Fit1 <- aov(formula = y ~ Trt, data = Data, contrasts = list(Trt = "contr.sum"))
ANOVA1 <- anova(Fit1)
Coeffs1 <- coefficients(Fit1)
@
\end{frame}

\end{document}

enter image description here

I'm struggling to keep the R chunk code within the Beamer frame. I wonder what is the efficient way to manage the R chunk codes such that they stay inside the Beamer frame. Thanks

Zippy answered 17/11, 2012 at 5:31 Comment(2)
Would using something like tidy.source from the formatR package be an option?Ogre
knitr uses tidy.source by default, and width is determined by getOption('width')Doubloon
D
5

The best approach is to turn off the tidy option by tidy=FALSE, and manually break your lines.

<<boring-random, tidy=FALSE>>=
y <- c(5, 7, 15, 17, 17, 19)
Trt <- gl(n = 3, k = 2, length = 3 * 2, labels = paste("Trt",
  1:3, sep = ""), ordered = FALSE)
Data <- data.frame(Trt, y)
Fit1 <- aov(formula = y ~ Trt, data = Data,
  contrasts = list(Trt = "contr.sum"))
ANOVA1 <- anova(Fit1)
Coeffs1 <- coefficients(Fit1)
@

This will always work. The other way is to set smaller width in options() (knitr FAQ 8), and you probably need to try a few times for an ideal width. In your case, 60 is apparently too big.

Doubloon answered 17/11, 2012 at 6:9 Comment(1)
It can also help to decrease the text margins slightly, e.g. put \setbeamersize{text margin left = 16pt, text margin right = 16pt} in your preamble, as in this answer.Haroldson

© 2022 - 2024 — McMap. All rights reserved.