Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从RMarkdown代码块生成Latex代码_R_Latex_Knitr_R Markdown - Fatal编程技术网

从RMarkdown代码块生成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

我想在报告顶部打印一个小标题。最后应该是这样的:

该报告由RMarkdown/Knitr报告生成。我正在混合乳胶以得到我需要的格式。数据基于我从REST查询中提取结果生成的表。R中的数据帧如下所示:

我对LaTex代码进行了编码,以获得我想要的结果,结果如下所示:

\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...