我尝试使用以下BibLatex
风格apa
引用一些参考文献:
... 稍微改编了 Biggs (1987, 1999; 类似模型请参阅 Marsick, Watkins, & O'Conner, 2011) 的模型......
我尝试获得以下结果(MWE)
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[style=apa, backend=biber, sortcites=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{biggs1987,
location = {Melbourne},
title = {Student approaches to learning and studying},
publisher = {Australian Council for Educational Research},
author = {Biggs, J.},
date = {1987}
}
@book{biggs1999,
location = {Buckingham},
title = {Teaching for quality learning at university. What the student does},
publisher = {Society for Research into Higher Education},
author = {Biggs, J.},
date = {1999}
}
@incollection{marsick2011,
location = {London},
title = {Researching workplace learning in the United States},
pages = {198--209},
booktitle = {The international handbook of workplace learning},
publisher = {Sage},
author = {Marsick, Victoria and Watkins, Karen and O'Conner, Bridget N.},
editor = {Malloch, M. and Cairns, L. and Evans, K. and O'Conner, Bridget N.},
date = {2011}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\ldots slightly adapted Biggs' (\citeyear{biggs1987, biggs1999}; see for a similar model \citeauthor{marsick2011}, \citeyear{marsick2011}) model of \ldots
\end{document}
但是输出只有:
... 稍微改编了 Biggs (1987, 1999; 类似模型请参阅 Marsick、Watkins 和 O'Conner, 2011) 的模型......
正如您所见,BibLatex 打印出“和“ 而不是 “&“。似乎\citeauthor
只被认为是用作文内引用(那里有“和“ 是正确的)。
我想我可以通过使用以下选项让我的生活更轻松一点natbib
(参见这里)然而,这改变了一些我不希望改变的阵型。
因此我的问题是:如何将“&”符号放入我的引文中,而无需全局更改和用于文内引用?
答案1
我们需要\finalnamedelim
在这里产生暂时的影响。
显而易见的解决方案是
\AtNextCite{%
\renewcommand{\finalnamedelim}{%
\ifnum\value{liststop}>2
\finalandcomma
\fi
\addspace\&\space}}
在违规引用之前。
由于这段内容很长并且在文档正文中看起来很奇怪,您可能需要为此定义一个新命令。
\newcommand{\switchtoparencite}{%
\AtNextCite{%
\renewcommand{\finalnamedelim}{%
\ifnum\value{liststop}>2
\finalandcomma
\fi
\addspace\&\space}}}
然后简单使用\switchtoparencite\cite{marsick2011}
就可以了。
当然,您也可以定义一个新的引用命令\nparencite
,其行为就像括号引用一样,但没有括号。
\DeclareCiteCommand{\nparencite}
{\renewcommand{\finalnamedelim}{\ifnum\value{liststop}>2 \finalandcomma\fi\addspace\&\space}%
\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}%
\usebibmacro{cite:post}}
然后你会说\nparencite{marsick2011}
我猜,您更喜欢哪一种解决方案取决于具体情况;我个人认为第二种解决方案非常巧妙。
MWE(显示两种解决方案)
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[style=apa, backend=biber, sortcites=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{biggs1987,
location = {Melbourne},
title = {Student approaches to learning and studying},
publisher = {Australian Council for Educational Research},
author = {Biggs, J.},
date = {1987}
}
@book{biggs1999,
location = {Buckingham},
title = {Teaching for quality learning at university. What the student does},
publisher = {Society for Research into Higher Education},
author = {Biggs, J.},
date = {1999}
}
@incollection{marsick2011,
location = {London},
title = {Researching workplace learning in the United States},
pages = {198--209},
booktitle = {The international handbook of workplace learning},
publisher = {Sage},
author = {Marsick, Victoria and Watkins, Karen and O'Conner, Bridget N.},
editor = {Malloch, M. and Cairns, L. and Evans, K. and O'Conner, Bridget N.},
date = {2011}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\newcommand{\switchtoparencite}{%
\AtNextCite{%
\renewcommand{\finalnamedelim}{%
\ifnum\value{liststop}>2
\finalandcomma
\fi
\addspace\&\space}}}
\DeclareCiteCommand{\nparencite}
{\renewcommand{\finalnamedelim}{\ifnum\value{liststop}>2 \finalandcomma\fi\addspace\&\space}%
\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}%
\usebibmacro{cite:post}}
\begin{document}
\ldots slightly adapted Biggs' (\citeyear{biggs1987, biggs1999}; see for a similar model \switchtoparencite\cite{marsick2011}) model of \ldots
\citereset
\ldots slightly adapted Biggs' (\citeyear{biggs1987, biggs1999}; see for a similar model \nparencite{marsick2011}) model of \ldots
\end{document}