Я недавно узнал, как создавать удивительные таблицы с kableExtra, которые включают символы Юникода, чтобы они могли работать как интерпретирующие таблицы для моих графиков.
library(dplyr)
library(kableExtra)
data.frame(
Symbol = c("●", "●", "▲"),
Description = c("bla bla bla", "bla bla bla", "bla bla bla"),
Result = c("bla bla bla", "bla bla bla", "bla bla bla")
) %>%
mutate(
Symbol = cell_spec(Symbol, color = c("yellow", "pink", "pink"), escape = F)
) %>%
kable(escape = F, align = c("c", "l", "l")) %>%
kable_styling(full_width = F)
В результате получается красивая таблица, которая выглядит так:
Теперь я хотел бы автоматически преобразовать это в PDF, но когда я вставил этот точный код в файл RMarkdown, настроенный на вязку в PDF, это привело меня к часамкроличья дыра в попытке отладки различных латексных ошибок, связанных с символами юникода в таблице, числовыми знаками в спецификациях цвета, вызывающих проблемы, сносками, ошибками, которые указывают ! Misplaced \noalign.
, о которых мне еще предстоит выяснить источник, и т. д..
Я включу текст полного Rmd-файла в конце этого.Я на Mac, если это имеет значение.Использование BasicTex и tlmgr для установки отсутствующих латексных пакетов.
Есть ли (1) способ сохранить мою таблицу kableExtra, которая выглядит ТОЧНО, как я хочу, когда она отображается в RStudio, в масштабируемый файл PDF, который нене задействовать RMarkdown?Сегодня я поиграл с функцией write2pdf()
, но снова столкнулся с проблемами юникода.Я также попытался связать его с html и преобразовать с помощью вызова pandoc
, но это убрало большую часть необходимого мне форматирования таблицы.
Возможно, я упускаю какое-то простое решение, хотя ...или (2) кто-нибудь может мне сказать, какие изменения заставит этот код Rmd правильно отображать мою диаграмму в PDF?Сам код R работает нормально.Думаю, это какая-то проблема с латексом.
Большое спасибо за любую помощь.
---
title: ""
output:
pdf_document:
latex_engine: xelatex
---
```{r, echo=FALSE, results="asis"}
# TODOREQ: add "much" grammars for acute levels
# TODOREQ: change "levels of concern" to the respective guideline name.
# TODO: Change to groupby/summarize
# TODO: Factor out package loading and global variables into a single setup file
# Packages
suppressMessages(library(ggplot2))
suppressMessages(library(extrafont))
suppressMessages(library(kableExtra))
suppressMessages(library(dplyr))
table_info <- data.frame(Symbol=c("▲", "◆", "૫"),
Name=c("Name1", "Name2", "Name3"),
Description=c("Description1", "Description2",
"Description3"),
Results=c("Bad", "Good", "Bad"),
Color=c("#ffde71", "#394f38",
"#09a2dd"))
ktable <- table_info %>%
mutate(Symbol = cell_spec(Symbol, color = Color, escape = FALSE)) %>%
select(-Color) %>%
kable(escape = FALSE, align = c("c", "l", "l")) %>%
kable_styling(full_width = FALSE)
ktable
```