概述
我正在将matplotlib图形作为PGF导出以在LaTeX中使用。
当将图形保存为PGF时,matplotlib似乎会为每个文本条目(轴标签、刻度、图例条目、注释)添加\sffamily
,这将阻止它从全局文档字体正确继承字体。
如果文本来自同一字体系列,则文本可以从全局文档字体继承字体,但如果全局字体来自不同的字体系列,则文本将恢复为默认的sffamily字体。
我的进展
我认为我已经找到了问题所在:如果我编辑PGF文档并简单地删除任何文本条目的\sffamily
部分,则该问题不再存在,并且全局字体被继承。删除不会影响LaTeX正确编译它,我不会收到错误信息。
因为以上发现,我认为问题与rcParams
或任何LaTeX导言(无论是在Python中还是在实际的LaTeX文档中)无关。
最小工作示例
我只是在最简单的情节上尝试了一下,并成功地重现了这个问题:
import matplotlib.pyplot as plt
fig = plt.figure()
plt.xlabel('a label')
fig.savefig('fig.pgf')
那么pgf文档将包含以下内容:
\pgftext[x=3.280000in,y=0.240809in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont a label}%
所以添加\sffamily
。在LaTeX中呈现这个将强制使用无衬线字体。删除\sffamily
并呈现它将允许它继承字体族。
简而言之
有没有办法避免在matplotlib的PGF输出中包含字体系列?
center
环境,因为它会增加额外的垂直间距。 - samcarter_is_at_topanswers.xyz\begin{figure}
。 - krg