前一段时间承包了西电爱数社数学竞赛试题模版的编写,但是用LaTex编写很多复杂的操作都很不方便,尤其是是要用变量的话,虽然LaTex是原生支持的,但是使用起来跟一般编程语言还是差太多了,于是我寻找了一下用编程编写LaTex的方法,就发现了Pylatex。大概总结了下它相对于一般LaTex编写的优势。结构比latex清晰。

可以使用编程的逻辑写论文。

可以使用Python里面很多优雅的操作。

表格、图等东西更方便。

在编写竞赛试题的过程中,渐渐熟悉了Pylatex,也渐渐发现了一些它的弊端,在使用LaTex编写论文的过程中,虽然整体结构的编写更容易了,但是在还是有几个方面不太舒服。很多时候要在Python中使用大段的文字

如果你从网上找一些现成的latex代码段复制过来会造成同一个命令有些使用Python对象,有些使用纯LaTex代码,最后代码会非常混乱。

依然不能很高效的多人合作编写。

于是我在使用过程中对Pylatex代码进行了一些优化,并自己写了一个库(PyTex)来解决这些问题,正巧近期西电要举办线上的数模校赛,于是专门针对数模进行了一波优化,基本解决了上面的几个问题。将所有大段文字编写全部移植到MarkDown端,解决了Python端需要大段文字的问题。

基本实现MarkDown转换成LaTex代码的功能,不必寻找LaTex的代码块,可以直接找md代码块了。

可以通过将论文分成不同的md,分给不同的人编写,甚至可以用git同步实时预览。

当然PyTex还有一个更重要的优势就是是Pylatex已经停止更新了,而PyTex才刚刚开始更新,以后还会加很多功能(当然也有可能直接鸽了)。下面来介绍一下PyTex。

安装

这个项目使用 Python 开发,请确保你本地安装了它。

建议使用pip安装本库。

$ pip install bone-pytex

使用说明

使用时,你必须创建一个文档实例。

from pytex import MathDocument

doc = MathDocument('数学建模', packages=["amsmath", "graphicx", "amssymb", "cite"],

standard="GJS", preface=False)

如果你使用了默认的标准页,可以通过命令添加队伍信息

doc.set_information(problem_num="A", team_num="0001", school_name="最强大学",

member_names=("a", "b", "c"), supervisor="teacher", date=(2020, 4, 20))

你可以将md文档转换为latex

from pytex.utils import md2tex, MarkDown

latex_code1 = md2tex(path="md/abstract.md")

latex_code2 = md2tex(file=open("md/abstract.md", 'r', encoding='UTF-8'))

latex_code3 = MarkDown("md/abstract.md")

你可以在文档中添加标题、摘要、目录。

doc.add_title()

keys = ["出租车资源配置", "供求匹配模型", "缓解程度判断模型", "分区域动态实时补贴方案"]

doc.add_abstract(latex_code, keys)

doc.add_toc()

你可以在文档中添加 使用固定格式编写的md文档 作为一个section。

doc.add_section(path="md/wtcs.md")

你可以在文档中添加指定标题和内容的 section。

doc.add_section(title="符号说明", content="大家好啊")

你可以在文档中添加变量,将会自动添加到变量表中,同时还可以使用符号转化器将其转换为latex代码

from pytex.utils import SymbolTransformer

from pylatex import NoEscape

x = doc.add_var("x", NoEscape("这是一个优秀的$x$"))

st = SymbolTransformer()

formula, name = st.sym2tex((x**2+7)*5)

最后,你可以生成tex文档,或者pdf文档

doc.generate_pdf('resources/math', compiler='XeLatex', clean_tex=False, clean=False)

特色功能提供了试卷编写模块,详情见pytex/exam/README.md。

支持Markdown到LaTex的转换。

针对数模进行了大幅度优化,提供了模板。

支持定义局部操作(废弃)。

计划实现功能神经网络结构可视化,输入处理形状变换可视化。

Python端编辑公式。

Python端添加文献。

图制作。

代码仓库

GitHub: PyTex

