在 kableExtra table 单元格中更改文本规范/字体(粗体、斜体...)
Change bits of text specification / fontface (bold, italic,...) in a kableExtra table cell
我正在尝试在 rmakrdown 中格式化 kableExtra table 中的个别文本位,例如以下示例:
---
output: pdf_document
---
```{r, echo=FALSE}
knitr::kable(data.frame(char = c('Hey *italics*','Hello **bold**', 'Hi ~~strikethrough~~~'),
num = c(1,2,3)))
```
但是,如果我使用 kableExtra
```{r, echo=FALSE}
library(kableExtra)
knitr::kable(data.frame(char = c('Hey *italics*','Hello **bold**', 'Hi ~~strikethrough~~~'),
num = c(1,2,3)))
```
我会得到:
我知道 cell_spec, row_spec and column_spec
可以格式化整行列和单元格,但这不是我想要的。
我只想格式化特定单元格中的部分文本,但保留 kableExtra 的所有功能以设计我的 table。还有 text_spec()
,但我没有找到任何关于如何在 table 中使用它的示例。
P.S。我不是那么先进,因此更喜欢工作示例。
解决此问题的方法是告诉 kable()
生成 Markdown table:
---
output: pdf_document
---
```{r, echo=FALSE}
library(kableExtra)
knitr::kable(data.frame(char = c('Hey *italics*','Hello **bold**', 'Hi ~~strikethrough~~~'),
num = c(1,2,3)), format="markdown")
```
format="pandoc"
也可以,但是 format="latex"
(我认为当涉及 kableExtra
时这里是默认设置)没有。
但是,正如评论中指出的那样,kableExtra
不支持 markdown
,因此您无法从该包中添加所有不错的功能。如果你想要那样,唯一的解决方案可能是使用 LaTeX 标记而不是 Markdown 标记。即把输入改成这样:
---
output: pdf_document
header-includes: \usepackage{soul}
---
```{r, echo=FALSE}
library(kableExtra)
knitr::kable(data.frame(char = c('Hey \textit{italics}','Hello \textbf{bold}',
'Hi \st{strikethrough}'),
num = c(1,2,3)), escape = FALSE)
```
您需要 escape = FALSE
告诉 kable
不要将 LaTeX 标记显示为文本,而是将其留在那里供 LaTeX 解释。
我正在尝试在 rmakrdown 中格式化 kableExtra table 中的个别文本位,例如以下示例:
---
output: pdf_document
---
```{r, echo=FALSE}
knitr::kable(data.frame(char = c('Hey *italics*','Hello **bold**', 'Hi ~~strikethrough~~~'),
num = c(1,2,3)))
```
但是,如果我使用 kableExtra
```{r, echo=FALSE}
library(kableExtra)
knitr::kable(data.frame(char = c('Hey *italics*','Hello **bold**', 'Hi ~~strikethrough~~~'),
num = c(1,2,3)))
```
我会得到:
我知道 cell_spec, row_spec and column_spec
可以格式化整行列和单元格,但这不是我想要的。
我只想格式化特定单元格中的部分文本,但保留 kableExtra 的所有功能以设计我的 table。还有 text_spec()
,但我没有找到任何关于如何在 table 中使用它的示例。
P.S。我不是那么先进,因此更喜欢工作示例。
解决此问题的方法是告诉 kable()
生成 Markdown table:
---
output: pdf_document
---
```{r, echo=FALSE}
library(kableExtra)
knitr::kable(data.frame(char = c('Hey *italics*','Hello **bold**', 'Hi ~~strikethrough~~~'),
num = c(1,2,3)), format="markdown")
```
format="pandoc"
也可以,但是 format="latex"
(我认为当涉及 kableExtra
时这里是默认设置)没有。
但是,正如评论中指出的那样,kableExtra
不支持 markdown
,因此您无法从该包中添加所有不错的功能。如果你想要那样,唯一的解决方案可能是使用 LaTeX 标记而不是 Markdown 标记。即把输入改成这样:
---
output: pdf_document
header-includes: \usepackage{soul}
---
```{r, echo=FALSE}
library(kableExtra)
knitr::kable(data.frame(char = c('Hey \textit{italics}','Hello \textbf{bold}',
'Hi \st{strikethrough}'),
num = c(1,2,3)), escape = FALSE)
```
您需要 escape = FALSE
告诉 kable
不要将 LaTeX 标记显示为文本,而是将其留在那里供 LaTeX 解释。