【问题标题】:Rmarkdown & {knitr}: code chunk highlights in lists?Rmarkdown & {knitr}:列表中的代码块亮点?
【发布时间】:2016-03-29 20:30:19
【问题描述】:

我有一个两级有序列表,输出与this post 相同。 我的输出很好,看起来应该如何。我的问题是块的正常“突出显示”消失了 8 个空格,并且 RMD 源不再“识别”这些块。块前后的空行也是缩进的(我发现我必须这样做才能获得所需的输出)。

为了说明这一点,我将分享下面的图片。缺少高亮显示,并且其他块中的相同光标位置在 line 旁边提供了一个小按钮:左下角的字符而不是“(顶级)”。如果我将块缩进(从 8 个空格变为 4 个)带入,则代码不再与输出中的列表对齐。

有没有办法解决这个问题?没有任何运气在线搜索或浏览文档。 (如果有兴趣,示例来自 ISLR,第 2.4 节,练习 8。)

【问题讨论】:

  • 我怀疑问题在于标记 R 代码的反引号(“```”)不在它们出现的行的开头
  • 我试过了,但无济于事。将 8 个空格倒置为 4 个会导致列表的对齐关闭(即,块缩进一次,而列表项缩进两次)。在较早的块(缩进四个空格)中,这不是问题。只有八个空格才会成为问题。
  • This post 可能有用。
  • 感谢分享 - 我之前遇到了那个链接。问题是,输出正是我想要的。我的问题是RMD(或{knitr}?)没有突出显示该块,并且进一步,没有将其“识别”为八个空格的块(在RMD中)。四个空格可以,八个不行。只是想弄清楚如何补救......这是我需要在某个地方调整的选项吗?

标签: r markdown knitr r-markdown


【解决方案1】:

好的,开始工作了。出于某种原因,在 R Studio 中按两次制表符(四个空格)会导致上述问题。我怀疑它与 R Studio 而不是 R Markdown 或 {knitr} 有关。解决方案是@Yihui 的this response,依赖于使用indent 参数。这将保持块的突出显示和识别以及保持输出中的所有内容对齐。

我从没想过要使用 indent 参数,因为它没有在当前 R Markdown 参考指南 (here) 的 {knitr} 块选项中列出,只是在 末尾被动提及{knitr} 块选项 (here) 中的代码说明部分。

【讨论】:

    【解决方案2】:

    我发现如果我将代码的缩进保持在相应文本的缩进级别上,一切都会很好地呈现:

    1. One level of indention
        * Two levels of indention
            * Three levels of indention
                * Four levels of indention
                    ```{r,eval=FALSE}
                    Some("R code")
                    ```
    

    【讨论】:

    • 感谢您对此的所有帮助和想法。我更新了原帖中的图片,希望它能更好地反映我的问题/问题。
    • 为此,您需要使用嵌套的markdown lists 缩进,以便降价编译器可以检测当前的缩进级别。在您的示例中,您使用的是 (a),(b),i.ii.,它们不是降价列表标识符。
    • 抱歉延迟 - 我下载了最新版本的 R Studio,并确保所有包都是最新的。相信我对嵌套降价列表使用了正确的语法,问题仍然存在。缩进(四个空格)两次会导致与 OP link 相同的问题。即使在第二级使用星号也是同样的问题。有什么想法吗?
    • 快速检查:上面的例子有效吗?如果没有,你能发一个reproducible example吗?
    • 将上述示例复制粘贴到 R Studio 中会产生相同的输出,但突出显示问题仍然存在 here。我怀疑这是 R Studio 的问题,而不是 R Markdown 或 {knitr} 中的问题。虽然我无法直接解决手头的问题,但我确实使用 indent 块选项解决了问题。
    猜你喜欢
    • 2018-12-10
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 2015-09-02
    • 2016-08-19
    • 2016-10-06
    相关资源
    最近更新 更多