在以下文档中,我使用了带有 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}
请注意,此处显示的输出很可能不是有效的 APA 样式,因为在 APA 样式中,DOI 或 URL 后不应有标点符号,以避免混淆标点符号是否是 URL 的一部分。