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

Generate Bibliography file from multiple files with Pandoc

我有几章有引用。我的引文文件是 bibtex 格式。我想创建一个格式化的参考书目,其中包括单个文件中各章的所有引文(出版商更喜欢 DOCX)。我该怎么做?

如果 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

应该给出所需的输出。