The usetex parameter usetex especially useful when you need LaTeX functions that are not in the matplotlib inline math text. But it also provides slightly better typography, and you don't need to worry about non-standard parts of the math text.
If you compare the two examples below (based on the example at the end of this page ), you will see that the LaTeX version does a better job of math, especially summation. In addition, mathtext does not know about \displaystyle but uses this layout style automatically, which may be undesirable in some circumstances.
Regarding your problems with label fonts, I believe matplotlib uses the default LaTeX math font for labels. If you try something similar to the code that I commented in the second example, you can get what you want.
If you only make relatively simple stories, you should take a look at tikzplotlib . This allows you to save shapes in tikz format, making it easy to resize. See my answer to this question for more details.
mathematical version
import numpy as np import matplotlib.pyplot as plt t = np.arange(0.0, 2.0, 0.01) s = np.sin(2*np.pi*t) plt.plot(t,s) plt.title(r'$\alpha_i > \beta_i$', fontsize=20) plt.text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20) plt.text(0.6, 0.6, r'$\mathcal{A}\mathrm{sin}(2 \omega t)$', fontsize=20) plt.xlabel('time (s)') plt.ylabel('volts (mV)') plt.savefig('fig_mathtext.pdf')

LaTeX version
import numpy as np import matplotlib.pyplot as plt from matplotlib import rc rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']}) rc('text', usetex=True) #rc('text.latex', preamble=r'\usepackage[eulergreek]{sansmath}\sansmath') t = np.arange(0.0, 2.0, 0.01) s = np.sin(2*np.pi*t) figure() plt.plot(t,s) plt.title(r'$\alpha_i > \beta_i$', fontsize=20) plt.text(1, -0.6, r'$\displaystyle\sum_{i=0}^\infty x_i$', fontsize=20) plt.text(0.6, 0.6, r'$\mathcal{A}\mathrm{sin}(2 \omega t)$', fontsize=20) plt.xlabel('time (s)') plt.ylabel('volts (mV)') plt.savefig('fig_latex.pdf')
