渲染为 pdf 时使用 Tufte 样式定义 newthought() 的颜色

Define color of newthought() with Tufte style when rendering to pdf

渲染到HTML时用Tufte风格定义newthought()的颜色没问题,如下:

<font color = "blue">`r newthought('The Lab Supervisor')`</font> ...

然而,它在渲染为 pdf 时不起作用。

我学会了在通过以下代码渲染到 HTML 和 pdf 时定义颜色:

em <- function(x, color) {
  if (knitr::is_latex_output()) {
    sprintf("\textcolor{%s}{%s}", color, x)
  } else if (knitr::is_html_output()) {
    sprintf("<span style='color: %s;'>%s</span>", color,
      x)
  } else x
}

然后我按如下方式应用内联 R 表达式:
``` `r em("The Lab Supervisor", "blue")` ```

是否有任何解决方案可以将 `r newthought()``r em()` 结合起来,以便在渲染为 pdf 时将 The Lab Supervisor 设置为蓝色的小型大写字母?

我刚刚使用了您的确切代码。它适用于 pdf 和 HTML。您只需像在任何其他函数调用集中那样组合这些函数。

(我使用了 tufte 模板。)

```{r func}

em <- function(x, color) {
  if (knitr::is_latex_output()) {
    sprintf("\textcolor{%s}{%s}", color, x)
  } else if (knitr::is_html_output()) {
    sprintf("<span style='color: %s;'>%s</span>", color,
      x)
  } else x
}

```

r newthought(em('In his later books', "blue"))^[Beautiful Evidence], Tufte 开始每一段的时候有一点垂直 space, 一段 non-indented小写的句子。要使用此样式完成此操作,请在 内联 R 表达式 `r ` 中调用 tufte 中的 newthought() 函数,如下所示本段的开头。^[请注意,您不应假设 tufte 已附加到您的 R 会话。在调用 newthought() 之前,您应该在 R Markdown 文档中 library(tufte),或者使用 tufte::newthought().]

pdf:

HTML: