This filter allows to create multiple bibliographies using
citeproc
. The content of each bibliography is controlled via
YAML values and the file in which a bibliographic entry is
specified.
The bibliographies must be defined in a map below the
bibliography
key in the document's metadata. E.g.
---
bibliography:
main: main-bibliography.bib
software: software.bib
---
The placement of bibliographies is controlled via special divs.
# References
::: {#refs-main}
:::
# Software
::: {#refs-software}
:::
Each refs-x div should have a matching entry x in the metadata. These divs are filled with citations from the respective bib-file.
[!IMPORTANT] This filter works best with citation styles that use non-numeric citation labels.
The filter modifies the internal document representation; it can be used with many publishing systems that are based on pandoc.
Pass the filter to pandoc via the --lua-filter
(or -L
) command
line option.
pandoc --lua-filter multibib.lua ...
Users of Quarto can install this filter as an extension with
quarto install extension pandoc-ext/multibib
and use it by adding multibib
to the filters
entry
in their YAML header. (You also need to add validate-yaml: false
, as per this discussion.)
---
filters:
- multibib
validate-yaml: false
---
Use pandoc_args
to invoke the filter. See the R Markdown
Cookbook
for details.
---
output:
word_document:
pandoc_args: ['--lua-filter=multibib.lua']
---
This pandoc Lua filter is published under the MIT license, see
file LICENSE
for details.