Gle*_*fer 6 lua biblatex r-markdown
我想在 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}
:::
Run Code Online (Sandbox Code Playgroud)
该\restartbib函数将指定在函数命令之前发生的任何引用(并且仅那些引用)都列在也在函数命令之前指定的引用中。同样,命令之后发生的任何引用仅出现在以下参考书目中(除非它们也在上一节中被引用)。简而言之,该功能将使两个参考书目彼此独立。理想情况下,可以根据需要多次调用此函数以获取 >2 个独立的参考书目。
有什么方法可以实现这一点吗?