同上,作者年份

同上,作者年份

我使用的biblatex风格authoryear-ibid是这样的,即引用如下:(作者 2019),如下所示:(同上)当同一参考文献被连续多次引用时。

我想要的是:当我引用之前已经被引用过的参考文献时,但是不仅仅是之前,我希望引用如下:(作者,同上)。我不知道该怎么做,有人有解决办法吗?

答案1

这种风格authoryear-ibid不会因为使用同上。同上。:一年几乎不比“op. cit.”长,而且它的巨大优势在于它是一个独特且信息量很大的标签。

但当然可以authoryear-ibid稍微修改一下,包括同上。同上。. 将下面的重新定义与原文authoryear-ibid.cbx.相关变化包括替换

   \usebibmacro{cite:labeldate+extradate}

    \ifopcit
      {\usebibmacro{cite:opcit}}
      {\usebibmacro{cite:labeldate+extradate}}

的定义cite:opcit直接复制自verbose-trad1.cbx。此外,还biblatex必须装载选项opcittracker=context,

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear-ibid, opcittracker=context, backend=biber]{biblatex}

\newbibmacro*{cite:opcit}{%
  \printtext[bibhyperlink]{\bibstring[\mkibid]{opcit}}}

\renewbibmacro*{cite}{%
  \global\boolfalse{cbx:loccit}%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
       {\usebibmacro{cite:ibid}}
       {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
          {\usebibmacro{cite:label}%
           \setunit{\printdelim{nonameyeardelim}}}
          {\printnames{labelname}%
           \setunit{\printdelim{nameyeardelim}}}%
        \ifopcit
          {\usebibmacro{cite:opcit}}
          {\usebibmacro{cite:labeldate+extradate}}}}
    {\usebibmacro{cite:shorthand}}}

\addbibresource{biblatex-examples.bib}


\begin{document}
\cite{sigfridsson}

\cite{knuth:ct:a}

\cite{sigfridsson}

\cite{knuth:ct:a}

\cite{worman}

\cite{knuth:ct:b}

\cite{worman}

\cite{knuth:ct:b}

\cite{sigfridsson}

\cite{sigfridsson}


\printbibliography
\end{document}

给出

Sigfridsson 和 Ryde 1998//Knuth 1984//Sigfridsson 和 Ryde op. cit.//Knuth op. cit.//Worman 2002//Knuth 1986//Worman op. cit.//Knuth op. cit.//Sigfridsson 和 Ryde op. cit.//同上。

我非常怀疑这是否比的正常输出更清晰authoryear-ibid

尤其是“Knuth op. cit.”可能提及knuth:ct:aknuth:ct:b要求读者比必要的更加密切地关注以前的引用。


如果你想限制同上。同上。对于只有一部作品的作者,为了避免混淆,您应该加载biblatex选项并将上面的内容singletitle替换为\ifopcit

        \ifthenelse{\ifopcit\AND\ifsingletitle}

然后 MWE 生成

Sigfridsson 和 Ryde 1998//Knuth 1984//Sigfridsson 和 Ryde op. cit.//Knuth 1984//Worman 2002//Knuth 1986//Worman op. cit.//Knuth 1986//Sigfridsson 和 Ryde op. cit.//同上。

这里避免了歧义,但是你会得到“op. cit.”和非“op. cit.”引用的奇怪混合。

相关内容