gpt4 book ai didi

使用 RMarkdown 将带有颜色和 unicode 字符的 kableExtra 表渲染为 PDF

转载 作者:行者123 更新时间:2023-12-01 02:43:48 24 4
gpt4 key购买 nike

我最近学习了如何使用包含 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)

生成如下所示的漂亮表格:enter image description here

我现在想自动将其渲染成 PDF,但是当我将这段确切的代码粘贴到设置为编织成 PDF 的 RMarkdown 文件中时,这让我陷入了一个长达数小时的兔子洞,试图调试与相关的各种 latex 错误表中的 unicode 字符、导致问题的颜色规范中的数字符号、脚注、声明 的错误!错位的\noalign. 我还没有弄清楚来源等

我将在最后包含完整 Rmd 文件的文本。如果这有所作为,我正在使用 Mac。使用 BasicTex 和 tlmgr 安装缺少的 latex 包。

是否有 (1) 一种方法可以将我的 kableExtra 表保存到不涉及 RMarkdown 的可缩放 PDF 文件中,该表在 RStudio 中呈现时看起来完全符合我的要求?我今天尝试了 write2pdf() 函数,但又遇到了 unicode 问题。我还尝试将它编织成 html 并通过调用 pandoc 将其转换,但这删除了我需要的大部分表格格式。

也许我在那里缺少一些简单的解决方案,但是...或者 (2) 是否有人能够告诉我哪些更改会使此 Rmd 代码正确地将我的图表呈现为 PDF? R 代码本身工作正常。我猜这是某种 Latex 问题。

非常感谢您的帮助。

---
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("&#9650", "&#9670", "&#2795"),
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


```

最佳答案

有几个问题。

  1. cell_spec 将插入原始 HTML 代码,除非您要求它插入 LaTeX 代码。使用 format = "latex" 来做到这一点。

  2. 您需要在 LaTeX 代码中指定符号,而不是 HTML 标记。 xelatex 应该支持 "\\symbol{9650}" for "▲",但我无法显示任何内容up: 也许我没有安装字体。相反,您可以使用 AMS 符号;实心圆是 "$\\bullet$",向上的实心三角形是 "$\\blacktriangle$"。我没有查你的其他人,但如果你幸运的话,你会在 https://www.rpi.edu/dept/arc/training/latex/LaTeX_symbols.pdf 中找到他们.

  3. 常规的 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

关于使用 RMarkdown 将带有颜色和 unicode 字符的 kableExtra 表渲染为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50670838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com