hyperref not working. It goes to wrong page
There are multiple issues with the O.P. code...
- Use
\cleardoublepage\phantomsection\addcontentsline{...}
if some content must be explicitly added to a ToC - For the Table of Contents and List of Figures
\usepackage{tocbibind}
is the cleaner solution - The
Introduction
should be real chapter and not something with\section
andsubsection
. This screws up the bookmarking etc. and numbering. - The
\input
is too much for my taste -- It makes editing (and debugging) very difficult.
Some notes on \phantomsection
etc.
If content is to be added to a .toc
etc. file, \addcontentsline{toc}{...}{...}
is most times the right choice. However, if this happens without a \cleardoublepage
(or \clearpage
) in conjunction with \phantomsection
, the link will go to a previous page.
The \phantomsection
can be omitted however, if a command like \chapter*
etc. is used. An anchor related to chapter*
is inserted by hyperref
then. For more information, see section
3.2 Options for destination names
in the hyperref
manual please.
\documentclass[12pt, a4paper, oneside]{report}
\usepackage[T1]{fontenc}
\usepackage{mathptmx} %times font
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{enumerate}
\usepackage{setspace}
\usepackage[english]{babel} %roman & arabic label page
\usepackage[top=50mm , bottom=50mm, left=45mm, right=45mm]{geometry}
\addto\captionsenglish{% Replace "english" with the language you use
\renewcommand{\contentsname}%
{Table of Contents}% change "Contents" (default) to "Table of Contents"
}
\title{Foo}
\author{Foo}
\usepackage{blindtext}
\usepackage{tocbibind}
\usepackage{hyperref}
\hypersetup{
colorlinks=true, %set true if you want colored links
linktoc=all, %set to all if you want both sections and subsections linked
linkcolor=black, %choose some color if you want links to stand out
}
\pagenumbering{Roman}
\begin{document}
\input{CoverPage}
\thispagestyle{empty}
\cleardoublepage
\input{TitlePage}
\thispagestyle{empty}
\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{Copyright}
\input{CopyrightPage}
\setcounter{page}{1}
\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{Declaration}
\input{DeclarationPage}
\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{Acknowledgement}
\input{AcknowledgementPage}
\cleardoublepage
\tableofcontents
\addcontentsline{toc}{chapter}{Table of Contents}
\cleardoublepage
\listoffigures
\addcontentsline{toc}{chapter}{List of Figures}
\cleardoublepage
% % (1) =========================================
\pagenumbering{arabic}
\phantomsection
\addcontentsline{toc}{chapter}{1. Introduction}
\input{Introduction}
\setcounter{chapter}{1} % Why???
\end{document}
For the individual FooPage.tex
files I used basically this code
\chapter*{Foo} % To make the page header outstanding, just for this solution
\blindtext[2]
Replace Foo
with the relevant name (Exception: TitlePage.tex
is \maketitle
only)
The individual \phantomsection
commands aren't necessary if \chapter*
etc is used, but I kept them, since it's unclear what's inside the real \input{...}
files.