2015-01-21 16 views
5

W pliku RStown, zastanawiałem się, czy możliwe było umieszczenie wewnątrz r-chunk i skorzystanie z wartości opcji fig.cap wewnątrz samego r-chunk.knitr: Odzyskiwanie podpisu w rdzeniu r

Na przykład:

```{r fig.cap = 'test'} 
code 
. 
. 
print(options$fig.cap)? 
```` 

Dzięki z góry za wszelką pomoc lub poradę do miejsca, gdzie zacząć szukać

Odpowiedz

1

ciekawe pytanie. Chciałbym wiedzieć, jak to zrobić, ale ten (bardzo) hakowaty sposób działa dla mnie.

--- 
output: 
    html_document: 
    css: ~/knitr.css 
--- 

```{r, include=FALSE} 
library(knitr) 
knit_hooks$set(plot = function(x, options) { 
    fig_fn = paste0(opts_knit$get('base.url'), paste(x, collapse = '.')) 
    fig.cap <<- knitr:::.img.cap(options) 
    sprintf("<figure><img src='%s'><figcaption>%s</figcaption></figure>", 
      fig_fn, fig.cap) 
    }) 
``` 

```{r, fig.cap = 'Figure I: the plot of my figure.'} 
plot(1:5) 
```` 

I say some things and some other things. 

Oh, yeah please refer to `r fig.cap` 

enter image description here

Działa to na ostatnim rysunku generowany, ale można pracować w liczniku rysunek albo coś innego zrobić unikalne zmienne dla każdego napisu, tak aby można odwołać w dowolnym momencie.

1

Można go pobrać za pomocą knitr::opts_current$get("fig.cap"). Oto przykład:

```{r fig.cap = 'test'} 
library(knitr) 
code 
. 
. 
print(opts_current$get("fig.cap")) 
````