【发布时间】:2013-04-05 14:06:37
【问题描述】:
我正在使用 matplotlib 制作一些绘图,但遇到了 TeX 渲染的问题。似乎 mathtext x-height is 比正常的 Bitstream Vera Sans 小一点。请参阅以下示例:
x = linspace(0, 30, 300);
y = 0.5*rand(300)+20/(numpy.power(x-15, 2)+4);
xlabel(r'$\omega$ (rad$\cdot$Hz)');
ylabel(r'Intensity$^2$');
title(r'Why is $mathtext$ so much smaller than normal text?');
如您所见,希腊字母和数字尤其明显。理想情况下,我可以定义一些比例因子,使数学文本在每种字体大小下都更大一些。有没有办法简单地做到这一点?我确实不想在任何地方简单地使用Computer Modern。如果可能的话,我也不想编译新的 Tex 数学字体。
我会采用的一个解决方案是对希腊字母和数字使用无衬线字体,但无论出于何种原因,matplotlib 都会忽略这些格式:
title('Why does $mat\mathsf{plot}lib$ ignore formatting for $\mathsf{2}$ ($\mathsf{two}), $\mathbf{2}$ ($\mathbf{two}) and $\mathsf{\omega}$?')
我认为这与这些内容的排版方式的性质有关,但有什么办法可以解决吗?
【问题讨论】:
-
是使用内部数学渲染还是外部乳胶安装?
-
我认为是内部数学渲染。我没有改变它的默认值。 rcParams['pgf.texsystem'] 解析为'xelatex',但我真的不知道它是做什么用的。
标签: python numpy matplotlib