在生成的pdf中突出显示所有内联\ Sexpr {}输出

时间:2016-01-18 11:57:27

标签: r latex knitr sweave

我使用knitr作为报告,其中我使用\documentclass[12pt]{article} \begin{document} <<echo=FALSE, include=FALSE>>= N <- 100 # Total N_f <- 60 # Women @ There were \Sexpr{N} people in the company, \Sexpr{N_f} women and \Sexpr{N - N_f} men. \end{document} 有很多内联输出文本,主要是数值。我想在生成的pdf中突出显示所有这些内联输出。

示例代码:

\hl{}

因此,在输出中,所有数字都应突出显示,即背景为阴影(类似于\usepackage{soul}与{{1}}一起使用)。

在我看来,解决方案将使用inline output hooks之一。另一种可能性是编写一个LaTeX函数,它搜索整个文档中的所有\ Sexpr {...}表达式,并在生成的pdf中突出显示它们。我还在学习,无法弄清楚如何实现这些。

感谢您提供任何帮助或提示。

注意:yihui的knitr page谈到了我所涵盖的数值(科学记数法,小数点后的数字)的操纵。

1 个答案:

答案 0 :(得分:2)

output hook inline可用于设置\Sexpr{}的输出样式。这就像

一样简单
knit_hooks$set(inline = function(x) { sprintf("\\textbf{%s}", x)})

只需定义一个带有参数x的任意函数,并返回要打印的字符串。在这个例子中,我使用\textbf使输出变为粗体,但是这可以扩展到任何LaTeX命令。

this answer中,Yihui建议改进仍然考虑默认的内联挂钩。这确保了通常由默认挂钩执行的舍入:

hook_inline <- knit_hooks$get('inline')
knit_hooks$set(inline = function(x) { sprintf("\\textbf{%s}", hook_inline(x))})