在 Matplotlib 的 LATEX 中使用 \text

Mic*_*l D 3 macos latex matplotlib

继续以下问题:

\text 在 matplotlib 标签RuntimeError: Failed to process string with tex because Latex Cannot be find 中不起作用

from matplotlib import pyplot as plt
import matplotlib as mpl
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}'] #for \text command
plt.plot([1,2,3])
plt.xlabel(r"$\frac{\text{Actual Value of Production}}{Demand}$", fontsize=16)

plt.show()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

RuntimeError: Failed to process string with tex because latex could not be found
Run Code Online (Sandbox Code Playgroud)

这意味着乳胶应该在本地安装。

(还有其他解决办法吗?)

matplotlib“手册”中,需要以下软件包:

  • 乳胶
  • dvipng
  • 鬼脚本

在 Latex 中使用\text命令是否有更简单的解决方法?

如果不是,在 OSX 中安装上面最简单的方法是什么?

Léo*_*ard 5

根据Matplotlib 的文档部分,您可以使用 matplotlib 附带的受限 TeX,而无需在本地安装任何 LaTeX 发行版:

您可以在任何 matplotlib 文本字符串中使用 TeX 标记子集,方法是将其放置在一对美元符号 ($) 内。

请注意,您不需要安装 TeX,因为 Matplotlib 附带了自己的 TeX 表达式解析器、布局引擎和字体。

您得到的错误来自mpl.rcParams['text.usetex'] = True强制 Matplotlib 将 TeX 解释器链接到本地​​(不存在)LaTeX 发行版的语句。现在我明白您这样做是为了访问\text本机 Matplotlib 的 TeX 发行版中不存在的函数。

所以有两种解决方案:

  • 您可以使用该\mathrm命令并强制单词之间有空格\,(丑陋但简单的解决方法)
from matplotlib import pyplot as plt
import matplotlib as mpl
plt.plot([1, 2, 3])
plt.xlabel(r'$\frac{\mathrm{Actual\,Value\,of\,Production}}\mathrm{{Demand}}$', fontsize=16)

plt.show()
Run Code Online (Sandbox Code Playgroud)

  • 也许建议 Matplotlib 在他们提供的最小 TeX 发行版中包含 `\text` 函数也可能很有趣。 (3认同)