मैं पीडीएफ दस्तावेज़ तैयार करने के लिए आरएमर्कडाउन का उपयोग कर रहा हूं। क्या 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")
0
Donnie Darko 16 फरवरी 2019, 08:49

1 उत्तर

सबसे बढ़िया उत्तर

यह कुछ मुश्किल है, क्योंकि लाटेक्स में फ़ॉन्ट बदलना मुश्किल है। मेरे पास सेगो यूआई फ़ॉन्ट नहीं है (यह एक विंडोज़ फ़ॉन्ट है, है ना?), लेकिन यहां कुछ ऐसा है जो मैकोज़ में एक अलग फ़ॉन्ट परिवर्तन के साथ मेरे लिए काम करता है।

सबसे पहले, आपको xelatex LaTeX इंजन का उपयोग करने की आवश्यकता है। (आप शायद pdflatex का उपयोग करके ऐसा कर सकते हैं, लेकिन कमांड अलग होंगे, और मैं उन्हें नहीं जानता।)

दूसरा, आपको अपने इच्छित फ़ॉन्ट पर स्विच करने के लिए एक कमांड को परिभाषित करने की आवश्यकता है। नीचे दिए गए कोड में मैंने इसे \comicfont कहा और इसे कॉमिक सैंस एमएस पर स्विच करने के लिए सेट किया।

तीसरा और चौथा, आपको इस फ़ॉन्ट में टेबल बनाने के लिए वातावरण को परिभाषित करने की आवश्यकता है। आपको टेबल इनलाइन (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 विंडोज पर एक उदाहरण देती है जो मददगार हो सकती है।

जोड़ने के लिए संपादित: table.envir पैरामीटर से kable_styling एक बहुत ही नया जोड़ है; आपको यह सुनिश्चित करना चाहिए कि आपके पास kableExtra का नवीनतम संस्करण स्थापित है।

2
user2554330 17 फरवरी 2019, 17:45