我有一个如下的代码:
\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