LaTex Interpreter does not work correctly?

64 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Walter Roberson
Walter Roberson il 29 Dic 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 Commenti
Cameron
Cameron il 29 Dic 2022
Spostato: Walter Roberson il 29 Dic 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 il 29 Dic 2022
Modificato: Walter Roberson il 29 Dic 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 $$

Accedi per commentare.

Più risposte (1)

Thomas Lex
Thomas Lex il 30 Dic 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 Commento
Cameron
Cameron il 30 Dic 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')

Accedi per commentare.

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Prodotti


Release

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by