pandoc+typora实现markdown写论文的尝试
pandoc+typora实现markdown写论文的尝试
pandoc可以用于文档格式转换,可将markdown格式的文件转换为docx。个人感觉,使用markdown的时候,可以更加专注于写作。网上也有教程说用markdown写论文,然后用pandoc转换为docx的教程。
文献引用
写作没有问题,图表也都OK,但其中一个重要的问题是引用。如何引用文献?我觉得这是首要解决的问题,因此放在最前面。
说明:本人markdown软件使用的是typora,软件本身支持通过pandoc转换为docx,但是不支持其他代码。前提是要安装好pandoc软件。
方法一:
如果文献管理软件使用的是Endnote,那很简单。直接在Endnote软件里找到需要引用的文献,然后ctrl + c复制,在typora里相应位置粘贴,{Booth, 2002 #132},这种显示,就可以了。然后导出为.docx,通过Endnote更新参考文献,就可了。
方法二:
如果使用citavi为文献管理软件,需要通过将文献目录导出为. bib。这个需要设置对options –> citation –> 勾选Latex支持,显示条目可以自己设置,选择word作为编辑器就好了。设置好后,按F7,调出参考文献table,点击需要引用的参考文献,复制,粘贴到typora,显示是这样的\cite{Varsano.2012}。要修改为在 Markdown 文件中使用格式 [@参考文献id] ,参考文献id 就是 .bib 文件中的 大括号的第一个参数。在这里也就是[@Varsano.2012]。
通过这种方式,导出为docx的时候就需要用到pandoc的代码了,不能直接通过typora导出。可以使用git来执行。将**.md文件、.bib文件以及.csl文件**放置在同一个文件夹,再在本文件目录内打开git,输入一下参数:
1 | pandoc --cite --csl=chinese-gb7714-2005-numeric.csl --bibliography=ref.bib M.md -o d.docx |
参数说明:
–csl=chinese-gb7714-2005-numeric.csl: 告诉pandoc你的citation style languages是啥,需自行下载,放在.md同一个目录下。
–bibliography=ref.bib:告诉pandoc你的.bib文件叫啥,和.md放同一个目录
说明:.csl的文件可以从github上下载:https://github.com/citation-style-language/styles。
但是,从网上的教程里面找到这个代码:
1 | pandoc --filter pandoc-citeproc --bibliography=a.bib --csl=chinese-gb7714-2005-numeric.csl m.md -o demo-citation.docx |
就不能用,提示命令不存在,目前还不知道为什么。
pandoc导出word文档格式设置
使用markdown写论文,导出时候的第二个问题是论文格式。一部分可以通过pandoc的命令来解决,另外部分可以通过docx模板来处理,可能还是有需要导出到docx后再调整的细节。目前学到的命令:
- –toc # 生成目录
- –toc-depth=NUMBER # 生成的目录深度
- –wrap=auto|none|preserve # 文字换行方式
- –reference-doc=FILE # 指定模板
- –metadata link-citations=true: 设置之后,生成的docx文档中才有交叉引用,否则引用的索引只是一个上标而已,不能够点击索引跳转到参考文献列表中对应位置。
- –metadata reference-section-title=”参考文献”: 将生成的docx文档中的引文列表标题设为“参考文献”
合并上一部分参考文献的要求,命令如下:
1 | pandoc --cite --csl=chinese-gb7714-2015-numeric.csl --bibliography=a.bib --reference-doc=custom-reference.docx --toc --metadata link-citations=true --metadata reference-section-title="参考文献" demo.md -o demo.docx |
关于docx模板的修改
可以输入一下命令,查看默认的模板格式:
1 | pandoc --print-default-data-file reference.docx > custom-reference.docx |
目标文件夹内就会生成custom-reference.docx这个文件,根据自己的需要修改样式:
修改完之后保存,以后就可以通过:–reference-doc=custom-reference.docx,来应用模板了。
目前学到这么多,以后有用更多,再更新。
未来目标:
- 导出docx更符合论文格式要求。
- typora + pandoc + git实现论文撰写的版本控制。