根据kohske发布的链接,我终于找到了解决方法,即根据模板定义图形编号
图#section.#figure
例如:图3.1
这不是我最初想要做的(即删除数字的自动编号),但这是一个很好的解决方法。
怎么做
首先,创建一个“mystyle.sty”文件,位于与 rmarkdown 文件相同的目录中。在此 mystyle.sty 文件中,放置以下代码行:
\usepackage{chngcntr}
然后,在 rmarkdown 文件的标头中添加以下信息:
output:
pdf_document:
fig_caption: yes
includes:
in_header: mystyle.sty
这样做的目的是确保 rmarkdown 要求 Latex 使用一个允许您创建适当的自动编号的包。
下一步是将其添加到文档的开头:
\counterwithin{figure}{section}
因此每个部分中的数字都会编号。
然后,您可以手动定义“section”和“figure”的值\setcounter{section}{#}
实际上,您只需将以下两行放在每个部分的开头即可:
\setcounter{section}{1}
\setcounter{figure}{0}
如果您在第 3 部分,请更改\setcounter{section}{1}
to \setcounter{section}{3}
.
这工作正常;例如我的第5部分的图3是:
然而,还存在另一个问题:虽然这解决了 knit PDF 问题,但这不适用于 HTML。如果您使用同一个文档生成 PDF 和 HTML 文件,那么您的 PDF 将具有良好的数字,而您的 HTML 将没有任何数字。我仍然不知道如何在 HTML 中做同样的事情。