knitr:检索r块内的图形标题

时间:2015-01-21 22:16:45

标签: r knitr r-markdown

在我的rmarkdown文件中,我想知道是否有可能进入r块并在r-chunk本身内使用fig.cap选项值。

例如:

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

预先感谢您提供任何帮助或建议,以便从哪里开始寻找

2 个答案:

答案 0 :(得分:1)

有趣的问题。我想知道这样做的正确方法,但这种(非常)hacky方式对我有用。

---
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

这适用于最近生成的数字,但您可以使用数字计数器或其他内容为每个标题创建唯一变量,以便您可以随时引用。

答案 1 :(得分:1)

可以使用knitr::opts_current$get("fig.cap")检索它。这是一个例子:

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