问题
I am currently using knitr along with R 3.0.2 and RStudio in order to produce a LaTeX report. My report is typed up as a .Rnw file, and compiled using the knit2pdf function.
I would like to use an if-then formulation in LaTeX in order to create a separate section, but have the if-then condition use the value of a variable from R (let's call it CreateOptionalSection
).
Is this possible? If so, how can I refer to the R variable in the .tex document?
回答1:
Add \usepackage{comment}
to the preamble of your latex file.
At the line before the optional section starts, do
<<startcomment, results='asis', echo=FALSE>>=
if(!CreateOptionalSection){
cat("\\begin{comment}")
}
@
At the line after the optional section ends, do
<<endcomment, results='asis', echo=FALSE>>=
if(!CreateOptionalSection){
cat("\\end{comment}")
}
@
回答2:
You can do it directly in R
code in your .Rnw
file, using cat
to paste the section. Here is an example, when x > 0
it creates section 1
, when x < 0
it creates section 2
:
\documentclass{article}
\begin{document}
<<condition, include=FALSE, echo=FALSE>>=
x<- rnorm(1)
if(x>0){
text <- "\\section{Section 1}
This is new section 1"
}else{
text <- "\\section{Section 2}
This is new section 2"
}
@
Testing the code: the result of x (which here was \Sexpr{x}) will determine the section.
<<print, results='asis', echo=FALSE>>=
cat(text)
@
\end{document}
This will give you:
来源:https://stackoverflow.com/questions/22305444/how-to-write-an-if-then-statement-in-latex-using-the-value-of-an-r-variable-in-k