使用Pandoc从多个文件生成书目文件

时间:2018-11-20 23:10:58

标签: markdown pandoc bibtex

我有几章引用。我的引文文件为bibtex格式。我想创建一个带格式的参考书目,其中将这些章节中的所有引文都包含在一个文件中(出版商更喜欢DOCX)。我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果bibtex文件不包含其他引用,则只需一个小的nocite.md Markdown文件即可生成参考书目:

---
nocite: '@*'
---

# Bibliography

调用pandoc --output=bibliography.docx --bibliography YOUR_BIBTEX.bib nocite.md将生成一个docx文件,其中包含YOUR_BIBTEX.bib中所有项目的格式化条目。


更一般的情况是bibtex文件包含其他条目,应从参考书目中省略这些条目。人们将需要一种方法来将输出限制为文档中使用的引用。一个好的方法是根据需要使用Lua filter重写文档。

-- save this file as "bib-only.lua"

local cites = {}

-- collect all citations
function Cite (cite)
  table.insert(cites, cite)
end

-- use citations, but omit rest of the document
function Pandoc (doc)
  doc.meta.nocite = cites
  doc.blocks = {}
  return doc
end

运行

pandoc --lua-filter bib-only.lua -o bib.docx chapter1.md chapter2.md chapter3.md

应提供所需的输出。