The general issues of adjusting the appearance of section headings are pretty complex, and are covered in the question on the style of section headings.
However, people regularly want merely to change the way the section number appears in the heading, and some such people don't mind writing out a few macros. This answer is for them.
The way the section number is typeset is determined by the
\@seccntformat
command, which is given the "name" (section,
subsection, ...) of the heading, as argument. Ordinarily, it
merely outputs the section number, and then a \quad
of space.
Suppose you want to put a stop after every section (subsection,
subsubsection, ...) number, a trivial change may be implemented by
simple modification of the command:
\renewcommand*{\@seccntformat}[1]{% \csname the#1\endcsname.\quad }
Most people (for some reason) just want a stop after a section
number. To do this, one must make \@seccntformat
switch according
to its argument. The following technique for doing the job is
slightly wasteful, but is efficient enough:
\let\@@seccntformat\@seccntformat \renewcommand*{\@seccntformat}[1]{% \expandafter\let\@tempa\expandafter \csname @seccntformat@#1\endcsname \ifx\@tempa\relax \expandafter\@@seccntformat \else \expandafter\@tempa \fi {#1}% }which looks to see if a second-level command has been defined, and uses it if so; otherwise it uses the original. The second-level command to define stops after section numbers (only) has the same definition as the original "all levels alike" version:
\newcommand*{\@seccntformat@section}[1]{% \csname the#1\endcsname.\quad }
Note that all the command definitions of this answer are dealing in LaTeX internal commands, so the above code should be in a package file, for preference.