APA 格式要求,第一次引用 3 到 6 位作者时使用完整作者列表,而后续引用则使用缩写作者列表。具体实现方式如下biblatex-apa
:
\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
% full author list
\parencite{herrmann}
% abbreviated author list
\parencite{herrmann}
% I would like a full author list here
\parencite{herrmann}
% this should be abbreviated again
\parencite{herrmann}
\printbibliography
\end{document}
在某些情况下,即使在后续引用中获取完整的作者列表也很有趣。这可能吗?理想的解决方案是进行切换,使所有后续引用都被视为第一个引用,这样只有“切换”后的第二个引用才会被缩写。
这个问题的动机是关于 SO 的问题用户尝试在csl
和的上下文中执行类似操作pandoc-citeproc
。我希望biblatex
基于的工作流程更加灵活。
答案1
biblatex-apa
使用测试\ifciteseen
来检查引用是否应使用长格式或短格式。可以使用 完全重置此跟踪器\citereset
。biblatex-apa
还定义了一个可以使用 重置的附加特殊跟踪器(此跟踪器仅在非常特殊的情况下与/字段\citeresetapa
一起使用,因此在大多数情况下忘记重置它几乎不会造成任何损害)。shortauthor
shorteditor
因此如果你发布
\citereset\citeresetapa
文档中该行之后的所有第一次引用都将使用长格式,后续引用将再次使用短格式。这将对所有条目产生同样影响。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
% full author list
\parencite{herrmann}
\parencite{yoon}
% abbreviated author list
\parencite{herrmann}
\parencite{yoon}
% I would like a full author list here
\citereset\citeresetapa
\parencite{herrmann}
\parencite{yoon}
% this should be abbreviated again
\parencite{herrmann}
\parencite{yoon}
\printbibliography
\end{document}
加载时包选项citereset=<section level>
可让您自动\citereset
在 的所有标题处执行<section level>
。因此会在每个 处citereset=section
调用。没有类似的选项。\citereset
\section
\citeresetapa
如果你只想影响特定的引用,那么
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\newcommand*{\longparencite}{%
\AtNextCite{\AtEachCitekey{%
\let\blx@imc@ifciteseen\@secondoftwo
\let\ifciteseen\blx@imc@ifciteseen}}%
\parencite}
\makeatother
\begin{document}
% full author list
\parencite{herrmann}
\parencite{yoon}
% abbreviated author list
\parencite{herrmann}
\parencite{yoon}
% I would like a full author list here
\longparencite{herrmann}
\parencite{yoon}
% this should be abbreviated again
\parencite{herrmann}
\parencite{yoon}
\printbibliography
\end{document}
可能对你更有效。
使用此定义\longparencite
在本地假装以前没有见过该引用,因此我们得到了长形式。\longparencite
不会影响其他引用,并且至少有了这个定义,在某些情况下\longparencite
确实会计入(当然可以更改)。\ifciteseen
\longparencite{herrmann}\parencite{herrmann}