使用 Sweave 在 \sexp 中以粗体显示文本的一部分

Put a part of a text in bold in \sexp with 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 结束

您可以 return 单独使用您的数据并使用正常的 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}

注意必要的大量反斜杠。

编辑:

对于 knitr,代码需要一些修改:

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

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