從維基百科複製數學公式
阿新 • • 發佈:2020-12-09
技術標籤:讓電腦更好用的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}
x∈I,只要
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檔案來呼叫上述程式碼。
就可以一鍵完成上面的功能,不影響記錄的流暢度。