1. 程式人生 > 其它 >從維基百科複製數學公式

從維基百科複製數學公式

技術標籤:讓電腦更好用的python

利用python複製wiki百科上的數學公式

平時自己用markdwon做數學筆記的時候想要直接從wiki上覆制一些筆記,但是複製下來以後貼上到md上卻發現數學公式部分被重複了兩遍。而且沒有行內公式的識別符號,修改非常費時費力。

比如下面這段,
在這裡插入圖片描述

我複製到md的效果是這樣

對於任意的正實數{\displaystyle \varepsilon >0}\varepsilon >0,存在一個正實數{\displaystyle \delta >0}\delta >0使得對於任意定義域中的{\displaystyle x\in \mathbf {I} }x \in \mathbf{I},只要{\displaystyle x}x滿足{\displaystyle c-\delta <x<c+\delta }c-\delta<x<c+\delta,就有{\displaystyle f(c)-\varepsilon <f(x)<f(c)+\varepsilon }f(c)-\varepsilon <f(x)<f(c)+\varepsilon成立。

然後我寫了一段程式碼修改後md中顯示是這樣的

對於任意的正實數 ε > 0 \varepsilon >0 ε>0,存在一個正實數 δ > 0 \delta >0 δ>0使得對於任意定義域中的 x ∈ I x\in \mathbf {I} xI,只要 x x x滿足 c − δ < x < c + δ c-\delta <x<c+\delta cδ<x<c+δ就有 f ( c ) − ε < f ( x ) < f ( c ) + ε f(c)-\varepsilon <f(x)<f(c)+\varepsilon

f(c)ε<f(x)<f(c)+ε成立

下面是程式碼


import pyperclip

old=pyperclip.paste()
# old='對於任意的正實數{\displaystyle \\varepsilon >0}\\varepsilon >0,存在一'
flag=0
new=''
print(old)
i=0
subs=''
# for i in range(len(old)):
while i <len(old):
    ch=old[i]
    if flag>0: 
        subs=''.join([subs,ch])
        flag=
flag-(ch=='}')+(ch=='{') if flag==0: # 結束displaystyle {} subs=''.join(['$',subs[0:len(subs)-1].rstrip(),'$']) new=''.join([new,subs]) i=i+len(subs)-2 # 跳過後邊的公式 subs='' else: if old[i:i+len('{\\displaystyle')]=='{\\displaystyle': flag=1 i=i+len('{\\displaystyle') else: new=''.join([new,ch]) #常規 i=i+1 pyperclip.copy(new) print(new)

當然,開啟命令再呼叫檔案也很不方便。

我是先把一個資料夾放到環境變數裡。建立了bat檔案來呼叫上述程式碼。

就可以一鍵完成上面的功能,不影響記錄的流暢度。