2017-03-01 1 views
0

longtableを使用して、後続のページで列ヘッダーを繰り返すことができます。行の色を変更することはできますが、add.to.rowを使用して2つを組み合わせる方法はわかりません。以下は、2つのテーブルを示すMarkdownコードのサンプルです。後続のページで列ヘッダーを繰り返し、xtableを使用して行を交互に色分けするにはどうすればよいですか?

--- 
title: "Test" 
header-includes: 
    - \usepackage{fontspec} 
    - \setmainfont{Arial} 
    - \usepackage{fancyhdr} 
    - \usepackage{booktabs} # For Colored rows in tables 
    - \usepackage[table]{xcolor} # For Colored rows in tables 
    - \usepackage{longtable} 
output: 
    pdf_document: 
    latex_engine: xelatex 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = TRUE) 
``` 

## Table with repeating headers 

```{r table1, results='asis'} 
library(knitr) 
library (xtable) 

x <- iris 

add.to.row <- list(pos = list(0), command = NULL) 
command <- paste0("\\hline\n\\endhead\n", 
        "\\hline\n", 
        "\\multicolumn{", dim(x)[2] + 1, "}{l}", 
        "{\\footnotesize Continued on next page}\n", 
        "\\endfoot\n", 
        "\\endlastfoot\n") 
add.to.row$command <- command 

print (xtable (x), 
     add.to.row = add.to.row, 
     tabular.environment = "longtable") 


``` 

## Table with Alternate Colours 

```{r table2, results='asis'} 
rws <- seq(1, (nrow(x)-1), by = 2) 
col <- rep("\\rowcolor[gray]{0.95}", length(rws)) 

print(xtable(x), booktabs = TRUE, 
     add.to.row = list(pos = as.list(rws), command = col), 
     tabular.environment = "longtable") 

``` 

答えて

0

私は最終的にpixidustパッケージを使用して解決策を思いつくことができました。

--- 
title: "Test" 
header-includes: 
    - \usepackage{fontspec} 
    - \setmainfont{Arial} 
    - \usepackage{fancyhdr} 
    - \usepackage{booktabs} # For Colored rows in tables 
    - \usepackage[table]{xcolor} # For Colored rows in tables 
    - \usepackage{longtable} 
output: 
    pdf_document: 
    latex_engine: xelatex 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = TRUE) 
``` 

## Test Table 

```{r table, results='asis',message=FALSE, warning=FALSE} 

library(pixiedust) 

custom_interfoot <- data.frame("Cont'd", 
           "", "", "", "") 

n_rows <- length(iris[,1]) 

x <- dust(iris, 
      longtable = TRUE) %>% 
    redust(custom_interfoot, part = "interfoot") %>% 
    sprinkle (rows = c(1:n_rows), halign = "center") %>% 
    sprinkle (bg_pattern = c ("#D6D6D6", "white")) 


print (x) 



``` 
関連する問題