Борьба с выводом PDF bookdown - PullRequest
1 голос
/ 14 февраля 2020

Я подумал, что было бы неплохо написать более длинный отчет / протокол с использованием bookdown, поскольку удобнее иметь один файл для каждой топи c для записи вместо одного документа RMarkdown со всем. Теперь я столкнулся с проблемой совместного использования этого документа - HTML выглядит лучше (за исключением того, что широкие таблицы обрезаются), но его трудно отправить, например, по электронной почте руководителю. Я также не могу ожидать, что кто-нибудь сможет открыть формат ePub на своем компьютере, поэтому PDF будет самым простым выбором. Теперь мои проблемы:

Мои заголовки глав довольно длинные, что не имеет значения в HTML, но они не соответствуют заголовкам страниц в документе PDF. В LaTeX я мог бы определить короткое название для этого, могу ли я сделать это и в bookdown?

Я включаю файлы рисунков, используя knitr::include_graphics() внутри фрагментов кода, поэтому я генерирую заголовок с помощью параметров блока. Для некоторых фигур я не могу избежать подчеркивания в заголовке, но в LaTeX это не сработает. Есть ли способ избежать подчеркивания, который действительно работает (предпочтительно для HTML и PDF одновременно)? Мой вывод LaTeX выглядит следующим образом после рендеринга:

\textbackslash{}begin\{figure\}
\includegraphics[width=0.6\linewidth,height=0.6\textheight]{figures/0165_HMMER} \textbackslash{}caption\{Output of HMMER for PA\_0165\}\label{fig:0165}
\textbackslash{}end\{figure\}

Edit

MWE, показывающий, что проблема заключается в подчеркивании в сочетании с out.height (или шириной) в проценты:

---
title: "MWE FigCap"
author: "LilithElina"
date: "19 Februar 2020"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

```{r cars}
summary(cars)
```

## Including Plots

You can also embed plots, for example:

```{r pressure, echo=FALSE, fig.cap="This is a nice figure caption", out.height='40%'}
plot(pressure)
```

Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.

```{r pressure2, echo=FALSE, fig.cap="This is a not nice figure_caption", out.height='40%'}
plot(pressure)
```

1 Ответ

1 голос
/ 18 февраля 2020

В отношении более коротких заголовков: pandoc, который используется для преобразования уценки в LaTeX, не предлагает "более короткий заголовок". Вы можете сделать это самостоятельно, хотя:

# Really long chaper heading
\markboth{\thechapter~short heading}{}
[...]
## Really long section heading
\markright{\thesection~short heading}

Предполагается, что класс документа состоит из глав и разделов.

Относительно подчеркивания в подписи к рисунку: для меня это работает как для PDF, так и для HTML чтобы избежать подчеркивания:

```{r pressure2, echo=FALSE, fig.cap="This is a not nice figure\\_caption", out.height='40%'}
plot(pressure)
```
...