Lyx中使用Knitr时出现的R函数错误

5

在Lyx中使用Knitr的summary()函数时出现了错误,但是它之前的函数可以正常工作。

<<>>=
library(faraway)
head(teengamb)
mdl <- lm(gamble ~ sex + status, data=teengamb) 
summary(mdl)
@

我通过在Lyx中插入Tex代码输入此代码。 我刚刚测试了summary(teengamb),但无法运行summary(mdl)。 这两种代码在RStudio中都可以工作。

错误是“未定义的控制序列”,其描述为“\ end {verbatim} ...”


2
你能更具体地描述一下你遇到的错误吗?如果你把它放在一个独立的Lyx文档中,你还会遇到这个错误吗? - A5C1D2H2I1M1N2O1R2T1
1
我没有具体说明,我已经更新了我的帖子以包含更多细节。 - Saber CN
2
抱歉,我不能重现您的问题;我正在Ubuntu上运行Lyx 2.0.4。您是否尝试将代码标记为Sweave块(使用下拉样式),而不是使用“Insert> Tex Code”?您使用的是哪个版本的Lyx等工具以及什么操作系统? - A5C1D2H2I1M1N2O1R2T1
@SaberCN,我也无法在LyX 2.0.4 / Ubuntu上复制该问题。您能否发布完整的错误日志?(例如,在http://pastebin.com/上)顺便问一下,您的knitr版本是多少?`packageVersion('knitr')` - Yihui Xie
@SaberCN,我已经找到了真正的原因。请看下面我的编辑。 - Yihui Xie
显示剩余8条评论
1个回答

6
这个问题在版本1.1之后的 knitr 中已经得到解决。您不需要更改LyX或R中的任何内容,只需从CRAN安装knitr:
install.packages('knitr')

请忽略下面的两个答案:


我终于找到了这个错误的原因(这是我见过的最深的错误)。这是因为如果在upquote包加载后声明T1编码,那么它将无法正常工作,例如:

\documentclass{article}
\usepackage{upquote}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\begin{document}
\begin{verbatim}
'
\end{verbatim}
\end{document}

但是如果我们将upquote放在fontenc之后,它就会起作用:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{upquote}
\begin{document}
\begin{verbatim}
'
\end{verbatim}
\end{document}

或者不使用T1编码--在首选项中取消字体编码前的复选框: Ubuntu用户无法重现问题的原因是upquote.sty来自R的texmf树,而不是TeXLive中的版本,并且R的版本的upquote有效。
解决问题的另一种方法是在Windows下将R的texmf树添加到MikTeX中。
请忽略以下回答:
由于options(show.signif.stars = FALSE)有效,我将其作为可能的答案发布,但这对我来说仍然是一个非常奇怪的问题。设置show.signif.stars = FALSE会从下面的结果中删除显着性代码(来自summary(mdl)):
Call:
lm(formula = gamble ~ sex + status, data = teengamb)

Residuals:
    Min      1Q  Median      3Q     Max 
-35.873 -15.755  -3.007  10.924 111.586 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  60.2233    15.1347   3.979 0.000255 ***
sex         -35.7094     9.4899  -3.763 0.000493 ***
status       -0.5855     0.2727  -2.147 0.037321 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 27.99 on 44 degrees of freedom
Multiple R-squared: 0.2454, Adjusted R-squared: 0.2111 
F-statistic: 7.154 on 2 and 44 DF,  p-value: 0.002042 

错误来自于行Signif. codes,我不理解为什么这些字符可能会导致LaTeX出错:它们都是ASCII码,并且应该在verbatim环境中正常工作。

从上面的评论来看,@mrdwab和我都无法重现这个问题。我猜测OP的LaTeX安装可能有一些奇怪的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接