# How to number subsection of a nonumber section?

To number the subsection, I use

\renewcommand*\thesubsection{\thesection.\arabic{subsection}}

It works well for the normal numbered sections. For example, if we use

\section{A}
\subsection{try}
\subsection{try2}


it shows

1. A
1.1. try
1.2. try2


However, if one section is not numbered, the subsections within it looks weird. For example, if we write

\section*{A}
\subsection{try}
\subsection{try2}


we get

A
.1. try
.2. try


How can I write a macros to make an automatic judgement: if the section is numbered, this number is added to subsection numbering; if the section is not numbered, we directly number subsection by itself? As an example, I want to get

1. A
1.1. A1
1.2. A2

B
1. B1
2. B2

• Don't do this! The readers will be lost with such navigation through your text. – Zarko Nov 7 '15 at 19:47
• I hope it is obvious why this would be a weird thing to do, but look at your redefinition of \subsection. Then use: \renewcommand*\thesubsection{\arabic{subsection}} at the point where you want the redefinition to take place. You will probably also have to reset the subsection counter: \setcounter{subsection}{0}. (But, really, don't do this.). – jon Nov 7 '15 at 20:08
• Thank you all. Yes it is a bad idea. Following jon's, maybe it is good to \renewcommand*\thesubsection{*.\arabic{subsection}} and \setcounter{subsection}{0} at the point of nonumber-sections to make it clear. – X liu Nov 7 '15 at 21:01
• If you acknowledge this is a bad idea, why are you still trying to do it? – cfr Nov 8 '15 at 1:13
• This is document class and/or package dependent behavior. The default for book, report or article is to number subsections the way you do, but \section*{A} should not affect the section counter at all. Subsections should act like they are still in the last section (or section 0). – John Kormylo Nov 8 '15 at 15:25

This may make sense within the document body, but the ToC formatting will require some consideration.

Below I've updated the way \section works. It conditions on * and reformats the \thesubsection counter accordingly - either removing the prepended \thesection. or inserting it.

\documentclass{article}

\usepackage{xparse}

\let\oldsection\section
\RenewDocumentCommand{\section}{s o m}{%
\IfBooleanTF{#1}
{\oldsection*{#3}% \section*
\renewcommand{\thesubsection}{\arabic{subsection}}}% Update subsection numbering
{\IfNoValueTF{#2}% \section
{\oldsection{#3}}% \section{..}
{\oldsection[#2]{#3}}% \section[.]{..}
\renewcommand{\thesubsection}{\thesection.\arabic{subsection}}% Update subsection numbering
}%
\setcounter{subsection}{-1}\stepcounter{subsection}% Reset all sub-counters beyond \subsection
}

% Add period after sectional numbers in document body and ToC
\makeatletter
\renewcommand{\numberline}[1]{\hb@xt@\@tempdima{#1.\hfil}}
\makeatother

\begin{document}

\tableofcontents

\section{A}
\subsection{First subsection}
\subsection{Second subsection}

\section*{B}
\subsection{Third subsection}
\subsection{Fourth subsection}

\section*{C}
\subsection{Fifth subsection}
\subsection{Sixth subsection}

\section{D}
\subsection{Seventh subsection}
\subsection{Eighth subsection}

\end{document}