我喜欢将type(text.lower()) #=> <type 'str'>
用于内联R代码,包括突出显示。但是,这似乎不适用于公式。似乎代字号是一个问题。它只是没有在pdf中显示。
这是一个最小的例子:
\Sexpr{''}
我得到的是以下内容:
感谢任何帮助。
答案 0 :(得分:2)
仔细观察在setup中定义的内联函数的结果:
inline('lm(response ~ treatment, data)')
"[1] \\hlkwd{lm}\\hlstd{(response} \\hlopt{~} \\hlstd{treatment, data)}"
这里有两个问题:代字号用\ hlopt {}而不是\ hlstd {}标记,并且没有正确标记为LaTeX的符号。为此,您需要将其插入\textasciitilde
。
我不知道是否有办法修改highr::hi_latex
来正确解释所有数学符号,如代字号。除此之外,您可以按如下方式修改LaTeX输出 post facto :
<<setup, echo=FALSE, message=FALSE>>=
library(knitr)
library(dplyr)
library(stringr)
knit_hooks$set(inline = function(x) {
if (is.numeric(x)) return(knitr:::format_sci(x, 'latex'))
highr:::hi_latex(x) %>%
str_replace("~", "\\\\textasciitilde") %>%
str_replace("hlopt", "hlstd")
})
@