例如,在使用Python创建图形时。可以将这些图形保存为矢量图形(SVG、EPS、PDF),文本单独呈现。这使得在pdf文件中显示文本时可以选择或搜索文本。但是,除了文本(在乳液中)之外,我还尝试使用数学符号来呈现一个简单的图形。数学符号被编码为图像的一部分,而不是文本。
下面是一个最小可重现性的例子。
import numpy as np import matplotlib.pyplot as plt x_list = np.linspace(-10,10,num=128) y = list(map(lambda x: (x**2 + x + 1), x_list)) plt.plot(y, label="$\\Psi_{example}$") plt.legend() plt.xticks(np.linspace(0, 128, num=8), map(round, np.linspace(-10, 10, num=8), [0] * 8)) plt.savefig("./example.pdf")
这会产生以下图像。
当将此图像保存为矢量图形时,所有数字以及图例中的“示例”字都可以选择/搜索(即呈现为文本)。但是,Ψ(Psi)字符是不可选择/可搜索的。
有没有办法让数学符号在矢量图形中呈现为文本?
发布于 2022-11-22 16:20:03
通过首先安装LaTeX发行版(我使用了MikTex,来自 这里 ),然后将matpotlib选项设置为使用LaTeX来呈现符号和文本,我已经能够让它以我想要的方式工作。
注意,在安装MikTex之后,我必须打开命令提示符或代码编辑器的一个新实例,以确保它知道对我的路径的更改以及LaTex的安装位置。
我在示例中添加了导入和 mpl.rcParams 行:
mpl.rcParams
import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl mpl.rcParams['text.usetex'] = True x_list = np.linspace(-10, 10, num=128) y = list(map(lambda x: (x**2 + x + 1), x_list))