使用 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
应该给出所需的输出。
我有几章有引用。我的引文文件是 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
应该给出所需的输出。