基于我的问题: 以逐字形式包含 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 的示例。