为单个文档编译单独的书目文件

为单个文档编译单独的书目文件

我有一个如下的代码:

\documentclass[12pt,a4paper]{report}
\usepackage[breaklinks=true]{hyperref}
\usepackage{color,mathtools,cleveref,xfrac,subcaption,multirow,multicol,amssymb,mathptmx,fancyhdr,natbib,graphicx,lipsum}
\usepackage[english]{babel}
\usepackage[shortlabels]{enumitem}
\usepackage{floatpag}\floatpagestyle{empty}
\crefname{equation}{Eq.}{Eqs.}
\crefname{figure}{Fig.}{Figs.}
\crefname{section}{Sect.}{Sects.}
\crefname{subsection}{Sect.}{Sects.}
\crefname{table}{Tab.}{Tabs.}
\linespread{1.5}
\usepackage[top=30mm,bottom=27mm,left=30mm,right=25mm,textheight=240mm,textwidth=160mm]{geometry}
\setlength{\parskip}{2.5pt}
\setlength{\parindent}{12mm}
\newcommand{\sectiontitle}{}
\fancyhead{}% clear default headers
\fancyhead[L]{\ifnum\value{section}=0\relax
    \else \nouppercase{\leftmark}
    \fi}
\pagestyle{fancy}
\begin{document}
    \input{chapter0}
    \input{chapter1}
    \input{chapter2}
    \input{chapter3}
    \input{chapter4}
    \input{chapter5}
    \input{chapter6}
    \newpage
    \fancyhead[L]{Bibliography}
    \bibliographystyle{plainnat}
    \bibliography{first_citations}      
    \vfill
    (Candidate name)
    \hfill
    (Guide name)\\
    Candidate
    \hfill
    Guide
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \newpage
    \fancyhead[L]{Synopsis}
    \input{chapter7}    
    \bibliographystyle{plainnat}
    \bibliography{second_citation}  
    \vfill
    (Candidate name)
    \hfill
    (Guide name)\\
    Candidate
    \hfill
    Guide
\end{document}

从第 0 章到第 6 章,对应的书目文件是 first_citations,只有第 7 章对应的书目文件是 second_citation。因此,我想要的是第 6 章之后,应该打印书目文件 first_citations,而第 7 章之后我想要获得 second_citation仅有的打印出来。但是,在两个实例中都只打印了 first_citations。

当我从\input{chapter0}到发表评论时%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newpage,我可以看到second_citation正在被打印,但是当我合并所有文件时,我并没有得到我需要的内容。

我哪里做错了?

答案1

一种解决方案是使用bibunits包来处理这两个书目。将前 7 章包装在一个bibunit环境中,即

\begin{bibunit}[plainnat]
\input{chapter0}
...
\input{chapter6}
\putbib[first_citations]
...
\end{bibunit}

对第七章做同样的事情

\begin{bibunit}[plainnat]
\input{chapter7}
\putbib[second_citation]
...
\end{bibunit}

那么编译文件和参考书目的工作流程是

latex main
bibtex bu1
bibtex bu2
latex main
latex main

相关内容