共享章节和单独章节的不同 natbib 书目

共享章节和单独章节的不同 natbib 书目

我想在 Latex 中创建一篇具有natbib以下结构的文章:

  1. 介绍
  2. 第2章
  3. 第3章
  4. 讨论

文章的参考文献应具备以下特点:

  • 引言和讨论应该“共享”他们的参考列表
  • 第 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。排序和唯一性计算仍将同时考虑所有条目。

在实践中,您通常不会看到两种方法之间的差异,但有可能创造出差异很重要的情况。

一般来说,refsegments 和refsections 不能拆分或嵌套。例外是refsection 0可以拆分。在refsection下面的代码中,我们使用可以拆分并将其用于介绍和讨论。这就是我们不能使用自动s 的refsection 0原因:它们会为介绍和讨论产生不同的 s,并且无法合并它们。对于这种方法来说,这并不是什么大问题,因为我们可以轻松地按多个s 进行过滤。refsectionrefsectionrefsegmentrefsegment

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}

第 2 章和第 3 章的参考文献

refsegments

\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}

第 2 章和第 3 章的参考文献


两种方法之间的差异在 Knuth 的两个引文中显而易见。由于s 是独立的,因此refsection两个不同的引文在不同部分都获得相同的标签。另一方面, s 不是独立的,因此标签不同。knuth:ct:bknuth:ct:crefsegment


虽然这两种方法都适用于backend=bibtex,,但我还是建议改用 Biber ( backend=biber,)。解决方案尤其受益于 Biber,因为您只需对一个文件(一次)运行 Biber,而不必对多个文件运行。一般来说,只有使用 Biber,refsection您才能访问所有功能。biblatex

相关内容