TeX (LaTeX math mode) symbols in legends and labels in MATLAB figures
4,897 次查看(过去 30 天)
显示 更早的评论
I am plotting some data which includes estimates of some parameters. I want to describe the estimates by using \hat on the parameter symbols. This I have to do in legends and axis labels fields. I could not fix this matter despite some experiments using information from MATLAB help. Any idea, please to fix this problem.
I really appreciate help on this matter which will improve the look of my presentation.
Shah
0 个评论
采纳的回答
Matthew Simoneau
2014-5-30
编辑:MathWorks Support Team
2021-4-28
By default, MATLAB supports a subset of TeX markup. For a list of supported symbols, see the documentation .
For more symbols, you can use LaTeX markup by setting the Interpreter property to 'latex'. Use dollar symbols around the text. For example:
title('$\hat{\psi}$','Interpreter','latex')
If you are using the legend function in R2018a or earlier, you must specify the labels as a cell array to distinguish the labels from the name-value pairs. In R2018b and later, the cell array is not needed.
plot(1:10)
legend({'$\hat{\psi}$'},'Interpreter','latex') % R2018a and earlier
legend('$\hat{\psi}$','Interpreter','latex') % R2018b and later
When you use LaTeX markup, the displayed text uses the default LaTeX font style. The FontName, FontWeight, and FontAngle properties no longer have an effect. To change the font style, use LaTeX markup instead.
For more information on using LaTeX in plot titles, labels, and legends, refer to the following example:https://www.mathworks.com/help/matlab/creating_plots/greek-letters-and-special-characters-in-graph-text.html#mw_421aadf2-3104-41f5-ae7e-57bf5f7cdde3
3 个评论
Bokang Zhou
2021-8-14
Thank you for your answer, but how do I use two different interpreters in the same label line?
For example:
If I use 'latex', I get the desired symbol \varphi but can't get the font of words in Time New Roman.
xlabel('Power factor angle, $\varphi$','Interpreter','latex')

If I use 'tex', I get the desired font of words in Time New Roman, but can't get the symbol \varphi since 'tex' does not support \varphi.
xlabel('Power factor angle, \phi','Interpreter','tex')

So I wonder if there is a way to have normal font of words and 'latex' font of symbol in one label line.
更多回答(6 个)
Mikhail Smirnov
2017-2-10
You can do like this
plot(1:10);
leg1 = legend('$\bar{x}$','$\tilde{x}$','$\hat{x}$');
set(leg1,'Interpreter','latex');
set(leg1,'FontSize',17);

works well
4 个评论
Mario
2023-4-17
编辑:Mario
2023-4-17
I figured it out:
lgd = legend('on','off', '$\overline{v}_{on}$', '$\overline{v}_{off}$')
But now my font is not Calibri anymore. it's rather looking like Times New Roman or sth.
set(lgd, 'interpreter', 'latex', 'FontName', 'Calibri')
won't help :(
is there a problem with Calibri + Latex?
Frederik van der Walt
2012-4-4
编辑:KSSV
2022-5-26
l= legend(['$\hat{\psi}$']);
set(l,'Interpreter','Latex');
0 个评论
Steven
2011-11-22
Try with Latex interpreter, something like
title(['$ latex $'],'interpreter','latex')
Jordan Brel Ngako Kadji
2020-5-7
Once I had this problem, I was writing in German and because the german letter 'ä' was not recognised all the latex commands were ignored.
1 个评论
Richard Ulbricht
2022-12-13
Put this in front of your plotting commands, if you want it for all plots:
set(groot,'defaultLegendInterpreter','latex');
0 个评论
另请参阅
类别
Find more on Labels and Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!