我的GUI中有一个文本框,我想在其中写一个标签文本。
您可能知道或不知道,\t
修饰符在tex解释的文本字符串中不起作用。
我要问的是,是否有一个优雅的解决方案来模拟带有CORRECT空间量的制表符修饰符,同时还考虑到不同字符可能具有不同宽度的事实?
结果应该是这样的:
[tabText('Try\tThis') ; tabText(Tryy\tThis)]
ans =
Try This
Tryy This
感谢。
答案 0 :(得分:2)
'\t'
被解释为:两个字符\
和t
,而非制表。
要获取制表字符,您必须经过sprintf
:
> 'Try\tThis'
Try\tThis
> sprintf('Try\tThis')
Try This
或char(9)
(ASCII码):
> ['Try' char(9) 'This']
Try This
答案 1 :(得分:1)
查看text
的MATLAB文档的相关部分(在撰写本文时,这指向R2016b文档),可以看到TeX"子集"这是MATLAB支持的,不包含任何类似标签的字符。因此,使用tex
解释器似乎没有正确的方法。
您有几种选择:
uifigures
是一个选项,那么文本标签允许使用MathML。这是非常可定制的...... 如果您切换到'latex'
解释程序,则可以使用\quad
,\qquad
等。
figure();
text(.5,.5,{'$$This \quad text$$','$$is \quad properly$$','$$tabbed, \quad Right?$$'},...
'Interpreter','latex');
关于不相等的字符宽度 - 您可以通过更改字体来解决这个问题,使用' FontName' text(...)
的论据。