2

假设在我的R/Sweave创建的LaTeX文档中,我想\subsection{Foo}在我的R代码中有 if x==1,而如果x==2在我的R代码中我想\subsection{Bar}显示。

我该如何做到这一点?我知道如何通过将R代码封装在其中来包含代码<<>>=@但我不确定如何执行以下(可能是荒谬的)伪代码之类的操作:

if(x==1)
    Show \subsection{Foo} in LaTeX document
else if(x==2)
    Show \subsection{Bar} in LaTeX document

我还想做的与之密切相关的是\subsection{z}在我的 LaTeX 文档中有副标题,z在我的代码中严格定义R为一些我可以切换的任意字符串。

4

2 回答 2

3

\Sexpr{} 可以内联计算表达式:

Show \subsection{\Sexpr{if(x==1) "Foo" else "Bar"}} in LaTeX document

\subsection*{\Sexpr{z}}
于 2013-10-17T01:35:01.300 回答
2

使用results=texcat你想要的 LaTeX 代码。

<<results=tex>>=
if(x==1) {
  z <- "Foo"
} else if(x==2) {
  z <- "Bar"
}
cat("\\subsection{", z, "}\n", sep="")
@
于 2013-10-17T01:31:18.827 回答