使用Sweave将\ sexp中的文本部分加粗

时间:2019-09-30 14:56:11

标签: r sweave

我使用一个条件使用Sweave显示2个不同的文本。 之后,我将显示此文本。

但是我想在第一部分中加粗一部分。

<<condition, echo=FALSE>>=
if (x > 0) {
  text <- paste("text 1 start :",paste(variables, collapse = ","), ". text 1 end.")
  } else {
    text <- paste("text 2")
  }
@

\Sexpr{text}

在这里,我的report.pdf中的实际输出是:

文本1开头:var1,var2,var3文本1结束

但是我想要:

文本1开始: var1,var2,var3 。文字1结束

1 个答案:

答案 0 :(得分:1)

您可以单独返回数据,并使用普通的LaTeX命令,例如\Sexpr{foo} \textbf{\Sexpr{bar}} \textbf{\Sexpr{foobar}}

或者,您可以像这样在R中嵌入必要的LaTeX命令:

\documentclass[A4]{article}
\begin{document}
<<>>=
foo <- paste(1, 2, "\\\\textbf{", 3, "}", '4')
@

Test text with some \Sexpr{foo} with formatting.
\end{document}

记住很多必要的反斜杠。

修改

对于编织器,代码需要进行一些修改:

\documentclass[A4]{article}
\begin{document}
<<>>=
foo <- paste(1, 2, "\\textbf{", 3, "}", '4')
@

Test text with some \Sexpr{asis_output(foo)} with formatting.
\end{document}