【问题标题】:How to display line numbers for code chunks in rmarkdown HTML and PDF如何在 rmarkdown HTML 和 PDF 中显示代码块的行号
【发布时间】:2014-03-11 15:08:46
【问题描述】:

如何使用 rmarkdown 显示代码块的行号?

```{r}
   x <- 1:10
   y <- x^2
   plot(x,y)
```

我希望回声是这样的

 1  x <- 1:10
 2  y <- x^2
 3  plot(x,y)

最好像在 Github 上一样...
很高兴得到任何帮助

【问题讨论】:

  • 这个讨论看起来很相关:github.com/yihui/knitr/issues/31
  • 谢谢托马斯,但不幸的是我认为这不能正常工作。看看他们的 ramnathv 的example,你会发现,根据每个数字的数字,缩进会有所不同:1 比 11 多...
  • @Thomas 我相信这不是重复的:另一个问题只要求.Rnw-files 和 LaTeX,但这个问题要求一个也适用于 HTML 的解决方案。
  • 它不是重复的,因为 Rnw 文档和 Rmd 非常不同。但是,该帖子下的一个答案实际上提供了正确的解决方案:stackoverflow.com/a/53280591/559676

标签: r r-markdown


【解决方案1】:

您可以生成两个代码块:一个用于演示,另一个隐藏,用于执行。

---
output:
  pdf_document:
     highlight: haddock
---

```{#numCode .R .numberLines}
   x <- 1:10
   y <- x^2
   plot(x,y)
```

```{r results='asis', echo=FALSE}
   x <- 1:10
   y <- x^2
   plot(x,y)
```

注意:如果将 pdf_document 替换为 html_document,则必须提供元数据“highlight”。

【讨论】:

  • 在哪里可以找到像 {#number .R .numberLines} 这样的语法的详细文档?我只知道{r eval=TRUE,...}之类的样式。
  • @bruin 来自 Pandoc 用户指南:pandoc.org/MANUAL.html
【解决方案2】:

使用块选项attr.source='.numberLines'

```{r, attr.source='.numberLines'}
if (TRUE) {
  x <- 1:10
  x + 1
}
```

这适用于 HTML 和 PDF。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 2017-08-21
    • 2016-09-06
    • 2015-12-28
    • 2017-12-31
    相关资源
    最近更新 更多