Xtable серые строки перезаписывают вертикальные линии

r-markdown xtable

247 просмотра

1 ответ

126 Репутация автора

    ---
title: "Title"
author: ''
date: ''
output:
 pdf_document:
  template: default.tex
geometry: top=0.5cm, bottom=0.5cm, left=0.5cm, right=0.5cm
header-includes: null
fontsize: 4pt
classoption: portrait
sansfont: Calibri Light
---
#Name1: `r "Name1"`  
#Name2: `r "Name2"`

```{r,  echo=FALSE,  message=FALSE, warning=FALSE, results='asis'}
df <- mtcars
n = nrow(df)
hlines=c(-1,0,(n-1),n)
my_align = "c|c|c|ccccc|ccc|c|"
rws <- seq(1, (n-1), by = 2)
col <- rep("\\rowcolor[gray]{.90} ", length(rws))
xtable::print.xtable(xtable(df
, align = my_align)
, add.to.row = list(pos = as.list(rws), command = col)
, booktabs = F
, hline.after = hlines, type = "latex") 
```

Я использую Rmarkdown для печати таблицы, которая имеет много форматирования. Когда я добавляю часть add.to.rwo, чтобы получить серые и белые чередующиеся строки, вертикальные линии удаляются в серых строках.

Как мне это исправить? Очень трудно создать воспроизводимый пример, но, надеюсь, та же проблема будет применяться к любому df (с правильными пакетами Latex за ним)

Спасибо :)

Автор: Anon.user111 Источник Размещён: 18.07.2016 03:47

Ответы (1)


1 плюс

13043 Репутация автора

Решение

Попробуйте сравнить эти две таблицы. Первая - это ваша таблица в том виде, в каком вы ее кодировали, вторая - pixiedustс помощью hhlineопции, установленной на TRUE.

---
title: "Title"
author: ''
date: ''
output:
 pdf_document:
geometry: top=0.5cm, bottom=0.5cm, left=0.5cm, right=0.5cm
header-includes: 
- \usepackage{amssymb} 
- \usepackage{arydshln} 
- \usepackage{caption} 
- \usepackage{graphicx} 
- \usepackage{hhline} 
- \usepackage{longtable} 
- \usepackage{multirow} 
- \usepackage[dvipsnames,table]{xcolor} 
fontsize: 4pt
classoption: portrait
sansfont: Calibri Light
---
#Name1: `r "Name1"`  
#Name2: `r "Name2"`

```{r,  echo=FALSE,  message=FALSE, warning=FALSE, results='asis'}
library(xtable)
df <- mtcars
n = nrow(df)
hlines=c(-1,0,(n-1),n)
my_align = "c|c|c|ccccc|ccc|c|"
rws <- seq(1, (n-1), by = 2)
col <- rep("\\rowcolor[gray]{.90} ", length(rws))
xtable::print.xtable(xtable(df
, align = my_align)
, add.to.row = list(pos = as.list(rws), command = col)
, booktabs = F
, hline.after = hlines, type = "latex") 
```

```{r}
library(pixiedust)
dust(df,
     hhline = TRUE,
     keep_rownames = TRUE) %>%
  medley_bw() %>%
  sprinkle_colnames(.rownames = "") %>%
  sprinkle(cols = c(".rownames", "mpg", "cyl", "qsec", "gear", "carb"),
           border = "right") %>%
  sprinkle(rows = nrow(mtcars),
           border = "top") %>%
  sprinkle(bg_pattern_by = "rows")
```
Автор: Benjamin Размещён: 25.10.2016 06:55
Вопросы из категории :
32x32