这学期上课要用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数学公式转换器相关推荐

  1. typora中latex数学公式的使用

    latex是一种排版方式,属于那种上手难度大但是用起来都说好的一种排版方式,功能上类似于word但是使用方式完全不一样的. typora自带latex公式编辑,还是比较方便的,但是关于latex的介绍 ...

  2. Latex 数学公式使用入门

    Latex 数学公式使用示例 Latex 数学公式命令中,数学符号都使用反斜杠(backslash, '\')转义英文缩略词 , 一些简单的数学符号命令: 其使用大括号(curly braces, ' ...

  3. 在博客里轻松使用LaTeX 数学公式[转]

    笔者最近的博文有不少数学相关内容,发现利用一些网上服务.jQuery和CSS,可以更轻松地在博客里使用语法排版方程式.是基于的排版系统.而就是美国著明计算机教授高德纳(Donald E. Knuth) ...

  4. markdown下编辑latex数学公式

    在利用为知笔记编写笔记的时候,有时需要用的markdown,只要把文件名加上后缀.md,就可以使用markdown语法,以下介绍在markdown下编辑latex数学公式. 使用LaTeX写公式的基本 ...

  5. MarkDown(七)——LaTeX数学公式符号标记

    前言:在涉及到一些数学公式计算时候,一些复杂的数学符号公式经常无法展示,在此整理下常用Markdown中的LaTex数学公式,便于使用时查询. 公式标记符   在Markdown中的数学公式需要使用一 ...

  6. 如何看懂论文公式:LaTex数学公式分析

    说到如何看懂论文公式,部分原因是有些公式符号与平时手写体还是有写差别的,博主常常一下子反应不过来, 当然最基本的,还是对于专业知识的不熟悉,这个直接温习公式就好 下面是关于LaTex数学公式以及书写代 ...

  7. Markdown 中 LaTex 数学公式命令

    转自:https://www.jianshu.com/p/0ea47ae02262 引言 在学习理工科知识或者是目前火热的深度学习等过程中,会涉及到大量的数学公式,并且考虑到准备以 Markdown ...

  8. typora中插入LaTeX数学公式

    typora中插入LaTeX数学公式 本文内容参考https://blog.csdn.net/baidu_38060633/article/details/79183905 在Typora上进行了实验 ...

  9. 最全LaTeX 数学公式、字母符号、上下标、列表矩阵、公式注释、分数二进制数、分割字符、逻辑集合论、否定符号等

    最全LaTeX 数学公式.字母符号.上下标.列表矩阵.公式注释.分数二进制数.分割字符.逻辑集合论.否定符号等 1. 公式示例 E(T)=∑(p,q)ϵκ∣∣p−Tq∣∣2E(T)=\sum_{(p, ...

  10. CSDN-Markdown LateX 数学公式

    CSDN-markdown编辑器支持基于MathJax编写LaTeX数学公式,这篇文章就是介绍如何使用LaTeX语法在 CSDN 编写数学公式. 1 公式分类 LaTeX 的数学公式有两种,行内公式和 ...

最新文章

  1. (数据结构与算法)单链表与双链表增删改查的实现。
  2. 各大公司容器云的技术栈对比
  3. 使用思科模拟器Packet Tracer与GNS3配置IPv6隧道
  4. C++关键字速查手册
  5. MS SQL 监控数据/日志文件增长
  6. CSS3图片跳动效果
  7. mysql 重启_解决MYSQL死机,定时重启MYSQL,wdcp计划任务设定方法,
  8. 生物信息学中的机器学习:使用K-Means和PCA进行基因组序列分析 COVID-19接下来如何突变?
  9. java 反编译 调试_eclipse 反编译 jar 中 .class 并打断点调试
  10. Linksys E 刷Tomato shibby
  11. 基于SSM的高校学生宿舍报修管理系统
  12. EF Core注意事项
  13. CTeX下载安装步骤
  14. 摆脱客户端?网页发起直播势在必行!
  15. 编写代码实现简单的扫雷游戏
  16. 独家揭秘:小程序销售额破千万,他们怎么做到的
  17. 2020春招 / 2021秋招阿里、腾讯、字节、快手、美团 JAVA 开发岗面试高频问题总结
  18. c35是什么意思_混凝土标号怎么来的?C30_C25_C35_都是什么意思
  19. android pad office,安卓平板电脑也可以使用Office应用了
  20. 辽宁省葫芦岛市谷歌高清卫星地图下载

热门文章

  1. my eclipse 破解通用步骤
  2. cad页面布局快捷键_cad设置快捷键(cad快捷键在哪里修改设置)
  3. 查看本机外网IP地址
  4. C#设计模式之5——生成器模式
  5. STC单片机代码烧录
  6. 2022下半年,系统架构师论文写作相关知识点
  7. 【蓝桥杯单片机(18)】第七届省赛-模拟风控制系统
  8. 什么是tftp服务器? 如何搭建tftp服务器?
  9. 获取棋盘格与标准模板在扫描仪上不同位置图片
  10. 7-zip压缩解压软件.html,7-Zip 压缩率比较高的压缩软件 17.01 美化优化版