2012-11-17 26 views
7

Oto mój kod MWE.Kod fragmentu R pozostaje wewnątrz ramki Beamer

\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

jestem stara się zachować kod R klocek w ramach Beamer. Zastanawiam się, jaki jest skuteczny sposób zarządzania kodami R, tak aby pozostawały w ramce Beamer. Dzięki

+1

Czy użycie opcji 'tidy.source' z pakietu formatR byłoby opcjonalne? – Dason

+0

'knitr' domyślnie używa' tidy.source', a szerokość jest określana przez 'getOption ('width')' –

Odpowiedz

5

Najlepszym rozwiązaniem jest wyłączenie opcji tidy przez tidy=FALSE i ręczne rozbicie linii.

<<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) 
@ 

To zawsze zadziała. Innym sposobem jest ustawienie mniejszego width w options() (knitr FAQ 8) i prawdopodobnie będziesz musiał spróbować kilka razy, aby uzyskać idealny width. W twoim przypadku 60 jest najwyraźniej za duże.

+2

Może również pomóc w nieznacznym zmniejszeniu marginesów tekstu, np. wstaw '\ setbeamersize {margines tekstowy left = 16pt, text margin right = 16pt}' in your preamble, jako [w tej odpowiedzi] (http://tex.stackexchange.com/a/204205/21118). –