我想引用同一作者在不同年份出版的两篇参考文献,并想将它们放在一起(在同一个括号中)并标上页码,可以吗?
我已尝试过\textcites[80]{smith_1930}[371]{smith_1936}
但我得到了这个:
Smith (1930: 80) 和 Smith (1936: 371)
我想得到这个:
史密斯(1930: 80,1936: 371)
这是我用来作为参考的内容:
\usepackage[style=apa,sorting=nyt,backend=biber,sortlocale=nb_NO,sortcites,maxcitenames=2,maxbibnames=99]{biblatex}
\renewcommand{\postnotedelim}{: }%
\DeclareFieldFormat{postnote}{#1}%
答案1
biblatex-apa
所选的style=apa,
尽可能接近 实现 APA 样式biblatex
。据我所知,您描述的输出不符合 APA 样式。您还设置了许多严格意义上与 不兼容的选项biblatex-apa
。
鉴于所有这些,我强烈建议您要么接受 APA 样式输出(biblatex-apa
如果您需要 APA 样式),要么切换到其他通用非 APA 作者年份样式(如果您不需要 APA 样式)。
可以authoryear-comp
轻松实现所需的行为
\documentclass[american]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear-comp]{biblatex}
\DeclareDelimFormat{postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \textcites[45]{knuth:ct:a}[80]{knuth:ct:b}
\printbibliography
\end{document}
如果你必须使用biblatex-apa
所需的更改,你可能想尝试
\documentclass[american]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=apa]{biblatex}
\makeatletter
\renewbibmacro*{cite:init}{%
\ifnumless{\value{multicitecount}}{2}
{\global\boolfalse{cbx:parens}%
\global\undef\cbx@lasthash}
{}}
\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}}}
\makeatother
\DeclareDelimFormat{postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem \textcites[45]{knuth:ct:a}[80]{knuth:ct:b}
ipsum \textcites[45]{knuth:ct:a}[380]{sigfridsson}
dolor \textcite[381]{sigfridsson}
\printbibliography
\end{document}
我还没有进行过广泛的测试以确保它涵盖了所有边缘情况,因此请仔细检查输出。