如何在参考文献中打印 shortauthor?

如何在参考文献中打印 shortauthor?

我的参考文献列表中有几个来源需要缩写以引用它们(例如(IEA 2005))。我使用 biblatex 和 {shortauthor} 来做到这一点,效果很好。但是,我如何才能在参考文献列表中也显示缩写,使其看起来像这样:

IEA(2005):国际能源署。2005年世界能源展望....

或者甚至更好:

IEA – 国际能源署(2005 年): 2005年世界能源展望....

代替:

国际能源署(2005 年)。2005年世界能源展望....

答案1

您可以重新定义 bibmacro begentry

\documentclass[ngerman]{scrartcl}
\listfiles
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{iea,
author = {{International Energy Agency}},
title = {World Energy Outlook},
shortauthor = {IEA},
date = {2005}
}
\end{filecontents}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel,csquotes}

\usepackage[
    style=authoryear,
  backend=biber
]{biblatex}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\renewbibmacro*{begentry}{%
    \ifnameundef{shortauthor}
        {}
        {\printnames{shortauthor}%
         \addspace\textendash\space}}
\begin{document}
\cite{companion,iea}

\printbibliography
\end{document}

在此处输入图片描述

答案2

\renewbibmacro*{begentry}{%
    \ifnameundef{shortauthor}
         {}
         {\printnames{shortauthor}%
         \addspace\textendash\space}}

谢谢,这对我帮助很大。

我与您分享针对 author/shortauthor 与 editor/shorteditor 结合的解决方案:

\renewbibmacro*{begentry}{%
    \ifnameundef{shortauthor}
        {\ifnameundef{shorteditor}
            {}
            {\printnames{shorteditor}%
             \addspace\textendash\space}}
         {\printnames{shortauthor}%
          \addspace\textendash\space}}

相关内容