在《使用Markdown工具链优雅地写作(一)_Markdown介绍》 中简单介绍了Markdown,在介绍最重要的 Markdown工具链 之前,先聊聊Roming自己的工具经历,或许可以提供些许的参考。
关于写作
写作主要需要考虑两方面: 编写内容 和 排版 。
排版(Typesetting)亦称版面编排。所谓编排,即在有限的版面空间里,将版面构成要素--文字字体、图片图形、线条线框和颜色色块诸因素,根据特定内容的需要进行组合排列,并运用造型要素及形式原理,把构思与计划以视觉形式表达出来。
简单地说,排版就是按要求将元素整理到给定的版面中。
排版的基本要求是:版面清晰 、 风格统一 。
短篇文章或许可以通过手动调节的方式解决(经典如Word的 格式刷
),但当页数超过50页时,就得通过一定的排版方式才行。
Word应该是写作的入门工具,而不算是主流的写作工具,可能的原因有(Roming个人理解,不代表一定准确):
- 运行效率低: 难于支撑超过100页的内容
- 稳定性差: 程序异常退出、文档损坏是经常的事
- 随意性高,内容和排版难于区分: 正如当年HTML将内容(结构)和排版混杂一样
-
自动化程度低: 虽然Word也可以通过
VBA
进行一些自动化,但VBA
语法奇特,并非每个人都学得下去(Roming就完全没有学习的欲望) -
互操作能力差: Word是一个封闭的工具,很难跟其他工具互操作
关于Word的互操作能力可能性大概有以下几种,但功能与
Unix-Like
软件比起来差距不止一个数量级:
ActiveX对象
: 主要是Office系列内的软件外部软件导出至Word
: 部分软件支持导出一些内容至Word,如: 开源的Zotero
参考文献管理软件插件
: 小部分的软件(如Adobe Acrobat
)提供Word插件,但这类软件数量也非常少另存为PDF
: 这个也勉强算是一种互操作吧
Roming的工具经历
- Word打字期: Roming开始使用计算机的时候已经到了21世纪,这时候 Windows 已经基本一统桌面计算机的天下( macOS 还没有重新崛起,Linux 过去、现在和至少很长的一段未来都不是桌面计算机的主流),Office套件也几乎是每台桌面计算机的必备软件,这时候对写作和记笔记的需求量很小,Word一般只是用来写写大学课程设计的文档,一般不超过50页。
-
Word排版期:
- 本科时期: 本科写毕业论文时,由于页数已经超过50页,对 排版 有了基本的需求,于是Roming买了本 《Word排版艺术》(侯捷) ,开始知道了 排版 。
- 研究生时期: 经过研究生的几篇论文和毕业论文的洗礼,Roming的Word排版水平达到了自己能达到的最高水平(毕竟不是专业的排版员),也偶尔帮人解决Word编写或排版过程中疑难杂症。
-
Markdown期:
- 寻找Word的替代品: 大约在2015年,Roming开始记录自己的三本摄影笔记,慢慢地,每本笔记超过了100多页,笨重的Word开始支撑不住了,每打开一次都得Load上老半天,并且打个字也得等个一两秒。终于在某一天,其中一本笔记崩溃后再打开时每次保存都会崩溃。终于Roming决定寻找替代Word的写作和排版工具。
-
选择Markdown: 刚开始,Roming计划学习 $T_{E}X$ ,但正如�侯大叔所说的 实非我等凡夫俗子能轻易上手 ,后来对比了 ASCiiDoc 和 Markdown 两种语法和工具后选择了Markdown,其中一个重要的原因是 GitHub 到处可以看到以
md
为后缀的文档,很少见到adoc
为后缀的文档(或许以后会试试ASCiiDoc)。 -
使用Markdown工具链: Roming使用的Markdown编辑器是GitHub出品的 ATOM,Markdown插件也从一开始使用
ATOM
官方的markdown-preview
转换到markdown-preview-enhanced(MPE)
,再然后,Roming使用 GitBook 将笔记整理成完整的电子书籍,并使用 Git 进行版本控制。
$T_{E}X$ 是 Donald Knuth大叔 为写作他的传世经典 The Art of Computer Programming 而开发的至今为止科学界最权威的写作工具
特别值得再提的是《Word排版艺术》这本书,作者侯捷是台湾比较出名的IT书籍作者和IT书籍翻译者,这位大叔的书一个特点是比较贵,可能是因为这位大叔的书价值的确比较高(貌似从2007年后这位大叔就逐渐消失了)
《Word排版艺术》对Word排版至今还有 非常高的 价值,Roming的Word排版技术也没有超越过这本书的内容
Roming常用的Markdown工具链
-
ATOM编辑器
: GitHub出品的开源免费编辑器,几乎支持所有纯文本书写语法插件和开发语言插件。 -
ATOM插件
:-
markdown-preview-enhanced(MPE)
: 应该是ATOM最好、功能最强的Markdown插件 -
language-gfm-enhanced
: Markdown语法高亮 -
project-manager
: ATOM的 Project集 管理、切换插件,通常一个Project对应一本电子书或一个笔记主题 -
markdown-mindmap
: 将Markdown文档的标题和列表渲染成思维导图。 -
language-plantuml
: PlantUML语法高亮。 -
todo-show
: 查找文档中的TODO
-
spell-check
: ATOM默认开启的拼写检查。
-
-
MPE的扩展支持: ATOM本身也有MPE的这些扩展的插件,MPE内置了这些工具使得可以在MPE预览中直接看到结果(
GitBook
也有这些扩展插件,但代码块的语法标记不一样)-
KATEX
: 数学公式,MPE扩展了对 KATEX的渲染(美元符号间的文本将被KATEX渲染)。 -
PlantUML
: UML画图工具,MPE扩展了对PlantUML的渲染。
-
-
Git
: Linus Torvalds大叔 开发的版本控制工具神器。 -
电子书工具:
-
GitBook
: GitBook是电子书制作工具,gitbook.com 是使用GitBook工具的电子书发布平台。 - gitbook.com 和 github.com: 将本地文档通过Git发布到github.com,再通过 github.com 与 gitbook.com 相互授权自动同步,可将本地、github.com、gitbook.com无缝地以版本控制形式进行发布和协作。
-
更多的资料
- 陈硕_《Word排版艺术》读后感—兼谈与LaTeX的比较: https://wenku.baidu.com/view/497e964e852458fb770b56af.html
- 陈硕_用LATEX排版编程技术书籍的一些个人经验: https://github.com/chenshuo/typeset