引文包:biblatex在R bookdown中不起作用

jul*_*ell 5 r biblatex bookdown

编辑:经过一番调查,这个问题实际上是关于输出yml中的以下选项:

citation-package: biblatex
Run Code Online (Sandbox Code Playgroud)

如果没有此选项,bookdown将使用默认的citeproc,并且尚不清楚如何修改作者数量。但是,使用此选项时,引用不再起作用,并且我的文档仅包含以粗体显示的引用名称,而不是内联引用。所以我真的需要知道为什么引用软件包:biblatex无法正常工作

=====以下是原始问题

我无法预订以遵守我的maxcitename = 2设置。我尝试使用此输出yml

output: 
  bookdown::pdf_book:
    includes:
      in_header: preamble.tex
    keep_tex: yes
    toc_depth: 3
    toc_appendix: yes
Run Code Online (Sandbox Code Playgroud)

在preamble.tex文件中的以下行:

\usepackage[backend=bibtex, maxcitenames=2, style=authoryear]{biblatex}
Run Code Online (Sandbox Code Playgroud)

我也尝试使用此输出yml:

bibliography: [likertimputebiblio.bib, packages.bib]
biblatexoptions: [maxcitenames=2]
csl: harvard-university-of-wolverhampton.csl
link-citations: true
nocite: | 
  @R-bookdown
Run Code Online (Sandbox Code Playgroud)

而且我也尝试了此输出yml:

site: bookdown::bookdown_site
documentclass: book
header-includes:
  - \usepackage[backend=bibtex, maxcitenames=2, style=authoryear]{biblatex}
Run Code Online (Sandbox Code Playgroud)

但似乎没有任何效果。

请帮忙。谢谢。

jul*_*ell 3

经过不懈的努力终于找到了解决这个问题的方法!

设置输出 yml 时,在输出下缩进:等...

citation_package: biblatex
Run Code Online (Sandbox Code Playgroud)

...内联引用无法链接到 .bib 文件,因此引用名称只是以粗体显示,并且无法进行任何内联引用。

预期的解决方案应该是使用附加选项:

biblatexoptions: [backend=bibtex, maxcitenames=2]
Run Code Online (Sandbox Code Playgroud)

(maxcitenames=2 是我想使用 biblatex 的主要原因)但是失败并出现错误“选项后端无法识别”。最后解决办法是修改目录下的默认模板

C:\Program Files\R-3.4.0\library\rmarkdown\rmd\latex
Run Code Online (Sandbox Code Playgroud)

在第 100 行,从

\usepackage$if(biblio-style)$[style=$biblio-style$]$endif${biblatex}
Run Code Online (Sandbox Code Playgroud)

\usepackage$if(biblio-style)$[backend=bibtex, style=$biblio-style$]$endif${biblatex}
Run Code Online (Sandbox Code Playgroud)

我想向包作者建议这是一个需要修复的错误,因为 backend=bibtex 是一个有效的选项,应该已经通过