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。。。你懂的。。。。

Advertisements

技术笔记: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.

技术笔记:我的无纸化尝试

现在我的桌面上,除了一台电脑之外,一张纸都没有。而我已经保持这样的状态至少也有好几个月了。

无纸化办公,一直是环保人士所提倡的一种概念。而对于我来说,完全没这么玄乎。我不用纸的原因归根结底就是,一切以纸为基础的文档管理最后都会变得非常难以重复。回头想想,我曾经打印过的无数篇被我做了笔记,标注了五星的论文现在都去哪了?而且,论文打印数量一旦超过50篇,那么和不打印几乎没有区别。望着堆满桌子的看起来长的一样的文献,要找出某一篇曾经做过笔记的文章是一件非常具有挑战性的事。或许我应该承认我的管理能力有限。可是问题是,现实中的麻烦已经够多了,光科研本身就够我喝一壶,为什么我要把大量的精力花在纸质文档的分类和管理上?

因此,管理的压力和使用的方便,共同促成了我现在几乎所有的工作都以电子文档的形式进行。具体来说:

  • 我使用Evernote来进行笔记管理,以及一切信息的收集。同时它还是我的私人日记本。我已经坚持用Evernote记日记快两年了。可以想像如果我能坚持这样记下去,数十年之后回头看今天所记的日记一定会是一件非常有趣的事。
  • 我使用Dropbox来进行文档的共享。我们研究组有一个共享的Dropbox文件夹,每次想要和同事分享文件,我只需要放进这个文件夹就可以。大多数时候,这样的分享方式要比电子邮件的附件更有效率而且更可靠。我想大家都对堆满收件箱的电子邮件心有余悸吧?更别说那些带有附件的邮件了。而现在,一般情况下,我只需要告诉对方那个文件放在dropbox的路径就可以。
  • 我使用iBooks来进行阅读。从2009年到现在,我已经用iBooks看过不下20本书了。虽然买的书也不少,但是自从出国以后,买书变的不是那么方便。于是用手机阅读电子书成了必然的选择。这样带来的一个好处就是,我不用担心每天在火车上通勤的时间如何打发了。现在最大的问题就是中文电子书除了下载免费的之外,很难购买到最新的正版资源,苹果的电子书商店似乎在中文书的更新方面步子有些太慢了。
  • 至于文献的管理和阅读,打印自然还有它的优势所在,至少可以很直观的去做笔记,并且不会受到电脑上其它事情的干扰。但是在我看来,文献的阅读其核心在于笔记,而做笔记的关键在于日后的可查找和可使用。因此,将一篇篇文章打印出来堆在桌子上自然可以很容易就满足自己的成就感,但是致命的缺陷是日后这些纸十有八九会成为垃圾。虽然目前来说,这一点电脑做的并不是那么优秀,至少我还在寻找能满足我的一体化文献管理的工具,看起来Papers 2似乎能满足我的需求,但是如果它不能很好的将我之前用Endnote管理的那数百篇文献成功导入,那么对于我来说,文献阅读和管理这块,我依然缺少一件完全得心应手的工具。
还好,到目前为止,丢掉纸和笔并未给我带来什么严重的影响。虽然偶尔在开组会或者和导师讨论的时候,我还会带上纸笔,但是之后我一般会将讨论的内容整理进Evernote中,并因此专门创建了一个笔记本叫做Discussion。而这一点也只是因为我现在还没有余钱来购买iPad,否则每次开会,打开Evernote就可以。当然,iPad我迟早也会有的。

技术笔记:如何将Parallels或VMWare中创建的虚拟系统导入VirtualBox中

Parallels和VMWare虽好,但却是收费软件,而且价格不便宜(AUD 99$)。在注册码过期之后,不得不考虑换成免费开源的虚拟机软件VirtualBox。但是重新开始创建系统未免太辛苦,而且牵扯好多软件的安装和设置,没个一两天恐怕搞不定。于是Google之,果然被我找到一篇英文教程(点这里)。下边是具体的步骤:

