как добавить сетку в таблицу с пандером?

Я работаю с R,knitr и pander,и не могу найти опцию,которая позволила бы мне печатать сетку на столе с pander. Я попытался :

pander(tableToPrint, style='grid') 

но он ничего не делает ни с этой опцией, ни с «многострочным», «rmarkdown» ... Я всегда получаю горизонтальную линию, затем имена столбцов, еще одну горизонтальную линию, все мои данные и горизонтальную линию. Я хотел бы иметь горизонтальную линию между каждой строкой. Другим вариантом может быть чередование цветов строк.


person Malta    schedule 18.01.2016    source источник
comment
pander передает параметры только в файл уценки, но затем pandoc преобразует его в html, латекс/pdf и т. д. Если вы хотите, чтобы на выходе были горизонтальные линии, вам нужно настроить шаблон, но тогда решение во многом зависит от того, какой у вас выходной формат. Итак, что это?   -  person scoa    schedule 18.01.2016
comment
Я не уверен, я сейчас балансирую между pdf и docx. Если у вас есть решение для любого из этих выходов, это сделает мой выбор!   -  person Malta    schedule 18.01.2016


Ответы (1)


Существует старый ответ, который дает возможность сделать это в латексе, но требует небольшой адаптации к 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. Шаблон docx Pandoc допускает очень небольшую настройку и только стиль абзаца.

Для полноты html-решение еще проще:

---
title: "Untitled"
output: html_document
---
<style>
th, td {
    border-bottom: 2px solid black;
}
</style>
person scoa    schedule 18.01.2016
comment
Хорошо, тогда я перейду на html :). В строке вы указываете цвет линий, но в базовом html-выводе я уже получаю строки. - person Malta; 19.01.2016