Desativar impressão backref com fullcite

Desativar impressão backref com fullcite

Considere o seguinte 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}

Isso permite que os backrefs sejam formatados da maneira que eu quero (entre colchetes, etc), mas também imprime o backref com o \fullcitecomando. Como posso desabilitar o backref no corpo do documento ao usar \fullcitepreservando o backref (e a formatação) na bibliografia?

insira a descrição da imagem aqui

Responder1

Embora em teoria seria possível verificar se estamos no comando cite, ou na bibliografia (com \ifcitatione \ifbibliography, pp. 185-186 dobiblatexdocumentação, isso não é realmente necessário aqui, pois podemos apenas modificar a pagerefmacro para fazer o que você deseja (não há necessidade de um new mypageref) e usar o ponto final para separar as pagerefs do restante da entrada da bibliografia.

\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}}}}

O padrão pagerefnão é usado em \fullcites, então estamos bem aqui.

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}

insira a descrição da imagem aqui

informação relacionada