7

I am having problem with my bibtex reference number. The number does not increase in order as you can see from the screenshot below. The index goes from 1 to 3, 4, 5, and back to 2.

enter image description here

Sorry in advance for the lengthy question, I have tried to trim it down. I have attached my simplified latex files below.

As you can see from the source files, there are two figures, removal of any of these figures would eliminate the problem (but I need these images).

if I comment out the "List of Figure" The problem will also disappear. Again, I still need this section. Please help me to figure out what has gone wrong.

The entire source file can be taken from https://www.dropbox.com/s/o6648xgozxnxxfs/BibtexProblem_Question.zip?n=50499474

 \documentclass[a4paper, 11pt, oneside]{Thesis}  % Use the "Thesis" style, based on the ECS Thesis style by Steve Gunn
%\documentclass{book}  % Use the "Thesis" style, based on the ECS Thesis style by Steve Gunn

\usepackage[square, numbers, comma, sort&compress]{natbib}  % Use the "Natbib" style for the references in the Bibliography
\usepackage{verbatim}  % Needed for the "comment" environment to make LaTeX comments
\usepackage{vector}  % Allows "\bvec{}" and "\buvec{}" for "blackboard" style 6
\usepackage{amssymb} 


\begin{document}

\lhead{\emph{List of Figures}}  % Set the left side page header to "List if Figures"
\listoffigures  % Write out the List of Figures

\mainmatter   % Begin normal, numeric (1,2,3...) page numbering
\pagestyle{fancy}  
%\input{Chapter1} % Introduction

This is the first \cite{Ackermann02}

\begin{figure}[h]
 \centering
 \includegraphics[width = 0.4\textwidth]{Figure1.jpg}
 \caption{Figure1 \cite{Ackermann02}. }
 \label{fig:Figure1}
\end{figure}

This is the second \cite{Esteban04, Remondino06, Nguyen12}.

Sixth is this \cite{Olsen09}. 

\begin{figure}[h]
 \centering
 \includegraphics[scale=1.0]{Figure2.eps}
     \hspace{ 5.5 mm}\caption{ (taken from \cite{Olsen09}). }
\label{fig:Figure2}
\end{figure}

\label{Bibliography}
\lhead{\emph{Bibliography}}  % Change the left side page header to "Bibliography"
\bibliographystyle{unsrtnat}  % Use the "unsrtnat" BibTeX style for formatting the Bibliography
\bibliography{Bibliography}  % The references (bibliography) information are stored in the file named "Bibliography.bib"

\end{document}  % The End

This latex file use an external thesis class,

