您的位置:首页 > 其它

如何打造基于 markdown 的论文工作流程(一)

2018-03-01 00:00 323 查看


作者简介Introduction数据匠(baidao.net):http://www.baidao.net/往期回顾谈谈R中的乱码(一)
谈谈R中的乱码(二)
谈谈R中的乱码(三)
R 包 `ezdf`的讲解


这两年来 markdown 越发流行于各类网络客户端系统,各大博客系统、wiki系统、团队协作系统都纷纷支持 markdown 语法,支持 markdown的编辑器也越来越多。但真正将 markdown 用于学术论文或出版物写作的实践却并不多。在此介绍一下本人自2012年来就开始打造的一套工作流程。先介绍流程的两大基石:

1. knitr 背后的功臣——pandoc

markdown 起源于email写作中的简单格式,其语法非常简单,可能对 markdown 略有耳闻的人会觉得它不过是个玩具。其实不然,markdown 本身并非一个统一的语法,事实上有很多版本的实现。比较有经验的R用户可能经常用 knitr 来做一些数据报告,甚至用 knitr book 来写数据类长篇大作,或许你们还不知道,knitr 背后有个默默无名的英雄—— pandoc(http://pandoc.org/)。这是一款由一名伯克利大学哲学系教授领衔开发的 markdown 超级语法及文档格式转换工具。与普通网页版的简易 markdown 语法不同,pandoc 可以说是学术 markdown,除了常规的 markdown 元素以外,它还支持学术论文中常见的公式、表格、参考文献、脚注、尾注的格式化输出。 不仅如此,它还是一款超级格式机,能与大量的文档格式进行转换,它支持的格式是如此之多我就不贴大图了,仅手绘一张 pandoc 流程图做一示意:

所以,有了 pandoc 这个超级工具,社科量化小白用户再也无需羡慕理工科学生手里能输出漂亮公式的 latex 了,用 markdown 同样能输出漂亮公式,beamer 幻灯片也不在话下,再也不用啃三个月 latex 手册了。而且,印刷论文的时候可以用漂亮的pdf输出,要求论文电子版存档就交个 word 交差,何其方便!

2. 思维导图写作——mindmanager

前面说了简单数据报告可以采用 knitr ,但完整的社科类论文写作还是很难完全依赖它的。除了社科类论文中,数据分析在文章中占比不大以外,更重要的是思维差异。写作思维与编程思维是完全不同的!数据分析过程,强调数据结构和处理逻辑的一致性,强调代码的重用性,尽量避免重复代码,而对计算结果进行分析和写作则是基于分类和演绎的逻辑来进行,很多时候,我们需要用多种口径检查计算结果,但并不会将其都放在论文中。个人经验,最有效的方式还是把这二者分开,各行其是才好。脑图类软件无疑是整理构思、研究素材、论文结构的极好工具。脑图类软件也有很多,收费的、开源的、在线的,那么是不是随便搞个看着顺眼的就可以了?当然不是了。整理构思、管理素材固然是用脑图软件的一大目的,但是还得将它与 markdown 文字相结合起来。该软件比如符合两个要求:能够添加笔记:这条就杀掉了大多数在线脑图;
提供二次开发 API:添加笔记的目的是用来书写内容,而 API 则是为这些笔记的输出提供各种可能性。
所以我选择了 mindmanager:丰富的 OLE 接口,可以用来任意自定义脑图结构和笔记的输出方式。例如如何划分章、节和小节,第四级以下的脑图节点是否还作为小小节;不同输出版本的生成,例如下图中,标记有 advanced 的单独输出为一个版本。

有 API 的好处是,还可以对笔记内容在变成 markdown 正文前进行处理。例如可以将笔记中的图片直接转为 
更进一步,在笔记内部进行再分页、分章节也完全不是问题。同一个脑图,即可以输出为文章,也可以输出为幻灯片,一切取决于你的相像!最后,mindmanager 的 OLE 接口语法是如此简单,只需要简单的 visual basic 知识就足以搞定。

3. 流程整合:Paper Composer

有了上面两大基石的加持,只需小小地在 mindmanager OLE 接口上下点功夫,论文编译器就出台了!主界面来了,嗒哒!

功能也不多,随想随加:
输出的 markdown 文件存放路径;
导出脑图范围:全部 vs. 分枝;
章节层级;
是否作为 Rmd 输出,以供 knitr 运算;
参考文献格式化;
根据 tag 标识选择不同分枝输出;
最终格式选择:Word, HTML, pdf;
还剩了一些问题,例如:参考文献格式化;
R 的输出如何整合;
导出到 Word 时的问题:模板设置、表格图片自动编号;表格边框设置;
请持续关注。

 往期精彩内容整理合集 2017年R语言发展报告(国内)R语言中文社区历史文章整理(作者篇)
R语言中文社区历史文章整理(类型篇)


公众号后台回复关键字即可学习回复 R                  R语言快速入门及数据挖掘 
回复 Kaggle案例  Kaggle十大案例精讲(连载中)
回复 文本挖掘      手把手教你做文本挖掘
回复 可视化          R语言可视化在商务场景中的应用 
回复 大数据         大数据系列免费视频教程 
回复 量化投资      张丹教你如何用R语言量化投资 
回复 用户画像      京东大数据,揭秘用户画像
回复 数据挖掘     常用数据挖掘算法原理解释与应用
回复 机器学习     人工智能系列之机器学习与实践
回复 爬虫            R语言爬虫实战案例分享
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: