如何在 Sweave 中逐字输入 \Sexpr{?

如何在 Sweave 中逐字输入 \Sexpr{?

基于我的问题: 以逐字形式包含 Sweave 输入

有没有办法将术语\Sexpr{逐字逐句地包含在 Sweave 文档中。例如,写:

R code can be evaluated inline with the \Sexpr{} function:

后面跟着一个在逐字环境中使用 \Sexpr{} 命令的 LaTeX 代码示例。

我的第一个猜测是编写一个 R 函数来生成它:

sxpr <- function(x)
{
  paste(paste("\\\\","Se","","xpr{",sep=""),x,"}",sep="")
}

这样我就可以写入\Sexpr{sxpr('')},但是,显然 Sweave 运行了很多次,这不起作用。我的第二个想法是创建一个单独的文件,其中只有\Sexpr{并输入它。这有效,但在逐字环境中无效。

是否可以?

答案1

我会在 LaTeX 端而不是 R 端执行此操作。不过,在逐字记录中可能会比较棘手;我使用了 fancyvrb 中的 Verbatim,它要求\{}在逐字记录块中未使用的替代字符,我|[]在下面使用了它,但您可能需要更改它。

\documentclass{article}
\newcommand{\ShowSexpr}[1]{\texttt{{\char`\\}Sexpr\{#1\}}}
\begin{document}
The result of \ShowSexpr{1+1} is \Sexpr{1+1}.
\begin{Verbatim}[commandchars=|\[\]]
Here's part of my Sweave file: |VerbSexpr{1+1}
\end{Verbatim}
\end{document}

看 [如何在 LaTeX 中插入反斜杠或波浪符号 (~)?) 了解我获取反斜杠代码的位置。另请参阅 [fancyvrb 替代 commandchars 和 \textcolor] 为 Verbatim 的示例。

相关内容