`bookdown`/`rmarkdown`/`knitr`:代码块中的换行

`bookdown`/`rmarkdown`/`knitr`: Line wrapping in code chunks

我正在使用

```{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]]),这在视觉上断开了名称和版本因此是次优的。

我已经尝试过 this 解决方案来减小代码块字体大小,但这只是清楚地表明问题的根源是在 pdflatexing 之前某处发生的换行。

R/knitr/rmarkdown/bookdown 换行代码输出时,我可以在哪里影响?

最后的 session_info 调用透明地调用对象上的 print(在 session_info[[2]] 的情况下通过 print.data.frame)。

print 提供了一个 width 参数,默认为 getOption("width") 并且 ?options 表示

width:

controls the maximum number of columns on a line used in printing vectors, matrices and arrays, and when filling by cat.

Columns are normally the same as characters except in East Asian languages.

因此,由于 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)
```