2

我需要#从我的 Rmarkdown 文档中删除符号,具体在参考部分。.bib我使用一个名为biblio.bib的外部档案。

我的 YAML 标头是:

---
output: 
    pdf_document:
      number_sections: true
header-includes:
  - \usepackage[spanish]{babel}     
  - \usepackage{cite}
bibliography: biblio.bib
---

在参考部分我使用knitcitations包:

# Referencias {-}




```{r generateBibliography, echo=FALSE, eval=TRUE, message=FALSE, warning=FALSE}
require("knitcitations")
cleanbib()
read.bibtex(file = "biblio.bib")
```

我的pdf_document输出:

在此处输入图像描述

4

2 回答 2

1

在我看来,最好使用@jaySf 的回答中提出的 pandoc 原生引用。

但是,您的问题可以使用 chunk option 来解决results="asis"。目前,您的块的输出被格式化为代码,尽管它应该被格式化为文本。结果控制了这一点。请参阅块选项文档

```{r generateBibliography, results="asis", echo=FALSE, eval=TRUE, message=FALSE, warning=FALSE}
require("knitcitations")
cleanbib()
read.bibtex(file = "biblio.bib")
```
于 2017-08-11T08:47:55.560 回答
1

如果您不依赖knitcitations,我可以提供替代解决方案:

在编辑器中打开您的biblio.bib,您应该会找到类似@article{einstein_relativity_1925, .... (也许使用像JabRef这样的程序更可行。)现在在你的文本中你可以简单地引用如下:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo 
ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus [@einstein_relativity_1925]. 

产生:

..., nascetur ridiculus mus (爱因斯坦, 1925)。

如果只需要年份,则设置前导减号:

However, Einstein [-@einstein_relativity_1925] concluded ... 

产生:

爱因斯坦(1925)总结...

现在请注意您的biblio.bib与您的*.Rmd -File位于同一目录中,并在论文末尾添加以下内容:

# Referencias
```{r refmgr references, results="asis", echo=FALSE}
```

编织到 PDF 时,您使用的所有参考资料现在应自动按字母顺序列出:

参考文献

A. 爱因斯坦 (1925)。相对论。物理学,第 2 版。Teubner,莱比锡。

A. 爱因斯坦 (1927)。...

...

PS:您现在可以 - \usepackage{cite}从 YAML 标头中删除该行。

于 2017-08-10T14:19:22.143 回答