Suppose the next example:
library(knitr)
library(kableExtra)
df <- data.frame(a = letters[1:10], b = 1:10)
names(df) <- c("This is a looooooong title, I don't know how to handle this... Also, I'm trying to extend this title even more... This column name will be used to compute vertical space","I want to align vectically this column name")
df %>% kable(format = 'latex', linesep = "", align = 'c') %>% kable_styling(full_width = T)
How can align vertically the second column name?
I am not sure if there is an easier way, but you can go with the multirow
package:
---
title: "Test Book"
header-includes:
- \usepackage{multirow}
author: "therimalaya"
output:
pdf_document:
keep_tex: yes
---
# Hello World
```{r, error = TRUE, echo = T}
library(knitr)
library(kableExtra)
df <- data.frame(a = letters[1:10], b = 1:10)
names(df) <- c("This is a looooooong title, I don't know how to handle this... Also, I'm trying to extend this title even more... This column name will be used to compute vertical space","\\multirow{1}{*}[0pt]{I want to align vectically this column name}")
df %>% kable(format = 'latex', linesep = "", align = 'c', escape = F) %>% kable_styling(full_width = T)
```
As of August 2020, The column_spec()
function in the kableExtra
package has a latex_valign
argument. This only works if you also specify the column width, so it's not compatible with kable_styling(full_width = T)
library(knitr)
library(kableExtra)
df <- data.frame(a = letters[1:10], b = 1:10)
names(df) <- c("This is a looooooong title, I don't know how to handle this... Also, I'm trying to extend this title even more... This column name will be used to compute vertical space","I want to align vectically this column name")
df %>% kable(
linesep = "",
align = "c",
format = "latex") %>%
column_spec(1:2,
width = "3in",
latex_valign = "m")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With