Лучший способ хранения и последующего использования титров с латексом в Sweave? - PullRequest
3 голосов
/ 09 ноября 2011

Я хотел бы написать подписи к рисункам в режиме R Sweave, а затем добавить подписи в список, а затем использовать их в подписи к рисункам, например:

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 Ответ

7 голосов
/ 09 ноября 2011

Двойной побег \ символов. И вам не нужны двойные квадратные скобки ...

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$"
...