LaTeX 和 Matplotlib 中的下标大小不同

LaTeX 和 Matplotlib 中的下标大小不同

我正在使用 matplotlib 为 LaTeX 文档准备图形。我在 matplotlib 中使用 TeX 模式。但数学模式下的下标和上标与我的 LaTeX 文档中的大小不同。

使用 matplotlib 渲染: 使用 matplotlib 渲染

使用 LaTeX 渲染: 使用 LaTeX 渲染

抱歉,尺寸略有不同,但我认为很明显意思是相对大小不同d

以下是我使用的 matplotlib 设置:

plt.rc('font', **{'family':'serif', 'serif':['Computer Modern Roman'],
                  'monospace':['Computer Modern Typewriter']})
params = {'backend': 'ps',
          'text.latex.preamble': [r"\usepackage{upgreek}",
                                  r"\usepackage[nice]{units}"],
          'axes.labelsize': 12,
          'text.fontsize': 12,
          'legend.fontsize': 8,
          'xtick.labelsize': 10,
          'ytick.labelsize': 10,
          'text.usetex': True,
          'figure.figsize': fig_size,
          'axes.unicode_minus': True}
plt.rcParams.update(params)

有人知道我必须添加什么设置吗?我的 .cls 文件中是否有任何内容需要输入到 rcParams 中?

答案1

添加到amstext用于的包的补充matplotlib将提供\text{...}命令,它与周围的文本样式相匹配,并且在数学表达式的各个部分使用适当的大小。 amstext合并在内amsmath,但后者在这种情况下可能有点矫枉过正。

那么,对所质疑的表达式的编码最好是这样的:

$d_{\text{mean}}$

编辑:\textnormal以下是对和\text进行简单展示的小测试。

\documentclass{article}
\usepackage{amstext}

\newcommand{\testmean}{\[
  d_\textnormal{mean}^{100} \quad d_{\textnormal{mean}}^{100}
  \quad d_\text{mean}^{100} \quad d_{\text{mean}}^{100}
 \]}

\begin{document}
\huge
\thispagestyle{empty}
Here we test \verb+\textnormal+ and \verb+\text+ in a subscript to see
how they affect the style as the surrounding text style changes.
\testmean
some more text, then
\sffamily switch to sans
\testmean
switch back to
\rmfamily roman and then to
\itshape italic
\testmean
that's all.
\end{document}

及其输出:

示例代码的输出

相关内容