maximum number of characters of the latex interpreter?

Hi
I wanted to write a multiline text in a text box with the latex interpreter but found that there seems to be a limit on how many characters I can use. Is there a way around it?
For example the following code works for N<17 but crashes the latex interpreter for N>=17:
N=17;
A=reshape(1:N^2,N,N)';
Na=length(A(:,1));
ltex=cell(Na,1);
for inda=1:Na
ltex{inda}=num2str(A(inda,:));
end
figure
th=text(0.1,0.9,ltex,'interpreter','latex')
set(th,'verticalAlignment','top')

댓글 수: 4

What do you need the latex interpreter for?
And besides, you're missing $ in the strings.
What are you trying to achieve?
Fred
Fred 2011년 9월 13일
I'm aware that $ is needed to write math in latex but that is not relevant. The purpose of the code above is just to show that the latex interpreter stops working after you have used certain number of characters.
In practice I'm creating an axes where I use use the text command to output certain results in latex form with greek symbols, etc. However I found that when I have too many lines the interpreter just stops working as in the code above.
Please correct the above example (since you know):
Warning: Unable to interpret LaTeX string
I'm using R2011a Win32 Vista.
Fred
Fred 2011년 9월 14일
just change first line to N=16

댓글을 달려면 로그인하십시오.

 채택된 답변

the cyclist
the cyclist 2011년 9월 13일

2 개 추천

According to this section of the documentation:
there is a maximum of string size of 1200 characters for the LaTeX interpreter, and multiline strings reduce the limit (by about 10 characters per line).

댓글 수: 3

Wording clarification: each line break consumes about 10 characters, so the limit is (total string lengths + 10*number_of_lines <= 1200).
I point this out because when I first read "of about 10 characters per line", I thought the cyclist meant that if you used more than one line, each line could only be 10 characters long.
Fred
Fred 2011년 9월 14일
thanks. That is what I was looking for. So there is a limitation. Too bad. I guess I will just have to use multiple text commands
Clarified my answer in response to Walter's comment.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Oleg Komarov
Oleg Komarov 2011년 9월 13일
A workaround:
N = 20;
ltex = cellstr(reshape(sprintf('%3.0f\\;',1:N^2).',[],N).');
axes('Ylim',[0,18])
for n = 17:-1:1
th = text(0.02,n,['$' ltex{18-n} '$'],'interpreter','latex');
end

댓글 수: 2

Fred
Fred 2011년 9월 14일
thanks. I'm aware of this workaround but I just wanted to avoid using multiple text commands since I may want to move the text boxes around dynamically and having multiple text makes it more tedious.
You could put them inside a uipanel() and then they would move together.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Numeric Types에 대해 자세히 알아보기

질문:

2011년 9월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by