[Tex/LaTex] Template for Standard Operating Procedures

templates

There are several queries and answers for technical reference manuals, user guides etc. and I've found enough places on the net that have these templates along with detailed descriptions of their scope.
But where can I find a TeX template for Standard Operating Procedures specifically?
The template should typically have:

  • A standard-looking Header and footer for the procedure numbers, company name etc.
  • Uniform formatting for headings, bullets and sub-bullets
  • Simple placeholders for images (not a priority).

The guys at my workplace typically write this sort of thing in Word 2007, but I feel the stuff I'm working on now is quite is quite well suited to and will benefit greatly from using TeX.

P.S. I am at a beginner level when it comes to LaTeX, but I'm very comfortable using it. Also, if it makes any difference to your answers – I prefer to write it completely by hand in a simple editor (rather than using something like LyX, for example). The output is in pdf.

Here are two examples of the look I'd like:

Best Answer

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

enter image description here

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

enter image description here

and

enter image description here

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.

Related Question