Hi I'm trying to create a document in LaTeX with a few small subsections on the same page, is there any way to remove the repeated page numbers and keep the numbers when I move onto a new page?

-

Although I've no programming skills, it seems obvious that this possible; e.g. by adding a hook before each line of the toc: "if the pagenumer is the same as in the last line, print dots and number in \color{white} ".

The closest candidate seems to be the package tocloft. If you've got a full installation, you might get the manual by typing texdoc tocloft on the command line. Maybe you can use \cftXleader or something similar.

However, your readers will miss the numbers and ask themselves (they can not ask you, can they? they are reading in a book!), whether it's a typo or not. So take my advice: print the 'toc' like all others do . . .

-
These are all okay workarounds, but I think I will leave it, and change the subsections to headings. Thanks! –  Jas_Young Jul 20 '12 at 23:14

Here is one way to do this using the tocloft package. The idea is roughly that proposed by Keks Dose, but here are the correct details and a concrete implementation.

You need to redefine the \cftXfillnum macro, where X stands for the relevant section levels, whose numbers you don't want displayed, and at one level above. Each of these needs to store the relevant page number in a some variable. The lower entries need to test the current value against the stored value and act accordingly.

In this example I have assumed you want all sections to be numbered, but subsections and subsections under those with common page numbers are not numbered.

\documentclass[12pt,a4paper]{article}

\usepackage{tocloft}

\makeatletter
\def\currentcontentsnumber{0}
\renewcommand{\cftsecfillnum}[1]{
\makebox[\@pnumwidth][\cftpnumalign]{%
{\cftsecpagefont #1}}\cftsecafterpnum\par
\gdef\currentcontentsnumber{#1}}
\renewcommand{\cftsubsecfillnum}[1]{\expandafter\ifx\currentcontentsnumber#1
\hfill\nobreak\else
\makebox[\@pnumwidth][\cftpnumalign]{%
{\cftsubsecpagefont #1}}\fi
\cftsubsecafterpnum\par
\gdef\currentcontentsnumber{#1}}
\renewcommand{\cftsubsubsecfillnum}[1]{\expandafter\ifx\currentcontentsnumber#1
\hfill\nobreak\else
\makebox[\@pnumwidth][\cftpnumalign]{%
{\cftsubsubsecpagefont #1}}\fi
\cftsubsubsecafterpnum\par
\gdef\currentcontentsnumber{#1}}
\makeatother

\begin{document}

\tableofcontents

\newpage
\section{Lorem ipsum}
dolor sit amet
elit. Donec a diam lectus.
\subsubsection{Sed}
\section{sit amet}
ipsum mauris. Maecenas congue[...]
\newpage
\section{ligula}
ac quam viverra[...]
\newpage
\subsection{nec}
\end{document}

-