Overleaf支持Markdown和LaTeX混合写作

对于稍微篇幅长一点的或者经常有公式和参考文献这种编号会变化的内容的写作来说,仅仅使用纯文本(text)的标记语言远远比隐藏了大量格式说明的“所见即所得”的文字编辑器方便。

当然,最成功和万能的是\(\LaTeX\),mediaWiki也很好,HTML也不错,Markdown语法更简单(注意,就算后面三者,实现数学公式的时候还是靠一个叫做MathJax的依赖\(\LaTeX\)语法的软件)。很早以前的WPS其实也是标记语言,后来就跟堕落的Word学习了这种——适用于不想深入一点学习结构化写作和一点点语法的用户,适用于写纯文字的短文章的用户的——所见即所得。结构化写作,先布局整体结构,再来补充细节,是能够启发你的思考的写作方式。任何人都应该优先尝试一下结构化写作,而不是顺着思路往下写。

对于不需要数学公式,但是还是需要参考文献以及结构化写作的用户来说,\(\LaTeX\)可能学习成本太高,也不太有必要。那是不是可以用Markdown来写书呢?这是可以的,例如“简书”和”Gitbook”就是一个可以用Markdown写书的网站。但是,对于一个团队,可能其中一部分成员已经习惯了用\(\LaTeX\),另一部分习惯用Markdown。怎么办呢?

当然,很早就有人来做三者之间的转换,例如pandoc。不过,很少有软件,并且是在Web端的不需要安装到本地的软件,能够让你直接把其中的两种甚至三种混合起来使用。Web端的软件第一是不用安装维护,第二是方便多人协作,如果还能提供版本管理功能就更好了。

现在,Web端\(\LaTeX\)写作平台Overleaf,就提供了这样一个实现(当然还有待于进一步提高,例如,除了PDF,如果最终能够输出成markdown或者\(\LaTeX\)格式就更好了):通过使用markdown.sty宏包,可以在\(\LaTeX\)中同时使用\(\LaTeX\)和markdown。具体可以参考这里的模板:
https://www.overleaf.com/learn/latex/Articles/How_to_write_in_Markdown_on_Overleaf
https://www.overleaf.com/learn/latex/Articles/Markdown_into_LaTeX_with_Style

diff, latexdiff, diff-pdf和diffpdf

由于有的时候需要在不同的电脑上编辑latex文件,可能会由于偶尔没有保持同步产生版本冲突,也不一定会记得哪一个是最终版本。这个时候就需要通过对比latex或者产生的pdf文件来明确保持哪一个版本或者融合多个版本。为了这个目的,有几个工具,diff, latexdiff, diffpdf和diff-pdf。其中前者直接检验tex文件的文本差异,latexdiff也直接工作在tex文件上但是仅仅比较实际上看到的编译后文件的不同(通过调控参数,也可以直接比较文本),diffpdf和diff-pdf对比两个pdf文件找到不同。

不过在实际使用中,要注意,如果两个文件相差特别大,则比较出来的结果通常没有意义。更好的比较算法应该是识别出来最相似的对应模块以后,在这个基础上比较不同。这就需要修改这些diff的算法了。