我最近学会了如何使用包含unicode符号的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时,这让我陷入了长达一小时的试图调试与之相关的乳胶错误的兔子洞。表中的unicode字符,导致问题的颜色规范中的数字符号,脚注,状态! Misplaced \noalign.
的错误,我还没有找出其来源等等。
我将在此末尾包含完整Rmd文件的文本。如果有所作为,我会在Mac上使用它。使用BasicTex和tlmgr安装缺少的乳胶包。
是否存在(1)保存我的kableExtra表的方法,该表在RStudio中呈现时看起来我想要的是一个可扩展的PDF文件,它不涉及RMarkdown?我今天玩了write2pdf()
函数,但又遇到了unicode问题。我也尝试将它编织成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
```
答案 0 :(得分:9)
有一些问题。
cell_spec
将插入原始HTML代码,除非您要求它插入LaTeX代码。使用format = "latex"
来执行此操作。
您需要在LaTeX代码中指定符号,而不是HTML标记。 xelatex
应支持"\\symbol{9650}"
"▲"
之类的内容,但我无法显示任何内容:也许我没有安装字体。相反,你可以使用AMS符号;填充的圆圈为"$\\bullet$"
,向上指向的填充三角形为"$\\blacktriangle$"
。我没有查找你的其他人,但如果你很幸运,你会在https://www.rpi.edu/dept/arc/training/latex/LaTeX_symbols.pdf找到它们。
kable
表在LaTeX中很难看;使用booktabs = TRUE
选项获得更好的选项。所以这就是你的ktable
规范应该是这样的:
table_info <- data.frame(Symbol=c("$\\bullet$", "$\\bullet$", "$\\blacktriangle$"),
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, format = "latex",
escape = FALSE)) %>%
select(-Color) %>%
kable(escape = FALSE, align = c("c", "l", "l"), booktabs = TRUE) %>%
kable_styling(full_width = FALSE)
ktable