仅引用第一作者和年份

仅引用第一作者和年份
\documentclass{article}
\usepackage{mwe}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite*{kastenholz}, \citeyear{kastenholz}
\end{document}

我正在寻找一种方法,用一个命令仅引用第一作者(如果不是唯一的,则引用更多作者)和年份。有点像,fullcite{}但反过来。我在文档中找不到这个。

我需要将其用于论文的特定部分。该功能应在“本地”工作,不会影响文档的任何全局设置。我想在表格中使用它来引用数据来源的论文,但表格中的空间使用量最少。

答案1

您可以从可用的命令中创建一个新的引用命令来执行您想要的操作。

\documentclass{article}
\usepackage{mwe}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}

\newcommand\mycite[1]{\AtNextCite{\defcounter{maxnames}{1}}\citeauthor{#1}, \citeyear{#1}}

\begin{document}
\mycite{kastenholz}

\end{document}

enter image description here

更新:正如 moewe 在评论中指出的那样,这种方法虽然简单,但也有相关的局限性。它不会处理前后注释(尽管可以对其进行调整以处理其中一种),也不会处理多个条目。如果这对您的情况来说足够了,那么很好,否则,对于更通用的解决方案,\DeclareCiteCommand最好使用(请参阅https://tex.stackexchange.com/a/398595/105447)。

答案2

看起来您想要的是作者年份类型的引文。因此请加载biblatex样式authoryear

如果你真的希望只显示第一作者,那么使用maxnames=1maxcitenames=1将示例引用呈现为Kastenholz 等人(2006 年)

\documentclass{article}
\usepackage{mwe}
\usepackage[style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\textcite{kastenholz}
\end{document}

output of code

答案3

您可以像这样定义一个新命令

\documentclass{article}
\usepackage{mwe}
\usepackage[style=numeric, labeldateparts]{biblatex}
\addbibresource{biblatex-examples.bib}

\newbibmacro{aycite}{%
  \defcounter{maxnames}{1}%
  \ifnameundef{labelname}
    {\printfield{labeltitle}%
     \setunit{\printdelim{nonameyeardelim}}}
    {\printnames{labelname}%
     \setunit{\printdelim{nameyeardelim}}}
  \printtext[bibhyperref]{\printlabeldateextra}}

\DeclareCiteCommand{\aycite}
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}%
   \usebibmacro{aycite}}
  {\multicitedelim}
  {\usebibmacro{postnote}} 

\begin{document}
\aycite{kastenholz}
\end{document}

我本来希望使用mincitenames=1, maxcitenames=1, uniquelist=true而不是\defcounter{maxnames}{1},但这违背了您不更改任何设置的愿望。只有使用 才能满足“如果不是唯一的,则使用更多”的要求mincitenames=1, maxcitenames=1, uniquelist=true。由于您使用样式,numeric因此这三个选项不太可能影响其他引用,但并非不可能(如果您使用,\textcite则可能会发生变化,如果您仅使用,\cite则应该不会有问题)。

我引入了该labeldateparts选项,但这不会影响其他命令。

相关内容