在我的文档中,我使用biblatex
withbiber
作为后端和 APA 样式。现在,我有两篇由同一作者撰写的不同文章,我想引用它们,这样输出如下:
作者 (year_x, year_y) 且非作者 (year_x), 作者 (year_y)
这就是:
\documentclass[a4paper,11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[english]{babel}
\usepackage[style=apa,backend=biber]{biblatex}
\addbibresource{~/Documents/Library.bib}
\DeclareLanguageMapping{english}{english-apa}
\title{Question}
\author{Me}
\begin{document}
\maketitle
\textcites{<key>}{<key>}
\end{document}
给我。获得所需结果的最便捷方法是什么?
答案1
您可以使用
\textcite{<key1>,<key2>}
但正如评论中所提到的,这无法处理多个前后注。
标准样式style=authoryear-comp
也能提供良好的输出
\textcites[34-37]{<key1>}[78-79]{<key2>}
biblatex-apa
如果你应用以下调整,你应该能够得到同样的结果
\documentclass[a4paper,11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[english]{babel}
\usepackage[style=apa,backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\renewbibmacro*{textcite:postnote}{%
\usebibmacro{postnote}%
\ifthenelse{\value{multicitecount}=\value{multicitetotal}}
{\setunit{}%
\printtext{%
\ifbool{cbx:parens}
{\bibcloseparen\global\boolfalse{cbx:parens}}
{}}}
{\setunit{%
\ifbool{cbx:parens}
{\bibcloseparen\global\boolfalse{cbx:parens}}
{}%
\textcitedelim}}}
\renewbibmacro*{cite:init}{%
\ifnumless{\value{multicitecount}}{2}
{\global\boolfalse{cbx:parens}%
\global\undef\cbx@lasthash}
{\iffieldundef{prenote}
{}
{\global\undef\cbx@lasthash}}}
\DeclareMultiCiteCommand{\textcites}{\textcite}{}
\makeatother
\begin{document}
\textcites[7]{knuth:ct:a}[8]{knuth:ct:b}
\textcites[7]{knuth:ct:a}[8]{sigfridsson}
\textcites{sigfridsson}
\textcite{knuth:ct:a,knuth:ct:b}
\end{document}
如果您认为这是样式应该具有的功能(特别是如果您可以指出 APA 样式指南中要求此功能的规则),请打开功能请求https://github.com/plk/biblatex-apa/issues