2012-05-03 16 views
5

आर में, पीडीएफ या पोस्टस्क्रिप्ट फ़ाइल में साजिश को सहेजते समय, धुरी लेबल में हाइफ़न कम से कम संकेतों में बदल जाता है। जाहिर है, यह डिजाइन द्वारा है। "पोस्टस्क्रिप्ट" डिवाइस के लिए प्रलेखन के अनुसार:पीडीएफ/पॉस्क्रिप्ट आउटपुट में "माइनस हैक" को अक्षम करने का कोई तरीका?

एक अपवाद [सामान्य एन्कोडिंग नियमों के लिए] है। कैरेक्टर 45 ('"-"') हमेशा शून्य (एडोब आईएसओएलटीएन 1 में इसका मूल्य) के रूप में सेट किया गया है, भले ही यह अन्य एन्कोडिंग में हाइफ़न है। हाइफ़न सभी लैटिन एन्कोडिंग, सिरिलिक और यूनानी में वर्ण 173 (ऑक्टल 0255) के रूप में उपलब्ध है। (यह एक UTF-8 स्थान में 'के रूप में "\ UAD"' में प्रवेश किया जा सकता है।)

वहाँ किसी भी तरह से इस सुविधा को बंद करने के लिए है?

मेरी समस्या यह है कि मैं अक्सर विभिन्न प्रारूपों में भूखंडों को सहेजता हूं और यदि मैं सुझाए गए "\ uad" वर्कअराउंड का पालन करता हूं, तो मुझे पोस्टस्क्रिप्ट/पीडीएफ आउटपुट में अपेक्षित हाइफ़न मिलते हैं लेकिन मेरे प्लॉट को अन्य प्लॉट करने पर कुछ भी नहीं पीएनजी जैसे ग्राफिक्स डिवाइस। मुझे प्रत्येक प्लॉट के दो संस्करण, पीडीएफ के लिए एक और पीएनजी के लिए एक बनाना नहीं होगा।

अगर मैं "माइनस हैक" अक्षम कर सकता हूं, तो ग्राफिक्स उपकरणों में प्रतिपादन व्यवहार सुसंगत रहेगा, और मैं इसे विभिन्न प्रारूपों में प्राप्त करने के लिए कई डिवाइसों पर एक साजिश "प्रिंट" कर सकता हूं। उदाहरण के लिए, मैं निम्नलिखित ऐसा करने में सक्षम होना चाहते हैं, और हाइफ़न साजिश के दोनों पीडीएफ और PNG संस्करणों में लगातार प्रस्तुत करना है:

p <- qplot(arrival_rate, mean_service_time, data = response_times, ...) 
ggsave(p, file = "/tmp/service-scaling.pdf", useDingbats = F) 
ggsave(p, file = "/tmp/service-scaling.png") 

आपकी मदद के लिए धन्यवाद!

उत्तर

7

यदि आपकी मशीन इसका समर्थन करती है (और आप यह जानने के लिए capabilities() टाइप कर सकते हैं), तो आप इसके बजाय cairo_pdf() का उपयोग कर सकते हैं। यह अन्य की साजिश रचने उपकरणों की तरह "-" अधिक संभाल करने लगता है: यहाँ

enter image description here enter image description here

, क्योंकि मैं साथ ही यह शामिल हो सकता है, कोड मैं ऊपर दो pdfs के लिए इस्तेमाल किया है:

cairo_pdf("cairo_pdf.pdf", width=6, height=3.5) 
    par(mar=c(10,4,4,1)) 
    plot(1:10, type = "n", axes = FALSE, 
     main = "Plotted using cairo_pdf()", 
     ylab = "", xlab = "x-y", cex.lab = 10) 
dev.off() 

pdf("pdf.pdf", width=6, height=3.5) 
    par(mar=c(10,4,4,1)) 
    plot(1:10, type = "n", axes = FALSE, 
     main = "Plotted using pdf()", 
     ylab = "", xlab = "x-y", cex.lab = 10) 
dev.off() 
+1

यह मेरे लिए काम करता है! निम्नलिखित ठीक वही बनाता है जो मैं चाहता हूं: 'ggsave (file = "/tmp/service-scaling.pdf", p, cairo_pdf) ' –

0

पीडीएफ() के लिए एक वर्कअराउंड है here: यूनिकोड वर्ण "\255" या यूटीएफ 8 "\uad" में "-" हाइफ़न को प्रतिस्थापित करें। यह आर-कंसोल में अच्छी तरह से प्रिंट नहीं हो सकता है, लेकिन पीडीएफ में होगा। यह आसानी से gsub("-", "\uad", "x-y) का उपयोग कर प्रतिस्थापित किया जा सकता:

enter image description here

pdf("pdf.pdf", width=5, height=4) 
par(mar=c(6,2,2,2), mfrow=c(2,1)) 
plot(1:10, type = "n", axes = FALSE, 
    main = "Default", 
    ylab = "", xlab = "x-y", cex.lab = 8) 
plot(1:10, type = "n", axes = FALSE, 
    main = "with '\\uad'", 
    ylab = "", xlab = gsub("-", "\uad", "x-y"), cex.lab = 8) 
dev.off() 

मैं इस समाधान का उपयोग कर, क्योंकि मैं सीएमवाईके colormode, जो cairo_pdf में संभव नहीं है में एक PDF (और बाद में रूपांतरण के वैकल्पिक निर्यात करना चाहते हैं समाप्त हो गया सीएमवाईके को फाइलों को छोटी फाइलों के लिए 10 गुना बढ़ा देता है)। मुझे उम्मीद है कि कोई और इसका इस्तेमाल कर सकता है।

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

  • कोई संबंधित समस्या नहीं^_^