Rmarkdown中有多个独立的参考部分

时间:2020-05-11 19:11:42

标签: lua r-markdown biblatex

我想在Rmarkdown文档中为主要文本和补充文本包括单独的参考部分。建议的方法herehere在很大程度上可以工作,但是,如果在两个指定的.bib文件中都出现了引用,则即使它们仅在一个部分中被引用,它们也会出现在两个列表中。

我通过重命名第二个.bib文件中的密钥,然后使用补编中更改的引文密钥来解决该问题。这一直有效,直到我在正文和补编中引用了同一篇论文。然后,它们被解释为不同的引用,因此即使它们是完全相同的引用,它们也都用“ a”和“ b”标记,例如(Smith等人2000a)和(Smith等人2000b)。

我通过在第二个.bib文件中仅包含补编中引用的那些参考文献来解决此问题。如果在正文中还引用了这些引用,则我将其保留不变,但如果仅在补编中出现,则将修改cite键。然后,修改后的键仅在第二书目中产生外观。这似乎可行,但很麻烦(如果在文本中引用,则容易出错) 添加或删除等)。

有更好的方法吗?我想要指定一个.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个独立书目可以根据需要多次调用此功能。

这有什么办法做到吗?

0 个答案:

没有答案