Scale kable table to fit page width

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


Note if you are using longtable, this answer says,

since longtable doesn't support resizebox, you cannot use the "scale_down" option in latex_options.

However, they suggested using font_size, e.g.,

kable(df, "latex", longtable = T, booktabs = T) %>%
  kable_styling(font_size = 7)