【问题标题】:can't align rows with kableExtra `cell_spec()`无法将行与 kableExtra `cell_spec()` 对齐
【发布时间】:2019-02-11 17:06:39
【问题描述】:
---
title: "Untitled"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r mtcars, warning=FALSE, message=FALSE, echo=FALSE, results='asis'}
library(tidyverse)
library(kableExtra)
kable(mtcars %>% 
        select(1:5) %>% 
        head(10) %>% 
        mutate(cyl = cell_spec(cyl, align = "r")), 
      "html", 
      escape = FALSE) %>% 
  kable_styling("striped", "hover", full_width = TRUE) %>%
  row_spec(c(1, 3), background = "yellow")
```

follow the KableExtra guide 使用 cell_spec() 函数对齐单元格。我正在尝试正确对齐我的cyl 列。但请注意该列未右对齐(下图)。

出了什么问题?

【问题讨论】:

    标签: r markdown kable kableextra


    【解决方案1】:

    Jason,kable 函数本身有一个对齐选项。我认为,如果您不寻找任何条件对齐,则应该使用它。

    library(kableExtra)
    library(tidyverse)
    mtcars %>% 
      select(1:5) %>% 
      head(10) %>%
      kable(align = c("crcccc")) %>% 
      kable_styling("striped", "hover", full_width = TRUE) %>%
      row_spec(c(1, 3), background = "yellow")
    

    对于cell_spec 本身,现在似乎HTML 的对齐选项无法满足您的需求。如果您检查由这种方法生成的原始 HTML,您最终会看到,cell_spec 将您的单元格放入 <span> 标记中。您可以在那里指定text_align,但它会被<td> 中的text_align 设置覆盖。我会看看我是否应该解决这个问题或在本节中添加警告说明。

    <td style="text-align:left;"> <span style="     text-align: right;">4</span> </td>
    

    【讨论】:

    • 谢谢。起初 align = c("crcccc") 对我来说很奇怪,直到我阅读了 kable 的手册页并阅读了 align 参数 "...字符串将被扩展为单个字母的向量,例如 'clc' 变为 c( 'c', 'l', 'c'), 除非输出格式是 LaTeX".
    • @JasonHunter 是的,顺便说一句,“除非输出格式是 LaTeX”对于乳胶用户来说非常重要。
    猜你喜欢
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    相关资源
    最近更新 更多