最好的方法来存储和以后在Sweave中使用Latex的字幕?

时间:2011-11-09 00:18:20

标签: r text latex sweave

我想在Sweave的R模式下编写图标,然后将标题添加到列表中,稍后在图标题中使用它们,例如:

caption <- list()
myresult <- data.frame(name = c('fee', 'fi'), x = c(1,2))
caption[['fig1']] <- "$\text{\Sexpr{myresult$name[1]}}\Sexpr{myresult$x[1]$" 
caption[['fig2']] <- "$\text{\Sexpr{myresult$name[2]}}\Sexpr{myresult$x[2]$"

但是我收到以下错误:

Error: '\S' is an unrecognized escape in character string starting "$\text{\S"

有没有办法可以将这样的字符串存储在列表中,还是更好的方法?

1 个答案:

答案 0 :(得分:7)

双重转义\个字符。而且你不需要双方括号......

caption <- list()
myresult <- data.frame(name = c('fee', 'fi'), x = c(1,2))
caption['fig1'] <- "$\\text{\\Sexpr{myresult$name[1]}}\\Sexpr{myresult$x[1]$" 
caption['fig2'] <- "$\\text{\\Sexpr{myresult$name[2]}}\\Sexpr{myresult$x[2]$"

坦率地说,我会写一个简单的辅助函数:

genCaption <- function(name, value){
    sprintf("$\\text{%s}%.3f$", name, value)
}

你会得到:

> genCaption("pi", pi)
[1] "$\text{pi}3.142$"