kableExtra中的图像纵横比

xqnpmsa8  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(108)

我正在尝试使用kableExtra将图像插入到表中。我知道我必须使用spec_image来指定大小。然而,图像有不同的尺寸,一个尺寸不会适合所有人。
如何重新缩放每个图像。我尝试使用magick将图像维度转换为向量,并使用如下代码:spec_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)) 

![](https://i.stack.imgur.com/pmNRg.png)
pu82cl6c

pu82cl6c1#

这将让你通过垂直对齐非图像单元格中的文本来实现这一目标。

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

这将有助于理解您希望如何重新缩放图像,并在问题中包含图像的示例,以便问题可重现。是否要保留图形的原始纵横比?还是原来的尺寸?
看起来好像KableExtra使图像大小相同,这对最终获得一致的表是有意义的。
这里有一个链接,可能用途:Multiple Kable Tables with Images

相关问题