kable:垂直对齐不适用于 pdf 输出

kable: Vertical alignment does not work with pdf output

我正在尝试使用 kable 以 pdf 格式混合文本和数字生成大型 table。我正在尝试将每一行对齐到顶部。我使用位于工作目录内的图形 test.jpg 做了一个例子。我使用的是 knitr 的 1.22 版本。

---
output: pdf_document
---

```{r}
table <- data.frame(
  col1 = "test", 
  col2 = "![test](test.jpg){width=150px}")
knitr::kable(table)
```

如果我在 html 中编织它,它的行为正确并将图形和文本对齐到顶部,但它使用 pdf 将图形和文本对齐在底部。指定 valign 选项不会改变行为。

有没有人经历过类似的行为?

我没有很好的解决方案,但我有一个解决方法。这是一个使用 LaTeX 包 adjustbox 的 cludge – 具体来说,valign = T 作为 includegraphics 的参数。 (scale = 0.5 只是使图像成为其原始大小的 50%。)为了美观,我还加入了转义换行符 (\\)。

---
title: \textbf{Title}
author: \normalfont{Author}
output:
  pdf_document
header-includes:
  - \usepackage[export]{adjustbox}
---

```{r}
table <- dplyr::tibble(
  col1 = LETTERS[1:3], 
  col2= c("\includegraphics[valign=T, scale=0.5]{Osedax_roseus.jpg} \\",
          "\includegraphics[valign=T, scale=0.5]{Osedax_roseus.jpg} \\",
          "\includegraphics[valign=T, scale=0.5]{Osedax_roseus.jpg} \\"))
knitr::kable(table, format = "latex", escape = FALSE)
```

此示例使用来自 this Wikipedia page 的照片。