【问题标题】:Adding line numbers for R code chunks with knitr with Lyx使用 knitr 和 Lyx 为 R 代码块添加行号
【发布时间】:2019-07-06 16:12:41
【问题描述】:

我正在将 Lyx 与 R knitr 包一​​起使用,并且很难将行号放入我在 R 中的代码块中。我希望我的代码的每一行都有一个数字,而不仅仅是我在中看到的输出行帖子。

因此,例如,我希望看到如下所示的代码:

x <- 1:10
y <- x^2

这样渲染是我最终的 PDF 文档

1  x <- 1:10
2  y <- x^2

我看到了类似的讨论 here,但如果可能的话,我想在 LyX 中完成这个。

【问题讨论】:

    标签: r knitr reporting sweave


    【解决方案1】:

    经过一些研究,我发现了一个可行的解决方案,但我仍然对其他解决方案感兴趣。

    在将 knitr 与 Lyx 或 Latex 一起使用时,我发现将 lineno 包添加到文档前导码中然后用 \internallinenumbers \resetlinenumber[13] 将块括起来很有帮助。

    这是一个最小的例子:

    \usepackage{lineno}
    

    然后在正文中,在代码块之前添加以下内容:

    {\internallinenumbers \resetlinenumber[13]
    

    然后在代码块之后:

    }
    

    使用 LyX(我用于快速生成 LaTeX),我只需转到文档菜单,然后转到 Settings->LaTeX Preamble 并添加 \usepackage{lineno},单击 Apply、OK,然后单击 Close。然后在我的代码块之前的主文档中,我通过单击“TEX”按钮菜单按钮或按键盘上的“Ctrl+L”来插入 LaTeX 源代码。然后我粘贴{\internallinenumbers \resetlinenumber[13]。最后,我将光标紧跟在代码块之后并做同样的事情。只有我用花括号关闭行号:}

    这是一个最小的例子,当代码到位时粘贴在下面:

    \documentclass[english]{article}
    \usepackage{lineno}
    \begin{document}
    First line in main document before code chunk.
    
    {\internallinenumbers \resetlinenumber[13]
    
    <<CodeBlock1, highlight=TRUE, eval=FALSE, size="small">>=
    x<-rnorm(10)
    mean(x)
    @
    }
    \end{document}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 2014-01-27
      相关资源
      最近更新 更多