biblatex 参考书目的“引用为”输入字段

biblatex 参考书目的“引用为”输入字段

我想添加一个 biblatex 输入字段,如果激活,则会打印引用内容的方式。因此,在参考书目中我会有类似这样的内容:在此处输入图片描述

所以我们的想法是,设立一个专门的入口区域。”引用次数“ 例如:

@COMMENTARY{beck.ok,
    MAINTITLE       = {Beck'scher Online-Kommentar BGB},
    SHORTTITLE      = {},
    EDITOR          = {Bamberger, Heinz Georg and Roth, Herbert and Hau, Wolfgang and Poseck, Roman},
    SHORTHAND       = {BeckOK},
    VOLUME          = {},
    TITLE           = {},
    YEAR            = {2018},
    EDITION         = {45},
    HOWCITED        = {1},
}

此字段将充当开关。如果输入为“1”,则该字段将首先打印以下文本:

“(也被称为:”

然后它要么获取shorthand条目并打印它,然后打印“/贝尔贝特)”

所以最后我会留下类似“(zitiert als: shorthand/贝尔贝特)”

请参阅附图。

有什么想法可以实现吗?提前谢谢!

答案1

对我来说,定义一个输入选项而不是定义一个具有一次性值的字段似乎更自然。

定义条目选项 后,您可以使用或 短文本howcited启用“howcited”功能。下面的选项也是按类型和全局实现的,因此您可以为所有类型的条目或一次为所有条目启用“howcited”,而无需在文件中设置选项。由于宏在执行任何操作之前会检查 ,因此您可能可以根据每个类型设置选项:options = {howcited=true},options = {howcited},.bib@commentary.bibshorthand

\ExecuteBibliographyOptions[commentary]{howcited}

这节省了您必须向文件中的每个条目添加选项的工作.bib

bibmacro 方面的事情相当简单,实际上有点像shorthandintro中的宏biblatex.def。在这里我将宏挂接到 中finentry,但由于您似乎无论如何都有完全自定义的样式,因此您可能会找到更优雅的地方。

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}

\newtoggle{tnbcbx@howcited}
\DeclareEntryOption[boolean]{howcited}[true]{\settoggle{tnbcbx@howcited}{#1}}
\DeclareBibliographyOption[boolean]{howcited}[true]{\settoggle{tnbcbx@howcited}{#1}}
\DeclareTypeOption[boolean]{howcited}[true]{\settoggle{tnbcbx@howcited}{#1}}

\newbibmacro{howcited}{%
  \iftoggle{tnbcbx@howcited}
    {\iffieldundef{shorthand}
       {}
       {\setunit{\addspace}%
        \printtext[parens]{%
          \bibstring{citedas}%
          \setunit{\addcolon\space}%
          \printfield{shorthand}%
          \setunit{\addslash}%
          \bibstring[\emph]{bearbeiter}}}}
    {}}

\renewbibmacro{finentry}{\usebibmacro{howcited}\finentry}

\NewBibliographyString{bearbeiter}
\DefineBibliographyStrings{ngerman}{
  citedas    = {zitiert als},
  bearbeiter = {Bearbeiter},
}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@collection{beck.ok,
  maintitle = {Beck'scher Online-Kommentar BGB},
  editor    = {Bamberger, Heinz Georg and Roth, Herbert and Hau, Wolfgang and Poseck, Roman},
  shorthand = {BeckOK},
  date      = {2018},
  edition   = {45},
  options   = {howcited},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\cite{sigfridsson,beck.ok}
\printbibliography
\end{document}

Bamberger,Heinz Georg ua,Hrsg。 (2018)。 *Beck'scher 在线评论 BGB*。 45. 澳大利亚(以 BeckOK/*Bearbeiter* 的身份发表)。

相关内容