MATLAB Answers

TeX (LaTeX math mode) symbols in legends and labels in MATLAB figures

6,878 views (last 30 days)
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 Comments

Sign in to comment.

Accepted Answer

Matthew Simoneau
Matthew Simoneau on 30 May 2014
Edited: MathWorks Support Team on 8 Nov 2018
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.

  0 Comments

Sign in to comment.

More Answers (5)

Mikhail Smirnov
Mikhail Smirnov on 10 Feb 2017
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

  2 Comments

Walter Roberson
Walter Roberson on 1 Sep 2017
Ahmad Alsharif comments to Mikhail Smirnov:
This helped me in creating multi line legend with latex as interpreter
Thomas Gillet
Thomas Gillet on 17 Dec 2017
Hello Everyone,
When I use Latex interpreter, I am not able to change the font of the legend as you mentionned with set(leg1,'FontSize',17); Have you any idea ? Thank's, Thomas

Sign in to comment.


Frederik van der Walt
Frederik van der Walt on 4 Apr 2012
l= legend(['$\hat{\psi}$']);
set(l,'Interpreter','Latex');

  0 Comments

Sign in to comment.


Steven
Steven on 22 Nov 2011
Try with Latex interpreter, something like
title(['$ latex $'],'interpreter','latex')

  1 Comment

Shah
Shah on 22 Nov 2011
Thanks Steven but its not working here. I am using MATLAB 7.9.0.
I wrote legend(['$\hat{\psi}$'],'interpreter','latex') but got a warning: Unable to interpret TeX string '$\hat{\psi}$'interpreterlatex'. Same appear in the legend field.

Sign in to comment.


Shah
Shah on 23 Nov 2011
......... Its done! Actually, the default interpreter in MATLAB for legend is 'tex', I guess. It is not changed from the code line. What I had to do was to right click on the legend in the figure window and then changed the 'interpreter' from 'tex' to 'latex'. This action changed the latex statement in the legend field to Math mode.
Cheers Shah

  0 Comments

Sign in to comment.


Jordan Brel Ngako Kadji
Jordan Brel Ngako Kadji on 7 May 2020
Once I had this problem, I was writing in German and because the german letter 'ä' was not recognised all the latex commands were ignored.

  0 Comments

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!