如何将图形的标题从底部移动到顶部?

时间:2018-11-07 17:15:15

标签: r figure caption

很抱歉,如果我忽略了一些显而易见的事情,但是我已经搜索了所有我能想到的东西,却没有找到适合我的答案。

我的问题是我正在用ggplot2程序包(用“ fig.cap = xy”在块选项中创建的标题)和带有kable程序包的表创建图形。现在的问题是,当编织成PDF时,表格标题自动在表格顶部创建,图形标题自动在底部创建。我希望我的PDF外观统一,所以我希望表格和图形的标题都放在顶部。

建议在Yaml中使用- \usepackage{floatrow}- \floatsetup[figure]{capposition=top},但是当我尝试此操作时,尝试编织为PDF时出现此错误:

"! Package floatrow Error: Do not use float package with floatrow.
(floatrow)                The latter will be skipped.

Error: Failed to compile test.tex. See test.log for more info.
Execution stopped"

日志结尾处有以下内容:

  

“!==>发生致命错误,没有输出PDF文件!”

这些是我在Yaml中的“标头包含”:

- \usepackage[below]{placeins}
- \usepackage{setspace}
- \usepackage{flafter}
- \usepackage{chngcntr}
- \counterwithout{figure}{section}
- \counterwithout{table}{section}
- \usepackage{microtype}
- \floatplacement{figure}{H}
- \floatplacement{table}{H}
- \usepackage{floatrow}
- \floatsetup[figure]{capposition=top}

还有我的那些包裹:

library(plyr)
library(readxl)
library(xlsx)
library(markdown)
library(rmarkdown)
library(knitr)
library(kableExtra)
library(ggplot2)
library(reshape2)
library(httpuv)
formatlibrary(caTools)

是否有解决方法?还是有另一种方法可以使图形标题位于图形之上?

Edit1:即使“ float”包未显示为在sessionInfo()中加载,我也将其范围缩小到导致此问题的“ kableExtra”包。删除它及其所有代码后,我遇到了另一个错误:

! Undefined control sequence.
<recently read> \floatplacement 

删除后

- \floatplacement{figure}{H}
- \floatplacement{table}{H}

成功编织了Yaml。标题现在位于最上方,但其他所有内容现在都一团糟。如果没有“ kableExtra”软件包,我可以进行管理,但是如果没有Yaml中的“ floatplacement”,我就可以进行管理。

每个建议都将不胜感激!

1 个答案:

答案 0 :(得分:1)

我也有这个错误。花了一段时间才能弄清楚,但是如果您阻止kableExtra加载任何LaTeX软件包,那么floatfloatrow之间就不会发生冲突。

因此,请正常指定YAML标头:

output:
  bookdown::pdf_document2:
    fig_caption: yes
header-includes: 
  - \usepackage{floatrow}
  - \floatsetup[figure]{capposition=top}
  - \floatsetup[table]{capposition=top}
  - \floatplacement{figure}{H}
  - \floatplacement{table}{H}
---

并确保您在加载kableExtra之前设置了此选项

options(kableExtra.latex.load_packages = FALSE)
library(kableExtra)

取决于使用kableExtra的方式,您可能需要在YAML标头中指定其他包(例如,如果您突出显示行颜色)。通过所使用的软件包的完整列表kableExtra可以在3页上找到here