在 html RMarkdown table 中对齐单元格 (kable)

Align cell in html RMarkdown table (kable)

我试图在 html Rmarkdown 文档中对齐包含多行文本的 table (kable) 的内容。

默认 table 呈现时文本向左对齐,但水平居中对齐。见下文:

我希望文本向左对齐(无变化),但与顶部对齐。在 Rmarkdown 中使用 kable 可以实现吗?

下面的代码重新创建了上面的 table:

```{r, cache=TRUE, echo=FALSE}
column_1 <- c( "Lorem ipsum dolor sit amet, consectetur adipiscing 
elit. Vivamus dolor risus, aliquet at dolor et, tincidunt egestas 
urna.")

column_2 <- c("Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Vivamus dolor risus, aliquet at dolor et, tincidunt egestas urna. Nam 
nec elit vel eros accumsan vulputate. Donec et congue sapien. Morbi 
condimentum fringilla lobortis. Cras eget justo non turpis elementum 
facilisis. Fusce dignissim orci id pretium sagittis. Pellentesque 
dignissim nisi sapien, sit amet maximus nisl ullamcorper ac. Donec elit 
ex, hendrerit sed leo convallis, efficitur bibendum ligula. 
Pellentesque sagittis arcu et condimentum viverra. Mauris at lectus at 
massa ullamcorper ullamcorper. Aliquam quis leo ac eros cursus mattis. 
Praesent pellentesque nunc et diam lacinia, quis cursus purus lacinia. 
Aenean ipsum libero, bibendum non ante 
vel, vehicula consectetur ex. Fusce lobortis odio nec urna dignissim, 
sed elementum ipsum sagittis. Sed mollis, magna in blandit imperdiet, 
dolor quam posuere quam, id iaculis nisl diam sed lorem.")

column_3 <- c("Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Vivamus dolor risus, aliquet at dolor et, tincidunt egestas urna. Nam 
nec elit vel eros accumsan vulputate. Donec et congue sapien. Morbi 
condimentum fringilla lobortis. Cras eget justo non turpis elementum 
facilisis. Fusce dignissim orci id pretium sagittis. Pellentesque 
dignissim nisi sapien, sit amet maximus nisl ullamcorper ac. Donec elit 
ex, hendrerit sed leo convallis, efficitur bibendum ligula. 
Pellentesque sagittis arcu et condimentum viverra. Mauris at lectus at 
massa ullamcorper ullamcorper. Aliquam quis leo ac eros cursus 
mattis.")

test_table <- data_frame(column_1, column_2, column_3) %>%
  kable(caption = "Test table", align = "l") %>% 
  kable_styling(full_width = T) %>%
  column_spec(1, width = "30em") %>%
  column_spec(2, width = "40em") %>%
  column_spec(3, width = "30em")
```

似乎试图解决类似的问题,并且解决方案涉及使用 Latex。这不是一个选项...

使用extra-css参数:

data_frame(column_1, column_2, column_3) %>%
  kable(caption = "Test table", align = "l", format = "html") %>% 
  kable_styling(full_width = T) %>%
  column_spec(1, width = "30em", extra_css = "vertical-align:top;") %>%
  column_spec(2, width = "40em", extra_css = "vertical-align:top;") %>%
  column_spec(3, width = "30em", extra_css = "vertical-align:top;")