昨天有粉丝在后台提问:“有没有办法用 Python 自动生成一些微积分或矩阵公式,我想打印出来做教辅材料?”

一、数学公式生成的 3 个核心痛点
在介绍具体方案之前,先明确一下我们到底要解决什么问题。不管你是老师、学生还是做技术文档的工程师,公式生成的需求基本逃不出这三个:
痛点 1:手动录入效率极低
Word、WPS 的公式编辑器本质上是"鼠标点选"式交互,每一个符号都要从面板找、点、插入。遇到需要批量生成(试卷、教材、公式手册),纯手工完全不现实。
痛点 2:导出格式受限
很多场景需要公式以图片形式嵌入 PPT、网页、打印材料。Word 里的公式对象导出为图片,要么截图模糊,要么需要额外装插件。
痛点 3:样式不统一
多个公式混排时,字号、字体、间距经常不一致。尤其是多人协作或者从不同来源拷贝的公式,排到一起非常难看。
二、 Python 搞定公式的三大神器
针对不同的教学场景,Python 社区提供了侧重点截然不同的三个库。
1. Matplotlib + LaTeX
很多人以为 matplotlib 只能画折线图和柱状图,其实它自带了非常强大的 LaTeX 渲染引擎。如果你只是想把公式保存为一张透明背景的高清图片,这是最快的方法。
适用场景: 生成单张公式图片,插入到 PPT、博客或试卷排版中。
核心优势: 原生支持 LaTeX 语法,可精细控制字体大小和图片尺寸。
import matplotlib.pyplot as plt# 这是一个高斯积分的 LaTeX 公式formula = r"$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$"# 创建一个无边框的画布fig = plt.figure(figsize=(4, 1))fig.text(0.5, 0.5, formula, fontsize=24, ha='center', va='center')# 隐藏坐标轴plt.axis('off')# 保存为高清透明图片(DPI=300 保证打印质量)plt.savefig("gauss_integral.png", transparent=True, dpi=300, bbox_inches='tight')

官网最新版:1.14.0
如果你不仅仅是想画个公式,你还想让 Python 帮你推导过程(比如求导、积分、化简),然后再把推导结果变成漂亮的公式。
适用场景: 编写大学数学讲义、自动生成带有详细解答步骤的练习题。
核心优势: 它是一个真正的符号计算系统(CAS),能把数学表达式自动转换成 LaTeX 源码。
from sympy import symbols, diff, integrate, exp, sin, oo, latexx = symbols('x')# 定义一个复杂的函数:e^(-x^2) * sin(x)f = exp(-x**2) * sin(x)# 1. 自动求导df = diff(f, x)# 2. 将求导结果自动翻译成 LaTeX 代码latex_code = latex(df)print(latex_code)# 输出: - 2 x e^{- x^{2}} \sin{\left(x \right)} + e^{- x^{2}} \cos{\left(x \right)}

3. Handcalcs
PyPI最新版:1.11.0(2026年1月发布)
这是一个极具特色、专为工程师和教师设计的库。你只需要写普通的 Python 赋值计算代码,它能自动渲染出带有详细代入过程的“手写风格”数学公式。
适用场景: 物理、土木工程的计算书报告,向学生展示变量是如何一步步代入公式的。
核心优势: 极大地降低了排版门槛,所见即所得。

Matplotlib:你已经有了现成的 LaTeX 代码,只需要把它变成一张高清图片去打印或插图,用它最稳。
SymPy:你需要让 Python 帮你推导、算微积分、解方程,并保证最后输出的公式排版准确无误,它是首选。
Handcalcs:你需要在 Jupyter Notebook 里做演示,给学生展示计算书的代入过程,它能让你事半功倍。
2026年3月编程语言排行:Python份额21.25%再创新低,C逆转C++,R与Perl双双崛起
Pandas 3.0 内存优化后,能打得过 Polars 和 DuckDB 吗?