5

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

citation-package: biblatex

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

===== 下面的原始问题

我无法预订以兑现我的 maxcitename=2 设置。我试过使用这个输出 yml

output: 
  bookdown::pdf_book:
    includes:
      in_header: preamble.tex
    keep_tex: yes
    toc_depth: 3
    toc_appendix: yes

在 preamble.tex 文件中使用这一行:

\usepackage[backend=bibtex, maxcitenames=2, style=authoryear]{biblatex}

我也尝试过使用这个输出 yml:

bibliography: [likertimputebiblio.bib, packages.bib]
biblatexoptions: [maxcitenames=2]
csl: harvard-university-of-wolverhampton.csl
link-citations: true
nocite: | 
  @R-bookdown

我也试过这个输出 yml:

site: bookdown::bookdown_site
documentclass: book
header-includes:
  - \usepackage[backend=bibtex, maxcitenames=2, style=authoryear]{biblatex}

但似乎没有任何效果。

请帮忙。谢谢。

4

1 回答 1

3

经过一番坚持,终于找到了解决这个问题的办法!

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

citation_package: biblatex

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

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

biblatexoptions: [backend=bibtex, maxcitenames=2]

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

C:\Program Files\R-3.4.0\library\rmarkdown\rmd\latex

在第 100 行,从

\usepackage$if(biblio-style)$[style=$biblio-style$]$endif${biblatex}

\usepackage$if(biblio-style)$[backend=bibtex, style=$biblio-style$]$endif${biblatex}

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

于 2017-06-21T13:06:32.957 回答