【问题标题】:Replace the automatic numbering of captions inrmarkdown / knitr / pdf替换inrmarkdown/knitr/pdf中的字幕自动编号
【发布时间】:2014-09-25 12:43:56
【问题描述】:

我正在使用 Rmarkdown 生成一个 PDF 文档,我想在其中手动定义数字编号

下面是一个块的例子:

```{r chunk26, fig.cap = "Fig. 5.3 My figure caption"}
plot(1, 1)
```

我使用特殊编号来跟踪文档的章节。

问题是,当我编织 PDF 时,“Figure X:”会自动添加到每个标题之前。结果,我的图形标题看起来像这个例子:

注意 我在 rmarkdown 文件的开头使用了以下参数:

output:
  pdf_document:
    fig_caption: yes

因此我的问题是:

在使用 rmarkdown/knitr 生成 PDF 时,是否可以在图标题之前删除“图 X”的自动生成?

【问题讨论】:

  • 图26是如何生成的?这不是默认设置,即,如果我将您的代码复制并粘贴到新的 rmarkdown 中,我不会得到任何自动编号。我假设您在某处设置了一些额外的 knitr 选项。
  • 是的,这是正确的。我添加了fig_caption: yes;否则我无法为我的人物添加标题。

标签: r knitr r-markdown


【解决方案1】:

在kohske发布的链接的基础上,我终于找到了一个解决方法,即根据模板定义图形编号

图#section.#figure
例如:图 3.1

这不是我最初想要做的(即删除数字的自动编号),但它是一个很好的解决方法。

怎么做

首先,在您的 rmarkdown 文件所在的目录中创建一个“mystyle.sty”文件。在这个 mystyle.sty 文件中,放入以下代码行:

\usepackage{chngcntr}

然后,在您的 rmarkdown 文件的标题中,添加以下信息:

output:
  pdf_document:
    fig_caption: yes
    includes:
        in_header: mystyle.sty

这样做的目的是确保 rmarkdown 要求 Latex 使用允许您创建适当的自动编号的包。

下一步是在文档的开头添加这个:

\counterwithin{figure}{section}

所以每个部分的数字都会被编号。

然后,您可以使用\setcounter{section}{#}手动定义“section”和“figure”的值

其实,你只需在每一节的开头加上以下两行:

\setcounter{section}{1}
\setcounter{figure}{0}

如果您在第 3 部分,请将 \setcounter{section}{1} 更改为 \setcounter{section}{3}

这可以正常工作;例如我第 5 节的图 3 是:

但是,还有另一个问题:虽然这解决了 knit PDF 问题,但这不适用于 HTML。如果您使用同一个文档生成 PDF 和 HTML 文件,那么您的 PDF 将有很好的编号,而您的 HTML 将没有任何编号。我还没有弄清楚如何在 HTML 中做同样的事情。

【讨论】:

    【解决方案2】:

    这很棘手,但您可以这样做:

    \setcounter{figure}{25}
    ```{r, fig.cap="hoge"}
    plot(1)
    ```
    

    如果您想获得连续编号,那么这里有一些信息: https://tex.stackexchange.com/questions/28333/continuous-v-per-chapter-section-numbering-of-figures-tables-and-other-docume

    【讨论】:

      【解决方案3】:

      你可以使用:

      header-includes: 
      \renewcommand{\caption}{Figure}
      

      在 YAML 标头中。然后,在代码块中,使用:

      ```{r, fig.cap=" 5.3: Response functions"}
      ...
      ```
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-31
        • 1970-01-01
        相关资源
        最近更新 更多