【问题标题】:Large blank spaces after figure captions in Bookdown?Bookdown中图形标题后的大空格?
【发布时间】:2019-11-06 13:37:40
【问题描述】:

我似乎无法控制图形标题后的空格数。

对于两个(在我看来)相同的代码,一个被放置并紧跟在其标题之后的文本之后,而另一个图在我想要的文本之前的标题后面有大约半页的空白空间.

在第二张图片 - 乳胶绘图中,为什么第一个代码块在标题后给出一个近乎空白的页面,而第二个代码块后面紧跟着后续文本?

这是我的 index.rmd 的一部分(减去标题等) - 可能与线条拉伸有关吗?

header-includes: 
- \usepackage{float}  #use the 'float' package
- \floatplacement{figure}{H} #make every figure with caption = H
output:
  bookdown::pdf_book:
    fig_caption: yes
    fig_crop: false
    df_print: kable
    includes:
      in_header: preamble.tex
    latex_engine: xelatex
    keep_tex: yes
fontsize: 11pt
linestretch: 1.5
toc-depth: 1
secnumdepth: 1
lof: True
lot: True
site: bookdown::bookdown_site
documentclass: book
classoption: openany
bibliography: [packages.bib, book.bib]
biblio-style: apalike
link-citations: True
geometry: "left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm"
---

我的bookdown.yml

book_filename: "_Project2019"
delete_merged_file: true
before_chapter_script: "script1.R"
rmd_files: ["index.Rmd", "01-intro.Rmd", "02-EDA.Rmd", "03-method.Rmd"]
documentclass: book
language:
  label:
    fig: "Figure"
    tab: "Table"

还有我的output.yml

bookdown::pdf_book:
  latex_engine: xelatex
  citation_package: natbib
  keep_tex: yes
  fig_width: 6
  fig_height: 4.5
  fig_crop: false
  fig_caption: true
  df_print: kable

此外,我将其用作我的 preamble.tex,其中所有 \let\origfigure 行只是使 fig.pos="h" 始终如一地工作的解决方案,我在这里看到不久前……

\usepackage{booktabs}
\usepackage[none]{hyphenat}
\usepackage{float}
\usepackage[belowskip=-5pt,aboveskip=0pt]{caption}
\let\origfigure\figure
\let\endorigfigure\endfigure
\renewenvironment{figure}[1][2] {
    \expandafter\origfigure\expandafter[H]
} {
    \endorigfigure
}
\pagestyle{plain}

我已经尝试使用 belowskip=-5pt 添加标题包,如您在此所见。我也已经尝试过在每个块之前/之后没有空格的大量组合,但它看起来确实是随机的 - 我在代码块本身中缺少一个选项吗?我被卡住了!

我真的不知道如何使这个问题可复制,所以对此我深表歉意,任何想法让我知道

提前致谢,
詹姆斯

【问题讨论】:

  • 作为测试,可以把\floatplacement{figure}{H} 改成\floatplacement{figure}{htbp}吗?我的怀疑是一页上没有足够的空间来放置两个数字,但是由于您放置浮动的限制性选项,tex 剩下的唯一解决方案是插入空白,因为它不允许有效地浮动图像到合适的地方
  • @samcarter 谢谢!这解决了我所有数字的问题,除了一个现在占用整个页面seen here
  • 该图看起来错位,既不是垂直居中也不是水平居中。会不会是图像周围有过多的空白区域,因此太大而无法将其放置在普通文本中?
  • @samcarter 我相信这与此有关,要么更改块命令的 out.width 部分,要么只是减小尺寸将其放置在应有的位置!

标签: r latex r-markdown knitr bookdown


【解决方案1】:

我建议将\floatplacement{figure}{H} 更改为\floatplacement{figure}{htbp}。这将使 Latex 有更多可能为图像找到合适的位置。

目前一页上根本没有足够的空间来放置两个数字,但是由于您放置浮动的限制性选项,tex 剩下的唯一解决方案是插入空白,因为它不允许有效将图像浮动到合适的位置

【讨论】:

  • 不管\floatplacement 的设置如何,是否有一个简单的技巧可以减少LaTex 在图形标题后保留的空间量,直到可以放置任何文本?在我呈现为 PDF 的 bookdown 报告中,每个无花果标题后有 2 厘米的空间,最好将其减少到 1 或 1.5 厘米。非常感谢!
  • @mavericks 如果您使用的是caption 包,您可以调整belowskip。类似于\captionsetup*[figure]{belowskip=....}
  • 非常感谢,这很有帮助!对于其他任何人,this SE post 提供有关 \captionsetup 的更多信息。
猜你喜欢
  • 2019-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
相关资源
最近更新 更多