R标记HTML代码块和输出中缺少水平滚动条
在生成HTML文档时,如何使编织的.Rmd文档不包装代码?每当我编织文件时,都会得到如下输出: 您可以看到,包含R标记HTML代码块和输出中缺少水平滚动条,r,knitr,r-markdown,R,Knitr,R Markdown,在生成HTML文档时,如何使编织的.Rmd文档不包装代码?每当我编织文件时,都会得到如下输出: 您可以看到,包含cbind调用的第一行被包装。这是由以下Rmd代码生成的。基本上,我希望看到生成的HTML文件与StackOverflow上的HTML文件类似(即带有水平滚动条) 在评论中的一些人的帮助下,我能够拼凑出一个解决方案。有两个步骤: 在.Rmd YAML标题中包括自定义样式表: css:report\u styles.css 其中包含以下样式: pre,code{空格:pre!重要;溢出
cbind
调用的第一行被包装。这是由以下Rmd代码生成的。基本上,我希望看到生成的HTML文件与StackOverflow上的HTML文件类似(即带有水平滚动条)
在评论中的一些人的帮助下,我能够拼凑出一个解决方案。有两个步骤:
css:report\u styles.css
其中包含以下样式:
pre,code{空格:pre!重要;溢出-x:scroll!重要}
这使得回显的代码块不会换行,并且它们有一个水平滚动条。它还将使块输出在调整浏览器窗口大小时不会进一步换行选项(width=a-big-number)
这基本上是@JeffKeller的答案,但是您可以将CSS作为代码片段写入
.Rmd
文件中,而不是使用单独的CSS文件并在YAML头文件中摆弄!比如说,
```{css, echo=FALSE}
pre, code {white-space:pre !important; overflow-x:auto}
```
我倾向于在大约相同的早期点进行此操作,在这里我进行其他设置,例如
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
(也许这更像是一个注释,但我不能真正将其格式化。但从另一个答案上的注释来看,我认为有些人可能会发现这很有用。)这两个答案的另一个替代方法是使用html在YAML标题后编写css:
<style>
pre {
white-space: pre-wrap;
background: #F5F5F5;
max-width: 100%;
overflow-x: auto;
}
</style>
前{
空白:预包装;
背景:#f5;
最大宽度:100%;
溢出-x:自动;
}
@jenesaisquoi,您通过CSS解决我问题的第一部分是完美的——我希望这是HTML输出的默认样式。至于第二个,您建议使用DT
包,但仅适用于data.table
s和data.frame
s。你知道通用的解决方案吗?如果我想避免摘要(MyVeryVeryVeryLongVariableNameanditsDataaaaaaaaaaaaaaaaaaaaaaaaaaaaa)输出的文本换行呢?
?我想我们很接近了--这让我获得了块输出的水平滚动条,但现在输出文本都一起运行,而且似乎没有保持它在R控制台中的间距和换行符。这可能是个人偏好,但我认为这种行为最好包含为默认值。至少,我认为(1)应该可以通过区块/全局区块选项直接访问(如果还没有,不知何故)。回答得好!但是,设置scroll
选项会向所有代码块添加一个滚动条。我最终使用了overflow-x:auto
因为它只在需要时添加滚动条。您真的可以共享一个指向您的report_styles.css文件的链接吗?
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
<style>
pre {
white-space: pre-wrap;
background: #F5F5F5;
max-width: 100%;
overflow-x: auto;
}
</style>