Biblatex:使用 \textcites 命令进行嵌套引用

Biblatex:使用 \textcites 命令进行嵌套引用

我想在文中输入一个引文,并在括号内输入年份的另一个引文,如下所示:

作者 1 的作品(年份;作者 2 引用,年份)

为此,我尝试了不同的命令选项\textcite,但没有结果。我还看到了解决方案发布这里,适用于括号内的多个引用,但不适用于文内引用。

有什么建议吗?

答案1

不允许嵌套引用命令,但可以模拟它们(使用适当的标点符号命令以确保与其他引用的一致性):

\documentclass{article}

\usepackage[style=authoryear]{biblatex}

\renewcommand*{\nameyeardelim}{\addcomma\space}
\renewcommand*{\postnotedelim}{\addsemicolon\space}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
@misc{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

The work of \citeauthor{A01} \mkbibparens{\citeyear{A01}\postnotedelim cited by \cite{B02}}

\printbibliography

\end{document}

在此处输入图片描述

答案2

引用命令通常不能(也不应该)嵌套,但您可以使用 来绕过此规则\nocite

\documentclass{article}
\usepackage[style=authoryear]{biblatex}

\renewcommand*{\nameyeardelim}{\addcomma\space}
\renewcommand*{\postnotedelim}{\addsemicolon\space}

\newrobustcmd*{\postcite}[1]{%
  \nocite{#1}\entrydata{#1}{\usebibmacro{cite}}}

\addbibresource{biblatex-examples.bib}
\begin{document}
\textcites(See)()[cited by \postcite{companion}]{knuth:ct:a}[10]{markey}
\printbibliography
\end{document}

此处嵌套条目的数据直到第二次 biber/BibTeX 运行才会被访问。您可以通过使用交叉引用、条目集或相关条目将嵌套条目链接到其父条目来避免额外的 biber 运行。

相关内容