當前位置: 妍妍網 > 碼農

1行程式碼搞定Latex公式編寫,這個4.6M的Python小外掛程式,堪稱論文必備神器

2024-01-28碼農

來源:機器學習演算法與自然語言處理

寫論文時,手敲成堆的計算公式,被虐到頭禿?

做講課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就不支持這個工具的渲染。

但除了這些小限制外,這個工具包不失為一個強大的公式生成器,論文中需要生成的公式基本都夠用了。

還有一些其他的細節功能,可以戳下方傳送門檢視。

作者介紹

這份工具的制作者Connor Ferster,並不是電腦專業出身,不過他對Python很感興趣。

據Conner在社交媒體上的自我介紹,他目前是一名土木工程系的學生。

所以,土木工程論文需求的計算量可能真挺多的?

傳送門

工具包連結:
https://github.com/connorferster/handcalcs

加入知識星球【我們談論數據科學】

600+小夥伴一起學習!