2

我正在使用ieeconf乳胶类来编写文档。为了生成文档的图,我使用matplotlib 1.2。出于某种原因,ieeconf 类对常规文本使用Times字体,对数学文本使用Computer Modern roman。如果在 matplotlib 我使用以下matplotlibrc文件

font.family         : serif
font.serif          : Times
text.usetex         : True

图中的常规文本(非数学)看起来与文档其余部分的常规文本完全相同。但是,图中的数学文本看起来与文档中的数学文本不同。如果我改为使用font.serif : Computer Modern Roman,那么角色会颠倒过来,数学课文看起来相同,但常规课文看起来不同。

如何让 matplotlib 对常规文本使用一种字体类型,对数学文本使用另一种字体类型?

4

2 回答 2

2

在 Matplotlib 中,您可以使用以下命令提供 Latex 命令:(rc('text.latex', preamble = [r''])有点像他们在这里做的)。那么可能会帮助你。

于 2013-03-11T15:46:30.480 回答
0

3.4 版开始,您可以使用以下math_fontfamily参数执行此操作:

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(6, 5))

# A simple plot for the background.
ax.plot(range(11), color="0.9")

# A text mixing normal text and math text.
msg = (r"Normal Text. $Text\ in\ math\ mode:\ "
       r"\int_{0}^{\infty } x^2 dx$")

# Set the text in the plot.
ax.text(1, 7, msg, size=12, math_fontfamily='cm')

# Set another font for the next text.
ax.text(1, 3, msg, size=12, math_fontfamily='dejavuserif')

# *math_fontfamily* can be used in most places where there is text,
# like in the title:
ax.set_title(r"$Title\ in\ math\ mode:\ \int_{0}^{\infty } x^2 dx$",
             math_fontfamily='stixsans', size=14)

# Note that the normal text is not changed by *math_fontfamily*.
plt.show()

在此处输入图像描述

于 2021-11-19T11:15:23.820 回答