自定义类型在后续引用中消失

自定义类型在后续引用中消失

Biblatex 在连续引用时不显示相同的来源。我尝试过dashed=false,但不起作用。我怎样才能使作品始终被完整引用,即使在后续引用中也是如此?

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@interview{homer,
  interviewee = {Homer Simpson},
  interviewer = {Bart Simpson},
  date        = {2018-07-25},
  address     = {Springfield},
}
\end{filecontents*}
\begin{filecontents}{interview.dbx}
\DeclareDatamodelEntrytypes{interview}
\DeclareDatamodelFields[type=list,datatype=name]{
  interviewer,
  interviewee,
}

\DeclareDatamodelEntryfields[interview]{
  addendum,
  doi,
  eprint,
  eprintclass,
  eprinttype,
  interviewer,
  interviewee,
  location,
  note,
  pubstate,
}
\end{filecontents}
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[datamodel=interview,backend=biber, dashed=false, style=authortitle, citestyle=verbose,]{biblatex}
\usepackage{hyperref}
\addbibresource{\jobname.bib}

\NewBibliographyString{interview}
\DefineBibliographyStrings{german}{%
  interview   = {Interview},
}

\DeclareNameAlias{interviewee}{author}

\DeclareBibliographyDriver{interview}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \printnames{interviewee}%
  \newunit\newblock
  \bibstring{interview}%
  \setunit{\addspace}%
  \printnames{interviewer}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{location+date}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\begin{document}
\footcite{homer}
\footcite{homer}

\printbibliography
\end{document}  

答案1

该系列的样式verbose在第一次引用时显示完整引用(即完整的参考/参考书目条目),在后续引用时显示较短的作者标题引用。

对于较短的作者-标题引文,样式verbose使用通常的labelnamelabeltitle字段。这些字段是人工字段,它们按一定的优先顺序从其他字段中获取内容。、和labelname中的第一个;、 、中的第一个。我们的引文没有这些字段,因此引文仍然完全为空。获取引文的一种解决方案是将具有 的字段包含在和的定义中,这样这些字段就不会为空。(short)author(short)editortranslatorlabeltitleshorttitletitlemaintitle@interview@interviewlabelnamelabeltitle

在评论中您提到,@interviews 也应该在后续引用中被完整引用,因此我们采取了略有不同的方法。以下 MWE 设置了一个通用结构,以区别对待特定条目类型的后续( shortin -speak)引用。biblatex

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@interview{homer,
  interviewee = {Homer Simpson},
  interviewer = {Bart Simpson},
  date        = {2018-07-25},
  address     = {Springfield},
}
\end{filecontents*}
\begin{filecontents}{interview.dbx}
\DeclareDatamodelEntrytypes{interview}
\DeclareDatamodelFields[type=list,datatype=name]{
  interviewer,
  interviewee,
}

\DeclareDatamodelEntryfields[interview]{
  addendum,
  doi,
  eprint,
  eprintclass,
  eprinttype,
  interviewer,
  interviewee,
  location,
  note,
  pubstate,
}
\end{filecontents}
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[datamodel=interview,backend=biber, dashed=false, style=verbose]{biblatex}
\usepackage{hyperref}
\addbibresource{\jobname.bib}

\NewBibliographyString{interview}
\DefineBibliographyStrings{german}{%
  interview   = {Interview},
}

\DeclareNameAlias{interviewee}{author}

\DeclareBibliographyDriver{interview}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \printnames{interviewee}%
  \newunit\newblock
  \bibstring{interview}%
  \setunit{\addspace}%
  \printnames{interviewer}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{location+date}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}

\newbibmacro*{cite:short:interview}{%
  \usebibmacro{cite:full:citepages}%
  \printtext[bibhyperlink]{%
    \usedriver
      {\DeclareNameAlias{sortname}{default}}
      {\thefield{entrytype}}}}

% cite:short is really 'cite:subsequent'
\renewbibmacro*{cite:short}{%
  \ifbibmacroundef{cite:short:\strfield{entrytype}}
    {\printnames{labelname}%
     \setunit*{\printdelim{nametitledelim}}%
     \printtext[bibhyperlink]{%
       \printfield[citetitle]{labeltitle}}}
    {\usebibmacro*{cite:short:\strfield{entrytype}}}}

\begin{document}
Lorem\footcite{homer}
ipsum\footcite{homer}

\printbibliography
\end{document}

Screenshot of the two footnotes in the MWE. Both footnotes show "Homer Simpson. Interview Bart Simpson. Springfield, 25. Juli 2018.", the second footnote is linked to the first

相关内容