使用 fullcite 停用 backref 列印

使用 fullcite 停用 backref 列印

考慮以下 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}

這允許反向引用按照我想要的方式格式化(在括號之間等),但它也使用命令列印反向引用\fullcite。使用時如何停用文件正文中的反向引用,\fullcite同時保留參考書目中的反向引用(和格式)?

在此輸入影像描述

答案1

理論上,可以檢查我們是否在引用命令中,或者在參考書目中(使用\ifcitation\ifbibliography,第 185-186 頁)biblatex文件,這裡並不是真正必要的,因為我們只需修改巨集pageref來執行您想要的操作(不需要新的mypageref)並使用句號將頁面引用與參考書目條目的其餘部分分開。

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

pagerefs中沒有使用該標準\fullcite,所以我們在這裡沒問題。

微量元素

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

在此輸入影像描述

相關內容