Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to adjust table to a pdf page with kable?

I am currently working on a Markdown file (with latex) where I use kable() and kableExtra for my tables. The problem is that some of my tables are to big and doesn't fit on a pdf page (even in landscape).

I have tried to use latex_options = "scale_down" from kableExtra but for some reasons it doesn't work, it doesn't change anything. Here is an example of the code I'm running :

kable(dt, "latex", longtable = T, caption = "SampleCaption") %>% 
  add_header_above(c("","Mens" = 3, "Womens" = 3))  %>%  
  kable_styling(latex_options = c("striped", "scale_down", "repeat_header"),repeat_header_text = "",
                full_width = F) %>%
  column_spec(1, width = "10cm")    

I already looked on Google and stackoverflow. Anyone have an idea of what I'm doing wrong? Thanks

Edit, here is the working code as requested in comments :

  kable(dt, "latex", longtable = T, caption = "SampleCaption") %>% 
 add_header_above(c("","Mens" = 3, "Womens" = 3, "Total" = 2))  %>%  
 kable_styling(font_size = 7, latex_options = c("striped", "repeat_header"),repeat_header_text = "",
               full_width = F) %>%
 column_spec(1, width = "5cm") 
like image 996
Gainz Avatar asked Oct 17 '22 08:10

Gainz


1 Answers

This is not an answer but more like a clarification that since scale_down is using the resizebox in package graphicx while longtable is longtable and these two latex packages won't talk with each other, scale_down only works for normal tables.

In fact, you should be seeing a note in your console that "scale_down" doesn't work with longtable

Source in kableExtra

if (table_info$tabular == "longtable") {
    warning("Longtable cannot be resized.")
    return(x)
}
like image 155
Hao Avatar answered Oct 31 '22 23:10

Hao