gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 02:23:00 26 4
gpt4 key购买 nike

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

下面是一个 block 的例子:

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

我使用特殊编号来跟在文档的章节之后。

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

Example of problem with the figure captions

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

output:
pdf_document:
fig_caption: yes

因此我的问题是:

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

最佳答案

根据kohske发布的链接,我终于找到了解决方法,即根据模板定义图号

Figure #section.#figure
For example: Figure 3.1

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

怎么做

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

\usepackage{chngcntr}

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

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 是:

Proper caption

但是,还有一个问题:虽然这解决了 knit PDF 问题,但它不适用于 HTML。如果你用同一个文档生成PDF和HTML文件,那么你的PDF会有很好的编号,而你的HTML不会有任何编号。我仍然没有想出如何在 HTML 中做同样的事情。

关于替换rmarkdown/knitr/pdf中的字幕自动编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26038991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com