From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 .../latex/contrib/h2020proposal/h2020proposal.cls  | 1182 ++++++++++++++++++++
 1 file changed, 1182 insertions(+)
 create mode 100644 macros/latex/contrib/h2020proposal/h2020proposal.cls

(limited to 'macros/latex/contrib/h2020proposal/h2020proposal.cls')

diff --git a/macros/latex/contrib/h2020proposal/h2020proposal.cls b/macros/latex/contrib/h2020proposal/h2020proposal.cls
new file mode 100644
index 0000000000..52e3f8a65b
--- /dev/null
+++ b/macros/latex/contrib/h2020proposal/h2020proposal.cls
@@ -0,0 +1,1182 @@
+%%
+%% h2020proposal.cls 2015/08/06 version V1.0
+%%
+%% LaTeX class for writing EU H2020 RIA proposals.
+%% 
+%% Adapted from ICTProposal.cls 2010/08/09 version V0.9 by Giacomo Indiveri
+%% Based on the 2009 fet-workpackage.sty file by Dennis Goehlsdorf and
+%% the 2008 ProposalB-template.tex files by Elisabetta Chicca and Chiara
+%% Bartolozzi
+%%
+%% Contributors: Giacomo Indiveri
+%%
+%% Current maintainer (V1.0): Giacomo Indiveri
+%% 
+%% Copyright (c) 2010, Giacomo Indiveri
+%%
+%%  This latex class is free software: you can redistribute it and/or modify
+%%  it under the terms of the GNU General Public License as published by
+%%  the Free Software Foundation, either version 3 of the License, or
+%%  (at your option) any later version.
+%%
+%%  h2020proposal.cls is distributed in the hope that it will be useful,
+%%  but WITHOUT ANY WARRANTY; without even the implied warranty of
+%%  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+%%  GNU General Public License for more details.
+%%
+%%  You should have received a copy of the GNU General Public License
+%%  along with h2020proposal.  If not, see <http://www.gnu.org/licenses/>.
+%%
+%
+% 2011-09-29 - Added draft mode option, to show reference keys and EU instructions
+% 2012-02-26 - Added \maketasklist command, to show responsible PIs for WP tasks
+% 2012-03-14 - Modified \makewptable to allow for arbitrary number of groups
+% 2012-03-20 - Added \ganttchartdata command to fill in data for Gantt chart
+% 2015-02-12 - Adapted ICTProposal class to the new H2020 template
+% 2015-02-15 - Added Summary of Costs tables
+% 2015-04-022- Modified \wptask command to show both leader and contributors 
+% 2015-04-04 - Modified \wpdeliverable command to show both "nature" and "dissemination level" in table.
+% 2015-08-06 - Rewrote \makecoststable command without making use of auxiliary files. 
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{h2020proposal}[2015/08/06 revision V0.7 by Giacomo Indiveri]
+\ClassInfo{h2020proposal}{-- See the h2020proposal manual for usage information.}
+\ClassInfo{h2020proposal}{-- The source comments also have basic usage notes.}
+
+% define new needed flags to indicate document options
+% and set a few "failsafe" defaults
+\newif\if@draftmode       \global\@draftmodefalse
+
+\DeclareOption{draft}{
+  \global\@draftmodetrue%
+  \PassOptionsToPackage{draft}{memoir}%
+  \PassOptionsToPackage{final}{graphicx}
+}
+\ExecuteOptions{a4paper}
+\ProcessOptions
+
+
+%% We use the memoir class because it offers a many easy to use features.
+\if@draftmode%
+  \typeout{** ATTENTION: DRAFT mode.}%
+  \LoadClass[article,a4paper,draft,showtrims,11pt]{memoir}%
+  \usepackage{morewrites}
+  \usepackage[notref,notcite]{showkeys}
+  \usepackage[final]{rotating}
+  \renewcommand{\showkeyslabelformat}[1]{\begin{sideways} \framebox{\normalfont\tiny\ttfamily\color{red}#1} \end{sideways}}
+\else
+  \LoadClass[article,a4paper,11pt]{memoir}%
+  \usepackage{morewrites}
+\fi%
+
+\setmarginnotes{17pt}{51pt}{\onelineskip}
+\settrimmedsize{297mm}{210mm}{*}
+\setlength{\trimtop}{0pt}
+\setlength{\trimedge}{\stockwidth}
+\addtolength{\trimedge}{-\paperwidth}
+\settypeblocksize{693pt}{490pt}{*}
+\setulmargins{2.75cm}{*}{*}
+\setlrmargins{1.75cm}{*}{*}
+\setheadfoot{\onelineskip}{2\onelineskip}
+\setheaderspaces{*}{2\onelineskip}{*}
+\checkandfixthelayout
+
+\usepackage{longtable} % for the WP, Deliverable and Milestone lists 
+\usepackage{coolstr}   % for string checking
+\usepackage{colortbl}
+
+\newcommand{\instructions}[1]{
+  \if@draftmode%
+  {\color{blue}{#1}}
+  \fi%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Proposal pagestyle 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set page heading and footers. Read memman Chap.7 for more info on 
+% customized headers and footers
+\copypagestyle{proposal}{ruled}
+
+%Page Footers
+\makeevenfoot{proposal}{ \@shortname }{ \thepage }{ \date{\today} }
+\makeoddfoot{proposal}{ \@shortname }{ \thepage }{ \date{\today} }
+
+% Page Headers
+\makeoddhead{proposal}{\disptoken{@acronym}}{}{\rightmark}
+\makeevenhead{proposal}{\leftmark}{}{\disptoken{@acronym}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Main Proposal Information 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcounter{@wpcount} % Main Work package counter
+\newcounter{@milestone} % Milestones counter
+\newcounter{@risk} % Critical risk counter
+\newcounter{@pcount} % Participant counter
+\newcounter{@totpm} % Total project person months counter
+\newcounter{@totdeliv} % Total deliverables counter
+\newcounter{@tottask} % Total tasks counter
+
+%Assign values to global variables 
+\newcommand{\shortname}[1]{\gdef\@shortname{#1}}%
+\newcommand{\fundingscheme}[1]{\gdef\@fundingscheme{#1}}%
+\newcommand{\topic}[1]{\gdef\@topic{#1}}%
+\newcommand{\titlelogo}[2]{
+  \gdef\@titlelogoname{#1}
+  \gdef\@titlelogoscale{#2}
+}%
+\newcommand{\coordinator}[3]{
+  \gdef\@coordinatorname{#1}
+  \gdef\@coordinatoremail{#2}
+  \gdef\@coordinatorfax{#3}
+}%
+\newcommand{\participant}[3]{%
+  \stepcounter{@pcount}% Participants counter
+  \newcounter{@p\arabic{@pcount}totpm} % Total participants person months counter
+  \newcounter{@p#2num}% 
+  \setcounter{@p#2num}{\value{@pcount}}%
+  \expandafter\xdef\csname @pFullName\arabic{@p#2num}\endcsname{#1}%
+  \expandafter\xdef\csname @pShortName\arabic{@p#2num}\endcsname{#2}%
+  \expandafter\xdef\csname @pCountry\arabic{@p#2num}\endcsname{#3}%
+}%
+%Display variables assigned
+\newcommand{\disptoken}[1]{%
+  \csname#1\endcsname
+}%
+%Get participant number from short name
+\newcommand{\getPnum}[1]{%
+  \@ifundefined{c@@p#1num}{}{\arabic{@p#1num}}%
+}%
+%  Create participants table row
+\newcommand{\ptablerow}[1]{%
+  \stepcounter{#1}
+  \the\value{#1}
+  \ifthenelse{\value{#1}=1}{ (Coordinator) &}{&}%
+  \disptoken{@pFullName\arabic{#1}} & 
+  \disptoken{@pShortName\arabic{#1}} & 
+  \disptoken{@pCountry\arabic{#1}} \\
+  \hline%
+}%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Proposal Title Page
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Redefine \maketitle
+\renewcommand\maketitle{\par
+  \begingroup
+%  \let\clearpage\relax
+  \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+  \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+  \long\def\@makefntext##1{\parindent 1em\noindent
+    \hb@xt@1.8em{%
+      \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
+  \newpage
+  \global\@topnum\z@   % Prevents figures from going at top of page
+  \@maketitle
+  \thispagestyle{empty}\@thanks
+  \endgroup
+  \setcounter{footnote}{0}%
+  \global\let\thanks\relax
+  \global\let\maketitle\relax
+  \global\let\@maketitle\relax
+  \global\let\@thanks\@empty
+  \global\let\@author\@empty
+  \global\let\@date\@empty
+  \global\let\@title\@empty
+  \global\let\title\relax
+  \global\let\author\relax
+  \global\let\date\relax
+  \global\let\and\relax
+}
+
+\def\@maketitle{%
+  \null
+  \begin{center}%
+    \let \footnote \thanks
+    {\LARGE \@title \par}%
+    \vskip 1.25em%
+    {\Large \@shortname \par}%
+    \vskip 1.25em%
+    \ifx\@titlelogoname\empty \else
+    \includegraphics[scale=\@titlelogoscale]{\@titlelogoname}
+    \fi
+%    \vskip 1.5em%
+    \par
+  \end{center}
+}%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Participants Table
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\makeparticipantstable} {%
+  % set counters, and decrease count by one to get tabular to work properly
+  \newcounter{@ptable}
+  \newcounter{@pcountminusone}
+  \setcounter{@pcountminusone}{\value{@pcount}}
+  \addtocounter{@pcountminusone}{-1}
+  % create Participants table
+  \begin{center}
+    \begin{tabular}{|p{0.22\textwidth}|p{0.375\textwidth}|c|p{0.175\textwidth}|}
+      \hline
+      \textbf{Participant no.} & \textbf{Organization name} &
+      \textbf{Short name} & \textbf{Country} \\ 
+      \hline
+      \whiledo{\value{@ptable}<\value{@pcountminusone}}{\ptablerow{@ptable}}%
+      \ptablerow{@ptable} % add last row by hand to get tabular to
+      % work properly
+    \end{tabular}
+  \end{center}
+}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+%% Work package macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newboolean{@isint}
+\newcounter{@wptask}
+\newcounter{@wpdeliv}
+\newcounter{@wpgroup}
+\newcounter{@wpcolempty}
+\newcounter{@wpcolgroup}
+\newcounter{@wpcolidx}
+\newcounter{@wpcolgrplast}
+\newcounter{@wpcountgroups}
+\newcounter{@wptotgroups}
+%\newcounter{@wptotpm}
+\newcounter{@pmpnum}
+
+% \renewcommand{\the@wpcount}{WP.\arabic{@wpcount}}
+\renewcommand{\the@wptask}{T\the@wpcount.\arabic{@wptask}}
+\renewcommand{\the@wpdeliv}{D\the@wpcount.\arabic{@wpdeliv}}
+
+\newcommand{\wptitle}[1]{%
+\expandafter\xdef\csname @wp\arabic{@wpcount}Title\endcsname{#1} 
+}%
+\newcommand{\wpstart}[1]{%
+\expandafter\xdef\csname @wp\arabic{@wpcount}StartMonth\endcsname{#1} 
+}%
+\newcommand{\wpend}[1]{%
+\expandafter\xdef\csname @wp\arabic{@wpcount}EndMonth\endcsname{#1} 
+}%
+\newcommand{\wptype}[1]{%
+\expandafter\xdef\csname @wp\arabic{@wpcount}Type\endcsname{#1} 
+}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Work package environment
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newenvironment{workpackage}[1]%
+{%
+  \refstepcounter{@wpcount}
+
+  \newcounter{@wp\arabic{@wpcount}totpm}  
+  \newcounter{@wp\arabic{@wpcount}tottk}  
+  \setcounter{@wptask}{0}
+  \setcounter{@wpdeliv}{0}
+  \setcounter{@wpgroup}{0}
+  \setcounter{@wptotgroups}{0}
+
+  \wptitle{#1}%
+  \noindent
+  
+  %% WP objectives environment
+  \newenvironment{wpobjectives}
+  {
+    \noindent
+    \begin{framed}
+      \vspace{-15pt}
+      \subsubsection*{Objectives}
+    }{%
+    \end{framed}
+    \noindent%
+    \ignorespacesafterend
+  }%
+
+  %% WP description environment
+  \newenvironment{wpdescription}
+  {
+    \noindent
+    \begin{framed}
+      \vspace{-15pt}
+      \subsubsection*{Description of work}
+    }{%
+    \end{framed}
+    \noindent%
+    \ignorespacesafterend
+  }%
+
+  %% WP description environment
+  \newenvironment{wpdeliverables}
+  {
+    \noindent
+    \begin{framed}
+      \vspace{-15pt}
+      \subsubsection*{Deliverables}
+    }{%
+    \end{framed}
+    \noindent%
+    \ignorespacesafterend
+  }%
+}{%
+  \par\noindent%
+  \ignorespacesafterend
+}%
+
+\newcommand{\wptask}[6]
+{% leader, contributors, start, end, title, description
+  \refstepcounter{@wptask} 
+  \stepcounter{@tottask}
+  \stepcounter{@wp\arabic{@wpcount}tottk}  
+  % Linear vector for task list  index entries
+  \newcounter{@tk\arabic{@tottask}WP}
+  \setcounter{@tk\arabic{@tottask}WP}{\value{@wpcount}}
+  \newcounter{@tk\arabic{@tottask}T}
+  \setcounter{@tk\arabic{@tottask}T}{\value{@wptask}}
+  % Strings
+  \expandafter\xdef\csname
+  @wp\arabic{@wpcount}Task\arabic{@wptask}Leader\endcsname{\getPnum{#1}}
+  \expandafter\xdef\csname
+  @wp\arabic{@wpcount}Task\arabic{@wptask}Contributors\endcsname{#2}
+  \expandafter\xdef\csname
+  @wp\arabic{@wpcount}Task\arabic{@wptask}Start\endcsname{#3}
+  \expandafter\xdef\csname
+  @wp\arabic{@wpcount}Task\arabic{@wptask}End\endcsname{#4}
+  \expandafter\xdef\csname
+  @wp\arabic{@wpcount}Task\arabic{@wptask}Title\endcsname{#5}
+%  \begin{shaded} \paragraph{Task \the@wptask} \textbf{#5 (M#3-M#4)}\end{shaded}
+  \paragraph{Task \the@wptask:  #5 (M#3-M#4) } 
+  \hfill \emph{Leader: \textbf{#1}. Contributors: #2}\\
+  {#6}
+  \vspace{-8pt}
+  \if@draftmode%
+  \newpage
+  \fi
+}%
+
+\newcommand{\wpdeliverable}[5][12]
+{ % [delivery date]{leader}{nature}{dissemination level}{title}
+  % if no delivery date is specified, the default is M12
+  \refstepcounter{@wpdeliv} 
+  \stepcounter{@totdeliv}
+  % Linear vector for sorting dates in delivery list table, and index entries
+  \newcounter{@deliv\arabic{@totdeliv}date}
+  \setcounter{@deliv\arabic{@totdeliv}date}{#1}
+  \newcounter{@deliv\arabic{@totdeliv}WP}
+  \setcounter{@deliv\arabic{@totdeliv}WP}{\value{@wpcount}}
+  \newcounter{@deliv\arabic{@totdeliv}N}
+  \setcounter{@deliv\arabic{@totdeliv}N}{\value{@wpdeliv}}
+  \newcounter{@deliv\arabic{@totdeliv}D}
+  \setcounter{@deliv\arabic{@totdeliv}D}{\value{@wpdeliv}}
+  % Strings
+  \expandafter\xdef\csname
+  @wp\arabic{@wpcount}Deliv\arabic{@wpdeliv}DeliveryDate\endcsname{#1}
+  \expandafter\xdef\csname
+  @wp\arabic{@wpcount}Deliv\arabic{@wpdeliv}Leader\endcsname{#2}
+  \expandafter\xdef\csname
+  @wp\arabic{@wpcount}Deliv\arabic{@wpdeliv}Nature\endcsname{#3}
+  \expandafter\xdef\csname
+  @wp\arabic{@wpcount}Deliv\arabic{@wpdeliv}DLevel\endcsname{#4}
+  \expandafter\xdef\csname
+  @wp\arabic{@wpcount}Deliv\arabic{@wpdeliv}Title\endcsname{#5}
+  % Output
+  \paragraph{\the@wpdeliv} {#5} \textbf{(M#1)}%\relax
+  \vspace{-8pt}
+}%
+
+\newcommand{\personmonths}{\@ifnextchar{*}{\@leaderpersonmonths}{\@personmonths}}
+\def\@leaderpersonmonths*#1#2{%
+  \stepcounter{@wptotgroups}
+  \addtocounter{@wp\arabic{@wpcount}totpm}{#2}
+  \setcounter{@pmpnum}{\getPnum{#1}}
+  \expandafter\xdef\csname @wpLeader\arabic{@wpcount}\endcsname{\getPnum{#1}}
+  \addtocounter{@p\arabic{@pmpnum}totpm}{#2}
+  \expandafter\xdef\csname
+  @pmParticipant\arabic{@pmpnum}WP\arabic{@wpcount}\endcsname{#2} 
+  \expandafter\xdef\csname
+  @pmLeader\arabic{@pmpnum}WP\arabic{@wpcount}\endcsname{#2} 
+}%
+
+\newcommand{\@personmonths}[2]{%
+  \stepcounter{@wptotgroups}
+  \addtocounter{@wp\arabic{@wpcount}totpm}{#2}
+  \setcounter{@pmpnum}{\getPnum{#1}}
+  \addtocounter{@p\arabic{@pmpnum}totpm}{#2}
+  \expandafter\xdef\csname
+  @pmParticipant\arabic{@pmpnum}WP\arabic{@wpcount}\endcsname{#2} 
+}%
+
+%%% WP Table row
+\newboolean{@stillundefined}
+
+\newcommand{\wptablerow}[1]{%
+  \setcounter{@wpcolempty}{0}
+  \setcounter{@wpcolidx}{0}
+  \whiledo{\value{@wpcolidx}<6}{%
+    \stepcounter{@wpcolidx}
+    \setboolean{@stillundefined}{true}
+    \whiledo{\boolean{@stillundefined} \AND \value{@wpcolgroup}<\value{@pcount}}
+    {% 
+      \stepcounter{@wpcolgroup}
+      \@ifundefined{@pmParticipant\arabic{@wpcolgroup}WP\arabic{@wpcount}}
+      {\setboolean{@stillundefined}{true}}
+      {\setboolean{@stillundefined}{false}
+        \@ifundefined{@pmLeader\arabic{@wpcolgroup}WP\arabic{@wpcount}}
+        {&#1}%
+        {&\textbf{#1}}%
+      }% 
+    }% end whiledo stillundefined   
+    \ifthenelse{\boolean{@stillundefined}}
+    {\stepcounter{@wpcolempty}\null}
+    {}%
+  }% end whiledo colidx
+  \ifthenelse{\value{@wpcolempty}>0}%
+  {& \multicolumn{\arabic{@wpcolempty}}{X|}{}\\}%
+  {\\}%
+}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% WP Table
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\makewptable} {%
+\begin{center}
+  \begin{tabularx}{\textwidth}{|p{0.25\textwidth}|l|r|X|}
+    \hline    
+    \textbf{Work package number} & \noexpand\cellcolor[gray]{0.8}\textbf{WP\the@wpcount} & 
+    \textbf{Starting month} &
+    \disptoken{@wp\arabic{@wpcount}StartMonth} \\
+    \hline
+    \textbf{Work package title} & 
+    \multicolumn{2}{p{0.65\textwidth}}{\textbf{\disptoken{@wp\arabic{@wpcount}Title}}} & \\
+  \end{tabularx}
+  \setcounter{@wpcolgrplast}{0}
+  \setcounter{@wpcountgroups}{0}
+  % make multiples rows 
+  \whiledo{
+    \value{@wpcolgrplast}<\value{@pcount}
+    \AND
+    \value{@wpcountgroups}<\value{@wptotgroups}
+  }{%
+    \begin{tabularx}{\textwidth}{|p{0.25\textwidth}|X|X|X|X|X|X|} % 6 columns for participants
+      % \begin{tabularx}{\textwidth}{|p{0.25\textwidth}|p{4em}@{}|p{4em}@{}|p{4em}@{}|p{4em}@{}|p{4em}@{}|p{5em}@{}|X|} % 6 columns for participants
+      \hline
+      \textbf{Participant number} 
+      \setcounter{@wpcolgroup}{\value{@wpcolgrplast}} 
+      \wptablerow{\arabic{@wpcolgroup}} 
+      \hline
+      \textbf{Short name}
+      \setcounter{@wpcolgroup}{\value{@wpcolgrplast}}
+      \wptablerow{\disptoken{@pShortName\arabic{@wpcolgroup}}} 
+      \hline
+      \textbf{Person-months}
+      \setcounter{@wpcolgroup}{\value{@wpcolgrplast}}
+      \wptablerow{\disptoken{@pmParticipant\arabic{@wpcolgroup}WP\arabic{@wpcount}}} 
+      \hline
+    \end{tabularx}
+    \setcounter{@wpcolgrplast}{\value{@wpcolgroup}}   
+    \addtocounter{@wpcountgroups}{6}
+    \addtocounter{@wpcountgroups}{-\value{@wpcolempty}}
+  }% end multiples rows
+\end{center}  
+  % Update Total Person Months
+  \addtocounter{@totpm}{\value{@wp\arabic{@wpcount}totpm}}
+}%
+
+
+%% Direct Costs Macros
+
+\newcounter{@costsT}  % Travel costs counter
+\newcounter{@costsE}  % Equipment costs counter
+\newcounter{@costsO}  % Other costs counter
+\newcounter{@totcosts} % Total costs counter
+
+\newcommand{\costsTravel}[3]{%
+  % {participant}{cost}{justification}
+  \setcounter{@costsT}{\getPnum{#1}}%
+  \newcounter{@dctpnum\arabic{@costsT}}
+  \addtocounter{@dctpnum\arabic{@costsT}}{#2}
+  \expandafter\protected@xdef\csname @tJustification\arabic{@costsT}\endcsname{#3}%
+}
+
+\newcommand{\costsEquipment}[3]{
+  % {participant}{cost}{justification}
+  \setcounter{@costsE}{\getPnum{#1}}%
+  \newcounter{@dcepnum\arabic{@costsE}}
+  \setcounter{@dcepnum\arabic{@costsE}}{#2}
+  \expandafter\protected@xdef\csname @eJustification\arabic{@costsE}\endcsname{#3}%
+}
+
+\newcommand{\costsOther}[3]{%
+  % {participant}{cost}{justification}
+  \setcounter{@costsO}{\getPnum{#1}}%
+  \newcounter{@dcopnum\arabic{@costsO}}
+  \setcounter{@dcopnum\arabic{@costsO}}{#2}
+  \expandafter\protected@xdef\csname @oJustification\arabic{@costsO}\endcsname{#3}%
+}
+
+%% Other direct costs Table
+\newcommand{\makecoststable} {%
+  \newboolean{@dctdefined}
+  \newboolean{@dcedefined}
+  \newboolean{@dcodefined}
+  \setcounter{@row}{0}
+  \ifthenelse{\value{@pcount}<1}{\ClassWarning{h2020proposal}{No
+      participants defined yet. Use the \texttt{\textbackslash
+        participant} command to define new participants.}}{%
+    \whiledo{\value{@row}<\value{@pcount}}{%
+      \stepcounter{@row}
+      \setcounter{@totcosts}{0}
+
+      \@ifundefined{c@@dctpnum\arabic{@row}}{%
+        \setboolean{@dctdefined}{false}}{%
+        \setboolean{@dctdefined}{true}}
+      \@ifundefined{c@@dcepnum\arabic{@row}}{%
+        \setboolean{@dcedefined}{false}}{%
+        \setboolean{@dcedefined}{true}}
+      \@ifundefined{c@@dcopnum\arabic{@row}}{%
+        \setboolean{@dcodefined}{false}}{%
+        \setboolean{@dcodefined}{true}}
+      \ifthenelse{
+        \boolean{@dctdefined} 
+        \OR
+        \boolean{@dcedefined} 
+        \OR
+        \boolean{@dcodefined} 
+      }{%
+        \noindent
+        \begin{tabularx}{\textwidth}{|l| p{4em}| X |}
+          \hline
+          \cellcolor[gray]{0.8} \textbf{Participant no. \arabic{@row}}
+          \textbf{(\csname @pShortName\arabic{@row}\endcsname)} &
+          \cellcolor[gray]{0.8} \textbf{Cost (EUR)} &
+          \cellcolor[gray]{0.8} \textbf{Justification}
+          \\ \hline
+          \ifthenelse{\boolean{@dctdefined}}{%
+            \addtocounter{@totcosts}{\value{@dctpnum\arabic{@row}}}
+            %\hline
+            \cellcolor[gray]{0.8} \textbf{Travel} &
+            \arabic{@dctpnum\arabic{@row}} &
+            \csname @tJustification\arabic{@row}\endcsname 
+            \\ \hline
+          }{}%
+          \ifthenelse{\boolean{@dcedefined}}{%
+            \addtocounter{@totcosts}{\value{@dcepnum\arabic{@row}}}
+            \cellcolor[gray]{0.8} \textbf{Equipment} &
+            \arabic{@dcepnum\arabic{@row}} & 
+            \csname @eJustification\arabic{@row}\endcsname 
+            \\ \hline
+          }{}%
+          \ifthenelse{\boolean{@dcodefined}}{%
+            \addtocounter{@totcosts}{\value{@dcopnum\arabic{@row}}}
+            \cellcolor[gray]{0.8} \textbf{Other goods and services} &
+            \arabic{@dcopnum\arabic{@row}} & 
+            \csname @oJustification\arabic{@row}\endcsname 
+            \\ \hline
+          }{}%
+          \cellcolor[gray]{0.8} \textbf{Total} &
+          {\arabic{@totcosts}} &
+          \\ \hline
+        \end{tabularx}\\
+      }{}% 
+    }%
+  }%
+}%
+
+
+%% Large Research Infrastructure tables
+\newcounter{@costsLRI}  % Other costs counter
+
+\newcommand{\costslri}[3]{%
+  % {participant}{cost}{justification}
+  \setcounter{@costsLRI}{\getPnum{#1}}%
+  \newcounter{@lripnum\arabic{@costsLRI}}
+  \addtocounter{@lripnum\arabic{@costsLRI}}{#2}
+  \expandafter\protected@xdef\csname @lriJustification\arabic{@costsLRI}\endcsname{#3}%
+}
+
+\newboolean{@lridefined}
+
+\newcommand{\makelritable} {%
+  \setcounter{@row}{0}
+  \ifthenelse{\value{@pcount}<1}{}{
+    \whiledo{\value{@row}<\value{@pcount}}{%
+      \stepcounter{@row}
+      \@ifundefined{c@@lripnum\arabic{@row}}{}{%
+        \noindent \begin{tabularx}{\textwidth}{|l| p{4em}| X |}
+          \hline
+          \cellcolor[gray]{0.8}
+          \textbf{Participant no. \arabic{@row}}
+          \textbf{(\csname @pShortName\arabic{@row}\endcsname)} & \cellcolor[gray]{0.8} \textbf{Cost (EUR)} & \cellcolor[gray]{0.8} \textbf{Justification}\\
+          \cellcolor[gray]{0.8} \textbf{Large research infrastructure} & \arabic{@lripnum\arabic{@row}} & \csname @lriJustification\arabic{@row}\endcsname\\
+%\csname @lriJustification\arabic{@row}\endcsname\\
+          \hline
+          \end{tabularx}\\
+      }%
+    }%
+  }%
+}%
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% make list commands that use auxiliary files
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\counterwithin{table}{section}
+
+% redefining this counter does not work here, because it gets
+% redefined at every chapter. It is important to add this command at
+% the beginning of Section 1.3
+\renewcommand{\thetable}{\thesection\alph{table}}
+\stepcounter{table}
+
+\newcounter{@row}
+
+%% WP List
+\newcommand{\makewplist}
+{%
+  \InputIfFileExists {\jobname.lwp}{}{%
+    \ClassWarning{h2020proposal}{Work Package List data not complete yet. Recompile to
+      include all data.}
+  }%
+}%
+
+\newcommand{\writewplist}{
+  % create wplist table on auxiliary lwp file
+  \setcounter{@row}{0}
+  \newwrite\wplistfile
+  \immediate\openout\wplistfile=\jobname.lwp
+  \immediate\write\wplistfile{%
+    \noexpand\begin{longtable}{|p{4em}|p{13em}|p{4em}|p{6em}|p{4em}|p{3em}|p{3em}|}
+    }%
+    \immediate\write\wplistfile{
+      \noexpand\caption{List of work packages}
+      \noexpand\\
+    }%  
+    \immediate\write\wplistfile{\noexpand\hline}
+    \immediate\write\wplistfile{%
+      {\noexpand\textbf{Work package number}} & 
+      {\noexpand\textbf{Work package title}} &
+      {\noexpand\textbf{Lead participant no.}} &
+      {\noexpand\textbf{Lead participant name}} &
+      {\noexpand\textbf{Person-months}} &
+      {\noexpand\textbf{Start month}} &
+      {\noexpand\textbf{End month}}
+      \noexpand\endfirsthead
+    }%
+    \immediate\write\wplistfile{
+      \noexpand\hline
+      \noexpand\multicolumn{7}{|r|}{Continued on next page}
+      \noexpand\\
+      \noexpand\hline
+      \noexpand\endfoot
+    }%
+    \immediate\write\wplistfile{%
+      \noexpand\cellcolor[gray]{0.8} &
+      \noexpand\multicolumn{2}{|c|}{\noexpand\textbf{TOTAL}} &
+      \noexpand\cellcolor[gray]{0.8} &
+      \noexpand{\arabic{@totpm}} &
+      \noexpand\cellcolor[gray]{0.8} &
+      \noexpand\cellcolor[gray]{0.8}
+      \noexpand\\
+      \noexpand\hline
+      \noexpand\endlastfoot
+    }%
+    \immediate\write\wplistfile{\noexpand\hline}%
+    \ifthenelse{\value{@wpcount}<1}{\ClassWarning{h2020proposal}{Work packages
+        not defined yet. Use the \texttt{\textbackslash workpackage}
+          environment to define new work packages.}}{%
+      \whiledo{\value{@row}<\value{@wpcount}}{%
+        \stepcounter{@row}
+        \immediate\write\wplistfile{%
+          \noexpand\textbf{WP\arabic{@row}} & 
+          \csname @wp\arabic{@row}Title\endcsname &
+          \csname @wpLeader\arabic{@row}\endcsname &
+          \csname @pShortName\csname @wpLeader\arabic{@row}\endcsname\endcsname &
+          \arabic{@wp\arabic{@row}totpm} &
+          \csname @wp\arabic{@row}StartMonth\endcsname &
+          \csname @wp\arabic{@row}EndMonth\endcsname 
+          \noexpand\\}%
+        \immediate\write\wplistfile{\noexpand\hline}
+      }% 
+    }%
+    \immediate\write\wplistfile{\noexpand\end{longtable}}%
+  \closeout\wplistfile
+}%
+
+%% Deliverables List
+\newcommand{\makedeliverablelist}
+{%
+  \InputIfFileExists {\jobname.ldl}{}{%
+    \ClassWarning{h2020proposal}{Deliverables  List data not complete yet. Recompile to
+      include all data.}
+  }%
+}%
+
+%% Sorting pseudo code Insertion sort
+%     while i< length[A] do
+%         i++
+%         value := A[i];
+%         j := i - 1;
+%         done := false;
+%         repeat
+%             if A[j] > value then
+%             begin
+%                 A[j + 1] := A[j];
+%                 j := j - 1;
+%                 if j < 0 then
+%                     done := true;
+%             end
+%             else
+%                 done := true;
+%         until done;
+%         A[j + 1] := value;
+%     end;
+\newcounter{@deliv0date}
+\setcounter{@deliv0date}{0}
+\newboolean{@done}
+\newcommand{\delivsort}{%
+  \newcounter{@tmpdate}
+  \newcounter{@tmpWP}
+  \newcounter{@tmpN}
+  \newcounter{@tmpD}
+  \newcounter{@posi}
+  \newcounter{@posj}
+  \newcounter{@posjup}
+  \setcounter{@posi}{1}
+  \whiledo{\value{@posi}<\value{@totdeliv}}{%
+    \stepcounter{@posi}
+    \setcounter{@tmpdate}{\value{@deliv\arabic{@posi}date}}
+    \setcounter{@tmpWP}{\value{@deliv\arabic{@posi}WP}}
+    \setcounter{@tmpN}{\value{@deliv\arabic{@posi}N}}
+    \setcounter{@tmpD}{\value{@deliv\arabic{@posi}D}}
+    \setcounter{@posj}{\value{@posi}}
+    \addtocounter{@posj}{-1}
+    \setboolean{@done}{false}
+    \whiledo{\NOT \boolean{@done}}{%
+      \ifthenelse{\value{@deliv\arabic{@posj}date}>\value{@tmpdate}}{%
+        \setcounter{@posjup}{\value{@posj}}
+        \stepcounter{@posjup}
+        %Swap j <-> j+1
+        \setcounter{@deliv\arabic{@posjup}date}{\value{@deliv\arabic{@posj}date}}
+        \setcounter{@deliv\arabic{@posjup}WP}{\value{@deliv\arabic{@posj}WP}}
+        \setcounter{@deliv\arabic{@posjup}N}{\value{@deliv\arabic{@posj}N}}
+        \setcounter{@deliv\arabic{@posjup}D}{\value{@deliv\arabic{@posj}D}}
+        \addtocounter{@posj}{-1}
+        \ifthenelse{\value{@posj}<0}{\setboolean{@done}{true}}{}
+      }{%
+        \setboolean{@done}{true}
+      }%
+      \setcounter{@posjup}{\value{@posj}}
+      \stepcounter{@posjup}
+      \setcounter{@deliv\arabic{@posjup}date}{\value{@tmpdate}}
+      \setcounter{@deliv\arabic{@posjup}WP}{\value{@tmpWP}}
+      \setcounter{@deliv\arabic{@posjup}N}{\value{@tmpN}}
+      \setcounter{@deliv\arabic{@posjup}D}{\value{@tmpD}}
+    }%
+  }%
+}%
+
+\newcommand{\writedelivlist}{
+  % create delivlist table on auxiliary ldl file
+  \setcounter{@row}{0}
+  \newwrite\delivlistfile
+  \immediate\openout\delivlistfile=\jobname.ldl
+  \immediate\write\delivlistfile{%
+    \noexpand\begin{longtable}{|p{3.5em}|p{19em}|p{2em}|p{4.5em}|p{1.5em}|p{3em}|p{3.5em}|}
+    }%
+    \immediate\write\delivlistfile{
+      \noexpand\caption{Deliverable list}
+      \noexpand\\
+    }%  
+    \immediate\write\delivlistfile{\noexpand\hline}
+    \immediate\write\delivlistfile{%
+      {\noexpand\textbf{Delive\-rable number}} & 
+      {\noexpand\textbf{Deliverable name}} &
+      {\noexpand\textbf{WP no.}} &
+      {\noexpand\textbf{Lead participant name}} &
+      {\noexpand\textbf{Na\-tu\-re}} &
+      {\noexpand\textbf{Disse\-mina\-tion Level}} &
+      {\noexpand\textbf{Delivery date (proj. month)}}
+      \noexpand\endfirsthead
+    }%
+    \immediate\write\delivlistfile{
+      \noexpand\hline
+      \noexpand\multicolumn{6}{|r|}{Continued on next page}
+      \noexpand\\
+      \noexpand\hline
+      \noexpand\endfoot
+    }%
+    \immediate\write\delivlistfile{%
+      \noexpand\hline
+      \noexpand\endlastfoot
+    }%
+    \immediate\write\delivlistfile{\noexpand\hline}%
+    \ifthenelse{\value{@totdeliv}<1}{\ClassWarning{h2020proposal}{Deliverables
+        not defined yet. Use the \texttt{\textbackslash deliverable}
+          command to define new deliverables.}}{% 
+      \delivsort
+      \whiledo{\value{@row}<\value{@totdeliv}}{%
+        \stepcounter{@row}
+        \immediate\write\delivlistfile{%
+          \noexpand\textbf{D\arabic{@deliv\arabic{@row}WP}.\arabic{@deliv\arabic{@row}D}} &
+          \csname
+          @wp\arabic{@deliv\arabic{@row}WP}Deliv\arabic{@deliv\arabic{@row}D}Title\endcsname & 
+          WP\arabic{@deliv\arabic{@row}WP} & 
+          \csname
+          @wp\arabic{@deliv\arabic{@row}WP}Deliv\arabic{@deliv\arabic{@row}D}Leader\endcsname & 
+          \csname
+          @wp\arabic{@deliv\arabic{@row}WP}Deliv\arabic{@deliv\arabic{@row}N}Nature\endcsname & 
+          \csname
+          @wp\arabic{@deliv\arabic{@row}WP}Deliv\arabic{@deliv\arabic{@row}D}DLevel\endcsname & 
+          \arabic{@deliv\arabic{@row}date} 
+          \noexpand\\}%
+        \immediate\write\delivlistfile{\noexpand\hline}
+      }%
+    }%
+    \immediate\write\delivlistfile{\noexpand\end{longtable}}%
+  \closeout\delivlistfile
+}% 
+
+% Proposal Milestones Macro
+\newcommand{\milestone}[4][12]{% 
+  % [due date]{title}{means of verification}{wps involved}
+  \refstepcounter{@milestone} 
+  \expandafter\xdef\csname
+  @ms\arabic{@milestone}Date\endcsname{#1}
+  \expandafter\xdef\csname
+  @ms\arabic{@milestone}Title\endcsname{#2}
+  \expandafter\xdef\csname
+  @ms\arabic{@milestone}Verification\endcsname{#3}
+  \expandafter\protected@xdef\csname
+  @ms\arabic{@milestone}WPList\endcsname{#4}
+}%
+
+%% Milestones List
+\newcommand{\makemilestoneslist} {%
+  \InputIfFileExists {\jobname.lms}{}{%
+    \ClassWarning{h2020proposal}{Milestones List data not complete
+      yet. Recompile to include all data.}}%
+}%
+
+%% Milestones Table
+\newcommand{\writemslist}{
+  % create wplist table on auxiliary lwp file
+  \setcounter{@row}{0}
+  \newwrite\mslistfile
+  \immediate\openout\mslistfile=\jobname.lms
+  \immediate\write\mslistfile{%
+    \noexpand\begin{longtable}{|p{5em}|p{16em}|p{4.5em}|p{5em}|p{9em}|}
+    }%
+    \immediate\write\mslistfile{
+      \noexpand\caption{List of milestones}
+      \noexpand\\
+    }%  
+    \immediate\write\mslistfile{\noexpand\hline}
+    \immediate\write\mslistfile{%
+      {\noexpand\textbf{Milestone number}} & 
+      {\noexpand\textbf{Milestone name}} &
+      {\noexpand\textbf{Related WPs}} &
+      {\noexpand\textbf{Estimated date}} &
+      {\noexpand\textbf{Means of verification}}
+      \noexpand\endfirsthead
+    }%
+    \immediate\write\mslistfile{
+      \noexpand\hline
+      \noexpand\multicolumn{5}{|r|}{Continued on next page}
+      \noexpand\\
+      \noexpand\hline
+      \noexpand\endfoot
+    }%
+    \immediate\write\mslistfile{%
+      \noexpand\hline
+      \noexpand\endlastfoot
+    }%
+    \immediate\write\mslistfile{\noexpand\hline}%
+    \ifthenelse{\value{@milestone}<1}{\ClassWarning{h2020proposal}{Milestones
+        not defined yet. Use the \texttt{\textbackslash milestone}
+          command to define new milestones.}}{%
+      \whiledo{\value{@row}<\value{@milestone}}{%
+        \stepcounter{@row}
+        \immediate\write\mslistfile{%
+          \noexpand\textbf{M\arabic{@row}} & 
+          \csname @ms\arabic{@row}Title\endcsname &
+          \noexpand\csname @ms\arabic{@row}WPList\endcsname &
+          \csname @ms\arabic{@row}Date\endcsname &
+          \csname @ms\arabic{@row}Verification\endcsname 
+          \noexpand\\
+        }%
+        \immediate\write\mslistfile{\noexpand\hline}
+      }% 
+    }%
+    \immediate\write\mslistfile{\noexpand\end{longtable}}%
+  \closeout\mslistfile
+}%
+
+
+%% Proposal Critical Risks Macros
+\newcommand{\criticalrisk}[3]{% 
+  % {description of risk}{wps involved}{risk-mitigation measures}
+  \refstepcounter{@risk} 
+  \expandafter\protected@xdef\csname @rk\arabic{@risk}Description\endcsname{#1}%
+  \expandafter\protected@xdef\csname @rk\arabic{@risk}WP\endcsname{#2}%
+  \expandafter\protected@xdef\csname @rk\arabic{@risk}Solution\endcsname{#3}%
+}%
+
+%% Risks List
+\newcommand{\makerisklist} {%
+  \InputIfFileExists {\jobname.lrk}{}{%
+    \ClassWarning{h2020proposal}{Task List data not complete
+      yet. Recompile to include all data.}}%
+}%
+
+\newcommand{\writerklist}{
+  % create rklist table on auxiliary lwp file
+  \setcounter{@row}{0} \newwrite\rklistfile
+  \immediate\openout\rklistfile=\jobname.lrk
+  \immediate\write\rklistfile{%
+    \noexpand\begin{longtable}{|p{18em}|p{8em}|p{16em}|}
+    }%
+    \immediate\write\rklistfile{ \noexpand\caption{Critical risks for implementation}
+      \noexpand\label{table:risks}
+      \noexpand\\
+    }%
+    \immediate\write\rklistfile{\noexpand\hline}
+    \immediate\write\rklistfile{%
+      {\noexpand\textbf{Description of Risk}} & {\noexpand\textbf{WPs involved}} &
+      {\noexpand\textbf{Proposed risk-mitigation measures}} \noexpand\endfirsthead 
+    }%    
+    \immediate\write\rklistfile{ 
+      \noexpand\hline
+      \noexpand\multicolumn{3}{|r|}{Continued on next page}
+      \noexpand\\
+      \noexpand\hline 
+      \noexpand\endfoot 
+    }%
+    \immediate\write\rklistfile{%
+      \noexpand\hline 
+      \noexpand\endlastfoot 
+    }%
+    \immediate\write\rklistfile{\noexpand\hline}%
+    \ifthenelse{\value{@risk}<1}{\ClassWarning{h2020proposal}{Risk
+        not defined yet. Use the \texttt{\textbackslash criticalrisk}
+        command within the Work Package Deliverables environment to
+        define new tasks.}}{%
+      \whiledo{\value{@row}<\value{@risk}}{%
+        \stepcounter{@row}
+        \immediate\write\rklistfile{%
+          \csname @rk\arabic{@row}Description\endcsname &
+          \noexpand\csname @rk\arabic{@row}WP\endcsname &
+          \noexpand\csname @rk\arabic{@row}Solution\endcsname 
+          \noexpand\\}%
+        \immediate\write\rklistfile{\noexpand\hline} 
+      }%
+    }%
+    \immediate\write\rklistfile{\noexpand\end{longtable}}%
+  \closeout\rklistfile 
+}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Summary of effort Table
+\newcommand{\makesummaryofefforttable} {%
+  \InputIfFileExists {\jobname.lse}{}{%
+    \ClassWarning{h2020proposal}{Summary of effort table data not complete
+      yet. Recompile to include all data.}}%
+}%
+
+\newcommand{\writesoelist}{
+  % create wplist table on auxiliary lse file
+  \newwrite\soelistfile \immediate\openout\soelistfile=\jobname.lse
+  \immediate\write\soelistfile{%
+    % \noexpand\stepcounter{table} % increase table counter, because WP tables are not real tables
+    \noexpand\begin{table}
+      \noexpand\caption{Summary of staff effort}
+      \noexpand\label{table:soe}
+      \noexpand\begin{tabularx}{\textwidth}{|c|X|l|l|l|l|l|l|l|p{6em}|}
+      }%
+      \immediate\write\soelistfile{\noexpand\hline}
+      \immediate\write\soelistfile{%
+        {\noexpand\textbf{Partic. no.}} &
+        {\noexpand\textbf{Partic. short name}} }%
+      \setcounter{@wpcolgroup}{0} \setcounter{@wpcolempty}{0}
+      \whiledo{\value{@wpcolgroup}<7}{%
+        \stepcounter{@wpcolgroup} \ifthenelse{\NOT
+          \value{@wpcolgroup}>\value{@wpcount}} {
+          \immediate\write\soelistfile{%
+            & {\noexpand\textbf{WP\arabic{@wpcolgroup}}} }%
+        }%
+        {\stepcounter{@wpcolempty}\null} }% end whiledo
+      \ifthenelse{\value{@wpcolempty}>0}%
+      {%
+        \immediate\write\soelistfile{%
+          & \noexpand\multicolumn{\arabic{@wpcolempty}}{|l|}{
+            {\noexpand\textbf{Total person months}} }%
+          \noexpand\\
+        }}{%
+        \immediate\write\soelistfile{%
+          & {\noexpand\textbf{Total person months}} \noexpand\\
+        }%
+      }%
+      \immediate\write\soelistfile{ \noexpand\hline }%
+      \setcounter{@row}{0}
+      \ifthenelse{\value{@pcount}<1}{\ClassWarning{h2020proposal}{No
+          participants defined yet. Use the \texttt{\textbackslash
+            participant} command to define new participants.}}{%
+        \whiledo{\value{@row}<\value{@pcount}}{%
+          \stepcounter{@row} \immediate\write\soelistfile{%
+            \arabic{@row} & \csname @pShortName\arabic{@row}\endcsname
+          }%
+          \setcounter{@wpcolgroup}{0}
+          \whiledo{\value{@wpcolgroup}<\value{@wpcount}}{%
+            \stepcounter{@wpcolgroup}
+            \@ifundefined{@pmLeader\arabic{@row}WP\arabic{@wpcolgroup}}
+            {%
+              \@ifundefined{@pmParticipant\arabic{@row}WP\arabic{@wpcolgroup}}
+              {%
+                \immediate\write\soelistfile{& 0} }{%
+                \immediate\write\soelistfile{%
+                  & \csname
+                  @pmParticipant\arabic{@row}WP\arabic{@wpcolgroup}\endcsname
+                }%
+              }}{ \immediate\write\soelistfile{%
+                & \noexpand\textbf{\csname
+                  @pmParticipant\arabic{@row}WP\arabic{@wpcolgroup}\endcsname}
+              }}}%
+          \ifthenelse{\value{@wpcolempty}>0}%
+          {%
+            \immediate\write\soelistfile{%
+              & \noexpand\multicolumn{\arabic{@wpcolempty}}{|l|}{
+                \arabic{@p\arabic{@row}totpm} }%
+              \noexpand\\
+            }}{ \immediate\write\soelistfile{%
+              & \arabic{@p\arabic{@row}totpm} \noexpand\\
+            }%
+          }%
+          \immediate\write\soelistfile{\noexpand\hline}%
+        }%
+        \immediate\write\soelistfile{\noexpand\textbf{Total} &}%
+        \immediate\write\soelistfile{\noexpand\cellcolor[gray]{0.8}}
+        \setcounter{@wpcolgroup}{0}
+        \whiledo{\value{@wpcolgroup}<\value{@wpcount}}{%
+          \stepcounter{@wpcolgroup} \immediate\write\soelistfile{%
+            & \arabic{@wp\arabic{@wpcolgroup}totpm} }}%
+        \ifthenelse{\value{@wpcolempty}>0}%
+        {%
+          \immediate\write\soelistfile{%
+            & \noexpand\multicolumn{\arabic{@wpcolempty}}{|l|}{
+              \arabic{@totpm}}
+            \noexpand\\
+          }}%
+        { \immediate\write\soelistfile{%
+            & \arabic{@totpm}
+            \noexpand\\
+          }}\immediate\write\soelistfile{\noexpand\hline}%
+      }%
+      \immediate\write\soelistfile{\noexpand\end{tabularx}}%
+    \immediate\write\soelistfile{ \noexpand\end{table}}%
+  \closeout\soelistfile }%
+
+%% Task List
+\newcommand{\maketasklist} {%
+  \InputIfFileExists {\jobname.ltk}{}{%
+    \ClassWarning{h2020proposal}{Task List data not complete
+      yet. Recompile to include all data.}}%
+}%
+
+\newcommand{\writetklist}{
+  % create tklist table on auxiliary lwp file
+  \setcounter{@row}{0} \newwrite\tklistfile
+  \immediate\openout\tklistfile=\jobname.ltk
+  \immediate\write\tklistfile{%
+    \noexpand\begin{longtable}{|p{6em}|p{8em}|p{4em}|p{4em}|p{16em}|}
+    }%
+    \immediate\write\tklistfile{ \noexpand\caption{List of Task PIs}
+      \noexpand\\
+    }%
+    \immediate\write\tklistfile{\noexpand\hline}
+    \immediate\write\tklistfile{%
+      {\noexpand\textbf{Task}} & {\noexpand\textbf{PI}} &
+      {\noexpand\textbf{Start date}} & {\noexpand\textbf{End date}} &
+      {\noexpand\textbf{Title}} \noexpand\endfirsthead 
+    }%    
+    \immediate\write\tklistfile{ 
+      \noexpand\hline
+      \noexpand\multicolumn{5}{|r|}{Continued on next page}
+      \noexpand\\
+      \noexpand\hline 
+      \noexpand\endfoot 
+    }%
+    \immediate\write\tklistfile{%
+      \noexpand\hline 
+      \noexpand\endlastfoot 
+    }%
+    \immediate\write\tklistfile{\noexpand\hline}%
+    \ifthenelse{\value{@tottask}<1}{\ClassWarning{h2020proposal}{Tasks
+        not defined yet. Use the \texttt{\textbackslash wptask}
+        command within the Work Package Deliverables environment to
+        define new tasks.}}{%
+      \whiledo{\value{@row}<\value{@tottask}}{%
+        \stepcounter{@row} 
+        \immediate\write\tklistfile{%
+          \noexpand\textbf{T\arabic{@tk\arabic{@row}WP}.\arabic{@tk\arabic{@row}T}} &
+          \csname
+          @wp\arabic{@tk\arabic{@row}WP}Task\arabic{@tk\arabic{@row}T}PI\endcsname &
+          \csname
+          @wp\arabic{@tk\arabic{@row}WP}Task\arabic{@tk\arabic{@row}T}Start\endcsname &
+          \csname
+          @wp\arabic{@tk\arabic{@row}WP}Task\arabic{@tk\arabic{@row}T}End\endcsname &
+          \csname
+          @wp\arabic{@tk\arabic{@row}WP}Task\arabic{@tk\arabic{@row}T}Title\endcsname 
+          \noexpand\\}%
+        \immediate\write\tklistfile{\noexpand\hline} 
+      }%
+    }%
+    \immediate\write\tklistfile{\noexpand\end{longtable}}%
+  \closeout\tklistfile }%
+
+
+%% Gantt chart data
+\newcommand{\ganttchartdata} {%
+  \InputIfFileExists {\jobname.gnt}{}{%
+    \ClassWarning{h2020proposal}{Gantt chart data data not complete
+      yet. Recompile to include all data.}}%
+}%
+
+\newcommand{\writegntdata}{
+  % create tklist table on auxiliary lwp file
+  \setcounter{@wpcolgroup}{0} % use this counter for wps
+  \newwrite\gntchartfile \immediate\openout\gntchartfile=\jobname.gnt
+  \whiledo{\value{@wpcolgroup}<\value{@wpcount}}{%
+    \stepcounter{@wpcolgroup} 
+    \immediate\write\gntchartfile{%
+      \noexpand\ganttgroup{WP\arabic{@wpcolgroup}}{\csname @wp\arabic{@wpcolgroup}StartMonth\endcsname}{\csname @wp\arabic{@wpcolgroup}EndMonth\endcsname}
+      \noexpand\\
+    }%
+    \setcounter{@row}{0} % use this counter for wp tasks   
+    \whiledo{\value{@row}<\value{@wp\arabic{@wpcolgroup}tottk}}{% 
+      \stepcounter{@row} 
+      \immediate\write\gntchartfile{%
+        \noexpand\ganttbar{T\arabic{@wpcolgroup}.\arabic{@row}}{%
+          \csname
+          @wp\arabic{@wpcolgroup}Task\arabic{@row}Start\endcsname}{%
+          \csname
+          @wp\arabic{@wpcolgroup}Task\arabic{@row}End\endcsname} 
+        \noexpand\\
+      }%
+    }%
+  }%
+  \closeout\gntchartfile
+}%
+
+
+%%% Create auxiliary file with table data
+\AtEndDocument{%
+  \writewplist
+  \writedelivlist
+  \writemslist
+  \writerklist
+  \writesoelist
+  \writetklist
+  \writegntdata
+}%
-- 
cgit v1.2.3

