我有带标签的 matplotlib 图形,它们以 PDF 形式包含在 LaTeX 文档中。我希望标签文本与文本字体相匹配,这是具体的(通过\usepackage{concrete}
)。
我可以使用以下方法更改标签中的数学字体
import matplotlib as mpl
mpl.rcParams['text.usetex']=True
mpl.rcParams['text.latex.preamble']=[r'\usepackage{euler}']
但添加\usepackage{concrete}
对文本字体没有影响(可能是因为无论如何都使用默认的 Helvetica)。usetex 文档没有提到直接支持的具体内容。
我还cm-unicode
安装了 CMU 字体(CMU Concrete)的 opentype 变体,以防万一有用。
答案1
这并不能直接回答您的问题,但也许是一种可行的解决方法:
正如我所提到的将 matplotlib 图表中的字体设置为等于 tex 文档你可以用脚本导出你的情节matplotlib2tikz
。这会为您提供一个带有/图形.tex
的文件,可将其输入到您的文档中。这将使用与文档相同的字体。TikZ
pgfplots
编辑: 作为参考,这里简单说明一下安装和使用。
从 github 下载文件后,在命令行中导航到文件夹,然后运行python setup.py install
安装matplotlib2tikz
。
在你的 Python 脚本中添加from matplotlib2tikz import matplotlib2tikz
, 并matplotlib2tikz('filename.tex')
在你的绘图后添加,例如
from numpy import arange
from matplotlib2tikz import matplotlib2tikz
import matplotlib.pyplot as plt
x = arange(0,10,0.5)
plt.plot(x,x**2)
plt.title("A lovely plot")
plt.ylabel("$y=x^2$")
matplotlib2tikz('test.tex')
您还可以在 Python 脚本中指定绘图的宽度和高度,如的自述文件中所述matplotlib2tikz
。