在我的报告中,我引用了AERA,APA和NCME的教育和心理测试标准。
@Book{standards,
title = {{Standards for Educational and Psychological Testing}},
author = {{American Educational Research Association} and {American Psychological Association} and {National Council on Measurement in Education}},
shortauthor = {AERA},
publisher = {American Educational Research Association},
address = {Washington, DC},
year = {2014}
}
根据APA风格指南第6版,应该使用可识别的创作组织缩写。我第一次在文中引用这本书,它应该是这样的:
这是一些填充文本(美国教育研究协会 [AERA],美国心理学会,&全国委员会 关于教育测量,2014年)。还有一些 填充文本(AERA等,2014)。
但是,我的引用目前显示如下:
这是一些填充文本(美国教育研究协会, 美国心理学会,&全国计量委员会 在教育,2014年)。这里有一些填充文本(美国版) 教育研究协会等,2014)。
有没有办法在 bookdown 中实施这些引用?这里有一个最低限度可重复的例子:https://github.com/wjakethompson/bookdown-citations
答案 0 :(得分:2)
我开发了一种部分工作的解决方案。此解决方案打印长作者和缩短版本,但仅适用于单个作者,并且由于它使用LaTeX实现自定义,因此仅适用于PDF输出。< / p>
根据您提供的示例,我创建了一个参考书目test.bib
,如下所示:
@Book{standards2,
title = {{Standards for Educational and Psychological Testing}},
author = {{American Educational Research Association}},
shortauthor = {AERA},
publisher = {American Educational Research Association},
address = {Washington, DC},
year = {2014}
}
还创建了文件header.tex
。这定义了一个新的LaTeX命令\citefull
,它以(author [shortauthor], year)
格式打印出一个引文。这种方法基于this answer松散地基于此。文件内容如下:
\DeclareCiteCommand{\citefull}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\DeclareNameAlias{labelname}{first-last}%
\usebibmacro{prenote}}
{\ifciteindex
{\indexnames{labelname}}
{}%
(\printnames{author}
[\printnames{shortauthor}],
{\printdate})
}
{\usebibmacro{postnote}}
% Adds a comma between the author and year
\renewcommand*{\nameyeardelim}{\addcomma\space}
以下是Rmarkdown文件。进行了更改以使用biblatex作为引用包。要获得完整的引文,可以使用命令\citefull{}
。
---
output:
pdf_document:
includes:
in_header: header.tex
citation_package: biblatex
bibliography: test.bib
biblio-style: authoryear
---
\citefull{standards2}
[@standards2]
附加说明
正如我所说,这是一个部分解决方案,因为它不适用于多个 作者,我必须承认我对定制LaTeX引用的知识 没有延伸到那么远!希望有人能够扩展 这个答案能够改进这个功能。
我尝试使用解决方案explained here, 但是因为它需要在biblatex之前加载LaTeX包,所以 需要改变pandoc .tex模板。我觉得这个 使用头文件不太理想。
即使我编辑了原始模板,我仍然遇到问题 让这个解决方案有效。我收到了一个错误
\DeclareLanguageMappingSuffix
并且无法解决我的问题 搞砸了。我希望这些笔记可以帮助那些考虑探索更好解决方案的人。
答案 1 :(得分:2)
我能够改进Mikey Harper提供的解决方案。它仍然只是部分解决方案,因为它使用LaTeX包,因此仅适用于PDF。主要思想是使用this LaTeX solution并将其调整为RMarkdown。内容test.bib
:
@Book{standards,
title = {{Standards for Educational and Psychological Testing}},
author = {{American Educational Research Association} and {American Psychological Association} and {National Council on Measurement in Education}},
shortauthor = {{AERA et al.}},
publisher = {American Educational Research Association},
address = {Washington, DC},
year = {2014}
}
Rmd档案:
---
output:
pdf_document:
citation_package: biblatex
bibliography: test.bib
biblio-style: apa
biblatexoptions:
- sortcites
header-includes:
- \DeclareLanguageMapping{english}{american-apa}
---
[@standards]
[@standards]
这不是所要求的格式,因为短作者位于作者列表的末尾,但根据this question,没有更好的解决方案。因此我开了https://github.com/plk/biblatex-apa/issues/63。