{Soutput} asis 环境,在 knitr 中有 render_sweave 个钩子
{Soutput} environment for asis with render_sweave hooks in knitr
我正在用 knitr
处理 Rnw 文件并希望包含结果 "asis"
。在普通的 knitr
中,这工作正常,但在启用 render_sweave
挂钩后, {Soutput}
环境环绕 "asis"
结果。由于 Sweave()
没有这种行为,这对我来说似乎不一致。这是 intended/documented 行为吗?我在任何地方都找不到这个描述(例如,https://yihui.name/knitr/demo/sweave/)。这让我有点头疼的原因是我没有直接在输出上 运行 LaTeX 而是首先对其进行部分解析(在 R/exams 包中)。
这个问题用 knitr
风格的最小 foo.Rnw
文件来说明,首先用普通 knitr::knit()
处理:
writeLines('
<<echo=FALSE, results="asis">>=
writeLines("Hello World!")
@
', "foo.Rnw")
knitr::knit("foo.Rnw", quiet = TRUE)
writeLines(readLines("foo.tex"))
##
## Hello World!
##
但是,设置 render_sweave()
钩子后:
knitr::render_sweave()
knitr::knit("foo.Rnw", quiet = TRUE)
writeLines(readLines("foo.tex"))
##
## \begin{Soutput}
## Hello World!
## \end{Soutput}
##
相比之下,在 Sweave
样式中执行此操作会产生:
writeLines('
<<echo=FALSE, results=tex>>=
writeLines("Hello World!")
@
', "foo.Rnw")
utils::Sweave("foo.Rnw", quiet = TRUE)
writeLines(readLines("foo.tex"))
##
## Hello World!
我能做些什么来避免这种行为,例如,手动修改 render_sweave
挂钩吗?
这是 knitr(非常感谢您的报告)和 Github 上的 I just fixed it 的错误。基本上我忘了在 output
钩子中考虑 results='asis'
。现在,你可以试试knitr的开发版:
remotes::install_github('yihui/knitr')
我正在用 knitr
处理 Rnw 文件并希望包含结果 "asis"
。在普通的 knitr
中,这工作正常,但在启用 render_sweave
挂钩后, {Soutput}
环境环绕 "asis"
结果。由于 Sweave()
没有这种行为,这对我来说似乎不一致。这是 intended/documented 行为吗?我在任何地方都找不到这个描述(例如,https://yihui.name/knitr/demo/sweave/)。这让我有点头疼的原因是我没有直接在输出上 运行 LaTeX 而是首先对其进行部分解析(在 R/exams 包中)。
这个问题用 knitr
风格的最小 foo.Rnw
文件来说明,首先用普通 knitr::knit()
处理:
writeLines('
<<echo=FALSE, results="asis">>=
writeLines("Hello World!")
@
', "foo.Rnw")
knitr::knit("foo.Rnw", quiet = TRUE)
writeLines(readLines("foo.tex"))
##
## Hello World!
##
但是,设置 render_sweave()
钩子后:
knitr::render_sweave()
knitr::knit("foo.Rnw", quiet = TRUE)
writeLines(readLines("foo.tex"))
##
## \begin{Soutput}
## Hello World!
## \end{Soutput}
##
相比之下,在 Sweave
样式中执行此操作会产生:
writeLines('
<<echo=FALSE, results=tex>>=
writeLines("Hello World!")
@
', "foo.Rnw")
utils::Sweave("foo.Rnw", quiet = TRUE)
writeLines(readLines("foo.tex"))
##
## Hello World!
我能做些什么来避免这种行为,例如,手动修改 render_sweave
挂钩吗?
这是 knitr(非常感谢您的报告)和 Github 上的 I just fixed it 的错误。基本上我忘了在 output
钩子中考虑 results='asis'
。现在,你可以试试knitr的开发版:
remotes::install_github('yihui/knitr')