Мне известны два способа достижения этого, оба работают только с PDF-документами (т. Е. apa6_pdf()
). Обновление : ниже добавлен pandoc-citeproc
подход, который я бы рекомендовал, поскольку он не требует нового синтаксиса и работает для документов PDF и Word.
1. apacite
В первом подходе используется пакет apacite
, что позволяет использовать \nocitemeta
. Недостатком этого подхода является то, что, насколько я знаю, вам нужно деактивировать pandoc-citeproc
, установив pandoc: no
. Это приводит к тому, что общий синтаксис pandoc-citeproc
цитирования (например, @R-papaja
) игнорируется. Вам необходимо использовать синтаксис apacite
во всем документе.
---
title : "The title"
shorttitle : "Title"
author:
- name : "First Author"
affiliation : "1"
affiliation:
- id : "1"
institution : "Wilhelm-Wundt-University"
bibliography : ["r-references.bib"]
citeproc : no
header-includes :
- \usepackage[natbibapa]{apacite}
- \bibliographystyle{apacite}
- \renewcommand{\APACmetastar}{\ensuremath{{}^\ast}}
documentclass : "apa6"
classoption : "man"
output : papaja::apa6_pdf
---
```{r}
library("papaja")
```
\nocitemeta{R-base}
This works: \citet{R-papaja}
This doesn't work: @R-papaja
```{r create-r-references}
r_refs(file = "r-references.bib")
```
\bibliography{r-references.bib}
2. biblatex
Второй подход, вдохновленный этим ответом , основан на biblatex
и вводит пользовательскую команду, которая имитирует \nocitemeta
из apacite
. Преимущество здесь в том, что синтаксис цитирования pandoc-citeproc
все еще работает.
---
title : "The title"
shorttitle : "Title"
author:
- name : "First Author"
affiliation : "1"
corresponding : yes # Define only one corresponding author
address : "Postal address"
email : "my@email.com"
affiliation:
- id : "1"
institution : "Wilhelm-Wundt-University"
bibliography : ["r-references.bib"]
biblio-style : "apa"
header-includes:
- \DeclareLanguageMapping{english}{english-apa}
- \DeclareBibliographyCategory{asterisk}
- \renewbibmacro*{begentry}{\ifcategory{asterisk}{\ensuremath{{}^\ast}}{}}
- \newcommand*{\nocitemeta}[1]{\nocite{#1}\addtocategory{asterisk}{#1}}
output:
papaja::apa6_pdf:
citation_package: biblatex
---
```{r}
library("papaja")
```
\nocitemeta{R-base}
Now this works: @R-papaja
```{r create-r-references}
r_refs(file = "r-references.bib")
```
\defbibnote{asterisk}{References marked with an asterisk indicate studies included in the meta-analysis.}
\printbibliography[title=References,prenote=asterisk]
\renewcommand{\printbibliography}{}
3. pandoc-citeproc
Изменяя файл CSA APA по умолчанию (см. здесь ), можно отобразить звездочку перед всеми записями библиографии, в которых есть указанное поле. Для этого примера я выбрал поле annotation
в файле BibTeX. Затем я использую поле nocite
в тексте YAML, чтобы перечислить работы, включенные в метаанализ (дополнительные записи должны быть разделены ,
).
---
title : "The title"
shorttitle : "Title"
author:
- name : "First Author"
affiliation : "1"
affiliation:
- id : "1"
institution : "Wilhelm-Wundt-University"
bibliography : ["r-references.bib"]
csl : "apa6-meta.csl"
nocite : |
@R-base
documentclass : "apa6"
classoption : "man"
output : papaja::apa6_pdf
---
```{r}
library("papaja")
```
@R-papaja
\newpage
# References
```{r create_r-references}
r_refs(file = "r-references.bib")
```
\begingroup
\setlength{\parindent}{-0.5in}
\setlength{\leftskip}{0.5in}
References marked with an asterisk indicate studies included in the meta-analysis.
<div id = "refs"></div>
\endgroup
Отредактированный файл BibTeX r-references.bib
выглядит следующим образом (обратите внимание на поле annotation
для R-base
:
@Manual{R-base,
title = {R: A Language and Environment for Statistical Computing},
author = {{R Core Team}},
organization = {R Foundation for Statistical Computing},
address = {Vienna, Austria},
year = {2018},
url = {https://www.R-project.org/},
annotation = {meta-analysis}
}
@Manual{R-papaja,
author = {Frederik Aust and Marius Barth},
title = {{papaja}: {Create} {APA} manuscripts with {R Markdown}},
year = {2018},
note = {R package version 0.1.0.9842},
url = {https://github.com/crsh/papaja},
}