3

我正在尝试使用 R 以 LaTeX 格式制作报告。文件格式为.Rnw. 我正在使用 kable 和 kableExtra 包准备一张桌子,但我只有一个问题。

这是我制作的表格的屏幕截图:

卡布尔的桌子

我想让这两个物种(在第 1 列的第 1 行和第 2 行)用斜体显示。怎么做?

谢谢。

这是数据:

df1 <- data.frame(`Species Name` = c("Encrasicholina punctifer", "Stolephorus indicus", "Others", "Total"),
                  `2014` = c(171.12, 0, 0.59, 171.72),
                  `2015` = c(231.18, 3.07, 0.29, 234.55),
                  `2016` = c(412.1, 0, 0.44, 412.54),
                  Total = c(814.4, 3.07, 1.33, 818.8),
                  Percent = c(99.46, 0.38, 0.16, 100))

顺便说一下,这是R代码:

\begin{table}[H]
\centering
<<table_2>>=
df1 %>% 
  kable(format = "latex", 
        booktabs = T) %>%
  kable_styling(latex_options = c("HOLD_position"),
                position = "center",
                font_size = 9) %>% 
  row_spec(0, bold = T) %>% 
  row_spec(4, bold = T)
@
\end{table}
4

1 回答 1

1

kableExtra带有一个函数cell_spec,可用于为表格添加额外的样式。但是,与 相比kable_styling, this 必须在kable调用函数之前使用。这在此处的指南中进行了解释:https ://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf

但是,如果您只想编辑几个单独的单元格,我发现最好手动重新格式化数据。正如在这个类似的问题中看到的那样,您可以将单元格名称更改\textit{YOUR STRING}*为使单词斜体。

我无法让您的 Rnw 文件正常工作,所以这里有一个完全可重现的 Rmarkdown.Rmd文件。原则上文件的唯一区别.Rnw是您需要在 LaTeX 命令的格式中添加一个双反斜杠,以确保它们被 pandoc 读取(即\\textit{}):

---
output: pdf_document
---

```{r}
df1 <- data.frame(`Species Name` = c("Encrasicholina punctifer", "\\textit{Stolephorus indicus}", "*Others*", "\\textbf{Total}"),
                  `2014` = c(171.12, 0, 0.59, 171.72),
                  `2015` = c(231.18, 3.07, 0.29, 234.55),
                  `2016` = c(412.1, 0, 0.44, 412.54),
                  Total = c(814.4, 3.07, 1.33, 818.8),
                  Percent = c(99.46, 0.38, 0.16, 100))
```


```{r}
knitr::kable(df1)
```

在此处输入图像描述

注意:我建议使用 RMarkdown 而不是 .Rnw。您可以像使用 Rnw 文件一样完全自定义 LaTeX 模板,而且它得到更多支持。Sweave 5 年前被作者丢弃:https ://yihui.name/knitr/demo/sweave/

于 2018-04-04T16:45:03.643 回答