Char not working properly ?

7 ビュー (過去 30 日間)
Matteo Bonhomme
Matteo Bonhomme 2023 年 1 月 6 日
回答済み: VBBV 2023 年 1 月 9 日
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 件のコメント
Matteo Bonhomme
Matteo Bonhomme 2023 年 1 月 9 日
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 2023 年 1 月 9 日
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)

サインインしてコメントする。

採用された回答

VBBV
VBBV 2023 年 1 月 9 日
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]

その他の回答 (1 件)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023 年 1 月 6 日
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 件のコメント
Rik
Rik 2023 年 1 月 9 日
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 2023 年 1 月 9 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by