latex数学公式转换器
这学期上课要用latex写数理逻辑作业,十分烦人,因为texstudio的非键盘数学公式写起来实在是太烦人了,又臭又长,所以自己用py写了一个小的latex数学公式转换器。
不定期更新。目前是V2.0
简单介绍一下功能:
输入:一行要转换成latex公式的自然语言字符串,所有非公式部分必须为纯中文
输出:可能多行(如果有\newline的话)变成了latex公式的字符串
输入过程可以重复进行,不必每输入一次就重启一次程序
样例输入:12对任意命题A,A|=t,则t->h \n
样例输出:\newline \n \indent \n 对任意命题$A$,$A \models t$,则$t \leftarrow h$ \n
功能实现顺序:
1.在字符串最开头写1会转换为\newline \n
2.在字符串开头的1后面写2(可以没有1)会转换为\indent \n
3.程序会自动将除了1、2以外的字符串按照中文/非中文的区别分段(注意,中文句号和逗号算入中文),然后对所有非中文的部分两端加上"$"
4.通过修改程序内部的表ls1可以自定义某些翻译方式,如将输入中的英文laplace翻译为$\bigtriangle$,将>=翻译为$\leq$,但注意目前只能实现英文/字符串的翻译(否则会和中文区分自动添加$法混淆)
5.把字符串中出现过的所有flow(大/小写字母)自动转化为\mathscr{大写字母}(花体)(这个功能是为了数理逻辑作业特别设计的)
从某种意义上说,latex对空格的不敏感性让这个程序变得非常好写【滑稽】
def isChinese(chara):if('\u4e00'<=chara<='\u9fff' or chara==','or chara=='。'):return Trueelse:return Falsedef checkChinese(stra):start=0if(stra[start]=='1'):start+=1if(stra[start]=='2'):start+=1 ##避开这些玩意if(not isChinese(stra[start])):stra=stra[0:start]+'$'+stra[start:]lenth=len(stra)while(start<=lenth-1):if isChinese(stra[start]):if(start+1==lenth):breakelif(isChinese(stra[start+1])):start+=1else:stra=stra[0:start+1]+'$'+stra[start+1:]start+=2else:if(start+1==lenth):##是最后一个stra=stra+'$'breakelif(isChinese(stra[start+1])):stra=stra[0:start+1]+'$'+stra[start+1:]start+=2else:start+=1lenth=len(stra)return stradef checkflower(stra):templs=stra.split("flow")for i in range(1,len(templs)):templs[i]="\mathscr{"+templs[i][1].upper()+"}"+templs[i][3:]stra="".join(templs)return stradef indent(stra):newline=0indent=0if(stra[0]=='1'):newline+=1stra=stra[1:]if(stra[0]=='2'):indent+=1stra=stra[1:]if(indent):stra="\indent\n"+straif(newline):stra="\\newline\n"+strareturn strawhile True:##rules:[简写,意义,latex全称],可以自行修改,但是注意简写不要重复ls1=[##无需加括号划定范围["exists", "存在", "\exists"],\["~","非","\sim"], \["not", "非", "\sim"], \["or","或","\\vee"],\["and","与","\wedge"],\["<->","重言","\leftrightarrow"],\["<=>","等价","\Leftrightarrow"],\["->","则","\\rightarrow"],\[">=","大于等于","\geq"],\["<=","小于等于","\leq"], \["=\=","不等于","\\neq"],\["laplace", "拉普拉斯算子", "\\bigtriangleup"], \["grad", "梯度", "\\bigtriangledown"], \["*", "乘", "\\times"], \["`", "瞥", "^{'}"], \["pet", "偏导", "\partial"],\["|-","推出","\\vdash"],\["|=","蕴含","\models"],\##["T'","Gamma","\Gamma^{'}"],\##["T","Gamma","\Gamma"], \["any", "任意", "\\forall"],\["\=/=","不满足","\\nvDash"]##需要加括号划定范围,还没想好怎么写,可能要加函数##["div", "{x}div{y}:{x}除以{y}", "\\frac{x}/{y}"], \##["len", "len{x}:x的模长||x||", "\\left \| \\right \|"]]for i in ls1:print("在输入中请用{}以表示{}".format(i[0],i[1]))print("在字符串前段增加1可以换行")print("在字符串第二位增加2可以缩进")print("在字符串中空格代表$")while 1:a=input("")a=checkChinese(a)for i in ls1:a=a.replace(i[0],i[2]+" ")a=checkflower(a)a=indent(a)print(a)
latex数学公式转换器相关推荐
- typora中latex数学公式的使用
latex是一种排版方式,属于那种上手难度大但是用起来都说好的一种排版方式,功能上类似于word但是使用方式完全不一样的. typora自带latex公式编辑,还是比较方便的,但是关于latex的介绍 ...
- Latex 数学公式使用入门
Latex 数学公式使用示例 Latex 数学公式命令中,数学符号都使用反斜杠(backslash, '\')转义英文缩略词 , 一些简单的数学符号命令: 其使用大括号(curly braces, ' ...
- 在博客里轻松使用LaTeX 数学公式[转]
笔者最近的博文有不少数学相关内容,发现利用一些网上服务.jQuery和CSS,可以更轻松地在博客里使用语法排版方程式.是基于的排版系统.而就是美国著明计算机教授高德纳(Donald E. Knuth) ...
- markdown下编辑latex数学公式
在利用为知笔记编写笔记的时候,有时需要用的markdown,只要把文件名加上后缀.md,就可以使用markdown语法,以下介绍在markdown下编辑latex数学公式. 使用LaTeX写公式的基本 ...
- MarkDown(七)——LaTeX数学公式符号标记
前言:在涉及到一些数学公式计算时候,一些复杂的数学符号公式经常无法展示,在此整理下常用Markdown中的LaTex数学公式,便于使用时查询. 公式标记符 在Markdown中的数学公式需要使用一 ...
- 如何看懂论文公式:LaTex数学公式分析
说到如何看懂论文公式,部分原因是有些公式符号与平时手写体还是有写差别的,博主常常一下子反应不过来, 当然最基本的,还是对于专业知识的不熟悉,这个直接温习公式就好 下面是关于LaTex数学公式以及书写代 ...
- Markdown 中 LaTex 数学公式命令
转自:https://www.jianshu.com/p/0ea47ae02262 引言 在学习理工科知识或者是目前火热的深度学习等过程中,会涉及到大量的数学公式,并且考虑到准备以 Markdown ...
- typora中插入LaTeX数学公式
typora中插入LaTeX数学公式 本文内容参考https://blog.csdn.net/baidu_38060633/article/details/79183905 在Typora上进行了实验 ...
- 最全LaTeX 数学公式、字母符号、上下标、列表矩阵、公式注释、分数二进制数、分割字符、逻辑集合论、否定符号等
最全LaTeX 数学公式.字母符号.上下标.列表矩阵.公式注释.分数二进制数.分割字符.逻辑集合论.否定符号等 1. 公式示例 E(T)=∑(p,q)ϵκ∣∣p−Tq∣∣2E(T)=\sum_{(p, ...
- CSDN-Markdown LateX 数学公式
CSDN-markdown编辑器支持基于MathJax编写LaTeX数学公式,这篇文章就是介绍如何使用LaTeX语法在 CSDN 编写数学公式. 1 公式分类 LaTeX 的数学公式有两种,行内公式和 ...
最新文章
- (数据结构与算法)单链表与双链表增删改查的实现。
- 各大公司容器云的技术栈对比
- 使用思科模拟器Packet Tracer与GNS3配置IPv6隧道
- C++关键字速查手册
- MS SQL 监控数据/日志文件增长
- CSS3图片跳动效果
- mysql 重启_解决MYSQL死机,定时重启MYSQL,wdcp计划任务设定方法,
- 生物信息学中的机器学习:使用K-Means和PCA进行基因组序列分析 COVID-19接下来如何突变?
- java 反编译 调试_eclipse 反编译 jar 中 .class 并打断点调试
- Linksys E 刷Tomato shibby
- 基于SSM的高校学生宿舍报修管理系统
- EF Core注意事项
- CTeX下载安装步骤
- 摆脱客户端?网页发起直播势在必行!
- 编写代码实现简单的扫雷游戏
- 独家揭秘:小程序销售额破千万,他们怎么做到的
- 2020春招 / 2021秋招阿里、腾讯、字节、快手、美团 JAVA 开发岗面试高频问题总结
- c35是什么意思_混凝土标号怎么来的?C30_C25_C35_都是什么意思
- android pad office,安卓平板电脑也可以使用Office应用了
- 辽宁省葫芦岛市谷歌高清卫星地图下载