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放同一个目录

image-20210222201913358

说明:.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这个文件,根据自己的需要修改样式:

image-20210222203900117

修改完之后保存,以后就可以通过:–reference-doc=custom-reference.docx,来应用模板了。

目前学到这么多,以后有用更多,再更新。

未来目标:

    1. 导出docx更符合论文格式要求。
    1. typora + pandoc + git实现论文撰写的版本控制。