%%
%% The LaTeX Companion, 3ed
%%
%% Example 2-4-2 on page I-76 in "Managing references".
%%
%% Copyright (C) 2022 Frank Mittelbach
%%
%% It may be distributed and/or modified under the conditions
%% of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%%
%% See https://www.latex-project.org/lppl.txt for details.
%%

\documentclass{tlc3exa}
\pagestyle{empty}
\setcounter{page}{6}
\setlength\textwidth{135.0pt}


 \setcounter{section}{2}

 \makeatletter
 \renewcommand\section{\@startsection {section}{1}{\z@}%
   {-2.5ex \@plus -1ex \@minus -.2ex}%
   {1.3ex \@plus.2ex}%
   {\normalfont\Large\bfseries}}
 \renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
   {-2.25ex\@plus -1ex \@minus -.2ex}%
   {0.5ex \@plus .2ex}%
   {\normalfont\large\bfseries}}
 \makeatother

%StartShownPreambleCommands

%StopShownPreambleCommands

\begin{document}
\section{A section}
\subsection{A subsection}\label{sec:before}
Text before is referenced as `\ref{sec:before}'.

\begin{figure}[ht]           \label{fig:in1}   % bad
\begin{center}
  \fbox{\ldots{} figure body \ldots}
  \caption{First caption}   \label{fig:in2}   % ok
  \bigskip
  \fbox{\ldots{} figure body \ldots}
  \caption{Second caption}  \label{fig:in3}   % ok
\end{center}                \label{fig:in4}   % bad
\end{figure}
\label{sec:after} % bad, unless you want the page reference

\raggedright
The labels are: `before' (\ref{sec:before}),
`fig:in1' (\ref{fig:in1}) -- bad, `fig:in2' (\ref{fig:in2}),
`fig:in3' (\ref{fig:in3}), `fig:in4' (\ref{fig:in4}) -- bad
and `after' (\ref{sec:after})  -- probably bad!
\end{document}