Matlab 中的埃符号

Angstrom symbol in Matlab

我想在我使用代码制作的绘图中的文本框内写入 q=0.1 Å。我正在使用 Matlab。我写了以下内容:

str={'q=0.1$\AA$'};
annotation('textbox',...
[0.45 0.8 0.2 0.1],...
'interpreter','latex','string',str,...
'fontsize',20,...
'fontname','times new roman',...
'edgecolor','none',...
'fitboxtotext','on');

产生:

问题是它生成的 angstrom symbol 有点奇怪。 A 顶部的圆圈非常偏离。 'fontname' 我试过其他选项,但结果是一样的。有没有办法在 Matlab 中获得正确的埃符号?

与其说这是一个 MATLAB 问题,不如说这是一个 LaTeX 问题。如果你在 LaTeX 文档中打印 $\AA$,它看起来是一样的。

解决方法是删除 $...$,因为您不需要 \AA:

的数学环境
str={'q=0.1\AA'};
annotation('textbox',...
[0.45 0.8 0.2 0.1],...
'interpreter','latex','string',str,...
'fontsize',20,...
'fontname','times new roman',...
'edgecolor','none',...
'fitboxtotext','on');

在我看来,结果看起来好多了:

我认为主要问题是在 LaTeX 数学模式中(在 '$' 个字符之间),大多数文本默认为斜体。您可以通过将第一行更改为使用 \textrm:

来解决这个问题
str={'q=0.1$\textrm{\AA}$'};

输出注释字符串现在如下所示:

\rm 也可以,但可能是 deprecated. \mathrm also appears to work in this case, but apparently can do more complicated font sunbstitutions。我实际上会制作完整的字符串数学以斜体化 'q' 并在 '=' 符号周围获得适当的间距:

str={'$q=0.1\textrm{\AA}$'};

看区别:

不过,正如@hbaderts 指出的那样,str={'$q=0.1$\AA'}; 也可以,但可能会产生略微不同的字距调整。

您应该删除 \AA 周围的 $:

str = 'q=0.1\AA';
annotation('textbox', [0.45 0.8 0.2 0.1], 'interpreter','latex','string',str);

产生一个直的埃符号,而'$\AA$'产生你所拥有的。