Biblatex:覆盖从 Citavi 导出的特定 bib 条目的标题

Biblatex:覆盖从 Citavi 导出的特定 bib 条目的标题

我想引用一条法律,但它的标题很长。我想要实现的是在我的脚注中显示短标题(例如“BDSG”),在我的参考书目中显示长标题(“Bundesdatenschutzgesetz”)。

我使用 Citavi 来组织我的资源。这就是为什么我无法手动覆盖 .bib 条目,每次启动 Citavi 导出时它都会被覆盖。

这是一个代码示例:

\usepackage[backend=biber,dashed=false,style=authortitle]{biblatex}
\bibliography{BIBFILE}
\begin{document}
Lorem ipsum\cite{BDSG}
\printbibliography[heading=bibintoc]
\end{document}

文中引用应为“BDSG”以及我的参考书目中的来源名称“Bundesdatenschutzgesetz [更多信息]”。

您知道如何实现这一目标吗?

答案1

你想要shorttitleshorthand字段。所以理想情况下事情应该很简单

@online{bdsg,
  title      = {Bundesdatenschutzgesetz},
  shorttitle = {BDSG},
}

但是,如果您无法修改该.bib文件,您可以让 Biber 为您修改。下面将shorttitle = {BDSG},使用键添加到条目中bdsg

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@online{bdsg,
  title = {Bundesdatenschutzgesetz},
}
\end{filecontents*}


\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,dashed=false,style=authortitle]{biblatex}
\usepackage{hyperref}
\addbibresource{\jobname.bib}

\DeclareSourcemap{
  \maps{
    \map{
      \step[fieldsource=entrykey, match=\regexp{\A bdsg \Z}, final]
      \step[fieldset=shorttitle, fieldvalue=BDSG]
    }
  }
}

\begin{document}
\cite{bdsg}

\printbibliography
\end{document}

相关内容