我尝试过:
import matplotlib.pyplot as plt
from latex import bm
plt.text(1, 1, "$\bm{q}$")
错误:
ImportError: cannot import name 'bm'
当我在没有from latex import bm
的情况下使用它时,它什么也没有提供,并且文件中的颜色很奇怪(b是黑色)
这里有两个问题,其中一个比另一个更容易解决:第一个问题是,字符串文字中的"\b"
将被解释为Python级的字符串转义:"\b"
是ASCII退格键字符,与"\t"
是制表符一样。您需要转义反斜杠以使其传递到LaTeX,或使用原始字符串。因此,您需要将"$\bm{q}$"
替换为r"$\bm{q}$"
或"$\\bm{q}$"
。
[第二个问题是,默认情况下,matplotlib的数学渲染使用mathtext
库,该库不包括对mathtext
控制序列的支持。如果要使用"\bm"
中未包含的LaTeX软件包,则可以指示matplotlib使用本地LaTeX安装来渲染数学,而不是使用mathtext
。您可以这样操作,例如:
mathtext
然后您需要确保正在使用from matplotlib import pyplot as plt
plt.rcParams['text.usetex'] = True
软件包。为此,您需要更改matplotlib使用的LaTeX序言:
bm
这当然意味着您需要在计算机上安装可正常运行的LaTeX,并且关键可执行文件(例如plt.rcParams['text.latex.preamble'] = [r'\usepackage{bm}']
,latex
和dvipng
)必须位于您的kpsewhich
上,以便matplotlib可以找到他们。
一旦完成所有这些,渲染就应该起作用。
这是一个完整的独立示例:
PATH
这是当我在系统(装有标准from matplotlib import pyplot as plt
plt.rcParams['text.usetex'] = True
plt.rcParams['text.latex.preamble'] = [r'\usepackage{bm}']
plt.plot([0, 1, 2])
plt.text(1.5, 1, r"$\bm{testing}$")
plt.show()
安装)上运行上述代码时看到的图像: