2012-06-26 20 views
14

में लेटेक्स फ़ॉन्ट्स क्या मैटलैब प्लॉट के फ़ॉन्ट को लेटेक्स फोंट के समान रूपांतरित करना संभव है। उदाहरण के लिए मैं द्वारा एक साजिश के फ़ॉन्ट को संशोधित कर सकते हैं:मैटलैब

x = -pi:.1:pi; 
y = sin(x); 
plot(x,y) 
set(gca,'FontName','Helvetica'); 

यह एक ही है, लेकिन के लिए लेटेक्स फोंट करने के लिए संभव है (मैं लेटेक्स फोंट का कहना है के रूप में मैं लेटेक्स के रूप में उपयोग करता फॉन्ट का वास्तविक नाम के बारे में सुनिश्चित नहीं हूँ इसका मूल फ़ॉन्ट)।

+0

matlabfrag का उपयोग करने के लिए एक अच्छा समाधान है। http://www.mathworks.com/matlabcentral/fileexchange/21286-matlabfrag –

उत्तर

11

किसी भी टेक्स्ट ऑब्जेक्ट के लिए आपको 'इंटरप्रेटर' संपत्ति 'लेटेक्स' पर सेट करने की आवश्यकता है। तो, उदाहरण के लिए आप

xlabel('$$\int_0^x\!\int_y dF(u,v)$$','Interpreter','latex'); 

कर सकता है टिक लेबल यह more difficult है के लिए, हालांकि यह आसान बनाने के लिए उपलब्ध (example) फ़ाइलें हो सकती है।

2

आप लेटेक्स तारों के भीतर फ़ॉन्ट को परिभाषित कर सकते हैं। फोंट का असली मिलान, में पाठ (LaTeX शैली कर्निंग, संयुक्ताक्षर आदि सहित) के लिए

text(0.5, 0.8, '\textsf{sans serif}','interpreter','latex') 
text(0.5, 0.7, '\textrm{roman}','interpreter','latex') 
text(0.5, 0.6, '$$\mathsf{math\,\,mode\,\,sans\,\,serif}$$','interpreter','latex') 
text(0.5, 0.5, '$$\mathrm{math\,\,mode\,\,roman}$$','interpreter','latex') 
+2

पहला आदेश जारी करते समय, मुझे "चेतावनी: पाठ अपडेट करने में त्रुटि। फ़ॉन्ट cmss10 समर्थित नहीं है।" R2016a में। – bers

2

: उदाहरण के लिए, फ़ॉन्ट सेरिफ़ सेरिफ़ फ़ॉन्ट (रोमन) और बिना बीच बदलने के लिए (Helvetica, मुझे लगता है) Matlab आंकड़े लाटेक्स के साथ टाइपसेट होना चाहिए। laprint script, जो psfrag का उपयोग करता है, यह करने का एक सरल तरीका है।

5

मैं अपनी स्क्रिप्ट/समारोह की शुरुआत में लेटेक्स से डिफ़ॉल्ट दुभाषिया स्थापित करने की सलाह देते हैं:

set(0,'defaulttextinterpreter','latex') 

तुम भी download a version of Computer Modern (LaTeX फ़ॉन्ट परिवार) और इसे अपनी मशीन के लिए स्थापित कर सकते हैं। तकनीक भिन्न हो सकते हैं आप विंडोज या मैक चला रहे हैं, मैक के लिए आप OTF संस्करण डाउनलोड करें और यह FontBook (Cmd-स्पेस: FontBook) में जोड़ने की आवश्यकता होगी

इसके बाद, पुनः आरंभ मैटलैब

अंत में, आप मैटलैब में LaTeX फ़ॉन्ट का उपयोग कर सकते हैं:

set(0,'DefaultTextFontname', 'CMU Serif') 
    set(0,'DefaultAxesFontName', 'CMU Serif') 

यह आपके टिक-लेबल में लगातार फोंट रखने के लिए काम के आसपास एक अच्छा है, although it has some trouble exporting in some formats.

0

आप लेटेक्स में MATLAB आंकड़े निर्यात का उद्देश्य और एक चाहते हैं लगातार देखो और महसूस (सहित फोंट), आपको matlab2tikz का उपयोग करना चाहिए।

1

यदि आप .eps पर निर्यात करते हैं तो आप बाद में एक साधारण टेक्स्ट एडिटर के साथ आकृति को संपादित कर सकते हैं और वहां फ़ॉन्ट्स का आदान-प्रदान कर सकते हैं। यह थोड़ा सा है लेकिन चाल है। आप व्यक्तिगत रूप से प्रत्येक चरित्र की कर्नाईंग भी बदल सकते हैं (क्योंकि इसकी स्थिति हार्ड-कोडेड है)।

