我的参考文献列表中有几个来源需要缩写以引用它们(例如(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}}