4 Tables

4.1 Making LaTeX tables play nice

Dealing with tables in LaTeX can be painful. This section explains the main tricks you need to make the pain go away.

(Note: if you are looking at the ebook version, you will not see much difference in this section, as it is only relevant for PDF output!)

4.1.1 Making your table pretty

When you use kable to create tables, you will almost certainly want to set the option booktabs = TRUE. This makes your table look a million times better:

library(knitr)
library(tidyverse)

head(mtcars) %>% 
  kable(booktabs = TRUE)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Compare this to the default style, which looks terrible:

head(mtcars) %>% 
  kable()
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

4.1.2 If your table is too wide

You might find that your table expands into the margins of the page, like the tables above. Fix this with the kable_styling function from the kableExtra package:

library(kableExtra)

head(mtcars) %>% 
  kable(booktabs = TRUE) %>% 
  kable_styling(latex_options = "scale_down")
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

This scales down the table to fit the page width.

4.1.3 If your table is too long

If your table is too long to fit on a single page, set longtable = TRUE in the kable function to split the table across multiple pages.

a_long_table <- rbind(mtcars, mtcars)

a_long_table %>% 
  select(1:8) %>% 
  kable(booktabs = TRUE, longtable = TRUE)
mpg cyl disp hp drat wt qsec vs
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0
Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0
Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0
Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1
Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0
Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1
Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1
Mazda RX41 21.0 6 160.0 110 3.90 2.620 16.46 0
Mazda RX4 Wag1 21.0 6 160.0 110 3.90 2.875 17.02 0
Datsun 7101 22.8 4 108.0 93 3.85 2.320 18.61 1
Hornet 4 Drive1 21.4 6 258.0 110 3.08 3.215 19.44 1
Hornet Sportabout1 18.7 8 360.0 175 3.15 3.440 17.02 0
Valiant1 18.1 6 225.0 105 2.76 3.460 20.22 1
Duster 3601 14.3 8 360.0 245 3.21 3.570 15.84 0
Merc 240D1 24.4 4 146.7 62 3.69 3.190 20.00 1
Merc 2301 22.8 4 140.8 95 3.92 3.150 22.90 1
Merc 2801 19.2 6 167.6 123 3.92 3.440 18.30 1
Merc 280C1 17.8 6 167.6 123 3.92 3.440 18.90 1
Merc 450SE1 16.4 8 275.8 180 3.07 4.070 17.40 0
Merc 450SL1 17.3 8 275.8 180 3.07 3.730 17.60 0
Merc 450SLC1 15.2 8 275.8 180 3.07 3.780 18.00 0
Cadillac Fleetwood1 10.4 8 472.0 205 2.93 5.250 17.98 0
Lincoln Continental1 10.4 8 460.0 215 3.00 5.424 17.82 0
Chrysler Imperial1 14.7 8 440.0 230 3.23 5.345 17.42 0
Fiat 1281 32.4 4 78.7 66 4.08 2.200 19.47 1
Honda Civic1 30.4 4 75.7 52 4.93 1.615 18.52 1
Toyota Corolla1 33.9 4 71.1 65 4.22 1.835 19.90 1
Toyota Corona1 21.5 4 120.1 97 3.70 2.465 20.01 1
Dodge Challenger1 15.5 8 318.0 150 2.76 3.520 16.87 0
AMC Javelin1 15.2 8 304.0 150 3.15 3.435 17.30 0
Camaro Z281 13.3 8 350.0 245 3.73 3.840 15.41 0
Pontiac Firebird1 19.2 8 400.0 175 3.08 3.845 17.05 0
Fiat X1-91 27.3 4 79.0 66 4.08 1.935 18.90 1
Porsche 914-21 26.0 4 120.3 91 4.43 2.140 16.70 0
Lotus Europa1 30.4 4 95.1 113 3.77 1.513 16.90 1
Ford Pantera L1 15.8 8 351.0 264 4.22 3.170 14.50 0
Ferrari Dino1 19.7 6 145.0 175 3.62 2.770 15.50 0
Maserati Bora1 15.0 8 301.0 335 3.54 3.570 14.60 0
Volvo 142E1 21.4 4 121.0 109 4.11 2.780 18.60 1

When you do this, you’ll probably want to make the header repeat on new pages. Do this with the kable_styling function from kableExtra:

