从vsc支持的md内嵌Latex到博客园支持的内嵌Latex
从vsc支持的正则到博客园支持的正则
问题
在vsc中,如果要在md内嵌Latex公式,单行应该是用小括号包围,多行是中括号;
而在博客园当中则应该使用dollar符,我们可以写一个脚本来进行转化
脚本
import re
def replace(input: str):
in_patterns = [r"\\\((.*?)\\\)", r"\\\[", r"\\\]", r"((.*?))"] # 最后一个用来特判博客园的情况
out_patterns = [r"$\g<1>$", r"$$", r"$$", r"( \g<1> )"]
with open(input, 'r') as file:
lines = file.readlines()
with open(input, 'w') as file:
for line in lines:
for i in range(4):
line = re.sub(in_patterns[i], out_patterns[i], line)
file.write(line)
if __name__ == "__main__":
input = "tmp.txt"
replace(input)
加第四个是因为,如果一个latex表达式被中文括号包围,不加空格隔开的话会渲染错误。
另外,vsc的搜索功能当中,$符号是特殊符号,如果需要字面量需要连打两个或者转义,但是在python的正则表达式当中,$符只是一个普通的字符。

浙公网安备 33010602011771号