\documentclass{report}
\usepackage{hyperref}
% WARNING: THIS SHOULD BE MODIFIED DEPENDING ON THE LETTER/A4 SIZE
\oddsidemargin 0cm
\evensidemargin 0cm
\marginparsep 0cm
\marginparwidth 0cm
\parindent 0cm
\setlength{\textwidth}{\paperwidth}
\addtolength{\textwidth}{-2in}


% Conditional define to determine if pdf output is used
\newif\ifpdf
\ifx\pdfoutput\undefined
\pdffalse
\else
\pdfoutput=1
\pdftrue
\fi

\ifpdf
  \usepackage[pdftex]{graphicx}
\else
  \usepackage[dvips]{graphicx}
\fi

% Write Document information for pdflatex/pdftex
\ifpdf
\pdfinfo{
 /Author     (Pasdoc)
 /Title      ()
}
\fi


% definitons for warning and note tag
\usepackage[most]{tcolorbox}
\newtcolorbox{tcbwarning}{
 breakable,
 enhanced jigsaw,
 top=0pt,
 bottom=0pt,
 titlerule=0pt,
 bottomtitle=0pt,
 rightrule=0pt,
 toprule=0pt,
 bottomrule=0pt,
 colback=white,
 arc=0pt,
 outer arc=0pt,
 title style={white},
 fonttitle=\color{black}\bfseries,
 left=8pt,
 colframe=red,
 title={Warning:},
}
\newtcolorbox{tcbnote}{
 breakable,
 enhanced jigsaw,
 top=0pt,
 bottom=0pt,
 titlerule=0pt,
 bottomtitle=0pt,
 rightrule=0pt,
 toprule=0pt,
 bottomrule=0pt,
 colback=white,
 arc=0pt,
 outer arc=0pt,
 title style={white},
 fonttitle=\color{black}\bfseries,
 left=8pt,
 colframe=yellow,
 title={Note:},
}

\begin{document}
\label{toc}\tableofcontents
\newpage
% special variable used for calculating some widths.
\newlength{\tmplength}
\chapter{Unit ok{\_}interfaces{\_}graphviz}
\label{ok_interfaces_graphviz}
\index{ok{\_}interfaces{\_}graphviz}
\section{Overview}
\begin{description}
\item[\texttt{\begin{ttfamily}TBaseClass\end{ttfamily} Class}]
\item[\texttt{\begin{ttfamily}TDerivedClass\end{ttfamily} Class}]
\item[\texttt{\begin{ttfamily}TDerivedClassWithInterface\end{ttfamily} Class}]
\item[\texttt{\begin{ttfamily}IMyInterface\end{ttfamily} Interface}]
\item[\texttt{\begin{ttfamily}IMyInterface2\end{ttfamily} Interface}]
\item[\texttt{\begin{ttfamily}TDerivedClassWithMyInterface\end{ttfamily} Class}]
\item[\texttt{\begin{ttfamily}TDerivedClassWithMoreInterfaces\end{ttfamily} Class}]
\end{description}
\section{Classes, Interfaces, Objects and Records}
\ifpdf
\subsection*{\large{\textbf{TBaseClass Class}}\normalsize\hspace{1ex}\hrulefill}
\else
\subsection*{TBaseClass Class}
\fi
\label{ok_interfaces_graphviz.TBaseClass}
\index{TBaseClass}
\subsubsection*{\large{\textbf{Hierarchy}}\normalsize\hspace{1ex}\hfill}
TBaseClass {$>$} TObject
%%%%Description
\ifpdf
\subsection*{\large{\textbf{TDerivedClass Class}}\normalsize\hspace{1ex}\hrulefill}
\else
\subsection*{TDerivedClass Class}
\fi
\label{ok_interfaces_graphviz.TDerivedClass}
\index{TDerivedClass}
\subsubsection*{\large{\textbf{Hierarchy}}\normalsize\hspace{1ex}\hfill}
TDerivedClass {$>$} \begin{ttfamily}TBaseClass\end{ttfamily}(\ref{ok_interfaces_graphviz.TBaseClass}) {$>$} 
TObject
%%%%Description
\ifpdf
\subsection*{\large{\textbf{TDerivedClassWithInterface Class}}\normalsize\hspace{1ex}\hrulefill}
\else
\subsection*{TDerivedClassWithInterface Class}
\fi
\label{ok_interfaces_graphviz.TDerivedClassWithInterface}
\index{TDerivedClassWithInterface}
\subsubsection*{\large{\textbf{Hierarchy}}\normalsize\hspace{1ex}\hfill}
TDerivedClassWithInterface {$>$} \begin{ttfamily}TBaseClass\end{ttfamily}(\ref{ok_interfaces_graphviz.TBaseClass}) {$>$} 
TObject
%%%%Description
\ifpdf
\subsection*{\large{\textbf{IMyInterface Interface}}\normalsize\hspace{1ex}\hrulefill}
\else
\subsection*{IMyInterface Interface}
\fi
\label{ok_interfaces_graphviz.IMyInterface}
\index{IMyInterface}
\subsubsection*{\large{\textbf{Hierarchy}}\normalsize\hspace{1ex}\hfill}
IMyInterface {$>$} IInterface
%%%%Description
\ifpdf
\subsection*{\large{\textbf{IMyInterface2 Interface}}\normalsize\hspace{1ex}\hrulefill}
\else
\subsection*{IMyInterface2 Interface}
\fi
\label{ok_interfaces_graphviz.IMyInterface2}
\index{IMyInterface2}
\subsubsection*{\large{\textbf{Hierarchy}}\normalsize\hspace{1ex}\hfill}
IMyInterface2 {$>$} IInterface
%%%%Description
\ifpdf
\subsection*{\large{\textbf{TDerivedClassWithMyInterface Class}}\normalsize\hspace{1ex}\hrulefill}
\else
\subsection*{TDerivedClassWithMyInterface Class}
\fi
\label{ok_interfaces_graphviz.TDerivedClassWithMyInterface}
\index{TDerivedClassWithMyInterface}
\subsubsection*{\large{\textbf{Hierarchy}}\normalsize\hspace{1ex}\hfill}
TDerivedClassWithMyInterface {$>$} \begin{ttfamily}TBaseClass\end{ttfamily}(\ref{ok_interfaces_graphviz.TBaseClass}) {$>$} 
TObject
%%%%Description
\ifpdf
\subsection*{\large{\textbf{TDerivedClassWithMoreInterfaces Class}}\normalsize\hspace{1ex}\hrulefill}
\else
\subsection*{TDerivedClassWithMoreInterfaces Class}
\fi
\label{ok_interfaces_graphviz.TDerivedClassWithMoreInterfaces}
\index{TDerivedClassWithMoreInterfaces}
\subsubsection*{\large{\textbf{Hierarchy}}\normalsize\hspace{1ex}\hfill}
TDerivedClassWithMoreInterfaces {$>$} \begin{ttfamily}TBaseClass\end{ttfamily}(\ref{ok_interfaces_graphviz.TBaseClass}) {$>$} 
TObject
%%%%Description
\end{document}
