同一作者不同年份的 BibLaTeX 引文,带页码

同一作者不同年份的 BibLaTeX 引文,带页码

我想引用同一作者在不同年份出版的两篇参考文献,并想将它们放在一起(在同一个括号中)并标上页码,可以吗?

我已尝试过\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}

Lorem Knuth(1984:45,1986:80)


如果你必须使用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}

我还没有进行过广泛的测试以确保它涵盖了所有边缘情况,因此请仔细检查输出。

相关内容