如何将豆包给定的公式文档生成Markdown文本?
简 介: 本文介绍了将豆包文本中的数学公式转换为Markdown兼容格式的方法。针对豆包公式与CSDN Markdown编辑器语法不兼容的问题,提供了Python解决方案:1)将单行公式标记替换为$符号;2)处理多行公式时去除换行符并合并;3)通过代码自动完成转换后复制到剪贴板。文中还以高斯函数傅里叶变换为例,展示了完整的公式推导过程,包括配方、变量代换和泊松积分应用,最终得出变换结果。该方法有效解决了公式显示问题,便于在Markdown环境中正确呈现数学内容。
关键词: 豆包公式,LaTex,Markdown
01 【豆包公式转换Markdown】

一、问题来源
我们看到在豆包中如果给出一些数学问题的求解, 其中包会包含着很多公式, 那么这些公式如果进行拷贝, 我们可以看到它遵循着thetext编辑语法, 下面将他们进行拷贝, 放置在CSDN的Markdown编辑器中。 很遗憾,可以看到在CSDN的 Markdown 编译器中, 这些公式都无法显示正常的格式,还是文本的情况。 那么问题来了,如何将这些公式进行修改, 使它们满足Markdown下的公式格式。

二、修改方式
这里呢给Python对于豆包给出的文本中公式修改方案。 假设豆包中拷贝的文本已经粘贴在字符串1中, 首先将其中的两个LaTex公式标记修改成Markdown的公式标记, 上面的两个是单行公式的标记, 把它替换成单个dollar的符号, 接下来,将多行公式的标记修改成两个dollar的符号。 但是这里要注意,在豆包中给出的多行公式, 它往往在将会将一个公式分解成多行, 因此首先呢先将公式前面的进行替换, 然后对于每个文档中带有后边公示结束符的进行挑选, 挑选之后呢,将其中的所有的回车符去掉。 由此也将原来的多行公式修改成单行公式文本, 将他们再合并在一起, 最终把所有的修改文档合并在一起之后。 拷贝到剪贴板, 粘贴在CSDN的Markdown编辑器中。

str1 = clipboard.paste()
if len(str1) == 0:
printf("No DouBao text !\a")
exit()
str2 = str1.replace('\\)', '$').replace('\\(', '$')
str2 = str2.replace('\\[\r\n', '$$') #.replace('\r\n\\]', '$$')
sdim = str2.split("$$")
for id,s in enumerate(sdim):
if s.find("\r\n\\]") >= 0:
ss = s.split("\r\n\\]")
ss[0] = ss[0].replace("\r\n", "")
sss = '$$'.join(ss)
sdim[id] = sss
str2 = '$$'.join(sdim)
clipboard.copy(str2)
time.sleep(.2)
tspsendwindowkey(csdn_title, "v", control=1, noreturn=1)
printf("\a")
我们看到经过修改之后,所有粘贴在CSDN上的文档中的公式都呈现出正确的编辑格式,这些格式满足Markdown下的关于公式的格式。

