2017-01-31 30 views
0

這真的是我,變得非常困惑,無法找到任何關於此文檔的任何地方。R-Markdown:修改PDF的默認表格輸出

以下內容適用於在Rstudio中使用的Rmd。

所以說這個表:

Table Header | Second Header 
------------- | ------------- 
Table Cell | Cell 2 
Cell 3  | Cell 4 

當它被編譯成乳膠(或pdf) 輸出是這

enter image description here

但我想這是更多的是這個:

enter image description here

或這樣

enter image description here

即包括垂直線或水平線。

現在,當我將它編譯爲html時,我可以通過包含我自己的css文件來修復一些樣式。我能用LaTEX輸出做什麼?

回答

2

我不知道如何單獨使用markdown來做到這一點,它可能涉及創建某種模板。我從來沒有追求過這樣的解決方案,所以我不能確定它是否可行。我已經推行了其他解決方案,可以爲我生成必要的LaTeX代碼HTML。下面的代碼是一個工作的RMD,它將針對PDF和HTML文件。

--- 
title: "Untitled" 
output: 
    pdf_document: null 
    html_document: null 
header-includes: 
- \usepackage{amssymb} 
- \usepackage{arydshln} 
- \usepackage{caption} 
- \usepackage{graphicx} 
- \usepackage{hhline} 
- \usepackage{longtable} 
- \usepackage{multirow} 
- \usepackage[dvipsnames,table]{xcolor} 
--- 

```{r} 
library(pixiedust) 
options(pixie_float = FALSE) 

DF <- data.frame(table_header = c("Table Cell", "Cell 3"), 
       second_header = c("Cell 2", "Cell 4"), 
       stringsAsFactors = FALSE) 

Base <- 
    dust(DF) %>% 
    medley_bw() %>% mimics the default bordering of standard markdown table 
    sprinkle_colnames("Table Header", "Second Header") %>% 
    sprinkle_table(pad = 3) # padding for HTML tables 

# print the table with vertical line between columns 
Base %>% 
    sprinkle_table(cols = 1, 
       border = "right") 

# print the table with horizontal line between rows 
Base %>% 
    sprinkle(rows = 1, 
      border = "bottom") 
``` 

產生的表具有以下外觀

Table with vertical column divider

Table with horizontal row divider

+0

這是偉大的!謝謝! – asosnovsky

0

另一種可能性:

library(huxtable) 
ht <- hux(c('Table Header', 'Table Cell', 'Cell 3'), c('Second Header', 'Cell 2' , 'Cell 4')) 
top_border(ht) <- 1 
bold(ht)[1,] <- TRUE 
right_border(ht)[,1] <- TRUE