使用knitr打印data.table包的.onAttach消息

Fra*_*ank 6 r knitr r-markdown data.table bookdown

我有一个预订rmd看起来像......

Further introductory materials are offered when the package is loaded:

```{r dt-startup, echo=-1, message=TRUE, verbose=TRUE, hide=FALSE}
if ("data.table" %in% .packages()) detach("package:data.table")
library(data.table)
```
Run Code Online (Sandbox Code Playgroud)

我的目的是向读者展示包的启动消息.但是,他们不打印.这里有其他一些块选项吗?

正如你所看到的,我只是向它扔了几个可能相关的块选项而没有好结果.我对输出流的管理并不十分熟悉,所以就我所知道的那样.我也试过直接打电话data.table:::.onAttach(),但没有骰子.

我不确定这里还有什么相关的,但......

  • 目前尚未在此块之前加载包.我刚刚添加第一行的健壮性,以防我重新排列文档.
  • 我的before_chapter_script只包含knitr::opts_chunk$set(comment="#").
  • 我的编织标题值是bookdown::render_book,输出是bookdown::html_book.

Fra*_*ank 2

不。为此而被黑客入侵的任何东西都将是脆弱的,并且可以说不是很有用。

谢益辉(knitr 的作者)提供了一个很好的案例。我的概要:

  • 这没有用。您正在编写教程,那么为什么要包含动态内容(当包更改时可能会更改)?此外,为什么不直接指向资源而不是指向那里打印的资源列表呢?
  • 这很难。这不仅仅是输出流的问题。这些消息不会打印出来,因为它们被隐藏在interactive()支票后面。目前还不清楚应该如何覆盖它,并且假设可以做到这一点,可能会带来什么奇怪的副作用。