RMarkdown中的编号代码块

6

有没有一种选项可以在 RMarkdown 的代码块中提供,以便将 单元格编号 附加到 HTML 输出中,就像 Jupyter 有单元格编号一样。

我看过一些带有行号的示例,但那不是我想要的。

当我通过电话与某人讨论 RMarkdown HTML 文件时,使用单元格编号很有帮助。我可以让他/她查看第23个单元格。 我有很多 R 代码,因此提供章节标题虽然可行,但也很繁琐。


据我所知,Jupyter按执行顺序对单元进行编号,但仅针对代码单元。因此,如果两个人尝试运行同一个笔记本,它们的单元号不一定会相同。在RMarkdown中,您可以为单元格命名,但听起来您已经知道这一点了。这难道不能解决您的问题吗? - kgolyaev
嗨,我可以给单元格命名,但是当数量变多时变得很繁琐(是的,这里有点懒)。我希望Rmarkdown能够自动给单元格编号。我们都会查看渲染后的HTML,而不是执行它。因此重新运行和产生不同的单元格编号并不是问题所在。 - Sapsi
1个回答

6
这是一个只使用 CSS 的解决方案,与 CSS 计数器 有关:每个新的 R 块都会增加计数器(名为 counter-rchunks)。
您可以编写以下最小的 Rmd 文件并获得此结果:

enter image description here

---
title: "Counter for chunks"
author: "Romain Lesur"
output: html_document
---

```{css, echo=FALSE}
body {
  counter-reset: counter-rchunks;
}

div.main-container {
  padding-left: 5em;
}

pre.r {
  counter-increment: counter-rchunks;
  position: relative;
  overflow: visible;
}

pre.r::before {
  content: 'In [' counter(counter-rchunks) ']: ';
  display: inline-block;
  position: absolute;
  left: -5em;
  color: rgb(48, 63, 159);
}
```

```{r cars}
summary(cars)
```

```{r head-cars}
head(cars)
```

您可能需要根据自己的 HTML 模板来调整此解决方案。
您还可以将这些 CSS 规则插入到一个 .css 文件中,并在您的 html_document 中引用它。


我将添加一些JavaScript代码,使得“in...”变成href锚点。 - Sapsi

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