如何将 R 代码放入新命令的参数中?

如何将 R 代码放入新命令的参数中?

我想将 R 代码放入 LaTeX 中新命令的参数中。为此,我做了以下操作:

%Define the newcommand:
\newcommand\solution[1]{\sf #1}

%Then, after the \begin{document}, I write:

\solution{
<<echo=T>>=
x=rnorm(100)
@
}

在我的.Rnw文件中。在我执行 R CMD Sweave file.Rnw 之后,一切正常,但是当我执行 时 pdflatex file.tex,响应是:

! FancyVerb Error:
  Extraneous input `> x=rnorm(100) \end {Sinput} \end {Schunk} ' between \begin
{Sinput}[<key=value>] and line end
.
\FV@Error ... {FancyVerb Error:
\space \space #1
}

l.12 }

有人能帮助我吗?

答案1

verbatim类似于结构,因此不能在内部使用\macro{....},而是创建一个solution环境(顺便说一下,使用\sfseries,而不是\sf

你可能只需要

\newenvironment{solution}{\sffamily}{}

\begin{solution}
<<echo=T>>=
x=rnorm(100)
@
\end{solution}

相关内容