RMarkdown - разные типы шрифтов в таблице используют kable? - PullRequest
0 голосов
/ 16 февраля 2019

Я использую RMarkdown для создания PDF-документа.Можно ли изменить тип шрифта в таблицах с помощью kable_styling?Если нет, можете ли вы предложить какой-либо другой пакет?

library(dplyr)
library(kableExtra)

kable(mtcars, align = "c", booktabs = TRUE) %>% 
  kable_styling(font_size = 12) %>% 
  row_spec(0, bold = T, color = "white", background = "gray")

1 Ответ

0 голосов
/ 17 февраля 2019

Это несколько сложно, потому что изменение шрифтов в LaTeX сложно.У меня нет шрифта Segoe UI (это шрифт Windows, верно?), Но вот кое-что, что мне подходит при другом изменении шрифта в MacOS.

Во-первых, вам нужно использовать xelatexЛатексный двигатель.(Вероятно, вы можете сделать это, используя pdflatex, но команды будут другими, и я их не знаю.)

Во-вторых, вам нужно определить команду для переключения на нужный шрифт.В приведенном ниже коде я назвал его \comicfont и переключил его на Comic Sans MS.

Третий и четвертый, вам нужно определить среды для создания таблиц с этим шрифтом.Вам нужны две среды, в зависимости от того, хотите ли вы, чтобы таблица была встроенной (ctable) или плавающей с заголовком (capctable).

Затем, когда вы хотите, чтобы ваша таблица была новым шрифтом, вы устанавливаете table.envir к названию соответствующей среды.Он устанавливается в kable_styling() для встроенных таблиц и в kable для плавающих таблиц.Вот пример, который работает для меня:

---
title: 'Untitled'
output: 
  pdf_document:
    latex_engine: xelatex
header-includes:
  - \newfontfamily\comicfont[Path=/Library/Fonts/]{Comic Sans MS}
  - \newenvironment{ctable}{\comicfont }{}
  - \newenvironment{capctable}[1][t]{\begin{table}[#1]\centering\comicfont}{\end{table}}
---

```{r}
library(knitr)
library(kableExtra)
kable(head(mtcars), booktabs=TRUE, align = "c") %>% 
  kable_styling(table.envir="ctable", font_size=12) %>%
  row_spec(0, bold = T, color = "white", background = "gray")
kable(head(mtcars), booktabs=TRUE, align = "c", 
      caption = "This table floats", table.envir = "capctable") %>% 
  kable_styling(font_size=12) %>%
  row_spec(0, bold = T, color = "white", background = "gray")
```

Этот пост https://tex.stackexchange.com/a/63975 дает пример для Windows, который может быть полезным.

Отредактировано для добавления: параметр table.envirк kable_styling это довольно новое дополнение;убедитесь, что установлена ​​последняя версия kableExtra.

...