如何使用 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>
我正在使用 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>