高斯函数的傅里叶变换完整推导过程
一、定义
标准高斯时域信号:
f ( t ) = e − a t 2 , a > 0 f(t) = e^{-a t^2},\quad a>0 f(t)=e−at2,a>0
傅里叶变换定义:
F ( ω ) = F [ e − a t 2 ] = ∫ − ∞ + ∞ e − a t 2 ⋅ e − j ω t d t F(\omega) = \mathcal{F}\big[e^{-a t^2}\big]=\int_{-\infty}^{+\infty} e^{-a t^2}\cdot e^{-j\omega t}\,dt F(ω)=F[e−at2]=∫−∞+∞e−at2⋅e−jωtdt
二、配方整理指数部分
合并指数:
F ( ω ) = ∫ − ∞ + ∞ e − ( a t 2 + j ω t ) d t F(\omega)=\int_{-\infty}^{+\infty} e^{-\left(a t^2 + j\omega t\right)} dt F(ω)=∫−∞+∞e−(at2+jωt)dt
对二次函数配完全平方:
a t 2 + j ω t = a ( t 2 + j ω a t ) a t^2 + j\omega t= a\left(t^2 + \dfrac{j\omega}{a}t\right) at2+jωt=a(t2+ajωt)
t 2 + j ω a t = ( t + j ω 2 a ) 2 − ( j ω 2 a ) 2 t^2+\frac{j\omega}{a}t=\left(t+\frac{j\omega}{2a}\right)^2 - \left(\frac{j\omega}{2a}\right)^2 t2+ajωt=(t+2ajω)2−(2ajω)2
代入:
a t 2 + j ω t = a ( t + j ω 2 a ) 2 − a ⋅ ( j ω ) 2 4 a 2 a t^2+j\omega t= a\left(t+\frac{j\omega}{2a}\right)^2 - a\cdot \frac{(j\omega)^2}{4a^2} at2+jωt=a(t+2ajω)2−a⋅4a2(jω)2
= a ( t + j ω 2 a ) 2 + ω 2 4 a = a\left(t+\frac{j\omega}{2a}\right)^2 + \frac{\omega^2}{4a} =a(t+2ajω)2+4aω2
因此积分变为:
F ( ω ) = ∫ − ∞ + ∞ e − a ( t + j ω 2 a ) 2 − ω 2 4 a d t F(\omega)= \int_{-\infty}^{+\infty}e^{-a\left(t+\frac{j\omega}{2a}\right)^2 -\frac{\omega^2}{4a}} dt F(ω)=∫−∞+∞e−a(t+2ajω)2−4aω2dt
常数项提出积分外:
F ( ω ) = e − ω 2 4 a ∫ − ∞ + ∞ e − a ( t + j ω 2 a ) 2 d t F(\omega)= e^{-\frac{\omega^2}{4a}}\int_{-\infty}^{+\infty}e^{-a\left(t+\frac{j\omega}{2a}\right)^2} dt F(ω)=e−4aω2∫−∞+∞e−a(t+2ajω)2dt
三、变量代换与泊松积分公式
令变量代换:
u = t + j ω 2 a ⇒ d u = d t u = t+\frac{j\omega}{2a} \quad\Rightarrow\quad du=dt u=t+2ajω⇒du=dt
复变积分中,高斯积分沿实轴平移复常数,积分值不变:
∫ − ∞ + ∞ e − a u 2 d u \int_{-\infty}^{+\infty} e^{-a u^2} du ∫−∞+∞e−au2du
利用泊松积分公式:
∫ − ∞ + ∞ e − k x 2 d x = π k , k > 0 \int_{-\infty}^{+\infty} e^{-k x^2}dx = \sqrt{\frac{\pi}{k}},\quad k>0 ∫−∞+∞e−kx2dx=kπ,k>0
取 k = a k=a k=a:
∫ − ∞ + ∞ e − a u 2 d u = π a \int_{-\infty}^{+\infty} e^{-a u^2}du = \sqrt{\frac{\pi}{a}} ∫−∞+∞e−au2du=aπ
四、代入得到最终结果
F ( ω ) = e − ω 2 4 a ⋅ π a F(\omega)= e^{-\frac{\omega^2}{4a}} \cdot \sqrt{\frac{\pi}{a}} F(ω)=e−4aω2⋅aπ
常用特例 1:单位高斯 a = 1 2 a=\dfrac12 a=21
f ( t ) = e − t 2 2 f(t)=e^{-\frac{t^2}{2}} f(t)=e−2t2
F ( ω ) = 2 π e − ω 2 2 F(\omega) = \sqrt{2\pi}\;e^{-\frac{\omega^2}{2}} F(ω)=2πe−2ω2
常用特例 2:归一化高斯 a = π a=\pi a=π
f ( t ) = e − π t 2 f(t)=e^{-\pi t^2} f(t)=e−πt2
F ( ω ) = e − π ω 2 F(\omega)=e^{-\pi \omega^2} F(ω)=e−πω2
👉 这是时域频域形式完全相同的自傅里叶变换高斯函数。
五、结论总结
F [ e − a t 2 ] = π a e − ω 2 4 a \boldsymbol{\mathcal{F}\big[e^{-a t^2}\big]= \sqrt{\frac{\pi}{a}}\; e^{-\frac{\omega^2}{4a}}} F[e−at2]=aπe−4aω2
核心关键点:
- 对指数二次项配平方;
- 利用高斯泊松积分;
- 复常数平移不改变高斯积分值,直接套用实积分公式即可完成推导。
※ 总 结 ※
本文给出了将豆包文本中的公式转换成Markdown公式的过程 。在CSDN博客中对于转换的Python核心程序代码也进行列出,大家可以使用并进行改进。

更多推荐



所有评论(0)