Как преобразовать html-таблицу в Rmarkdown в Latex для вывода в формате pdf?

Я работаю над pdf-документом RMarkdown и пытаюсь преобразовать таблицу, отформатированную в html, с помощью объекта FlexTable пакета RepoRters, и хочу преобразовать ее в латекс, чтобы я мог вывести таблицу в pdf.

Есть ли способ сделать это?

Спасибо! Рафаэль


person Rafael Velásquez    schedule 15.09.2015    source источник
comment
@mr.joshuagordon спасибо за помощь, но я пытаюсь использовать flextable, потому что он дает больше возможностей для настройки, чем xtable. Хотя я не женат на нем, можно ли использовать xtable для создания цветных строк?   -  person Rafael Velásquez    schedule 15.09.2015
comment
Я не знаю, умеет ли это xtable, и у меня нет опыта работы с RepoRters. Я сделал это с lazyWeave, что может сработать на данный момент. Через несколько месяцев я надеюсь, что пакет pixiedust сделает это. См. stackoverflow.com/ вопросы/31517012/   -  person Benjamin    schedule 15.09.2015
comment
@Benjamin, спасибо за совет, я проверю lazyWeave, я никогда раньше им не пользовался. Есть ли какие-нибудь гиды, которые вы могли бы порекомендовать?   -  person Rafael Velásquez    schedule 16.09.2015
comment
К сожалению, я так и не удосужился написать какие-либо руководства для lazyWeave, и теперь, когда я пытаюсь вытеснить его pixiedust, я не склонен тратить на это время (я все больше разочаровывался в своих ранних работах). Я напишу быстрый пример в ответе для перевода таблицы в формат латекса с чередованием зебры.   -  person Benjamin    schedule 16.09.2015


Ответы (1)


Это пример, который работает на моей машине. Обязательно включите блок header-includes в содержимое YAML.

---
title: "lazyWeave Example"
output: pdf_document
header-includes:
   - \usepackage{xcolor}
   - \usepackage{graphicx}
   - \usepackage{colortbl}
---

After running `install.packages("lazyWeave")` the following should produce the desired table.

```{r}
library(lazyWeave)
options(lazyReportFormat = "latex")
```

```{r, results='asis'}
lazy.matrix(mtcars[1:10, ],
            rcol = c(TRUE, FALSE),
            usecol = "lightgray")
```
person Benjamin    schedule 15.09.2015
comment
Спасибо за помощь. Это отлично сработало для создания полосы зебры. Теперь проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти способ обернуть текст (я могу сделать это с помощью таблицы pander). Вы знаете, возможно ли это с помощью lazyweave? Большое спасибо за всю помощь и удачи с пиксидастом! - person Rafael Velásquez; 16.09.2015
comment
Что ж, это можно сделать, но не так просто. Однажды, когда я это сделал, мне пришлось вставить латексный код в свой фрейм данных. Я думаю, что он использовал \parbox и требовался еще один латексный пакет. Но это было на моей предыдущей работе, и у меня больше нет доступа к этому коду. - person Benjamin; 16.09.2015