R Markdown HTML Number Figures

前端 未结 4 727
[愿得一人]
[愿得一人] 2020-12-01 08:40

Does anyone know how to number the figures in the captions, for HTML format R Markdown script?

For PDF documents, the caption will say something like:

4条回答
  •  醉梦人生
    2020-12-01 08:59

    We can make use of pandoc-crossref, a filter that allows a cross-referencing of figures, tables, sections, and equations and works for all output format. The easiest way is to cat the figure label (in the form of {#fig:figure_label}) after each plot, although this requires echo=FALSE and results='asis'. Then we can reference a figure as we would a citation : [@fig:figure_label] produces fig. figure_number by default.

    Here is a MWE:

    ---
    output: 
      html_document:
        toc: true
        number_sections: true
        fig_caption: true
        pandoc_args: ["-F","pandoc-crossref"]
    ---
    
    ```{r}
    knitr::opts_chunk$set(echo=FALSE,results='asis')
    
    ```
    
    
    ```{r plot1,fig.cap="This is plot one"}
    x <- 1:10
    y <- rnorm(10)
    plot(x,y)
    cat("{#fig:plot1}")
    
    ```
    
    As we can see in [@fig:plot1]... whereas [@fig:plot2] shows...
    
    ```{r plot2, fig.cap="This is plot two"}
    plot(y,x)
    cat("{#fig:plot2}")
    
    ```
    

    which produces (removing the graphics

    PLOT1

    Figure 1: This is plot one

    As we can see in fig. 1… whereas fig. 2 shows…

    PLOT2

    Figure 2: This is plot two

    See the pandoc-crossref readme for more options and customizations.

    To install pandoc-crossref, assuming you have a haskell installation:

    cabal update
    cabal install pandoc-crossref
    

提交回复
热议问题