Restart Figure Numbering for Appendix / Supplementary Material in bookdown
Asked Answered
C

2

13

I am writing an article for a journal that requires Supplementary Material. I was hoping to use a unique label such as SuppMat: instead of the default fig: to send Figures and Tables into this section. If not, I can use the default fig label but I need numbering to restart in the Supplementary Material section of the document.

I am aware of one answer using latex (found here) but I must complete this when exporting to docx. Below is a reproducible example using officedown

---
output: 
  officedown::rdocx_document
---

```{r setup, include=FALSE}
pacman::p_load(knitr, officedown, officer)
knitr::opts_chunk$set(echo = FALSE,
                      eval = TRUE,
                      fig.cap = TRUE)
```

# Main Text

Please see Supplementary Figure \@ref(fig:appendix-fig1) and Figure \@ref(fig:main-fig1). 


```{r fig.id="main-fig1", fig.cap="This should be labelled **Figure 1**"}
barplot(1:5, col=1:5)
```

```{r tab.id="main-tab1", tab.cap="Main Text Table 1"}
head(mtcars)
```
\newpage

# Supplementary Materials {#SuppMat}

```{r fig.id="appendix-fig1", fig.cap="This figure should be labelled **Supplementary Figure 1**"}
barplot(1:5, col=1:5)
```

```{r tab.id="appendix-tab1", tab.cap="Should be labelled **Supplementary Table 1**"}
head(mtcars)
```
Cyaneous answered 27/2, 2019 at 22:37 Comment(0)
C
6

After searching multiple forums and hours, I was able to come up with a solution using the officedown package. Hopefully this helps someone else out. For further details check out the run_autonum function.

---
output: officedown::rdocx_document
---

```{r setup, include=FALSE}
pacman::p_load(officedown, officer, knitr)
knitr::opts_chunk$set(echo = FALSE, fig.cap = TRUE)


ft_base <- fp_text(font.family = "Cambria", font.size = 12, bold = TRUE)
ft1 <- update(ft_base, shading.color='#EFEFEF', color = "red")
ft2 <- update(ft_base, color = "#C32900")

srcfile <- file.path( R.home("doc"), "html", "logo.jpg" )
extimg <- external_img(src = srcfile, height = 1.06/5, width = 1.39/5)
```



## References

This is a reference to an supplementary image caption whose number is Supplementary Figure \@ref(fig:faithfuld-plot) and \@ref(fig:supp-bar).

Testing another figure with a barplot in Figure \@ref(fig:plotbar)

```{r fig.id="plotbar", fig.cap = "Main Figure"}
barplot(1:8, col=1:2)
```

## Supplementary Material

```{r fig.id="faithfuld-plot"}
knitr::include_graphics("images/MyImage.png") # Use your own figure here (I needed to test with knitr for my workflow)

block_caption("First Appendix Figure",
              style = "Figure",
              autonum = run_autonum(seq_id = 'fig', 
                                    bkm = 'faithfuld-plot',
                                    pre_label = "Supplemental Figure ",
                                    start_at=1))
```

```{r fig.id="supp-bar"}
barplot(1:8, col=1:2)

block_caption("Second Appendix Figure",
              style = "Figure",
              autonum = run_autonum(seq_id = 'fig', 
                                    bkm = 'supp-bar',
                                    pre_label = "Supplemental Figure ",
                                    start_at= NULL))
```
Cyaneous answered 29/9, 2021 at 19:6 Comment(0)
C
4

following @Patrick's answer, I found another way.


```{r fig.id="faithfuld-plot", fig.cap.pre="Supplementary Figure",fig.autonum.start_at=1,fig.lp="supp-fig"}
knitr::include_graphics("images/MyImage.png") 

```
blah blah blah

```{r fig.id="faithfuld-plot2", fig.cap.pre="Supplementary Figure",fig.lp="supp-fig"}
knitr::include_graphics("images/MyImage2.png")

```

This should use the caption label prefix of "Supplementary Figure and the number should start at 1. To continue the numbering be sure to specify an alternative .lp

Compatible with fig.lp or tab.lp. tab and fig are interchangeable

Colima answered 19/5, 2023 at 16:31 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.