【问题标题】:Matplotlib: Change math font sizeMatplotlib:更改数学字体大小
【发布时间】: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


【解决方案1】:

来自matplotlib docs

此外,您可以使用\mathdefault{...} 或其别名 \mathregular{...} 使用用于常规文本的字体 数学文本。这种方法有很多限制,大多数 值得注意的是,可用的符号要少得多,但它可能很有用 使数学表达式与图中的其他文本很好地融合。

【讨论】:

  • 美丽。您显然可以只添加 rcParams['mathtext.default']='regular',并将文本设置为普通字体。我想我以前曾尝试过,但我一定搞砸了实施。现在可以了。
【解决方案2】:

尝试设置

rcParams['text.usetex'] = True

这将尝试使用外部 LaTeX 安装,而不是内置的 mathtext 渲染器。请参阅this wiki(尽管它有点过时)和issue #1336上的讨论

如果您的目标是 LaTeX,另一种选择是使用 pstricks。

【讨论】:

  • 这非常不理想。它将所有文本渲染设置为由 TeX 完成(我不想要的),它将字体设置为 Computer Modern。它确实引入了无衬线数字,这很好,但在希腊字母上仍然会忽略格式。
  • strait up TeX 是否支持希腊字母的格式? (即制作一个 .tex 文件,看看它是否按您的预期呈现)。我怀疑您可能还会遇到字体问题,因为并非所有字体都包含所有符号的所有样式的字形。
  • 我可以检查一下,但我更喜欢使用 Myriad Pro,它确实有希腊字母的字形,但如果没有我专门编译它,我认为 TeX 不支持它。我假设更好的方法是找到一种在使用 tex 字体时缩放它们的方法。
  • 另一个选项,如果您将其转储到 LaTeX 文档中,则稍后使用 pstricks 进行格式化。
  • 实际上是很好的建议。最后,我将使用“常规”选项,因为这些数字不只在 Latex 文件中,但很高兴了解 PStricks - 因为我总是可以将其添加到我的工作流程中(有一些“制作字体看起来不错'模块或其他东西并导出到EPS)
【解决方案3】:

这个问题应该在 matplotlib 2 中修复。见问题

Different font size between math mode and regular text #7778.

Matplotlib: correct math font size.

【讨论】:

    猜你喜欢
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 2016-07-31
    • 2011-04-23
    • 2021-10-30
    相关资源
    最近更新 更多