2013-10-17 14 views
2

假設在我R/Sweave創建LaTeX文件,我想有\subsection{Foo}如果我R代碼我們有x==1,而如果x==2在我R代碼我要顯示\subsection{Bar}如何使用R設置條件LaTeX代碼?

我該如何做到這一點?我知道如何在<<>>=@封裝到包括R代碼,但我不知道應該怎麼做,如下面的(也許是無意義的)僞代碼:

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

我也想這樣做,是非常密切相關的是在我的LaTeX文件中有子目\subsection{z},其中z嚴格在我的R代碼中定義爲我可以切換的一些任意字符串。

+0

它的工作原理使用'貓( 「\款{欄}」)'爲兩件,然後包裹'<<>> = '和'@'圍繞整個事情。 –

+0

@TylerRinker:是的,如果你使用'results = tex'。 – Aaron

回答

2

使用results=texcat您想要的LaTeX代碼。

<<results=tex>>= 
if(x==1) { 
    z <- "Foo" 
} else if(x==2) { 
    z <- "Bar" 
} 
cat("\\subsection{", z, "}\n", sep="") 
@ 
3

\ Sexpr {}可以計算表達式內聯:

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

\subsection*{\Sexpr{z}}