rmarkdownknitrpandocpander

Reduce cell width and font size of table using pandoc.table()


I'm using knitr and pander to make a table in a markdown file. I'm converting the markdown file to a PDF using Pandoc from within R.

This code:

library(knitr)

```{r myTable, echo=FALSE, message=FALSE, results='asis', comment=""}

library(pander)
pandoc.table(head(iris))

``` 

then running this function within R:

knitsPDF <- function(name) {
  knit(paste0(name, ".Rmd"), encoding = "utf-8")
  callformat <-"pandoc -V geometry:margin=1in  %s.md -o %s.pdf"
  system(sprintf(callformat, name, name))
}

knitsPDF(name) # insert file name of .Rmd file

produces this table in the PDF file:

enter image description here

How can I 1. Reduce width of columns in table? 2. Reduce font size of table?


Solution

  • If you do not want to split the table into multiple parts based on its width, you can specify that directly in split.tables parameter with pandoc.table or more generally in table.split.table in panderOptions. E.g.:

    > pandoc.table(head(iris), split.table = Inf)
    
    -------------------------------------------------------------------
     Sepal.Length   Sepal.Width   Petal.Length   Petal.Width   Species 
    -------------- ------------- -------------- ------------- ---------
         5.1            3.5           1.4            0.2       setosa  
    
         4.9             3            1.4            0.2       setosa  
    
         4.7            3.2           1.3            0.2       setosa  
    
         4.6            3.1           1.5            0.2       setosa  
    
          5             3.6           1.4            0.2       setosa  
    
         5.4            3.9           1.7            0.4       setosa  
    -------------------------------------------------------------------
    
    > panderOptions('table.split.table', 300)
    > pander(head(iris))
    
    -------------------------------------------------------------------
     Sepal.Length   Sepal.Width   Petal.Length   Petal.Width   Species 
    -------------- ------------- -------------- ------------- ---------
         5.1            3.5           1.4            0.2       setosa  
    
         4.9             3            1.4            0.2       setosa  
    
         4.7            3.2           1.3            0.2       setosa  
    
         4.6            3.1           1.5            0.2       setosa  
    
          5             3.6           1.4            0.2       setosa  
    
         5.4            3.9           1.7            0.4       setosa  
    -------------------------------------------------------------------
    

    About fontsize: Pandoc's markdown do not have any special syntax for that, so you might use LaTeX markup for your pdf. E.g. just issue a \footnotesize directive before your table. See possible font sizes for more details: http://en.wikibooks.org/wiki/LaTeX/Fonts#Sizing_text