Sweave

2010-08-08 5 views
6

मैं Sweave के माध्यम से अपने LaTeX दस्तावेज़ में आर से कुछ भूखंडों को शामिल करने की कोशिश कर रहा हूँ स्थानीय पात्रों मुद्रण नहीं।Sweave

\SweaveOpts{eps = FALSE, pdf = TRUE, echo = FALSE, prefix = TRUE, prefix.string = data} 

<<label = abundanca:barplot, fig = TRUE, include = FALSE, results = hide>>= 
barplot(abund, xlab="Vzorčne postaje", ylab="Abundanca", main="", col="slategrey", names.arg=c("HM1", "HM2", "HM3", "HM4", "HM5", "HM6", "HM7", "HM8", "HM9", "HM10")) 
@ 

Sweave में पीडीएफ डिवाइस देशी एन्कोडिंग (options("encoding") में सेट के रूप में) है, जो xlab में स्थानीय वर्ण (ščćž) को नहीं पहचानता (उन्हें दो डॉट्स के साथ की जगह) का उपयोग करता है।

मैं कुछ है कि आर में काम करता है के लिए विकल्प सेट करने की कोशिश की है:

options("encoding" = "CP1250.enc") 

लेकिन मैं कोई त्रुटि मिलती है:

Error in file() : unsupported conversion from 'CP1250.enc' to '' 

किसी भी समाधान, समाधान ...?

संपादित

aL3xa के RNW रनिंग

के माध्यम से
R CMD Sweave report.Rnw 

काम नहीं करता।

Sweave("report.Rnw") 

तथापि ग्रहण + StatET के माध्यम से एक ही फाइल चल रहा है, करता है।

मेरे .Rnw फाइल और एक .pdf

+0

यह आपकी समस्या के लिए काम करता है: http://stackoverflow.com/questions/31221471/custom-graphical-device-in-sweave –

उत्तर

3

यह एक यह लग सकता है के रूप में सरल नहीं है। तकनीकी रूप से, यह समस्या ओएस/लोकेल/पीडीएफ लेखक/स्वीवे निर्भर है (देखें "आर स्थापना और प्रशासन", अध्याय 7)। चूंकि मैं जीएनयू/लिनक्स चला रहा हूं, यह "समाधान" मैक और विंडोज उपयोगकर्ताओं को संबोधित नहीं किया गया है। और सिर्फ चीजों को थोड़ा और जटिल बनाने के लिए, जीएनयू/लिनक्स डिस्ट्रोज़ अलग-अलग हैं, इसलिए एक शानदार मौका है कि अगर कुछ काम करता है, तो कहें, उबंटू, आर्क लिनक्स पर काम नहीं करता है।

मैं mtcars डाटासेट का उपयोग किया जाएगा। के स्थानीय वर्णों के साथ कुछ बुनियादी ग्राफ बनाएँ:

