区分 \cite'd 和 \footfullcite'd 引用

区分 \cite'd 和 \footfullcite'd 引用

我正在写一篇文档,想在其中区分我自己的参考文献和他人的参考文献。(我使用的是biblatex。)我想做出如下区分:我自己的引用使用经典\cite命令(因此打印在\printbibliography出现的位置),而其他参考文献使用\footfullcite和 引用作为脚注。然而,这样做,包括\footfullcite'd 在内的所有参考文献都使用 打印\printbibliography。我如何自动区分这两种参考文献,即\cite'd 和\footfullcite'd 的参考文献?

[编辑]
只是澄清一下:我正在寻找区分我的论文(=我是作者之一)和其他论文。我认为就我而言,我们可以使用三种可能性来做出区分:

  • 我的论文和其他人的论文放在不同的.bib文件夹中;
  • 我是我论文的作者(好吧,你可能已经猜到了;-));
  • 我使用 引用我的论文\cite,并使用 引用其他论文\footfullcite

我原本以为最后一点是最容易使用的,但我可能错了。
[/编辑]

以下是一个例子:

\documentclass{article}
\usepackage{biblatex}
\usepackage{filecontents}

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

\addbibresource{\jobname.bib}

\begin{document}
Reference A01 should appear in a "References" section~\cite{A01}.

Reference C03 should only appear as a footnote~\footfullcite{C03}.

Reference B02 should'nt appear anywhere.

\printbibliography
\end{document}

我知道这个\AtEveryCitekey命令,但它似乎对我没有帮助,因为它没有区分不同的引用命令。

答案1

\cite首先,在重新定义命令以自动进行分类之前,在序言中声明新的类别:

\DeclareBibliographyCategory{references}
\DeclareCiteCommand{\cite}
    {\usebibmacro{prenote}}
    {\addtocategory{references}{\thefield{entrykey}}\usebibmacro{citeindex}%
    \usebibmacro{cite}}
    {\multicitedelim}
    {\usebibmacro{postnote}}

然后像这样调用参考书目:

\printbibliography[category=references]

以下是完整文档,对我有用。我必须根据某些内容重新定义,因此我选择了 authoryear,但它在其他情况下也应该有效:

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

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

\addbibresource{\jobname.bib}

\DeclareBibliographyCategory{references}

\DeclareCiteCommand{\cite}
    {\usebibmacro{prenote}}
    {\addtocategory{references}{\thefield{entrykey}}\usebibmacro{citeindex}%
    \usebibmacro{cite}}
    {\multicitedelim}
    {\usebibmacro{postnote}}

\begin{document}
Reference A01 should appear in a ``References'' section~\cite{A01}.

Reference C03 should only appear as a footnote~\footfullcite{C03}.

Reference B02 should'nt appear anywhere.

\printbibliography[category=references]
\end{document}

答案2

我不知道是否有可能让 biblatex 区分不同的使用\cite命令。对于上述具有不同参考来源的任务,您可以使用“参考书目类别”。摘自 biblatex 手册 V2.5:

3.6.6 书目类别

通过参考书目类别,您可以将参考书目分成多个部分,分别针对不同的主题或不同类型的参考文献,例如主要来源和次要来源。

对于您的示例,您可以在序言中添加外部引用的类别:

\DeclareBibliographyCategory{external}
\addtocategory{external}{C03}

最后输出没有“外部”参考文献的参考书目:

\printbibliography[notcategory=external]

根据类别中的参考文献数量,您可以反过来做,或者使用关键字或过滤器来缩小参考书目(请参阅 biblatex 手册\printbibliography)。

相关内容