在我目前正在进行的演示中,我希望所有引用都看起来像
[LastNameOfFirstAuthor 等 1999]
其中 1999 是年份,而“et al.”仅对多位作者显示。在相同情况下(即我谈论的是我的论文,而我不是第一作者),我希望它像这样
[LastNameOfFirstAuthor、LastNameOfSecondAuthor、MyLastName 等 1999]
我尝试通过以下设置来实现此行为:
\usepackage[url=false,citestyle=authoryear,block=ragged,backend=biber,
maxalphanames=1,maxcitenames=1,indexing=true]{biblatex}
加上覆盖 cite 命令,例如
\let\ORIGcite=\cite
\renewcommand{\cite}[2][1]{%
\AtNextCite{\defcounter{maxnames}{#1}\defcounter{minnames}{#1}}
\footnotesize[\ORIGcite{#2}]%
}
后一部分似乎运行良好,但如果您有一个被多次引用的作者(不同的作品),maxcitenames
则会忽略该设置。
即使明确设定作者数量也\cite\[1\]{...}
无济于事。
这是 MWE(希望格式不是太糟糕)
\documentclass[noshadow]{beamer}
\usepackage{filecontents}
\RequirePackage[url=false,citestyle=authoryear,block=ragged,backend=biber,maxcitenames=1,indexing=true]{biblatex}
\addbibresource{\jobname.bib}
\begin{filecontents}{\jobname.bib}
@InProceedings{b,
Title = {BBB},
Author = {Justin For and Compa Rison},
Year = {1999}
}
@PhdThesis{a,
Title = {AAA},
Author = {Some Name},
Year = {2002},
}
@InProceedings{c,
Title = {CCC},
Author = {Some Name and Second Author},
Year = {2012},
}
\end{filecontents}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\section{Slide 1}
\begin{frame}
\cite{c}\\
\cite{b,a}
\end{frame}
\begin{frame}{Literature}
\printbibliography
\end{frame}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
这产生了
Name and Author 2012
For et al. 1999; Name 2002
但应该产生
Name et al. 2012 <---
For et al. 1999; Name 2002
我将非常感激对这个问题的任何帮助。
答案1
好的,我自己找到了解决方案。这似乎与设置有关
uniquelist=false
。更多详细信息可在此处找到
在 biblatex 中使用“et al.”时,限制为一位作者
然而,对我来说这似乎很奇怪,因为在我给出的例子中,键将是唯一的(考虑到不同的出版年份和“et al.” - 后者可能不算数)。
答案2
您原始问题中的想法对我有帮助。我将在这里提取并稍微清理一下:
\newcommand{\citefirst}[1]{%
\AtNextCite{\defcounter{maxnames}{1}\defcounter{minnames}{1}}%
\citet{#1}%
}
如果您只想引用作者,请将 替换\citet
为\citeauthor
。