Char not working properly ?

4 Ansichten (letzte 30 Tage)
Matteo Bonhomme
Matteo Bonhomme am 6 Jan. 2023
Beantwortet: VBBV am 9 Jan. 2023
Hello
Acccording to internet the unicode for subscript e ( _{e} in Latex) is U2091 or 8337 in decimal.
char(8337)
ans = 'ₑ'
but on my machine it doesn't work.
Other unicode work but not this one. Does anybody know what I should check ?
I'm on window 11 and my laptop is in french if that helps.
  7 Kommentare
Matteo Bonhomme
Matteo Bonhomme am 9 Jan. 2023
I tried, it still doesn't work.
After doing some additionnal research, it looks like that's the best that unicode can do. The unicode character of the voyel are just not the same size. (found this cool website btw : https://www.unicodeit.net/ )
I read somewhere else on the forum that uitextarea does't accept interpreter so I don't think there's a way to fix that.
After doing some try I found a workaround where I put axes then put a textbox on the axes then hide the axes:
hFig=uifigure;
ax=uiaxes(hFig);
text(ax,0.5,0.5,"T_{antenna}",'FontSize', 40)
ax.Visible='off';
That's not answering my initial question but that's a satisfying work around
Adam Danz
Adam Danz am 9 Jan. 2023
I was able to reproduce these difference between results shown here and on my local machine. Clearly the encoding is not consistent between the Run feature and my local installation and there are differences between recent releases. There were changes to system encoding in 22a (release notes) but that does not explain these differences and I haven't had time to look deeper.
Subscripts codes references on wiki.
unidec = hex2dec({'2090','2099','209c','2091','2099','2099','2090'})
unidec = 7×1
8336 8345 8348 8337 8345 8345 8336
str = ['T', char(unidec')]
str = 'Tₐₙₜₑₙₙₐ'
text(0.5,0.5,str,'FontSize',24)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

VBBV
VBBV am 9 Jan. 2023
To display text on figure window, you should rather use uilabel function in place of uitextarea which produces same output as desired, This function also supports both latex and tex interpreters in contrast to former uitextarea function.
hFig=uifigure;
txa = uilabel(hFig);
txa.Text ='T_{antenna}'
txa.Interpreter = 'tex'
txa.FontName= 'Arial';
txa.FontSize=40;
txa.FontWeight='normal'
txa.Position = [100 274 170 45]

Weitere Antworten (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov am 6 Jan. 2023
To display in a figure is straightforward, e.g.:
figure; title(char(8337))
text(0.5, 0.5, ['This is the character: ' char(8337)])
  3 Kommentare
Rik
Rik am 9 Jan. 2023
The whole point of Unicode is not to have these things happen, so this behavior should be considered a bug. Please report it.
Matteo Bonhomme
Matteo Bonhomme am 9 Jan. 2023
I just did it
I found a workaround so I'll stop looking into this issue but if someone understand what's happening I'm interested

Melden Sie sich an, um zu kommentieren.

Tags

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by