`bookdown` /` rmarkdown` / `knitr`: перенос строки в куски кода - PullRequest
0 голосов
/ 02 июля 2018

Я использую

```{r}
library(magrittr)
session_info <- devtools::session_info(include_base = TRUE)
session_info[[2]] <- session_info %>%
  magrittr::extract2(2) %>%
  magrittr::inset2("date", value = NULL)
session_info
```

в конце моего bookdown документа. Поскольку я использую git отслеживаемые внутренние пакеты, строки версий становятся немного длиннее. В результате R / knitr / rmarkdown / bookdown разрыв строки приводит к получению data.frame (session_info[[2]]), который визуально отключает имена и версии и, таким образом, является неоптимальным.

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

Куда я мог повлиять, когда R / knitr / rmarkdown / bookdown вывод кода с переносом строки?

1 Ответ

0 голосов
/ 17 июля 2018

Последний вызов session_info прозрачно вызывает print объекта (через print.data.frame в случае session_info[[2]]).

print предлагает аргумент width, который по умолчанию равен getOption("width") и для которого ?options сообщает

width:

контролирует максимальное количество столбцов в строке, используемых при печати векторов, матриц и массивов, а также при заполнении с помощью cat.

Столбцы обычно совпадают с символами, за исключением языков Восточной Азии.

Соответственно и поскольку getOption("width") выдает 136 в моей среде, приведенный выше код может быть увеличен до:

```{r}
library(magrittr)
session_info <- devtools::session_info(include_base = TRUE)
session_info[[2]] <- session_info %>%
  magrittr::extract2(2) %>%
  magrittr::inset2("date", value = NULL)
print(session_info, width = 200)
```
...