我正在写一篇文档,想在其中区分我自己的参考文献和他人的参考文献。(我使用的是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
)。