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

时间:2019-03-25 20:10:08

标签: r r-markdown knitr kable

我正在尝试使用kable用pdf混合文本和图形来制作一张大表。我正在尝试将每一行都对齐到顶部。我使用工作目录中的一个图test.jpg进行了示例。我正在使用knitr的1.22版本。

require(knitr)
table <- dplyr::data_frame(
  col1= "test", 
  col2= "![test](test.jpg){width=150px}")
knitr::kable(table)

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

Exemple

有人遇到过类似的行为吗?

1 个答案:

答案 0 :(得分:0)

我没有一个好的解决方案,但是有一个解决方法。这是使用LaTeX软件包adjustbox的麻烦–特别是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)
```

enter image description here

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