图标题,使用knitr和markdown到html的引用

Jac*_*ner 37 markdown r knitr r-markdown

我正在编写一个Rmd文件,由knitr处理成HTML.它包含一些生成图形的R块,它们以HTML格式存储为数据URI.

1)如何为这样的图像添加标题?我想要一个类似"图3:等等等等"的标题,其中"3"是自动生成的.

2)我以后如何参考这个图像,即"正如你在图3中看到的那样,等等".

mik*_*eck 25

我迟到了,但是我想提一下我最近建立的一个小包,用于制作人物字幕和交叉引用knitr.它被调用kfigr,你可以使用它来安装它devtools::install_github('mkoohafkan/kfigr').它仍在积极开发中,但主要功能在那里.请务必查看小插图,它会显示一些用法示例,并为图标题和锚点定义一些挂钩(我稍后可能会选择导入包knitr并在加载时定义这些挂钩).

编辑:kfigr现在可以在CRAN上使用!

  • 看起来`kfigr`将很快过时,因为`bookdown`正在进行beta测试:https://bookdown.org/yihui/bookdown/.我鼓励人们尝试`bookdown`,因为`kfigr`并不总是和'pandoc`一起使用并且不支持markdown - > PDF. (4认同)

Yih*_*Xie 16

  1. 您可以使用R中的简单计数器创建图号; 看这里的一个例子.问题在于降价渲染器是否会为您呈现图形标题:R Markdown v1不会,但v2(基于Pandoc)将会.
  2. 我不知道.没有直接的方法来插入标签作为数字的标识符,因此可能无法将参考数字与纯Markdown交叉.一旦你遇到这样的问题,想想(1)我真的需要吗?(2)如果它是一个结构复杂的文件,我认为最好直接使用LaTeX(Rnw文件).


use*_*146 11

派对也很迟,我在这里改变了Yihuis的建议,他也将上面的内容联系起来进行参考.

```{r functions, include=FALSE}
# A function for captioning and referencing images
fig <- local({
    i <- 0
    ref <- list()
    list(
        cap=function(refName, text) {
            i <<- i + 1
            ref[[refName]] <<- i
            paste("Figure ", i, ": ", text, sep="")
        },
        ref=function(refName) {
            ref[[refName]]
        })
})
```
```{r cars, echo=FALSE, fig.cap=fig$cap("cars", "Here you see some interesting stuff about cars and such.")}
plot(cars)
```

What you always wanted to know about cars is shown in figure `r fig$ref("cars")`
Run Code Online (Sandbox Code Playgroud)


Tom*_*Tom 5

这里描述了执行这两种操作的一种方法:http://rmflight.github.io/posts/2012/10/papersinRmd.html

这里描述了另一个(但我不知道它是否符合你的#2).http://gforge.se/2014/01/fast-track-publishing-using-knitr-part-iii/