【问题标题】:Error with R function using Knitr in Lyx在 Lyx 中使用 Knitr 的 R 函数出错
【发布时间】:2012-09-09 00:49:54
【问题描述】:

使用 summary() 函数时出现错误 Lyx 的针织衫。它前面的功能有效。

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

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

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

【问题讨论】:

  • 您能更具体地说明您遇到的错误吗?如果您将其单独放入 Lyx 文档,您会收到错误消息吗?
  • 我没有说具体,我更新了我的帖子以包含更多细节。
  • 抱歉,我无法复制您的问题;我在 Ubuntu 上运行 Lyx 2.0.4。您是否尝试过将代码标记为 Sweave 块(使用下拉样式)而不是使用 Insert &gt; Tex Code?你使用的是什么版本的 Lyx 等以及什么操作系统?
  • 我在 Mac 上使用 Lyx 2.0.4。我只是尝试了 Sweave,它起作用了,我猜我只是 knitr 有问题。
  • 为了跟进@mrdwab 的评论,他的建议也对我有用,但我必须确保将 Rnw(knitr) 移至 Document > Settings > Modules 下的“Selected”列。

标签: r latex knitr lyx


【解决方案1】:

这个问题已经在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}

但是如果我们在fontenc 之后移动upquote,它会起作用:

\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 版本有效。

解决问题的另一种方法是将R的texmf树添加到Windows下的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 环境中工作。

从上面的 cmets 中,@mrdwab 和我都无法重现该问题。我想 OP 的 LaTeX 安装一定有什么奇怪的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    相关资源
    最近更新 更多