首先,对三者的一些基本功能做一个基本的评价;

LaTex Markdown TeXmacs
即时预览 Y
图片编辑 Y
数学支持 Y Y
代码插入 Y Y
网络模板 Y
扩展支持 Y
选择分页 Y
输出格式 Y
使用范围 Y Y

它们是什么?

LaTex(音译“拉泰赫”)是一种基于TeX排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)(同时这位也是写出了号称分布式计算领域内最难懂的论文“Paxos Made Simple”的那位)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档

Mardown是一种语言,一种可以被普通的文本编辑器编写的标志语言,通过一些简单的标志可以使得简单的文本内容具有一定的格式。Mardown本身的语法功能并不算强大,但是由于它强大的可扩展性,衍生出了极多的强大的版本和编辑器,它们在语法上基本兼容,只是在一些语法和渲染效果上有所改动。由于它的语法简洁明了,且功能比纯文本更强,因此有很多人使用它来写博客(最著名的例子应该是全球最大的同性交友平台GitHub)。它的强大之处一定程度上取决于你所使用的编辑器。这里使用Typora作为比较对象(本文同样使用该编辑器完成)

TeXmacs是一个所见即所得的编辑器. 你也许想到了LyX, TeXworks之类的工具, 但是TeXmacs和它们不一样—它并不依赖LaTeX. 他吸收了LaTeX的优点, 即文章的排版非常美观. 同时它又不同于LaTeX, 比如, 在TeXmacs里是没有“源文件”这个概念的. 另外它还有一些非常实用的特性(尤其是对于数学公式的支持), 可以极大的提高编辑效率。可以这么简单的理解,TeXmacs既有LaTex的排版优点,同时又吸收了许多Markdown编辑器的功能,算是二者的一个综合体。

功能横向对比

就文中第一个表所提到的功能给它们做一个横向对比,由于可能对三者的使用并没有完全掌握,所以可能有些粗糙:

1、即时预览

  • LaTex:LaTex具有非常多优秀的编辑器,但在使用这些编辑器之前首先要在电脑上安装TexLive等编译系统才可以使用,专门的编辑器有TexStudio、TexWork等,一些常见的IDE如VScode,Atom通过安装插件也可以实现撰写LaTex文档的目的。

    LaTex的编辑器均没有即时预览功能,这是由于本身其作为一个排版系统的特性所决定的。一般需要经过编译运行,产生PDF文件之后才能实现预览功能,一般编辑器会使用双栏排版,一栏LaTex书写源代码,另外一栏提供编译运行后的预览功能。

    如下图,overleaf是一个在线的LaTex编辑器(额外说明:该网站提供了一个富文本模式下的LaTex实时预览,但是效果马马虎虎)

  • Markdown:因为其语法的简单便捷,Markdown可以说是拥有世界上最广泛支持的标志语言之一。绝大多数的Markdown编辑器都提供了即时预览功能(部分IDE可能没有),在写作的过程中可以即时得到反馈。同时一般的编辑器也支持SourceCode模式,给你足够复古的体验。

    下图是Typora编辑器:

  • TeXmacs:与我而言,TeXmacs最让我惊艳到的一点就是它在书写数学公式的时候的实时预览功能,在使用LaTex的时候我就常常因为一个手抖打错数学公式中的一个符号,然后在那一长串的源码中玩起“一起来找茬”游戏,它的数学支持真的是非常棒,使用起来也相当方便,此外在Texmacs中存在着大量的快捷键,如果熟练掌握的话,写作效率会得到极大的提升,。

    但是实话说Texmacs的界面是真的太简陋了,而且不知道是我的机器的原因还是其他,我在是使用Texmacs写东西时总感觉偶尔有点卡顿,不够流畅。

2、图片编辑

  • LaTex:LaTex的图片编辑支持在这三者之中毫无疑问是独占鳌头的,这不但得益于LaTex本身的系统设计,更加要感谢所有LaTex背后的开发小组的努力(TIKZ等宏包的出现无疑扩展了LaTex的图文功能)。在LaTex中支持图片的绝对路径插入,插入的图片可以选择尺寸,位置和模式,而利用tikz宏包,我们可以利用其自带的命令迅速地作出我们所需要用到的图片。

    下面是利用tikz作图的一个代码实例

    \begin{tikzpicture}% draw the axis\draw[eaxis] (-\num,0) -- (\num,0) node[below] {$x$};\draw[eaxis] (0,-\num) -- (0,\num) node[above] {$f(x)$};% draw the function (piecewise)\draw[elegant,domain=-\num:-1/\num] plot(\x,{1/\x});\draw[elegant,domain=1/\num:\num] plot(\x,{1/\x});\draw[elegant,orange,domain=-\num:\num] plot(\x,{sin(\x r)});\end{tikzpicture}

  • Markdown:和LaTex相比,Markdown的图片编辑功能有些相形见绌。在Markdown里,插入图片较为简单,使用标记即可在所标志位置上插入图片,比较遗憾的问题就是在Markdown中并不能自主控制图片的大小,而是由markdown进行自动调整。

  • TeXmacs:Texmacs的图片编辑功能也较为强大,比较优秀的一点就是可以直接粘贴复制图片,无需使用路径即可。同时在Texmacs内也可使用其自带的功能进行直接画图,较LaTex来说,其可视化作图和LaTex不太一样的是,LaTex的.tex源文件中并不包含图片,因此需要单独存储图片。但是Texmacs中的图片是嵌入在.tm文档中,移动起来相当方便。

    下图是一个利用TM作图的一个例子:

