2

在呈现为 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()`以便The Lab Supervisor在渲染为 pdf 时设置为蓝色的小型大写字母?

4

1 回答 1

1

我只是用你的确切代码工作。它适用于 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 以一点垂直空间开始每个部分,一个不缩进的段落,并将句子的前几个单词设置为小型大写字母。要使用此样式完成此操作,请在内联 R 表达式中调用tufte中的newthought()函数,如本段开头所示。^[请注意,您不应假设tufte已附加到您的 R 会话。你应该在你打电话之前在你的 R Markdown 文档中,或者使用。] `r `library(tufte)newthought()tufte::newthought()

的PDF:

在此处输入图像描述

的HTML:

在此处输入图像描述

于 2022-01-25T04:38:28.603 回答