%*******************************************************************************
% Copyright (c) 2014 Formal Mind GmbH and others
% All rights reserved. This program and the accompanying materials
% are made available under the terms of the Eclipse Public License v1.0
% which accompanies this distribution, and is available at
% http://www.eclipse.org/legal/epl-v10.html
% 
% Contributors:
%     Michael Jastram - initial Copy
%     Maha Jastram - susequent improvements
%******************************************************************************/

\documentclass[twoside,10pt]{book}
\usepackage{float}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[utf8]{inputenc}
\usepackage{soul}
\usepackage{wrapfig}
\usepackage{makeidx}
\usepackage[table,xcdraw]{xcolor}

%----------------------------------------------------------------------------------------
%	MACROS
%----------------------------------------------------------------------------------------

\newcommand{\pror}[0]{ProR}

\definecolor{menugray}{RGB}{230,230,230}
\sethlcolor{menugray} 
\newcommand{\menu}[1]{\hl{\texttt{#1}}}
\newcommand{\term}[1]{\textit{#1}}
\newcommand{\eclipsehelp}[2]{\href{http://help.eclipse.org/luna#1}{#2}}
\renewcommand{\floatpagefraction}{.8} % /improves floating of figures

%----------------------------------------------------------------------------------------
%	ENVIRONMENTS
%----------------------------------------------------------------------------------------

\definecolor{color-info}{RGB}{0,0,128} 
\newenvironment{info}{\begin{description}\item[\textcolor{color-info}{Information.}]}{\end{description}}

\definecolor{color-warning}{RGB}{128,0,0} 
\newenvironment{warning}{\begin{description}\item[\textcolor{color-warning}{Warning.}]}{\end{description}}

\newsavebox{\mybox}
\newenvironment{example}
{\noindent\textbf{Example}\newline\begin{lrbox}{\mybox}\begin{minipage}{0.97\textwidth}}
{\end{minipage}\end{lrbox}\fbox{\usebox{\mybox}}\vspace{0.3cm}}

\newenvironment{definition}[1]{\begin{quote}\noindent \textbf{#1.}}{\end{quote}}

%----------------------------------------------------------------------------------------
%	DOCUMENT INFO
%----------------------------------------------------------------------------------------

\title{Eclipse RMF User Guide}
\author{Michael Jastram and others}
\makeindex

%----------------------------------------------------------------------------------------
%	START DOCUMENT
%----------------------------------------------------------------------------------------

\begin{document}        

\maketitle

\tableofcontents

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Introduction}

\input{intro_intro}

\input{intro_conventions}

\section{Improve this Document}
Documentation is one of those things that gets easily neglected in open source projects.
It is also one of the easiest for outsiders to contribute to.  Please refer to
Chapter~\ref{sec:styleguide} if you would like to help improving this user guide.

\input{intro_acknowledgements}
\input{intro_license}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Overview}
\label{sec:overview}
\input{overview}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Tutorial}
\label{sec:tutorial}
\input{tutorial}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Reference}

\pror{} is a desktop application that is based on Eclipse for systems engineering in general, and requirements engineering in particular.

\input{reference-part1}
\input{reference-part2}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Presentations}
\label{sec:presentations}
\input{presentations}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Style Guide}
\label{sec:styleguide}
\input{style_guide}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage
\phantomsection
\addcontentsline{toc}{chapter}{Index} 
\printindex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{document}

