R Markdown:BibLaTeX 重复参考书目添加到 ToC 时

R Markdown:BibLaTeX 重复参考书目添加到 ToC 时

R markdown 文件index.rmd

---
title: title
author: author
bibliography: bib.bib
output:
  pdf_document:
    latex_engine: xelatex
    toc: true
    pandoc_args: ["--biblatex"]
header-includes:
  - \usepackage[]{biblatex}
---

# heading
lorem \autocite{mycite}

结果是:

pdf 页面包含目录和第一部分,目录中未包含参考资料

我想将该references部分添加到目录。我尝试了六个解决方案,其中之一是使用 biblatex/biber 时参考书目不在目录中

与所有其他解决方案一样,添加\printbibliography[heading=bibintoc]导致重复的参考部分: 在此处输入图片描述

有没有办法完全抑制参考部分以手动配置它?

(如果能够重命名参考文献部分就更好了)

答案1

通常

\printbibliography[heading=bibintoc, title={Works Cited}]

是正确的选择。但是使用 Rmarkdown/pandoc会自动生成参考书目,因此\printbibliography在代码中添加一个即可生成第二个参考书目。

模板pandoc位于https://github.com/jgm/pandoc-templates/blob/master/default.latex这表明没有办法将类似选项注入heading=bibintoc\printbibliography由 生成的文件中pandoc。但可以使用以下方法设置参考书目标题:

biblio-title: Works Cited

如果 pandoc不会净化你用括号提供的输入,但可以通过这种方式注入选项

biblio-title: Works Cited, heading=bibintoc

我不确定这是否有效,但即使有效,这也是一个非常肮脏的伎俩。


使用现代biblatex版本(至少是 2019-08-17 的 v3.12),您可以添加

\DeclarePrintbibliographyDefaults{heading=bibintoc}

在您的序言中为所有呼叫设定heading=bibintoc默认设置。\printbibliography

biblatex如果由于您年龄太大而无法使用该命令,您可以添加

\csletcs{blx@head@bibliography}{blx@head@bibintoc}

到你的序言中。这使得默认书目标题bibliography具有与相同的定义bibintoc


如果我理解正确的话应该可以使用

output:
  pdf_document:
    citation_package: biblatex
biblio-style: numeric
biblatexoptions: [backend=biber, maxbibnames=999]

让 Rmarkdown/为您pandoc加载biblatex,而不是通过\usepackage[]{biblatex}--biblatex选项添加它。

例如比较一下将 biblatex 与 R Markdown 结合使用

答案2

添加以下内容:

\section*{Works Cited} % adds section
\addcontentsline{toc}{section}{Works Cited} % adds section to table of content
\defbibheading{bibliography} % replaces bibliography heading with nothing 

答案3

这显然不是理想的,但你可以尝试类似的方法

\printbibliography[label=references, heading=bibintoc, title={Works Cited}]
\let\printbibliography\relax

  1. 在您想要的位置插入参考文献列表,
  2. 确保每当 pandoc 尝试重新插入参考文献列表时,都不会显示任何内容。

相关内容