rr-markdownkable

Scale kable table to fit page width


How do you format a table in pdf using kable function? Because my output table width exceeds the width of the pdf. Here is an example:

---
output: pdf_document
---

```{r}
df <- cbind(mtcars[1:5,], mtcars[1:5,])
knitr::kable(df)
```

enter image description here


Solution

  • One option is to use kable_styling from the kableExtra package. The option latex_options="scale_down" will fit the table within the paper margins. See the vignette for detailed examples on all of the formatting options.

    ---
    output: pdf_document
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = FALSE)
    library(knitr)
    library(kableExtra)
    ```
    
    ```{r}
    kable(cbind(mtcars[1:5,], mtcars[1:5,]))
    ```
    
    ```{r}
    kable(cbind(mtcars[1:5,], mtcars[1:5,]), format="latex", booktabs=TRUE) %>% 
      kable_styling(latex_options="scale_down")
    ```
    

    enter image description here