如何在knitr::spin中输出文字反勾号

如何在knitr::spin中输出文字反勾号,r,rstudio,knitr,r-markdown,R,Rstudio,Knitr,R Markdown,我正在尝试为R Studio中的knitr::spin文档创建一些代码片段模板,我需要它们包含文字背景标记,以便生成的文档包含R代码片段: 期望输出的示例: #' --- #' author: 'ENTER' #' title: 'ENTER' #' date: '`r Sys.time()`' #' output: #' html_document #' --- 但是,我不知道如何输出反勾号。这: `r paste("#' date: '`Sys.time()`')` 当从R St

我正在尝试为R Studio中的
knitr::spin
文档创建一些代码片段模板,我需要它们包含文字背景标记,以便生成的文档包含R代码片段:

期望输出的示例:

#' ---
#' author: 'ENTER'
#' title: 'ENTER'
#' date: '`r Sys.time()`'
#' output: 
#'    html_document
#' ---
但是,我不知道如何输出反勾号。这:

`r paste("#' date: '`Sys.time()`')`
当从R Studio代码段渲染到R代码时,记号会中断粘贴命令,因此将不起作用。我一直在尝试去除记号,添加向前和向后斜杠等,但还没有找到一个解决方案,可以正确地将这一行呈现为:

#' date: '`r Sys.time()`'

Windows 7 Enterprise 64位操作系统
R版本:3.2.5
R Studio版本:0.99.903
knitr版本:1.14


示例:我尝试了这个,但它仍然翻译R代码,而不是只打印文本:

snippet spin.header
`r paste("#' ---")`
`r paste("#' author: 'ENTER'")`
`r paste("#' title: 'ENTER'")`
`r paste("#' date:  '<code>``` `r Sys.time()` ```</code>'")`
`r paste("#' output:")` 
`r paste("#'    html_document")`
`r paste("#' ---")`

一个选项是中断内联R代码段处理期间使用的标记

snippet sh
  #' ---
  #' author: '${1:AUTHOR}'
  #' title: '${2:TITLE}'
  #' date: '`${3:}r Sys.time()`'
  #' output:
  #'    html_document
  #' ---
  ${0}

另一个选择是完全避免内联R解析

snippet sh
  `r paste0(readLines("~/.R/snippets/spinheader.txt"),collapse = '\n')`
spinheader.txt

#' ---
#' author: '${1:AUTHOR}'
#' title: '${2:TITLE}'
#' date: '`r Sys.time()`'
#' output:
#'    html_document
#' ---
${0}

正确答案由
rawr
发布在评论中(他只漏掉了r和一个记号):


注意:这不是YAML问题!正确的YAML输出显示在第三个代码框中。问题在于呈现R Studio代码段以正确显示YAML代码!->这是R Studio代码段的问题!代码框3正常工作,但问题是R Studio代码段在框3中创建第4行!它与这个问题更相关,但更复杂的是,不知道它是否有用,因此只是一个注释而不是一个答案,但也许您可以使用这样一个事实,即反勾号在ASCII表中是
hex 80
,并在中插入类似
\x80
或类似的内容。不
'r粘贴(“\35; \”日期:'\x60Sys.time()\x60”)`
工作?由于引号不平衡,粘贴命令也被中断
snippet spin.header
`r paste("#' ---")`
`r paste("#' author: 'ENTER'")`
`r paste("#' title: 'ENTER'")`
`r paste("#\' date: '\x60r Sys.time()\x60'")`
`r paste("#' output:")` 
`r paste("#'    html_document")`
`r paste("#' ---")`