我正在用matplotlib制作一些图,我遇到了TeX渲染的问题。似乎mathtext x-height比正常的比特流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数学字体,如果可能的话。
我将加入的一个解决方案是使用sans-serif字体作为希腊字母和数字,但无论出于何种原因,matplotlib都忽略了格式化:
title('Why does $mat\mathsf{plot}lib$ ignore formatting for $\mathsf{2}$ ($\mathsf{two}), $\mathbf{2}$ ($\mathbf{two}) and $\mathsf{\omega}$?')
我认为这与这些东西的排版方式有关,但是有什么方法可以解决它吗?
答案 0 :(得分:9)
此外,您可以使用
\mathdefault{...}
或其别名\mathregular{...}
使用用于常规文本的字体 mathtext。大多数情况下,这种方法存在许多限制 值得注意的是,可用的符号要少得多,但它可能很有用 使数学表达式与情节中的其他文本很好地融合。
答案 1 :(得分:3)
尝试设置
rcParams['text.usetex'] = True
将尝试使用外部LaTeX安装,而不是内置的mathtext渲染器。请参阅this wiki(尽管有点过时)和关于issue #1336的讨论
如果您的目标是LaTeX,另一个选择是使用pstricks。
答案 2 :(得分:0)