a_long_table %>% 
  kable(booktabs = TRUE, longtable = TRUE) %>% 
  kable_styling(latex_options = "repeat_header")
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
Mazda RX41 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag1 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 7101 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive1 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout1 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant1 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 3601 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D1 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 2301 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 2801 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C1 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE1 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL1 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC1 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood1 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental1 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial1 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Fiat 1281 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic1 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla1 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
Toyota Corona1 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Dodge Challenger1 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin1 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z281 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird1 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-91 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Porsche 914-21 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa1 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
Ford Pantera L1 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino1 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora1 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E1 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2

Unfortunately, we cannot use the scale_down option with a longtable. So if a longtable is too wide, you can either manually adjust the font size, or show the table in landscape layout. To adjust the font size, use kableExtra’s font_size option:

a_long_table %>% 
  kable(booktabs = TRUE, longtable = TRUE) %>% 
  kable_styling(font_size = 9, latex_options = "repeat_header")
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
Mazda RX41 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag1 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 7101 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive1 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout1 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant1 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 3601 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D1 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 2301 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 2801 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C1 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE1 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL1 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC1 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood1 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental1 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial1 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Fiat 1281 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic1 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla1 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
Toyota Corona1 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Dodge Challenger1 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin1 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z281 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird1 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-91 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Porsche 914-21 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa1 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
Ford Pantera L1 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino1 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora1 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E1 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2

To put the table in landscape mode, use kableExtra’s landscape function:

a_long_table %>% 
  kable(booktabs = TRUE, longtable = TRUE) %>% 
  kable_styling(latex_options = "repeat_header") %>% 
  landscape()
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
Mazda RX41 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag1 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 7101 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive1 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout1 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant1 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 3601 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D1 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 2301 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 2801 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C1 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE1 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL1 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC1 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood1 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental1 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial1 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Fiat 1281 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic1 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla1 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
Toyota Corona1 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Dodge Challenger1 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin1 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z281 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird1 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-91 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Porsche 914-21 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa1 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
Ford Pantera L1 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino1 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora1 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E1 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2

4.1.4 Max power: manually adjust the raw LaTeX output

For total flexibility, you can adjust the raw LaTeX output from kable/kableExtra that generates the table. Let us consider how we would do this for the example of adjusting the font size if our table is too wide: Latex has a bunch of standard commands that set an approximate font size, as shown below in Figure 4.1.

Font sizes in LaTeX

Figure 4.1: Font sizes in LaTeX

You could use these to manually adjust the font size in your longtable in two steps:

  1. Wrap the longtable environment in, e.g., a scriptsize environment, by doing a string replacement in the output from kable/kableExtra
  2. Add the attributes that make R Markdown understand that the table is a table (it seems R drops these when we do the string replacement)
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")
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
Mazda RX41 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag1 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 7101 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive1 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout1 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant1 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Duster 3601 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
Merc 240D1 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
Merc 2301 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
Merc 2801 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
Merc 280C1 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
Merc 450SE1 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
Merc 450SL1 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
Merc 450SLC1 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
Cadillac Fleetwood1 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental1 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
Chrysler Imperial1 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4
Fiat 1281 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
Honda Civic1 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Toyota Corolla1 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
Toyota Corona1 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
Dodge Challenger1 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
AMC Javelin1 15.2 8 304.0 150 3.15 3.435 17.30 0 0 3 2
Camaro Z281 13.3 8 350.0 245 3.73 3.840 15.41 0 0 3 4
Pontiac Firebird1 19.2 8 400.0 175 3.08 3.845 17.05 0 0 3 2
Fiat X1-91 27.3 4 79.0 66 4.08 1.935 18.90 1 1 4 1
Porsche 914-21 26.0 4 120.3 91 4.43 2.140 16.70 0 1 5 2
Lotus Europa1 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
Ford Pantera L1 15.8 8 351.0 264 4.22 3.170 14.50 0 1 5 4
Ferrari Dino1 19.7 6 145.0 175 3.62 2.770 15.50 0 1 5 6
Maserati Bora1 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E1 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2

(ref:darwin-quote) — Charles Darwin (Darwin, 1859)