需要用到的软件:

  1. VirtualBox for Mac
  2. VMware Fusion for Mac,试用版即可
流程:

  1. 运行VMware Fusion。默认情况下软件将会检测出电脑上已经安装的虚拟机。如果默认未检测出系统已经安装的虚拟机,则在菜单中选择File > Import。接着会出现下边的窗口:                                        
  2. 浏览到存储Parallels或VMWare系统镜像的文件夹中。Parallels默认在:/Documents/Parallels/ 文件夹下。选择想要导入的镜像文件(文件后缀.pvs)。
  3. Have a cup of tea。整个Import过程大约需要半小时。
  4. 导入完成后。找到刚才存储导入结果的文件夹。导入结果后缀名应该为.vmwarevm。选择,然后右键选择“Show package content”,显示包内容。
  5. 将Package中的所有文件拷贝到一个新的文件夹中。
  6. 退出VMware Fusion。
  7. 运行Virtual Box。
  8. 在菜单栏中选择“New”,然后“Continue”,在Virtual Box中创建一个新的虚拟机。
  9. 然后设置内存大小。接着进入“Virtual Hard Disk”设置页面,选择“Using existing hard disk”,浏览至刚才保存的文件夹中,选择“.vmdk”文件,譬如我的是windows xp,则文件名是“winxp.vmdk”,不要选择带有数字后缀的,譬如winxp-s016.vmdk。然后点击“Open”。
  10. 接着回到Virtual Hard Disk页面,然后点击“Continue”,接着‘Finish’。
  11. OK,整个导入过程完成。再也不用担心注册码过期了!      

技术笔记:电子书


最近似乎很多讨论电子书和电子出版的文章。譬如爱范儿上的这篇还有木遥的这篇。
诚然,这些都是牛人所写的文章。至少都是愿意也有能力体验最新电子产品,譬如亚马逊的Kindle和苹果的iPad的一批人。作为自己来说,没见过Kindle长啥样,也就在Apple Store里摸过几把iPad(1代),对于“电子出版”这种问题就先不要碰了。不过我想和我一样的人大有人在吧,至少我相信,很多朋友对“电子书”其实是不陌生的。

所谓“电子书”者,其实是很笼统的概念,这个词汇从一出生就是为了区别传统的纸质书。所以它的定义其实很宽泛。从电脑上的CHM,到后来手机上的Java,直到现在智能手机上更为先进的媒介譬如苹果iOS上的iBooks。一脉相传下来,其实大多数人对于电子书的印象,坦白的说,无非两个词:方便,免费。

从方便上来说。就拿电脑上最流行的CHM电子书来说。至少省去了我们逛书店的辛苦。一般来说(中国国情),下载即可阅读。但是电脑阅读的问题也是显而易见的,至少我没有完整的用电脑阅读完一整本书,太容易分散注意力了。相比较之下,我甚至在几年前用三星的1.8寸小屏幕手机阅读完过几本小说(每页只有三行字,每行不超过20个字)。虽然很吃力,但是我做到了。而且因为手机功能有限,基本上没什么干扰,而且可以睡觉钱躺在床上、上厕所时坐在马桶上、吃饭时拿在手上、上课时放在桌仓里。所以极其方便。因此,这是电子书的第一个特点。包括现在的iPad啊Kindle神马的,概莫能外,我准备过段时间有钱了入手iPad,它的主要出没地点肯定不外乎床上、火车上和马桶上这几个地方。。。

电子书的另外一个特点就是”免费“。早先的TXT啊CHM啊JAVA神马的就不说了,就算我想给作者钱也找不到渠道啊(当然喜欢的书我会去书店买一本收藏)。所以我想很多朋友藉此也享受了不少免费的”精神食粮“。就像早些年的软件市场一样,谁要是花钱买软件,似乎就是傻的代名词。不过事物总是变化发展的。自从亚马逊和苹果们纷纷涉足电子书领域之后,花钱买电子书,似乎也不是什么新鲜事。至于免费的,仍然还在免费。但是已经有人愿意为电子书付钱了。这是一个转折。驱动一个行业的最好动力就是利益。读者愿意买单,作者能收到实利。那么作为中间商的出版社们,还在踌躇什么呢?答案只有一个:就是利益还不够大!

