2015-08-15 34 views
1

在使用knit2pdf()和LaTeX的投影儀演示文稿中,我有時會發現代碼塊被包裝,儘管我已經在全局設置了 tidy=FALSE。例如,該塊:knitr:塊中的代碼被意外包裝

\item Fit this using \func{glm}: 
<<berk-logit2, size='footnotesize'>>= 
berkeley <- as.data.frame(UCBAdmissions) 
berk.logit2 <- glm(Admit == "Admitted" ~ Dept + Gender, 
        data = berkeley, weights = Freq, family = "binomial") 
@ 

出現這樣的:

enter image description here

注意,所有三條線都包裹着,彷彿在段落模式。代碼塊中的縮進行使用空格,而不是製表符。

當我看看產生的.tex文件時,沒有什麼奇怪的,那就是alltt給出的行看起來OK。

\item Fit this using \func{glm}: 
\begin{knitrout}\footnotesize 
\definecolor{shadecolor}{rgb}{1, 0.961, 0.933}\color{fgcolor}\begin{kframe} 
\begin{alltt} 
\hlstd{berkeley} \hlkwb{<-} \hlkwd{as.data.frame}\hlstd{(UCBAdmissions)} 
    \hlstd{berk.logit2} \hlkwb{<-} \hlkwd{glm}\hlstd{(Admit} \hlopt{==} \hlstr{"Admitted"} \hlopt{~} \hlstd{Dept} \hlopt{+} \hlstd{Gender,} 
         \hlkwc{data} \hlstd{= berkeley,} \hlkwc{weights} \hlstd{= Freq,} \hlkwc{family} \hlstd{=} \hlstr{"binomial"}\hlstd{)} 
\end{alltt} 
\end{kframe} 
\end{knitrout} 

大多數其他塊產生格式正確的輸出。例如,

<<mice-tab, size='footnotesize' >>= 
data(Mice, package="vcdExtra") 
mice.tab <- xtabs(Freq ~ litter + treatment + deaths, data=Mice) 
ftable(litter + treatment ~ deaths, data=mice.tab) 
@ 

給出: enter image description here

可能是什麼造成的?我的設置很複雜,所以我沒有MWE,但是如果我知道要尋找什麼,這會很有幫助。

回答

1

您可能在幻燈片上使用fragile框架選項,其中包裝按預期工作。

設置\begin{frame}[fragile]產生正確的結果表明你的mice-tab塊:

\documentclass{beamer} 
\begin{document} 

<<echo = FALSE>>= 
library(knitr) 
opts_chunk$set(size = "footnotesize", 
       eval = FALSE, 
       tidy = FALSE) 
@ 

\begin{frame}[fragile] 
With fragile: 
<<berk-logit2-fragile>>= 
    berkeley <- as.data.frame(UCBAdmissions) 
    berk.logit2 <- glm(Admit == "Admitted" ~ Dept + Gender, 
        data = berkeley, weights = Freq, 
        family = "binomial") 
@ 

<<mice-tab-fragile>>= 
data(Mice, package="vcdExtra") 
mice.tab <- xtabs(Freq ~ litter + treatment + deaths, data=Mice) 
ftable(litter + treatment ~ deaths, data=mice.tab) 
@ 
\end{frame} 

\begin{frame} 
Not fragile: 
<<berk-logit2>>= 
    berkeley <- as.data.frame(UCBAdmissions) 
    berk.logit2 <- glm(Admit == "Admitted" ~ Dept + Gender, 
        data = berkeley, weights = Freq, 
        family = "binomial") 
@ 

<<mice-tab>>= 
data(Mice, package="vcdExtra") 
mice.tab <- xtabs(Freq ~ litter + treatment + deaths, data=Mice) 
ftable(litter + treatment ~ deaths, data=mice.tab) 
@ 
\end{frame} 
\end{document} 

With "fragile"

Without "fragile"

+0

這正是它!我習慣於使用代碼框架,但沒有[脆弱]產生錯誤,我錯過了看到這一點。 – user101089