【问题标题】:Knitr : automated figure numbering in the file namesKnitr:文件名中的自动数字编号
【发布时间】:2017-08-13 01:18:45
【问题描述】:

在编译 knitr 报告时,我想自动更改保存在光盘上的文件的名称(例如 label-1.pdf),以包括数字标题的自动编号(例如 Figure-054.pdf)。

例子:

---
title: "Test"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE,  fig.path = 'Figures/', fig.cap = '  ', fig.pos = "H")
```

```{r}
summary(cars)
```

```{r cars}
plot(cars)
```

```{r, fig.cap = 'pressure'}
plot(pressure)
```

```{r}
summary(iris)
```

```{r}
plot(iris)
plot(iris[,1] ~ iris[,5])
```

我得到4个文件名

cars-1.pdf
unnamed-chunk-2-1.pdf
unnamed-chunk-4-1.pdf
unnamed-chunk-4-2.pdf

我想获得类似的东西(即对应于 pdf 报告中的编号):

Figure-001.pdf
Figure-002.pdf
Figure-003.pdf
Figure-004.pdf

我知道可以使用 fig.process knitr 选项更改人物名称。但我不知道如何捕获自动数字。

【问题讨论】:

    标签: r knitr r-markdown


    【解决方案1】:

    我有部分答案。

    你必须相应地命名你的块:

    ---
    title: "Test"
    output: pdf_document
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = TRUE,  fig.path = 'Figures/', fig.cap = '  ', fig.pos = "H")
    ```
    
    ```{r}
    summary(cars)
    ```
    
    ```{r Figure1}
    plot(cars)
    ```
    
    ```{r Figure2, fig.cap = 'pressure'}
    plot(pressure)
    ```
    
    ```{r }
    summary(iris)
    ```
    
    ```{r Figure3}
    plot(iris)
    
    ```
    
    ```{r Figure4}
    plot(iris[,1] ~ iris[,5])
    ```
    

    理想情况下,每个块创建一个图形。 我还不知道如何去掉块名称末尾的额外数字knitr

    【讨论】:

    • 感谢@FabianCid,但这不是一个可行的解决方案。每次插入新图或更改图的顺序时,都必须手动重新编辑所有块标签...
    • 我认为它是可行的,但并不强大。为了使其更健壮,您可以使用This answer
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    相关资源
    最近更新 更多