首页 > 解决方案 > Rmarkdown 中的多个独立参考部分

问题描述

我想在 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 个独立的书目,可以根据需要经常调用此函数。

这是实现这一目标的任何方法吗?

标签: luar-markdownbiblatex

解决方案


推荐阅读