2015-05-26 13 views
5

में लाइनब्रेक जोड़ें मैं कुछ रिपोर्ट उत्पन्न करने के लिए knitr का उपयोग कर रहा हूँ। मैं दस्तावेज़ में एक HTML तालिका उत्पन्न करने के लिए केबल का उपयोग करें। हेडर में मैं लाइनब्रेक (या अन्य html टैग) का उपयोग करने की मेजआर knitr तालिका शीर्षलेख kable()

<!--begin.rcode results='asis' 
s <- rbind(c(1,2,3,4),c(1,2,3,4),c(1,2,3,4)) 
kable(s, col.names=c("Try Newline\nn","Try HTML break<br>%","Past 6 months\nn","\n%")) 
end.rcode--> 

को बढ़ाने के लिए आप देख मैं बहुत सफलता के बिना विभिन्न विकल्पों कोशिश कर रहा हूँ कर सकते हैं चाहता हूँ। मेरे परिणाम में लाइनब्रेक्स (\ n) का अनुवाद एचटीएमएल स्रोत में एक लाइनब्रेक में किया गया है।
टैग एचटीएमएल विशेष पात्रों में अनुवादित हैं।

कोई सुझाव?

+0

''' क्या है? कृपया पुनरुत्पादित उदाहरण पोस्ट करें, ताकि समस्या हम "देख सकें"। – daroczig

+0

सवाल बदल गया ताकि आप समस्या देख सकें – Wietze314

उत्तर

7

जहाँ तक मुझे पता है, pipe table syntax कोशिकाओं में लाइन ब्रेक का समर्थन नहीं करता है, इसलिए अगर pandoc का उपयोग मार्कडाउन से HTML में परिवर्तित करने के लिए किया जाता है (यह आरस्टूडियो का उपयोग करता है), तो आप बेहतर कुछ और फीचर समृद्ध टेबल चुनेंगे वाक्यविन्यास, उदाहरण के लिए multiline या grid। ऐसा kable साथ करने के लिए कैसे, लेकिन pander उन का समर्थन करता है सुनिश्चित नहीं हैं:

> library(pander) 
> colnames(s) <- c("Try Newline\nn","Try HTML break<br>%","Past 6 months\nn","\n%") 
> pander(s, keep.line.breaks = TRUE) 

------------------------------------------------------- 
Try Newline Try HTML break<br>% Past 6 months % 
     n         n   
------------- --------------------- --------------- --- 
     1     2     3   4 

     1     2     3   4 

     1     2     3   4 
------------------------------------------------------- 

लेकिन अब आप हार्ड लाइन टूट जाता है डाल करने के लिए है यह नहीं पर्याप्त, के रूप में पंक्ति विराम स्वतः pandoc द्वारा हटा दिया जाता है, ("बैकस्लैश का पालन किया एक नई लाइन द्वारा ") related docs पर आधारित है। जैसे निम्न कोड अपेक्षित के रूप में एचटीएमएल में परिवर्तित हो जाता है:

> colnames(s) <- c("Try Newline\\\nn","Try HTML break\\\n%","Past 6 months\\\nn","\\\n%") 
> pander(s, keep.line.breaks = TRUE) 

----------------------------------------------------- 
Try Newline\ Try HTML break\ Past 6 months\ \ 
     n    %    n   % 
-------------- ----------------- ---------------- --- 
     1    2    3   4 

     1    2    3   4 

     1    2    3   4 
----------------------------------------------------- 
+0

knitr v1.13 के साथ हार्ड-लाइन ब्रेक केबल के साथ काम करते हैं यदि आप आउटपुट को HTML के रूप में निर्दिष्ट करते हैं: 'knitr :: kable (s, format =" html ")' –