【问题标题】:how to add grid to table with pander?如何使用 pander 将网格添加到表格中?
【发布时间】:2016-01-18 11:03:09
【问题描述】:

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

pander(tableToPrint, style='grid') 

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

【问题讨论】:

  • pander 仅将选项传递给 markdown 文件,但随后由 pandoc 转换为 html、latex/pdf 等。如果您想在输出中包含水平线,则必须进行调整模板,但解决方案很大程度上取决于您的输出格式。那么,它是什么?
  • 我不确定,我目前在 pdf 和 docx 之间进行平衡。如果您对此输出有任何解决方案,那将是我的选择!

标签: r latex knitr r-markdown pandoc


【解决方案1】:

有一个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>

【讨论】:

  • 好的,我要切换到 html 然后 :)。您指示“颜色”行的行,但在基本的 html 输出中,我已经得到了行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 2015-01-04
  • 2022-01-05
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
相关资源
最近更新 更多