我正在使用Rmarkdown生成PDF文档,我想在其中手动定义图号。
以下是一个块的示例:
```{r chunk26, fig.cap = "Fig. 5.3 My figure caption"}
plot(1, 1)
```
我使用特殊编号来跟踪文档的章节。
问题在于,当我编织PDF时,"图X:"在每个标题之前自动添加。结果,我的人物标题看起来像这个例子:
注意的 我在rmarkdown文件的开头使用了以下参数:
output:
pdf_document:
fig_caption: yes
我的问题是:
是否可以删除自动生成"图X"在图标题之前,使用rmarkdown / knitr生成PDF?
答案 0 :(得分:2)
根据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}{#}
实际上,你要做的只是将以下两行放在每个部分的开头:
\setcounter{section}{1}
\setcounter{figure}{0}
如果您在第3部分,请将\setcounter{section}{1}
更改为\setcounter{section}{3}
。
这很正常;例如,我的第5部分的图3是:
然而,还有另一个问题:虽然这解决了编织PDF问题,但这对HTML不起作用。如果您使用同一文档生成PDF和HTML文件,那么您的PDF将有很好的数字,并且您的HTML将没有任何数字。我还是没想出如何在HTML中做同样的事情。
答案 1 :(得分:1)
这很棘手,但您可以通过以下方式执行此操作:
\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
答案 2 :(得分:0)
您可以使用:
```{r, fig.cap=" 5.3: Response functions"}
...
```
在YAML标题中。然后,在代码块中,使用:
n<0