LaTex数学公式转图片,不依赖在线服务,真正Python实现

下午安装了一个pylatex模块,打算将LaTex语法描述的数学公式转为图片。磕磕绊绊读了半天文档,发现pylatex属于重型武器,写起来不够简洁。网上搜了一下,CSDN上现成的Python代码,只是不免费,要11个C币。摸摸兜里,还有些散碎银子,就顺手买了一个。下载之后,一读源码,居然只是封装了一个http请求,图片是在线生成的!这简直就是抢劫啊,太没有职业道德了!

花了一分钟,调整一下情绪,琢磨着还是自己动手写一个吧。很快,10行代码,LaTex数学公式转图片就完成了。尽管稍显简陋,用起来还蛮爽。如果需要颜色、透明度啥的,请自己添加吧。

# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

def formula2img(str_latex, out_file, img_size=(5,3), font_size=16):
    fig = plt.figure(figsize=img_size)
    ax = fig.add_axes([0, 0, 1, 1])
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
    ax.set_xticks([])
    ax.set_yticks([])
    plt.text(0.5, 0.5, str_latex, fontsize=font_size, verticalalignment='center', horizontalalignment='center')
    plt.savefig(out_file)
    #plt.show()
    #print('OK')
    
if __name__ == '__main__':
    str_latex = r'$10^x$'
    formula2img(str_latex, r'd:\f1.png', img_size=(3,2), font_size=64)
    
    str_latex = r'$s=\frac{1-z^{-1}}{T}$'
    formula2img(str_latex, r'd:\f2.png', img_size=(5,3), font_size=64)
    
    str_latex = r'$H(z)=\frac{Y(z)}{X(z)}=\frac{1}{RC{\frac{1-z^{-1}}{T}+1}}=\frac{T}{RC(1-Z^{-1})+T}$'
    formula2img(str_latex, r'd:\f3.png', img_size=(18,3), font_size=64)
    
    str_latex = r'$Y(n)=(\frac{1}{1+\frac{RC}{T}})X(n)+(\frac{\frac{RC}{T}}{1+\frac{RC}{T}})X(n-1)$'
    formula2img(str_latex, r'd:\f4.png', img_size=(18,3), font_size=64)

来看看输出的效果:

LaTex数学公式转图片,不依赖在线服务,真正Python实现_第1张图片
LaTex数学公式转图片,不依赖在线服务,真正Python实现_第2张图片

LaTex数学公式转图片,不依赖在线服务,真正Python实现_第3张图片

LaTex数学公式转图片,不依赖在线服务,真正Python实现_第4张图片

你可能感兴趣的:(python论道,python,Latex)