【问题标题】:Wrapping R code chunks in KnitR to fit width in html when posting to Wordpress在发布到 Wordpress 时,在 KnitR 中包装 R 代码块以适应 html 中的宽度
【发布时间】:2014-09-15 12:18:55
【问题描述】:

我正在尝试使用 knitrknit2wp() 函数来在 Wordpress 上写博客,如下所述:http://yihui.name/knitr/demo/wordpress/

我的问题是,尽管尝试了各种选项来控制块宽度,包括在块选项中设置 tidy.opts,并调整全局宽度设置(如 here 所示),但我的 R 代码块不会环绕,导致需要横向滚动才能查看的过宽代码块,例如 this

是否有我遗漏的设置会导致 R 代码块环绕?此外,是否有一个设置可以扩大 Wordpress 中出现的代码块的灰色框?宽度选项似乎都没有任何效果。

这是我的设置块当前的样子:

```{r setup, echo=FALSE}
library(knitr)
opts_knit$set(upload.fun = function(file) imgur_upload(file, key = "xxxx"))
opts_chunk$set(fig.width=5, fig.height=5, fig.align = 'center', cache=TRUE, tidy = FALSE)
````

我也尝试将options(width = 80) 添加到该块中,并在每个块中设置tidy.opts,但这些都没有任何效果。

【问题讨论】:

  • 您是否尝试将tidy = FALSE 添加到全局块选项中?
  • 我已经试过了,不过我会仔细检查一下
  • 仔细检查 - opts_chunk(tidy = false) 不起作用
  • 我在这方面做了更多工作 - tidy = FALSE 阻止 knitr 删除手动插入的新行,因此如果您想手动格式化所有代码以适应特定宽度(这使用 formatR 包可能会很容易)。但是,这仍然不适用于表格输出,最好使用自动解决方案。

标签: r wordpress knitr


【解决方案1】:

作为一个肮脏的修复,您可以将 css 文件中的 word-wrap: break-word; 添加到您的 pre 元素中。或者将其嵌入到 html 文件中。

编辑1:

最后的建议在底部。我不是 WP 专家,所以您必须自己制定解决方案。

至于它的外观,您可以在浏览器中尝试。此页面有一个示例。您选择元素,可能会在左侧看到样式。您可以在浏览器中修复它(右键单击,然后在 Chrome 中“检查元素”)以查看它的外观。但是,这不是永久性更改:您更改了本地版本。刷新页面即可恢复原状。

现在我关闭自动换行(最好改为break-word):

如果您对浏览器内的结果感到满意,可以选择在服务器中进行更改:

  1. 如果我们无论如何都玩弄脏了,您可以将样式标签嵌入到您的模板中的某个地方。将其包装在样式标签中(编辑将其删除,因此我无法发布):

    pre {word-wrap: break-word}

  2. 编辑你的 CSS 并创建一个新类或修复你拥有的类。我不确定如何使用 wordpress,但这里有一些信息:https://wordpress.org/support/topic/how-to-edit-css-style-sheet

我认为正确的方法是第二种,但如果您想要尽快获得结果,您可以尝试第一种,因为它看起来更容易。

【讨论】:

  • 我对 css 不是很熟悉,你能详细说明一下吗?我会在我的 Wordpress 博客的单个 css 表中的某处添加此代码,还是在每个单独的帖子页面上添加此代码?
  • 我认为,您应该将其添加到单个页面中。模板(如果您将样式粘贴到 html 中)或更改 css 文件。
  • 好的,所以我已将该行添加到主题 css 中 pre 元素的末尾(通过“外观”->“编辑器”访问)。但是,这似乎不会改变输出。
  • 你能给我一个你博客的链接吗?我去看看。
  • 我修改了一下,现在换行:break-word;在 css 的前部分中似乎按预期工作(不知道为什么我以前不能让它发生,也许是一个错字)。我很欣赏时间和深思熟虑的答案。归根结底,似乎手动破坏我的代码和 cmets 并允许宽表滚动可能最终看起来更有吸引力,但我很高兴拥有这种级别的控制,并且我的问题得到了回答。谢谢!
猜你喜欢
  • 2016-08-19
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
  • 2015-04-19
  • 1970-01-01
相关资源
最近更新 更多