我想在 Latex 中创建一篇具有natbib
以下结构的文章:
- 介绍
- 第2章
- 第3章
- 讨论
文章的参考文献应具备以下特点:
- 引言和讨论应该“共享”他们的参考列表
- 第 2 章和第 3 章应分别有自己的参考文献列表(仅包含第 2 章和第 3 章中使用的参考文献)
- 第 2 章和/或第 3 章中使用过但未在简介或讨论中使用的参考文献不应包含在简介/讨论的参考文献中。
- 参考文献应印在第 2 章、第 3 章和讨论之后
- 引言之后不应有参考文献列表(引言中的所有参考文献都应在讨论的参考文献列表中使用)
我创建了以下 MWE:
\documentclass[11pt,a4paper,english,arial,twoside]{article}\usepackage[]{graphicx}\usepackage[]{color}
%\usepackage[backend=bibtex,natbib,style=authoryear,maxcitenames=2]{biblatex}
%\addbibresource{citations}
\usepackage[authoryear,sectionbib, sort&compress]{natbib}
\usepackage{chapterbib}
\usepackage{filecontents}
\begin{document}
\begin{filecontents*}{bibliography_mwe.bib}
@article{ref1,
title={ref1},
author={ref1},
year={1},
institution={ref1}
}
@article{ref2,
title={ref2},
author={ref2},
year={2},
institution={ref2}
}
@article{ref3,
title={ref3},
author={ref3},
year={3},
institution={ref3}
}
@article{ref4,
title={ref4},
author={ref4},
year={4},
institution={ref4}
}
@article{ref5,
title={ref5},
author={ref5},
year={5},
institution={ref5}
}
@article{ref6,
title={ref6},
author={ref6},
year={6},
institution={ref6}
}
@article{ref7,
title={ref7},
author={ref7},
year={7},
institution={ref7}
}
@article{ref8,
title={ref8},
author={ref8},
year={8},
institution={ref8}
}
\end{filecontents*}
\section{Introduction}
bla bla bla bla bla \newline
\cite{ref1} \newline
bla bla bla bla bla \newline
\cite{ref2} \newline
bla bla bla bla bla \newline
\cite{ref3} \newline
bla bla bla bla bla \newline
\begin{filecontents*}{chap2_mwe.tex}
\section{Chapter 2}
bla bla bla bla bla \newline
\cite{ref4} \newline
bla bla bla bla bla \newline
\cite{ref5} \newline
\bibliographystyle{alpha}
\bibliography{bibliography_mwe}
\end{filecontents*}
\begin{filecontents*}{chap3_mwe.tex}
\section{Chapter 3}
bla bla bla bla bla \newline
\cite{ref6} \newline
bla bla bla bla bla \newline
\cite{ref7} \newline
\bibliographystyle{alpha}
\bibliography{bibliography_mwe}
\end{filecontents*}
\include{chap2_mwe}
\include{chap3_mwe}
\section{Discussion}
bla bla bla bla bla \newline
\cite{ref4} \newline
bla bla bla bla bla \newline
\cite{ref8} \newline
\bibliographystyle{alpha}
\bibliography{bibliography_mwe}
\end{document}
我想要得到以下输出:
- 第2章参考文献:ref4,ref5
- 第3章参考文献:ref6,ref7
- 引言和讨论的参考文献:ref1、ref2、ref3、ref4、ref8。
你知道这是怎么实现的吗?
我使用filecontents*
第 2 章和第 3 章的环境的想法在编译时不起作用:
bibtex chap2_mwe.aux
bibtex chap3_mew.aux
bibtex mwe.aux
pdflatex_mwe.tex
pdflatex_mwe.tex
编辑正如@moewe 所建议的:使用bibtex
并且refsection
只创建一个参考书目。也许我在这里遗漏了什么……编辑:如果我正确使用它,它就会起作用(见下文)
\documentclass[11pt,a4paper,english,arial,twoside]{article}
\usepackage[]{graphicx}\usepackage[]{color}
\usepackage[style=alphabetic,backend=bibtex]{biblatex}
\addbibresource{bibliography_mwe}
\usepackage{filecontents}
\begin{filecontents*}{bibliography_mwe.bib}
@article{ref1,
title={ref1},
author={ref1},
year={1},
institution={ref1}
}
@article{ref2,
title={ref2},
author={ref2},
year={2},
institution={ref2}
}
@article{ref3,
title={ref3},
author={ref3},
year={3},
institution={ref3}
}
@article{ref4,
title={ref4},
author={ref4},
year={4},
institution={ref4}
}
@article{ref5,
title={ref5},
author={ref5},
year={5},
institution={ref5}
}
@article{ref6,
title={ref6},
author={ref6},
year={6},
institution={ref6}
}
@article{ref7,
title={ref7},
author={ref7},
year={7},
institution={ref7}
}
@article{ref8,
title={ref8},
author={ref8},
year={8},
institution={ref8}
}
\end{filecontents*}
\begin{document}
\section{Introduction}\label{sec:int}
bla bla bla bla bla \newline
\cite{ref1} \newline
bla bla bla bla bla \newline
\cite{ref2} \newline
bla bla bla bla bla \newline
\cite{ref3} \newline
bla bla bla bla bla \newline
\begin{refsection}
\section{Chapter 2}\label{sec:2}
bla bla bla bla bla \newline
\cite{ref4} \newline
bla bla bla bla bla \newline
\cite{ref5} \newline
\printbibliography[heading=subbibliography]
\end{refsection}
\begin{refsection}
\section{Chapter 3}\label{sec:3}
bla bla bla bla bla \newline
\cite{ref6} \newline
bla bla bla bla bla \newline
\cite{ref7} \newline
\printbibliography[heading=subbibliography]
\end{refsection}
\section{Discussion}\label{sec:disc}
bla bla bla bla bla \newline
\cite{ref4} \newline
bla bla bla bla bla \newline
\cite{ref8} \newline
\printbibliography[heading=subbibliography]
\end{document}
编辑:解决方案:运行
pdflatex mwe.tex
bibtex mwe.aux
bibtex mwe1-blx.aux
bibtex mwe2-blx.aux
pdflatex mwe.tex
答案1
这里有两种方法biblatex
。当你拆分参考书目时,biblatex
你可以选择两种方法来划分参考书目
refsection
使其内容保持完全分离和独立。refsegment
只需在条目中添加一条小注释(类似于keyword
),说明该条目在某个条目中被引用refsegment
。排序和唯一性计算仍将同时考虑所有条目。
在实践中,您通常不会看到两种方法之间的差异,但有可能创造出差异很重要的情况。
一般来说,refsegment
s 和refsection
s 不能拆分或嵌套。例外是refsection
0
可以拆分。在refsection
下面的代码中,我们使用可以拆分并将其用于介绍和讨论。这就是我们不能使用自动s 的refsection
0
原因:它们会为介绍和讨论产生不同的 s,并且无法合并它们。对于这种方法来说,这并不是什么大问题,因为我们可以轻松地按多个s 进行过滤。refsection
refsection
refsegment
refsegment
refsection
\documentclass[11pt,a4paper,english,twoside]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=bibtex, style=alphabetic, maxcitenames=2]{biblatex}
\usepackage[colorlinks]{hyperref}
\addbibresource{biblatex-examples.bib}
\begin{document}
\section{Introduction}\label{sec:int}
Lorem \cite{pines}
ipsum \cite{aksin}
dolor \cite{maron}
\begin{refsection}
\section{Chapter 2}\label{sec:2}
lorem \cite{sigfridsson}
ipsum \cite{worman,knuth:ct:c}
\printbibliography[heading=subbibliography,
title={\refname\ of \nameref{sec:2}}]
\end{refsection}
\begin{refsection}
\section{Chapter 3}\label{sec:3}
lorem \cite{nussbaum}
ipsum \cite{geer,knuth:ct:b}
\printbibliography[heading=subbibliography,
title={\refname\ of \nameref{sec:3}}]
\end{refsection}
\section{Discussion}\label{sec:disc}
dolor \cite{sigfridsson}
sit \cite{cicero}
\printbibliography[heading=subbibliography,
title={\refname\ of \nameref{sec:int} and \nameref{sec:disc}}]
\end{document}
refsegment
s
\documentclass[11pt,a4paper,english,twoside]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=bibtex, style=alphabetic, refsegment=section, maxcitenames=2]{biblatex}
\usepackage[colorlinks]{hyperref}
\addbibresource{biblatex-examples.bib}
\begin{document}
\section{Introduction}\label{sec:int}
\newcommand*\intrefsegment{} % we'll need that later
\edef\intrefsegment{\therefsegment}
Lorem \cite{pines}
ipsum \cite{aksin}
dolor \cite{maron}
\section{Chapter 2}\label{sec:2}
lorem \cite{sigfridsson}
ipsum \cite{worman,knuth:ct:c}
\printbibliography[heading=subbibliography,
title={\refname\ of \nameref{sec:2}},
segment=\therefsegment]
\section{Chapter 3}\label{sec:3}
lorem \cite{nussbaum}
ipsum \cite{geer,knuth:ct:b}
\printbibliography[heading=subbibliography,
title={\refname\ of \nameref{sec:3}},
segment=\therefsegment]
\section{Discussion}\label{sec:disc}
dolor \cite{sigfridsson}
sit \cite{cicero}
% we remembered the segment from the introduction in \intrefsegment
\defbibfilter{intdisc}{%
segment=\intrefsegment\space
or segment=\therefsegment
}
\printbibliography[heading=subbibliography,
title={\refname\ of \nameref{sec:int} and \nameref{sec:disc}},
filter=intdisc]
\end{document}
两种方法之间的差异在 Knuth 的两个引文中显而易见。由于s 是独立的,因此refsection
两个不同的引文在不同部分都获得相同的标签。另一方面, s 不是独立的,因此标签不同。knuth:ct:b
knuth:ct:c
refsegment
虽然这两种方法都适用于backend=bibtex,
,但我还是建议改用 Biber ( backend=biber,
)。解决方案尤其受益于 Biber,因为您只需对一个文件(一次)运行 Biber,而不必对多个文件运行。一般来说,只有使用 Biber,refsection
您才能访问所有功能。biblatex