1
votes

I would like to have a table of content with numbering identical to the ones in text. So, in text each section/subsection/subsubsection is numerated as '1.' or '1.1.' or '1.1.1.'. However my table of content is not updating it, so it shows '1' or '1.1'.

I was following answer to this topic: https://superuser.com/questions/811779/how-to-add-a-dot-for-section-subsection-numbering-in-tex So I am using 'secdot' package. I have tried using

\renewcommand{\thechapter}{\arabic{chapter}.}
\renewcommand{\thesection}{\thechapter\arabic{section}.}

but I keep getting '\the chapter undefined', 'No counter chapter defined' or 'Missing number, treated as zero' errors.

I would appreciate any tips on what's wrong.

EDIT:

\documentclass[11pt, a4paper, twoside]{article}
\usepackage{listings, lstautogobble}
\usepackage{ragged2e}
\usepackage{times}
\usepackage{secdot}
\sectiondot{subsection}
\usepackage{listings}
\usepackage[toc,page]{appendix}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\geometry{a4paper,
 left=30mm,
 top=25mm,
 bottom=25mm,
 right=20mm
 }
\sectiondot{subsection}
\makenomenclature
\setlength{\parindent}{0.5 cm} 
\renewcommand{\baselinestretch}{1.15}
\pagenumbering{roman}

\begin{document}

\setboolean{@twoside}{false}

\begin{figure}[H]
\begin{center}
\includegraphics[width=14cm,height=15cm,keepaspectratio]{./thesis-     frontpagedesign}
\end{center}
\end{figure}

\begin{center}
\tableofcontents
\end{center}


\begin{center}
\listoffigures
\end{center}

\section{Introduction}
 %sometext

\makeatletter
\def\@seccntformat#1{%
  \expandafter\ifx\csname c@#1\endcsname\c@section\else
  \csname the#1\endcsname\quad
  \fi}
\makeatother


 \end{document}
1

1 Answers

3
votes

Your current setup is confusing. For example,

\makeatletter
\def\@seccntformat#1{%
  \expandafter\ifx\csname c@#1\endcsname\c@section\else
  \csname the#1\endcsname\quad
  \fi}
\makeatother

removes the setting of any \section number. And mixing this with the use of secdot seems problematic.

The easiest way to achieve dots after sectional unit numbers within your text as well as the ToC is to adjust the representation of the respective counters:

enter image description here

\documentclass{article}

\renewcommand{\thesection}{\arabic{section}.}
\renewcommand{\thesubsection}{\thesection\arabic{subsection}.}
\renewcommand{\thesubsubsection}{\thesubsection\arabic{subsubsection}.}

\begin{document}

\tableofcontents

\section{Introduction}

\end{document}

This solution is sufficient, but will also affect \references. For example \ref{sec:introduction} would return 1. which may look odd in the middle of a sentence: ... from section~\ref{sec:introduction} we can see ....

If you don't want periods ending your \references, you can use

enter image description here

\usepackage{secdot}% Adds . after sectional unit numbers
\usepackage{etoolbox}
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\numberline}{\hfil}{.\hfil}{}{}

You're already familiar with what secdot does. The patch to \numberline is thanks to etoolbox which changes the default definition

\def\numberline#1{\hb@xt@\@tempdima{#1\hfil}}

into

\def\numberline#1{\hb@xt@\@tempdima{#1.\hfil}}

effectively inserting an ending-period as part of the number that is printed within the ToC. Note that this will also affect how figures/tables are displayed within the LoF/LoT. However, one can change that using scoping:

\begingroup
% The following patch will only affect entries in the ToC
\patchcmd{\numberline}{\hfil}{.\hfil}{}{}
\tableofcontents
\endgroup
\listoffigures
\listoftables