我想在 Rmarkdown 文档中包含正文和补充文本的单独参考部分。这里和这里建议的方法在很大程度上是有效的,但是如果在两个指定的 .bib 文件中都出现了参考文献,那么它们会出现在两个列表中,即使它们只在一个部分中被引用。
我通过重命名第二个 .bib 文件中的键,然后在补充中使用更改的引用键来解决这个问题。这很奏效,直到我在正文和附录中引用了同一篇论文。然后它们被解释为不同的引用,因此它们被标记为“a”和“b”,例如(Smith et al. 2000a)和(Smith et al. 2000b),即使它是完全相同的参考。
我通过在第二个 .bib 文件中仅包含补充中引用的那些参考资料来解决这个问题。如果这些参考文献也在正文中被引用,我不修改它们,但如果它们只出现在附录中,那么我修改引用键。然后修改后的密钥仅在第二个参考书目中出现。这似乎可行但很麻烦(并且容易出错,如果添加或删除文本引用等)。
有没有更好的办法?我想要指定一个 .bib 文件,其中包括将被引用的任何可能的参考资料(加上更多 - 它链接到 Zotero,我使用该citr
包插入引文)。然后我想要一些方法来重置扫描引文的范围。例如,我有
---
bibliography: "My Library.bib"
output:
bookdown::pdf_book:
fig_caption: yes
df_print: paged
number_sections: no
pandoc_args: --lua-filter=multiple-bibliographies.lua
toc: no
keep_tex: true
base_format: rticles::elsevier_article
---
# Main text
A bunch of text here with citations.
<!-- list all citation (and only those) occurring before the "\restartbib" function. -->
# Refereneces
::: {#refs}
:::
\restartbib
# Supplement
Some more text with citations, some of which also may be cited in the main text.
<!-- list all citation occurring after the "\restartbib" function. -->
# Supplemental Refereneces
::: {#refs}
:::
该\restartbib
函数将指定在函数命令之前出现的任何引用(并且仅那些引用)都列在同样在函数命令之前指定的引用中。同样,在命令之后出现的任何引用仅出现在以下参考书目中(除非它们也在前一节中被引用)。简而言之,该功能将使两个书目相互独立。理想情况下,对于>2 个独立的书目,可以根据需要经常调用此函数。
这是实现这一目标的任何方法吗?