LaTex Interpreter does not work correctly?

61 views (last 30 days)
Dear Helpers,
I'd like to plot some data and annotate the YAxis according to the following code using the latex interpreter:
plot(Tx',drhodT','LineWidth',1.5)
legend(LoF,'Location','eastoutside')
grid on
xlabel('Temperature [K]')
ylabel('$\frac{\partial\rho}{\partial T}$ [kg/m³/K]','Interpreter','latex')
When plot appears, also following error message is enclosed.
I wonder why the error message shows two backslashed instead of one single backslash which I coded.How to rectify this problem.
Looking forward to receiving your suggestions.
Best regards
Tom

Accepted Answer

Walter Roberson
Walter Roberson on 29 Dec 2022
ylabel('$\frac{\partial\rho}{\partial T} [kg/m^3/K]$','Interpreter','latex')
The ³ character is not accepted for latex
To correct for that you need to use ^ but that is only accepted inside $$
You should probably rewrite the unit using frac
  3 Comments
Cameron
Cameron on 29 Dec 2022
Moved: Walter Roberson on 29 Dec 2022
Walter's answer works for me.
plot(1:20,rand(1,20),'LineWidth',1.5)
legend('data','Location','eastoutside')
grid on
xlabel('Temperature [K]')
ylabel('$\frac{\partial\rho}{\partial T} [kg/m^3/K]$','Interpreter','latex')
Which version of MATLAB are you using?
Walter Roberson
Walter Roberson on 29 Dec 2022
Edited: Walter Roberson on 29 Dec 2022
Let us experiment:
figure()
subplot(1,4,1)
ylabel('\frac{\partial\rho}{\partial T} kg/ m³', 'interpreter', 'latex'); title('A1');
subplot(1,4,2)
ylabel('$\frac{\partial\rho}{\partial T} kg/ m³$', 'interpreter', 'latex'); title('A2');
subplot(1,4,3);
ylabel('\frac{\partial\rho}{\partial T} kg/ $m³$', 'interpreter', 'latex'); title('A3');
subplot(1,4,4);
ylabel('$\frac{\partial\rho}{\partial T} kg/$ m³', 'interpreter', 'latex'); title('A4');
Warning: Error updating Text.

String scalar or character vector must have valid interpreter syntax:
$\frac{\partial\rho}{\partial T} kg/$ m³
figure()
ylabel('m³', 'interpreter', 'latex'); title('AA1');
Warning: Error updating Text.

String scalar or character vector must have valid interpreter syntax:

figure()
ylabel('$m³$', 'interpreter', 'latex'); title('AA2');
Warning: Error updating Text.

String scalar or character vector must have valid interpreter syntax:
$m³$
figure()
ylabel('m^3', 'interpreter', 'latex'); title('AA3')
Warning: Error updating Text.

String scalar or character vector must have valid interpreter syntax:
m^3
figure()
subplot(1,4,1)
ylabel('\frac{\partial\rho}{\partial T} kg/ m^3', 'interpreter', 'latex'); title('B1');
subplot(1,4,2)
ylabel('$\frac{\partial\rho}{\partial T} kg/ m^3$', 'interpreter', 'latex'); title('B2');
subplot(1,4,3)
ylabel('\frac{\partial\rho}{\partial T} kg/ $m^3$', 'interpreter', 'latex'); title('B3');
subplot(1,4,4)
ylabel('$\frac{\partial\rho}{\partial T} kg/$ m^3', 'interpreter', 'latex'); title('B4');
Warning: Error updating Text.

String scalar or character vector must have valid interpreter syntax:
$\frac{\partial\rho}{\partial T} kg/$ m^3
figure();
subplot(1,4,1)
ylabel('\frac{\partial\rho}{\partial T} kg/ m³', 'interpreter', 'tex'); title('C1');
subplot(1,4,2)
ylabel('$\frac{\partial\rho}{\partial T} kg/ m³$', 'interpreter', 'tex'); title('C2');
subplot(1,4,3)
ylabel('\frac{\partial\rho}{\partial T} kg/ $m³$', 'interpreter', 'tex'); title('C3');
subplot(1,4,4)
ylabel('$\frac{\partial\rho}{\partial T} kg/$ m³', 'interpreter', 'tex'); title('C4');
Warning: Error updating Text.

String scalar or character vector must have valid interpreter syntax:
$\frac{\partial\rho}{\partial T} kg/$ m³
figure();
subplot(1,4,1)
ylabel('\frac{\partial\rho}{\partial T} kg/ m^3', 'interpreter', 'tex'); title('D1');
subplot(1,4,2)
ylabel('$\frac{\partial\rho}{\partial T} kg/ m^3$', 'interpreter', 'tex'); title('D2');
subplot(1,4,3)
ylabel('\frac{\partial\rho}{\partial T} kg/ $m^3$', 'interpreter', 'tex'); title('D3');
subplot(1,4,4)
ylabel('$\frac{\partial\rho}{\partial T} kg/$ m^3', 'interpreter', 'tex'); title('D4');
Warning: Error updating Text.

String scalar or character vector must have valid interpreter syntax:
$\frac{\partial\rho}{\partial T} kg/$ m^3
You can see from AA1 and AA2 that you can include the ³ character in latex, and it will give you the ³ output, but that it will generate the warning message regardless of being inside $$ or not.
You can see that the only one of these that works as you would hope is B2: $\frac{\partial\rho}{\partial T} kg/ m^3$ intepreter latex.
You can see from the A series that when the ³ character is included, that the entire string goes uninterpreted and is just put up (some as if you used interpreter 'none')
You can also see that when you use ^ to get the raised 3, then that can work -- but only if you are inside $$

Sign in to comment.

More Answers (1)

Thomas Lex
Thomas Lex on 30 Dec 2022
Hello Walter, hello Cameron,
thanks for your contributions.
Interesting insights. Obiously Matlab is very sensitive on what is written within the '...' when Interpreter ist activated for LaTex Following label worked fine
ylabel('Dichteaenderung $\, \left.\frac{\partial\rho}{\partial T}\right|_{x=0} [kg/m^3/K]$','Interpreter','latex')
But the line
ylabel('Dichteänderung $\, \left.\frac{\partial\rho}{\partial T}\right|_{x=0} [kg/m^3/K]$','Interpreter','latex')
did not work even though the word Dichteänderung ist not inside the $ $ environment. Which is obviouly due to the ä and which is the case for the ³. Both are non standard ascii characters.
Thanks a lot to you guys, who helped me to improve my Matlab knowledge!
My conclusion: When Latex-Interpreter is activated for text, labels, tilles etc., never use any non standard ascii character inside the inverted commas ' ' .
I would be happy to see this statement in the correspondent Matlab Help Center pages.
Best regards
Tom
  1 Comment
Cameron
Cameron on 30 Dec 2022
This worked for me.
ylabel('$Dichte\ddot{a}nderung \, \left.\frac{\partial\rho}{\partial T}\right|_{x=0} [kg/m^3/K]$','Interpreter','latex')

Sign in to comment.

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!