从一开始学习生信,曾老师让我学习Markdown语法,他说15分钟就能学会。
然后甩给我一堆链接:
15分钟足够学会这个东西,确实比word好用太多,以至于用了它之后我就不想用Word了
他推荐的是Typora,很容易上手,但是有个麻烦事,就是像做PPT一样需要打包发送,但是我通常忘记在编辑时候把资料放在一个目录下,导致很麻烦,后来有了简书觉得简书更方便然后由于简书整顿一个月不能使用,期间也学习了rMarkdown,总觉得还是不够方便(人太懒)。
我觉得还是差点什么
直到最近接触到黑魔法pandoc,终于弄明白了Markdown的强大之处了https://github.com/jgm/pandoc,无论想做成什么,写论文,做PPT,都可以一一实现。
他就是一个universal markup converter,万能转换器,就跟爱奇艺万能播放器一个道理。
那就赶紧学起来,磨刀不误砍柴工,工欲善其事必先利其器,古人诚不欺我也。
第一步 安装
安装pandoc
$ conda install -y pandoc
Downloading and Extracting Packages
pandoc-2.2.3.2 | 9.3 MB | ################################################################## | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#直接默认是安装最新版本的,如果需要制定版本,参考conda安装软件方法设置参数
官网有User’s Guide,
点击here有详细的Markdown语法的使用手册
除此之外还有 pandoc使用实例 和一个 online demo
有了这个工具以后再配合另一个工具Atom 编辑器
安装Atom 编辑器
请到 这个地址 下载 Atom 编辑器。网站会根据你的操作系统,自动找到对应的版本供你下载。
当然我有conda了可以用如下指令下载安装
$ conda install -y Atom
Downloading and Extracting Packages
future-0.18.2 | 719 KB | ################################################################## | 100%
atom-0.4.3 | 103 KB | ################################################################## | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
也会默认下载安装同时还会将其依赖的包一起下载安装。但是不知道是什么原因,这里的安装似乎有点问题,一个软件怎么才103kb,而且也找不到软件的帮助文档。
还是在官网下载吧,发现这个软件有166兆,但是上面那个pandoc安装是没有问题的,难道是conda无法安装完整的软件?好奇怪
然后安装完成后需要装一个插件帮你预览 Markdown,叫做 markdown-preview-enhanced。
安装方法如下:
使用 Cmd + , 呼叫配置菜单。注意我这里说的是苹果系统 macOS 上的操作。如果你用的是 Windows,请把所有出现的 Cmd 按键替换为 Ctrl 按键,或者查阅帮助文档。
选择左侧边栏的最后一项 + 号,用于安装新的插件。
在搜索框中输入该插件的名字:markdown-preview-enhanced,点击搜索结果中该插件的 Install 按钮。
很快,插件安装好了。
这个操作跟在Chrome安装插件是一个道理,所有开源的工具都支持这种扩展,这样工具才能屹立于不败之地,这个世道人们总是喜欢锦上添花,就是这个道理。
参考示例
这个例子还是来自少数派的树老师
请从 他的github,下载压缩包,之后解压。
把其中的 demo.md 文件拖动到 Atom 编辑器中,就可以正式开始探索之旅了。
Atom编辑器在使用了markdown-preview-enhanced插件后就跟简书的编辑器一样了,这样就再也不用担心简书出现以前审查而不能发布的情况了。(其实也有点担心,万一哪天笔记全找不到了,还有本地文件和备份,其实我可能想多了,只要善于备份就不会出什么问题吧)
都安装好了之后就可以尝试使用了
回到终端
(test) Cheng-MacBook-Pro:Downloads chelsea$ cd demo-scholar-markdown-docx-master
(test) Cheng-MacBook-Pro:demo-scholar-markdown-docx-master chelsea$ ls
README.md demo-citation.md demo-math.md
assets demo-figref.md demo.md
chinese-gb7714-2005-numeric.csl demo-footnote.md myref.bib
(test) Cheng-MacBook-Pro:demo-scholar-markdown-docx-master chelsea$ pandoc demo-math.md -o demo-math.docx
这里使用了pandoc 文件名 -o 文件名
,怎么理解呢,就是用pandoc软件将.md输出为.docx。将markdown语法的文档可视化成Word文档。
结果如下图所示
转换后的 Word 文件里,不论是独立公式,还是行内数学符号,都显示正常。再也不用为了在word里面插入公式特殊符号各种百度了。
论文写作有几个坑这里也该填一填了
关于脚注
脚注用 [^1]
来表示。内容用同样的符号,后接冒号,然后填写具体信息。
修改后结果如下
回到终端
执行 Pandoc 命令:
pandoc demo-footnote.md -o demo-footnote.docx
再看文档结果
注意,重点来了:下面是文献引用
通常我们写毕业论文会打开百度学术的页面,点击引用按钮。
在弹出页面中,点击下方蓝色的「BibTex」。
弹出如下内容
如上图所示,该文献的 Bibtex 信息就是这样的一段文本。我们将其拷贝下来,存储到
.bib
文件里。
依此类推,我们再下载其文献的 Bibtex 信息。
找到所有的文献后就开始引用了
打开demo-citation.md
。
引用的时候,我们使用 Bibtex 中每条文献信息大括号内的第一个字段,前面加上@
符号,用方括号扩起来。需要引用多条文献的时候,在方括号内,对不同文献标记用分号区隔。
我们很容易就发现,参考文献的预览信息是不正确的。
下面我们看看 Pandoc 能否帮助我们将其转换成为正确的 Word 内容。
注意这次需要使用的参数比较多。因为我们不光需要指定参考文献的格式,还得告诉 Pandoc,参考文献数据存储在了哪里myref.bib
。
pandoc --filter pandoc-citeproc --bibliography=myref.bib --csl=chinese-gb7714-2005-numeric.csl demo-citation.md -o demo-citation.docx
打开转换后的 Word,看看效果。
然后会发现Pandoc 正确地帮我们把文献的引用标记信息转换成为了上角标,根据出现的顺序自动编排序号。对于多个文献的引用情况,也做了对应的处理。
参考文献列表呢?我们翻动页面到文末。
参考文献列表已经根据GB/T 7714-2015
的规范自动生成。如果需要其他格式类似的也可以更改复制的内容了,是不是很方便。
将来无论是对文献引用作增删、移动、修改,都可以通过执行上面的一条命令自动更新。非常方便。
注意:这个修改方式同样适用于图片的插入
写作长篇学术论文(例如毕业论文)时,图片可能会有很多。引用起来如果手动编号,将来插入新的图片,就得手动重排许多后续内容,很麻烦。
下面我们尝试在 Markdown 里插入图片标题,并且在文中作交叉引用。
请打开demo-figref.md
,内容如下:
注意这里图片使用时,加入了一些新的信息。前面的方括号里面,加上了图标题;后面的大括号,使用#fig:id
的方式,加入了图的标记。
引用的时候,采用{@fig:id}
的方式,分别引用每个图形。
注意右侧的预览区,图标记都是原封不动显示的。
为了能够让图片引用的时候使用「图」,而不是「Figure」,我们在文件首部插入 4 行内容:
---
fignos-cleveref: On
fignos-plus-name: 图
…
预览中,这部分也出现在了文章首部,很难看。
执行以下的 Pandoc 命令,注意此次加入了图片引用处理要求。
pandoc --filter pandoc-fignos --filter pandoc-citeproc --bibliography=myref.bib --csl=chinese-gb7714-2005-numeric.csl demo-figref.md -o demo-figref.docx
对于写毕业论文,写基金项目之类的都科研用用到这种方法,简直太有用了是不是。
以前总是头疼,插入文献太麻烦了,endnote好用,但是不支持中文文献,noteexpress好用,但是换了个电脑又有系统版本的限制不要太麻烦,有了这个就比较方便了,不然学习了Linux也没有什么用武之地啊,学而不用,迟早会忘。所谓熟能生巧,多用才会觉得好用啊。
这么好的工具你不要试试吗?
我有一个想法,以后让机器都学会了这些,是不是就不用写论文了,哈哈