PGF 通过 Matplotlib 生成图表并在输入 LaTeX 时使用相对字体大小

PGF 通过 Matplotlib 生成图表并在输入 LaTeX 时使用相对字体大小

我可以在 matplotlib 上生成图表并成功将其导出到 pgf。但我相信,通过首先在 matplotlib rcParams 上定义基本字体大小(例如 11pt),然后将轴刻度标签等内容定义为 \small,当我将它们插入 LaTeX 时,它们将固定为 10 pt。我相信这一点,因为当我更改类字体大小时,图表文本不会改变。

现在假设我在不同的文档、海报或投影仪演示文稿中使用相同的图表。例如,我希望轴刻度标签为 \small(相对于基本字体),标题为 \normalsize。

我相信答案在于 mpl.rcParams.update() 方法。

这是一些 Python 代码,下面是 .tex 代码。当我更改类字体大小时,理想情况下,绘图字体会随之缩放。

import matplotlib as mpl
mpl.use('pgf')
import matplotlib.pyplot as plt

import numpy as np

mpl.rcParams.update({
    "text.usetex": True,
    "pgf.texsystem": "xelatex",
    "pgf.rcfonts": False,
    "font.family": "sans-serif",
    'figure.titlesize': 'large',
    'ytick.labelsize':   'small',
    "font.serif": [],
    "font.sans-serif": [],
    "font.monospace": [],
    "figure.figsize": [3,4],
    "pgf.preamble": [
        r"\usepackage[utf8x]{inputenc}",
        r"\usepackage[T1]{fontenc}",
    ],
})
# mpl.rc('text.latex', preamble=r'\usepackage{kpfonts}')


t = np.linspace(0,5)
x = np.exp(-t)*np.sin(2*t)
plt.plot(t,x)

plt.title('TESTING title size')
plt.ylabel('TESTING Y label size')
plt.xlabel('TESTING X label size')

plt.savefig("example_plot.pgf")

-- 下面是 LaTeX 代码

\documentclass[17pt]{scrartcl}
%\usepackage{kpfonts}
\usepackage{cmbright}
\usepackage{pgf}
\begin{document}
123456 Example plot below (normal sized text) {\small (Small Text)} {\footnotesize Smaller! Text}\\
\input{example_plot.pgf}
\end{document}

任何见解都值得赞赏!

相关内容