7

两者都natbib提供biblatex了各种各样的命令来插入引文。

但是, R markdown中似乎只有少数可用:

描述 R降价 natbib 命令 biblatex 命令
古典引文:作者、年份和括号(根据引文风格使用圆括号或方括号) [@key] \citep{key} \parencite[Prefix][Suffix]{key}
文本引用:作者(年份)(不带方括号或带括号,具体取决于引文风格) @key \citet{key} \cite[Prefix][Suffix]{key}
仅年份/禁止作者:(年份) [-@key] \citeyear{key} \citeyear[Prefix][Suffix]{key}
在参考书目中包含项目而不在文档中引用它 未使用的参考文献(nocite) \nocite{key} \nocite{key}

经常有人想使用更高级的命令,例如只引用作者并隐藏年份。

有没有办法在 R markdown 文档中添加和使用以下引用命令,以多种输出格式编译,特别是 PDF 和 HTML?

\citetitle{key} Returns the title of the source.
\citeauthor{key} Returns the author(s) of the cited source.
\footcite{key} Creates a footnote within the document.
\fullcite{key} Creates a complete quote like in the bibliography
\footfullcite{key} Creates a complete citation, as in the bibliography, in a footnote.

相关 SO Q: 仅作者和在文本引用中添加所有格更灵活的引用格式

4

1 回答 1

3

要看。如果您只制作 PDF 文档,那么您可以直接使用 natbib 或 biblatex并使用原始的 LaTeX 命令。

---
output:
  pdf_document:
    citation_package: biblatex
---

Show just the author of citation with ID "rick": \citeauthor{rick}

但这适用于 PDF 输出。


其他格式很棘手。R Markdown 使用citeproc处理器,它根据用引文样式语言 (CSL)编写的定义来处理和样式化引文。有些事情可以通过这种方式进行控制,例如一致地使用脚注作为参考。CSL 不支持其他选项,例如仅作者引用。

理论上,您可以使用pandocfiltersLua 过滤器来破解您自己的插件,扩展引用语法。但这可能比它的价值更麻烦。

于 2020-12-22T16:40:43.313 回答