我知道,亚马逊和苹果肯定从出售电子书里尝到甜头了。因为他们基本都是从零开始。赚多少就是多少。但是传统的出版商们就不一样了。电子书的发展对纸质书籍是有冲击的,这点毋庸置疑。所以电子出版真正飞速发展的那一天,一定是利益能够抵消掉损失之后。这是一种半推半就的过程。出版社不是傻子,手握大量资源的他们肯定也在思考电子出版的可能性。我不清楚电子出版在法律上的问题(版权啊什么的)。但是这不是大问题,如果作者愿意,中间渠道(包括出版社)愿意,读者愿意。那么链条已经打通。

至于书店,我认为是个很尴尬的存在。因为他们不具有整个产业链上的核心竞争力。我的预测是,书店只会变得越来越小众。但是不会消失。只是个比例问题罢了。就像咖啡厅一样,有多少人去咖啡厅是真的喝咖啡呢?

关于电子书取代纸质书的另一个问题就是:阅读体验。很多人已经论证过这个问题了。从我自身的经验来说(我最近每晚都用iBooks看一会小说),这个问题不是很大。除了那些”不闻到书香“就不爽的纸质书狂热分子,我想大多数人是可以接受电子阅读体验的。而且技术也在进步,如今的很多电子书已经可以做到和纸质书以假乱真的境界了(我在悉尼的火车上就看到过一个老太太,她手里的电子书真的很逼真,有油墨的感觉)。所以,就像现在的作家也会用电脑写作一样(譬如村上春树),那么读者为什么不可以用电脑阅读呢?(这里的电脑是泛指,iPad也是电脑。。)

无论你是否喜欢,电子书取代纸质书只是时间问题。如果可以很方便的看到我喜欢的书(新书、老书),那么我乐意为此花钱。毕竟读一本书要很久,既然我们可以为一份10分钟就可以吃完的麦当劳买单,为什么不可以为需要一周才能读完的书籍买单呢?我相信如果渠道畅通,这不是问题。

我现在最希望的就是,这一天赶快到来。我不能每天晚上都看那些已经看过N遍的小说了啊,我要花钱买新书!
后记,就在我刚刚写完这篇博客的时候,得知Al Gore的新书《Our Choice》出版了。这是一本完全意义上的‘电子书’,它一开始,就是为电子平台上的阅读设计的。因此,在阅读体验上和传统的纸质书籍完全不同,甚至对于现在的Kindle和iBooks来说,也算是一次小小的革命。而电子书,就应该是这样的,摆脱了印刷和制版的束缚,得益于硬件性能的不断提高,电子书应该会在未来表现的更好。感兴趣的朋友可以去这里看关于《Our Choice》的介绍视频。

技术笔记:Chrome右键/地址栏搜索自动跳转到google.com.hk的解决办法

不多说,直接上方法(感谢Google社区的tenx朋友):

更改 {google:baseUrl} 的值就可以了,方法如下:

1. 關閉 Chrome

2. 首先進入你的用戶數據目錄,就是 –user-data-dir= 指定的那個

預設為 %USERPROFILE%\Local Settings\Application Data\Google\Chrome\User Data

3. 用文字編輯軟體開啟 “Local State” 這個文字檔

將裡面 “last_known_google_url”: “http://www.google.com.hk/”

改為 “last_known_google_url”: “http://www.google.com/”

技术笔记:云存储

(题外话:这篇博客搬家到Wordpress的时候,我已经在国外了,研究组的人都在用Dropbox来交换文件,非常方便。)

有必要写点什么了。

