10

非常简单的问题:我喜欢写 R 笔记本/降价,highlight: tango当我将笔记本编成 pdf 时,我可以给代码添加背景颜色。

但是,我不知道如何为 R 中的打印输出提供彩色背景或彩色字体。例如,假设我有以下块。

```{r, echo = FALSE}
writeLines("Help")
```

我想看到“帮助”这个词被突出显示,用灰色背景的红色字体说。我怎样才能做到这一点?

提前谢谢了。

4

3 回答 3

11

使用kableExtra,您可以使用 R 格式化您的文本text_spec

---
output: pdf_document
---

```{r}
library(kableExtra)
options(knitr.table.format = "latex")
```

`r text_spec("Help", color = "red")`

`r text_spec("Help Help", background = "#D05A6E", color = "white", bold = T)`

`r text_spec("Hello", font_size = 20)`

`r text_spec("World", angle = 180)`

你得到 在此处输入图像描述

HTML 也是如此 在此处输入图像描述

在包小插图的单元格/文本规范中查看更多信息。

于 2017-11-17T21:14:12.097 回答
6

对于 PDF 输出,以下是一些latex获取彩色文本和阴影的命令。(有关其他阴影选项,请参阅Tex Stack Exchange 站点上的此答案。)但是,我不确定如何从writeLines阴影中获取输出。在环境中包含代码块\shaded会导致错误。希望有人会提出一个适用于代码块输出的解决方案。

---
output: pdf_document
header-includes:
  - \usepackage{xcolor}
  - \usepackage{framed}
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

\colorlet{shadecolor}{gray!10}

\color{red}

```{r}
writeLines("help")
```

\begin{shaded}

Red text with a gray background.

\end{shaded}

Red text.

\color{black}

Black text.

\colorlet{shadecolor}{red!10} 

\begin{shaded}

Black text with a red background.

\end{shaded}

\colorlet{shadecolor}{red!90} 

\begin{shaded}

Black text with a darker red background.

\end{shaded}

这是生成的 PDF 文档:

在此处输入图像描述

于 2017-11-15T05:55:29.240 回答
1

对于 R 中的一种方式,我的huxtable包允许您为表格设置背景和文本颜色。我不知道任何用于纯文本的 inside-R 包(也许crayon?)

library(huxtable)
ht <- hux(c("Red", "Blue"), c("White bg", "Black bg"))
text_color(ht)[, 1] <- c("red", "blue")
background_color(ht)[, 2] <- c("white", "black")
to_latex(ht) # or just print within a rmarkdown document
于 2017-11-17T17:39:29.857 回答