Deaktivieren Sie das Drucken von Backrefs mit Fullcite

Deaktivieren Sie das Drucken von Backrefs mit Fullcite

Betrachten Sie die folgenden MWE

\documentclass{article}
\usepackage[style=authoryear-comp,backend=biber,backref=true]{biblatex}
\addbibresource{biblatex-examples.bib}

\newbibmacro*{mypageref}{%
\addperiod
  \iflistundef{pageref}
    {}
    {\printtext[brackets]{%
      \ifnumgreater{\value{pageref}}{1}
        {\bibstring{backrefpages}\ppspace}
    {\bibstring{backrefpage}\ppspace}%
      \printlist[pageref][-\value{listtotal}]{pageref}}}}
\renewbibmacro{pageref}{}

\renewbibmacro{finentry}{%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{mypageref}%
  \finentry}

\begin{document}
\fullcite{knuth:ct:e}
\printbibliography
\end{document}

Dadurch können die Backrefs so formatiert werden, wie ich sie haben möchte (in Klammern usw.), aber es wird auch der Backref mit dem \fullciteBefehl gedruckt. Wie kann ich Backref im Hauptteil des Dokuments deaktivieren, wenn ich verwende, \fullcitewährend Backref (und Formatierung) in der Bibliografie erhalten bleiben?

Bildbeschreibung hier eingeben

Antwort1

Theoretisch wäre es möglich zu prüfen, ob wir uns in einem Zitatbefehl befinden oder in der Bibliographie (mit \ifcitationund \ifbibliography, S. 185-186 derbiblatexDokumentation, das ist hier nicht wirklich nötig, da wir das pagerefMakro einfach so ändern können, dass es das tut, was Sie wollen (ein neues ist nicht nötig mypageref) und den Punkt verwenden können, um die Seitenverweise vom Rest des Bibliografieeintrags zu trennen.

\renewcommand{\bibpagerefpunct}{\addperiod\space}
\renewbibmacro*{pageref}{%
  \iflistundef{pageref}
    {}
    {\printtext[brackets]{%<--- here we had parens before
       \ifnumgreater{\value{pageref}}{1}
         {\bibstring{backrefpages}\ppspace}
         {\bibstring{backrefpage}\ppspace}%
       \printlist[pageref][-\value{listtotal}]{pageref}}}}

Der Standard pagerefwird in \fullcites nicht verwendet, also ist alles in Ordnung.

MWE

\documentclass{article}
\usepackage[style=authoryear-comp,backend=biber,backref=true]{biblatex}
\addbibresource{biblatex-examples.bib}

\renewcommand{\bibpagerefpunct}{\addperiod\space}
\renewbibmacro*{pageref}{%
  \iflistundef{pageref}
    {}
    {\printtext[brackets]{%
       \ifnumgreater{\value{pageref}}{1}
         {\bibstring{backrefpages}\ppspace}
         {\bibstring{backrefpage}\ppspace}%
       \printlist[pageref][-\value{listtotal}]{pageref}}}}

\begin{document}
\fullcite{knuth:ct:e}
\printbibliography
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen