यह प्रश्न consistent code html inline and in chunks with knitr के समान है। आरएचटीएमएल दस्तावेजों के बजाय, मैं आर मार्कडाउन दस्तावेजों में इनलाइन आर कोड को हाइलाइट करना चाहता हूं, उदाहरण के लिए, `r "plot(cars, main = 'A scatterplot.')"`
रैमार्कडाउन के माध्यम से संकलित किया गया है, plot
जैसे टोकन को हाइलाइट किया जाना चाहिए। डिफ़ॉल्ट रूप से, आर कोड भाग सिंटैक्स हाइलाइट किए जाते हैं, लेकिन इनलाइन आर कोड को हाइलाइट करने का कोई तरीका नहीं है।आर मार्कडाउन में इनलाइन आर कोड को हाइलाइट करने के लिए कैसे करें?
उत्तर
यहाँ highr पैकेज (devtools::install_github('yihui/highr')
) की development version का उपयोग कर एक समाधान है। मूल रूप से आप टोकन को हाइलाइट करने के लिए बस अपने कस्टम लाटेक्स कमांड को परिभाषित करते हैं। highr:::cmd_pandoc_latex
लाटेक्स कमांड का डेटा फ्रेम है जो पांडोक सिंटैक्स हाइलाइटिंग करने के लिए उपयोग करता है।
head(highr:::cmd_pandoc_latex)
## cmd1 cmd2
## COMMENT \\CommentTok{ }
## FUNCTION \\NormalTok{ }
## IF \\NormalTok{ }
## ELSE \\NormalTok{ }
## WHILE \\NormalTok{ }
## FOR \\NormalTok{ }
तो फिर तुम knitr की inline
हुक को फिर से परिभाषित कर सकते हैं:
---
output:
pdf_document:
keep_tex: yes
---
```{r include=FALSE}
local({
hi_pandoc = function(code) {
if (knitr:::pandoc_to() != 'latex') return(code)
if (packageVersion('highr') < '0.6.1') stop('highr >= 0.6.1 is required')
res = highr::hi_latex(code, markup = highr:::cmd_pandoc_latex)
sprintf('\\texttt{%s}', res)
}
hook_inline = knitr::knit_hooks$get('inline')
knitr::knit_hooks$set(inline = function(x) {
if (is.character(x) && inherits(x, 'AsIs')) hi_pandoc(x) else hook_inline(x)
})
})
```
Test inline R code: `r I("plot(cars, main = 'A scatterplot.')")`.
Normal inline code `r pi`.
A code block:
```r
plot(cars, main = 'A scatterplot.')
1 + 2 # a comment
```
मैं वाक्य रचना सामान्य चरित्र तार से प्रकाश डाला होने के लिए चरित्र तार बताने के लिए एक सुविधाजनक मार्कर के रूप में I()
इस्तेमाल किया। यह सिर्फ एक मनमाना विकल्प है। पीडीएफ उत्पादन:
यह एक आदर्श समाधान है, हालांकि नहीं है। आपको कुछ मामलों में इसे ट्विक करने की आवश्यकता होगी। उदाहरण के लिए, अधिकांश विशेष लाटेक्स वर्ण बच नहीं पाएंगे, जैसे ~
। आपको hi_pandoc()
द्वारा gsub()
द्वारा लाए गए लाटेक्स कोड को संसाधित करने की आवश्यकता हो सकती है।
व्यक्तिगत रूप से मुझे इनलाइन आउटपुट विचलन में कई रंग मिलते हैं, इसलिए मैं इसे हाइलाइट करना सिंटैक्स नहीं करता, लेकिन यह पूरी तरह से व्यक्तिगत स्वाद है।
कोई मानता है कि यह अपेक्षाकृत होगा उसी तरह पाठ में हाइलाइटिंग सिंटैक्स की बजाय ग्रे पृष्ठभूमि रंग को कार्यान्वित करना आसान है। मुझे अक्सर पता चलता है कि इनलाइन कोड के साथ पाठ पढ़ने वाले छात्रों को यह पता लगाना मुश्किल होता है कि वास्तव में आर कोड क्या है क्योंकि फ़ॉन्ट्स समान हैं। भूरे रंग की पृष्ठभूमि होने से यह स्पष्ट हो जाएगा, उदाहरण के लिए मुझे आपके जीथब उत्तर में एचटीएमएल आउटपुट की तरह लगता है। – jamieRowen
अच्छा समाधान! कोई सुझाव है कि मैं इनलाइन कोड 'i %% 5' को कैसे हाइलाइट कर सकता हूं? प्रतिशत संकेत बच नहीं पाएंगे जो एक त्रुटि फेंकता है ('# टिप्पणी' जैसी टिप्पणी को हाइलाइट करने में इनलाइन भी काम नहीं करता है)। –
- 1. आर मार्कडाउन में आर कोड ब्लॉक को कैसे टिप्पणी करें?
- 2. आर मार्कडाउन
- 3. आर मार्कडाउन
- 4. SublimeREPL में आर कोड में आर मार्कडाउन फ़ाइल कैसे चलाएं?
- 5. आर: आर मार्कडाउन
- 6. आर आर मार्कडाउन
- 7. आर मार्कडाउन
- 8. आर मार्कडाउन
- 9. सभी इनलाइन समीकरणों के लिए फ़ॉन्ट आकार बदलें आर मार्कडाउन
- 10. आर मार्कडाउन
- 11. आर मार्कडाउन
- 12. आर मार्कडाउन
- 13. आर मार्कडाउन
- 14. आर मार्कडाउन
- 15. आर मार्कडाउन पैकेज विग्नेट
- 16. आर मार्कडाउन हेडर
- 17. आर मार्कडाउन/knitr
- 18. आर मार्कडाउन df_print विकल्प
- 19. आर मार्कडाउन लिंक को पीडीएफ
- 20. आर स्टूडियो और मार्कडाउन
- 21. आर मार्कडाउन फाइलें मेकफ़ाइल
- 22. आप आर मार्कडाउन
- 23. आर मार्कडाउन में यूट्यूब वीडियो
- 24. एक आर मार्कडाउन दस्तावेज़
- 25. बदलें आर मार्कडाउन प्लॉट चौड़ाई
- 26. आर मार्कडाउन टेबल 1000 विभाजक
- 27. आर के लिए नमूना कोड?
- 28. गुणवत्ता आर कोड को जानने के लिए
- 29. आर मार्कडाउन - परिवर्तनीय आउटपुट नाम
- 30. आर मार्कडाउन त्रुटि: एचटीएमएल फाइल
यह भी देखें http://stackoverflow.com/questions/16405536/knitr-inline-chunk-options-no-evaluation-or-just-render-highlighted-code/16406120#16406120 – baptiste