使用带有Lyx的knitr为R代码块添加行号

问题描述 投票:0回答:1

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

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

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

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

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

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

r knitr reporting sweave
1个回答
1
投票

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

当使用带有Lyx或Latex的knitr时,我发现将lineno包添加到pre-amble的文档然后用\internallinenumbers \resetlinenumber[13]封装块是有帮助的。

这是一个最小的例子:

\usepackage{lineno}

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

{\internallinenumbers \resetlinenumber[13]

然后在代码块之后:

}

使用LyX(我用于快速生成LaTeX),我只需转到文档菜单,然后选择Settings-> LaTeX Preamble,然后添加\usepackage{lineno},单击Apply,OK,然后关闭。然后在我的代码块之前的主文档中,通过单击“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}
© www.soinside.com 2019 - 2024. All rights reserved.