Markdown+Pandoc: 轻量级科学论文写作方案

周末了,早上起来外边还在下小雨,站在阳台上看了会雨。阳台前边就是一个很大的公园,
早起的鸟儿已经开始忙碌了,我竟然在窗口那棵树上看到了一只彩色的小鹦鹉,非常漂亮。

中午吃过饭做城铁来到办公室,手边一杯咖啡,开始想要把这几天困扰我的一个问题解
决掉。

一直在用LaTeX写论文,很好很强大,对数学公式的支持几乎可以用完美来形容。但
是只有一个问题,每次当我写好东西想要发给导师或者同事开始协同写作的时候,LaTeX
到PDF然后到Word文档的转换成了一个比较麻烦的事情。当我从PDF中拷贝粘贴文本
到Word的时候,格式全乱掉,数学公式一团糟。之后手动调整格式的过程让使用LaTeX
写作的优势看起来似乎抵消掉。

我不打算也知道很难劝说导师和周围的人都使用LaTeX,实话说,LaTeX的好处用过的
都知道。但是,当科学写作更多的需要协作的时候,除非周围的人都使用LaTeX,否则
每次转换格式都会浪费许多时间,而且也容易出错。

于是想要寻找一个LaTeX的替代解决方案,并非完全要放弃LaTeX。因为科技论文写作
不可避免要有许多数学符号和公式。而且许多期刊都提供了LaTeX模板,因此如果这种
替代方案需要让我完全放弃LaTeX,我也会有些犹豫的。

好在发现了Markdown,更确切的说,是发现了Markdown+Pandoc的组合。

什么是Markdown?
————————-
简单一句话就是:用纯文本写作,同时用直观的轻量级标记来格式化文档。

为什么要使用纯文本创作?
————————————-
我的哲学是,任何基于字符的创作都应该是内容至上(除了书法)。这包括写小说,写
论文,或者是写代码。在创作过程中,尤其是前期创作中,任何格式都是一种多余。这
一点大家可以想像一下作家用纸笔写小说,纸上总不能高亮或者加粗吧?用内容说话才
是王道。

什么是Pandoc?
———————-
Markdown本身是为了方便输出到HTML格式的。可是后来大家不局限于只是生成HTML
网页,而Pandoc就是为了解决这种需要。通过Pandoc,原始的Markdown文本可以顺利
的转换成Word文档(.docx),OpenOffice文档(.odt),或者是TeX文档(.tex)。

为什么Markdown+Pandoc的组合让我动心?
————————————————————–
1. 轻量、简单易学、上手容易。实话说学LaTeX已经花了不少功夫,我不想再学习另一种
复杂的语言,只是为了写作文章。Markdown符合需求。
2. 能够顺利转换成Word文档。毕竟周围的人用Word还是不少,能够顺利和他们分享文档
也是我的基本需求之一。这点Pandoc可以解决。
3. 能够转成TeX文档。这个对我来说也是必须的,目前为止Markdown对数学和表格的支持
还是有些弱。Pandoc可以将Markdown转到TeX文件,这一点对我来说吸引力非常大。

如何配置Mardown+Pandoc?
—————————————-
几乎不需要配置。下载Pandoc安装就行(这里)。五分钟就可以搞定上手。
MD的介绍可以看这里:[维基百科中的Markdown]
Pandoc的介绍可以看这里:[Pandoc用户指南]

我现在的写作流程
————————–
1. Vim中写作MD原始文本
2. 需要分享时通过Pandoc转换为.docx
3. 需要发表到学术期刊时,通过pandoc转为TeX,然后调用期刊的LaTeX模板,生成PDF。

这样,既避免了转到另一种更复杂的解决方案,同时能够保证和同事之间的分享。而且最重要
的是没有放弃LaTeX,保留了后期转到LaTeX的灵活性。

