【问题标题】:Adding Comments to R Code in Sweave在 Sweave 中为 R 代码添加注释
【发布时间】:2016-08-16 16:24:27
【问题描述】:

我正在编写一份关于 R 软件的文档,该文档目前存储在一个 Rnw 文件中,以便最终使用 Sweave 对其进行处理。该文档包含几个通常形式的 R 代码块:

<<>>= 
R Code
@

在一些代码行旁边,我想添加特定的 cmets,我想像通常的 LaTeX 文本一样显示它们(以便它们很容易被识别为 cmets)。使用 sweave 或 knitR 时,有没有办法在彼此旁边显示 R 代码块和相应的 cmets?

感谢您的帮助!

【问题讨论】:

  • 我认为您需要澄清“彼此相邻”的含义。您是否想要两列中的一小部分页面,一列中包含 R 代码,旁边是 LaTeX?
  • 另外,我认为您不应该将这些称为“cmets”。注释是您在 R 代码中添加的带有 # 注释字符的内容。听起来您想要 cmets,您想要标准 LaTeX(其内容可能会或可能不会根据您的意愿评论 R 代码)。
  • 也就是说,如果您主要关心的是“以便它们很容易被识别为 cmets”,您应该只在代码块中使用常规 R cmets 并让语法突出显示发生变化颜色使它们脱颖而出。 You can do it this way with Sweave,或者切换到knitr默认完成。
  • @Llarian,我的回答有帮助吗,还是我错过了什么?
  • @Gregor:是的,我想要两个不同的专栏,这是可能的。左列应包含易于识别的 R 代码。右栏应该对特定的代码行进行注释,这些代码行的格式与正文类似。如果做不到,我可以通过您指出的 knitr 选择解决方案;谢谢你。

标签: r latex sweave


【解决方案1】:

如果您希望像代码一样格式化(我假设这就是您的意思),您可以使用以下代码:

\begin{filecontents*}{my_r_code_test.r}
R code
@
|\includegraphics[width=0.5\textwidth]{example-image}|
\end{filecontents*}

\documentclass{article}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{listings,mdframed}

\lstset{
  language=R,
  backgroundcolor=\color{black!5}, % set backgroundcolor
  basicstyle=\footnotesize\ttfamily,% basic font setting
  columns=fullflexible,
}

\begin{document}
\begin{mdframed}[backgroundcolor=black!5,linewidth=0pt,%
  innerleftmargin=0pt,innertopmargin=0pt,innerbottommargin=0pt]
\lstinputlisting[escapeinside=||]{my_r_code_test.r}
\end{mdframed}
\end{document}

哪个产生

在页面顶部。

希望这会有所帮助!

【讨论】:

  • 亲爱的 Heather,感谢您将我指向列表包。我没有使用它来解决这个问题,因为一些代码块还应该包含 R 中 mycode 的输出。目前,我使用了 sweave (在 R 中)的功能来实现这一点。是否可以在两列中显示两个 lstlisting 块,即彼此相邻?
  • @Llarian,我不确定这两列。但是,如果您想包含代码的输出,您不能使用graphicx 包将其包含为图像吗?在这里,让我快速检查一下。
  • @Llarian,我更新了代码以显示如何包含图像。
  • 谢谢,我会考虑的。使用 Sweave 的一个优点是我的所有输出都是使用我当前的 R 版本计算的,因此会考虑我使用的软件的新版本。如果我将输出作为图片包含在内,我就会失去这个优势。不过,它允许我添加 cmets。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 1970-01-01
  • 1970-01-01
  • 2023-02-02
  • 1970-01-01
  • 2018-12-17
相关资源
最近更新 更多