2013-11-09 4 views
14

मैं इटालिसिक टेक्स्ट प्राप्त करने के लिए आर प्लॉट्स में expression() का उपयोग कर रहा हूं। लेकिन ऐसा लगता है जैसे मैं ASCII वर्णों के बाहर expression के अंदर यूनिकोड प्रतीकों का उपयोग नहीं कर सकता। क्या मैं इस तरह से काम कर सकता हूं? मेरा लक्ष्य है कि मेरे आर बारप्लॉट्स (इटालिसिक टेक्स्ट के साथ) में विभिन्न लेबलों में fi लिगरेचर प्राप्त करें।आर की अभिव्यक्ति के अंदर यूनिकोड का उपयोग() कमांड

मैं विंडोज संस्करण 3.0.2 के लिए आर का उपयोग कर रहा हूं।

CairoPDF(file = "Ligature1.pdf") 
plot.new() 
text(x =.5, y = .5, labels = "fi", family = "Times New Roman") 
dev.off() 

enter image description here

CairoPDF(file = "Ligature2.pdf") 
plot.new() 
text(x =.5, y = .5, labels = expression(paste(italic(m), "u", "fi", italic(m), sep = "")), family = "Times New Roman") 
dev.off() 

enter image description here

+0

डेबियन/आर 3.0.2 पर ठीक काम करता है - ['sessionInfo()'] (http://pastebin.com/p25qReW7) – zero323

+0

मैक पर पुन: उत्पन्न करने में सक्षम नहीं है। 'पेस्ट' अनावश्यक दिखता है। आप 'इटालिक (एम) * u * fi * इटालिक (एम) 'के साथ क्या देखते हैं? –

+0

@DWin: बिल्कुल मेरे प्रश्न के समान ही। – Sverre

उत्तर

3

आप के लिए एक काम के आसपास के लिए कहा। यही वह सब है। इटालिक भाग को expression की आवश्यकता है, लेकिन "फाई" भाग नहीं है, इसलिए उन्हें अलग से मुद्रित करें।

plot.new() 
offset1 = strwidth(expression(paste(italic(m), "u")), units="figure") 
text(x =.5, y = .5, labels = expression(paste(italic(m), "u", sep=""))) 
text(x =.5+offset1, y = .5, labels ="fi") 
offset2 = strwidth("fi ") 
text(x =.5+offset1+offset2, y = .5, labels = expression(italic(m))) 

formatted output

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

सुंदर नहीं है, लेकिन यह विंडोज के तहत वांछित परिणाम उत्पन्न करता है।

+0

यह एक वैध कार्य-आसपास है, और किसी भी बेहतर उत्तर की अनुपस्थिति में, मैंने अनुरोध किया कि यह उत्तर अन-हटा दिया जाए ताकि इसे बक्षीस से सम्मानित किया जा सके। धन्यवाद! –

+0

वाह, मैंने सोचा कि मैंने यह जवाब हटा दिया है। धन्यवाद। – G5W

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