MATLAB 中的 LaTeX 注释

3

我正在尝试在MATLAB中为一张图添加LaTeX注释,但是遇到了一些问题。如果我运行

figure
annotation('textarrow', [0.3, 0.6], [0.3, 0.6], 'String', '$$\tau_{\mathrm{abc}}$$', 'interp', 'latex')

我期望看到带有正确注释的箭头,确实我得到了这个,但是我也收到了以下警告信息:

Warning: Unable to interpret TeX string "$$\tau_{\mathrm{abc}}$$" 
> In scribe.textarrow.createTextArrow>localChangePosition at 409
  In scribe.textarrow.schema>localSetToText at 357
  In scribe.textarrow.createTextArrow at 152
  In scribe.textarrow.textarrow at 11
  In annotation at 149 
Warning: incomplete command in TeX text string:
'$$\tau_{\mathrm{abc}}$$' 
> In scribe.textarrow.createTextArrow>localChangePosition at 409
  In scribe.textarrow.schema>localSetToText at 357
  In scribe.textarrow.createTextArrow at 152
  In scribe.textarrow.textarrow at 11
  In annotation at 149 

所以,我的问题是,我为什么会收到这些警告,并且如何纠正潜在的问题?

1
看起来 Matlab 不喜欢“\mathrm”。如果没有它,就不会出现警告。 - Luis Mendo
2
是的。不过在 MATLAB 中,\mathrm 理论上应该可以使用。另外,如果我将 \mathrm 替换为一些其他东西,比如 \frac,也会收到警告。 - riklund
@riklund:也许可以尝试使用 $\tau_{\rm abc}$ - Werner
@Werner,这也会产生一个警告(而且它在图表上也不能产生正确的文本)。 - riklund
在使用Matlab上的LaTex苦苦挣扎后,我个人认为应该使用Tex。你几乎可以用它来做任何事情,并且它使用被广泛接受的语法,而不是Matlab所采用的混乱语法。 - The-Duck
1个回答

4
你只需要在字符串前指定解释器即可。 这样就可以了。
annotation('textarrow', [0.3, 0.6], [0.3, 0.6], 'interpreter', 'latex', 'String', '$$\tau_{\mathrm{abc}}$$')

同时,您需要使用长名称解释器而非其缩写。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接