यह भी संभव है व्यक्तिगत रूप से प्रत्येक चरित्र के फ़ॉन्ट बदलने के लिए (मैं कभी कभी यह एक की जरूरत है, तो लेटेक्स (यानी कंप्यूटर आधुनिक) से एक प्रतीक करते हैं, लेकिन फिर से Helvetica में लेबल के बाकी चाहते हैं)

2

अस्वीकरण: मैं विशेषज्ञ नहीं हूँ।

हालांकि, लिनक्स के कमांड fc-list आपके सिस्टम पर सभी फोंट सूचीबद्ध करता है, मुझे लगता है कि वे सभी Matlab द्वारा समर्थित हैं।

ubuntu (और संभवतः अन्य distro के) लेटेक्स फ़ॉन्ट में लैटिन कहा जाता है आधुनिक, या संक्षेप में एल एम।आप सभी के माध्यम से उन्हें पा सकते हैं:

# fc-list | grep lmroman 
/usr/share/texmf/fonts/opentype/public/lm/lmroman10-bold.otf: Latin Modern Roman,LM Roman 10:style=10 Bold,Bold 
/usr/share/texmf/fonts/opentype/public/lm/lmroman7-italic.otf: Latin Modern Roman,LM Roman 7:style=7 Italic,Italic 
... etc etc... 
पेट और पहली अल्पविराम के बीच

यह कहता है लैटिन आधुनिक रोमन, जो लैटिन आधुनिक के रोमन फॉन्ट का नाम है, वहाँ भी है:

  • लैटिन आधुनिक संस
  • लैटिन आधुनिक रोमन कैप्स
  • लैटिन आधुनिक मोनो
  • आदि आदि

मुझे लगता है कि जब आप \textrm (रोमन), \textsf (सेरिफ़) इत्यादि को मैथमोड में लेटेक्स में कॉल करते हैं तो इन फ़ॉन्ट्स का उपयोग किया जाता है। बेशक, आप उन्हें fc-list कमांड के माध्यम से पा सकते हैं।

अपने भूखंडों में लेटेक्स फ़ॉन्ट के लिए, बस निष्पादित करें:

plot(rand(10), 'o'); 
xlabel('index', 'FontName', 'Latin Modern Roman', 'FontSize', 25); 
ylabel('value', 'FontName', 'Latin Modern Roman', 'FontSize', 25); 
set(gca, 'FontName', 'Latin Modern Roman', 'FontSize', 25); 

और परिणाम एक अच्छा है:

example plot

पुनश्च: लैटिन आधुनिक नहीं वास्तव में कंप्यूटर की तरह ही है आधुनिक, लेकिन वे समान दिखते हैं और मुझे नहीं पता कि वे वास्तव में कितना भिन्न हैं।

मैटलैब का दुभाषिया विकल्प के बारे में, मेरी जानकारी के अनुसार करने के लिए यह एक साजिश के सभी टेक्स्ट एलीमेंट पर लागू नहीं होता, कुल्हाड़ी लेबल की तरह:

>> plot(rand(10), '.'); set(gca, 'Interpreter', 'latex'); 
Error using hg.axes/set 
The name 'Interpreter' is not an accessible property for an instance of class 'axes'. 

दुर्भाग्य से, matlab के print समारोह से दोषपूर्ण है, के रूप में यह है ईपीएस या पीडीएफ फाइलों में फोंट एम्बेड करने में सक्षम नहीं है। इस कारण से उत्पन्न फ़ाइलों में एक ही सिस्टम पर भी प्रतिस्थापित फ़ॉन्ट हो सकते हैं। इससे निपटने के लिए, यह लाइब्रेरी आपको फोंट एम्बेड करने की अनुमति देती है: http://www.mathworks.com/matlabcentral/fileexchange/23629-export-fig

इसे निर्यात करने से पहले अपने आकृति की पृष्ठभूमि को सफेद पर सेट करना सुनिश्चित करें और ध्यान दें कि लाइब्रेरी बहुत मेमोरी ले सकती है, क्योंकि यह भूत-स्क्रिप्ट को कॉल करती है।

इसके अलावा, यदि आप फ़ॉन्ट को बदलना चाहते हैं तो दुभाषिया को बदलना ओवरकिल जैसा लगता है।