萧箫 发自 凹非寺量子位 报道 | 公众号 QbitAI
写论文时,手敲成堆的较量争论公式,被虐到头秃?
做授课PPT时,几十页的较量争论推理公式,恨不得直接手写摄影?
而今,解放双手的时刻来了,只需要把握一点Python语法,上面的公式只需要4行就可以生成,个中3行照样Python的较量争论公式。
△ 没错,就是这几行
这款名为handcalcs的东西包,生成Latex公式,但不用学Latex复杂的语法。
关头是,大小只有4.6MB,相当于Jupyter里一个小小的插件。
平方、平方根、分式、三角函数、脚注……这个插件的功能五脏俱全,不但能生成公式,还能较量争论后果。
别的,也有单元换算、名目调剂等功能。
来看看它的用法。
根本版:公式+较量争论
装上handcalcs插件后,Python就从一个无情的较量争论器,升级成了华丽的公式生成器。
在Python语法根本上,将较量争论公式显现为Latex名目,只需要加一行代码。
没错,这行代码就是%%render。
也就是说,假如你想要生成Latex公式,只需要在较量争论公式前加个%%render。
不但如此,Python还会主动帮你较量争论出后果。
以下图,先设好3个参数a、b、c的值,然后用Python列出表达式,在最前面放个%%render。
然后,列出x的表达式。
duang的一下,x用a、b、c表达的后果就显现了出来,而且还算出告终果。
不再用输入大年夜段Latex的复杂语法,生成复杂的较量争论公式了。
别的,假如想在函数中用这个东西插件,那就再加一行@handcalc(),但要留意return locals(),像如许:
生成的后果也是一样的。
别的,假如需要在公式中加上判定前提,系统也能生成。
至于积分甚么的,生成起来也无压力。
你认为这就结束了?
还早,生成Latex公式只是这个东西的根本用法。
进阶版:名目+单元换算
别的,handcalcs还带有名目调剂、非凡字符、单元换算等功能。
名目调剂
起首,是对参数名目标调剂。
假如你在某个公式中用到了好几个参数,但这些参数伶仃占一行会致使挥霍纸张可读性很差,那就尝尝加一行##Parameters。
如许,一行里面就可以放3个参数,而且不占良多地儿(减小行间距)。
当然,假如一行公式看起来太拥堵,还能调剂它的长短。
只需要在公式前面加上#long或#short,公式就可以按照你的情谊酿成几行,使推导历程看起来更清楚。
别的,假如不想在结论中给出较量争论后果,只保存参数公式,也是可以的,在前面加个#symbolic就行了。
以下图,本来的较量争论后果就会被隐去,取而代之的是只有参数的表达式。
△当你的数学师长教师想让你较量争论公式时
而假如想在公式后面加些注释(或「式3.1」这类器材),这里也能直接生成。
别的,对非凡字符的生成,这里也有方式。
非凡字符
假如你需要在字母右下角标些脚注,有的脚注可能还会「套娃」。
不要紧,用一个下划线就可以弄定,一个不够,就多来几个。
别的,有着各类希奇念法的希腊字母、还有非凡字符等,这里也能按照读音生成。
单元换算
最关头的是,handcalcs绝不但仅是数学较量争论式生成器,它还带有单元换算的功能。
假如是物理方面的较量争论公式,输入表达式和单元后,handcalcs能主动生成单元换算后果。
如许的话,就不用再费力地列量纲,看这两个单元相乘相除的后果事实是个啥了。
转成Latex语法
当然,假如你想将生成的Latex公式还原成Latex语法,粘回Latex中去用,这里也供应了异常便捷的操作。
只需要一个%%tex,handcalc就会主动帮你生成Latex语法。
小限制
不外,这个东西包也有一些小限制。
例如,并不是所有的数据类型都适用,例如Python的「容器数据」(collections)。
别的,也并不是Python中的所有公式都适用,例如for就不支持这个东西的衬着。
但除这些小限制外,这个东西包不失落为一个强大年夜的公式生成器,论文中需要生成的公式根基都够用了。
还有一些其他的细节功能,可以在GitHub上查看。
这份东西的建造者Connor Ferster,并不是较量争论机专业身世,不外他对Python很感爱好。
据Conner在社交媒体上的毛遂自荐,他今朝是一名土木匠程系的学生。