我正在使用 R 中的文档,将 knitr 转换为 pdflatex,并且正在使用toLatex
from memisc 的扩展版本。
然而,当我生成一个具有切割间隔的表格时,方括号没有被清理,并且 pdflatex 作业错误,因为[
.
我尝试sanitize=TRUE
输入 knitr 块代码,但这仅适用于 tikz。
以前,我使用 gsub 并替换了 R 对象本身中的字符串,这是相当不雅的。我希望有人能指出我缺少的 memisc 或 knitr 的细微差别,或者其他可以轻松处理乳胶特殊字符的函数/方法。
例子
library("memisc")
library("Hmisc")
example<-data.frame(cbind(x=1:100,y=1:100))
example$x<-cut2(example$x,m=20)
toLatex(example)
更新
搜索所以我发现了一篇关于使用 apply 函数应用 latexTranslate 的帖子,但这需要字符,所以我必须从一个因素到另一个字符。
我找到了另一个标识该函数的SO 帖子knitr:::escape_latex
,然后该块将这些内容作为标记输出而不是翻译它(使用 results='asis')或在代码块内生成一个 R 样式表(使用 results='markup')。我尝试在我的父文档中将它配置为一个钩子函数,它具有将所有文档内容作为标记输出的效果。这对我来说是一个全新的领域,所以我可能实施不正确。
<<setup,include=FALSE>>=
hook_inline = knit_hooks$get('inline')
knit_hooks$set(inline = function(x) {
if (is.character(x)) x = knitr:::escape_latex(x)
hook_inline(x)
})
@
...
<<tab-example,echo=FALSE,cache=TRUE,results='asis',sanitize=TRUE,inline=TRUE>>=
library("Hmisc")
library("memisc")
example<-data.frame(cbind(x=1:100,y=1:100))
example$x<-cut2(example$x,m=20)
toLatex(example)
@
根据@yihui,这是错误的方法
更新 2
我创建了一个 gsub 包装器,它将转义百分比等,但是 [ 符号仍然将乳胶推入数学模式和错误。