这两天,笔记本电脑上的硬盘彻底报销了,应该是由于坏道的原因。辛辛苦苦下载了上百G的数据,还有所有的工作文档和之前这几年照的数十G的相片。损失怎一个“惨”字了得。

还好,除了那些卫星影像数据太大没有备份之外。其它的所有文档和相片,都被我通过一款网络备份服务完完整整的保存了下来,这会,我正在下载这些保存在网络上的数据呢。

这个服务就是——SugarSync。如果硬要给它贴上标签的话,“云存储”(Cloud Storage)应该最合适不过了。

也许大家都有备份的习惯。有的人使用移动硬盘,每天的固定时间将重要文件拷贝上去。更高级一点就是使用备份软件了,备份软件会判断你的文件版本,自动将最新的文件进行备份。使用移动硬盘备份的优势在于:备份空间大,成本低,无需复杂的电脑知识。缺点当然也显而易见:硬盘本身就很脆,身边朋友的移动硬盘更是隔段时间就要出点问题,稳定性实在是不敢让人放心,备份个不重要的东西还成,那些非常重要的文件,还是算了。不过这就很诡异了,备份本来就是针对那些重要文件的,这是备份存在的唯一合理性。

除了使用移动硬盘之外,随着DVD刻录机甚至蓝光刻录技术的平民化,相信很多朋友都不止一次将下载的电视剧啊或者电影刻录成光盘。光盘也是一种非常好的备份手段,优点是便携性强,安全性相对移动硬盘也要高一些,至少光盘耐摔打。但是缺点是:非常麻烦,刻张DVD少说也得十来分钟,对于那些电视剧电影相片的备份还行,对于那些常常需要修改的文件来说,譬如Word文档,就有点力不从心了,即使将备份频率降低到每周刻一张,每年也有50多张的光盘,占用时间和空间成本显然太大。

那么,有没有一个“省心”的解决方案呢?

怎么个省心法?在备份的操作上:只要你的Word文档一修改,即会自动备份一份新的版本,完全后台操作,让使用者感觉不到它的存在。

在备份位置的安全性上:最好不用我每天提个移动硬盘或一堆光盘,还得占用本身就数量有限的USB接口,最理想的状况就是,备份位置和使用位置是分离的,有专业的人员负责备份文件的存储和维护。

这种服务还真被我发现了,就在去年,最初是Dropbox,DB被墙之后,换作了SugarSync,至今稳定运行了快一年。该服务会让使用者指定几个需要同步的文件夹,当电脑上的文件发生改变时,客户端会自动探测到,然后备份一份到网络存储空间去,这样即使你的电脑硬盘现在就报销掉,也不用担心存储数据安全的问题,在资金充足的情况下,你甚至可以同步整个硬盘!

可能还是有人觉得网络存储不靠谱,还是喜欢用复制粘贴这种方法去备份。好吧,反正我已经体会到这个服务的好处了,虽然我的硬盘刚刚报销掉,可是,当我换上一块新的硬盘,连上同步服务之后,所有的文件,又悄悄的回到了我的新硬盘上,就像硬盘从来没有坏过一样。

声明一下,SugarSync没有给我广告费,我纯粹是体会到它的好处之后情不自禁写的这篇“广而告之”。如果你也觉得自己常常为如何备份那些重要文件Mess Up,而你所保存的那些文档的价值远在硬盘的价值之上,不妨去试试这个服务,免费用户有2G的空间,这对大多数只需要备份普通文档的用户已经足够,如果你觉得那些照片也很重要,完全可以花点钱买个更大的空间。说实话,一年也就几百块钱,省心又省力,何乐而不为呢?呵呵。

如果你要注册,可以通过这个链接:https://www.sugarsync.com/referral?rf=37jmabcq3xr8,这样我就可以通过推荐获得500M的额外空间。当然如果你不放心,也可以Google“SugarSync”去找到他们的网站。

类似的服务还有很多:Dropbox、MobileMe、Box.Net等,微软好像也有类似的服务,大同小异。国内好像也有,不太了解,就不推荐了。