它与默认的内联钩子有关,我意识到并且我已经尝试了它(钩子)并且还阅读了这个线程和Yihui 关于钩子的页面,但是我无法解决我的问题.我甚至尝试过Sacha Epskamp的这个建议,但在我的情况下它没有做到这一点.
我正在使用\Sexpr并做一些\Sexpr{load("meta.data.saved"); meta.data[1,7]}在我的报告中打印关键字的方法,问题是人们编写这些关键字(我无法控制的人)正在使用特殊的乳胶字符($,&,%,#等. )当它们被传递到我的.tex文件时,我没有\一个糟糕的时间.
我有一个包含此代码的.Rnw文件,
\documentclass{article}
\begin{document}
Look \Sexpr{foo <- "me&you"; foo} at this.
\end{document}
Run Code Online (Sandbox Code Playgroud)
Thsi创建一个带有非法LaTeX字符的.tex文件.像这样,
<!-- Preamble omitted for this example. -->
\begin{document}
Look me&you at this.
\end{document}
Run Code Online (Sandbox Code Playgroud)
我有兴趣得到一个看起来像这样的输出,
<!-- Preamble omitted for this example. -->
\begin{document}
Look me\&you at this.
\end{document}
Run Code Online (Sandbox Code Playgroud)
很抱歉这个简单的问题,但有人可以帮助我,也许其他人,开始如何修改默认的内联挂钩\Sexpr?
@agstudy提供的解决方案已经展示了基本思想,这里有一个更强大的版本:
hook_inline = knit_hooks$get('inline')
knit_hooks$set(inline = function(x) {
if (is.character(x)) x = knitr:::escape_latex(x)
hook_inline(x)
})
Run Code Online (Sandbox Code Playgroud)
它只在内联结果为字符时修改默认的内联挂钩(否则只使用默认挂钩).我有一个内部函数escape_latex(),希望正确地逃避所有特殊的LaTeX字符.
| 归档时间: |
|
| 查看次数: |
1456 次 |
| 最近记录: |