我使用 LaTeX 撰写我的博士论文,并使用 biblatex-apa 作为 bib 样式。
除了参考书目之外,还有一个部分将列出我在攻读博士学位期间发表的论文。我使用\fullcite
简单列表环境中的命令来执行此操作。
我有一些出版物,其中作者和出版年份相同。 Biblatex 将它们设置为与参考书目中相同的方式:
- 作者 1、作者 2 和作者 3 (2011a)。标题 A。期刊 A,...
- 作者 1、作者 2 和作者 3 (2011b)。标题 B。期刊 B,...
我想省略年份声明中的字母(但仅限于\fullcite
我的出版物部分中的项目,一般不涉及,即影响参考书目)
那可能吗?
答案1
您必须在命令\clearfield{extrayear}
中添加\fullcite
。您可以通过重新定义它或创建自己的命令来实现这一点。
此 MWE 重新定义了现有的\fullcite
:
我曾尝试修补命令(通过xpatch
)而不是复制它并添加\clearfield{extrayear}
;也许这是最好的解决方案,但不幸的是,我做不到。
\documentclass{article}
\begin{filecontents}{\jobname.bib}
@book{a,
author = {A. Uthor},
title = {A title},
year = {2013}
}
@book{b,
author = {A. Uthor},
title = {Another title},
year = {2013}
}
@article{c,
author = {A. Uthor},
title = {Another title from the same year},
journal = {Journal},
date = {2013-09}
}
\end{filecontents}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{\jobname.bib}
\makeatletter
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{\usedriver
{\DeclareNameAlias{sortname}{default}%
\global\boolfalse{bbx:in}%
\global\let\blx@related@loop\@empty%
\clearfield{extradate}% <---- added this
}
{\thefield{entrytype}}%
\usebibmacro{cite:post}}
{\multicitedelim}
{\usebibmacro{postnote}}
\makeatother
\begin{document}
\autocites{a,b,c}
\fullcite{a}, \fullcite{b}, \fullcite{c}
\printbibliography
\end{document}