对于大多数使用matplotlib进行的交互式绘图,我不想使用 latex 数学处理。 (主要是因为它太慢,也因为它对于频繁使用的恕我直言有点太模糊了。)但是在编写 latex 时,我也会一直使用自己的宏。仅作为一个示例,我没有定义$M_{\odot}$
而是执行$\Msun$
。因此,在使用matplotlib时,我倾向于仅自动编写后者,然后得到一个错误并必须对其进行修复。这只是一个特别简单的示例,我希望可以在无需过多工作的情况下灵活地同时在论文和绘图中重新定义宏。
所以,有什么合理的好方法可以扩展mathtext解析器来理解$\Msun$
之类的东西?还是我必须破解mathtext.py之类的东西?
(我的后备方法是将Msun
定义为字符串r'M_{\odot}'
,因此我可以编写类似r'$M = 10\,' + Msun + '$'
的内容,但这并不令人愉快,并且对我来说当然不会更加自动化。)
最佳答案
matplotlib的mathtext不支持宏,您必须编辑mathtext.py。也许最简单的方法是在将字符串传递给mathtext解析器之前进行自己的宏扩展,例如text(x,y,expand(r'$M = \Msun$'))
,其中expand
用其含义替换您自己的宏,例如\Msun
。
关于latex - 扩展matplotlib mathtext解析器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9252707/