我想以产生用于每个部分的参考书目,并有它的部分的端部。当我这样做,此刻它产生每个部分后的充分的参考书目和地点吧。

有没有一种方式,可以做到这一点?

这里说:

  

“的chapterbib包提供了一种   选项sectionbib该放   参考书目在\节*代替   \章*,这是令意义   如果有一个参考书目中的每个   章节。此选项将无法正常工作   当也被加载natbib;代替,   添加选项natbib。 “

我不明白这意味着什么,我已经试过了我认为的选项进行试验。具体来说,什么是“的选项添加到natbib”呢?

我的后续问题(即演变后我的第一个被解决)是不具有参考之间pagebreaks,而下一个节。

感谢您的帮助。

有帮助吗?

解决方案

如果您使用 Biblatex 时,如对于引用的文章标题,则可以用它在部分或章节的末端以产生书目,或甚至具有组合参考书目,他们是由章/节分离。作为一个包,它的目的是取代 “babelbib,bibtopic,bibunits,chapterbib,引用inlinebib,mlbib,multibib,splitbib。”

您可以在每个段之后把书目,通过以下三种方式之一。首先,包装在\begin{refsection} / \end{refsection}对您的部分的文本,因为这样的

\section{SomeSectionName}
\begin{refsection}
% your text goes here
\printbibliography
\end{refsection}
\section{NextSection}

其次,每个\section语句之后你把它结束的上一节,并开始新的一个\newrefsection声明。而且,你先用\section声明下一\printbibliography,再次。最后,存在需要要么refsectionnonepartchapter,或section作为自变量的subsection封装选项。将你的每部分的书目条目中使用refsegment而是一个全球性的书目,使用\bibbysegment打印所有段秩序。 (\bibbysection可在用于参考截面相同的方式使用,也。)

我不知道你有多大的分裂你的文字,按@诺曼的答案,但有一个小实验,你自己看着办吧。

其他提示

在除

\usepackage[sectionbib]{natbib}
\usepackage{chapterbib}

您将不得不把每个部分在一个单独的.tex文件,你再\include。你将不得不单独运行每个.tex文件bibtex

N.B。使用\input而不是\include避免不必要的分页,但中文提供需要做的工作就不会创建.aux文件。我看着\include的定义,我看不出如何禁用除非完全禁止\clearpage页面破功能。你可以尝试

\let\originalclearpage=\clearpage
\def\clearpage{\relax}

\begin{document}之后,但您可能需要手工把一些\originalclearpage英寸

@celenius - 如果你真的想摆脱那个分页符的,这里有一个很脏招做...

\makeatletter
\let\O@@input@\@input@
\def\@noclearpage{\@ifnextchar\clearpage\@gobble\relax}
\def\@input@#1{\O@@input@{#1}\@noclearpage}
\let\O@@include\@include
\def\@include{\expandafter\@noclearpage\O@@include}
\let\O@include\include
\def\include{\expandafter\@noclearpage\O@include}
\makeatother

基本上我们在\include宏进行手术,以摆脱所有的\clearpage实例,但要做到这一点,你可以看到最清晰的方式,仍然是的真正的脏。这是可怕的脆,很可能会只针对article类的工作,因此,如果您使用的是不同的\documentclass,你的运气了。我基本上是通过使\tracingcommands=1\tracingmacros=1和grepping为.log\clearpage文件,这样我就可以破解任何被调用它插入\@noclearpage之前得到的这一点。

我不推荐这种解决方案 - 这将是更好的寻找到chapterbib是如何工作的,并修复它正确的方式,而不依赖于\include和它产生的单独.aux文件...但我敢肯定那会是一个非常艰巨的任务。我想另一个解决办法是写效仿\include某个命令的分手.aux文件,但是实际不执行包括...


编辑:好的,这里的匆匆

\makeatletter
\newenvironment{auxfile}[1]{\relax
  \ifnum\@auxout=\@partaux
    \@latex@error{auxfile environments cannot be nested or \string\include d}
    \@eha
  \else\@changeaux{#1}\fi
}{\immediate\closeout\@partaux\let\@auxout\@mainaux}
\def\@changeaux#1{%
  \immediate\write\@mainaux{\string\@input{#1.aux}}%
  \let\@auxout\@partaux
  \immediate\openout\@partaux#1.aux%
  \immediate\write\@partaux{\relax}}
\makeatother

然后,你可以插入\begin{auxfile}{foo}...\end{auxfile},它会使用foo.aux而不是正常的.aux文件。这是chapterbib完全兼容。我不认为有CTAN这样的事,所以也许我会提交它作为一个迷你包。

我还没有尝试过,但因为我读它表明:

\usepackage[sectionbib]{natbib} % Note the option in the optional argument
\usepackage{chapterbib}

虽然我只猜测在这些行的正确顺序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top