kable: вертикальное выравнивание не работает с выводом PDF - PullRequest
2 голосов
/ 25 марта 2019

Я пытаюсь создать большую таблицу в формате PDF, смешивая текст и рисунки, используя kable.Я пытаюсь выровнять каждый ряд к вершине.Я сделал пример, используя рисунок test.jpg, расположенный внутри рабочего каталога.Я использую версию 1.22 knitr.

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

Он ведет себя корректно и выравнивает рисунок и текст по верху, если я вяжу его в html, но выравнивает рисунок и текст внизу, используя pdf.Указание параметра valign не меняет поведение.

Exemple

Кто-нибудь испытывал подобное поведение?

1 Ответ

0 голосов
/ 26 марта 2019

У меня нет хорошего решения, но у меня есть обходной путь. Это набор, который использует пакет 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

В этом примере используется фотография этой страницы Википедии .

...