这样一个标题可能不太准确,因为确实无法准确地解释什么叫“Linux下优秀的文本编辑器”。其实我这篇随笔主要是想探讨Markdown、LaTeX、MathJax,有兴趣的朋友可以继续往下看,同时别忘记了顺手点个赞。

引言

大家写文章用什么工具?Windows的记事本吗?肯定不会吧!一般人应该至少会用一个类似Word的“所见即所得”的可视化编辑器。理由:因为文章不仅仅只是文字嘛,它还包含有各种各样的格式,比如字体、字号、颜色、标题、列表等等。“所见即所得”编辑器提供的编辑方法确实是最朴素的编辑思想:当你想要改变某些文字的样式时,你只需要选中它,然后在各种菜单、对话框里设置它的格式即可。这种排版很美观、样式很丰富的文章,可以称之为“富文本”。

如果进行更深层次的思考,就会发现“富文本”存在很多缺点,特别是对于我们这些程序员、理工男来说更是这样。下面略举几例:

“富文本”编辑起来太慢了,写文章时,即要考虑文章内容,又要考虑文章格式,写几段字就要点半天鼠标;

“富文本”需要专业的编辑器来编辑和阅读,如果没有编辑器,或者编辑器不兼容,那只有欲哭无泪了;

“富文本”往往让形式取代逻辑,文章可能从外观上看各级标题的文字大小、缩进都很正确,但是逻辑上无法指定层级关系;

“富文本”中的格式信息太冗余了,淹没了文章的内容;

“富文本”对计算机不友好,存储格式不透明不说,也让基于文本行比较的工具(如diff之类)无用武之地。

所以,优秀的思想应该是这样的:

文章就应该存储为纯文本的格式,用任何工具都可以阅读和编辑;

该纯文本的内容即要适合人类阅读,也要计算机容易理解;

能正确指定文章各部分的逻辑结构;

内容和显示分离,作者只用考虑文章的内容和逻辑结构,而文章怎么显示得好看是专业的人和工具的事。

这就是我标题中说的“文本化编辑思想”。这种思想在计算机领域由来已久,并逐渐形成一种哲学。比如互联网上广泛使用的HTML、XML等,就是把信息储存为纯文本,用任何工具都可以阅读和编辑,并且能正确地指定内容的逻辑结构,而浏览器和CSS则控制文章如何显示。但是,HTML标签还是太多了,如果没有浏览器,完全靠人工脑补阅读起来还是太困难了。于是,就诞生了Markdown。

在文本编辑领域还有另外一个难题,那就是数学公式(或者其它类似数学公式的东西,比如乐谱),它们显示起来是二维的,而且其中使用的很多符号标准键盘根本无法输入,使用的字体和正文也不一样。好在Unix/Linux世界中,它们有一个比较好的解决方法,那就是LaTeX。当然,也有很多可视化的编辑器提供数学公式编辑的功能,比如Word的公式编辑器,比如TexMacs。但是正如前文所述,从优秀的“文本化编辑思想”来思考,最好的依然是LaTeX,因为使用LaTeX就是使用纯文本的方式输入数学公式,输入速度快,人和计算机都容易理解。LaTeX的思想影响广泛,很多编辑器都支持以LaTeX语法输入数学公式。要在网页上显示数学公式,则非MathJax莫属了,它是一个JavaScript库,可以识别网页中的LaTeX格式的数学公式并将其完美显示出来。博客园的数学公式支持用的就是这个。

Markdown的特点和工具

Markdown的宗旨就是“易读易写”,所以用Markdown语法写的文档,以纯文本的格式直接阅读也是非常方便的。如果对外观的要求非常高,就可以通过相应的工具将Markdown文档转化成HTML或者PDF。Markdown的语法非常简单,一般情况下一个多小时就学会了。参考地址在这里:Markdown语法说明(简体中文) http://www.linuxidc.com/Linux/2014-12/110960.htm。