有哪些问题?
——————————
当然,这种解决方案并非完美,目前来看问题主要有:
1. 数学公式。Pandoc虽然可以把LaTeX math渲染成很漂亮的HTML公式,但是目前来看
似乎无法很好的渲染到.docx文档中。也有可能是因为我电脑上没有装Office,而是用苹果
的Pages,所以不支持MOMML(Microsoft’s Office Math Markup Language)语言?好吧,
看来又是一个编辑器专用的东西。那么数学公式怎么办呢?我现在的办法是,依然用TeX
Math直接在Markdown中写数学公式,转好DOCX文件之后,\begin{equation}和\end{equation}
之间的部分不会输出,我再用LaTeX it!(一个小工具,转LaTeX数学公式到PDF或者图片,
非常简单,拷贝粘贴就行)插入到DOCX文档中。我不是搞数学或者物理的,文章中公式并
不是很多,因此,这并不是太大的问题。

2. 参考文献。用Markdown+Pandoc的话,当然可以直接使用Pandoc的文献插入格式。但是
这里有一个问题,因为我需要后期转到TeX文档,现在看来Pandoc在把MD转到TeX之后,
仍然保留的Pandoc的cite key{author:year},而不是LaTeX的cite key (\cite{author:year})。
但是,这个世界总是有很多办法的。我的办法就是,直接插入Papers2(文献管理软件)的
cite key,对于上边那篇文献,Papers2的cite key长这个样子:{author:year}。当我生成DOCX
之后,{author:year}依然保留在DOCX文件中,然后我只需要很简单的用Papers2格式化一下
文档就行(超级简单)。那么转到TeX中呢,{author:year}依然保留,不过变成这个样子了:
\{author:year\}。大家可以看到,这里和LaTeX的cite key唯一不同的地方就是,\{author:year\}
之间少了个cite,然后第二个大括号的前边多了一个“\”。哈哈,有办法了。直接用Vim的查找
替换。首先,替换前边的”\{“为”\cite{“:在Vim中输入:

:%s/\\{/\\cite{/g

。然后替换后边的”\}”
为”}”:

:%s/\\}/}/g

。经过这两步,本来还是\{author:year\}的cite key就变成了LaTeX的cite
key \cite{author:year}了。

搞定!Perfect!

好了,现在可以放心的用Markdown+Pandoc的组合来写论文了,插数学公式或者参考文献
都没有问题。同时既保留了Markdown的轻量,同时可以无缝转换到其它文档格式,最关键
的是,和LaTeX也有非常完美的结合。

下一步,就是怎么想办法诱惑周围的人(包括导师和同事)也开始放弃Word,来使用Markdown
写论文了。更大的理想是,通过使用纯文本写作,再结合GitHub进行协作,实行版本控制,
commit, push, pull。。。你懂的。。。。

记忆的误差

一直以为小时候看过的那个《神雕侠侣》是刘德华演的呢,并且坚持这样的观点直到现在。结果今晚上才直到,我将近二十年前看的那个,是潘迎紫(小龙女)和孟飞(杨过)演的呢。

怎么会出现这样大的记忆误差呢?而且关键是还一直坚持着这样错误的记忆。看来人的记忆有的时候真的很不可靠。

这是潘迎紫版《神雕侠侣》的主题曲:

各种压力

一进weekday,各种压力扑面而来。论文的压力,生活费的压力,应付各种杂事带来的压力。不过压力再大,也要保证每天有4-5个小时的时间是集中精力在做“most import thing”,而不是东拉西扯打酱油。因此上午选择不去办公室是正确的,在家,一起床就可以开始工作,从早上七点半到十二点半,高效率的工作,高效率的做自己的研究,然后写作,保证每天都make a little progress。

然后中午就去学校了,然后就是各种杂事。就拿今天来说,上午去先是和导师讨论,其实就是瞎聊。然后准备下午的组会,下午从两点开始组会,一直到四点半。然后回到办公室,check email,还没写完一份mail,学校停电了。。。然后就闪人了。一点效率也没有。

不过虽然办公室的效率很低,不过我想只是暂时的。以后下午去办公室也尽量只check一次email,还是像以前一样,尽量做到每天只check一次邮箱,做到集中精力,查电子邮件什么的最容易分心了。上午在家写作,做最重要的事,下午去办公室处理数据,和导师同事交流,同事做一些实验室的具体工作,学习一下观测方面的知识。为九月份去野外实地观测做准备,也算是扩充自己的知识水平面,不能只局限在电脑上的处理,要接触观测,要接触真正的自然,否则也愧对自己的研究对象了。做了几年热带植被的工作,竟然没亲眼见过,没亲手测量过没,委实不应该。

