This isn't everything you're looking for, but it's a start, and hopefully will give you an idea of how easily document class customization can start out. Mind you, I'm not going to worry much about emulating bad habits from the Word document, but focus on simple semantic content and formatting.
Let's start with some minimal content from your PDF:
\documentclass[12pt]{article}
\title{Personal Protective Clothing Level}
\date{7/24/08}
\author{Harper}
\begin{document}
\maketitle
\section{Procedures}
\subsection{Structure Fires}
\begin{enumerate}
\item All firefighters operating in the ``hot zone'' of a structure fire will be in
full turnouts to include coat, pants, helmet, hood, gloves and boots. When operating
in an IDLH atmosphere an SCBA shall be worn.
\item Engineers when operating close to the incident and exposed to products of
combustion shall also be in full PPE including SCBA. If outside the ``hot zone''
engineers will be allowed to modify their PPE accordingly. If the Engineer is
considered to be a part of the RIT team, then full PPE including an SCBA shall be
worn.
\end{enumerate}
\end{document}
Using the standard article class as given, you get page content that looks like
After writing a (relatively) simple document class based off article, the same content (with \documentclass[12pt]{sop}
and \approved{Chief Harper}
instead of \documentclass[12pt]{article}
, you get page content that looks like
and
The file sop.cls that created this layout is:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{sop}[2011/07/08 v0.2 Modified article class for standard operating procedures]
% https://stackoverflow.com/questions/581916/how-do-you-extend-article-document-class-in-latex
% Passes and class options to the underlying article class
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions
\LoadClass{article}
% Redefine the page margins
\RequirePackage[left=1in,right=1in,top=1in,bottom=1in]{geometry}
% Modifications to the section titles
\RequirePackage{titlesec}
\renewcommand{\thesection}{\Roman{section}}
\titleformat{\section}{\normalfont\bfseries}
{\makebox[3em][l]{\thesection{}.}}{0pt}{}
\titleformat{\subsection}{\normalfont\bfseries}
{}{0pt}{}
% Modification of title block
\RequirePackage{titling}
\RequirePackage{multirow}
\newcommand{\approved}[1]{\newcommand{\theapproved}{#1}}
% Ref: http://tex.stackexchange.com/questions/3988/titlesec-versus-titling-mangling-thetitle
\let\oldtitle\title
\renewcommand{\title}[1]{\oldtitle{#1}\newcommand{\mythetitle}{#1}}
\renewcommand{\maketitle}{%
\begin{tabular}{|c|p{2in}|l|l|} \hline
\multirow{3}{*}{logo} & \multicolumn{1}{p{2.5in}|}{\centering Mammoth Lakes Fire Protection District } & Date: \thedate & Number: \\ \cline{2-4}
& \multicolumn{1}{p{2.5in}|}{\centering Standard Operating Procedure } & \multicolumn{2}{p{2.5in}|}{Title: \mythetitle} \\ \cline{2-4}
& Approved By: \theapproved & \multicolumn{2}{l|}{Revision Date: \quad / \quad / \quad} \\ \hline
\end{tabular}
}
% For "Page N of M"
\RequirePackage{lastpage}
% For easier construction of page headers/footers
\RequirePackage{fancyhdr}
\fancypagestyle{plain}{ % for first page
\fancyhf{}
\fancyfoot[L]{\framebox{Author: \theauthor}\\ \jobname{}.tex}
\fancyfoot[R]{\framebox{Page: \thepage{} of \pageref*{LastPage}}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}
\pagestyle{fancy} % for other pages
\fancyhf{}
\fancyhead[R]{%
\begin{tabular}{|c|c|} \hline %
Revision Date: & Number: \\
\quad / \quad / \quad & \\ \hline
\end{tabular}%
}
\fancyfoot[L]{\framebox{Author: \theauthor}}
\fancyfoot[R]{\framebox{Page: \thepage{} of \pageref*{LastPage}}} % \pageref* if we use hyperref, \pageref otherwise
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
% For easier customization of itemized, enumerated, and other lists
\RequirePackage{enumitem}
% For hyperlinked cross-references
\RequirePackage{hyperref}
% Ensure first page is correct style
\thispagestyle{plain}
% That's all, folks!
\endinput
See this SO question for where I got started with this.
Here is a cover letter as shown except for the date location (maybe someone can advice us on how to change its location unless that doesn't matter).
In the main document, you add \usepackage{pdfpages}
and where you want the letter you put \includepdf[pages = 1]{coverletter.pdf}
. The pages =
option is what page you want to insert the cover letter.
Here is a link to the package documentation: http://www.ctan.org/pkg/pdfpages
\documentclass[11pt]{letter}
\usepackage{newcent}
\usepackage{lipsum}
% Margins
\topmargin = -1in
\textheight = 8.5in
\oddsidemargin = -10pt
\textwidth = 6.5in
\let\raggedleft\raggedright
\begin{document}
\begin{letter}{
My Name\\
U of Research\\
Some address\\
Some city, state, and zip code\\
Some phone number\\
My e-mail address\\
\medskip
Dr. John Edit\\
Editor-in-Chief\\
\textit{Journal of Science}
}
\signature{
My Name\\
Professor, Dep ...\\
U of Research
}
\opening{Dear Dr. Edit:}
\lipsum[2-4]
\closing{Sincerely,}
\end{letter}
\end{document}
Here was a sample main.tex
I created.
\documentclass{article}
\usepackage{lipsum}
\usepackage[final]{pdfpages}
\usepackage{tocloft}
% this section enclosed was lifted from Alan Munn
\usepackage{fancyhdr}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\pagestyle{fancy}
%-------------------------------------------------
\cfoot{\thepage}
\begin{document}
\cleardoublepage
\tableofcontents
\includepdf[addtotoc = {1, section, 1, Cover Letter, coverl}, pagecommand =
{\thispagestyle{fancy}}]{coverletter.pdf}
% addtotoc has {section number (first so it occurs after the toc,
% type it could chapter, section, etc, level refers to chapter...,
% the name in toc, and reference label
\section{Two}
\lipsum[1-3]
\end{document}
Since this was 3 pages, I had to take unorthodox pictures to show it achieves your request.
Table of Contents correctly ordered:
Bottom of TOC page with letter following:
Bottom of the letter page numbered in correct order:
Bottom of the letter followed by the first section which has been indexed to the section 2.
Best Answer
I have almost abused the IFAC conference template by only invoking the abstract part as the following
You can download the template from here. Hope that it suits your needs.