繁体   English   中英

替换字幕的自动编号inrmarkdown / knitr / pdf

[英]Replace the automatic numbering of captions inrmarkdown / knitr / pdf

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

下面是一个块的示例:

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

我使用特殊的编号来遵循文档的各章。

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

图形标题问题示例

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

output:
  pdf_document:
    fig_caption: yes

因此,我的问题是:

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

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

图#节。图
例如:图3.1

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

怎么做

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

\usepackage{chngcntr}

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

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

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

下一步是将其添加到文档的开头:

\counterwithin{figure}{section}

因此数字将在每个部分中编号。

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

实际上,您要做的只是将以下两行放在每个部分的开头:

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

如果您在第3节中, \\setcounter{section}{1}更改为\\setcounter{section}{3}

这正常工作; 例如,我的第5部分的图3是:

适当的字幕

但是,仍然存在另一个问题:尽管这解决了编织的PDF问题,但不适用于HTML。 如果您使用同一文档来生成PDF和HTML文件,则您的PDF将具有良好的编号,而您的HTML将不会具有任何编号。 我仍然没有弄清楚如何在HTML中做同样的事情。

这很棘手,但是您可以通过以下方法做到这一点:

\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

您可以使用:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM