我想引用一本书的前言。因此,当我将详细信息输入为 @incollection 条目时,参考列表中没有出现书籍作者。这适用于作者年份参考样式。但不适用于 APA。任何帮助都将不胜感激。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=apa]{biblatex}
\DeclareLanguageMapping{english}{english-apa}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{Author1976,
address = {Cambridge},
author = {Author, A},
booktitle = {Book title},
bookauthor = {Bookauthor, A and Bookauthor, B},
pages = {1--10},
publisher = {University Press},
title = {{Foreword title}},
year = {1976}
}
\end{filecontents}
\bibliography{\jobname.bib}
\begin{document}
\cite{Author1976}
\printbibliography
\end{document}
输出应如下所示。
答案1
试试这个。(我已经用过了@suppbook
,因为@moewe 说得对,这更有意义——@incollection
但仍然有效。
的名称格式bookauthor
使用设置DeclareNameAlias{bookauthor}{apanames}
,\xpatchbibmacro
用于在bookauthor
后面插入在在maintitle+booktitle
宏中。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{csquotes}
\usepackage{xpatch}
\usepackage[backend=biber,style=apa]{biblatex}
\DeclareLanguageMapping{english}{english-apa}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@suppbook{Stone1976,
address = {Cambridge, England},
author = {Stone, R},
booktitle = {Social Accounting for Development Planning with Special Reference to {Sri Lanka}},
bookauthor = {Pyatt, G and Roe, A},
pages = {xvi-xxxi},
publisher = {Cambridge University Press},
title = {Foreword},
subtitle = {The Development of Economic Data Systems},
year = {1976}
}
\end{filecontents}
\bibliography{\jobname.bib}
\DeclareNameAlias{bookauthor}{apanames}
\xpatchbibmacro{maintitle+booktitle}{%
\usebibmacro{in}%
}
{%
\usebibmacro{in}%
\ifnameundef{bookauthor}
{}
{\usebibmacro{bybookauthor}%
\setunit*{\addcomma\space}}%
}{}{}
\pagestyle{empty}
\begin{document}
\cite{Stone1976}
\printbibliography
\end{document}
答案2
如你所见,这里的名字顺序是错误的。它不是
姓氏,[短]名字但
[简称] 名字,姓氏
要改变这一点,请替换\DeclareNameAlias{bookauthor}{apanames}
为\DeclareNameAlias{bookauthor}{apaauthor}
。
在标准 biblatex.def 中,NameAlias 为书作者和作者也指作者分别作者(也指作者)(即默认)。
(无法评论,所以我不得不将其作为新答案发布)