MATLAB如何使用乳胶注释文本框?

时间:2016-05-17 13:50:08

标签: matlab textbox annotations latex

我尝试在MATLAB中使用乳胶样式的注释文本框。我将此代码用于文本框内的文本。

textp={'Einstellungen:',...                     
['w = ',num2str(w),' m/s'],...                  %Display w
['u = ',num2str(u),' m/s'],...                  %Display u
['r_p = ',num2str(r_p*10^6),' µm'],...          %Display Radius 
['beta = ',num2str(beta),'°']};                 %Display beta 

然后我用这段代码调用注释:

annotation(Flugbahn,'textbox',dim,...     
'String',textp,...                              
'Interpreter','latex',...  

问题是始终有警告

String must have valid interpreter syntax:

即使我使用$\mu$m,也会出现警告,并且texbox内的文字不在乳胶中。

3 个答案:

答案 0 :(得分:1)

经过长时间的搜索,我找到了解决方案:

textp={'Einstellungen:',...
['w= ' num2str(w) ' m/s'],...
['u= ' num2str(u) ' m/s'],...
['r= ' num2str(r_p*10^6) ' $\mu$m' ],...
['$\alpha$= ' num2str(alpha) '$^\circ$'],...
['$\beta$= ' num2str(beta) '$^\circ$']};

问题是r_p。这就是注释总是变回Tex的原因。现在一切都在LaTeX中。

答案 1 :(得分:0)

问题是由Matlab使用的TeXLaTeX解释程序引起的。 LaTeX解释器禁止普通TeX命令并请求LaTeX命令。并且TeX iterpreter在普通TeX之上工作,例如,允许更广泛地使用字体等。这就是为什么TeX和LaTeX无法消化\mum序列,但TeX解释器可以。它将其更改为$\mu$m序列并将其传递给实际的TeX。

如果您依赖LaTeX解释器,请使用LaTeX命令,而不是TeX命令。

正确的文字是

  • '\(\mu m\)'获取斜体mu和常规m;
  • '\(\mu m\)'获取斜体mu和italic m。

请注意,math模式\(\)会切换为斜体。

如果您不依赖LaTeX,可以使用Matlab(默认)对TeX进行解释。

  • '\mum'获得常规mu和常规m;
  • '{\it\mum}'获取斜体mu和italic m;
  • '{\it\mu}m'获得斜体mu和常规m;
  • '\mu\itm'获得常规的mu和italic m及其背后的一切;
  • '\mu{\itm}'获得常规mu和italic m。

请注意TeX解释器忽略数学模式形状更改,并在整形命令后将TeX形状命令扩展为文本和数学模式。

我还建议使用:

  • 5\cdot10^6代替5*10^6;
  • 5 \circC代替5 °C;
  • LaTeX翻译用于使用计算机现代字体在LaTeX外观文档中使用的图像;
  • TeX解释其他文件(不需要Computer Modern字体)。

受R.Ugolini的回答启发:

textp={'Einstellungen:',...                     
['\(w\) = ',num2str(w),' m/s'],...                  %Display w
['\(u\) = ',num2str(u),' m/s'],...                  %Display u
['\(r_\mathrm p\) = ',num2str(r_p*10^6),' \(\mu\)m'],...          %Display Radius 
['\(\beta\) = ',num2str(beta),'\(^\circ\)']};                 %Display beta 

答案 2 :(得分:-1)

不需要美元符号。只需使用' \ mum'。此外,使用char(176)作为度数符号。