\documentclass{projdoc}
% if the document compiles too slow (likely due to many/large images), try compiling
% with the [draft] option. this replaces all images with placeholders.
\title{Example Document}
\begin{document}
% generate table of contents, list of figures and list of tables
\tablestables
\bigskip
Look how nice and consistent these tables and lists look compared to the default in
MS Word!
% flush page
\newpage
\section{Introduction}
This is an example document that is meant to demonstrate various \LaTeX{} features,
as well as some macros specific to \hbox{projdoc.cls}.
% LaTeX has automatic line breaking. \hbox is used here to ensure projdoc.cls is
% never broken across lines.
\section{Sectioning}
\subsection{Subsections}
\subsubsection{Subsubsections}
\paragraph{Paragraphs (level 4)}
These don't show up in the table of contents by default
\section{Figures and tables}
\Cref{fig:example-a} definitely shows something. Referencing multiple things at once
is neatly handled by cleveref:
\cref{fig:example-a,fig:example-b,fig:example-puml,tab:gate-xor}.
\begin{figure}
\centering
\includegraphics[width=8cm]{example-image-a}
\caption{This is the figure title}
\label{fig:example-a} % label must be placed AFTER caption
\end{figure}
\begin{figure}
\begin{subfigure}{0.45\textwidth}%
\centering
\fitimg{\includegraphics{example-image-b}}
\caption{Example image B}
\label{fig:example-b}
\end{subfigure}%
\hfill
\begin{subfigure}{0.45\textwidth}%
\centering
\includepumldiag{img/example.puml}
\caption{Example PlantUML diagram}
\label{fig:example-puml}
\end{subfigure}%
\caption{Subfigures}
\end{figure}
\begin{table}
\centering
% i know, table code sucks
\begin{tabular}{ll@{\qquad}r}
\toprule
$a$ & $b$ & $x$\\
\midrule
0 & 0 & 0\\
0 & 1 & 1\\
1 & 0 & 1\\
1 & 1 & 0\\
\bottomrule
\end{tabular}
% booktabs tables look very nice, but it seems the author hates vertical rules with
% a burning passion. please avoid using vertical rules for consistency.
\caption{XOR-gate truth table}
\label{tab:gate-xor}
\end{table}
\begin{table}
\begin{tabularx}{\linewidth}{lXr}
\toprule
left & & right\\
\midrule
This table & fills all available & horizontal space\\
\bottomrule
\end{tabularx}
\caption{Really wide table}
\end{table}
\section{Other markup}
\subsection{Fonts}
The \codeinline{\emph} command can be used to \emph{emphasize} (i.e.~italicize) text.
% Note the ~ (non-breaking space) after "i.e.". LaTeX inserts some extra negative
% space after a full stop, but since the full stop is used to denote an abbreviation
% we need to tell LaTeX to insert a regular space. This can also be achieved by using
% "\ ", though this allows LaTeX to break a line after the "i.e." which looks ugly in
% my opinion.
The \codeinline{\codeinline} command can be used to insert inline code.
The \codeinline{blockcode} environment can be used to insert a code block:
\begin{blockcode}
This is all included verbatim: \verb|asdf| \ $%!(*@#&)$
\end{blockcode}
\subsection{Information dumps}
Unordered (bullet) list:
\begin{itemize}
\item Foo
\item Bar
\item Baz
\end{itemize}
Numbered list:
\begin{enumerate}
\item Foo
\item Bar
\item Baz
\item \begin{enumerate}
\item These
\item Can
\item Be
\item Nested
\item And
\item \label{item:enum-nest-ref} Referenced
\end{enumerate}
\end{enumerate}
(See \cref{item:enum-nest-ref})
Description:
\begin{description}
\item[Item one] description of item one
\item[Item two] description of item two
\item[Item three] ...
\end{description}
\subsection{Comparisons}
\begin{comparison}
\pro{Good thing}
\con{Bad thing}
\pro{Good thing 2}
\con{Bad thing 2}
\end{comparison}
\subsection{References}
\subsubsection{Citations}
Citations are inserted using the \codeinline{\autocite} command \autocite{rfc:3339}.
The bibliography is automatically printed after \codeinline{\end{document}}.
\subsubsection{Glossary}
Glossary entries can be inserted using the \codeinline{\gls} commands. Example:
``\Gls{sdl} handles \glspl{hid} as well!''. In following occurrences of acronyms,
only their short form is printed: `\gls{sdl}' and `\gls{hid}'. All of these link to
the glossary that is automatically printed after \codeinline{\end{document}}.
\subsubsection{Requirements}
Requirements are referenced like \codeinline{\label}s:
e.g.~\cref{req:audio:handle,req:audio:async-api}.
\end{document}