不同条目的引用中的 Backref

不同条目的引用中的 Backref

在以下文档中,我使用了带有 backref 的 biblatex。但是,不同类型的条目之间的 backref 输出略有不同。对于文章,页码后面不是句号,而是直接跟在 backref 后面,因此“cit. on”为小写。对于 incollection,引用后面跟着句号,因此“Cit. on”为大写。我希望文章中的“Cit. on”也大写,这就是为什么我希望在文章引用之后和 backref 之前有一个句号。这是一个 MME:

\documentclass[11pt]{scrartcl}
\usepackage[backend=biber,style=apa,backref=true]{biblatex}

\begin{filecontents}{testbib.bib}
@article{art:21,
    author = {A. Author},
    journal = {Journal},
    volume = {1},
    number = {2},
    pages = {3--4},
    title = {Title},
    year = {2021},
}

@incollection{inc:21,
    author = {B. Bauthor},
    booktitle = {Booktitle},
    editor = {E. Editor},
    pages = {3--4},
    publisher = {Publisher},
    title = {Title},
    year = {2021},
}
\end{filecontents}

\addbibresource{testbib.bib}

\begin{document}
\textcite{art:21}\textcite{inc:21}
\printbibliography
\end{document}

在此处输入图片描述

答案1

编辑:以下解决方案受到启发biblatex:将 backrefpages 移至句点之后

在此处输入图片描述

\documentclass[11pt]{scrartcl}
\usepackage[backend=biber,style=apa,backref=true]{biblatex}
\DefineBibliographyStrings{english}{%
  backrefpage = {Cit. on p.},
  backrefpages = {Cit. on pp.}, 
}                                   
\renewbibmacro*{finentry}{\iflistundef{pageref}{}{\renewcommand{\finentrypunct}{}}\finentry}
\renewbibmacro*{pageref}{%
  \iflistundef{pageref}
    {}
    {\setunit{\adddot\addspace}\printtext{%
        \ifnumgreater{\value{pageref}}{1}
                     {(\bibstring{backrefpages}\ppspace}
                       {(\bibstring{backrefpage}\ppspace}%
                         \printlist[pageref][-\value{listtotal}]{pageref}\adddot)}}}

\begin{filecontents}{testbib.bib}
@article{art:21,
    author = {A. Author},
    journal = {Journal},
    volume = {1},
    number = {2},
    pages = {3--4},
    title = {Title},
    year = {2021},
}

@incollection{inc:21,
    author = {B. Bauthor},
    booktitle = {Booktitle},
    editor = {E. Editor},
    pages = {3--4},
    publisher = {Publisher},
    title = {Title},
    year = {2021},
}
\end{filecontents}
\addbibresource{testbib.bib}
\begin{document}
\textcite{art:21}
\newpage
\textcite{art:21}\textcite{inc:21}
\printbibliography
\end{document}

答案2

官方 APA 格式未提及反向引用,因此它们可能不应该成为完全符合 APA 标准的参考书目的一部分。

驱动biblatex-apa程序在 bibmacro 之前的标点符号的使用并不完全一致related,因此这里有一个补丁来使它们保持一致。

\documentclass[american]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber,style=apa,backref=true]{biblatex}

\usepackage{xpatch}
\newcommand*{\patchspaceaway}[1]{%
  \xpatchbibdriver{#1}
    {\setunit{\addspace}\newblock
     \iftoggle{bbx:related}
       {\usebibmacro{related:init}%
        \usebibmacro{related}}
       {}}
    {\newunit\newblock
     \iftoggle{bbx:related}
       {\usebibmacro{related:init}%
        \usebibmacro{related}}
       {}}
    {}{}}
\patchspaceaway{article}
\patchspaceaway{audio}

\begin{filecontents}{\jobname.bib}
@article{art:21,
    author = {A. Author},
    journal = {Journal},
    volume = {1},
    number = {2},
    pages = {3--4},
    title = {Title},
    year = {2021},
}
@incollection{inc:21,
    author = {B. Bauthor},
    booktitle = {Booktitle},
    editor = {E. Editor},
    pages = {3--4},
    publisher = {Publisher},
    title = {Title},
    year = {2021},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson,worman,nussbaum,
  pines,art:21,inc:21}

\printbibliography
\end{document}

作者,A. (2021)。标题。期刊,1(2),3–4。(引自第 1 页)。

请注意,此处显示的输出很可能不是有效的 APA 样式,因为在 APA 样式中,DOI 或 URL 后不应有标点符号,以避免混淆标点符号是否是 URL 的一部分。

相关内容