如何将图形的标题从底部移动到顶部?
How to move the caption of a figure from the bottom to the top?
如果我忽略了一些明显的东西,我很抱歉,但我用谷歌搜索了所有我能想到的东西,但没有找到适合我的答案。
我的问题是我正在使用 ggplot2 包创建图形(使用 "fig.cap = xy" 在块选项中创建标题)和 tables 使用 kable 包。现在的问题是,当编织成 PDF 时,table 的标题会自动创建在 table 的顶部,而数字的标题会在底部创建。我希望我的 PDF 具有统一的外观,因此我希望 table 的标题和数字都在顶部。
建议在 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"
日志末尾有以下内容:
"! ==> Fatal error occurred, no output PDF file produced!"
这些是我在 yaml 中的 "header-includes":
- \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:我将其缩小到导致此问题的包 "kableExtra",即使 "float" 包在 sessionInfo() 中未显示为已加载。删除它及其所有代码后,我 运行 进入另一个错误:
! Undefined control sequence.
<recently read> \floatplacement
删除后
- \floatplacement{figure}{H}
- \floatplacement{table}{H}
从 yaml 中它编织成功。标题现在位于顶部,但现在其他一切都是一团糟。我可能可以在没有 "kableExtra" 包的情况下进行管理,但如果没有 yaml 中的 "floatplacement" 就不行。
我们将不胜感激!
我也有这个错误。花了一段时间才弄清楚,但是如果你阻止 kableExtra
加载任何 LaTeX
包,那么 float
和 floatrow
之间不会发生冲突。
所以指定 YAML header 正常:
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 header 中指定额外的包(例如,如果您突出显示行颜色)。 kableExtra
使用的软件包的完整列表可以在第 3 页 here.
上找到
如果我忽略了一些明显的东西,我很抱歉,但我用谷歌搜索了所有我能想到的东西,但没有找到适合我的答案。
我的问题是我正在使用 ggplot2 包创建图形(使用 "fig.cap = xy" 在块选项中创建标题)和 tables 使用 kable 包。现在的问题是,当编织成 PDF 时,table 的标题会自动创建在 table 的顶部,而数字的标题会在底部创建。我希望我的 PDF 具有统一的外观,因此我希望 table 的标题和数字都在顶部。
建议在 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"
日志末尾有以下内容:
"! ==> Fatal error occurred, no output PDF file produced!"
这些是我在 yaml 中的 "header-includes":
- \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:我将其缩小到导致此问题的包 "kableExtra",即使 "float" 包在 sessionInfo() 中未显示为已加载。删除它及其所有代码后,我 运行 进入另一个错误:
! Undefined control sequence.
<recently read> \floatplacement
删除后
- \floatplacement{figure}{H}
- \floatplacement{table}{H}
从 yaml 中它编织成功。标题现在位于顶部,但现在其他一切都是一团糟。我可能可以在没有 "kableExtra" 包的情况下进行管理,但如果没有 yaml 中的 "floatplacement" 就不行。
我们将不胜感激!
我也有这个错误。花了一段时间才弄清楚,但是如果你阻止 kableExtra
加载任何 LaTeX
包,那么 float
和 floatrow
之间不会发生冲突。
所以指定 YAML header 正常:
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 header 中指定额外的包(例如,如果您突出显示行颜色)。 kableExtra
使用的软件包的完整列表可以在第 3 页 here.