Как написать оператор if-then в LaTeX, используя значение переменной R в knitr/Sweave

в настоящее время я использую knitr вместе с R 3.0.2 и RStudio для создания отчета LaTeX. Мой отчет набирается как .Файл Rnw и скомпилирован с помощью функции knit2pdf.

Я хотел бы использовать если-то формулировка в латексе чтобы создать отдельный раздел, но иметь условие if-then, используйте значение переменной из R (назовем его CreateOptionalSection).

это возможно? Если да, то как я могу ссылаться на переменную R в .текс документ?

2 ответов


добавить \usepackage{comment} к преамбуле вашего файла latex.

в строке перед началом необязательного раздела выполните

<<startcomment, results='asis', echo=FALSE>>=
if(!CreateOptionalSection){
  cat("\begin{comment}")
}
@

в строке после завершения необязательного раздела do

<<endcomment, results='asis', echo=FALSE>>=
if(!CreateOptionalSection){
  cat("\end{comment}")
}
@

вы можете сделать это непосредственно в R код , используя cat вставить раздел. Вот пример, когда x > 0 создает section 1, когда x < 0 создает 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}

это даст вам: enter image description here