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

3,706 views (last 30 days)

Show older comments

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

### Accepted Answer

Matthew Simoneau
on 30 May 2014

Edited: MathWorks Support Team
on 28 Apr 2021

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 Comments

SOURAV KUMAR
on 29 Mar 2021

You should use the following syntax for legend() :

legend({'$\Pi_{5}=60$','$\Pi_{5}=30$','$\Pi_{5}=20$','$\Pi_{5}=50$','$\Pi_{5}=70$'},'Interpreter','latex','Location','southeast');

It works on my system (Matlab R2013a),

check on yours

Bokang Zhou
on 14 Aug 2021

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.

### More Answers (6)

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

##### 4 Comments

Mario
on 17 Apr 2023

Unfortunately this doesn't work for me.

I am tried using annotations and legends to write v_{mean on} as v_on to save figure space.

I tried several things:

lgd = legend{'on', 'off', '$$\bar{\itv}$$_{on}', 'v_{mean off}'}

lgd = legend{'on', 'off', '$\bar{\itv}$_{on}', 'v_{mean off}'}

lgd = legend{'on', 'off', '$\bar{v}$_{on}', 'v_{mean off}'}

lgd = legend{'on', 'off', ['$\bar{v}$','_{on}'], 'v_{mean off}'}

or

lgd = legend{'on', 'off', '$$\overline{\itv}$$_{on}', 'v_{mean off}'}

lgd = legend{'on', 'off', '$\overline{\itv}$_{on}', 'v_{mean off}'}

lgd = legend{'on', 'off', '$\overline{v}$_{on}', 'v_{mean off}'}

lgd = legend{'on', 'off', ['$\overline{\itv}$','_{on}'], 'v_{mean off}'}

won't work.

It would just add the $$\overline... to the legend text.

I tried both latex and tex interpreter.

I am using MATLAB v 2018b

Mario
on 17 Apr 2023

Edited: Mario
on 17 Apr 2023

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
on 4 Apr 2012

Edited: KSSV
on 26 May 2022

l= legend(['$\hat{\psi}$']);

set(l,'Interpreter','Latex');

##### 0 Comments

Steven
on 22 Nov 2011

Try with Latex interpreter, something like

title(['$ latex $'],'interpreter','latex')

##### 2 Comments

Jordan Brel Ngako Kadji
on 7 May 2020

##### 1 Comment

Rostislav Lebedev
on 16 Mar 2022

Try this

title('Verkehrstr\"ager', 'Interpreter', 'latex');

Richard Ulbricht
on 13 Dec 2022

Put this in front of your plotting commands, if you want it for all plots:

set(groot,'defaultLegendInterpreter','latex');

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!