如何在带有`knitr::kable`的表格*上方添加标题?
Posted
技术标签:
【中文标题】如何在带有`knitr::kable`的表格*上方添加标题?【英文标题】:How to add a caption *above* a table with `knitr::kable`? 【发布时间】:2021-12-20 09:48:47 【问题描述】:当我将一个简单的 Rmarkdown 文档呈现为 github_document
时,表格标题出现在表格下方而不是上方。它还缺少“表:”前缀。有没有办法改变这种行为?谢一辉has made clearkable
的默认标题位置应该在表格上方,当我在Rmarkdown文件之外运行相同的命令时,标题确实出现在顶部。
我指的命令是
knitr::kable(mtcars, caption = "mtcars")
我的 Rmarkdown 文档如下所示:
---
title: "Test"
output: github_document
---
```r setup, include=FALSE
knitr::opts_chunk$set(echo = TRUE)
```
```r
knitr::kable(mtcars, caption = "mtcars")
```
指定format = "pipe"
或format = "simple"
似乎没有帮助。
【问题讨论】:
这已经发布,现在在github.com/yihui/knitr/issues/2074回复 【参考方案1】:当转换为 Markdown 输出格式时,knitr::kable()
将默认为 format = "pipe"
。这适用于 pandoc 的管道表。 format = "simple"
用于 Pandoc 的简单表。
这两种语法是 Pandoc 的 markdown 语法。 Pandoc 支持提供字幕 (https://pandoc.org/MANUAL.html#extension-table_captions)。
knitr 会为您编写:表格和标题采用预期格式。
但是,输出被定义为 Github Flavored Markdown,所以 Pandoc 的 gfm
。这种 Markdown 风格不支持标题。因此,Pandoc 会将管道表转换为另一个 Markdown 表并抑制标题语法以将文本放置在表下方。这是 Pandoc 做的。
收下这个.md
文件
Table: Demonstration of pipe table syntax.
| Right | Left | Default | Center |
|------:|:-----|---------|:------:|
| 12 | 12 | 12 | 12 |
| 123 | 123 | 123 | 123 |
| 1 | 1 | 1 | 1 |
进行 pandoc 转换将导致
❯ pandoc -t gfm test.md
| Right | Left | Default | Center |
|------:|:-----|---------|:------:|
| 12 | 12 | 12 | 12 |
| 123 | 123 | 123 | 123 |
| 1 | 1 | 1 | 1 |
Demonstration of pipe table syntax.
当输出为gfm
时,Pandoc 将标题放在下方
问题也在https://github.com/yihui/knitr/issues/2074提出
【讨论】:
以上是关于如何在带有`knitr::kable`的表格*上方添加标题?的主要内容,如果未能解决你的问题,请参考以下文章