[Tex/LaTex] Sectioning in letter-type documents

lettersnewlfmsectioning

I want to use sectioning in letters (section, subsection, etc), but here I read that basically all of these sectioning commands do not apply to letters. What is the proper way to create sections in letters?

Using: documentclass[stdletter]{newlfm}

Best Answer

Here's one possible solution, using the kernel command \@startsection (you chan find a description of this command in Where can I find help files or documentation for commands like \@startsection for LaTeX?) to redefine the \section command (the newlfm class offers a very basic \section command) and define the \subsection command to behave as those from article.cls. Basically, all you have to do is to define the counters and use \@startsection with appropriate settings. A simple example:

\documentclass[stdletter]{newlfm}

\newcounter{section}
\newcounter{subsection}[section]
\setcounter{secnumdepth}{3}
\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\normalfont\Large\bfseries}}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\normalfont\large\bfseries}}
\renewcommand \thesection{\@arabic\c@section}
\renewcommand\thesubsection{\thesection.\@arabic\c@subsection}

\makeatother

\begin{document}

\section{Test Section One}
\subsection{Test Subsection One One}
\subsection{Test Subsection One Two}
\section{Test Section Two}
\subsection{Test Subsection Two One}
\subsection{Test Subsection Two Two}

\end{document}

enter image description here

The previous solution doen't make provissions for a ToC, but this is also really simple: all one has to do is to define \tableofcontents using \@starttoc and define \l@section, \l@subsection to typeset the corresponding entries.