然后就是最近很穷了,这方面的压力也相当的大。奖学金到今天还没发,不得已,至少找人先借了点,周转一下。搞的我最近天天蛋炒饭+泡面艰苦度日,实在是有一副穷困潦倒的样子。前几天在日记里写了:今晚外边很冷,下午没吃饱,家里也没有什么零食,饥寒交迫啊。。。。。。

风雨过后有没有彩虹我不知道,但是淋几天雨,知道以后不要乱花钱,要节约,要花钱有计划总是好的。至少不会像上次一样,都已经没钱了还出去请人吃饭,去那么好的餐厅,还喝红酒,回家打taxi,真是感情战胜理智的充分表现啊。我就是一感性动物。不过话说回来,千金一撒为红颜,值了。

调整作息

前段时间日夜颠倒,作息规律彻底被打乱了。都是周末惹的祸啊,想起来我那段时间每天早上六点起床用功,晚上十点就上床,简直都不敢相信是同一个人。结果那次周五晚上没刹住,一口气熬到了凌晨三四点。周六早上自然睡到了中午,然后周六晚上自然睡不着,精神的很,于是继续敖了个三四点。再然后,我周一就起不来了,睡了个天昏地暗,然后作息就这样残酷的被打乱了。直到上个周末,良心发现,不能再这样浑浑噩噩的下去了,必须要回到早睡早起的生活习惯。退一步讲,即使不能早睡,也必须早起。一日之计在于晨,如果早上的时间无法好好利用,那么这一天就算是荒废了,晚上就算看多少集周日八点党都无济于事,心里的负罪感必然非常强烈。

汇报一下自己这两天调整的情况吧。作息这种东西,慢慢调整,猴年马月才能调整过来。必须下猛药,于是周六晚上没睡,一直熬到礼拜天,继续坚持不睡,即使周日早上已经困的不行。直到周日晚上。然后周一早上没起来,睡到了中午。周一晚上又睡不着,虽然十二点多就上床,还是翻来覆去的到了早上六点多才睡着,这中间看了无数集youtube视频。不过今天早上好样的,即使六点多才睡,还是硬撑着九点就起床。我知道如果今天再睡到中午,那么调整作息的计划就彻底泡汤了。起来后直接开始工作,到中午十二点半,然后下去办公室处理杂事。白天感觉精神还好。不过晚上开始有些困了,现在坐在这里打字,已经觉得昏昏欲睡了。不过现在还不到十点,再撑一会,然后明天早上必须七点起床,必须的。

就这么定了,历时一个多月的夜猫子生活,我要正式和你说再见了!就在这两天,用一个周末加昨天和今天两天,成功调整过来!然后好的生活习惯必须坚持下去,最重要的是坚持。晚上多给自己一下娱乐时间,白天已经那么辛苦了,所以晚上回到家坚决不想工作中的事,这样不会赖到电脑前不想睡。然后周末就是全力放松了,有张有弛才是长久之道。

译:关于个人财务的六条简单经验

就在月底最穷的时候,就在我的经济状况濒临破产的时候,恰好看到了这篇博文。道理都很简单,但是却非常有帮助。尤其是对于刚进入职场的年轻人和我等靠每月为数不多的奖学金艰苦度日的穷学生。于是将文章摘要翻译过来和大家分享,因为原文是写给自己女儿的,所以翻译的过程中有所删改和添加。

