Warning: Unable to interpret LaTeX string

hi. i want to make a text annotation including this text:
eval(['text1=''\underline{Row #', num2str(j), '}'';'])
annotation('textbox', [a b c d] , 'String', text1, 'VerticalAlignment', 'middle', 'HorizontalAlignment', 'center', 'Color', 'k', 'EdgeColor', 'k', 'BackgroundColor', 'white', 'FontWeight', 'bold', 'FontSize', 15, 'interpreter','latex');
i get an error: Warning: Unable to interpret LaTeX string "\underline{Row #1}"
how can i solve this?
thanks. Noa

5 Commenti

nope, i googled it and that is the answer that it gave... how can i underline?
Btw. Please do you the favour and omit the eval(). Simply type:
text1 = sprintf('\underline{Row #%d}', j);
Warning: Invalid escape sequence appears in format string. See help sprintf for valid escape sequences
Matt Fig
Matt Fig il 20 Set 2012
Modificato: Matt Fig il 20 Set 2012
Jan, it should be:
text1 = sprintf('\\underline{Row #%d}', j);
But there is more to it than that. See my answer below.
@noa: And? Did you follow the advice to read "help sprintf" to find out, that a \\ is required to create a \ in the output string? Or do you try that it is my turn to find this out?
@Matt: Thanks.

Accedi per commentare.

Risposte (2)

Matt Fig
Matt Fig il 20 Set 2012
Modificato: Matt Fig il 20 Set 2012
First of all you really should learn to use SPRINTF instead of EVAL. Please look at the help for SPRINTF and do not use EVAL in your code.
J = 5;
text1 = sprintf('$$\\underline{Row\\#\\;%i }$$',J);
text(.5,.5,text1,'interpreter','latex')
Or if J is a floating point number and not an integer:
J = 5.34;
text1 = sprintf('$$\\underline{Row\\#\\;%2.2f }$$',J);
text(.5,.5,text1,'interpreter','latex')
Jan
Jan il 20 Set 2012
Modificato: Jan il 20 Set 2012
text(0.5, 0.5, '\underline{Hello World}','interp','latex')
I cannot test this currently, but Daniel's answer sounds, like this is not working.

2 Commenti

??? Subscript indices must either be real positive integers or logicals.
@noa: This happens, when you use "text" as name of a variable:
clear('text');
text(0.5, 0.5, 'hello');
text = 'any string';
text(0.5, 0.5, 'hello');
Solution: do not use names of Matlab functions as variables.

Accedi per commentare.

Categorie

Tag

Richiesto:

noa
il 20 Set 2012

Community Treasure Hunt

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

Start Hunting!

Translated by