kableExtra 中的图像纵横比

Image aspect ratio in kableExtra

提问人:R Walser 提问时间:9/26/2023 更新时间:9/27/2023 访问量:45

问:

我正在尝试使用 kableExtra 将图像插入表格中。我知道我必须用来指定大小。但是,图像具有不同的尺寸,一种尺寸并不适合所有人。spec_image

如何重新缩放每个图像。我尝试将图像尺寸获取为矢量并使用类似的东西:但这不起作用。magickspec_image(imagepaths, image_heights, image_widths)

其次,我希望文本对齐,使其位于图像的中间。 没有给出预期的结果。valign

希望得到一些帮助。

---
title: "Untitled"
output:
  bookdown::pdf_document2:
    extra_dependencies: ["float"]
    template: NULL
    keep_tex: true
    number_sections: false
    latex_engine: pdflatex
header-includes:
  - \usepackage{graphicx}
---


```{r, echo = FALSE}
library(kableExtra)

first_column <- c("mol1.png", "mol2.png", "mol3.png")
second_column <- c('2', '3', '4')
third_column <- c('1', '4', '7')

df <- data.frame(mol = "",
                 second = second_column,
                 third = third_column)


df %>% kbl(booktabs = T, linesep = "", caption = "Test" ,valign = 't') %>%
  kable_paper(full_width = F) %>%
  column_spec(1, image = spec_image(first_column, 200, 200)) 
```

enter image description here

r-markdown kableextra

评论


答:

0赞 Peter 9/27/2023 #1

这将通过垂直对齐非图像单元格中的文本来获得部分方法。

```
    df  |> 
      kbl(booktabs = T, 
          caption = "Test") |> 
      column_spec(1, 
                  width = "25mm",
                  image = spec_image(first_column, 300, 300),
                  latex_valign = "m")

```

了解您希望如何重新缩放图像,并在问题中包含图像示例,以便问题可重现,这将很有帮助。是否要保留图形的原始纵横比?还是原来的尺寸?

似乎 KableExtra 使图像大小相同,这在某种程度上最终得到一个一致的表格是有意义的。

这里有一个可能有用的链接:带有图像的多个 Kable 表

enter image description here

评论

0赞 R Walser 9/27/2023
我想要正确的纵横比,但要遵守以下约束:高度不会超过某个限制。我希望有一个缩放选项,可以让我缩放每个数字。