在编译为PDF和HTML的R markdown文件中使用biblatex/natbib的高级引用命令(例如citetitle、citeauthor、footcite)。

8

无论是natbib还是biblatex都提供了多种不同的命令用于插入引文。

然而,在 R Markdown 中,只有其中几个命令可用:

描述 R Markdown natbib 命令 biblatex 命令
经典引用方式: 作者、年份和括号(圆括号或方括号取决于引文样式) [@key] \citep{key} \parencite[前缀][后缀]{key}
内文引用方式: 作者(年份)(根据引文样式可能不带方括号或者带方括号) @key \citet{key} \cite[前缀][后缀]{key}
仅列出年份/不列出作者: (年份) [-@key] \citeyear{key} \citeyear[前缀][后缀]{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问题: 仅引用作者并在正文引用中添加所有格; 更灵活的引用格式


引用参考文献会非常有帮助:“Bob&Dylan(1965年,第365页)指的是滚石乐队。” 有人知道如何以这种方式扭曲或扩展@key[@key]吗? - mavericks
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 过滤器来编写自己的插件,扩展引用语法。但这可能比值得投入更大的精力。


谢谢您的建议。我们的想法是使用多种输出格式,特别是PDF和HTML(有时还会使用带有修订跟踪功能的Word文档进行审查)。我应该在最初的描述中更清楚地表明这一点,对此我深表歉意。 - mavericks
如果在规定时间内没有提出更多的答案,那么这些分数仍然属于你,@tarleb。再次感谢。 - mavericks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接