Rmarkdown& {knitr}:列表中的代码块突出显示?

时间:2016-03-29 20:30:20

标签: r markdown knitr r-markdown

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

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

enter image description here

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

2 个答案:

答案 0 :(得分:3)

好的,让它运转起来。出于某种原因,在R Studio中两次击中制表符(四个空格)会导致上述问题。我怀疑它与R Studio有关,而不是R Markdown或{knitr}。 @Yihui的解决方案是this response,并且依赖于使用2016-03-31 16:15:35,086 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@197] - Accepted socket connection from /10.7.0.93:55914 2016-03-31 16:15:35,130 - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@362] - Exception causing close of session 0x0 due to java.io.IOExcep tion: ZooKeeperServer not running 2016-03-31 16:15:35,130 - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1007] - Closed socket connection for client /10.7.0.93:55914 (no ses sion established for client) 参数。这将保持块的突出和识别,并保持输出中的所有内容。

我从未想过使用indent参数,因为它未在当前R Markdown参考指南(here)中的{knitr}块选项中列出,并且仅在被动时提及{knitr}块选项(here)中的代码描述部分。

答案 1 :(得分:2)

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

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

enter image description here