【问题标题】:`bookdown`/`rmarkdown`/`knitr`: Line wrapping in code chunks`bookdown`/`rmarkdown`/`knitr`:代码块中的换行
【发布时间】:2018-12-10 10:17:06
【问题描述】:

我正在使用

```{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 line-breaks 代码输出时我能影响哪里?

【问题讨论】:

    标签: r r-markdown knitr pdflatex bookdown


    【解决方案1】:

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

    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)
    ```
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      • 1970-01-01
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      相关资源
      最近更新 更多