目前,我在博客园中发博客基本上就是使用博客园的Markdown编辑器了。博客园的Markdown实现目前尚不完善,比如说没有即时预览功能、没有续行为段功能、对 `\`$\` `的解释不正确等等,但是用起来已经很舒服了,除了上传图片,基本上不用动鼠标。

为什么续行为段功能很重要?

续行为段,换一种说法就是忽略非空白行后面的换行符。这个功能很重要。如果没有这个功能,则一段文字就是一个很长很长很长的行,这对基于文本行比较的自动化工具(比如diff)来说,无疑是一个致命的打击。对于可以显示行号的编辑器来讲,行号也会很跳跃,让人看着不舒服。不过最重要的,就是用户永远也不知道那个换行究竟是它自己加上去的,还是因为电脑屏幕不够宽而自动换的行。

所以无论是Markdown还是LaTeX,都允许作者在源代码中任意换行,只要多行文字中没有空白行分割,就会把这些行合并成一个段落。在Markdown中如果要换行,则需在上一个行的末尾增加至少两个空格,而LaTeX也允许用户使用\\手动换行。那么问题来了,博客园为什么要去掉这么一个重要的功能呢?

在Linux桌面系统中,我使用ReText编辑Markdown文档。在Ubuntu中只需要sudo apt-get install retext即可以安装该软件,其效果如下:

配置ReText使用比较漂亮的CSS

刚安装的ReText对于文档的预览效果可能没有我上图中的那么好,应该是这样的:

上图中的引用和代码和正文的区分并不明显,而且整个文档的字体显示也不好看。之所以会出现这种情况,是因为没有给ReText指定相应的CSS文件。唯一的遗憾是ReText的某些配置无法通过菜单来完成,必须手动修改配置文件~/.config/ReText project/ReText.conf,我的配置文件如下图:

至于到哪里去找一个漂亮的CSS,那就仁者见仁、智者见智了。博客园中就有许多不错的可以借鉴。

开启数学公式支持

在网页中显示数学公式全靠MathJax。博客园开启数学公式支持非常简单,在后台管理页面中打个勾就行了。由于MathJax使用$来界定数学公式,所以文章或评论中有很多$符号的同学们就要注意了。想想看,我的文章中用$多吗?还真不少,介绍AT&T汇编语法时用过,探讨Bash脚本编程的时候也用过,所以那两篇文章的排版还真费了我不少劲。除了$,MathJax还使用\(和\)、$$和$$、\[和\]来界定数学公式。

由于MathJax是如此的出名和优秀,所以ReText也有相应的MathJax扩展,不过这次修改的配置文件是~/.config/markdown-extensions.txt。我的配置文件如下图:

从图中可以看出,配置文件的第1行就是开启mathjax扩展。至于其它的扩展和功能,大家可以阅读ReText的帮助文档。

看看文中的数学公式的效果:∫+∞0xne−xdx=n!

下图是ReText中使用数学公式的效果:

效果和效率都是不错的哦!至此,我的文字工作正式被Markdown和MathJax全面接管。妈妈再也不用担心我的语文作业和数学作业了。至于LaTeX编辑数学公式的语法,我这里再为大家送上一份资料:一份不太短的LaTeX 2e介绍 PDF。下载见:

------------------------------------------分割线------------------------------------------

具体下载目录在 /2015年资料/3月/4日/Linux下优秀的文本编辑器(Markdown、LaTeX、MathJax)/

------------------------------------------分割线------------------------------------------

