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