5

在 Lyx 中使用 Knitr 使用 summary() 函数时出现错误。它前面的功能有效。

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

我通过在 Lyx 中插入 Tex 代码输入此代码。我刚刚测试我可以运行摘要(teengamb)但不能运行摘要(mdl)。两种代码都可以在 RStudio 中使用。

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

4

1 回答 1

6

knitr这个问题在1.1 之后已经解决了。您不需要更改 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 

错误来自 line Signif. codes,我不明白为什么这些字符中的任何一个都可能导致 LaTeX 错误:它们都是 ASCII 并且应该在verbatim环境中工作。

从上面的评论来看,@mrdwab 和我都无法重现该问题。我想 OP 的 LaTeX 安装一定有一些奇怪的地方。

于 2012-10-12T05:28:37.990 回答