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

时间:2018-07-02 08:27:11

标签: r r-markdown knitr pdflatex bookdown

我正在使用

```{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.framesession_info[[2]]),从而在视觉上断开了名称和版本的连接因此是次优的。

我一直在使用this解决方案来减少代码块的字体大小,但是这清楚地表明问题的根源是在pdflatex之前的某个地方发生了换行。

何时R / knitr / rmarkdown / bookdown换行代码输出会在什么地方影响?

1 个答案:

答案 0 :(得分:1)

最后的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)
```