linux如何编译tex,Linux下优秀的文本编辑器(Markdown、LaTeX、MathJax)相关推荐

  1. linux如何编译tex,linux下编译bib、tex生成pdf文件

    实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...

  2. linux中vim文本编辑器的默认模式是,Linux 下 vi/vim 文本编辑器超详细使用指南

    Linux下的编辑器最经常使用的就是vim或者vi文本编辑.vi 和vim 编辑器的区别是vim是vi的改进版本,在vi 编辑器的基础上上扩展了不少实用的功能. 大多数的linux/unix 发行版本 ...

  3. Linux 下 vi/vim 文本编辑器超详细使用指南(转载)

    转载于 https://blog.csdn.net/kingmax54212008/article/details/54142633 Linux下的编辑器最常用的就是vim或者vi文本编辑.vi 和v ...

  4. 27款优秀的文本编辑器

    经常跟代码打交道的人,除了自己所掌握的代码知识之外,我想他们最需要的工具之一,应该是一款得意的文本编辑器了,无论你是网站主还是博主,写东西改代码是经常的事情,所以很需要常备着一款合适且好用的文本编辑器 ...

  5. .net下的富文本编辑器FCKeditor的配置方法(图)原创

    .net下的富文本编辑器FCKeditor的配置方法(图)原创 FCKeditor是一款开源的富文本编辑器,几乎支持所有流行的Web开发语言,版本稳定,用户多,可配置性好. 以前做Java和php的时 ...

  6. linux+systemc+编译,[转载]linux下systemC的安装编译仿真

    一.systemc的安装 花了将近一天的时间终于成功安装systemC,下面记录下整个过程. (1)在www.systemc.org网站下载systemc-2.2.0.tgz. (2)将其copy到l ...

  7. 在linux安装编译vscode,Linux中安装 Visual Studio Code 详解

    一起来学习如何在 Linux 发行版中安装 Visual Studio Code.Visual Studio Code 是基于 Electron 优化代码后的编辑器,后者是基于 Chromium 的一 ...

  8. linux用文本器打文件命令行,Linux 命令行下的最佳文本编辑器

    文本编辑软件在任何操作系统上都是必备的软件.我们在 Linux 上不缺乏非常现代化的编辑软件,但是它们都是基于 GUI(图形界面)的编辑软件. 正如你所了解的,Linux 真正的魅力在于命令行.当你正 ...

  9. Linux学习笔记(二)(Vim文本编辑器 权限管理(用户,用户组) 系统相关(磁盘,进程))

    Linux学习笔记(二) 5.账号管理 概述 一.用户账号管理 概述 1. 添加账号 :useradd(`useradd 选项 用户名`) 2. 删除帐号(`userdel 选项 用户名`) 3. 修 ...

最新文章

  1. CSDN 数学公式居中
  2. GetHashCode() 的研究
  3. 使用ORM提取数据很容易! 是吗?
  4. CompletableFuture详解~thenAcceptBoth
  5. 均值(Mean)和均值标准误差(S.E. Mean)
  6. html高德地图的使用方法,高德地图的使用方法
  7. 思维导图iMindMap如何制定时间计划
  8. 08cms cecore.cls.php,08CMS 变量覆盖导致getshell 等问题
  9. android微信下拉出现小程序,微信下拉出现小程序怎么关闭 微信下拉小程序去掉方法...
  10. oracle材料成本发票价差,ORACLE ERP 成本核算会计信息归纳
  11. echarts 自定义鼠标划过的显示 与 自定义legend
  12. 控制input标签只能输入数字
  13. MySQL的地理位置类型
  14. 《就这样享用word》word实用技巧总结-更新中
  15. 选择傲慢和残忍,会让你更加孤独
  16. 1、蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)
  17. POI2014 Salad Bar
  18. 20年9月wust招新赛writeup
  19. 计算机二级及格和优秀,计算机二级成绩优秀有用吗 优秀与合格的区别
  20. 这些魔术用的是物理原理?有啥诀窍?

热门文章

  1. 警惕!国内某广告SDK内置“后门”功能,Google Play商店已强制下架
  2. 运行ceph时,了解一下主要的进程。
  3. window 远程访问本地centos/redhat虚拟机上jupter notebook 配置方法
  4. window.open的小技巧分享(转)
  5. Cisco *** 完全配置指南-连载-PIX和ASA连接的故障诊断与排除
  6. 网络管理员比赛回顾04-DHCP
  7. 在线学位课程_如何选择计算机科学学位课程
  8. 辞职前为什么挣扎_当您感到自己像开发人员一样挣扎时,为什么学得最多
  9. CSS:当子元素皆浮动,撑开父元素的3种方式
  10. 集成测试_渐增与非渐增模式优缺点