如何使用 pander 将网格添加到 table?

how to add grid to table with pander?

我正在使用 R、knitr 和 pander,但找不到允许我使用 pander 在 table 上打印网格的选项。 我试过了:

pander(tableToPrint, style='grid') 

但它没有做任何事情,无论是使用此选项还是使用 'multiline'、'rmarkdown'...我总是得到一条水平线,然后是列名,另一条水平线,所有我的数据和一条水平线。我想在每条线之间有一条水平线。另一种选择是交替行颜色。

有一个 old answer 提供了在 latex 中执行此操作的技巧,但需要对 pandoc 进行一些调整。需要将此添加到乳胶代码中:

\catcode`@=11
\let \savecr \@tabularcr
\def\@tabularcr{\savecr\hline}
\catcode`@=12

但是,如果您通过 header-includes 添加它,则它不起作用,可能是因为在模板中为时已晚。所以解决方案是创建一个新模板 pandoc -D latex > template.tex(或使用您常用的模板)并在顶部添加之前的代码,就在 \documentclass 之后。那么:

---
title: "Untitled"
output:
  pdf_document:
    keep_tex: yes
    template: "template.tex"
---

在每一行生成行。那么问题来了,顶线和底线都加倍了。

这对于 docx 输出是不可能的。 Pandoc 的 docx 模板允许很少的自定义,并且只允许段落样式。

为了完整起见,html 解决方案更简单:

---
title: "Untitled"
output: html_document
---
<style>
th, td {
    border-bottom: 2px solid black;
}
</style>