pdf("foo.pdf") 
boxplot(mpg ~ cyl, data = mtcars, ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") 
dev.off() 

सर्बियाई भाषा का (दुर्घटना पाठ्यक्रम: "Potrošnja goriva" ईंधन की खपत के लिए खड़ा है, "Broj cilindara" # और सिलेंडरों के लिए खड़ा है "Dijagram raspršenja" बराबर है scatterplot के लिए)

अब, मैं चेतावनी की गुच्छा मिलता है:

Warning messages: 
1: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") : 
    conversion failure on 'Dijagram raspršenja' in 'mbcsToSbcs': dot substituted for <c5> 
2: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") : 
    conversion failure on 'Dijagram raspršenja' in 'mbcsToSbcs': dot substituted for <a1> 
3: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") : 
    conversion failure on 'Dijagram raspršenja' in 'mbcsToSbcs': dot substituted for <c5> 
4: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") : 
    conversion failure on 'Dijagram raspršenja' in 'mbcsToSbcs': dot substituted for <a1> 
5: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") : 
    conversion failure on 'Potrošnja goriva' in 'mbcsToSbcs': dot substituted for <c5> 
6: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") : 
    conversion failure on 'Potrošnja goriva' in 'mbcsToSbcs': dot substituted for <a1> 
7: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") : 
    conversion failure on 'Potrošnja goriva' in 'mbcsToSbcs': dot substituted for <c5> 
8: In title(ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") : 
    conversion failure on 'Potrošnja goriva' in 'mbcsToSbcs': dot substituted for <a1> 

जबकि options(encoding = "CP1250") चाल नहीं करता है - मैं एक ही चेतावनी मिलता है, pdf.options(encoding = "CP1250") सुधार यह है, और यह pdf(file = "foo.pdf", encoding = "CP1250") के लिए खड़ा है। इसलिए, मैं options(encoding = "native.enc") के साथ अपना पुराना एन्कोडिंग वापस प्राप्त करूंगा, जैसा कि पहले बताया गया था और चीजें सही तरीके से प्राप्त करें pdf.options सेट करें।

कुछ उपयोगकर्ताओं को दूर सिर्फ pdf.options की स्थापना करके मिलता है, और Sweave साथ कोई समस्या नहीं मिलता है। तो, आपको कहीं भी कोड के इस हिस्से को सम्मिलित करना चाहिए।RNW फ़ाइल, इससे पहले कि आप अंकन शुरू:

<<setOptions, echo = FALSE, results = hide>>== 
pdf.options(encoding = "CP1250") 
@ 

और बाद में, बस करो:

<<plotTheFigure, echo = TRUE, fig = TRUE>>== 
# I've set echo to TRUE intentionally, to prove my point here 
boxplot(mpg ~ cyl, data = mtcars, ylab = "Potrošnja goriva", xlab = "Broj cilindara", main = "Dijagram raspršenja") 
@ 

और एक ही परिदृश्य ggplot2 रेखांकन के लिए खड़ा है।

आप में से कुछ को सही आउटपुट मिलेगा, लेकिन मैं नहीं करता! और जैसा कि मैंने पहले कहा है, यदि आप उबंटू चला रहे हैं, तो यह एक अच्छा मौका है कि यह काम करेगा, लेकिन अभी के लिए, मैं इसे जीवित बनाने और आर्क में लात मारने के लिए प्रतीत नहीं कर सकता।

और अपने कीस्ट्रोक को बचाने के लिए, आप Sweave file, और/या PDF file (आर्क मशीन पर निष्पादित) डाउनलोड कर सकते हैं। जैसा कि आप देख सकते हैं, स्थानीय वर्ण प्लॉट फ़ंक्शन के भीतर सही तरीके से प्रदर्शित होते हैं, लेकिन स्वीवे के भीतर खराब हो जाते हैं। अब, अगर मैं ग्राफ को पीडीएफ फ़ाइल (स्वेविंग के बिना) में सहेजने का प्रयास करता हूं, तो मुझे correct output मिलता है।

तो, मैंने कुछ मुद्दों को हल किया है, लेकिन बहुत सी परीक्षण-और-त्रुटि कार्य करने के लिए छोड़ दिया गया है।

कृपया अपनी मशीन पर आरएनडब्ल्यू फ़ाइल चलाएं, और मुझे कुछ प्रतिक्रिया दें। चीजों को कम करने के लिए, मैंने प्रतिलिपि बनाई है जो आपकी सिस्टम जानकारी एकत्र करता है (व्यक्तिगत जानकारी नहीं) जो मुझे इस मामले में प्रासंगिक लगता है: यहां 'source, और यहां मेरा output है।

+0

बेशक, एक कामकाज है: आपको ग्राफ को सहेजने वाली एक अलग स्क्रिप्ट बनाना चाहिए, इसलिए '\ includegraphics' के साथ स्थानीयकृत वर्णों के साथ पीडीएफ लोड करें। यह काम करता है! – aL3xa

+0

क्या आप विंडोज उपयोगकर्ताओं के लिए समाधान के बारे में जानते हैं? –

संबंधित मुद्दे