4 Tabelle
4.1 Fare in modo che le tabelle LaTeX si comportino bene
Gestire le tabelle in LaTeX può essere disgustoso. Questa sezione spiega i principali trucchi di cui hai bisogno per evitare di accumulare stress.
(Nota: se stai guardando la versione ebook, non vedrai molte differenze in questa sezione, poiché è rilevante solo per l’output PDF!)
4.1.1 Rendere bella la tua tabella
Quando usi kable
per creare tabelle, quasi sicuramente vorrai impostare l’opzione booktabs = TRUE
.
Questo già e sufficiente a renderla presentabile:
Dai un’occhiata q questa con lo stile predefinito, è orribile:
4.1.2 Se il tuo tavolo è troppo largo
Potresti scoprire che la tua tabella si espande oltre i margini della pagina, come le tabelle sopra.
Risolvi questo problema con la funzione kable_styling
dal pacchetto kableExtra
:
library(kableExtra)
head(mtcars) %>%
kable(booktabs = TRUE) %>%
kable_styling(latex_options = "scale_down")
Questo ridimensiona la tabella per adattarsi alla larghezza della pagina.
4.1.3 Se la tabella è troppo lunga
Se la tua tabella è troppo lunga per stare su una singola pagina, imposta longtable = TRUE
nella funzione kable
per dividere la tabella su più pagine.
a_long_table <- rbind(mtcars, mtcars)
a_long_table %>%
select(1:8) %>%
kable(booktabs = TRUE, longtable = TRUE)
Quando lo fai, probabilmente vorrai fare in modo che l’intestazione si ripeta su nuove pagine.
Fallo con la funzione kable_styling
di kableExtra
:
a_long_table %>%
kable(booktabs = TRUE, longtable = TRUE) %>%
kable_styling(latex_options = "repeat_header")
Sfortunatamente, non possiamo usare l’opzione scale_down
con una longtable
.
Quindi, se una longtable
è troppo larga, puoi regolare manualmente la dimensione del carattere o mostrare la tabella in formato orizzontale.
Per regolare la dimensione del carattere, usa l’opzione font_size
di kableExtra:
a_long_table %>%
kable(booktabs = TRUE, longtable = TRUE) %>%
kable_styling(font_size = 9, latex_options = "repeat_header")
Per mettere la tabella in modalità orizzontale, usa la funzione “landscape” di kableExtra:
4.1.4 Max power: regola manualmente l’output grezzo di LaTeX
Per una flessibilità totale, puoi regolare l’output grezzo di LaTeX da kable
/kableExtra
che genera la tabella.
Consideriamo il caso di regolazione della dimensione del carattere quando la tabella è troppo larga:
Latex ha una serie di comandi standard che impostano una dimensione approssimativa del carattere, come mostrato di seguito nella Figura 4.1.
Puoi usarli per regolare manualmente la dimensione del carattere nel tuo longtable in due passaggi:
- Avvolgere l’ambiente longtable, ad esempio, in un ambiente
scriptsize
, sostituendo una stringa nell’output dikable
/kableExtra
- Aggiungi gli attributi che fanno capire a R Markdown che la tabella è una tabella (sembra che R li rilasci quando eseguiamo la sostituzione della stringa)
our_adjusted_table <- a_long_table %>%
kable(booktabs = TRUE, longtable = TRUE) %>%
kable_styling(latex_options = "repeat_header") %>%
# wrap the longtable in a tiny environment
str_replace('\\\\begin\\{longtable\\}',
'\\\\begin\\{scriptsize\\}\n\\\\begin\\{longtable\\}') %>%
str_replace('\\\\end\\{longtable\\}',
'\\\\end\\{longtable\\}\n\\\\end\\{scriptsize\\}')
#add attributes to make R Markdown treat this as a kable LaTeX table again
our_adjusted_table %>%
structure(format = "latex", class = "knitr_kable")