2015-08-15 44 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