根据if语句打印乳胶文本以制作PDF

时间:2019-10-10 13:25:14

标签: r pdf latex markdown

我正在为人们创建pdf报告,并希望根据结果排除某些部分,以使人们更容易使用(例如,在此未发现问题,因此无需用空白解释)表格)。

我在代码块的标题中尝试了R块中的If语句和eval =''语句。当我只包含kableExtra创建的表时,它可以正常运行;但是,当我包含要解释的文字时,它给了我很多错误,例如“ \ T”是字符串中无法识别的转义符”

do_this = (nrow(tableone) >= 1)
print("message
 \begin{Form}
    \TextField[name = tableoneone, width = 10cm,
               height = 3cm,
               multiline=true]{}
\end{Form}  ")

如果不通过检查(表1中的行数为零),我希望不要将其包含在最终文档中。然而,这种情况并非如此。是否有我做错的事情或其他我没有想到的方法?

1 个答案:

答案 0 :(得分:1)

此问题是由您在字符串中使用反斜杠引起的。在R(以及大多数其他现代语言)中,backslashes in strings start an escape sequence

如果要包含文字反斜杠,则需要将其加倍('\\')。

此外,print不是在此处使用的正确函数。print是一个(以某种方式命名不正确的)函数,用于以交互模式检查值 绝对不要在脚本中使用它们。而是使用writeLinescat将文本输出到标准输出或文件,或使用message创建非输出消息。

cat("\\begin{Form}
    \\TextField[name = tableoneone, width = 10cm,
               height = 3cm,
               multiline=true]{}
\\end{Form}\n")