latex支持python吗_用MarkDown和Python编写LaTex相关推荐

  1. 零基础学python 视频_全网最全Python视频教程真正零基础学习Python视频教程 490集...

    Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python Web开发进阶课程,手把手教你用Python开发完整的商业 ...

  2. 3 x 10的python表达式_这道数学题用PYTHON编程语言怎么写? 编程语言python是用

    我觉着,这个应该这样解决比较符合计算机解题思路. 下面的回答的,思考的东西太多. # -*- coding: utf-8 -*- __author__ = 'lpe234' __date__ = '2 ...

  3. 为什么要学python语言_我们为什么要学习Python语言?

    原标题:我们为什么要学习Python语言? 聊到我们为什么要学习Python语言?小编不禁又想起大佬潘石屹准备开启Python学习旅程时所发布的微博. 我们为什么要学习Python语言? 在农业社会时 ...

  4. python编辑器_推荐一款Python编辑器,集Pycharm和Sublime优点于一身的王者

    编程里面的编辑器就像是武林大会里面的高手,每一年都有新秀,黑马出现!比如有练习霸道的天罡之气的榜首Pycharm,力量雄厚霸道战斗力极强,但是对斗气消耗很大,占内存大而且启动速度有点慢!还有练习灵巧的 ...

  5. anaconda3对应的python版本_利用SWIG实现Python调用C/C++!速度快就算了,代码量还特少!...

    SWIG简介 SWIG是Simplified Wrapper and Interface Generator的简称,它是一个能将C和C++的程序与其他各种高级语言诸如Perl,Python,Ruby和 ...

  6. python图像分类_用于实现用python和django编写的图像分类的Keras UI

    KerasUI是一种可视化工具,可以在图像分类中轻松训练模型,并允许将模型作为服务使用,只需调用API. https://github.com/zeppaman/KerasUI 主要特点: 用oaut ...

  7. 计算机导论python知识点_如何系统地自学 Python?

    我是自学的Python.从对Python一无所知,到在博客上写Python相关的系列文章(Python快速教程),前后有将近三年的时间.期间有不少门槛,但也充满乐趣.乐趣是自学的最大动力.Python ...

  8. pythoncookbook和流畅的python对比_为什么你学Python效率比别人慢?因为你没有这套完整的学习资料...

    以下资源免费获取方式! 关注!转发!私信"资料"即可免费领取! 入门书籍 1.<Python基础教程>(Beginning Python From Novice to ...

  9. 有什么手机python编辑器_好用的Python编辑器有哪些?

    当我们学习Python语言的时候,选择一款合适的编辑器是非常重要的,可以更好的提高我们的工作效率,那么好用的Python编辑器有哪些?我们一起来看看吧. Python的编辑器有很多,比如说:Subli ...

最新文章

  1. Spring Security教程 Vol 9. AccessDecisionManager组件介绍
  2. python三层装饰器-Python自动化开发学习4-装饰器
  3. Error: Visual Inheritance is currently disabled because the base … (NET CF)
  4. php连接MYSQL(1)
  5. 第三方免费开放API 获取用户IP 并查询其地理位置
  6. MYSQL技术连环斩-MYSQL简述
  7. fopen后面参数对文件操作的相应关系
  8. 我真的还是18岁的那个我
  9. python移动文件到新的文件夹并重命名
  10. 20162328WJH实验五网络编程与安全实验报告
  11. 正则去除html标签和空字符,正则表达式清除空格和html标签中的 空格
  12. jca 实例 java_采用jca分析javacore文件示例
  13. 使用GeoGebra绘制三角形的外接圆和内切圆
  14. 华为鸿蒙目标一年跨过生死线
  15. 纯JS+HTML+CSS实现表格增删改查翻页--模板文件管理
  16. 微信小程序怎么设置全局背景颜色?
  17. TCP与UDP的区别?
  18. [论文写作笔记] C8 讨论用于增加论文厚度
  19. 大宗交易数据挖掘(一)
  20. 人工智能Java SDK:中文翻译为英文

热门文章

  1. Java依赖多个版本,java – Gradle中的多个依赖项版本
  2. Java数据结构和算法(四)--链表
  3. CAGradientLayer简介 实现颜色渐变
  4. 织梦手机站搜索结果显示为电脑站的搜索结果模板的解决方法
  5. 查看端口占用,并解除占用
  6. android 第三方框架
  7. [转载]Android系统上(mv不可用)cp命令的替代方法
  8. [文摘20071008]全国软考相关-计算机技术与软件专业资格(水平)考试
  9. 在XP下,如何使指定的用户在登录界面可见
  10. 如何建立个人创业的基石