3、数学支持

  • LaTex:LaTex的数学功能应当算是非常丰富的,其内置了许多的数学环境,并且通过配合宏包的使用可以对公式的间隔,字体,编号等进行非常多的调整。利用专用的LaTex编辑器中的快捷键可以避免输入和记忆太多的命令和数学符号。

    另外在LaTex中也可以相当简便快捷地插入表格,矩阵。

  • Markdown的数学功能较为薄弱,可以做到插入数学公式,但是功能性仍然比较 薄弱,虽然兼容LaTex的部分语法,但是仍然不是很适合大量的公式输入,不太建议用Markdown书写带太多公式的文档。但是MD的表格插入做得十分便利,就像在Word中插入表格一样方便,虽然表格的大小不能自由确定,但是其自适应做得不错。

    比如这条公式就是用MD键入的:∑ni=1i+sin(i)−−−−−−−√∑i=1ni+sin⁡(i)\sum_{i=1}^{n}\sqrt{i+\sin(i)}

  • Texmacs:Texmacs的数学功能在这三者之中应该是最方便,最适用的。这也是为什么大多数人喜欢用它来代替LaTex的原因之一。

4、代码插入

  • LaTex:关于插入代码,LaTex依赖专门的宏包来完成。利用特定的宏包,LaTex可以更改代码配色,控制代码样式,给代码加入专门的代码框。设置阴影等等。并且也可以插入伪代码或者算法。

    下图是一个LaTex的插入的代码的示例:

  • MD:MD的代码插入最方便的一点就是便利,只需要用到标志“`(三个连续的逃逸符号)即可插入代码框,在代码框内可以选择语言类型便于着色。显示效果如下图(取决于编辑器)

    import numpy as np
    import scipy as spyou = me = 1
    love  = (you and me)
    print("i love jiran!")
  • TM:TM同样可以做到插入代码,但是可供选择的插入类型并不算太多,但是也是囊括了主流的C++,R,Python等。并且可以快速插入伪代码,算法。

5、网络模板

  • LaTex:LaTex的各种各样的模板相当之多,不但有各个学校自己的学位论文模板而且网络上还有许多开发者留下的比如简历模板,报告模板,论文模板,而各大期刊对于投稿也有自己的格式要求,并提供了相应的LaTex 模板,无需用户自己设定字体格式。

    例如LaTex模板等,资源非常丰富。

  • MD:MD没有太多的模板,实际上也不需要太多的模板,因为语法简便所以用户可以自由地作出自己的模板。

  • TM:同样和LaTex类似,内置的就已经有许多模板了。

6、扩展支持

​ 这个功能基本上是只有LaTex独有,就是因为LaTex极强的拓展性,具有各种各样的宏包,随着功能拓展的需要不断进行更新。一般的LaTex IDE就会自带着专门的宏包管理器,比较方便。

​ 至于Texmacs,据我浅薄的认知,其IDE可以安装许多插件,但具体我没有怎么用过。

7、选择分页

​ LaTex可以选择按照系统排版自动分页,也可以安装自己的想法选择独占一页或者自由安排版面,可用性较强。相比之下MD有些相形见绌。Texmacs的文档似乎没有提到分页这一点,如果有什么黑科技可以实现的话,请一定要告诉我。

8、输出格式

​ LaTex的默认输出格式是PDF,但是通过下载一些特定的工具如Tex2Word等可以将.tex文件转变成word文件。

​ 而Markdown的话则是依赖于编辑器,对于我现在所用的Typora编辑器,在安装了Pandoc之后,输出格式有了非常多的选择例如PDF,HTML,Word,EPUB,LaTex,图像等。

​ 对于TeXmacs其不但支持导出PDF,也支持导出LaTex和HTML。

9、使用范围

​ 这里主要提到Markdown,其作为一门轻量级标志语言得到了无数人的青睐,因此基本上很多网站都会提供相应的支持,许多程序或者库函数的说明文档一般都是用Markdown写的。

各自的特色和适用场景

综上所有的内容,做一个简单的总结吧。

  • LaTex更加适合去写一些更为正式的论文或者比较复杂的文章和书籍。
  • Markdown的功能比较简便好用适合用来写一些blog甚至是比较简单的实验报告等
  • Texmacs如果你的文章需要进行大量的数学公式推导和书写,建议使用Texmacs,如果你可以忍受它非常简陋的界面的话。

LaTex,Mardown和TeXmacs:如何选择写作的正确姿势相关推荐

  1. Blender图解教程:刷权重时选择骨骼的正确姿势

    Blender2.81Alpha 如果只选择角色然后进入权重绘制模式,那么要选择骨骼的话只能在顶点组中选择,骨骼很复杂的时候,这样做非常低效. 正确的姿势应该是: 在物体模式下先选择骨骼再选择要刷权重 ...

  2. Effie :网文作者如何选择写作软件

    对比传统文学的"阳春白雪",如今的网络文学更为火爆.网络文学他更接地气,符合大众口味,同时也能引起读者的共鸣,满足读者的幻想."庆余年"等头部网络文学iP的大火 ...

  3. latex合理使用循环和判断选择语句进行绘图的例子

    当图形元素某些可重现时,在latex中合理使用循环和判断选择语句进行绘图,会非常省事. 下面给个的例子: %%============================================= ...

  4. latex缩进与对齐_LaTex学术写作——设置段落 行间距 段间距 文本对齐方式

    过去两个星期一直被作业折磨,公众号的更新就慢了下来.这个周末总算没作业了(虽然下周又要考试了),多出一个下午更新LaTex学术写作的科普文,今天就继续讲最基础的如何在LaTex中分段以及设置行间距和段 ...

  5. 学位论文写作的正确打开方式:程序员的理性与倔强

    本文纯属个人多年摸索.踩坑.填坑过程中总结的经验!适合本科生, 硕士生, 博士生乃至博士后! 关注公众号九天学者可免费获取最新资源:发消息latex模板或者word模板可获取资源链接️️️ 完成一篇博 ...

  6. Assignment写作怎么正确有效地阅读?

    小编之前已经详细地讲解了文献综述的功能.组成部分.收集途径和方法,本篇中就要讲到在Assignment写作收集好文献之后该怎样正确地有效地阅读. 一.阅读顺序 每个人会根据自己的Assignment写 ...

  7. 在C#中选择“.NET研究”正确的集合进行编码

    要选择正确的集合,我们首先要上海徐汇企业网站设计与制作了解一些数据结构的知识.所谓数据结构,就是相互之间存在一种或多种特定关系的数据元素的集合.结合下图,我们看一下对集合的分类. 上海闵行企业网站设计 ...

  8. 数据库备份恢复策略_如何根据备份策略选择和检查正确的数据库恢复模型

    数据库备份恢复策略 介绍 (Introduction) Following best practices, we should apply principles like segregation of ...

  9. 如何在软件开发行业选择一条正确的职业道路?

    当我进入软件开发领域时,我非常兴奋.我想要同时学习所有东西:游戏开发.移动开发.人工智能以及所有与之相关的内容.我把时间浪费在了写"hello world"和一些简单的程序上,使用 ...

  10. 请选择正确html,以下HTML标签中有两个是成对标签( )。[请选择2个正确答案]

    摘要: 标签CamtasiaStudio8 可导入的媒体素材不包括()海鲜如果含有细菌.对标答案寄生虫等,长时间加热就能保证食用安全.签请干贝是用哪种海鲜制作的... 标签CamtasiaStudio ...

最新文章

  1. 如何解决diff: /../Podfile.lock: No such file or directory 的问题
  2. JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例
  3. eclipse发布rest_在Eclipse中高效运行HTTP / REST集成测试
  4. 【渝粤题库】陕西师范大学700009 现代生物科技
  5. 数据结构学习一:概述
  6. React-native集成tfs自动发版问题
  7. SpringCloud工作笔记045---SpringCloud分布式服务部署常用端口
  8. Jenkins系列二通过Deploy war/ear to a container方式部署maven项目,maven聚合项目到Tomcat
  9. 在.Net中实现RichClient+Restful+JPA架构-探索实现
  10. C++实现windows平台下音频播放音量调节功能
  11. Word中部分内容出现乱码、不显示页码和目录
  12. python中的反三角函数_用公式计算反三角函数
  13. idea上添加,更改SVN或者Git进行更新和上传代码,怎么显示蓝色箭头绿色对号图标
  14. Matlab 中min(),min(min()),max(),max(max())的介绍和分析
  15. Win7下IIS安装PHP环境
  16. Minecraft Server 搭建手账
  17. vue-music 跨域获取QQ音乐歌单接口
  18. 【绊脚石】安装pycocotools和lap失败
  19. 产学交流 | 重庆理工大学计算机科学与工程学院信息管理系一行到访芝诺数据...
  20. R语言 第三方软件包的下载及安装

热门文章

  1. C语言百分号加字母%d%p%o%x%u%c%s%f%e%g代表作用
  2. autojs连连看脚本可视化
  3. Fabric开发(三) Ubuntu20.04.1快速搭建Fabric1.4.3 (排雷版)
  4. 数据库中违反外键约束的情况
  5. tsconfig.json文件配置参数的注解
  6. wordpress简约淘客主题风格附详细实例教程源码
  7. 零代码:如何使用吾来机器人实现表格问答?
  8. Unity3D 鼠标点击切换图片
  9. exe文件图标变成html,遭遇了一次exe文件图标丢失的问题
  10. IOS开发之——音乐播放器-音乐播放列表(04)