(几乎相关)
我有一个.bib
文件。我的文档有两个部分,我想在每个部分的末尾打印参考书目仅限该部分引用的项目当然,如果两个部分都引用了同一个条目,那么就有交集。
没有偏好,可以是bibtex
,biblatex
或者一些额外的东西。
平均能量损失
\begin{filecontents}{mybib.bib}
@article{faa,
title={Faa Something important},
author={Faa Big Guy and Another Big Guy},
journal={Prestigious Journal},
volume={47},
number={7},
pages={966--978},
year={2001},
publisher={Institute}
}
@article{foo,
title={Foo Something important},
author={Foo Big Guy and Another Big Guy},
journal={Prestigious Journal},
volume={47},
number={7},
pages={966--978},
year={2001},
publisher={Institute}
}
\end{filecontents}
\documentclass{report}
\usepackage{filecontents}
\begin{document}
\part{Faa}
\cite{faa}
\bibliographystyle{plain}
\bibliography{mybib}
\part{Foo}
\cite{foo}
%% I tried to insert twice, but got an error
%\bibliographystyle{plain}
%\bibliography{mybib}
\end{document}
答案1
biblatex
定义refsection
环境。请参阅文档中的 § 3.7.4,参考书目章节,第 88-89 页。
答案2
伯纳德已经refsection
在他的回答中提到了s。
请注意,biblatex
有一个名为的选项refsection
,可用于refsection
在某些部分命令处自动启动新的命令。例如,将为每个命令refsection=part
创建一个新的命令。无需额外的代码。refsection
\part
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber, refsection=part]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\part{One}
\cite{sigfridsson,worman,knuth:ct:b}
\printbibliography
\part{Two}
\cite{sigfridsson,nussbaum,knuth:ct:c}
\printbibliography
\end{document}
你可以开始一个新的refsection
,将持续到下refsection
一个
\newrefsection
如果您想要更精细地控制refsection
s 及其结尾,您可以使用环境形式。
\begin{refsection}
\end{refsection}
请注意,refsection
s 不能嵌套,并且特定之外的所有内容refsection
都发生在第 0 节中。
refsection
s 保持其内容完全独立。这意味着同一条目可能在每个部分中有不同的引用标签,反之亦然,即两个不同的条目获得相同的标签。
如果不想这样(或者您正在寻找一种在最后创建整体参考书目的方法),您可能需要查看refsegment
s。srefsegment
本质上只是将条目标记为在文档的特定部分中引用。同样,有一个名为 的选项,它为特定类型的每个分段命令refsegment
启动一个新的。refsegment
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber, refsegment=part]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\part{One}
\cite{sigfridsson,worman,knuth:ct:b}
\printbibliography[segment=\therefsegment]
\part{Two}
\cite{sigfridsson,nussbaum,knuth:ct:c}
\printbibliography[segment=\therefsegment]
\printbibliography[title=Overall \bibname]
\end{document}
比如refsection
,refsegment
s 可以以
\newrefsegment
或者可以用作环境
\begin{refsegment}
\end{refsegment}