
Considere el siguiente 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}
Esto permite formatear las referencias anteriores de la manera que quiero (entre corchetes, etc.) pero también imprime la referencia anterior con el \fullcite
comando. ¿Cómo puedo desactivar la referencia inversa en el cuerpo del documento cuando lo uso y \fullcite
al mismo tiempo conservo la referencia inversa (y el formato) en la bibliografía?
Respuesta1
Si bien en teoría sería posible comprobar si estamos en un comando de cita, o en la bibliografía (con \ifcitation
y \ifbibliography
, pp. 185-186 delbiblatex
documentación, eso no es realmente necesario aquí, ya que podemos simplemente modificar la pageref
macro para que haga lo que desee (no hay necesidad de un nuevo mypageref
) y usar el punto para separar las referencias de página del resto de la entrada de bibliografía.
\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}}}}
El estándar pageref
no se usa en \fullcite
s, así que estamos bien aquí.
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}