小编bog*_*ton的帖子

Rmarkdown 文件成功编织为 PDF,但从 R 调用时出错

我写了一个 Rmarkdown 文件,它加载一些数据并生成一个很酷的 kableExtra 表,其中包含一些符号和自定义颜色和线条,并将其打印为 pdf。

当我打开 Rmarkdown 文件并编织时,它工作得很好,并产生我想要的确切输出。

我现在想使用一个 R 脚本来遍历数据的一些不同子集,为每个子集生成一个新表(和单独的输出 pdf)。所以,我需要从 .R 文件中调用我的 .Rmd 文件。

但是,当我执行此操作(使用该rmarkdown::render函数)时,会出现在 .Rmd 文件中直接编织时不会发生的错误。

下面是一个功能齐全的 .Rmd 文件,它类似于我在真实数据中使用的文件。我从第二个 R 脚本中调用它,行rmarkdown::render("table_creator.Rmd", pdf_document(latex_engine = "xelatex")).

我遇到的第一个错误是Error: Functions that produce HTML output found in document targeting latex output.. 我添加always_allow_html: yes到 .Rmd 文件的标题并重试。直接编织 .Rmd 文件再次工作正常。从 .R 脚本调用它现在会产生错误: ! Undefined control sequence. l.94 ...oup\fontsize{16}{18}\selectfont \textcolor [HTML]{ffde71}{$\bullet$}\...

在这一点上,我认为渲染发生的设置与我直接编织 .Rmd 文件时使用的设置不同。这几乎就像它没有解析 .Rmd 文件中的完整标头,但我不确定。我不知道如何在这一点上进行,并希望得到任何帮助。

---
title: ""
output:
  pdf_document:
    latex_engine: xelatex
header-includes:
- \usepackage[T1]{fontenc}
- …
Run Code Online (Sandbox Code Playgroud)

latex r knitr r-markdown kable

5
推荐指数
1
解决办法
800
查看次数

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

我最近学会了如何使用包含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)
Run Code Online (Sandbox Code Playgroud)

结果在漂亮的表中看起来像这样: 在此输入图像描述

我现在想把它自动渲染成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 …
Run Code Online (Sandbox Code Playgroud)

latex r knitr r-markdown kable

2
推荐指数
1
解决办法
870
查看次数

标签 统计

kable ×2

knitr ×2

latex ×2

r ×2

r-markdown ×2