Большие пробелы после подписей к рисункам в Bookdown? - PullRequest
1 голос
/ 24 июня 2019

Кажется, я не могу контролировать количество пробелов после подписи к рисунку.

Для двух (на мой взгляд) одинаковых фрагментов кода один помещается и сразу за ним следует текст после подписи, тогда как на другой фигуре остается пустое место примерно на полстраницы после заголовка перед текстом Iхочу есть.

the two chunks giving different results in the .pdf output

the corresponding two plots

На этом втором рисунке - из графиков из латекса, почему первый кусок кода дает почти пустойстраница за подписью, а за вторым так приятно следовать последующий текст?

Это часть моего index.rmd (без заголовка и т. д.) - может быть, это как-то связано сlinestretch?

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"
---

my 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"

и my 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}

Я уже пытался добавить пакет заголовка с параметром ниже skip = -5pt, как вы можете видеть в этом.Я также уже пробовал большое количество комбинаций без пробелов до / после каждого чанка, но это кажется случайным - есть ли опция, которую я пропускаю в самих чанках кода?Я застрял!

Я не знаю, как сделать эту проблему воспроизводимой, поэтому я прошу прощения за это, любые идеи, дайте мне знать

Заранее спасибо,
Джеймс

1 Ответ

1 голос
/ 25 июня 2019

Предлагаю изменить \floatplacement{figure}{H} на \floatplacement{figure}{htbp}. Это даст латексу больше возможностей для подбора подходящих позиций для изображений.

В настоящее время на одной странице просто недостаточно места для размещения двух фигур, но из-за ваших ограничительных возможностей размещения поплавков единственное решение, которое оставил текст, это вставить пробел, потому что он не позволяет эффективно переместить изображение в подходящее место

...