【start:240814】
文章目录
动机
在使用Python的Matplotlib库绘图时,在非LaTeX模式下,似乎无法同时对LaTeX变量进行“加粗、加斜体”的操作,于是计划转向使用LaTeX模式。
Matplotlib库
调用
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
报错
这时,如果没有提前安装latex软件,而直接运行
mpl.rcParams['text.usetex'] = True
会报错:
RuntimeError: Failed to process string with tex because latex could not be found
这说明我们还没有安装好latex软件,需要先安装再使用
LaTeX 模式
安装
先下载、安装latex软件
【ref】LaTex安装及使用(一)
然后,在python环境中安装latex库
pip install latex
使用
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r"""
\usepackage{textcomp}
\usepackage{amsmath}
"""
其中:
mpl.rc('text', usetex=True)
:这行代码将 Matplotlib 配置为使用 LaTeX 引擎来渲染文本。这使得你可以使用 LaTeX 语法来定义文本的样式和格式。LaTeX 是一个强大的排版系统,特别适合处理复杂的数学公式和符号。
mpl.rcParams['text.latex.preamble']=[r"\usepackage{...}"]
:这行代码指定了一个 LaTeX 的前导部分,用于加载额外的 LaTeX 包。在这个例子中,加载了 amsmath 包,它提供了许多增强的数学功能,如更多的数学符号和公式格式选项。
配置属性:text.latex.preamble
属性简介
在 text.latex.preamble
中,你可以添加许多 LaTeX 包来扩展 Matplotlib 渲染 LaTeX 文本的功能。以下是一些常用的 LaTeX 包及其功能:
-
amsmath
: 提供增强的数学公式支持和环境,例如对齐、分数和矩阵。\usepackage{amsmath}
-
amssymb
: 提供额外的数学符号,例如黑板粗体字母和额外的符号。\usepackage{amssymb}
-
amsfonts
: 提供额外的数学字体,例如黑板粗体字母和其他特殊符号。\usepackage{amsfonts}
-
mathrsfs
: 提供花体数学字体,用于书写特殊的数学符号。\usepackage{mathrsfs}
-
siunitx
: 用于处理和格式化单位和数值数据。\usepackage{siunitx}
-
xcolor
: 提供颜色支持,可以为文本和图形添加颜色。\usepackage{xcolor}
-
geometry
: 控制页面布局和边距设置。\usepackage{geometry}
-
graphicx
: 提供图像处理功能,例如缩放、旋转图像。\usepackage{graphicx}
-
tikz
: 提供用于创建图形和图表的强大工具。\usepackage{tikz}
-
babel
: 提供多语言支持,根据所选语言调整排版规则。\usepackage[english]{babel}
这些包可以通过在 text.latex.preamble
中添加相关的 \usepackage
命令来加载。例如:
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = r"""
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{xcolor}
"""
你可以根据需要选择并组合这些包,以满足特定的排版和渲染需求。
amsmath
可以搭配:
\boldsymbol{}:斜体,加粗希腊字符和文本
textcomp
可以使用:
\textmu
非LaTeX 模式
配置属性:mpl.rcParams[‘…’]
mpl.rcParams['font.family'] = 'serif'
mpl.rcParams['font.serif'] = ['Times New Roman']
mpl.rcParams['font.weight'] = 'bold'
mpl.rcParams['xtick.labelsize'] = 20
mpl.rcParams