从RMarkdown代码块生成Latex代码
我想在报告顶部打印一个小标题。最后应该是这样的: 该报告由RMarkdown/Knitr报告生成。我正在混合乳胶以得到我需要的格式。数据基于我从REST查询中提取结果生成的表。R中的数据帧如下所示: 我对LaTex代码进行了编码,以获得我想要的结果,结果如下所示:从RMarkdown代码块生成Latex代码,r,latex,knitr,r-markdown,R,Latex,Knitr,R Markdown,我想在报告顶部打印一个小标题。最后应该是这样的: 该报告由RMarkdown/Knitr报告生成。我正在混合乳胶以得到我需要的格式。数据基于我从REST查询中提取结果生成的表。R中的数据帧如下所示: 我对LaTex代码进行了编码,以获得我想要的结果,结果如下所示: \begin{spacing}{.7} \begin{center} ECC \begin{tabular}{|C|C|} \hline \cellcolor{red} \textbf{\scriptsize \textcolor
\begin{spacing}{.7}
\begin{center}
ECC \begin{tabular}{|C|C|} \hline \cellcolor{red} \textbf{\scriptsize \textcolor{white}{TOUCH}} & \textbf{\scriptsize NO TOUCH} \\ \hline \end{tabular} \hspace{.9em}
DOC \begin{tabular}{|C|C|} \hline \textbf{\scriptsize TOUCH} & \textbf{\scriptsize NO TOUCH} \\ \hline \end{tabular} \hspace{.9em}
CCC \begin{tabular}{|C|C|} \hline \textbf{\scriptsize TOUCH} & \textbf{\scriptsize NO TOUCH} \\ \hline \end{tabular} \hspace{.9em}
GEN \begin{tabular}{|C|C|} \hline \textbf{\scriptsize TOUCH} & \textbf{\scriptsize NO TOUCH} \\ \hline \end{tabular} \hspace{.9em}
IT \begin{tabular}{|C|C|} \hline \textbf{\scriptsize TOUCH} & \textbf{\scriptsize NO TOUCH} \\ \hline \end{tabular} \hspace{.9em}
\end{center}
\end{spacing}
到目前为止,一切顺利。但是文本的颜色和单元格的颜色需要是动态的。准则如下:
\being{center}
和\begin{spating}{.7}
项中,如下所示:
```{r echo = FALSE, warning = FALSE, message=FALSE, results='asis'}
# Add row to data frame to build table options
touchNoTouchDF$tableOption <- NA
for(i in 1:nrow(touchNoTouchDF)) {
if(strsplit(touchNoTouchDF[i,1], ":")[[1]][2] == "Touch") {
touchNoTouchDF[i,2] <- paste(strsplit(touchNoTouchDF[i,1], ":")[[1]][1],"\\begin{tabular}{|C|C|} \\hline \\cellcolor{OliveGreen!85} \\textbf{\\scriptsize \\textcolor{white}{TOUCH}} \& \\textbf{\\scriptsize NO TOUCH} \\newline \\hline \\end{tabular} \\hspace{.9em}")
} else {
touchNoTouchDF[i,2] <- paste(strsplit(touchNoTouchDF[i,1], ":")[[1]][1],"\\begin{tabular}{|C|C|} \\hline \\textbf{\\scriptsize TOUCH} \& \\cellcolor{red} \\textbf{\\scriptsize \\textcolor{white}{NO TOUCH}} \\newline \\hline \\end{tabular} \\hspace{.9em}")
}
}
for(i in 1: nrow(touchNoTouchDF)) {
print(touchNoTouchDF[i,2])
}
```
我想,也许是因为我没有逃脱表中的“&”,但当我尝试时,我得到:
Error: \& is an unrecognized escape character in string...
再次感谢
更新:
我算出来了——在表格中,最初,每行的末尾都有一个\
。我试图通过\\\
来逃避这个问题,这给了我一个错误。我决定,既然我认为\\
是一条新行,我就用\\newline
来代替它。我想你必须把\\
放在桌子的末尾,否则它就不喜欢了
所以。。。我把
\
放回去了。现在,但我仍然有逃避的问题。只是一时兴起,我想,“如果一个\逃避另一个\,也许我需要两个,一个来逃避每个反斜杠…”我用\\\\\
替换了\\\\
,瞧!成功了。啊,这么简单的事情。。。。我想发布这个问题的解决方案。所有-为了发布正式答案,我的错误是认为我可以用一个“\”来逃避“\”,因此,我粘贴到了我的字符串“\”。但是,由于每个“\”都必须转义。我不得不先逃过第一个“\”再逃过第二个“\”,因此以“\ \”结束。第一个逃避第二个,第三个逃避第四个。可能是一些基本的东西,但如果你不注意的话,很容易疏忽。我只是想为其他人发布答案 您肯定希望使用cat()
而不是print()
。告诉我们打印的内容,以及您遇到的错误或问题。@user2554330我在上面问题的末尾“编辑:”下添加了输出/错误。我希望这有帮助。如果你需要更多信息,请告诉我。谢谢你的关注@user2554330我发现了这个问题,它与在执行cat()之前在代码中转义“\\”有关。我想你已经在想这个了,所以如果你想发布,我会接受它作为解决方案。
Error: \& is an unrecognized escape character in string...