(原文链接:6 Money Lessons for My College Daughter,作者:Leo Babauta

1. 花的比赚的少。

人们陷入财务危机的最大原因几乎全部是因为他们的消费超过了他们的收入。于是你进入了一个债务的无底洞,而且如果不能有效的控制,你很难从这个恶性循环中逃离。因此,少花钱,少劳碌,少担心,你会更快乐。

2. 不要举债。

当然,如果你控制自己的消费,不要超过自己的收入,那么你将不会有债务。不要试图去使用信用卡,尤其是你现在还没有多少钱的时候。当然,你会说我会在下个月还清我的信用卡刷卡产生的欠款。但是,这是一条危险的借口。因为你永远无法预知下个月还有什么花钱的事情等着你。

3. 学会储蓄。

拿到工资的时候,自然而然的养成存钱的习惯。随着你的储蓄的增加,你会对生活变的更有掌控感,这会增加你的自信,以及你应付突发经济事件的能力。譬如,说不定你下月会遇到一个心仪的女孩,而你正好有一笔存款可以约她去一家不错的餐厅共进美妙的晚餐,岂不很好?

4. 没钱就闪人。

或许对很多成年人来说,要做到这点依然不易。如果你买不起车,那么就不要去买。如果你买不起名牌的衣服,那么就去买廉价的。如果你无法负担高档餐厅的消费,那么就去吃大排档。这些话听起来有些不近人情,似乎对自己有些太苛刻,然而现实就是这样,量力而为是财务管理的第一要务。因此,如果你没有很多钱,那么学会从一些免费的途径中找到生活的乐趣吧,譬如可以去公共图书馆借书而不是买书,去免费开放的公园休闲而不是花钱去泡酒吧。

5. 进行财务预算。

当我得知很多人从来都没对自己的收支做过预算的时候,这是一件非常难以置信的事。其实做预算很简单,列出你的收入,列出你的可能的支出。如果发现入不敷出,那么就要考虑减掉一些支出项目(当然你也可以考虑增加收入)。可以使用纸和笔,也可以使用电脑。做预算可以让你知道你的钱花在什么地方,当然最大的好处还是在月底的时候不会那么局促。

6. 有账单,马上付。

如果你有钱,那么尽量在收到账单的时候就付清。这有两点好处,第一是不会因为其它事而忘记,而造成不必要的滞纳费。第二是累积的账单是人们生活中最大的压力来源,而你应该尽量让这种压力分散开来,而不是等到攒了一大堆账单之后,才发现自己已经因为昨天买了一双球鞋而没钱付水电费了。

技术笔记:Papers 2搜索功能导致程序频繁崩溃的解决方法

问题:在Papers 2中使用搜索功能时程序崩溃。同时Papers 2的新功能Manuscripts搜索也无法使用。

解决办法:

参考软件作者Mek的帖子:

– first delete the spotlight folder that you find inside your Papers library folder in the finder.
– the issue a rebuild of your spotlight index by going to the advanced tab in the prefs.

首先,定位Papers文献库中的Spotlight文件夹。默认应该在:Documents\Library.papers2\ 路径下。找到后删除Spotlight文件夹。

然而,删除后搜索再不会崩溃。却不返回任何搜索结果。考虑是因为从Endnote中导入文献库的时候未能建立相应的索引。尝试以下解决办法:

  1. Export文献库为PDF(试过直接导出为XML,但是再导入的时候PDF文件并没有相应的导入)。
  2. 然后Import这些PDF。Papers重新建立文献索引。
  3. 再次搜索,成功!

虽然搜索的问题解决,但是存在的问题是,因为是从PDF导入,因此某些文献将无法识别作者和期刊名的信息。所以建议想要从Endnote换Papers或者首次使用Papers的朋友,一开始就做好文献的索引工作,省得后边麻烦。

最近几天的试用发现,Papers 2虽然已经做的相当人性化,功能划分也很细。但是Bug也不少,并非想像的那样易用。对我来说,首先是内建文献搜索功能无法使用。我平常在家工作的时间也挺多,常常需要通过exproxy连接到Web of Science下载文献。Papers中虽然内建了WOS的搜索引擎,但是一直无法正常使用,到目前为止还没有找到相应的解决办法。其次就是无法直接在PDF文件上注解,譬如高亮和下划线等,这个算是比较致命,虽然Papers的开发者承诺已经有加入Annotation功能的Roadmap,但是这样重要的功能,为什么不一次性的在发布Papers2的时候加入呢?难道想让我们花银子升级Papers 3么?

不过需要表扬的是,Papers 2的文献插入功能实在太强大了,已经全面超越Endnote等传统文献管理软件。摆脱了Add-on和Plugin束缚的结果就是,我终于可以随时随地的插入引文了。经试用成功的软件有:Evernote,TextEdit,Page,Safari。譬如现在,我就可以在撰写这篇博客的同时插入一篇引文。

Rocchini, D. et al., 2010. Remotely sensed spectral heterogeneity as a proxy of species diversity: Recent advances and open challenges. Ecological Informatics, 5(5), pp.318–329.