Печать с knitr / rmarkdown обрезает изображения и вводит перенос строки - PullRequest
1 голос
/ 06 августа 2020

Я создаю анкету и хочу, чтобы пользователи могли сохранять результаты как pdf.

html выглядит нормально! Но printing обрезает изображение, и пока ничего не работает.

enter image description here

Edit: I add a fitting цитата о пакете pagedown, вероятно, описывающем проблему:

" [...] попробуйте сгенерировать PDF из одного из ваших файлов Rmarkdown, и под PDF я имею в виду документ, в котором изображения разбиты пополам от страницы к странице, а письменный текст не заканчивается sh за пределами страница… (да, я знаю, что вы понимаете, что я имею в виду, но это…) "

# YAML
---
output: 
    pdf_document:   #html?
        fig_crop: false                         # doesn't work
---

---
output:
  pagedown::html_paged:                         # doesn't work
    css: ["default-fonts", "default-page", "default"]
---

# CSS line-breaks
<style media="print">
    html, body, p, hr, img { 
    break-after:  avoid !important;             # doesn't work
    break-before: avoid !important;             # doesn't work
    break-inside: always !important;            # doesn't work
    } 
</style>

# Button
<input type="button" value="Print this page" onClick="window.print()">
# Example Plot
     ```{r echo=FALSE, message=FALSE}
    library(ggplot2)
    Plot <- ggplot(mpg, aes(displ, cty)) + geom_point()
    Plot + facet_grid(rows = vars(drv))
    plot.height <- 45
     ```


# Calling the plot (with fig.height)
    ```{r, fig.height=plot.height, strip.white = TRUE} # doesn't work
     plot(Plot)
    ```

Вот реализованный пример: https://exampleruntest.formr.org Для некоторых причина, по которой примерный график не вводит разрыв строки перед графиком, а после него.

Надеюсь, у кого-то есть идея

1 Ответ

1 голос
/ 12 августа 2020

Отвечая на мой вопрос:

  1. Обрезка изображения оказалась проблемой firefox специфического c. Решения: это и это , в то время как последний работал в моем случае, добавляя display:block; к CSS

  2. Удаление разрыва страницы после заголовка путем обертывания изображения графика символом <div> (заменяя значение по умолчанию <p>), используя это решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...