R使用Rmarkdown / tufte_handout得到全宽

时间:2017-07-06 21:16:58

标签: r knitr r-markdown

我正在使用Rmarkdown和tufte包编写一些课程资料。但是,我想在文档中使用的一些R输出的宽度大于讲义的宽度(请参阅下面示例中的lm模型的摘要)。我无法设法让这些R输出占据页面的整个宽度(我希望有类似于fig.fullwidth chunk参数的数字)。

我知道有一个fullwidth环境但是在这个环境中有一个R块会阻止pandoc构建pdf,因为R输出前面有前导哈希值(通过指定chunk参数{{删除这些哈希值] 1}}生成一个pdf但R输出的格式丢失了)。

有没有办法让R输出全宽?

感谢您的帮助。

以下是一个最小的例子

comment=NA

1 个答案:

答案 0 :(得分:1)

这是我在这里的第一个答案,更多的是临时解决方案,而不是真正的fullwidth输出解决方案。

我也遇到了这个问题,最终通过将输出与cat()连接起来解决了这个问题。然后我尝试使用capture.output()使其更加通用,但不幸的是我没有让它工作。

这完全忽略了主宽度,但遗憾的是它不是最佳解决方案,因为它也不会考虑整页宽度并要求您复制粘贴输出:

---
title: "My minimal example" 
output: tufte::tufte_handout
---

# Not fullwidth:
```{r, echo = FALSE}
model <- lm(dist ~ speed, data = cars)
summary(model)
```

# Not fullwidth:
```{r, echo = FALSE}
out <- capture.output(summary(model))
cat(out, sep = "\n")
```

# Fullwidth:
```{r, echo = FALSE}
cat("Call:
lm(formula = dist ~ speed, data = cars)

Residuals:
    Min      1Q  Median      3Q     Max 
-29.069  -9.525  -2.272   9.215  43.201 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -17.5791     6.7584  -2.601   0.0123 *  
speed         3.9324     0.4155   9.464 1.49e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 15.38 on 48 degrees of freedom
Multiple R-squared:  0.6511,    Adjusted R-squared:  0.6438 
F-statistic: 89.57 on 1 and 48 DF,  p-value: 1.49e-12")
```

如果有人建议让capture.output()版本正常工作,请告知我们。