%%
%% This is file `Thesis.cls', based on 'ECSthesis.cls', by Steve R. Gunn
%% generated with the docstrip utility.
%%
%% Created by Steve R. Gunn, modified by Sunil Patel: www.sunilpatel.co.uk

\NeedsTeXFormat{LaTeX2e}[1996/12/01]
\ProvidesClass{Thesis}
              [2007/22/02 v1.0
   LaTeX document class]
\def\baseclass{book}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\baseclass}}
\def\@checkoptions#1#2{
  \edef\@curroptions{\@ptionlist{\@currname.\@currext}}
  \@tempswafalse
  \@tfor\@this:=#2\do{
    \@expandtwoargs\in@{,\@this,}{,\@curroptions,}
    \ifin@ \@tempswatrue \@break@tfor \fi}
  \let\@this\@empty
  \if@tempswa \else \PassOptionsToClass{#1}{\baseclass}\fi
}
\@checkoptions{11pt}{{10pt}{11pt}{12pt}}
\PassOptionsToClass{a4paper}{\baseclass}
\ProcessOptions\relax
\LoadClass{\baseclass}
\newcommand\bhrule{\typeout{------------------------------------------------------------------------------}}

\newcommand\btypeout[1]{\bhrule\typeout{\space #1}\bhrule}
\usepackage{setspace}
\usepackage{vmargin}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage[scriptsize]{subfigure}
\usepackage{booktabs}
\usepackage{rotating}
\usepackage{listings}
\usepackage{lstpatch}
\usepackage[pdfpagemode={UseOutlines},bookmarks=true,bookmarksopen=true,
   bookmarksopenlevel=0,bookmarksnumbered=true,hypertexnames=false,
   colorlinks,linkcolor={blue},citecolor={blue},urlcolor={red},
   pdfstartview={FitV},unicode,breaklinks=true]{hyperref}
\pdfstringdefDisableCommands{
   \let\\\space
}
\addtocounter{secnumdepth}{1}
\setcounter{tocdepth}{3}  
\newcounter{dummy}
\newcommand\addtotoc[1]{
\refstepcounter{dummy}
\addcontentsline{toc}{chapter}{#1}}
\renewcommand\listoffigures{
\btypeout{List of Figures}
\addtotoc{List of Figures}
\begin{spacing}{1}{
    \setlength{\parskip}{1pt}
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\listfigurename
      \@mkboth{\MakeUppercase\listfigurename}
              {\MakeUppercase\listfigurename}}
    \@starttoc{lof}
    \if@restonecol\twocolumn\fi
    \cleardoublepage
}\end{spacing}
}

and the bibtex file

@unpublished{Ackermann02,
        author = "Author One",
        title = "modelling",
        note = "Available at",
                year = 2000}

@book{Esteban04,
        author = "Author Two",
        title = "Title Two",
        publisher = "Publisher 2",
        address = "",
        year = "2000"
}           

@book{Nguyen12,
        author = "Author three",
        title = "Title Three",
        publisher = "Publisher 3",
        address = "",
        year = "2000"
}   

@article{Remondino06,   
    author = {Author Four},
    journal = {The Photogrammetric Record},   
    title = {Title four},
    volume = {20},
    year = {2000}
}   

@article{Olsen09,
     author = {Author Five},
     title = {Title Six},
     journal = {Computers and Graphics},         
     volume = {31},
     year = {2000},
     pages = {0--10}
} 
6

Since you put \listoffigures before your \cite commands, the first two cited references are the ones inside the \captions.

So they appear in the following order:

Ackermann02

Olsen09

Esteban04

Remondino06

Nguyen12

Moving \listoffigures at the end of the document solves the problem.

\documentclass[a4paper, 11pt, oneside]{Thesis}  % Use the "Thesis" style, based on the ECS Thesis style by Steve Gunn
%\documentclass{book}  % Use the "Thesis" style, based on the ECS Thesis style by Steve Gunn

\usepackage[square, numbers, comma, sort&compress]{natbib}  % Use the "Natbib" style for the references in the Bibliography
\usepackage{verbatim}  % Needed for the "comment" environment to make LaTeX comments
\usepackage{vector}  % Allows "\bvec{}" and "\buvec{}" for "blackboard" style 6
\usepackage{amssymb}


\begin{document}

\mainmatter   % Begin normal, numeric (1,2,3...) page numbering
\pagestyle{fancy}
%\input{Chapter1} % Introduction

This is the first \cite{Ackermann02}

\begin{figure}[h]
 \centering
 \includegraphics[width = 0.4\textwidth]{Figure1.jpg}
 \caption{Figure1 \cite{Ackermann02}. }
 \label{fig:Figure1}
\end{figure}

This is the second \cite{Esteban04, Remondino06, Nguyen12}.

Sixth is this \cite{Olsen09}.

\begin{figure}[h]
 \centering
 \includegraphics[scale=1.0]{Figure2.eps}
     \hspace{ 5.5 mm}\caption{ (taken from \cite{Olsen09}). }
\label{fig:Figure2}
\end{figure}

\label{Bibliography}
\lhead{\emph{Bibliography}}  % Change the left side page header to "Bibliography"
\bibliographystyle{unsrtnat}  % Use the "unsrtnat" BibTeX style for formatting the Bibliography
\bibliography{Bibliography}  % The references (bibliography) information are stored in the file named "Bibliography.bib"

\lhead{\emph{List of Figures}}  % Set the left side page header to "List if Figures"
\listoffigures  % Write out the List of Figures

\end{document}  % The End

If you can not move \listoffigures at the end of the document, you can \nocite the references in the right order just after \begin{document}:

 \documentclass[a4paper, 11pt, oneside]{Thesis}  % Use the "Thesis" style, based on the ECS Thesis style by Steve Gunn
%\documentclass{book}  % Use the "Thesis" style, based on the ECS Thesis style by Steve Gunn

\usepackage[square, numbers, comma, sort&compress]{natbib}  % Use the "Natbib" style for the references in the Bibliography
\usepackage{verbatim}  % Needed for the "comment" environment to make LaTeX comments
\usepackage{vector}  % Allows "\bvec{}" and "\buvec{}" for "blackboard" style 6
\usepackage{amssymb}


\begin{document}

\nocite{Ackermann02}
\nocite{Esteban04}
\nocite{Remondino06}
\nocite{Nguyen12}
\nocite{Olsen09}

\lhead{\emph{List of Figures}}  % Set the left side page header to "List if Figures"
\listoffigures  % Write out the List of Figures

\mainmatter   % Begin normal, numeric (1,2,3...) page numbering
\pagestyle{fancy}
%\input{Chapter1} % Introduction

This is the first \cite{Ackermann02}

\begin{figure}[h]
 \centering
 \includegraphics[width = 0.4\textwidth]{Figure1.jpg}
 \caption{Figure1 \cite{Ackermann02}. }
 \label{fig:Figure1}
\end{figure}

This is the second \cite{Esteban04, Remondino06, Nguyen12}.

Sixth is this \cite{Olsen09}.

\begin{figure}[h]
 \centering
 \includegraphics[scale=1.0]{Figure2.eps}
     \hspace{ 5.5 mm}\caption{ (taken from \cite{Olsen09}). }
\label{fig:Figure2}
\end{figure}

\label{Bibliography}
\lhead{\emph{Bibliography}}  % Change the left side page header to "Bibliography"
\bibliographystyle{unsrtnat}  % Use the "unsrtnat" BibTeX style for formatting the Bibliography
\bibliography{Bibliography}  % The references (bibliography) information are stored in the file named "Bibliography.bib"

\end{document}  % The End 

There are still two possibilities:

  1. If you don't need the link to the reference to be printed in the 'List of Figures' you can print the "short form" of the caption. For example substitute \caption{ (taken from \cite{Olsen09}). } with \caption[Fig. 2]{ (taken from \cite{Olsen09}). }. This way the corresponding \cite is not collected.
  2. In the .bib file, put the references in the exact order they have to appear in the 'Bibliography' and put \nocite{*} just after \begin{document}. Anyaway, note that in this case all the references included in the .bib file will be printed, even the ones you have not \cited...
1

You need to disable file writing in the list of figures. In the example, the filecontents* environment is used just to make it self-contained; you can use your own class and bibliography file.

\begin{filecontents*}{\jobname.bib}
@unpublished{Ackermann02,
        author = "Author One",
        title = "modelling",
        note = "Available at",
                year = 2000}

@book{Esteban04,
        author = "Author Two",
        title = "Title Two",
        publisher = "Publisher 2",
        address = "",
        year = "2000"
}           

@book{Nguyen12,
        author = "Author three",
        title = "Title Three",
        publisher = "Publisher 3",
        address = "",
        year = "2000"
}   

@article{Remondino06,   
    author = {Author Four},
    journal = {The Photogrammetric Record},   
    title = {Title four},
    volume = {20},
    year = {2000}
}   

@article{Olsen09,
     author = {Author Five},
     title = {Title Six},
     journal = {Computers and Graphics},         
     volume = {31},
     year = {2000},
     pages = {0--10}
} 
\end{filecontents*}
\documentclass{book}

\usepackage[square, numbers, comma, sort&compress]{natbib}
\usepackage[demo]{graphicx}

\usepackage{etoolbox}

\makeatletter
\newcommand{\disablewritingcites}{%
  \patchcmd{\@nocite}{\if@filesw}{\iffalse}{}{}%
}
\makeatother

\begin{document}


\begingroup\makeatletter\@fileswfalse\makeatother
\listoffigures  % Write out the List of Figures
\endgroup
\mainmatter

This is the first \cite{Ackermann02}

\begin{figure}[h]
 \centering
 \includegraphics[width = 0.4\textwidth]{Figure1.jpg}
 \caption{Figure1 \cite{Ackermann02}. }
 \label{fig:Figure1}
\end{figure}

This is the second \cite{Esteban04, Remondino06, Nguyen12}.

Sixth is this \cite{Olsen09}. 

\begin{figure}[h]
 \centering
 \includegraphics[scale=1.0]{Figure2.eps}
     \hspace{ 5.5 mm}\caption{ (taken from \cite{Olsen09}). }
\label{fig:Figure2}
\end{figure}

\bibliographystyle{unsrtnat}
\bibliography{\jobname}

\end{document}

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.